From ac4fd8e8340886f455add8cf92ee1c8458b8ae19 Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Sun, 16 Mar 2014 14:31:22 +0200 Subject: Add ek-tm4c1294xl example projects --- boards/Makefile | 44 + boards/ek-tm4c1294xl/Makefile | 71 + boards/ek-tm4c1294xl/bitband/Makefile | 86 + boards/ek-tm4c1294xl/bitband/bitband.c | 259 + boards/ek-tm4c1294xl/bitband/bitband.ewd | 614 + boards/ek-tm4c1294xl/bitband/bitband.ewp | 789 + boards/ek-tm4c1294xl/bitband/bitband.icf | 78 + boards/ek-tm4c1294xl/bitband/bitband.ld | 57 + boards/ek-tm4c1294xl/bitband/bitband.sct | 47 + boards/ek-tm4c1294xl/bitband/bitband.uvopt | 303 + boards/ek-tm4c1294xl/bitband/bitband.uvproj | 429 + boards/ek-tm4c1294xl/bitband/bitband_ccs.cmd | 70 + boards/ek-tm4c1294xl/bitband/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/bitband/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/bitband/ccs/.cproject | 189 + boards/ek-tm4c1294xl/bitband/ccs/.project | 55 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + boards/ek-tm4c1294xl/bitband/ccs/Debug/bitband.bin | Bin 0 -> 3672 bytes boards/ek-tm4c1294xl/bitband/ccs/Debug/bitband.out | Bin 0 -> 70528 bytes .../ek-tm4c1294xl/bitband/ccs/macros.ini_initial | 1 + .../ek-tm4c1294xl/bitband/ccs/target_config.ccxml | 13 + boards/ek-tm4c1294xl/bitband/ewarm/Exe/bitband.bin | Bin 0 -> 2872 bytes boards/ek-tm4c1294xl/bitband/ewarm/Exe/bitband.out | Bin 0 -> 41792 bytes boards/ek-tm4c1294xl/bitband/gcc/bitband.axf | Bin 0 -> 37670 bytes boards/ek-tm4c1294xl/bitband/gcc/bitband.bin | Bin 0 -> 2800 bytes boards/ek-tm4c1294xl/bitband/readme.txt | 29 + boards/ek-tm4c1294xl/bitband/rvmdk/bitband.axf | Bin 0 -> 24900 bytes boards/ek-tm4c1294xl/bitband/rvmdk/bitband.bin | Bin 0 -> 2876 bytes boards/ek-tm4c1294xl/bitband/startup_ccs.c | 268 + boards/ek-tm4c1294xl/bitband/startup_ewarm.c | 299 + boards/ek-tm4c1294xl/bitband/startup_gcc.c | 315 + boards/ek-tm4c1294xl/bitband/startup_rvmdk.S | 324 + boards/ek-tm4c1294xl/blinky/Makefile | 77 + boards/ek-tm4c1294xl/blinky/blinky.c | 94 + boards/ek-tm4c1294xl/blinky/blinky.ewd | 614 + boards/ek-tm4c1294xl/blinky/blinky.ewp | 777 + boards/ek-tm4c1294xl/blinky/blinky.icf | 78 + boards/ek-tm4c1294xl/blinky/blinky.ld | 57 + boards/ek-tm4c1294xl/blinky/blinky.sct | 47 + boards/ek-tm4c1294xl/blinky/blinky.uvopt | 268 + boards/ek-tm4c1294xl/blinky/blinky.uvproj | 414 + boards/ek-tm4c1294xl/blinky/blinky_ccs.cmd | 70 + boards/ek-tm4c1294xl/blinky/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/blinky/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/blinky/ccs/.cproject | 183 + boards/ek-tm4c1294xl/blinky/ccs/.project | 50 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + boards/ek-tm4c1294xl/blinky/ccs/Debug/blinky.bin | Bin 0 -> 1320 bytes boards/ek-tm4c1294xl/blinky/ccs/Debug/blinky.out | Bin 0 -> 31994 bytes boards/ek-tm4c1294xl/blinky/ccs/macros.ini_initial | 1 + .../ek-tm4c1294xl/blinky/ccs/target_config.ccxml | 13 + boards/ek-tm4c1294xl/blinky/ewarm/Exe/blinky.bin | Bin 0 -> 744 bytes boards/ek-tm4c1294xl/blinky/ewarm/Exe/blinky.out | Bin 0 -> 13376 bytes boards/ek-tm4c1294xl/blinky/gcc/blinky.axf | Bin 0 -> 34580 bytes boards/ek-tm4c1294xl/blinky/gcc/blinky.bin | Bin 0 -> 700 bytes boards/ek-tm4c1294xl/blinky/readme.txt | 24 + boards/ek-tm4c1294xl/blinky/rvmdk/blinky.axf | Bin 0 -> 10228 bytes boards/ek-tm4c1294xl/blinky/rvmdk/blinky.bin | Bin 0 -> 744 bytes boards/ek-tm4c1294xl/blinky/startup_ccs.c | 268 + boards/ek-tm4c1294xl/blinky/startup_ewarm.c | 299 + boards/ek-tm4c1294xl/blinky/startup_gcc.c | 315 + boards/ek-tm4c1294xl/blinky/startup_rvmdk.S | 324 + boards/ek-tm4c1294xl/drivers/buttons.c | 187 + boards/ek-tm4c1294xl/drivers/buttons.h | 110 + boards/ek-tm4c1294xl/drivers/eth_client_lwip.c | 1046 + boards/ek-tm4c1294xl/drivers/eth_client_lwip.h | 88 + boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.c | 1081 + boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.h | 138 + boards/ek-tm4c1294xl/drivers/http.c | 587 + boards/ek-tm4c1294xl/drivers/http.h | 75 + boards/ek-tm4c1294xl/drivers/pinout.c | 301 + boards/ek-tm4c1294xl/drivers/pinout.h | 80 + boards/ek-tm4c1294xl/ek-tm4c1294xl.eww | 198 + boards/ek-tm4c1294xl/ek-tm4c1294xl.uvmpw | 145 + boards/ek-tm4c1294xl/enet_io/Makefile | 103 + boards/ek-tm4c1294xl/enet_io/ccs/.ccsimportspec | 33 + boards/ek-tm4c1294xl/enet_io/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/enet_io/ccs/.cproject | 201 + boards/ek-tm4c1294xl/enet_io/ccs/.project | 95 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + boards/ek-tm4c1294xl/enet_io/ccs/Debug/enet_io.bin | Bin 0 -> 303464 bytes boards/ek-tm4c1294xl/enet_io/ccs/Debug/enet_io.out | Bin 0 -> 959110 bytes .../ek-tm4c1294xl/enet_io/ccs/macros.ini_initial | 1 + .../ek-tm4c1294xl/enet_io/ccs/target_config.ccxml | 13 + boards/ek-tm4c1294xl/enet_io/cgifuncs.c | 551 + boards/ek-tm4c1294xl/enet_io/cgifuncs.h | 46 + boards/ek-tm4c1294xl/enet_io/enet_io.c | 708 + boards/ek-tm4c1294xl/enet_io/enet_io.ewd | 614 + boards/ek-tm4c1294xl/enet_io/enet_io.ewp | 825 + boards/ek-tm4c1294xl/enet_io/enet_io.icf | 78 + boards/ek-tm4c1294xl/enet_io/enet_io.ld | 57 + boards/ek-tm4c1294xl/enet_io/enet_io.sct | 47 + boards/ek-tm4c1294xl/enet_io/enet_io.uvopt | 415 + boards/ek-tm4c1294xl/enet_io/enet_io.uvproj | 469 + boards/ek-tm4c1294xl/enet_io/enet_io_ccs.cmd | 70 + boards/ek-tm4c1294xl/enet_io/ewarm/Exe/enet_io.bin | Bin 0 -> 300100 bytes boards/ek-tm4c1294xl/enet_io/ewarm/Exe/enet_io.out | Bin 0 -> 827004 bytes boards/ek-tm4c1294xl/enet_io/fs/404.htm | 12 + boards/ek-tm4c1294xl/enet_io/fs/about.htm | 33 + boards/ek-tm4c1294xl/enet_io/fs/block.htm | 18 + boards/ek-tm4c1294xl/enet_io/fs/block.jpg | Bin 0 -> 180251 bytes boards/ek-tm4c1294xl/enet_io/fs/ek-tm4c1294xl.jpg | Bin 0 -> 46653 bytes boards/ek-tm4c1294xl/enet_io/fs/favicon.ico | Bin 0 -> 1718 bytes boards/ek-tm4c1294xl/enet_io/fs/index.htm | 57 + boards/ek-tm4c1294xl/enet_io/fs/io_cgi.ssi | 146 + boards/ek-tm4c1294xl/enet_io/fs/io_http.htm | 63 + boards/ek-tm4c1294xl/enet_io/fs/javascript.js | 191 + boards/ek-tm4c1294xl/enet_io/fs/javascript_load.js | 11 + boards/ek-tm4c1294xl/enet_io/fs/overview.htm | 30 + boards/ek-tm4c1294xl/enet_io/fs/perror.htm | 74 + boards/ek-tm4c1294xl/enet_io/fs/styles.css | 104 + boards/ek-tm4c1294xl/enet_io/fs/ti.jpg | Bin 0 -> 7156 bytes boards/ek-tm4c1294xl/enet_io/fs/tm4c.jpg | Bin 0 -> 3369 bytes boards/ek-tm4c1294xl/enet_io/gcc/enet_io.axf | Bin 0 -> 384606 bytes boards/ek-tm4c1294xl/enet_io/gcc/enet_io.bin | Bin 0 -> 305346 bytes boards/ek-tm4c1294xl/enet_io/io.c | 280 + boards/ek-tm4c1294xl/enet_io/io.h | 58 + boards/ek-tm4c1294xl/enet_io/io_fs.c | 317 + boards/ek-tm4c1294xl/enet_io/io_fsdata.h | 33421 +++++++++++++++++++ boards/ek-tm4c1294xl/enet_io/lwipopts.h | 439 + boards/ek-tm4c1294xl/enet_io/readme.txt | 78 + boards/ek-tm4c1294xl/enet_io/rvmdk/enet_io.axf | Bin 0 -> 633428 bytes boards/ek-tm4c1294xl/enet_io/rvmdk/enet_io.bin | Bin 0 -> 300876 bytes boards/ek-tm4c1294xl/enet_io/startup_ccs.c | 277 + boards/ek-tm4c1294xl/enet_io/startup_ewarm.c | 308 + boards/ek-tm4c1294xl/enet_io/startup_gcc.c | 324 + boards/ek-tm4c1294xl/enet_io/startup_rvmdk.S | 333 + boards/ek-tm4c1294xl/enet_lwip/Makefile | 104 + boards/ek-tm4c1294xl/enet_lwip/ccs/.ccsimportspec | 26 + boards/ek-tm4c1294xl/enet_lwip/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/enet_lwip/ccs/.cproject | 201 + boards/ek-tm4c1294xl/enet_lwip/ccs/.project | 95 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../enet_lwip/ccs/Debug/enet_lwip.bin | Bin 0 -> 287368 bytes .../enet_lwip/ccs/Debug/enet_lwip.out | Bin 0 -> 971642 bytes .../ek-tm4c1294xl/enet_lwip/ccs/macros.ini_initial | 1 + .../enet_lwip/ccs/target_config.ccxml | 13 + boards/ek-tm4c1294xl/enet_lwip/enet_fs.c | 338 + boards/ek-tm4c1294xl/enet_lwip/enet_fs.h | 56 + boards/ek-tm4c1294xl/enet_lwip/enet_fsdata.h | 31160 +++++++++++++++++ boards/ek-tm4c1294xl/enet_lwip/enet_lwip.c | 355 + boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ewd | 614 + boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ewp | 825 + boards/ek-tm4c1294xl/enet_lwip/enet_lwip.icf | 78 + boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ld | 57 + boards/ek-tm4c1294xl/enet_lwip/enet_lwip.sct | 47 + boards/ek-tm4c1294xl/enet_lwip/enet_lwip.uvopt | 415 + boards/ek-tm4c1294xl/enet_lwip/enet_lwip.uvproj | 469 + boards/ek-tm4c1294xl/enet_lwip/enet_lwip_ccs.cmd | 70 + .../enet_lwip/ewarm/Exe/enet_lwip.bin | Bin 0 -> 284032 bytes .../enet_lwip/ewarm/Exe/enet_lwip.out | Bin 0 -> 845320 bytes boards/ek-tm4c1294xl/enet_lwip/fs/404.htm | 9 + boards/ek-tm4c1294xl/enet_lwip/fs/about.htm | 32 + boards/ek-tm4c1294xl/enet_lwip/fs/block.htm | 17 + boards/ek-tm4c1294xl/enet_lwip/fs/block.jpg | Bin 0 -> 180251 bytes .../ek-tm4c1294xl/enet_lwip/fs/ek-tm4c1294xl.jpg | Bin 0 -> 46653 bytes boards/ek-tm4c1294xl/enet_lwip/fs/favicon.ico | Bin 0 -> 1718 bytes boards/ek-tm4c1294xl/enet_lwip/fs/index.htm | 54 + boards/ek-tm4c1294xl/enet_lwip/fs/javascript.js | 53 + boards/ek-tm4c1294xl/enet_lwip/fs/overview.htm | 29 + boards/ek-tm4c1294xl/enet_lwip/fs/styles.css | 104 + boards/ek-tm4c1294xl/enet_lwip/fs/ti.jpg | Bin 0 -> 7156 bytes boards/ek-tm4c1294xl/enet_lwip/fs/tm4c.jpg | Bin 0 -> 3369 bytes boards/ek-tm4c1294xl/enet_lwip/gcc/enet_lwip.axf | Bin 0 -> 351426 bytes boards/ek-tm4c1294xl/enet_lwip/gcc/enet_lwip.bin | Bin 0 -> 289411 bytes boards/ek-tm4c1294xl/enet_lwip/lwipopts.h | 441 + boards/ek-tm4c1294xl/enet_lwip/readme.txt | 36 + boards/ek-tm4c1294xl/enet_lwip/rvmdk/enet_lwip.axf | Bin 0 -> 632256 bytes boards/ek-tm4c1294xl/enet_lwip/rvmdk/enet_lwip.bin | Bin 0 -> 284664 bytes boards/ek-tm4c1294xl/enet_lwip/startup_ccs.c | 276 + boards/ek-tm4c1294xl/enet_lwip/startup_ewarm.c | 307 + boards/ek-tm4c1294xl/enet_lwip/startup_gcc.c | 323 + boards/ek-tm4c1294xl/enet_lwip/startup_rvmdk.S | 332 + boards/ek-tm4c1294xl/enet_uip/Makefile | 103 + boards/ek-tm4c1294xl/enet_uip/ccs/.ccsimportspec | 10 + boards/ek-tm4c1294xl/enet_uip/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/enet_uip/ccs/.cproject | 203 + boards/ek-tm4c1294xl/enet_uip/ccs/.project | 90 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../ek-tm4c1294xl/enet_uip/ccs/Debug/enet_uip.bin | Bin 0 -> 13808 bytes .../ek-tm4c1294xl/enet_uip/ccs/Debug/enet_uip.out | Bin 0 -> 235100 bytes .../ek-tm4c1294xl/enet_uip/ccs/macros.ini_initial | 1 + .../ek-tm4c1294xl/enet_uip/ccs/target_config.ccxml | 13 + boards/ek-tm4c1294xl/enet_uip/clock-arch.h | 41 + boards/ek-tm4c1294xl/enet_uip/enet_uip.c | 947 + boards/ek-tm4c1294xl/enet_uip/enet_uip.ewd | 614 + boards/ek-tm4c1294xl/enet_uip/enet_uip.ewp | 822 + boards/ek-tm4c1294xl/enet_uip/enet_uip.icf | 78 + boards/ek-tm4c1294xl/enet_uip/enet_uip.ld | 57 + boards/ek-tm4c1294xl/enet_uip/enet_uip.sct | 47 + boards/ek-tm4c1294xl/enet_uip/enet_uip.uvopt | 401 + boards/ek-tm4c1294xl/enet_uip/enet_uip.uvproj | 464 + boards/ek-tm4c1294xl/enet_uip/enet_uip_ccs.cmd | 70 + .../ek-tm4c1294xl/enet_uip/ewarm/Exe/enet_uip.bin | Bin 0 -> 12392 bytes .../ek-tm4c1294xl/enet_uip/ewarm/Exe/enet_uip.out | Bin 0 -> 170532 bytes boards/ek-tm4c1294xl/enet_uip/gcc/enet_uip.axf | Bin 0 -> 73037 bytes boards/ek-tm4c1294xl/enet_uip/gcc/enet_uip.bin | Bin 0 -> 13822 bytes boards/ek-tm4c1294xl/enet_uip/readme.txt | 33 + boards/ek-tm4c1294xl/enet_uip/rvmdk/enet_uip.axf | Bin 0 -> 146928 bytes boards/ek-tm4c1294xl/enet_uip/rvmdk/enet_uip.bin | Bin 0 -> 12256 bytes boards/ek-tm4c1294xl/enet_uip/startup_ccs.c | 276 + boards/ek-tm4c1294xl/enet_uip/startup_ewarm.c | 307 + boards/ek-tm4c1294xl/enet_uip/startup_gcc.c | 323 + boards/ek-tm4c1294xl/enet_uip/startup_rvmdk.S | 332 + boards/ek-tm4c1294xl/enet_uip/uip-conf.h | 161 + boards/ek-tm4c1294xl/enet_weather/Makefile | 105 + .../ek-tm4c1294xl/enet_weather/ccs/.ccsimportspec | 19 + boards/ek-tm4c1294xl/enet_weather/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/enet_weather/ccs/.cproject | 207 + boards/ek-tm4c1294xl/enet_weather/ccs/.project | 110 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../enet_weather/ccs/Debug/enet_weather.bin | Bin 0 -> 41344 bytes .../enet_weather/ccs/Debug/enet_weather.out | Bin 0 -> 724820 bytes .../enet_weather/ccs/macros.ini_initial | 1 + .../enet_weather/ccs/target_config.ccxml | 13 + boards/ek-tm4c1294xl/enet_weather/commands.c | 206 + boards/ek-tm4c1294xl/enet_weather/commands.h | 57 + boards/ek-tm4c1294xl/enet_weather/debug.h | 38 + boards/ek-tm4c1294xl/enet_weather/enet_weather.c | 1249 + boards/ek-tm4c1294xl/enet_weather/enet_weather.ewd | 614 + boards/ek-tm4c1294xl/enet_weather/enet_weather.ewp | 837 + boards/ek-tm4c1294xl/enet_weather/enet_weather.h | 133 + boards/ek-tm4c1294xl/enet_weather/enet_weather.icf | 78 + boards/ek-tm4c1294xl/enet_weather/enet_weather.ld | 57 + boards/ek-tm4c1294xl/enet_weather/enet_weather.sct | 47 + .../ek-tm4c1294xl/enet_weather/enet_weather.uvopt | 457 + .../ek-tm4c1294xl/enet_weather/enet_weather.uvproj | 484 + .../enet_weather/enet_weather_ccs.cmd | 70 + boards/ek-tm4c1294xl/enet_weather/eth_client.c | 1310 + boards/ek-tm4c1294xl/enet_weather/eth_client.h | 163 + .../enet_weather/ewarm/Exe/enet_weather.bin | Bin 0 -> 37604 bytes .../enet_weather/ewarm/Exe/enet_weather.out | Bin 0 -> 592688 bytes .../enet_weather/gcc/enet_weather.axf | Bin 0 -> 123805 bytes .../enet_weather/gcc/enet_weather.bin | Bin 0 -> 42098 bytes boards/ek-tm4c1294xl/enet_weather/images.c | 111 + boards/ek-tm4c1294xl/enet_weather/images.h | 42 + boards/ek-tm4c1294xl/enet_weather/json.c | 843 + boards/ek-tm4c1294xl/enet_weather/json.h | 41 + boards/ek-tm4c1294xl/enet_weather/lwipopts.h | 443 + boards/ek-tm4c1294xl/enet_weather/readme.txt | 48 + .../enet_weather/rvmdk/enet_weather.axf | Bin 0 -> 388988 bytes .../enet_weather/rvmdk/enet_weather.bin | Bin 0 -> 38668 bytes boards/ek-tm4c1294xl/enet_weather/startup_ccs.c | 277 + boards/ek-tm4c1294xl/enet_weather/startup_ewarm.c | 308 + boards/ek-tm4c1294xl/enet_weather/startup_gcc.c | 324 + boards/ek-tm4c1294xl/enet_weather/startup_rvmdk.S | 333 + boards/ek-tm4c1294xl/gpio_jtag/Makefile | 88 + boards/ek-tm4c1294xl/gpio_jtag/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/gpio_jtag/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/gpio_jtag/ccs/.cproject | 189 + boards/ek-tm4c1294xl/gpio_jtag/ccs/.project | 60 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../gpio_jtag/ccs/Debug/gpio_jtag.bin | Bin 0 -> 4416 bytes .../gpio_jtag/ccs/Debug/gpio_jtag.out | Bin 0 -> 83565 bytes .../ek-tm4c1294xl/gpio_jtag/ccs/macros.ini_initial | 1 + .../gpio_jtag/ccs/target_config.ccxml | 13 + .../gpio_jtag/ewarm/Exe/gpio_jtag.bin | Bin 0 -> 3532 bytes .../gpio_jtag/ewarm/Exe/gpio_jtag.out | Bin 0 -> 61428 bytes boards/ek-tm4c1294xl/gpio_jtag/gcc/gpio_jtag.axf | Bin 0 -> 68442 bytes boards/ek-tm4c1294xl/gpio_jtag/gcc/gpio_jtag.bin | Bin 0 -> 3553 bytes boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.c | 315 + boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ewd | 614 + boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ewp | 792 + boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.icf | 78 + boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ld | 57 + boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.sct | 47 + boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.uvopt | 317 + boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.uvproj | 434 + boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag_ccs.cmd | 70 + boards/ek-tm4c1294xl/gpio_jtag/readme.txt | 33 + boards/ek-tm4c1294xl/gpio_jtag/rvmdk/gpio_jtag.axf | Bin 0 -> 32120 bytes boards/ek-tm4c1294xl/gpio_jtag/rvmdk/gpio_jtag.bin | Bin 0 -> 3608 bytes boards/ek-tm4c1294xl/gpio_jtag/startup_ccs.c | 275 + boards/ek-tm4c1294xl/gpio_jtag/startup_ewarm.c | 306 + boards/ek-tm4c1294xl/gpio_jtag/startup_gcc.c | 322 + boards/ek-tm4c1294xl/gpio_jtag/startup_rvmdk.S | 331 + boards/ek-tm4c1294xl/hello/Makefile | 88 + boards/ek-tm4c1294xl/hello/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/hello/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/hello/ccs/.cproject | 189 + boards/ek-tm4c1294xl/hello/ccs/.project | 60 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + boards/ek-tm4c1294xl/hello/ccs/Debug/hello.bin | Bin 0 -> 4416 bytes boards/ek-tm4c1294xl/hello/ccs/Debug/hello.out | Bin 0 -> 78412 bytes boards/ek-tm4c1294xl/hello/ccs/macros.ini_initial | 1 + boards/ek-tm4c1294xl/hello/ccs/target_config.ccxml | 13 + boards/ek-tm4c1294xl/hello/ewarm/Exe/hello.bin | Bin 0 -> 3608 bytes boards/ek-tm4c1294xl/hello/ewarm/Exe/hello.out | Bin 0 -> 55848 bytes boards/ek-tm4c1294xl/hello/gcc/hello.axf | Bin 0 -> 38797 bytes boards/ek-tm4c1294xl/hello/gcc/hello.bin | Bin 0 -> 3624 bytes boards/ek-tm4c1294xl/hello/hello.c | 160 + boards/ek-tm4c1294xl/hello/hello.ewd | 614 + boards/ek-tm4c1294xl/hello/hello.ewp | 792 + boards/ek-tm4c1294xl/hello/hello.icf | 78 + boards/ek-tm4c1294xl/hello/hello.ld | 57 + boards/ek-tm4c1294xl/hello/hello.sct | 47 + boards/ek-tm4c1294xl/hello/hello.uvopt | 317 + boards/ek-tm4c1294xl/hello/hello.uvproj | 434 + boards/ek-tm4c1294xl/hello/hello_ccs.cmd | 70 + boards/ek-tm4c1294xl/hello/readme.txt | 26 + boards/ek-tm4c1294xl/hello/rvmdk/hello.axf | Bin 0 -> 29136 bytes boards/ek-tm4c1294xl/hello/rvmdk/hello.bin | Bin 0 -> 3656 bytes boards/ek-tm4c1294xl/hello/startup_ccs.c | 268 + boards/ek-tm4c1294xl/hello/startup_ewarm.c | 299 + boards/ek-tm4c1294xl/hello/startup_gcc.c | 315 + boards/ek-tm4c1294xl/hello/startup_rvmdk.S | 324 + boards/ek-tm4c1294xl/hibernate/Makefile | 93 + boards/ek-tm4c1294xl/hibernate/ccs/.ccsimportspec | 10 + boards/ek-tm4c1294xl/hibernate/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/hibernate/ccs/.cproject | 195 + boards/ek-tm4c1294xl/hibernate/ccs/.project | 80 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../hibernate/ccs/Debug/hibernate.bin | Bin 0 -> 9976 bytes .../hibernate/ccs/Debug/hibernate.out | Bin 0 -> 184857 bytes .../ek-tm4c1294xl/hibernate/ccs/macros.ini_initial | 1 + .../hibernate/ccs/target_config.ccxml | 13 + .../hibernate/ewarm/Exe/hibernate.bin | Bin 0 -> 9176 bytes .../hibernate/ewarm/Exe/hibernate.out | Bin 0 -> 159476 bytes boards/ek-tm4c1294xl/hibernate/gcc/hibernate.axf | Bin 0 -> 73022 bytes boards/ek-tm4c1294xl/hibernate/gcc/hibernate.bin | Bin 0 -> 9932 bytes boards/ek-tm4c1294xl/hibernate/hibernate.c | 973 + boards/ek-tm4c1294xl/hibernate/hibernate.ewd | 614 + boards/ek-tm4c1294xl/hibernate/hibernate.ewp | 808 + boards/ek-tm4c1294xl/hibernate/hibernate.icf | 78 + boards/ek-tm4c1294xl/hibernate/hibernate.ld | 57 + boards/ek-tm4c1294xl/hibernate/hibernate.sct | 47 + boards/ek-tm4c1294xl/hibernate/hibernate.uvopt | 373 + boards/ek-tm4c1294xl/hibernate/hibernate.uvproj | 454 + boards/ek-tm4c1294xl/hibernate/hibernate_ccs.cmd | 70 + .../ek-tm4c1294xl/hibernate/hibernate_commands.c | 314 + .../ek-tm4c1294xl/hibernate/hibernate_commands.h | 72 + boards/ek-tm4c1294xl/hibernate/readme.txt | 40 + boards/ek-tm4c1294xl/hibernate/rvmdk/hibernate.axf | Bin 0 -> 77488 bytes boards/ek-tm4c1294xl/hibernate/rvmdk/hibernate.bin | Bin 0 -> 9388 bytes boards/ek-tm4c1294xl/hibernate/startup_ccs.c | 276 + boards/ek-tm4c1294xl/hibernate/startup_ewarm.c | 307 + boards/ek-tm4c1294xl/hibernate/startup_gcc.c | 323 + boards/ek-tm4c1294xl/hibernate/startup_rvmdk.S | 332 + boards/ek-tm4c1294xl/interrupts/Makefile | 89 + boards/ek-tm4c1294xl/interrupts/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/interrupts/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/interrupts/ccs/.cproject | 191 + boards/ek-tm4c1294xl/interrupts/ccs/.project | 60 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../interrupts/ccs/Debug/interrupts.bin | Bin 0 -> 5496 bytes .../interrupts/ccs/Debug/interrupts.out | Bin 0 -> 87638 bytes .../interrupts/ccs/macros.ini_initial | 1 + .../interrupts/ccs/target_config.ccxml | 13 + .../interrupts/ewarm/Exe/interrupts.bin | Bin 0 -> 4520 bytes .../interrupts/ewarm/Exe/interrupts.out | Bin 0 -> 68704 bytes boards/ek-tm4c1294xl/interrupts/gcc/interrupts.axf | Bin 0 -> 40379 bytes boards/ek-tm4c1294xl/interrupts/gcc/interrupts.bin | Bin 0 -> 4736 bytes boards/ek-tm4c1294xl/interrupts/interrupts.c | 632 + boards/ek-tm4c1294xl/interrupts/interrupts.ewd | 614 + boards/ek-tm4c1294xl/interrupts/interrupts.ewp | 794 + boards/ek-tm4c1294xl/interrupts/interrupts.icf | 78 + boards/ek-tm4c1294xl/interrupts/interrupts.ld | 57 + boards/ek-tm4c1294xl/interrupts/interrupts.sct | 47 + boards/ek-tm4c1294xl/interrupts/interrupts.uvopt | 317 + boards/ek-tm4c1294xl/interrupts/interrupts.uvproj | 434 + boards/ek-tm4c1294xl/interrupts/interrupts_ccs.cmd | 70 + boards/ek-tm4c1294xl/interrupts/readme.txt | 34 + .../ek-tm4c1294xl/interrupts/rvmdk/interrupts.axf | Bin 0 -> 33880 bytes .../ek-tm4c1294xl/interrupts/rvmdk/interrupts.bin | Bin 0 -> 4704 bytes boards/ek-tm4c1294xl/interrupts/startup_ccs.c | 277 + boards/ek-tm4c1294xl/interrupts/startup_ewarm.c | 308 + boards/ek-tm4c1294xl/interrupts/startup_gcc.c | 324 + boards/ek-tm4c1294xl/interrupts/startup_rvmdk.S | 333 + boards/ek-tm4c1294xl/mpu_fault/Makefile | 88 + boards/ek-tm4c1294xl/mpu_fault/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/mpu_fault/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/mpu_fault/ccs/.cproject | 189 + boards/ek-tm4c1294xl/mpu_fault/ccs/.project | 60 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../mpu_fault/ccs/Debug/mpu_fault.bin | Bin 0 -> 4816 bytes .../mpu_fault/ccs/Debug/mpu_fault.out | Bin 0 -> 78584 bytes .../ek-tm4c1294xl/mpu_fault/ccs/macros.ini_initial | 1 + .../mpu_fault/ccs/target_config.ccxml | 13 + .../mpu_fault/ewarm/Exe/mpu_fault.bin | Bin 0 -> 3972 bytes .../mpu_fault/ewarm/Exe/mpu_fault.out | Bin 0 -> 56316 bytes boards/ek-tm4c1294xl/mpu_fault/gcc/mpu_fault.axf | Bin 0 -> 39270 bytes boards/ek-tm4c1294xl/mpu_fault/gcc/mpu_fault.bin | Bin 0 -> 4020 bytes boards/ek-tm4c1294xl/mpu_fault/mpu_fault.c | 487 + boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ewd | 614 + boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ewp | 792 + boards/ek-tm4c1294xl/mpu_fault/mpu_fault.icf | 78 + boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ld | 57 + boards/ek-tm4c1294xl/mpu_fault/mpu_fault.sct | 47 + boards/ek-tm4c1294xl/mpu_fault/mpu_fault.uvopt | 317 + boards/ek-tm4c1294xl/mpu_fault/mpu_fault.uvproj | 434 + boards/ek-tm4c1294xl/mpu_fault/mpu_fault_ccs.cmd | 70 + boards/ek-tm4c1294xl/mpu_fault/readme.txt | 29 + boards/ek-tm4c1294xl/mpu_fault/rvmdk/mpu_fault.axf | Bin 0 -> 30072 bytes boards/ek-tm4c1294xl/mpu_fault/rvmdk/mpu_fault.bin | Bin 0 -> 4000 bytes boards/ek-tm4c1294xl/mpu_fault/startup_ccs.c | 275 + boards/ek-tm4c1294xl/mpu_fault/startup_ewarm.c | 306 + boards/ek-tm4c1294xl/mpu_fault/startup_gcc.c | 322 + boards/ek-tm4c1294xl/mpu_fault/startup_rvmdk.S | 331 + boards/ek-tm4c1294xl/qs_iot/Makefile | 112 + boards/ek-tm4c1294xl/qs_iot/ccs/.ccsimportspec | 18 + boards/ek-tm4c1294xl/qs_iot/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/qs_iot/ccs/.cproject | 209 + boards/ek-tm4c1294xl/qs_iot/ccs/.project | 140 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + boards/ek-tm4c1294xl/qs_iot/ccs/Debug/qs_iot.bin | Bin 0 -> 48752 bytes boards/ek-tm4c1294xl/qs_iot/ccs/Debug/qs_iot.out | Bin 0 -> 832286 bytes boards/ek-tm4c1294xl/qs_iot/ccs/macros.ini_initial | 1 + .../ek-tm4c1294xl/qs_iot/ccs/target_config.ccxml | 13 + boards/ek-tm4c1294xl/qs_iot/commands.c | 464 + boards/ek-tm4c1294xl/qs_iot/commands.h | 68 + boards/ek-tm4c1294xl/qs_iot/ewarm/Exe/qs_iot.bin | Bin 0 -> 44988 bytes boards/ek-tm4c1294xl/qs_iot/ewarm/Exe/qs_iot.out | Bin 0 -> 693176 bytes boards/ek-tm4c1294xl/qs_iot/gcc/qs_iot.axf | Bin 0 -> 130093 bytes boards/ek-tm4c1294xl/qs_iot/gcc/qs_iot.bin | Bin 0 -> 49976 bytes boards/ek-tm4c1294xl/qs_iot/lwipopts.h | 446 + boards/ek-tm4c1294xl/qs_iot/qs_iot.c | 1151 + boards/ek-tm4c1294xl/qs_iot/qs_iot.ewd | 614 + boards/ek-tm4c1294xl/qs_iot/qs_iot.ewp | 857 + boards/ek-tm4c1294xl/qs_iot/qs_iot.h | 105 + boards/ek-tm4c1294xl/qs_iot/qs_iot.icf | 78 + boards/ek-tm4c1294xl/qs_iot/qs_iot.ld | 57 + boards/ek-tm4c1294xl/qs_iot/qs_iot.sct | 47 + boards/ek-tm4c1294xl/qs_iot/qs_iot.uvopt | 541 + boards/ek-tm4c1294xl/qs_iot/qs_iot.uvproj | 514 + boards/ek-tm4c1294xl/qs_iot/qs_iot_ccs.cmd | 70 + boards/ek-tm4c1294xl/qs_iot/readme.txt | 58 + boards/ek-tm4c1294xl/qs_iot/requests.c | 349 + boards/ek-tm4c1294xl/qs_iot/requests.h | 84 + boards/ek-tm4c1294xl/qs_iot/rvmdk/qs_iot.axf | Bin 0 -> 445960 bytes boards/ek-tm4c1294xl/qs_iot/rvmdk/qs_iot.bin | Bin 0 -> 45916 bytes boards/ek-tm4c1294xl/qs_iot/startup_ccs.c | 278 + boards/ek-tm4c1294xl/qs_iot/startup_ewarm.c | 309 + boards/ek-tm4c1294xl/qs_iot/startup_gcc.c | 325 + boards/ek-tm4c1294xl/qs_iot/startup_rvmdk.S | 334 + boards/ek-tm4c1294xl/qs_iot/stats.c | 174 + boards/ek-tm4c1294xl/qs_iot/stats.h | 117 + boards/ek-tm4c1294xl/qs_iot/tictactoe.c | 718 + boards/ek-tm4c1294xl/qs_iot/tictactoe.h | 64 + boards/ek-tm4c1294xl/sleep_modes/Makefile | 88 + .../ek-tm4c1294xl/sleep_modes/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/sleep_modes/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/sleep_modes/ccs/.cproject | 189 + boards/ek-tm4c1294xl/sleep_modes/ccs/.project | 60 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../sleep_modes/ccs/Debug/sleep_modes.bin | Bin 0 -> 5096 bytes .../sleep_modes/ccs/Debug/sleep_modes.out | Bin 0 -> 86889 bytes .../sleep_modes/ccs/macros.ini_initial | 1 + .../sleep_modes/ccs/target_config.ccxml | 13 + .../sleep_modes/ewarm/Exe/sleep_modes.bin | Bin 0 -> 4196 bytes .../sleep_modes/ewarm/Exe/sleep_modes.out | Bin 0 -> 57964 bytes .../ek-tm4c1294xl/sleep_modes/gcc/sleep_modes.axf | Bin 0 -> 68371 bytes .../ek-tm4c1294xl/sleep_modes/gcc/sleep_modes.bin | Bin 0 -> 4165 bytes boards/ek-tm4c1294xl/sleep_modes/readme.txt | 40 + .../sleep_modes/rvmdk/sleep_modes.axf | Bin 0 -> 33736 bytes .../sleep_modes/rvmdk/sleep_modes.bin | Bin 0 -> 4188 bytes boards/ek-tm4c1294xl/sleep_modes/sleep_modes.c | 564 + boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ewd | 614 + boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ewp | 792 + boards/ek-tm4c1294xl/sleep_modes/sleep_modes.icf | 78 + boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ld | 57 + boards/ek-tm4c1294xl/sleep_modes/sleep_modes.sct | 47 + boards/ek-tm4c1294xl/sleep_modes/sleep_modes.uvopt | 317 + .../ek-tm4c1294xl/sleep_modes/sleep_modes.uvproj | 434 + .../ek-tm4c1294xl/sleep_modes/sleep_modes_ccs.cmd | 70 + boards/ek-tm4c1294xl/sleep_modes/startup_ccs.c | 276 + boards/ek-tm4c1294xl/sleep_modes/startup_ewarm.c | 307 + boards/ek-tm4c1294xl/sleep_modes/startup_gcc.c | 323 + boards/ek-tm4c1294xl/sleep_modes/startup_rvmdk.S | 332 + boards/ek-tm4c1294xl/timers/Makefile | 85 + boards/ek-tm4c1294xl/timers/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/timers/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/timers/ccs/.cproject | 187 + boards/ek-tm4c1294xl/timers/ccs/.project | 55 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + boards/ek-tm4c1294xl/timers/ccs/Debug/timers.bin | Bin 0 -> 3872 bytes boards/ek-tm4c1294xl/timers/ccs/Debug/timers.out | Bin 0 -> 72172 bytes boards/ek-tm4c1294xl/timers/ccs/macros.ini_initial | 1 + .../ek-tm4c1294xl/timers/ccs/target_config.ccxml | 13 + boards/ek-tm4c1294xl/timers/ewarm/Exe/timers.bin | Bin 0 -> 3052 bytes boards/ek-tm4c1294xl/timers/ewarm/Exe/timers.out | Bin 0 -> 47016 bytes boards/ek-tm4c1294xl/timers/gcc/timers.axf | Bin 0 -> 38053 bytes boards/ek-tm4c1294xl/timers/gcc/timers.bin | Bin 0 -> 3040 bytes boards/ek-tm4c1294xl/timers/readme.txt | 29 + boards/ek-tm4c1294xl/timers/rvmdk/timers.axf | Bin 0 -> 25928 bytes boards/ek-tm4c1294xl/timers/rvmdk/timers.bin | Bin 0 -> 3116 bytes boards/ek-tm4c1294xl/timers/startup_ccs.c | 276 + boards/ek-tm4c1294xl/timers/startup_ewarm.c | 307 + boards/ek-tm4c1294xl/timers/startup_gcc.c | 323 + boards/ek-tm4c1294xl/timers/startup_rvmdk.S | 332 + boards/ek-tm4c1294xl/timers/timers.c | 260 + boards/ek-tm4c1294xl/timers/timers.ewd | 614 + boards/ek-tm4c1294xl/timers/timers.ewp | 787 + boards/ek-tm4c1294xl/timers/timers.icf | 78 + boards/ek-tm4c1294xl/timers/timers.ld | 57 + boards/ek-tm4c1294xl/timers/timers.sct | 47 + boards/ek-tm4c1294xl/timers/timers.uvopt | 303 + boards/ek-tm4c1294xl/timers/timers.uvproj | 429 + boards/ek-tm4c1294xl/timers/timers_ccs.cmd | 70 + boards/ek-tm4c1294xl/uart_echo/Makefile | 79 + boards/ek-tm4c1294xl/uart_echo/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/uart_echo/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/uart_echo/ccs/.cproject | 187 + boards/ek-tm4c1294xl/uart_echo/ccs/.project | 50 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../uart_echo/ccs/Debug/uart_echo.bin | Bin 0 -> 2896 bytes .../uart_echo/ccs/Debug/uart_echo.out | Bin 0 -> 54657 bytes .../ek-tm4c1294xl/uart_echo/ccs/macros.ini_initial | 1 + .../uart_echo/ccs/target_config.ccxml | 13 + .../uart_echo/ewarm/Exe/uart_echo.bin | Bin 0 -> 2300 bytes .../uart_echo/ewarm/Exe/uart_echo.out | Bin 0 -> 33588 bytes boards/ek-tm4c1294xl/uart_echo/gcc/uart_echo.axf | Bin 0 -> 36938 bytes boards/ek-tm4c1294xl/uart_echo/gcc/uart_echo.bin | Bin 0 -> 2284 bytes boards/ek-tm4c1294xl/uart_echo/readme.txt | 26 + boards/ek-tm4c1294xl/uart_echo/rvmdk/uart_echo.axf | Bin 0 -> 21852 bytes boards/ek-tm4c1294xl/uart_echo/rvmdk/uart_echo.bin | Bin 0 -> 2776 bytes boards/ek-tm4c1294xl/uart_echo/startup_ccs.c | 275 + boards/ek-tm4c1294xl/uart_echo/startup_ewarm.c | 306 + boards/ek-tm4c1294xl/uart_echo/startup_gcc.c | 322 + boards/ek-tm4c1294xl/uart_echo/startup_rvmdk.S | 331 + boards/ek-tm4c1294xl/uart_echo/uart_echo.c | 205 + boards/ek-tm4c1294xl/uart_echo/uart_echo.ewd | 614 + boards/ek-tm4c1294xl/uart_echo/uart_echo.ewp | 784 + boards/ek-tm4c1294xl/uart_echo/uart_echo.icf | 78 + boards/ek-tm4c1294xl/uart_echo/uart_echo.ld | 57 + boards/ek-tm4c1294xl/uart_echo/uart_echo.sct | 47 + boards/ek-tm4c1294xl/uart_echo/uart_echo.uvopt | 289 + boards/ek-tm4c1294xl/uart_echo/uart_echo.uvproj | 424 + boards/ek-tm4c1294xl/uart_echo/uart_echo_ccs.cmd | 70 + boards/ek-tm4c1294xl/udma_demo/Makefile | 87 + boards/ek-tm4c1294xl/udma_demo/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/udma_demo/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/udma_demo/ccs/.cproject | 187 + boards/ek-tm4c1294xl/udma_demo/ccs/.project | 65 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../udma_demo/ccs/Debug/udma_demo.bin | Bin 0 -> 5000 bytes .../udma_demo/ccs/Debug/udma_demo.out | Bin 0 -> 90764 bytes .../ek-tm4c1294xl/udma_demo/ccs/macros.ini_initial | 1 + .../udma_demo/ccs/target_config.ccxml | 13 + .../udma_demo/ewarm/Exe/udma_demo.bin | Bin 0 -> 4148 bytes .../udma_demo/ewarm/Exe/udma_demo.out | Bin 0 -> 63760 bytes boards/ek-tm4c1294xl/udma_demo/gcc/udma_demo.axf | Bin 0 -> 40695 bytes boards/ek-tm4c1294xl/udma_demo/gcc/udma_demo.bin | Bin 0 -> 4176 bytes boards/ek-tm4c1294xl/udma_demo/readme.txt | 28 + boards/ek-tm4c1294xl/udma_demo/rvmdk/udma_demo.axf | Bin 0 -> 34736 bytes boards/ek-tm4c1294xl/udma_demo/rvmdk/udma_demo.bin | Bin 0 -> 4144 bytes boards/ek-tm4c1294xl/udma_demo/startup_ccs.c | 278 + boards/ek-tm4c1294xl/udma_demo/startup_ewarm.c | 309 + boards/ek-tm4c1294xl/udma_demo/startup_gcc.c | 325 + boards/ek-tm4c1294xl/udma_demo/startup_rvmdk.S | 334 + boards/ek-tm4c1294xl/udma_demo/udma_demo.c | 948 + boards/ek-tm4c1294xl/udma_demo/udma_demo.ewd | 614 + boards/ek-tm4c1294xl/udma_demo/udma_demo.ewp | 793 + boards/ek-tm4c1294xl/udma_demo/udma_demo.icf | 78 + boards/ek-tm4c1294xl/udma_demo/udma_demo.ld | 57 + boards/ek-tm4c1294xl/udma_demo/udma_demo.sct | 47 + boards/ek-tm4c1294xl/udma_demo/udma_demo.uvopt | 331 + boards/ek-tm4c1294xl/udma_demo/udma_demo.uvproj | 439 + boards/ek-tm4c1294xl/udma_demo/udma_demo_ccs.cmd | 70 + boards/ek-tm4c1294xl/usb_dev_bulk/Makefile | 91 + .../ek-tm4c1294xl/usb_dev_bulk/ccs/.ccsimportspec | 10 + boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.cproject | 193 + boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.project | 70 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../usb_dev_bulk/ccs/Debug/usb_dev_bulk.bin | Bin 0 -> 16088 bytes .../usb_dev_bulk/ccs/Debug/usb_dev_bulk.out | Bin 0 -> 449586 bytes .../usb_dev_bulk/ccs/macros.ini_initial | 1 + .../usb_dev_bulk/ccs/target_config.ccxml | 13 + .../usb_dev_bulk/ewarm/Exe/usb_dev_bulk.bin | Bin 0 -> 14948 bytes .../usb_dev_bulk/ewarm/Exe/usb_dev_bulk.out | Bin 0 -> 327576 bytes .../usb_dev_bulk/gcc/usb_dev_bulk.axf | Bin 0 -> 80765 bytes .../usb_dev_bulk/gcc/usb_dev_bulk.bin | Bin 0 -> 15545 bytes boards/ek-tm4c1294xl/usb_dev_bulk/readme.txt | 43 + .../usb_dev_bulk/rvmdk/usb_dev_bulk.axf | Bin 0 -> 235224 bytes .../usb_dev_bulk/rvmdk/usb_dev_bulk.bin | Bin 0 -> 16400 bytes boards/ek-tm4c1294xl/usb_dev_bulk/startup_ccs.c | 277 + boards/ek-tm4c1294xl/usb_dev_bulk/startup_ewarm.c | 308 + boards/ek-tm4c1294xl/usb_dev_bulk/startup_gcc.c | 324 + boards/ek-tm4c1294xl/usb_dev_bulk/startup_rvmdk.S | 333 + .../ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.c | 199 + .../ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.h | 68 + boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.c | 537 + boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ewd | 614 + boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ewp | 802 + boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.icf | 78 + boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ld | 57 + boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.sct | 47 + .../ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.uvopt | 359 + .../ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.uvproj | 449 + .../usb_dev_bulk/usb_dev_bulk_ccs.cmd | 70 + boards/ek-tm4c1294xl/usb_dev_cserial/Makefile | 91 + .../usb_dev_cserial/ccs/.ccsimportspec | 10 + .../ek-tm4c1294xl/usb_dev_cserial/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.cproject | 193 + boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.project | 70 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../usb_dev_cserial/ccs/Debug/usb_dev_cserial.bin | Bin 0 -> 19376 bytes .../usb_dev_cserial/ccs/Debug/usb_dev_cserial.out | Bin 0 -> 552718 bytes .../usb_dev_cserial/ccs/macros.ini_initial | 1 + .../usb_dev_cserial/ccs/target_config.ccxml | 13 + .../usb_dev_cserial/ewarm/Exe/usb_dev_cserial.bin | Bin 0 -> 18332 bytes .../usb_dev_cserial/ewarm/Exe/usb_dev_cserial.out | Bin 0 -> 407164 bytes .../usb_dev_cserial/gcc/usb_dev_cserial.axf | Bin 0 -> 84423 bytes .../usb_dev_cserial/gcc/usb_dev_cserial.bin | Bin 0 -> 19601 bytes boards/ek-tm4c1294xl/usb_dev_cserial/readme.txt | 47 + .../usb_dev_cserial/rvmdk/usb_dev_cserial.axf | Bin 0 -> 307212 bytes .../usb_dev_cserial/rvmdk/usb_dev_cserial.bin | Bin 0 -> 20348 bytes boards/ek-tm4c1294xl/usb_dev_cserial/startup_ccs.c | 277 + .../ek-tm4c1294xl/usb_dev_cserial/startup_ewarm.c | 308 + boards/ek-tm4c1294xl/usb_dev_cserial/startup_gcc.c | 324 + .../ek-tm4c1294xl/usb_dev_cserial/startup_rvmdk.S | 333 + .../usb_dev_cserial/usb_dev_cserial.c | 1687 + .../usb_dev_cserial/usb_dev_cserial.ewd | 614 + .../usb_dev_cserial/usb_dev_cserial.ewp | 802 + .../usb_dev_cserial/usb_dev_cserial.icf | 78 + .../usb_dev_cserial/usb_dev_cserial.ld | 57 + .../usb_dev_cserial/usb_dev_cserial.sct | 47 + .../usb_dev_cserial/usb_dev_cserial.uvopt | 359 + .../usb_dev_cserial/usb_dev_cserial.uvproj | 449 + .../usb_dev_cserial/usb_dev_cserial_ccs.cmd | 70 + boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.c | 298 + boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.h | 62 + boards/ek-tm4c1294xl/usb_dev_keyboard/Makefile | 91 + .../usb_dev_keyboard/ccs/.ccsimportspec | 10 + .../ek-tm4c1294xl/usb_dev_keyboard/ccs/.ccsproject | 10 + .../ek-tm4c1294xl/usb_dev_keyboard/ccs/.cproject | 193 + boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.project | 70 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../ccs/Debug/usb_dev_keyboard.bin | Bin 0 -> 17336 bytes .../ccs/Debug/usb_dev_keyboard.out | Bin 0 -> 465936 bytes .../usb_dev_keyboard/ccs/macros.ini_initial | 1 + .../usb_dev_keyboard/ccs/target_config.ccxml | 13 + .../ewarm/Exe/usb_dev_keyboard.bin | Bin 0 -> 15964 bytes .../ewarm/Exe/usb_dev_keyboard.out | Bin 0 -> 332436 bytes .../usb_dev_keyboard/gcc/usb_dev_keyboard.axf | Bin 0 -> 81230 bytes .../usb_dev_keyboard/gcc/usb_dev_keyboard.bin | Bin 0 -> 16778 bytes boards/ek-tm4c1294xl/usb_dev_keyboard/readme.txt | 36 + .../usb_dev_keyboard/rvmdk/usb_dev_keyboard.axf | Bin 0 -> 252648 bytes .../usb_dev_keyboard/rvmdk/usb_dev_keyboard.bin | Bin 0 -> 17596 bytes .../ek-tm4c1294xl/usb_dev_keyboard/startup_ccs.c | 277 + .../ek-tm4c1294xl/usb_dev_keyboard/startup_ewarm.c | 308 + .../ek-tm4c1294xl/usb_dev_keyboard/startup_gcc.c | 324 + .../ek-tm4c1294xl/usb_dev_keyboard/startup_rvmdk.S | 333 + .../usb_dev_keyboard/usb_dev_keyboard.c | 677 + .../usb_dev_keyboard/usb_dev_keyboard.ewd | 614 + .../usb_dev_keyboard/usb_dev_keyboard.ewp | 802 + .../usb_dev_keyboard/usb_dev_keyboard.icf | 78 + .../usb_dev_keyboard/usb_dev_keyboard.ld | 57 + .../usb_dev_keyboard/usb_dev_keyboard.sct | 47 + .../usb_dev_keyboard/usb_dev_keyboard.uvopt | 359 + .../usb_dev_keyboard/usb_dev_keyboard.uvproj | 449 + .../usb_dev_keyboard/usb_dev_keyboard_ccs.cmd | 70 + .../usb_dev_keyboard/usb_keyb_structs.c | 149 + .../usb_dev_keyboard/usb_keyb_structs.h | 52 + boards/ek-tm4c1294xl/usb_host_keyboard/Makefile | 89 + .../usb_host_keyboard/ccs/.ccsimportspec | 8 + .../usb_host_keyboard/ccs/.ccsproject | 10 + .../ek-tm4c1294xl/usb_host_keyboard/ccs/.cproject | 191 + .../ek-tm4c1294xl/usb_host_keyboard/ccs/.project | 60 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../ccs/Debug/usb_host_keyboard.bin | Bin 0 -> 22032 bytes .../ccs/Debug/usb_host_keyboard.out | Bin 0 -> 539865 bytes .../usb_host_keyboard/ccs/macros.ini_initial | 1 + .../usb_host_keyboard/ccs/target_config.ccxml | 13 + .../ewarm/Exe/usb_host_keyboard.bin | Bin 0 -> 20288 bytes .../ewarm/Exe/usb_host_keyboard.out | Bin 0 -> 399496 bytes .../usb_host_keyboard/gcc/usb_host_keyboard.axf | Bin 0 -> 82545 bytes .../usb_host_keyboard/gcc/usb_host_keyboard.bin | Bin 0 -> 21558 bytes boards/ek-tm4c1294xl/usb_host_keyboard/readme.txt | 29 + .../usb_host_keyboard/rvmdk/usb_host_keyboard.axf | Bin 0 -> 294936 bytes .../usb_host_keyboard/rvmdk/usb_host_keyboard.bin | Bin 0 -> 23292 bytes .../ek-tm4c1294xl/usb_host_keyboard/startup_ccs.c | 276 + .../usb_host_keyboard/startup_ewarm.c | 307 + .../ek-tm4c1294xl/usb_host_keyboard/startup_gcc.c | 323 + .../usb_host_keyboard/startup_rvmdk.S | 332 + .../usb_host_keyboard/usb_host_keyboard.c | 667 + .../usb_host_keyboard/usb_host_keyboard.ewd | 614 + .../usb_host_keyboard/usb_host_keyboard.ewp | 795 + .../usb_host_keyboard/usb_host_keyboard.icf | 78 + .../usb_host_keyboard/usb_host_keyboard.ld | 57 + .../usb_host_keyboard/usb_host_keyboard.sct | 47 + .../usb_host_keyboard/usb_host_keyboard.uvopt | 331 + .../usb_host_keyboard/usb_host_keyboard.uvproj | 439 + .../usb_host_keyboard/usb_host_keyboard_ccs.cmd | 70 + boards/ek-tm4c1294xl/usb_host_mouse/Makefile | 90 + .../usb_host_mouse/ccs/.ccsimportspec | 8 + .../ek-tm4c1294xl/usb_host_mouse/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/usb_host_mouse/ccs/.cproject | 191 + boards/ek-tm4c1294xl/usb_host_mouse/ccs/.project | 65 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../usb_host_mouse/ccs/Debug/usb_host_mouse.bin | Bin 0 -> 16808 bytes .../usb_host_mouse/ccs/Debug/usb_host_mouse.out | Bin 0 -> 412244 bytes .../usb_host_mouse/ccs/macros.ini_initial | 1 + .../usb_host_mouse/ccs/target_config.ccxml | 13 + .../usb_host_mouse/ewarm/Exe/usb_host_mouse.bin | Bin 0 -> 15160 bytes .../usb_host_mouse/ewarm/Exe/usb_host_mouse.out | Bin 0 -> 311380 bytes .../usb_host_mouse/gcc/usb_host_mouse.axf | Bin 0 -> 78986 bytes .../usb_host_mouse/gcc/usb_host_mouse.bin | Bin 0 -> 16306 bytes boards/ek-tm4c1294xl/usb_host_mouse/readme.txt | 30 + .../usb_host_mouse/rvmdk/usb_host_mouse.axf | Bin 0 -> 218904 bytes .../usb_host_mouse/rvmdk/usb_host_mouse.bin | Bin 0 -> 17412 bytes boards/ek-tm4c1294xl/usb_host_mouse/startup_ccs.c | 275 + .../ek-tm4c1294xl/usb_host_mouse/startup_ewarm.c | 306 + boards/ek-tm4c1294xl/usb_host_mouse/startup_gcc.c | 322 + .../ek-tm4c1294xl/usb_host_mouse/startup_rvmdk.S | 331 + .../ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.c | 551 + .../usb_host_mouse/usb_host_mouse.ewd | 614 + .../usb_host_mouse/usb_host_mouse.ewp | 798 + .../usb_host_mouse/usb_host_mouse.icf | 78 + .../ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ld | 57 + .../usb_host_mouse/usb_host_mouse.sct | 47 + .../usb_host_mouse/usb_host_mouse.uvopt | 345 + .../usb_host_mouse/usb_host_mouse.uvproj | 444 + .../usb_host_mouse/usb_host_mouse_ccs.cmd | 70 + boards/ek-tm4c1294xl/usb_host_msc/Makefile | 96 + .../ek-tm4c1294xl/usb_host_msc/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/usb_host_msc/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/usb_host_msc/ccs/.cproject | 193 + boards/ek-tm4c1294xl/usb_host_msc/ccs/.project | 80 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../usb_host_msc/ccs/Debug/usb_host_msc.bin | Bin 0 -> 29128 bytes .../usb_host_msc/ccs/Debug/usb_host_msc.out | Bin 0 -> 652476 bytes .../usb_host_msc/ccs/macros.ini_initial | 1 + .../usb_host_msc/ccs/target_config.ccxml | 13 + .../usb_host_msc/ewarm/Exe/usb_host_msc.bin | Bin 0 -> 27124 bytes .../usb_host_msc/ewarm/Exe/usb_host_msc.out | Bin 0 -> 505168 bytes .../usb_host_msc/gcc/usb_host_msc.axf | Bin 0 -> 85936 bytes .../usb_host_msc/gcc/usb_host_msc.bin | Bin 0 -> 29766 bytes boards/ek-tm4c1294xl/usb_host_msc/readme.txt | 34 + .../usb_host_msc/rvmdk/usb_host_msc.axf | Bin 0 -> 328448 bytes .../usb_host_msc/rvmdk/usb_host_msc.bin | Bin 0 -> 29876 bytes boards/ek-tm4c1294xl/usb_host_msc/startup_ccs.c | 276 + boards/ek-tm4c1294xl/usb_host_msc/startup_ewarm.c | 307 + boards/ek-tm4c1294xl/usb_host_msc/startup_gcc.c | 323 + boards/ek-tm4c1294xl/usb_host_msc/startup_rvmdk.S | 332 + boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.c | 1469 + boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ewd | 614 + boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ewp | 809 + boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.icf | 78 + boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ld | 57 + boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.sct | 47 + .../ek-tm4c1294xl/usb_host_msc/usb_host_msc.uvopt | 387 + .../ek-tm4c1294xl/usb_host_msc/usb_host_msc.uvproj | 459 + .../usb_host_msc/usb_host_msc_ccs.cmd | 70 + boards/ek-tm4c1294xl/usb_stick_demo/Makefile | 88 + .../usb_stick_demo/ccs/.ccsimportspec | 8 + .../ek-tm4c1294xl/usb_stick_demo/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/usb_stick_demo/ccs/.cproject | 189 + boards/ek-tm4c1294xl/usb_stick_demo/ccs/.project | 60 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../usb_stick_demo/ccs/Debug/usb_stick_demo.bin | Bin 0 -> 4552 bytes .../usb_stick_demo/ccs/Debug/usb_stick_demo.out | Bin 0 -> 77768 bytes .../usb_stick_demo/ccs/macros.ini_initial | 1 + .../usb_stick_demo/ccs/target_config.ccxml | 13 + .../usb_stick_demo/ewarm/Exe/usb_stick_demo.bin | Bin 0 -> 3760 bytes .../usb_stick_demo/ewarm/Exe/usb_stick_demo.out | Bin 0 -> 55048 bytes .../usb_stick_demo/gcc/usb_stick_demo.axf | Bin 0 -> 38856 bytes .../usb_stick_demo/gcc/usb_stick_demo.bin | Bin 0 -> 3776 bytes boards/ek-tm4c1294xl/usb_stick_demo/readme.txt | 39 + .../usb_stick_demo/rvmdk/usb_stick_demo.axf | Bin 0 -> 28500 bytes .../usb_stick_demo/rvmdk/usb_stick_demo.bin | Bin 0 -> 3788 bytes boards/ek-tm4c1294xl/usb_stick_demo/startup_ccs.c | 268 + .../ek-tm4c1294xl/usb_stick_demo/startup_ewarm.c | 299 + boards/ek-tm4c1294xl/usb_stick_demo/startup_gcc.c | 315 + .../ek-tm4c1294xl/usb_stick_demo/startup_rvmdk.S | 324 + .../ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.c | 273 + .../usb_stick_demo/usb_stick_demo.ewd | 614 + .../usb_stick_demo/usb_stick_demo.ewp | 792 + .../usb_stick_demo/usb_stick_demo.icf | 78 + .../ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ld | 57 + .../usb_stick_demo/usb_stick_demo.sct | 47 + .../usb_stick_demo/usb_stick_demo.uvopt | 317 + .../usb_stick_demo/usb_stick_demo.uvproj | 434 + .../usb_stick_demo/usb_stick_demo_ccs.cmd | 70 + boards/ek-tm4c1294xl/usb_stick_update/Makefile | 87 + .../usb_stick_update/ccs/.ccsimportspec | 10 + .../ek-tm4c1294xl/usb_stick_update/ccs/.ccsproject | 10 + .../ek-tm4c1294xl/usb_stick_update/ccs/.cproject | 191 + boards/ek-tm4c1294xl/usb_stick_update/ccs/.project | 55 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../ccs/Debug/usb_stick_update.bin | Bin 0 -> 17008 bytes .../ccs/Debug/usb_stick_update.out | Bin 0 -> 420605 bytes .../usb_stick_update/ccs/macros.ini_initial | 1 + .../usb_stick_update/ccs/target_config.ccxml | 13 + .../ewarm/Exe/usb_stick_update.bin | Bin 0 -> 15476 bytes .../ewarm/Exe/usb_stick_update.out | Bin 0 -> 323024 bytes .../usb_stick_update/gcc/usb_stick_update.axf | Bin 0 -> 79550 bytes .../usb_stick_update/gcc/usb_stick_update.bin | Bin 0 -> 16974 bytes boards/ek-tm4c1294xl/usb_stick_update/readme.txt | 49 + .../usb_stick_update/rvmdk/usb_stick_update.axf | Bin 0 -> 228256 bytes .../usb_stick_update/rvmdk/usb_stick_update.bin | Bin 0 -> 17976 bytes boards/ek-tm4c1294xl/usb_stick_update/simple_fs.c | 865 + boards/ek-tm4c1294xl/usb_stick_update/simple_fs.h | 105 + .../ek-tm4c1294xl/usb_stick_update/startup_ccs.c | 276 + .../ek-tm4c1294xl/usb_stick_update/startup_ewarm.c | 307 + .../ek-tm4c1294xl/usb_stick_update/startup_gcc.c | 323 + .../ek-tm4c1294xl/usb_stick_update/startup_rvmdk.S | 332 + .../usb_stick_update/usb_stick_update.c | 943 + .../usb_stick_update/usb_stick_update.ewd | 614 + .../usb_stick_update/usb_stick_update.ewp | 792 + .../usb_stick_update/usb_stick_update.icf | 78 + .../usb_stick_update/usb_stick_update.ld | 57 + .../usb_stick_update/usb_stick_update.sct | 47 + .../usb_stick_update/usb_stick_update.uvopt | 317 + .../usb_stick_update/usb_stick_update.uvproj | 434 + .../usb_stick_update/usb_stick_update_ccs.cmd | 70 + boards/ek-tm4c1294xl/watchdog/Makefile | 86 + boards/ek-tm4c1294xl/watchdog/ccs/.ccsimportspec | 8 + boards/ek-tm4c1294xl/watchdog/ccs/.ccsproject | 10 + boards/ek-tm4c1294xl/watchdog/ccs/.cproject | 189 + boards/ek-tm4c1294xl/watchdog/ccs/.project | 55 + .../ccs/.settings/org.eclipse.cdt.codan.core.prefs | 3 + .../ek-tm4c1294xl/watchdog/ccs/Debug/watchdog.bin | Bin 0 -> 3024 bytes .../ek-tm4c1294xl/watchdog/ccs/Debug/watchdog.out | Bin 0 -> 57402 bytes .../ek-tm4c1294xl/watchdog/ccs/macros.ini_initial | 1 + .../ek-tm4c1294xl/watchdog/ccs/target_config.ccxml | 13 + .../ek-tm4c1294xl/watchdog/ewarm/Exe/watchdog.bin | Bin 0 -> 2404 bytes .../ek-tm4c1294xl/watchdog/ewarm/Exe/watchdog.out | Bin 0 -> 36416 bytes boards/ek-tm4c1294xl/watchdog/gcc/watchdog.axf | Bin 0 -> 67608 bytes boards/ek-tm4c1294xl/watchdog/gcc/watchdog.bin | Bin 0 -> 2462 bytes boards/ek-tm4c1294xl/watchdog/readme.txt | 28 + boards/ek-tm4c1294xl/watchdog/rvmdk/watchdog.axf | Bin 0 -> 22116 bytes boards/ek-tm4c1294xl/watchdog/rvmdk/watchdog.bin | Bin 0 -> 2516 bytes boards/ek-tm4c1294xl/watchdog/startup_ccs.c | 275 + boards/ek-tm4c1294xl/watchdog/startup_ewarm.c | 306 + boards/ek-tm4c1294xl/watchdog/startup_gcc.c | 322 + boards/ek-tm4c1294xl/watchdog/startup_rvmdk.S | 331 + boards/ek-tm4c1294xl/watchdog/watchdog.c | 205 + boards/ek-tm4c1294xl/watchdog/watchdog.ewd | 614 + boards/ek-tm4c1294xl/watchdog/watchdog.ewp | 789 + boards/ek-tm4c1294xl/watchdog/watchdog.icf | 78 + boards/ek-tm4c1294xl/watchdog/watchdog.ld | 57 + boards/ek-tm4c1294xl/watchdog/watchdog.sct | 47 + boards/ek-tm4c1294xl/watchdog/watchdog.uvopt | 303 + boards/ek-tm4c1294xl/watchdog/watchdog.uvproj | 429 + boards/ek-tm4c1294xl/watchdog/watchdog_ccs.cmd | 70 + 836 files changed, 200165 insertions(+) create mode 100644 boards/Makefile create mode 100644 boards/ek-tm4c1294xl/Makefile create mode 100644 boards/ek-tm4c1294xl/bitband/Makefile create mode 100644 boards/ek-tm4c1294xl/bitband/bitband.c create mode 100644 boards/ek-tm4c1294xl/bitband/bitband.ewd create mode 100644 boards/ek-tm4c1294xl/bitband/bitband.ewp create mode 100644 boards/ek-tm4c1294xl/bitband/bitband.icf create mode 100644 boards/ek-tm4c1294xl/bitband/bitband.ld create mode 100644 boards/ek-tm4c1294xl/bitband/bitband.sct create mode 100644 boards/ek-tm4c1294xl/bitband/bitband.uvopt create mode 100644 boards/ek-tm4c1294xl/bitband/bitband.uvproj create mode 100644 boards/ek-tm4c1294xl/bitband/bitband_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/bitband/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/bitband/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/bitband/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/bitband/ccs/.project create mode 100644 boards/ek-tm4c1294xl/bitband/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/bitband/ccs/Debug/bitband.bin create mode 100644 boards/ek-tm4c1294xl/bitband/ccs/Debug/bitband.out create mode 100644 boards/ek-tm4c1294xl/bitband/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/bitband/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/bitband/ewarm/Exe/bitband.bin create mode 100644 boards/ek-tm4c1294xl/bitband/ewarm/Exe/bitband.out create mode 100644 boards/ek-tm4c1294xl/bitband/gcc/bitband.axf create mode 100644 boards/ek-tm4c1294xl/bitband/gcc/bitband.bin create mode 100644 boards/ek-tm4c1294xl/bitband/readme.txt create mode 100644 boards/ek-tm4c1294xl/bitband/rvmdk/bitband.axf create mode 100644 boards/ek-tm4c1294xl/bitband/rvmdk/bitband.bin create mode 100644 boards/ek-tm4c1294xl/bitband/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/bitband/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/bitband/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/bitband/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/blinky/Makefile create mode 100644 boards/ek-tm4c1294xl/blinky/blinky.c create mode 100644 boards/ek-tm4c1294xl/blinky/blinky.ewd create mode 100644 boards/ek-tm4c1294xl/blinky/blinky.ewp create mode 100644 boards/ek-tm4c1294xl/blinky/blinky.icf create mode 100644 boards/ek-tm4c1294xl/blinky/blinky.ld create mode 100644 boards/ek-tm4c1294xl/blinky/blinky.sct create mode 100644 boards/ek-tm4c1294xl/blinky/blinky.uvopt create mode 100644 boards/ek-tm4c1294xl/blinky/blinky.uvproj create mode 100644 boards/ek-tm4c1294xl/blinky/blinky_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/blinky/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/blinky/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/blinky/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/blinky/ccs/.project create mode 100644 boards/ek-tm4c1294xl/blinky/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/blinky/ccs/Debug/blinky.bin create mode 100644 boards/ek-tm4c1294xl/blinky/ccs/Debug/blinky.out create mode 100644 boards/ek-tm4c1294xl/blinky/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/blinky/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/blinky/ewarm/Exe/blinky.bin create mode 100644 boards/ek-tm4c1294xl/blinky/ewarm/Exe/blinky.out create mode 100644 boards/ek-tm4c1294xl/blinky/gcc/blinky.axf create mode 100644 boards/ek-tm4c1294xl/blinky/gcc/blinky.bin create mode 100644 boards/ek-tm4c1294xl/blinky/readme.txt create mode 100644 boards/ek-tm4c1294xl/blinky/rvmdk/blinky.axf create mode 100644 boards/ek-tm4c1294xl/blinky/rvmdk/blinky.bin create mode 100644 boards/ek-tm4c1294xl/blinky/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/blinky/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/blinky/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/blinky/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/drivers/buttons.c create mode 100644 boards/ek-tm4c1294xl/drivers/buttons.h create mode 100644 boards/ek-tm4c1294xl/drivers/eth_client_lwip.c create mode 100644 boards/ek-tm4c1294xl/drivers/eth_client_lwip.h create mode 100644 boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.c create mode 100644 boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.h create mode 100644 boards/ek-tm4c1294xl/drivers/http.c create mode 100644 boards/ek-tm4c1294xl/drivers/http.h create mode 100644 boards/ek-tm4c1294xl/drivers/pinout.c create mode 100644 boards/ek-tm4c1294xl/drivers/pinout.h create mode 100644 boards/ek-tm4c1294xl/ek-tm4c1294xl.eww create mode 100644 boards/ek-tm4c1294xl/ek-tm4c1294xl.uvmpw create mode 100644 boards/ek-tm4c1294xl/enet_io/Makefile create mode 100644 boards/ek-tm4c1294xl/enet_io/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/enet_io/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/enet_io/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/enet_io/ccs/.project create mode 100644 boards/ek-tm4c1294xl/enet_io/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/enet_io/ccs/Debug/enet_io.bin create mode 100644 boards/ek-tm4c1294xl/enet_io/ccs/Debug/enet_io.out create mode 100644 boards/ek-tm4c1294xl/enet_io/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/enet_io/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/enet_io/cgifuncs.c create mode 100644 boards/ek-tm4c1294xl/enet_io/cgifuncs.h create mode 100644 boards/ek-tm4c1294xl/enet_io/enet_io.c create mode 100644 boards/ek-tm4c1294xl/enet_io/enet_io.ewd create mode 100644 boards/ek-tm4c1294xl/enet_io/enet_io.ewp create mode 100644 boards/ek-tm4c1294xl/enet_io/enet_io.icf create mode 100644 boards/ek-tm4c1294xl/enet_io/enet_io.ld create mode 100644 boards/ek-tm4c1294xl/enet_io/enet_io.sct create mode 100644 boards/ek-tm4c1294xl/enet_io/enet_io.uvopt create mode 100644 boards/ek-tm4c1294xl/enet_io/enet_io.uvproj create mode 100644 boards/ek-tm4c1294xl/enet_io/enet_io_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/enet_io/ewarm/Exe/enet_io.bin create mode 100644 boards/ek-tm4c1294xl/enet_io/ewarm/Exe/enet_io.out create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/404.htm create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/about.htm create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/block.htm create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/block.jpg create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/ek-tm4c1294xl.jpg create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/favicon.ico create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/index.htm create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/io_cgi.ssi create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/io_http.htm create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/javascript.js create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/javascript_load.js create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/overview.htm create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/perror.htm create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/styles.css create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/ti.jpg create mode 100644 boards/ek-tm4c1294xl/enet_io/fs/tm4c.jpg create mode 100644 boards/ek-tm4c1294xl/enet_io/gcc/enet_io.axf create mode 100644 boards/ek-tm4c1294xl/enet_io/gcc/enet_io.bin create mode 100644 boards/ek-tm4c1294xl/enet_io/io.c create mode 100644 boards/ek-tm4c1294xl/enet_io/io.h create mode 100644 boards/ek-tm4c1294xl/enet_io/io_fs.c create mode 100644 boards/ek-tm4c1294xl/enet_io/io_fsdata.h create mode 100644 boards/ek-tm4c1294xl/enet_io/lwipopts.h create mode 100644 boards/ek-tm4c1294xl/enet_io/readme.txt create mode 100644 boards/ek-tm4c1294xl/enet_io/rvmdk/enet_io.axf create mode 100644 boards/ek-tm4c1294xl/enet_io/rvmdk/enet_io.bin create mode 100644 boards/ek-tm4c1294xl/enet_io/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/enet_io/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/enet_io/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/enet_io/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/enet_lwip/Makefile create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ccs/.project create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ccs/Debug/enet_lwip.bin create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ccs/Debug/enet_lwip.out create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_fs.c create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_fs.h create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_fsdata.h create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_lwip.c create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ewd create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ewp create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_lwip.icf create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ld create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_lwip.sct create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_lwip.uvopt create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_lwip.uvproj create mode 100644 boards/ek-tm4c1294xl/enet_lwip/enet_lwip_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ewarm/Exe/enet_lwip.bin create mode 100644 boards/ek-tm4c1294xl/enet_lwip/ewarm/Exe/enet_lwip.out create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/404.htm create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/about.htm create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/block.htm create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/block.jpg create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/ek-tm4c1294xl.jpg create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/favicon.ico create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/index.htm create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/javascript.js create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/overview.htm create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/styles.css create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/ti.jpg create mode 100644 boards/ek-tm4c1294xl/enet_lwip/fs/tm4c.jpg create mode 100644 boards/ek-tm4c1294xl/enet_lwip/gcc/enet_lwip.axf create mode 100644 boards/ek-tm4c1294xl/enet_lwip/gcc/enet_lwip.bin create mode 100644 boards/ek-tm4c1294xl/enet_lwip/lwipopts.h create mode 100644 boards/ek-tm4c1294xl/enet_lwip/readme.txt create mode 100644 boards/ek-tm4c1294xl/enet_lwip/rvmdk/enet_lwip.axf create mode 100644 boards/ek-tm4c1294xl/enet_lwip/rvmdk/enet_lwip.bin create mode 100644 boards/ek-tm4c1294xl/enet_lwip/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/enet_lwip/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/enet_lwip/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/enet_lwip/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/enet_uip/Makefile create mode 100644 boards/ek-tm4c1294xl/enet_uip/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/enet_uip/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/enet_uip/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/enet_uip/ccs/.project create mode 100644 boards/ek-tm4c1294xl/enet_uip/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/enet_uip/ccs/Debug/enet_uip.bin create mode 100644 boards/ek-tm4c1294xl/enet_uip/ccs/Debug/enet_uip.out create mode 100644 boards/ek-tm4c1294xl/enet_uip/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/enet_uip/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/enet_uip/clock-arch.h create mode 100644 boards/ek-tm4c1294xl/enet_uip/enet_uip.c create mode 100644 boards/ek-tm4c1294xl/enet_uip/enet_uip.ewd create mode 100644 boards/ek-tm4c1294xl/enet_uip/enet_uip.ewp create mode 100644 boards/ek-tm4c1294xl/enet_uip/enet_uip.icf create mode 100644 boards/ek-tm4c1294xl/enet_uip/enet_uip.ld create mode 100644 boards/ek-tm4c1294xl/enet_uip/enet_uip.sct create mode 100644 boards/ek-tm4c1294xl/enet_uip/enet_uip.uvopt create mode 100644 boards/ek-tm4c1294xl/enet_uip/enet_uip.uvproj create mode 100644 boards/ek-tm4c1294xl/enet_uip/enet_uip_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/enet_uip/ewarm/Exe/enet_uip.bin create mode 100644 boards/ek-tm4c1294xl/enet_uip/ewarm/Exe/enet_uip.out create mode 100644 boards/ek-tm4c1294xl/enet_uip/gcc/enet_uip.axf create mode 100644 boards/ek-tm4c1294xl/enet_uip/gcc/enet_uip.bin create mode 100644 boards/ek-tm4c1294xl/enet_uip/readme.txt create mode 100644 boards/ek-tm4c1294xl/enet_uip/rvmdk/enet_uip.axf create mode 100644 boards/ek-tm4c1294xl/enet_uip/rvmdk/enet_uip.bin create mode 100644 boards/ek-tm4c1294xl/enet_uip/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/enet_uip/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/enet_uip/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/enet_uip/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/enet_uip/uip-conf.h create mode 100644 boards/ek-tm4c1294xl/enet_weather/Makefile create mode 100644 boards/ek-tm4c1294xl/enet_weather/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/enet_weather/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/enet_weather/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/enet_weather/ccs/.project create mode 100644 boards/ek-tm4c1294xl/enet_weather/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/enet_weather/ccs/Debug/enet_weather.bin create mode 100644 boards/ek-tm4c1294xl/enet_weather/ccs/Debug/enet_weather.out create mode 100644 boards/ek-tm4c1294xl/enet_weather/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/enet_weather/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/enet_weather/commands.c create mode 100644 boards/ek-tm4c1294xl/enet_weather/commands.h create mode 100644 boards/ek-tm4c1294xl/enet_weather/debug.h create mode 100644 boards/ek-tm4c1294xl/enet_weather/enet_weather.c create mode 100644 boards/ek-tm4c1294xl/enet_weather/enet_weather.ewd create mode 100644 boards/ek-tm4c1294xl/enet_weather/enet_weather.ewp create mode 100644 boards/ek-tm4c1294xl/enet_weather/enet_weather.h create mode 100644 boards/ek-tm4c1294xl/enet_weather/enet_weather.icf create mode 100644 boards/ek-tm4c1294xl/enet_weather/enet_weather.ld create mode 100644 boards/ek-tm4c1294xl/enet_weather/enet_weather.sct create mode 100644 boards/ek-tm4c1294xl/enet_weather/enet_weather.uvopt create mode 100644 boards/ek-tm4c1294xl/enet_weather/enet_weather.uvproj create mode 100644 boards/ek-tm4c1294xl/enet_weather/enet_weather_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/enet_weather/eth_client.c create mode 100644 boards/ek-tm4c1294xl/enet_weather/eth_client.h create mode 100644 boards/ek-tm4c1294xl/enet_weather/ewarm/Exe/enet_weather.bin create mode 100644 boards/ek-tm4c1294xl/enet_weather/ewarm/Exe/enet_weather.out create mode 100644 boards/ek-tm4c1294xl/enet_weather/gcc/enet_weather.axf create mode 100644 boards/ek-tm4c1294xl/enet_weather/gcc/enet_weather.bin create mode 100644 boards/ek-tm4c1294xl/enet_weather/images.c create mode 100644 boards/ek-tm4c1294xl/enet_weather/images.h create mode 100644 boards/ek-tm4c1294xl/enet_weather/json.c create mode 100644 boards/ek-tm4c1294xl/enet_weather/json.h create mode 100644 boards/ek-tm4c1294xl/enet_weather/lwipopts.h create mode 100644 boards/ek-tm4c1294xl/enet_weather/readme.txt create mode 100644 boards/ek-tm4c1294xl/enet_weather/rvmdk/enet_weather.axf create mode 100644 boards/ek-tm4c1294xl/enet_weather/rvmdk/enet_weather.bin create mode 100644 boards/ek-tm4c1294xl/enet_weather/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/enet_weather/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/enet_weather/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/enet_weather/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/Makefile create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ccs/.project create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ccs/Debug/gpio_jtag.bin create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ccs/Debug/gpio_jtag.out create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ewarm/Exe/gpio_jtag.bin create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/ewarm/Exe/gpio_jtag.out create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gcc/gpio_jtag.axf create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gcc/gpio_jtag.bin create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.c create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ewd create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ewp create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.icf create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ld create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.sct create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.uvopt create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.uvproj create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/readme.txt create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/rvmdk/gpio_jtag.axf create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/rvmdk/gpio_jtag.bin create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/gpio_jtag/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/hello/Makefile create mode 100644 boards/ek-tm4c1294xl/hello/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/hello/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/hello/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/hello/ccs/.project create mode 100644 boards/ek-tm4c1294xl/hello/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/hello/ccs/Debug/hello.bin create mode 100644 boards/ek-tm4c1294xl/hello/ccs/Debug/hello.out create mode 100644 boards/ek-tm4c1294xl/hello/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/hello/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/hello/ewarm/Exe/hello.bin create mode 100644 boards/ek-tm4c1294xl/hello/ewarm/Exe/hello.out create mode 100644 boards/ek-tm4c1294xl/hello/gcc/hello.axf create mode 100644 boards/ek-tm4c1294xl/hello/gcc/hello.bin create mode 100644 boards/ek-tm4c1294xl/hello/hello.c create mode 100644 boards/ek-tm4c1294xl/hello/hello.ewd create mode 100644 boards/ek-tm4c1294xl/hello/hello.ewp create mode 100644 boards/ek-tm4c1294xl/hello/hello.icf create mode 100644 boards/ek-tm4c1294xl/hello/hello.ld create mode 100644 boards/ek-tm4c1294xl/hello/hello.sct create mode 100644 boards/ek-tm4c1294xl/hello/hello.uvopt create mode 100644 boards/ek-tm4c1294xl/hello/hello.uvproj create mode 100644 boards/ek-tm4c1294xl/hello/hello_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/hello/readme.txt create mode 100644 boards/ek-tm4c1294xl/hello/rvmdk/hello.axf create mode 100644 boards/ek-tm4c1294xl/hello/rvmdk/hello.bin create mode 100644 boards/ek-tm4c1294xl/hello/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/hello/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/hello/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/hello/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/hibernate/Makefile create mode 100644 boards/ek-tm4c1294xl/hibernate/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/hibernate/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/hibernate/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/hibernate/ccs/.project create mode 100644 boards/ek-tm4c1294xl/hibernate/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/hibernate/ccs/Debug/hibernate.bin create mode 100644 boards/ek-tm4c1294xl/hibernate/ccs/Debug/hibernate.out create mode 100644 boards/ek-tm4c1294xl/hibernate/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/hibernate/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/hibernate/ewarm/Exe/hibernate.bin create mode 100644 boards/ek-tm4c1294xl/hibernate/ewarm/Exe/hibernate.out create mode 100644 boards/ek-tm4c1294xl/hibernate/gcc/hibernate.axf create mode 100644 boards/ek-tm4c1294xl/hibernate/gcc/hibernate.bin create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate.c create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate.ewd create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate.ewp create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate.icf create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate.ld create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate.sct create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate.uvopt create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate.uvproj create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate_commands.c create mode 100644 boards/ek-tm4c1294xl/hibernate/hibernate_commands.h create mode 100644 boards/ek-tm4c1294xl/hibernate/readme.txt create mode 100644 boards/ek-tm4c1294xl/hibernate/rvmdk/hibernate.axf create mode 100644 boards/ek-tm4c1294xl/hibernate/rvmdk/hibernate.bin create mode 100644 boards/ek-tm4c1294xl/hibernate/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/hibernate/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/hibernate/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/hibernate/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/interrupts/Makefile create mode 100644 boards/ek-tm4c1294xl/interrupts/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/interrupts/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/interrupts/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/interrupts/ccs/.project create mode 100644 boards/ek-tm4c1294xl/interrupts/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/interrupts/ccs/Debug/interrupts.bin create mode 100644 boards/ek-tm4c1294xl/interrupts/ccs/Debug/interrupts.out create mode 100644 boards/ek-tm4c1294xl/interrupts/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/interrupts/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/interrupts/ewarm/Exe/interrupts.bin create mode 100644 boards/ek-tm4c1294xl/interrupts/ewarm/Exe/interrupts.out create mode 100644 boards/ek-tm4c1294xl/interrupts/gcc/interrupts.axf create mode 100644 boards/ek-tm4c1294xl/interrupts/gcc/interrupts.bin create mode 100644 boards/ek-tm4c1294xl/interrupts/interrupts.c create mode 100644 boards/ek-tm4c1294xl/interrupts/interrupts.ewd create mode 100644 boards/ek-tm4c1294xl/interrupts/interrupts.ewp create mode 100644 boards/ek-tm4c1294xl/interrupts/interrupts.icf create mode 100644 boards/ek-tm4c1294xl/interrupts/interrupts.ld create mode 100644 boards/ek-tm4c1294xl/interrupts/interrupts.sct create mode 100644 boards/ek-tm4c1294xl/interrupts/interrupts.uvopt create mode 100644 boards/ek-tm4c1294xl/interrupts/interrupts.uvproj create mode 100644 boards/ek-tm4c1294xl/interrupts/interrupts_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/interrupts/readme.txt create mode 100644 boards/ek-tm4c1294xl/interrupts/rvmdk/interrupts.axf create mode 100644 boards/ek-tm4c1294xl/interrupts/rvmdk/interrupts.bin create mode 100644 boards/ek-tm4c1294xl/interrupts/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/interrupts/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/interrupts/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/interrupts/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/mpu_fault/Makefile create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ccs/.project create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ccs/Debug/mpu_fault.bin create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ccs/Debug/mpu_fault.out create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ewarm/Exe/mpu_fault.bin create mode 100644 boards/ek-tm4c1294xl/mpu_fault/ewarm/Exe/mpu_fault.out create mode 100644 boards/ek-tm4c1294xl/mpu_fault/gcc/mpu_fault.axf create mode 100644 boards/ek-tm4c1294xl/mpu_fault/gcc/mpu_fault.bin create mode 100644 boards/ek-tm4c1294xl/mpu_fault/mpu_fault.c create mode 100644 boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ewd create mode 100644 boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ewp create mode 100644 boards/ek-tm4c1294xl/mpu_fault/mpu_fault.icf create mode 100644 boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ld create mode 100644 boards/ek-tm4c1294xl/mpu_fault/mpu_fault.sct create mode 100644 boards/ek-tm4c1294xl/mpu_fault/mpu_fault.uvopt create mode 100644 boards/ek-tm4c1294xl/mpu_fault/mpu_fault.uvproj create mode 100644 boards/ek-tm4c1294xl/mpu_fault/mpu_fault_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/mpu_fault/readme.txt create mode 100644 boards/ek-tm4c1294xl/mpu_fault/rvmdk/mpu_fault.axf create mode 100644 boards/ek-tm4c1294xl/mpu_fault/rvmdk/mpu_fault.bin create mode 100644 boards/ek-tm4c1294xl/mpu_fault/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/mpu_fault/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/mpu_fault/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/mpu_fault/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/qs_iot/Makefile create mode 100644 boards/ek-tm4c1294xl/qs_iot/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/qs_iot/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/qs_iot/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/qs_iot/ccs/.project create mode 100644 boards/ek-tm4c1294xl/qs_iot/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/qs_iot/ccs/Debug/qs_iot.bin create mode 100644 boards/ek-tm4c1294xl/qs_iot/ccs/Debug/qs_iot.out create mode 100644 boards/ek-tm4c1294xl/qs_iot/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/qs_iot/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/qs_iot/commands.c create mode 100644 boards/ek-tm4c1294xl/qs_iot/commands.h create mode 100644 boards/ek-tm4c1294xl/qs_iot/ewarm/Exe/qs_iot.bin create mode 100644 boards/ek-tm4c1294xl/qs_iot/ewarm/Exe/qs_iot.out create mode 100644 boards/ek-tm4c1294xl/qs_iot/gcc/qs_iot.axf create mode 100644 boards/ek-tm4c1294xl/qs_iot/gcc/qs_iot.bin create mode 100644 boards/ek-tm4c1294xl/qs_iot/lwipopts.h create mode 100644 boards/ek-tm4c1294xl/qs_iot/qs_iot.c create mode 100644 boards/ek-tm4c1294xl/qs_iot/qs_iot.ewd create mode 100644 boards/ek-tm4c1294xl/qs_iot/qs_iot.ewp create mode 100644 boards/ek-tm4c1294xl/qs_iot/qs_iot.h create mode 100644 boards/ek-tm4c1294xl/qs_iot/qs_iot.icf create mode 100644 boards/ek-tm4c1294xl/qs_iot/qs_iot.ld create mode 100644 boards/ek-tm4c1294xl/qs_iot/qs_iot.sct create mode 100644 boards/ek-tm4c1294xl/qs_iot/qs_iot.uvopt create mode 100644 boards/ek-tm4c1294xl/qs_iot/qs_iot.uvproj create mode 100644 boards/ek-tm4c1294xl/qs_iot/qs_iot_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/qs_iot/readme.txt create mode 100644 boards/ek-tm4c1294xl/qs_iot/requests.c create mode 100644 boards/ek-tm4c1294xl/qs_iot/requests.h create mode 100644 boards/ek-tm4c1294xl/qs_iot/rvmdk/qs_iot.axf create mode 100644 boards/ek-tm4c1294xl/qs_iot/rvmdk/qs_iot.bin create mode 100644 boards/ek-tm4c1294xl/qs_iot/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/qs_iot/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/qs_iot/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/qs_iot/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/qs_iot/stats.c create mode 100644 boards/ek-tm4c1294xl/qs_iot/stats.h create mode 100644 boards/ek-tm4c1294xl/qs_iot/tictactoe.c create mode 100644 boards/ek-tm4c1294xl/qs_iot/tictactoe.h create mode 100644 boards/ek-tm4c1294xl/sleep_modes/Makefile create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ccs/.project create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ccs/Debug/sleep_modes.bin create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ccs/Debug/sleep_modes.out create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ewarm/Exe/sleep_modes.bin create mode 100644 boards/ek-tm4c1294xl/sleep_modes/ewarm/Exe/sleep_modes.out create mode 100644 boards/ek-tm4c1294xl/sleep_modes/gcc/sleep_modes.axf create mode 100644 boards/ek-tm4c1294xl/sleep_modes/gcc/sleep_modes.bin create mode 100644 boards/ek-tm4c1294xl/sleep_modes/readme.txt create mode 100644 boards/ek-tm4c1294xl/sleep_modes/rvmdk/sleep_modes.axf create mode 100644 boards/ek-tm4c1294xl/sleep_modes/rvmdk/sleep_modes.bin create mode 100644 boards/ek-tm4c1294xl/sleep_modes/sleep_modes.c create mode 100644 boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ewd create mode 100644 boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ewp create mode 100644 boards/ek-tm4c1294xl/sleep_modes/sleep_modes.icf create mode 100644 boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ld create mode 100644 boards/ek-tm4c1294xl/sleep_modes/sleep_modes.sct create mode 100644 boards/ek-tm4c1294xl/sleep_modes/sleep_modes.uvopt create mode 100644 boards/ek-tm4c1294xl/sleep_modes/sleep_modes.uvproj create mode 100644 boards/ek-tm4c1294xl/sleep_modes/sleep_modes_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/sleep_modes/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/sleep_modes/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/sleep_modes/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/sleep_modes/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/timers/Makefile create mode 100644 boards/ek-tm4c1294xl/timers/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/timers/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/timers/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/timers/ccs/.project create mode 100644 boards/ek-tm4c1294xl/timers/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/timers/ccs/Debug/timers.bin create mode 100644 boards/ek-tm4c1294xl/timers/ccs/Debug/timers.out create mode 100644 boards/ek-tm4c1294xl/timers/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/timers/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/timers/ewarm/Exe/timers.bin create mode 100644 boards/ek-tm4c1294xl/timers/ewarm/Exe/timers.out create mode 100644 boards/ek-tm4c1294xl/timers/gcc/timers.axf create mode 100644 boards/ek-tm4c1294xl/timers/gcc/timers.bin create mode 100644 boards/ek-tm4c1294xl/timers/readme.txt create mode 100644 boards/ek-tm4c1294xl/timers/rvmdk/timers.axf create mode 100644 boards/ek-tm4c1294xl/timers/rvmdk/timers.bin create mode 100644 boards/ek-tm4c1294xl/timers/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/timers/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/timers/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/timers/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/timers/timers.c create mode 100644 boards/ek-tm4c1294xl/timers/timers.ewd create mode 100644 boards/ek-tm4c1294xl/timers/timers.ewp create mode 100644 boards/ek-tm4c1294xl/timers/timers.icf create mode 100644 boards/ek-tm4c1294xl/timers/timers.ld create mode 100644 boards/ek-tm4c1294xl/timers/timers.sct create mode 100644 boards/ek-tm4c1294xl/timers/timers.uvopt create mode 100644 boards/ek-tm4c1294xl/timers/timers.uvproj create mode 100644 boards/ek-tm4c1294xl/timers/timers_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/uart_echo/Makefile create mode 100644 boards/ek-tm4c1294xl/uart_echo/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/uart_echo/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/uart_echo/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/uart_echo/ccs/.project create mode 100644 boards/ek-tm4c1294xl/uart_echo/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/uart_echo/ccs/Debug/uart_echo.bin create mode 100644 boards/ek-tm4c1294xl/uart_echo/ccs/Debug/uart_echo.out create mode 100644 boards/ek-tm4c1294xl/uart_echo/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/uart_echo/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/uart_echo/ewarm/Exe/uart_echo.bin create mode 100644 boards/ek-tm4c1294xl/uart_echo/ewarm/Exe/uart_echo.out create mode 100644 boards/ek-tm4c1294xl/uart_echo/gcc/uart_echo.axf create mode 100644 boards/ek-tm4c1294xl/uart_echo/gcc/uart_echo.bin create mode 100644 boards/ek-tm4c1294xl/uart_echo/readme.txt create mode 100644 boards/ek-tm4c1294xl/uart_echo/rvmdk/uart_echo.axf create mode 100644 boards/ek-tm4c1294xl/uart_echo/rvmdk/uart_echo.bin create mode 100644 boards/ek-tm4c1294xl/uart_echo/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/uart_echo/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/uart_echo/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/uart_echo/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/uart_echo/uart_echo.c create mode 100644 boards/ek-tm4c1294xl/uart_echo/uart_echo.ewd create mode 100644 boards/ek-tm4c1294xl/uart_echo/uart_echo.ewp create mode 100644 boards/ek-tm4c1294xl/uart_echo/uart_echo.icf create mode 100644 boards/ek-tm4c1294xl/uart_echo/uart_echo.ld create mode 100644 boards/ek-tm4c1294xl/uart_echo/uart_echo.sct create mode 100644 boards/ek-tm4c1294xl/uart_echo/uart_echo.uvopt create mode 100644 boards/ek-tm4c1294xl/uart_echo/uart_echo.uvproj create mode 100644 boards/ek-tm4c1294xl/uart_echo/uart_echo_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/udma_demo/Makefile create mode 100644 boards/ek-tm4c1294xl/udma_demo/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/udma_demo/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/udma_demo/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/udma_demo/ccs/.project create mode 100644 boards/ek-tm4c1294xl/udma_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/udma_demo/ccs/Debug/udma_demo.bin create mode 100644 boards/ek-tm4c1294xl/udma_demo/ccs/Debug/udma_demo.out create mode 100644 boards/ek-tm4c1294xl/udma_demo/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/udma_demo/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/udma_demo/ewarm/Exe/udma_demo.bin create mode 100644 boards/ek-tm4c1294xl/udma_demo/ewarm/Exe/udma_demo.out create mode 100644 boards/ek-tm4c1294xl/udma_demo/gcc/udma_demo.axf create mode 100644 boards/ek-tm4c1294xl/udma_demo/gcc/udma_demo.bin create mode 100644 boards/ek-tm4c1294xl/udma_demo/readme.txt create mode 100644 boards/ek-tm4c1294xl/udma_demo/rvmdk/udma_demo.axf create mode 100644 boards/ek-tm4c1294xl/udma_demo/rvmdk/udma_demo.bin create mode 100644 boards/ek-tm4c1294xl/udma_demo/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/udma_demo/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/udma_demo/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/udma_demo/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/udma_demo/udma_demo.c create mode 100644 boards/ek-tm4c1294xl/udma_demo/udma_demo.ewd create mode 100644 boards/ek-tm4c1294xl/udma_demo/udma_demo.ewp create mode 100644 boards/ek-tm4c1294xl/udma_demo/udma_demo.icf create mode 100644 boards/ek-tm4c1294xl/udma_demo/udma_demo.ld create mode 100644 boards/ek-tm4c1294xl/udma_demo/udma_demo.sct create mode 100644 boards/ek-tm4c1294xl/udma_demo/udma_demo.uvopt create mode 100644 boards/ek-tm4c1294xl/udma_demo/udma_demo.uvproj create mode 100644 boards/ek-tm4c1294xl/udma_demo/udma_demo_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/Makefile create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.project create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ccs/Debug/usb_dev_bulk.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ccs/Debug/usb_dev_bulk.out create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ewarm/Exe/usb_dev_bulk.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/ewarm/Exe/usb_dev_bulk.out create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/gcc/usb_dev_bulk.axf create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/gcc/usb_dev_bulk.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/readme.txt create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/rvmdk/usb_dev_bulk.axf create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/rvmdk/usb_dev_bulk.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.h create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ewd create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ewp create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.icf create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ld create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.sct create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.uvopt create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.uvproj create mode 100644 boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/Makefile create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.project create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ccs/Debug/usb_dev_cserial.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ccs/Debug/usb_dev_cserial.out create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ewarm/Exe/usb_dev_cserial.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/ewarm/Exe/usb_dev_cserial.out create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/gcc/usb_dev_cserial.axf create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/gcc/usb_dev_cserial.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/readme.txt create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/rvmdk/usb_dev_cserial.axf create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/rvmdk/usb_dev_cserial.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ewd create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ewp create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.icf create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ld create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.sct create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.uvopt create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.uvproj create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.h create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/Makefile create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.project create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/Debug/usb_dev_keyboard.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/Debug/usb_dev_keyboard.out create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ewarm/Exe/usb_dev_keyboard.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/ewarm/Exe/usb_dev_keyboard.out create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/gcc/usb_dev_keyboard.axf create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/gcc/usb_dev_keyboard.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/readme.txt create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/rvmdk/usb_dev_keyboard.axf create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/rvmdk/usb_dev_keyboard.bin create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ewd create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ewp create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.icf create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ld create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.sct create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.uvopt create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.uvproj create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_keyb_structs.c create mode 100644 boards/ek-tm4c1294xl/usb_dev_keyboard/usb_keyb_structs.h create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/Makefile create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.project create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ccs/Debug/usb_host_keyboard.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ccs/Debug/usb_host_keyboard.out create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ewarm/Exe/usb_host_keyboard.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/ewarm/Exe/usb_host_keyboard.out create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/gcc/usb_host_keyboard.axf create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/gcc/usb_host_keyboard.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/readme.txt create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/rvmdk/usb_host_keyboard.axf create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/rvmdk/usb_host_keyboard.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.c create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ewd create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ewp create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.icf create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ld create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.sct create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.uvopt create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.uvproj create mode 100644 boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/Makefile create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ccs/.project create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ccs/Debug/usb_host_mouse.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ccs/Debug/usb_host_mouse.out create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ewarm/Exe/usb_host_mouse.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/ewarm/Exe/usb_host_mouse.out create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/gcc/usb_host_mouse.axf create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/gcc/usb_host_mouse.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/readme.txt create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/rvmdk/usb_host_mouse.axf create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/rvmdk/usb_host_mouse.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.c create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ewd create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ewp create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.icf create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ld create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.sct create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.uvopt create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.uvproj create mode 100644 boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/Makefile create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ccs/.project create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ccs/Debug/usb_host_msc.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ccs/Debug/usb_host_msc.out create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ewarm/Exe/usb_host_msc.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/ewarm/Exe/usb_host_msc.out create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/gcc/usb_host_msc.axf create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/gcc/usb_host_msc.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/readme.txt create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/rvmdk/usb_host_msc.axf create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/rvmdk/usb_host_msc.bin create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.c create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ewd create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ewp create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.icf create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ld create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.sct create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.uvopt create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.uvproj create mode 100644 boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/Makefile create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ccs/.project create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ccs/Debug/usb_stick_demo.bin create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ccs/Debug/usb_stick_demo.out create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ewarm/Exe/usb_stick_demo.bin create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/ewarm/Exe/usb_stick_demo.out create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/gcc/usb_stick_demo.axf create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/gcc/usb_stick_demo.bin create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/readme.txt create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/rvmdk/usb_stick_demo.axf create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/rvmdk/usb_stick_demo.bin create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.c create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ewd create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ewp create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.icf create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ld create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.sct create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.uvopt create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.uvproj create mode 100644 boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/Makefile create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ccs/.project create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ccs/Debug/usb_stick_update.bin create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ccs/Debug/usb_stick_update.out create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ewarm/Exe/usb_stick_update.bin create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/ewarm/Exe/usb_stick_update.out create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/gcc/usb_stick_update.axf create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/gcc/usb_stick_update.bin create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/readme.txt create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/rvmdk/usb_stick_update.axf create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/rvmdk/usb_stick_update.bin create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/simple_fs.c create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/simple_fs.h create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.c create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ewd create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ewp create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.icf create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ld create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.sct create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.uvopt create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.uvproj create mode 100644 boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update_ccs.cmd create mode 100644 boards/ek-tm4c1294xl/watchdog/Makefile create mode 100644 boards/ek-tm4c1294xl/watchdog/ccs/.ccsimportspec create mode 100644 boards/ek-tm4c1294xl/watchdog/ccs/.ccsproject create mode 100644 boards/ek-tm4c1294xl/watchdog/ccs/.cproject create mode 100644 boards/ek-tm4c1294xl/watchdog/ccs/.project create mode 100644 boards/ek-tm4c1294xl/watchdog/ccs/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 boards/ek-tm4c1294xl/watchdog/ccs/Debug/watchdog.bin create mode 100644 boards/ek-tm4c1294xl/watchdog/ccs/Debug/watchdog.out create mode 100644 boards/ek-tm4c1294xl/watchdog/ccs/macros.ini_initial create mode 100644 boards/ek-tm4c1294xl/watchdog/ccs/target_config.ccxml create mode 100644 boards/ek-tm4c1294xl/watchdog/ewarm/Exe/watchdog.bin create mode 100644 boards/ek-tm4c1294xl/watchdog/ewarm/Exe/watchdog.out create mode 100644 boards/ek-tm4c1294xl/watchdog/gcc/watchdog.axf create mode 100644 boards/ek-tm4c1294xl/watchdog/gcc/watchdog.bin create mode 100644 boards/ek-tm4c1294xl/watchdog/readme.txt create mode 100644 boards/ek-tm4c1294xl/watchdog/rvmdk/watchdog.axf create mode 100644 boards/ek-tm4c1294xl/watchdog/rvmdk/watchdog.bin create mode 100644 boards/ek-tm4c1294xl/watchdog/startup_ccs.c create mode 100644 boards/ek-tm4c1294xl/watchdog/startup_ewarm.c create mode 100644 boards/ek-tm4c1294xl/watchdog/startup_gcc.c create mode 100644 boards/ek-tm4c1294xl/watchdog/startup_rvmdk.S create mode 100644 boards/ek-tm4c1294xl/watchdog/watchdog.c create mode 100644 boards/ek-tm4c1294xl/watchdog/watchdog.ewd create mode 100644 boards/ek-tm4c1294xl/watchdog/watchdog.ewp create mode 100644 boards/ek-tm4c1294xl/watchdog/watchdog.icf create mode 100644 boards/ek-tm4c1294xl/watchdog/watchdog.ld create mode 100644 boards/ek-tm4c1294xl/watchdog/watchdog.sct create mode 100644 boards/ek-tm4c1294xl/watchdog/watchdog.uvopt create mode 100644 boards/ek-tm4c1294xl/watchdog/watchdog.uvproj create mode 100644 boards/ek-tm4c1294xl/watchdog/watchdog_ccs.cmd diff --git a/boards/Makefile b/boards/Makefile new file mode 100644 index 0000000..efcde5d --- /dev/null +++ b/boards/Makefile @@ -0,0 +1,44 @@ +#****************************************************************************** +# +# Makefile - Rules for building the board specific examples. +# +# Copyright (c) 2007-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the Tiva Firmware Development Package. +# +#****************************************************************************** + +DIRS=${wildcard *} + +all: + @for i in ${DIRS}; \ + do \ + if [ -f $${i}/Makefile ]; \ + then \ + make -C $${i} || exit $$?; \ + fi; \ + done + +clean: + @for i in ${DIRS}; \ + do \ + if [ -f $${i}/Makefile ]; \ + then \ + make -C $${i} clean; \ + fi; \ + done + @rm -f ${wildcard *~} __dummy__ diff --git a/boards/ek-tm4c1294xl/Makefile b/boards/ek-tm4c1294xl/Makefile new file mode 100644 index 0000000..d6bdc3a --- /dev/null +++ b/boards/ek-tm4c1294xl/Makefile @@ -0,0 +1,71 @@ +#****************************************************************************** +# +# Makefile - Rules for building the ek-tm4c1294xl examples. +# +# Copyright (c) 2012-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# A list of the directories containing the examples. +# +DIRS=bitband \ + blinky \ + enet_io \ + enet_lwip \ + enet_uip \ + enet_weather \ + gpio_jtag \ + hello \ + hibernate \ + interrupts \ + mpu_fault \ + qs_iot \ + sleep_modes \ + timers \ + uart_echo \ + udma_demo \ + usb_dev_bulk \ + usb_dev_cserial \ + usb_dev_keyboard \ + usb_host_keyboard \ + usb_host_mouse \ + usb_host_msc \ + usb_stick_demo \ + usb_stick_update \ + watchdog + +# +# The default rule, which causes the examples to be built. +# +all: + @for i in ${DIRS}; \ + do \ + make -C $${i} || exit $$?; \ + done + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${wildcard *~} __dummy__ + @-for i in ${DIRS}; \ + do \ + make -C $${i} clean; \ + done diff --git a/boards/ek-tm4c1294xl/bitband/Makefile b/boards/ek-tm4c1294xl/bitband/Makefile new file mode 100644 index 0000000..582e968 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/Makefile @@ -0,0 +1,86 @@ +#****************************************************************************** +# +# Makefile - Rules for building the bitband example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the bitband example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/bitband.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the bitband example. +# +${COMPILER}/bitband.axf: ${COMPILER}/bitband.o +${COMPILER}/bitband.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/bitband.axf: ${COMPILER}/uartstdio.o +${COMPILER}/bitband.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/bitband.axf: bitband.ld +SCATTERgcc_bitband=bitband.ld +ENTRY_bitband=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/bitband/bitband.c b/boards/ek-tm4c1294xl/bitband/bitband.c new file mode 100644 index 0000000..80fd33d --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/bitband.c @@ -0,0 +1,259 @@ +//***************************************************************************** +// +// bitband.c - Bit-band manipulation example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/gpio.h" +#include "driverlib/fpu.h" +#include "driverlib/pin_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/uart.h" +#include "utils/uartstdio.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

Bit-Banding (bitband)

+//! +//! This example application demonstrates the use of the bit-banding +//! capabilities of the Cortex-M4F microprocessor. All of SRAM and all of the +//! peripherals reside within bit-band regions, meaning that bit-banding +//! operations can be applied to any of them. In this example, a variable in +//! SRAM is set to a particular value one bit at a time using bit-banding +//! operations (it would be more efficient to do a single non-bit-banded write; +//! this simply demonstrates the operation of bit-banding). +// +//***************************************************************************** + + +//**************************************************************************** +// +// System clock rate in Hz. +// +//**************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// The value that is to be modified via bit-banding. +// +//***************************************************************************** +static volatile uint32_t g_ui32Value; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ + while(1) + { + // + // Hang on runtime error. + // + } +} +#endif + +//***************************************************************************** +// +// Delay for the specified number of seconds. Depending upon the current +// SysTick value, the delay will be between N-1 and N seconds (i.e. N-1 full +// seconds are guaranteed, along with the remainder of the current second). +// +//***************************************************************************** +void +Delay(uint32_t ui32Seconds) +{ + // + // Loop while there are more seconds to wait. + // + while(ui32Seconds--) + { + // + // Wait until the SysTick value is less than 1000. + // + while(ROM_SysTickValueGet() > 1000) + { + } + + // + // Wait until the SysTick value is greater than 1000. + // + while(ROM_SysTickValueGet() < 1000) + { + } + } +} + +//***************************************************************************** +// +// Configure the UART and its pins. This must be called before UARTprintf(). +// +//***************************************************************************** +void +ConfigureUART(void) +{ + // + // Enable the GPIO Peripheral used by the UART. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + + // + // Enable UART0 + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + + // + // Configure GPIO Pins for UART mode. + // + ROM_GPIOPinConfigure(GPIO_PA0_U0RX); + ROM_GPIOPinConfigure(GPIO_PA1_U0TX); + ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); +} + +//***************************************************************************** +// +// This example demonstrates the use of bit-banding to set individual bits +// within a word of SRAM. +// +//***************************************************************************** +int +main(void) +{ + uint32_t ui32Errors, ui32Idx; + + // + // Set the clocking to run directly from the crystal at 120MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Initialize the UART interface. + // + ConfigureUART(); + UARTprintf("\033[2J\033[H"); + UARTprintf("Bit banding...\n"); + + // + // Set up and enable the SysTick timer. It will be used as a reference + // for delay loops. The SysTick timer period will be set up for one + // second. + // + ROM_SysTickPeriodSet(g_ui32SysClock); + ROM_SysTickEnable(); + + // + // Set the value and error count to zero. + // + g_ui32Value = 0; + ui32Errors = 0; + + // + // Print the initial value to the UART. + // + UARTprintf("\r%08x", g_ui32Value); + + // + // Delay for 1 second. + // + Delay(1); + + // + // Set the value to 0xdecafbad using bit band accesses to each individual + // bit. + // + for(ui32Idx = 0; ui32Idx < 32; ui32Idx++) + { + // + // Set this bit. + // + HWREGBITW(&g_ui32Value, 31 - ui32Idx) = (0xdecafbad >> + (31 - ui32Idx)) & 1; + + // + // Print the current value to the UART. + // + UARTprintf("\r%08x", g_ui32Value); + + // + // Delay for 1 second. + // + Delay(1); + } + + // + // Make sure that the value is 0xdecafbad. + // + if(g_ui32Value != 0xdecafbad) + { + ui32Errors++; + } + + // + // Make sure that the individual bits read back correctly. + // + for(ui32Idx = 0; ui32Idx < 32; ui32Idx++) + { + if(HWREGBITW(&g_ui32Value, ui32Idx) != ((0xdecafbad >> ui32Idx) & 1)) + { + ui32Errors++; + } + } + + // + // Print out the result. + // + if(ui32Errors) + { + UARTprintf("\nErrors!\n"); + } + else + { + UARTprintf("\nSuccess!\n"); + } + + // + // Loop forever. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/bitband/bitband.ewd b/boards/ek-tm4c1294xl/bitband/bitband.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/bitband.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/bitband/bitband.ewp b/boards/ek-tm4c1294xl/bitband/bitband.ewp new file mode 100644 index 0000000..5ff7d18 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/bitband.ewp @@ -0,0 +1,789 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\bitband.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + diff --git a/boards/ek-tm4c1294xl/bitband/bitband.icf b/boards/ek-tm4c1294xl/bitband/bitband.icf new file mode 100644 index 0000000..d7ce549 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/bitband.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// bitband.icf - Linker configuration file for bitband. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/bitband/bitband.ld b/boards/ek-tm4c1294xl/bitband/bitband.ld new file mode 100644 index 0000000..f4b0c86 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/bitband.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * bitband.ld - Linker configuration file for bitband. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/bitband/bitband.sct b/boards/ek-tm4c1294xl/bitband/bitband.sct new file mode 100644 index 0000000..ba9e4b3 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/bitband.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; bitband.sct - Linker configuration file for bitband. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/bitband/bitband.uvopt b/boards/ek-tm4c1294xl/bitband/bitband.uvopt new file mode 100644 index 0000000..1b1e6cf --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/bitband.uvopt @@ -0,0 +1,303 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + bitband + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S3 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\bitband.c + bitband.c + + + 1 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 5 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
diff --git a/boards/ek-tm4c1294xl/bitband/bitband.uvproj b/boards/ek-tm4c1294xl/bitband/bitband.uvproj new file mode 100644 index 0000000..99cf2f7 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/bitband.uvproj @@ -0,0 +1,429 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + bitband + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + bitband + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\bitband.bin .\rvmdk\bitband.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + bitband.sct + + + --entry Reset_Handler + + + + + + + + Source + + + bitband.c + 1 + .\bitband.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
diff --git a/boards/ek-tm4c1294xl/bitband/bitband_ccs.cmd b/boards/ek-tm4c1294xl/bitband/bitband_ccs.cmd new file mode 100644 index 0000000..c77ff57 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/bitband_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * bitband_ccs.cmd - CCS linker configuration file for bitband. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 512; diff --git a/boards/ek-tm4c1294xl/bitband/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/bitband/ccs/.ccsimportspec new file mode 100644 index 0000000..9748e3c --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/bitband/ccs/.ccsproject b/boards/ek-tm4c1294xl/bitband/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/bitband/ccs/.cproject b/boards/ek-tm4c1294xl/bitband/ccs/.cproject new file mode 100644 index 0000000..ff7d48f --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/ccs/.cproject @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/bitband/ccs/.project b/boards/ek-tm4c1294xl/bitband/ccs/.project new file mode 100644 index 0000000..8920724 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/ccs/.project @@ -0,0 +1,55 @@ + + + bitband + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + bitband.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/bitband/bitband.c + + + bitband_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/bitband/bitband_ccs.cmd + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/bitband/startup_ccs.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/bitband/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/bitband/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/bitband/ccs/Debug/bitband.bin b/boards/ek-tm4c1294xl/bitband/ccs/Debug/bitband.bin new file mode 100644 index 0000000..b0e3aeb Binary files /dev/null and b/boards/ek-tm4c1294xl/bitband/ccs/Debug/bitband.bin differ diff --git a/boards/ek-tm4c1294xl/bitband/ccs/Debug/bitband.out b/boards/ek-tm4c1294xl/bitband/ccs/Debug/bitband.out new file mode 100644 index 0000000..ed79094 Binary files /dev/null and b/boards/ek-tm4c1294xl/bitband/ccs/Debug/bitband.out differ diff --git a/boards/ek-tm4c1294xl/bitband/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/bitband/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/bitband/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/bitband/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/bitband/ewarm/Exe/bitband.bin b/boards/ek-tm4c1294xl/bitband/ewarm/Exe/bitband.bin new file mode 100644 index 0000000..b824a7b Binary files /dev/null and b/boards/ek-tm4c1294xl/bitband/ewarm/Exe/bitband.bin differ diff --git a/boards/ek-tm4c1294xl/bitband/ewarm/Exe/bitband.out b/boards/ek-tm4c1294xl/bitband/ewarm/Exe/bitband.out new file mode 100644 index 0000000..689b545 Binary files /dev/null and b/boards/ek-tm4c1294xl/bitband/ewarm/Exe/bitband.out differ diff --git a/boards/ek-tm4c1294xl/bitband/gcc/bitband.axf b/boards/ek-tm4c1294xl/bitband/gcc/bitband.axf new file mode 100644 index 0000000..bb6d8a4 Binary files /dev/null and b/boards/ek-tm4c1294xl/bitband/gcc/bitband.axf differ diff --git a/boards/ek-tm4c1294xl/bitband/gcc/bitband.bin b/boards/ek-tm4c1294xl/bitband/gcc/bitband.bin new file mode 100644 index 0000000..a85bbde Binary files /dev/null and b/boards/ek-tm4c1294xl/bitband/gcc/bitband.bin differ diff --git a/boards/ek-tm4c1294xl/bitband/readme.txt b/boards/ek-tm4c1294xl/bitband/readme.txt new file mode 100644 index 0000000..a6ae90b --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/readme.txt @@ -0,0 +1,29 @@ +Bit-Banding + +This example application demonstrates the use of the bit-banding +capabilities of the Cortex-M4F microprocessor. All of SRAM and all of the +peripherals reside within bit-band regions, meaning that bit-banding +operations can be applied to any of them. In this example, a variable in +SRAM is set to a particular value one bit at a time using bit-banding +operations (it would be more efficient to do a single non-bit-banded write; +this simply demonstrates the operation of bit-banding). + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/bitband/rvmdk/bitband.axf b/boards/ek-tm4c1294xl/bitband/rvmdk/bitband.axf new file mode 100644 index 0000000..99afc9a Binary files /dev/null and b/boards/ek-tm4c1294xl/bitband/rvmdk/bitband.axf differ diff --git a/boards/ek-tm4c1294xl/bitband/rvmdk/bitband.bin b/boards/ek-tm4c1294xl/bitband/rvmdk/bitband.bin new file mode 100644 index 0000000..c0b255d Binary files /dev/null and b/boards/ek-tm4c1294xl/bitband/rvmdk/bitband.bin differ diff --git a/boards/ek-tm4c1294xl/bitband/startup_ccs.c b/boards/ek-tm4c1294xl/bitband/startup_ccs.c new file mode 100644 index 0000000..d65768f --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/startup_ccs.c @@ -0,0 +1,268 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/bitband/startup_ewarm.c b/boards/ek-tm4c1294xl/bitband/startup_ewarm.c new file mode 100644 index 0000000..c4b0ab8 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/startup_ewarm.c @@ -0,0 +1,299 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/bitband/startup_gcc.c b/boards/ek-tm4c1294xl/bitband/startup_gcc.c new file mode 100644 index 0000000..a62c519 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/startup_gcc.c @@ -0,0 +1,315 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/bitband/startup_rvmdk.S b/boards/ek-tm4c1294xl/bitband/startup_rvmdk.S new file mode 100644 index 0000000..6979645 --- /dev/null +++ b/boards/ek-tm4c1294xl/bitband/startup_rvmdk.S @@ -0,0 +1,324 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000200 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/blinky/Makefile b/boards/ek-tm4c1294xl/blinky/Makefile new file mode 100644 index 0000000..0e64464 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/Makefile @@ -0,0 +1,77 @@ +#****************************************************************************** +# +# Makefile - Rules for building the blinky example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find header files that do not live in the source directory. +# +IPATH=../../../.. + +# +# The default rule, which causes the blinky example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/blinky.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the blinky example. +# +${COMPILER}/blinky.axf: ${COMPILER}/blinky.o +${COMPILER}/blinky.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/blinky.axf: blinky.ld +SCATTERgcc_blinky=blinky.ld +ENTRY_blinky=ResetISR + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/blinky/blinky.c b/boards/ek-tm4c1294xl/blinky/blinky.c new file mode 100644 index 0000000..94cf579 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/blinky.c @@ -0,0 +1,94 @@ +//***************************************************************************** +// +// blinky.c - Simple example to blink the on-board LED. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/tm4c1294ncpdt.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

Blinky (blinky)

+//! +//! A very simple example that blinks the on-board LED using direct register +//! access. +// +//***************************************************************************** + +//***************************************************************************** +// +// Blink the on-board LED. +// +//***************************************************************************** +int +main(void) +{ + volatile uint32_t ui32Loop; + + // + // Enable the GPIO port that is used for the on-board LED. + // + SYSCTL_RCGCGPIO_R = SYSCTL_RCGCGPIO_R12; + + // + // Do a dummy read to insert a few cycles after enabling the peripheral. + // + ui32Loop = SYSCTL_RCGCGPIO_R; + + // + // Enable the GPIO pin for the LED (PN0). Set the direction as output, and + // enable the GPIO pin for digital function. + // + GPIO_PORTN_DIR_R = 0x01; + GPIO_PORTN_DEN_R = 0x01; + + // + // Loop forever. + // + while(1) + { + // + // Turn on the LED. + // + GPIO_PORTN_DATA_R |= 0x01; + + // + // Delay for a bit. + // + for(ui32Loop = 0; ui32Loop < 200000; ui32Loop++) + { + } + + // + // Turn off the LED. + // + GPIO_PORTN_DATA_R &= ~(0x01); + + // + // Delay for a bit. + // + for(ui32Loop = 0; ui32Loop < 200000; ui32Loop++) + { + } + } +} diff --git a/boards/ek-tm4c1294xl/blinky/blinky.ewd b/boards/ek-tm4c1294xl/blinky/blinky.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/blinky.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/blinky/blinky.ewp b/boards/ek-tm4c1294xl/blinky/blinky.ewp new file mode 100644 index 0000000..f9a0c4f --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/blinky.ewp @@ -0,0 +1,777 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Source + + $PROJ_DIR$\blinky.c + + + $PROJ_DIR$\startup_ewarm.c + + + diff --git a/boards/ek-tm4c1294xl/blinky/blinky.icf b/boards/ek-tm4c1294xl/blinky/blinky.icf new file mode 100644 index 0000000..b6b1673 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/blinky.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// blinky.icf - Linker configuration file for blinky. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/blinky/blinky.ld b/boards/ek-tm4c1294xl/blinky/blinky.ld new file mode 100644 index 0000000..2b0b95b --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/blinky.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * blinky.ld - Linker configuration file for blinky. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/blinky/blinky.sct b/boards/ek-tm4c1294xl/blinky/blinky.sct new file mode 100644 index 0000000..1eca028 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/blinky.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; blinky.sct - Linker configuration file for blinky. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/blinky/blinky.uvopt b/boards/ek-tm4c1294xl/blinky/blinky.uvopt new file mode 100644 index 0000000..9db7cbd --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/blinky.uvopt @@ -0,0 +1,268 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + blinky + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S3 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\blinky.c + blinky.c + + + 1 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + + + Documentation + 1 + 0 + 0 + + 2 + 3 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
diff --git a/boards/ek-tm4c1294xl/blinky/blinky.uvproj b/boards/ek-tm4c1294xl/blinky/blinky.uvproj new file mode 100644 index 0000000..7513d54 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/blinky.uvproj @@ -0,0 +1,414 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + blinky + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + blinky + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\blinky.bin .\rvmdk\blinky.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT + + ..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + blinky.sct + + + --entry Reset_Handler + + + + + + + + Source + + + blinky.c + 1 + .\blinky.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
diff --git a/boards/ek-tm4c1294xl/blinky/blinky_ccs.cmd b/boards/ek-tm4c1294xl/blinky/blinky_ccs.cmd new file mode 100644 index 0000000..aaf7d7a --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/blinky_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * blinky_ccs.cmd - CCS linker configuration file for blinky. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 256; diff --git a/boards/ek-tm4c1294xl/blinky/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/blinky/ccs/.ccsimportspec new file mode 100644 index 0000000..60cba3f --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/blinky/ccs/.ccsproject b/boards/ek-tm4c1294xl/blinky/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/blinky/ccs/.cproject b/boards/ek-tm4c1294xl/blinky/ccs/.cproject new file mode 100644 index 0000000..08d4f2e --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/ccs/.cproject @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/blinky/ccs/.project b/boards/ek-tm4c1294xl/blinky/ccs/.project new file mode 100644 index 0000000..709ac18 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/ccs/.project @@ -0,0 +1,50 @@ + + + blinky + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + blinky.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/blinky/blinky.c + + + blinky_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/blinky/blinky_ccs.cmd + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/blinky/startup_ccs.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/blinky/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/blinky/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/blinky/ccs/Debug/blinky.bin b/boards/ek-tm4c1294xl/blinky/ccs/Debug/blinky.bin new file mode 100644 index 0000000..fd4bc87 Binary files /dev/null and b/boards/ek-tm4c1294xl/blinky/ccs/Debug/blinky.bin differ diff --git a/boards/ek-tm4c1294xl/blinky/ccs/Debug/blinky.out b/boards/ek-tm4c1294xl/blinky/ccs/Debug/blinky.out new file mode 100644 index 0000000..ac3e719 Binary files /dev/null and b/boards/ek-tm4c1294xl/blinky/ccs/Debug/blinky.out differ diff --git a/boards/ek-tm4c1294xl/blinky/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/blinky/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/blinky/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/blinky/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/blinky/ewarm/Exe/blinky.bin b/boards/ek-tm4c1294xl/blinky/ewarm/Exe/blinky.bin new file mode 100644 index 0000000..1a5a7ae Binary files /dev/null and b/boards/ek-tm4c1294xl/blinky/ewarm/Exe/blinky.bin differ diff --git a/boards/ek-tm4c1294xl/blinky/ewarm/Exe/blinky.out b/boards/ek-tm4c1294xl/blinky/ewarm/Exe/blinky.out new file mode 100644 index 0000000..387bcd4 Binary files /dev/null and b/boards/ek-tm4c1294xl/blinky/ewarm/Exe/blinky.out differ diff --git a/boards/ek-tm4c1294xl/blinky/gcc/blinky.axf b/boards/ek-tm4c1294xl/blinky/gcc/blinky.axf new file mode 100644 index 0000000..353fa89 Binary files /dev/null and b/boards/ek-tm4c1294xl/blinky/gcc/blinky.axf differ diff --git a/boards/ek-tm4c1294xl/blinky/gcc/blinky.bin b/boards/ek-tm4c1294xl/blinky/gcc/blinky.bin new file mode 100644 index 0000000..f01acf6 Binary files /dev/null and b/boards/ek-tm4c1294xl/blinky/gcc/blinky.bin differ diff --git a/boards/ek-tm4c1294xl/blinky/readme.txt b/boards/ek-tm4c1294xl/blinky/readme.txt new file mode 100644 index 0000000..de70ad5 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/readme.txt @@ -0,0 +1,24 @@ +Blinky + +A very simple example that blinks the on-board LED using direct register +access. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/blinky/rvmdk/blinky.axf b/boards/ek-tm4c1294xl/blinky/rvmdk/blinky.axf new file mode 100644 index 0000000..da2010b Binary files /dev/null and b/boards/ek-tm4c1294xl/blinky/rvmdk/blinky.axf differ diff --git a/boards/ek-tm4c1294xl/blinky/rvmdk/blinky.bin b/boards/ek-tm4c1294xl/blinky/rvmdk/blinky.bin new file mode 100644 index 0000000..d274548 Binary files /dev/null and b/boards/ek-tm4c1294xl/blinky/rvmdk/blinky.bin differ diff --git a/boards/ek-tm4c1294xl/blinky/startup_ccs.c b/boards/ek-tm4c1294xl/blinky/startup_ccs.c new file mode 100644 index 0000000..d65768f --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/startup_ccs.c @@ -0,0 +1,268 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/blinky/startup_ewarm.c b/boards/ek-tm4c1294xl/blinky/startup_ewarm.c new file mode 100644 index 0000000..7b2069a --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/startup_ewarm.c @@ -0,0 +1,299 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[64] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/blinky/startup_gcc.c b/boards/ek-tm4c1294xl/blinky/startup_gcc.c new file mode 100644 index 0000000..7a5e5c1 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/startup_gcc.c @@ -0,0 +1,315 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[64]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/blinky/startup_rvmdk.S b/boards/ek-tm4c1294xl/blinky/startup_rvmdk.S new file mode 100644 index 0000000..1df42b8 --- /dev/null +++ b/boards/ek-tm4c1294xl/blinky/startup_rvmdk.S @@ -0,0 +1,324 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000100 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/drivers/buttons.c b/boards/ek-tm4c1294xl/drivers/buttons.c new file mode 100644 index 0000000..5d243a0 --- /dev/null +++ b/boards/ek-tm4c1294xl/drivers/buttons.c @@ -0,0 +1,187 @@ +//***************************************************************************** +// +// buttons.c - Evaluation board driver for push buttons. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_types.h" +#include "inc/hw_memmap.h" +#include "inc/hw_gpio.h" +#include "driverlib/sysctl.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/pin_map.h" +#include "driverlib/gpio.h" +#include "drivers/buttons.h" + +//***************************************************************************** +// +//! \addtogroup buttons_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Holds the current, debounced state of each button. A 0 in a bit indicates +// that that button is currently pressed, otherwise it is released. +// We assume that we start with all the buttons released (though if one is +// pressed when the application starts, this will be detected). +// +//***************************************************************************** +static uint8_t g_ui8ButtonStates = ALL_BUTTONS; + +//***************************************************************************** +// +//! Polls the current state of the buttons and determines which have changed. +//! +//! \param pui8Delta points to a character that will be written to indicate +//! which button states changed since the last time this function was called. +//! This value is derived from the debounced state of the buttons. +//! \param pui8RawState points to a location where the raw button state will +//! be stored. +//! +//! This function should be called periodically by the application to poll the +//! pushbuttons. It determines both the current debounced state of the buttons +//! and also which buttons have changed state since the last time the function +//! was called. +//! +//! In order for button debouncing to work properly, this function should be +//! caled at a regular interval, even if the state of the buttons is not needed +//! that often. +//! +//! If button debouncing is not required, the the caller can pass a pointer +//! for the \e pui8RawState parameter in order to get the raw state of the +//! buttons. The value returned in \e pui8RawState will be a bit mask where +//! a 1 indicates the buttons is pressed. +//! +//! \return Returns the current debounced state of the buttons where a 1 in the +//! button ID's position indicates that the button is pressed and a 0 +//! indicates that it is released. +// +//***************************************************************************** +uint8_t +ButtonsPoll(uint8_t *pui8Delta, uint8_t *pui8RawState) +{ + uint32_t ui32Delta; + uint32_t ui32Data; + static uint8_t ui8SwitchClockA = 0; + static uint8_t ui8SwitchClockB = 0; + + // + // Read the raw state of the push buttons. Save the raw state + // (inverting the bit sense) if the caller supplied storage for the + // raw value. + // + ui32Data = (ROM_GPIOPinRead(BUTTONS_GPIO_BASE, ALL_BUTTONS)); + if(pui8RawState) + { + *pui8RawState = (uint8_t)~ui32Data; + } + + // + // Determine the switches that are at a different state than the debounced + // state. + // + ui32Delta = ui32Data ^ g_ui8ButtonStates; + + // + // Increment the clocks by one. + // + ui8SwitchClockA ^= ui8SwitchClockB; + ui8SwitchClockB = ~ui8SwitchClockB; + + // + // Reset the clocks corresponding to switches that have not changed state. + // + ui8SwitchClockA &= ui32Delta; + ui8SwitchClockB &= ui32Delta; + + // + // Get the new debounced switch state. + // + g_ui8ButtonStates &= ui8SwitchClockA | ui8SwitchClockB; + g_ui8ButtonStates |= (~(ui8SwitchClockA | ui8SwitchClockB)) & ui32Data; + + // + // Determine the switches that just changed debounced state. + // + ui32Delta ^= (ui8SwitchClockA | ui8SwitchClockB); + + // + // Store the bit mask for the buttons that have changed for return to + // caller. + // + if(pui8Delta) + { + *pui8Delta = (uint8_t)ui32Delta; + } + + // + // Return the debounced buttons states to the caller. Invert the bit + // sense so that a '1' indicates the button is pressed, which is a + // sensible way to interpret the return value. + // + return(~g_ui8ButtonStates); +} + +//***************************************************************************** +// +//! Initializes the GPIO pins used by the board pushbuttons. +//! +//! This function must be called during application initialization to +//! configure the GPIO pins to which the pushbuttons are attached. It enables +//! the port used by the buttons and configures each button GPIO as an input +//! with a weak pull-up. +//! +//! \return None. +// +//***************************************************************************** +void +ButtonsInit(void) +{ + // + // Enable the GPIO port to which the pushbuttons are connected. + // + ROM_SysCtlPeripheralEnable(BUTTONS_GPIO_PERIPH); + + // + // Set each of the button GPIO pins as an input with a pull-up. + // + ROM_GPIODirModeSet(BUTTONS_GPIO_BASE, ALL_BUTTONS, GPIO_DIR_MODE_IN); + MAP_GPIOPadConfigSet(BUTTONS_GPIO_BASE, ALL_BUTTONS, + GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); + + // + // Initialize the debounced button state with the current state read from + // the GPIO bank. + // + g_ui8ButtonStates = ROM_GPIOPinRead(BUTTONS_GPIO_BASE, ALL_BUTTONS); +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/boards/ek-tm4c1294xl/drivers/buttons.h b/boards/ek-tm4c1294xl/drivers/buttons.h new file mode 100644 index 0000000..38d01e1 --- /dev/null +++ b/boards/ek-tm4c1294xl/drivers/buttons.h @@ -0,0 +1,110 @@ +//***************************************************************************** +// +// buttons.h - Prototypes for the evaluation board buttons driver. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __BUTTONS_H__ +#define __BUTTONS_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Defines for the hardware resources used by the pushbuttons. +// +// The switches are on the following ports/pins: +// +// PJ0 - Left Button +// PJ1 - Right Button +// +// The switches tie the GPIO to ground, so the GPIOs need to be configured +// with pull-ups, and a value of 0 means the switch is pressed. +// +//***************************************************************************** +#define BUTTONS_GPIO_PERIPH SYSCTL_PERIPH_GPIOJ +#define BUTTONS_GPIO_BASE GPIO_PORTJ_BASE + +#define NUM_BUTTONS 2 +#define USR_SW1 GPIO_PIN_0 +#define USR_SW2 GPIO_PIN_1 +#define LEFT_BUTTON USR_SW1 +#define RIGHT_BUTTON USR_SW2 + + +#define ALL_BUTTONS (USR_SW1 | USR_SW2) + +//***************************************************************************** +// +// Useful macros for detecting button events. +// +//***************************************************************************** +#define BUTTON_PRESSED(button, buttons, changed) \ + (((button) & (changed)) && ((button) & (buttons))) + +#define BUTTON_RELEASED(button, buttons, changed) \ + (((button) & (changed)) && !((button) & (buttons))) + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Functions exported from buttons.c +// +//***************************************************************************** +extern void ButtonsInit(void); +extern uint8_t ButtonsPoll(uint8_t *pui8Delta, + uint8_t *pui8Raw); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +//***************************************************************************** +// +// Prototypes for the globals exported by this driver. +// +//***************************************************************************** + +#endif // __BUTTONS_H__ diff --git a/boards/ek-tm4c1294xl/drivers/eth_client_lwip.c b/boards/ek-tm4c1294xl/drivers/eth_client_lwip.c new file mode 100644 index 0000000..ff4f1e3 --- /dev/null +++ b/boards/ek-tm4c1294xl/drivers/eth_client_lwip.c @@ -0,0 +1,1046 @@ +//***************************************************************************** +// +// eth_client.c - This is the portion of the ethernet client. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#include +#include +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/flash.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "eth_client_lwip.h" +#include "utils/lwiplib.h" +#include "lwip/dns.h" +#include "lwipopts.h" + +#if RTOS_FREERTOS +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" +#include "semphr.h" +#endif + + +//***************************************************************************** +// +// Flag indexes for g_sEnet.ui32Flags +// +//***************************************************************************** +#define FLAG_TIMER_DHCP_EN 0 +#define FLAG_TIMER_DNS_EN 1 +#define FLAG_TIMER_TCP_EN 2 +#define FLAG_DHCP_STARTED 3 +#define FLAG_DNS_ADDRFOUND 4 + +//***************************************************************************** +// +// The current state of the Ethernet connection. +// +//***************************************************************************** +struct +{ + volatile uint32_t ui32Flags; + + // + // Array to hold the MAC addresses. + // + uint8_t pui8MACAddr[8]; + + // + // Global define of the TCP structure used. + // + struct tcp_pcb *psTCP; + + // + // Global IP structure to hold a copy of the IP address. + // + struct ip_addr sIPAddr; + + // + // Global IP structure to hold a copy of the DNS resolved address. + // + struct ip_addr sResolvedIP; + + // + // The saved proxy name as a text string. + // + const char *pcProxyName; + + // + // The port number for the proxy server. + // + uint16_t ui16ProxyPort; + + // + // The saved host name as a text string. + // + const char *pcHostName; + + // + // The port number on the host. + // + uint16_t ui16HostPort; + + // + // The number of bytes to be sent. + // + uint32_t ui32SendSize; + + // + // The index into the send buffer. + // + uint32_t ui32SendIndex; + + // + // Event handler. + // + tEventFunction pfnEvent; + + // + // States. + // + volatile enum + { + iEthNoConnection, + iEthDHCPWait, + iEthDNSWait, + iEthTCPOpen, + iEthTCPWait, + iEthSend, + iEthIdle + } eState; +} +g_sEnet; + +//***************************************************************************** +// +// Maximum size of a request. +// +//***************************************************************************** +#define MAX_REQUEST 256 + +//***************************************************************************** +// +// Send buffer config. +// +//***************************************************************************** +uint8_t g_pui8SendBuff[SEND_BUFFER_SIZE]; + +//***************************************************************************** +// +// Reset the state to a non-connected state to restart dhcp and dns. +// +//***************************************************************************** +static void +ResetConnection(void) +{ + // + // Nothing to do if already not connected. + // + if(g_sEnet.eState != iEthNoConnection) + { + // + // No longer have a link. + // + g_sEnet.eState = iEthNoConnection; + + // + // Reset the flags to just enable the lwIP timer. + // + g_sEnet.ui32Flags = (1 << FLAG_TIMER_DHCP_EN); + } + + // + // Deallocate the TCP structure if it was already allocated. + // + if(g_sEnet.psTCP) + { + // + // Clear out all of the TCP callbacks. + // + tcp_sent(g_sEnet.psTCP, NULL); + tcp_recv(g_sEnet.psTCP, NULL); + tcp_err(g_sEnet.psTCP, NULL); + + // + // Close the TCP connection. + // + tcp_close(g_sEnet.psTCP); + g_sEnet.psTCP = 0; + } +} + +//***************************************************************************** +// +// Handler function when the DNS server gets a response or times out. +// +// \param pcName is DNS server name. +// \param psIPAddr is the DNS server's IP address. +// \param vpArg is the configurable argument. +// +// This function is called when the DNS server resolves an IP or times out. +// If the DNS server returns an IP structure that is not NULL, add the IP to +// to the g_sEnet.sResolvedIP IP structure. +// +// \return None. +// +//***************************************************************************** +static void +DNSServerFound(const char *pcName, struct ip_addr *psIPAddr, void *vpArg) +{ + // + // Check if a valid DNS server address was found. + // + if((psIPAddr) && (psIPAddr->addr)) + { + // + // Copy the returned IP address into a global IP address. + // + g_sEnet.sResolvedIP = *psIPAddr; + + // + // Tell the main program that a DNS address was found. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_DNS_ADDRFOUND) = 1; + } + else + { + // + // Disable the DNS timer. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) = 0; + } +} + +//***************************************************************************** +// +//! Handles lwIP TCP/IP errors. +//! +//! \param vPArg is the state data for this connection. +//! \param iErr is the error that was detected. +//! +//! This function is called when the lwIP TCP/IP stack has detected an error. +//! The connection is no longer valid. +//! +//! \return None. +// +//***************************************************************************** +void +TCPError(void *vPArg, err_t iErr) +{ + // + // Signal event handler that there was an error. + // + g_sEnet.pfnEvent(ETH_CLIENT_EVENT_ERROR, 0, (uint32_t)iErr); +} + +//***************************************************************************** +// +//! Finalizes the TCP connection in client mode. +//! +//! \param pvArg is the state data for this connection. +//! \param psPcb is the pointer to the TCP control structure. +//! \param psBuf +//! \param iErr is not used in this implementation. +//! +//! This function is called when the lwIP TCP/IP stack has completed a TCP +//! connection. +//! +//! \return This function will return an lwIP defined error code. +// +//***************************************************************************** +err_t +TCPReceived(void *pvArg, struct tcp_pcb *psPcb, struct pbuf *psBuf, err_t iErr) +{ + struct pbuf *psBufCur; + + // + // Signal event handler that data is available. + // + g_sEnet.pfnEvent(ETH_CLIENT_EVENT_RECEIVE, (void *)psBuf->payload, + (uint32_t)psBuf->len); + + // + // Indicate that you have received and processed this set of TCP data. + // + tcp_recved(psPcb, psBuf->len); + + // + // Initialize the linked list pointer to parse. + // + psBufCur = psBuf; + + // + // Free the buffers used since they have been processed. + // + while(psBufCur->len != 0) + { + // + // Indicate that you have received and processed this set of TCP data. + // + tcp_recved(psPcb, psBufCur->len); + + // + // Go to the next buffer. + // + psBufCur = psBufCur->next; + + // + // Terminate if there are no more buffers. + // + if(psBufCur == 0) + { + break; + } + } + + // + // Free the memory space allocated for this receive. + // + pbuf_free(psBuf); + + // + // Return. + // + return(ERR_OK); +} + +//***************************************************************************** +// +//! Handles acknowledgment of data transmitted via Ethernet. +//! +//! \param pvArg is the state data for this connection. +//! \param psPcb is the pointer to the TCP control structure. +//! \param ui16Len is the length of the data transmitted. +//! +//! This function is called when the lwIP TCP/IP stack has received an +//! acknowledgment for data that has been transmitted. +//! +//! \return This function will return an lwIP defined error code. +// +//***************************************************************************** +err_t +TCPSent(void *pvArg, struct tcp_pcb *psPcb, u16_t ui16Len) +{ + // + // Signal the event handler that data was sent. + // + g_sEnet.pfnEvent(ETH_CLIENT_EVENT_SEND, 0, (uint32_t)ui16Len); + + // + // Return OK. + // + return (ERR_OK); +} + +//***************************************************************************** +// +//! Finalizes the TCP connection in client mode. +//! +//! \param pvArg is the state data for this connection. +//! \param psPcb is the pointer to the TCP control structure. +//! \param iErr is not used in this implementation. +//! +//! This function is called when the lwIP TCP/IP stack has completed a TCP +//! connection. +//! +//! \return This function will return an lwIP defined error code. +// +//***************************************************************************** +err_t +TCPConnected(void *pvArg, struct tcp_pcb *psPcb, err_t iErr) +{ + // + // Check if there was a TCP error. + // + if(iErr != ERR_OK) + { + // + // Clear out all of the TCP callbacks. + // + tcp_sent(psPcb, NULL); + tcp_recv(psPcb, NULL); + tcp_err(psPcb, NULL); + + // + // Close the TCP connection. + // + tcp_close(psPcb); + + if(psPcb == g_sEnet.psTCP) + { + g_sEnet.psTCP = 0; + } + + // + // And return. + // + return(ERR_CONN); + } + + // + // Setup the TCP receive function. + // + tcp_recv(psPcb, TCPReceived); + + // + // Setup the TCP error function. + // + tcp_err(psPcb, TCPError); + + // + // Setup the TCP sent callback function. + // + tcp_sent(psPcb, TCPSent); + + // + // Signal event handler that connection is established. + // + g_sEnet.pfnEvent(ETH_CLIENT_EVENT_CONNECT, 0, 0); + + // + // Return a success code. + // + return(ERR_OK); +} + +//***************************************************************************** +// +//! TCP connect +//! +//! This function attempts to connect to a TCP endpoint. +//! +//! \return None. +// +//***************************************************************************** +int32_t +EthClientTCPConnect(void) +{ + err_t eTCPReturnCode; + + // + // Enable the TCP timer function calls. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_TCP_EN) = 1; + + if(g_sEnet.psTCP) + { + // + // Initially clear out all of the TCP callbacks. + // + tcp_sent(g_sEnet.psTCP, NULL); + tcp_recv(g_sEnet.psTCP, NULL); + tcp_err(g_sEnet.psTCP, NULL); + + // + // Make sure there is no lingering TCP connection. + // + tcp_close(g_sEnet.psTCP); + } + + // + // Create a new TCP socket. + // + g_sEnet.psTCP = tcp_new(); + + // + // Check if you need to go through a proxy. + // + if(g_sEnet.pcProxyName != 0) + { + // + // Attempt to connect through the proxy server. + // + eTCPReturnCode = tcp_connect(g_sEnet.psTCP, &g_sEnet.sResolvedIP, + g_sEnet.ui16ProxyPort, TCPConnected); + } + else + { + // + // Attempt to connect to the server directly. + // + eTCPReturnCode = tcp_connect(g_sEnet.psTCP, &g_sEnet.sResolvedIP, + g_sEnet.ui16HostPort, TCPConnected); + } + + if((eTCPReturnCode == ERR_OK) || (eTCPReturnCode == ERR_INPROGRESS)) + { + return(0); + } + else + { + return(1); + } +} + +//***************************************************************************** +// +//! TCP discconnect +//! +//! This function attempts to disconnect a TCP endpoint. +//! +//! \return None. +// +//***************************************************************************** +void +EthClientTCPDisconnect(void) +{ + g_sEnet.eState = iEthIdle; + + // + // Reset connection. + // + ResetConnection(); + + // + // Disable the TCP timer function calls. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_TCP_EN) = 0; +} + +//***************************************************************************** +// +//! Send a request to the server +//! +//! \param pi8Request request to be sent +//! \param ui32Size length of the request to be sent. This is usually the size +//! of the request minus the termination character. +//! +//! This function will send the request to the connected server +//! +//! \return the lwIP error code. +// +//***************************************************************************** +int32_t +EthClientSend(int8_t *pi8Request, uint32_t ui32Size) +{ + uint32_t ui32Index, ui32SendSize, ui32CurrentState; + + // + // Save off the current number of bytes used in the buffer and the current + // state. + // + ui32SendSize = g_sEnet.ui32SendSize; + ui32CurrentState = g_sEnet.eState; + + // + // Check that we have room in the buffer. + // + if (ui32SendSize + ui32Size <= SEND_BUFFER_SIZE) + { + // + // Fill the send buffer. + // + for (ui32Index = 0; ui32Index < ui32Size; ui32Index++) + { + g_pui8SendBuff[ui32SendSize + ui32Index] = + pi8Request[ui32Index]; + } + + // + // Increment the number of bytes we have to send. + // + g_sEnet.ui32SendSize += ui32Size; + + // + // Check if we have already sent some data in the buffer. + // This is determined by checking the number of bytes left to be sent + // and the current state. If we have then we need to update the index + // into the buffer. + // + if (g_sEnet.ui32SendSize != ui32SendSize && + g_sEnet.eState != ui32CurrentState && + ui32CurrentState == iEthSend) + { + g_sEnet.ui32SendIndex = ui32SendSize; + } + else + { + g_sEnet.ui32SendIndex = 0; + } + + // + // Set the state to Send and send on the next Tick. + // + g_sEnet.eState = iEthSend; + + return(ERR_OK); + } + else + { + // + // Tell the app we dont have enough memory. + // + return(ERR_MEM); + } +} + +//***************************************************************************** +// +//! DHCP connect +//! +//! This function obtains the MAC address from the User registers, starts the +//! DHCP timer and blocks until an IP address is obtained. +//! +//! \return None. +// +//***************************************************************************** +err_t +EthClientDHCPConnect(void) +{ + // + // Check if the DHCP has already been started. + // + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_DHCP_STARTED) == 0) + { + // + // Set the DCHP started flag. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_DHCP_STARTED) = 1; + } + else + { + // + // If DHCP has already been started, we need to clear the IPs and + // switch to static. This forces the LWIP to get new IP address + // and retry the DHCP connection. + // + lwIPNetworkConfigChange(0, 0, 0, IPADDR_USE_STATIC); + + // + // Restart the DHCP connection. + // + lwIPNetworkConfigChange(0, 0, 0, IPADDR_USE_DHCP); + } + + return ERR_OK; +} + +//***************************************************************************** +// +//! Handler function when the DNS server gets a response or times out. +//! +//! This function is called when the DNS server resolves an IP or times out. +//! If the DNS server returns an IP structure that is not NULL, add the IP to +//! to the g_sEnet.sResolvedIP IP structure. +//! +//! \return None. +// +//***************************************************************************** +int32_t +EthClientDNSResolve(void) +{ + err_t iRet; + + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN)) + { + return(ERR_INPROGRESS); + } + + // + // Set DNS config timer to true. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) = 1; + + // + // Initialize the host name IP address found flag to false. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_DNS_ADDRFOUND) = 0; + + // + // Set state. + // + g_sEnet.eState = iEthDNSWait; + + // + // Resolve host name. + // + if(g_sEnet.pcProxyName != 0) + { + iRet = dns_gethostbyname(g_sEnet.pcProxyName, &g_sEnet.sResolvedIP, + DNSServerFound, 0); + } + else + { + iRet = dns_gethostbyname(g_sEnet.pcHostName, &g_sEnet.sResolvedIP, + DNSServerFound, 0); + } + + // + // If ERR_OK is returned, the local DNS table resolved the host name. If + // ERR_INPROGRESS is returned, the DNS request has been queued and will be + // sent to the DNS server. + // + if(iRet == ERR_OK) + { + // + // Stop calling the DNS timer function. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) = 0; + } + + // + // Return host name not found. + // + return(iRet); +} + +//***************************************************************************** +// +// Returns the weather server IP address for this interface. +// +// This function will read and return the server IP address that is currently +// in use. This could be the proxy server if the Internet proxy is enabled. +// +// \return Returns the weather server IP address for this interface. +// +//***************************************************************************** +uint32_t +EthClientServerAddrGet(void) +{ + // + // Return IP. + // + return((uint32_t)g_sEnet.sResolvedIP.addr); +} + +//***************************************************************************** +// +//! Returns the IP address for this interface. +//! +//! This function will read and return the currently assigned IP address for +//! the Tiva Ethernet interface. +//! +//! \return Returns the assigned IP address for this interface. +// +//***************************************************************************** +uint32_t +EthClientAddrGet(void) +{ + // + // Return IP. + // + return(lwIPLocalIPAddrGet()); +} + +//***************************************************************************** +// +// Returns the MAC address for the Tiva Ethernet controller. +// +// \param pui8MACAddr is the 6 byte MAC address assigned to the Ethernet +// controller. +// +// This function will read and return the MAC address for the Ethernet +// controller. +// +// \return Returns the weather server IP address for this interface. +// +//***************************************************************************** +void +EthClientMACAddrGet(uint8_t *pui8MACAddr) +{ + int32_t iIdx; + + for(iIdx = 0; iIdx < 6; iIdx++) + { + pui8MACAddr[iIdx] = g_sEnet.pui8MACAddr[iIdx]; + } +} + +//***************************************************************************** +// +// Set the proxy string for the Ethernet connection. +// +// \param pi8ProxyName is the string used as the proxy server name. +// +// This function sets the current proxy used by the Ethernet connection. The +// \e pi8ProxyName value can be 0 to indicate that no proxy is in use or it can +// be a pointer to a string that holds the name of the proxy server to use. +// The content of the pointer passed to \e pi8ProxyName should not be changed +// after this call as this function only stores the pointer and does not copy +// the data from this pointer. +// +// \return None. +// +//***************************************************************************** +void +EthClientProxySet(const char *pcProxyName, uint16_t ui16Port) +{ + // + // Save the new proxy string. + // + g_sEnet.pcProxyName = pcProxyName; + g_sEnet.ui16ProxyPort = ui16Port; + + // + // Reset the connection on any change to the proxy. + // + ResetConnection(); +} + +void +EthClientHostSet(const char *pcHostName, uint16_t ui16Port) +{ + // + // Save the new host setting. + // + g_sEnet.pcHostName = pcHostName; + g_sEnet.ui16HostPort = ui16Port; + + // + // Reset the connection on any change to the host. + // + ResetConnection(); +} + +//***************************************************************************** +// +// Initialize the Ethernet client +// +// This function initializes all the Ethernet components to not configured. +// This tells the SysTick interrupt which timer modules to call. +// +// \return None. +// +//***************************************************************************** +void +EthClientInit(uint32_t ui32SysClock, tEventFunction pfnEvent) +{ + uint32_t ui32User0, ui32User1; + + // + // Initialize all the Ethernet components to not configured. This tells + // the SysTick interrupt which timer modules to call. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DHCP_EN) = 0; + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) = 0; + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_TCP_EN) = 0; + + g_sEnet.eState = iEthNoConnection; + g_sEnet.pfnEvent = pfnEvent; + g_sEnet.pcProxyName = 0; + + // + // Convert the 24/24 split MAC address from NV ram into a 32/16 split MAC + // address needed to program the hardware registers, then program the MAC + // address into the Ethernet Controller registers. + // + FlashUserGet(&ui32User0, &ui32User1); + + g_sEnet.pui8MACAddr[0] = ((ui32User0 >> 0) & 0xff); + g_sEnet.pui8MACAddr[1] = ((ui32User0 >> 8) & 0xff); + g_sEnet.pui8MACAddr[2] = ((ui32User0 >> 16) & 0xff); + g_sEnet.pui8MACAddr[3] = ((ui32User1 >> 0) & 0xff); + g_sEnet.pui8MACAddr[4] = ((ui32User1 >> 8) & 0xff); + g_sEnet.pui8MACAddr[5] = ((ui32User1 >> 16) & 0xff); + + // + // Initialize lwIP with the system clock, MAC and use DHCP. + // + lwIPInit(ui32SysClock, g_sEnet.pui8MACAddr, 0, 0, 0, IPADDR_USE_DHCP); + + // + // Start lwIP tick interrupt. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DHCP_EN) = 1; +} + +//***************************************************************************** +// +// Periodic Tick for the Ethernet client +// +// This function is the needed periodic tick for the Ethernet client. It needs +// to be called periodically through the use of a timer or systick. +// +// \return None. +// +//***************************************************************************** +#if NO_SYS +void +EthClientTick(uint32_t ui32TickMS) +{ + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DHCP_EN)) + { + lwIPTimer(ui32TickMS); + } +} +#endif // #if NO_SYS +//***************************************************************************** +// +// Required by lwIP library to support any host-related timer functions. +// +//***************************************************************************** + +void +lwIPHostTimerHandler(void) +{ + uint32_t ui32IPAddr; + err_t eError; +#if NO_SYS + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN)) + { + dns_tmr(); + } + + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_TCP_EN)) + { + tcp_tmr(); + } +#endif // #if NO_SYS + + // + // Check if we need to send. + // + if(g_sEnet.eState == iEthSend) + { + // + // Queue the send. + // + eError = tcp_write(g_sEnet.psTCP, + g_pui8SendBuff + g_sEnet.ui32SendIndex, + g_sEnet.ui32SendSize, TCP_WRITE_FLAG_COPY); + + // + // Write data for sending (but does not send it immediately). + // + if(eError == ERR_OK) + { + // + // Find out what we can send and send it. + // + tcp_output(g_sEnet.psTCP); + + // + // No more data to send. + // + g_sEnet.ui32SendSize = 0; + + } + + // + // Set state to Idle + // + g_sEnet.eState = iEthIdle; + } + + // + // Check for loss of link. + // + else if((g_sEnet.eState != iEthNoConnection) && + (lwIPLocalIPAddrGet() == 0xffffffff)) + { + // + // Reset the connection due to a loss of link. + // + ResetConnection(); + + // + // Signal a disconnect event. + // + g_sEnet.pfnEvent(ETH_CLIENT_EVENT_DISCONNECT, 0, 0); + } + else if(g_sEnet.eState == iEthNoConnection) + { + // + // Once link is detected start DHCP. + // + if(lwIPLocalIPAddrGet() != 0xffffffff) + { + EthClientDHCPConnect(); + g_sEnet.eState = iEthDHCPWait; + } + } + else if(g_sEnet.eState == iEthDHCPWait) + { + // + // Get IP address. + // + ui32IPAddr = lwIPLocalIPAddrGet(); + + // + // If IP Address has not yet been assigned, update the display + // accordingly. + // + if((ui32IPAddr != 0xffffffff) && (ui32IPAddr != 0)) + { + // + // Update the DHCP IP address. + // + g_sEnet.sIPAddr.addr = ui32IPAddr; + g_sEnet.eState = iEthIdle; + + // + // Stop DHCP timer since an address has been provided. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_DHCP_STARTED) = 0; + + // + // Signal a connect event. + // + g_sEnet.pfnEvent(ETH_CLIENT_EVENT_DHCP, &g_sEnet.sIPAddr.addr, 4); + } + } + else if(g_sEnet.eState == iEthDNSWait) + { + // + // Check to see if the DNS timer has been turned off, which signals + // that the DNS lookup has failed. + // + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) == 0) + { + // + // Go back to idle. + // + g_sEnet.eState = iEthIdle; + + // + // Signal failure. + // + g_sEnet.pfnEvent(ETH_CLIENT_EVENT_DNS, 0, 0); + } + + // + // Check if the host name was resolved. + // + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_DNS_ADDRFOUND)) + { + // + // Stop calling the DNS timer function. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) = 0; + + // + // Go back to idle. + // + g_sEnet.eState = iEthIdle; + + // + // Notify the main routine of the new Ethernet connection. + // + g_sEnet.pfnEvent(ETH_CLIENT_EVENT_DNS, &g_sEnet.sResolvedIP.addr, + 4); + } + } +} diff --git a/boards/ek-tm4c1294xl/drivers/eth_client_lwip.h b/boards/ek-tm4c1294xl/drivers/eth_client_lwip.h new file mode 100644 index 0000000..7894f1b --- /dev/null +++ b/boards/ek-tm4c1294xl/drivers/eth_client_lwip.h @@ -0,0 +1,88 @@ +//***************************************************************************** +// +// eth_client.h - Prototypes for the driver for the eth_client. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#ifndef ETH_CLIENT_H_ +#define ETH_CLIENT_H_ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Maximum size for the circular receive buffer. +// +//***************************************************************************** +#define SEND_BUFFER_SIZE 4096 + +//***************************************************************************** +// +// Events passed back to the application. +// +//***************************************************************************** +#define ETH_CLIENT_EVENT_DHCP 0x00000001 +#define ETH_CLIENT_EVENT_DISCONNECT 0x00000002 +#define ETH_CLIENT_EVENT_DNS 0x00000003 +#define ETH_CLIENT_EVENT_CONNECT 0x00000004 +#define ETH_CLIENT_EVENT_RECEIVE 0x00000005 +#define ETH_CLIENT_EVENT_SEND 0x00000006 +#define ETH_CLIENT_EVENT_ERROR 0x00000007 + +//***************************************************************************** +// +// The type definition for event functions. +// +//***************************************************************************** +typedef void (* tEventFunction)(uint32_t ui32Event, void* pvData, + uint32_t ui32Param); + +//***************************************************************************** +// +// Exported Ethernet function prototypes. +// +//***************************************************************************** +extern void EthClientInit(uint32_t ui32SysClock, tEventFunction pfnEvent); +extern void EthClientTick(uint32_t ui32TickMS); +extern uint32_t EthClientAddrGet(void); +extern void EthClientMACAddrGet(uint8_t *pui8Addr); + +extern int32_t EthClientTCPConnect(void); +extern void EthClientTCPDisconnect(void); +extern void EthClientProxySet(const char *pcProxyName, uint16_t ui16Port); +extern void EthClientHostSet(const char *pcHostName, uint16_t ui16Port); +extern int32_t EthClientDNSResolve(void); +extern uint32_t EthClientServerAddrGet(void); +extern int32_t EthClientSend(int8_t *pi8Request, uint32_t ui32Size); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.c b/boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.c new file mode 100644 index 0000000..4cee9b8 --- /dev/null +++ b/boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.c @@ -0,0 +1,1081 @@ +//***************************************************************************** +// +// exosite_hal_lwip.c - Abstraction Layer between exosite and eth_client_lwip. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include +#include "inc/hw_types.h" +#include "inc/hw_ints.h" +#include "driverlib/eeprom.h" +#include "driverlib/interrupt.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "drivers/eth_client_lwip.h" +#include "drivers/http.h" +#include "utils/ringbuf.h" +#include "utils/ustdlib.h" +#include "exosite.h" +#include "exosite_hal_lwip.h" +#include "exosite_meta.h" +#include "lwipopts.h" + +#if RTOS_FREERTOS +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" +#include "semphr.h" +#endif + +//***************************************************************************** +// +// Defines for setting up the system clock. +// +//***************************************************************************** +#define SYSTICKHZ 100 +#define SYSTICKMS (1000 / SYSTICKHZ) +#define SYSTICKUS (1000000 / SYSTICKHZ) +#define SYSTICKNS (1000000000 / SYSTICKHZ) + +//***************************************************************************** +// +// Interrupt priority definitions. The top 3 bits of these values are +// significant with lower values indicating higher priority interrupts. +// +//***************************************************************************** +#define SYSTICK_INT_PRIORITY 0x80 +#define ETHERNET_INT_PRIORITY 0xC0 + +//***************************************************************************** +// +// Proxy info +// +//***************************************************************************** +bool g_bUseProxy = false; +char g_pcProxyAddress[50]; +uint16_t g_ui16ProxyPort = 0; + +//***************************************************************************** +// +// System clock speed. +// +//***************************************************************************** +extern uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// Buffer used to hold proxy request message, and size of proxy request +// message. +// +//***************************************************************************** +char g_pcRequest[256] = {0}; +uint8_t g_ui8RequestSize = 0; + +//***************************************************************************** +// +// IP address. +// +//***************************************************************************** +char g_pcIPAddr[20]; + +//***************************************************************************** +// +// The current state of the exosite connection. +// +//***************************************************************************** +struct +{ + // + // Flags used by the application. + // + volatile uint32_t ui32Flags; + + // + // Client ID used to identify this client on the server/broker. + // + char *pcClientID; + + // + // Server/broker name. + // + char *pcServer; + + // + // Event handler for EXOSITE events. + // + tExositeEventHandler pfnEventHandler; + + // + // States. + // + volatile enum + { + EXOSITE_STATE_NOT_CONNECTED, + EXOSITE_STATE_CONNECTED_IDLE, + EXOSITE_STATE_PROXY_WAIT, + } eState; +} +g_sExosite; + +//***************************************************************************** +// +// EERPROM status. +// +//***************************************************************************** +uint32_t g_ui32EEStatus = 0; + +//***************************************************************************** +// +// Receive buffer config. +// +//***************************************************************************** +tRingBufObject g_sEnetBuffer; +uint8_t g_ui8Data[RECEIVE_BUFFER_SIZE]; + +//***************************************************************************** +// +// The interrupt handler for the SysTick interrupt. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + // + // Call into Ethernet client layer. + // +#if NO_SYS + EthClientTick(10); +#endif + +} + +//***************************************************************************** +// +//! Enables the memory used to store any meta data. +//! +//! This function enables the EEPROM to be used to store any meta data. +//! +//! \return None. +// +//***************************************************************************** +void +exoHAL_EnableMeta(void) +{ + // + // Enable the EEPROM peripheral. + // + SysCtlPeripheralEnable(SYSCTL_PERIPH_EEPROM0); + + // + // Initialize the EEPROM + // + EEPROMInit(); + + // + // Indicate that the EEPROM is now initalized. + // + g_ui32EEStatus = EEPROM_INITALIZED; +} + +//***************************************************************************** +// +//! Function is a simple return to maintain compatibility with exostie.c/h. +//! +//! This function just returns. +//! +//! \return None. +// +//***************************************************************************** +void +exoHAL_EraseMeta(void) +{ + return; +} + +//***************************************************************************** +// +//! Write meta information to the nonvolatile memory (EEPROM). +//! +//! \param pucBuffer - string buffer containing info to write to meta. +//! \param iLength - size of string in bytes. +//! \param iOffset - offset from base of meta location to store the item. +//! +//! This function stores information to the NV meta structure. +//! +//! \return None. +// +//***************************************************************************** +void +exoHAL_WriteMetaItem(unsigned char * pucBuffer, int iLength, + int iOffset) +{ + // + // Make sure EEPROM is initialized. + // + if (g_ui32EEStatus == EEPROM_IDLE || g_ui32EEStatus == EEPROM_INITALIZED) + { + // + // Set EEPROM status to erasing. + // + g_ui32EEStatus = EEPROM_WRITING; + + // + // Write the info to the EEPROM. + // + EEPROMProgram((uint32_t *)pucBuffer, + (uint32_t)(EXOMETA_ADDR_OFFSET + iOffset), (uint32_t)iLength); + + // + // Set EEPROM status to IDLE. + // + g_ui32EEStatus = EEPROM_IDLE; + } + else + { + // + // Set EEPROM status to ERROR. + // + g_ui32EEStatus = EEPROM_ERROR; + } +} + +//***************************************************************************** +// +//! Read meta information from the nonvolatile memory (EEPROM). +//! +//! \param pucBuffer - buffer we can read meta info into. +//! \param iLength - size of the buffer (max 256 bytes). +//! \param iOffset - offset from base of meta to begin reading from. +//! +//! This function reads information from the NV meta structure. +//! +//! \return None. +// +//***************************************************************************** +void +exoHAL_ReadMetaItem(unsigned char * pucBuffer, int iLength, + int iOffset) +{ + // + // Make sure the EEPROM is initialized and idle. + // + if (g_ui32EEStatus == EEPROM_IDLE || g_ui32EEStatus == EEPROM_INITALIZED) + { + // + // Indicate that the EEPROM is now being read. + // + g_ui32EEStatus = EEPROM_READING; + + // + // Read the requested data. + // + EEPROMRead((uint32_t *)pucBuffer, + (uint32_t)(EXOMETA_ADDR_OFFSET + iOffset), (uint32_t)iLength); + + // + // Set EEPROM status to IDLE. + // + g_ui32EEStatus = EEPROM_IDLE; + } + else + { + // + // Set EEPROM status to ERROR. + // + g_ui32EEStatus = EEPROM_ERROR; + } +} + +//***************************************************************************** +// +// Reset the connection state. +// +//***************************************************************************** +void +exoHAL_ResetConnection(void) +{ + // + // Reset flags. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_CONNECT_WAIT) = 0; + HWREGBITW(&g_sExosite.ui32Flags, FLAG_CONNECTED) = 0; + HWREGBITW(&g_sExosite.ui32Flags, FLAG_RECEIVED) = 0; + HWREGBITW(&g_sExosite.ui32Flags, FLAG_SENT) = 0; + HWREGBITW(&g_sExosite.ui32Flags, FLAG_BUSY) = 0; + HWREGBITW(&g_sExosite.ui32Flags, FLAG_PROXY_SET) = 0; + + // + // Empty the receive buffer. + // + RingBufFlush(&g_sEnetBuffer); + + // + // Reset state. + // + g_sExosite.eState = EXOSITE_STATE_NOT_CONNECTED; +} + +//***************************************************************************** +// +// Constructs proxy CONNECT request. +// +//***************************************************************************** +static void +exoHAL_ExositeConstructProxyRequest(void) +{ + char pcTemp[128]; + + // + // Construct the request. + // + usprintf(pcTemp, "%s:%d" ,EXOSITE_ADDRESS, EXOSITE_PORT); + HTTPMessageTypeSet(g_pcRequest, HTTP_MESSAGE_CONNECT, pcTemp); + + // + // Count the number of bytes in the transfer. + // + g_ui8RequestSize = strlen(g_pcRequest); +} + +//***************************************************************************** +// +// Network events handler. +// +//***************************************************************************** +void +exoHAL_ExositeEnetEvents(uint32_t ui32Event, void *pvData, uint32_t ui32Param) +{ + uint32_t ui32NumHeaders; + uint8_t *pD = (uint8_t *)pvData; + + // + // Handle events from the Ethernet client layer. + // + switch(ui32Event) + { + // + // Ethernet client has received data. + // + case ETH_CLIENT_EVENT_RECEIVE: + { + // + // Set the RECEIVED flag if we have a minimum of 50 bytes received. + // + if (ui32Param >= 50) + { + HWREGBITW(&g_sExosite.ui32Flags, FLAG_RECEIVED) = 1; + } + + if (RingBufFree(&g_sEnetBuffer) >= ui32Param) + { + // + // Write to the ring buffer. + // + RingBufWrite(&g_sEnetBuffer, pD, ui32Param); + } + else + { + } + + // + // Handle the received data based on the state of the EXOSITE + // transfer. + // + switch(g_sExosite.eState) + { + // + // Idle state. + // + case EXOSITE_STATE_CONNECTED_IDLE: + { + break; + } + + // + // Waiting for the proxy connect request to complete. + // + case EXOSITE_STATE_PROXY_WAIT: + { + // + // Check the response. + // + if(!HTTPResponseParse((char *)pD, g_pcRequest, + (uint32_t *)&ui32NumHeaders)) + { + break; + } + + if (ustrncmp((char *)pD, "200", 3)) + { + // + // Empty the receive buffer. + // + RingBufFlush(&g_sEnetBuffer); + + // + // Set the connected flag. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_CONNECTED) = 1; + + // + // Clear the RECEIVED flag. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_RECEIVED) = 0; + + // + // IDLE state. + // + g_sExosite.eState = EXOSITE_STATE_CONNECTED_IDLE; + + break; + } + break; + } + + default: + break; + } + break; + } + + // + // Ethernet client has connected to the specified server/host and port. + // + case ETH_CLIENT_EVENT_CONNECT: + { + // + // If there is a proxy, establish the connection. + // + if(g_bUseProxy && HWREGBITW(&g_sExosite.ui32Flags, FLAG_PROXY_SET)) + { + // + // Construct the CONNECT request. + // + exoHAL_ExositeConstructProxyRequest(); + EthClientSend((int8_t *)g_pcRequest, g_ui8RequestSize); + + // + // Wait for callback from the CONNECT request. + // + g_sExosite.eState = EXOSITE_STATE_PROXY_WAIT; + } + else + { + // + // Set the connected flag. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_CONNECTED) = 1; + } + + break; + } + // + // Ethernet client has obtained IP address via DHCP. + // + case ETH_CLIENT_EVENT_DHCP: + { + break; + } + + // + // Ethernet client has received DNS response. + // + case ETH_CLIENT_EVENT_DNS: + { + if(ui32Param != 0) + { + // + // If DNS resolved successfully, initialize the socket and + // stack. + // + EthClientTCPConnect(); + } + else + { + // + // Clear the busy flag. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_BUSY) = 0; + + // + // Clear the DNS flag. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_DNS_INIT) = 0; + + // + // Update state machine. + // + g_sExosite.eState = EXOSITE_STATE_NOT_CONNECTED; + } + + break; + } + + // + // Ethernet client has disconnected from the server/host. + // + case ETH_CLIENT_EVENT_DISCONNECT: + { + // + // Close the socket. + // + exoHAL_SocketClose(0); + + break; + } + + // + // All other cases are unhandled. + // + case ETH_CLIENT_EVENT_SEND: + { + + break; + } + + + case ETH_CLIENT_EVENT_ERROR: + { + + break; + } + + default: + { + + break; + } + + } +} + +//***************************************************************************** +// +// Exosite init. +// +//***************************************************************************** +void +exoHAL_ExositeInit(void) +{ + if (HWREGBITW(&g_sExosite.ui32Flags, FLAG_ENET_INIT) == 0) + { + +#if NO_SYS + // + // Configure SysTick for a periodic interrupt. + // + SysTickPeriodSet(g_ui32SysClock / SYSTICKHZ); + SysTickEnable(); + SysTickIntEnable(); + + // + // Turn on interrupts. + // + IntMasterEnable(); + + // + // Set the interrupt priorities. We set the SysTick interrupt to a + // higher priority than the Ethernet interrupt to ensure that the file + // system tick is processed if SysTick occurs while the Ethernet + // handler is being processed. This is very likely since all the + // TCP/IP and HTTP work is done in the context of the Ethernet + // interrupt. + // + + IntPriorityGroupingSet(4); + IntPrioritySet(INT_EMAC0, ETHERNET_INT_PRIORITY); + IntPrioritySet(FAULT_SYSTICK, SYSTICK_INT_PRIORITY); +#endif + // + // Initialize the structure to known state. + // + g_sExosite.ui32Flags = 0; + g_sExosite.pcClientID = 0; + g_sExosite.pcServer = 0; + g_sExosite.eState = EXOSITE_STATE_NOT_CONNECTED; + + // + // Initialize the Ethernet Client. + // + EthClientInit(g_ui32SysClock, &exoHAL_ExositeEnetEvents); + + // + // Initialize the write pointer for the circular buffer. + // + RingBufInit(&g_sEnetBuffer, g_ui8Data, RECEIVE_BUFFER_SIZE); + + // + // Set the host address. + // + EthClientHostSet(EXOSITE_ADDRESS, EXOSITE_PORT); + + // + // Signal that we have initialized the Ethernet Client. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_ENET_INIT) = 1; + } +} + +//***************************************************************************** +// +//! Reads and returns the UUID (MAC). +//! +//! \param ucIfNbr - The interface number (1-WiFi). +//! \param pucUUIDBuf - The buffer to return the hexadecimal MAC. +//! +//! This function reads the MAC address from the hardware. +//! +//! \return 0 if failure. Length of UUID if successful. +// +//***************************************************************************** +int +exoHAL_ReadUUID(unsigned char ucIfNbr, unsigned char * pucUUIDBuf) +{ + uint8_t pui8MACAddr[6]; + + // + // Initialize the Client which initializes the MAC. + // + exoHAL_ExositeInit(); + + // + // Get the MAC. + // + EthClientMACAddrGet(pui8MACAddr); + + // + // Fill pucUUIDBuf. + // + usprintf((char *)pucUUIDBuf,"%02x%02x%02x%02x%02x%02x", + (char)pui8MACAddr[0], + (char)pui8MACAddr[1], + (char)pui8MACAddr[2], + (char)pui8MACAddr[3], + (char)pui8MACAddr[4], + (char)pui8MACAddr[5]); + + // + // Return the size of the MAC. + // + return sizeof(pucUUIDBuf); +} + +//***************************************************************************** +// +// Set the proxy server name and port. +// +//***************************************************************************** +void +exoHAL_ExositeProxySet(char *pcProxy, uint16_t ui16Port) +{ + // + // Set the proxy server. + // + EthClientProxySet((const char *)pcProxy, ui16Port); + + // + // Set the proxy flag appropriately. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_PROXY_SET) = 1; + +} + +//***************************************************************************** +// +//! Closes a socket. +//! +//! \param lSocket - socket handle. +//! +//! This function closes a socket by reseting the state flags in the +//! connection. +//! +//! \return None. +// +//***************************************************************************** +void +exoHAL_SocketClose(long lSocket) +{ + // + // TCP disconnect. + // + EthClientTCPDisconnect(); + + // + // Reset the connection state. + // + exoHAL_ResetConnection(); +} + +//***************************************************************************** +// +//! Opens a TCP socket. +//! +//! \param pucServer - socket handle. +//! +//! This function attempts to obtain an IP. Then configures the client +//! proxy, performs a DNS lookup and loops waiting for a connection. After +//! a set number of tries to connect it returns with an error. +//! +//! \return -1 for failure. else return 0. +// +//***************************************************************************** +long +exoHAL_SocketOpenTCP(unsigned char *pucServer) +{ + uint32_t ui32IPAddr, ui32Timeout; + int32_t i32Connected, i32Error; + + // + // Variable to track our while() loop count. + // + ui32Timeout = 5; + + // + // Initialize the exosite connection. + // + exoHAL_ExositeInit(); + + while(ui32Timeout) + { + // + // Decrement timeout count. + // + ui32Timeout--; + + // + // Get the current IP address. + // + ui32IPAddr = EthClientAddrGet(); + + // + // If IP is valid, print IP. + // + if(ui32IPAddr == 0 || ui32IPAddr == 0xffffffff) + { + // + // Delay, wait for response and continue. + // +#if NO_SYS + SysCtlDelay((g_ui32SysClock / SYSTICKMS) * 10); +#elif RTOS_FREERTOS + vTaskDelay(10 / portTICK_RATE_MS); +#endif // #if NO_SYS + continue; + } + else + { + + } + + // + // Set Proxy if not already. + // + if (g_bUseProxy && !HWREGBITW(&g_sExosite.ui32Flags, FLAG_PROXY_SET)) + { + // + // Set the proxy defined in exosite_hal_lwip.h + // + exoHAL_ExositeProxySet(g_pcProxyAddress, g_ui16ProxyPort); + } + + // + // If we are already initiated the DNS no need to do it again. + // + if (!HWREGBITW(&g_sExosite.ui32Flags, FLAG_DNS_INIT)) + { + // + // Resolve the host address. + // + i32Error = EthClientDNSResolve(); + + // + // If error, break. + // + if (i32Error != 0 && i32Error != -5) + { + break; + } + + // + // Set the DNS flag. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_DNS_INIT) = 1; + + // + // Set the connect wait flag. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_CONNECT_WAIT) = 1; + } + if (HWREGBITW(&g_sExosite.ui32Flags, FLAG_CONNECT_WAIT) == 0) + { + // + // Try to reconnect. + // + i32Error = EthClientTCPConnect(); + + // + // If error, break. + // + if (i32Error != 0) + { + break; + } + + // + // Set the connect wait flag. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_CONNECT_WAIT) = 1; + } + + // + // See if we have connected to Exosite. + // + i32Connected = exoHAL_ServerConnect(0); + + // + // If connected, return success. + // else delay and decrement timeout. + // + if (i32Connected != -1) + { + + return 0; + } + else + { + // + // Delay and wait for response. + // +#if NO_SYS + SysCtlDelay(g_ui32SysClock / SYSTICKMS); +#elif RTOS_FREERTOS + vTaskDelay(1000 / portTICK_RATE_MS); +#endif // #if NO_SYS + + } + } + // + // We failed close the connection. + // + exoHAL_SocketClose(0); + + return -1; +} + +//***************************************************************************** +// +//! Checks the connection to the server. +//! +//! \param lSocket - socket handle. +//! +//! This function checks the connection to the server. +//! +//! \return -1 for failure. else: the socket handle +// +//***************************************************************************** +long +exoHAL_ServerConnect(long lSocket) +{ + // + // Check if we have connected to Exosite. + // + if (HWREGBITW(&g_sExosite.ui32Flags, FLAG_CONNECTED)) + { + return lSocket; + } + else + { + return -1; + } +} + +//***************************************************************************** +// +//! Sends data out to the Internet. +//! +//! \param lSocket - socket handle. +//! \param pcBuffer - string buffer containing info to send. +//! \param iLength - size of string in bytes. +//! +//! This function sends data out to the Internet. +//! +//! \return Number of bytes sent. +// +//***************************************************************************** +unsigned char +exoHAL_SocketSend(long lSocket, char * pcBuffer, int iLength) +{ + uint32_t ui32IPAddr; + + // + // Get the current IP address. + // + ui32IPAddr = EthClientAddrGet(); + + // + // If IP is invalid return error. + // + if(ui32IPAddr == 0 || ui32IPAddr == 0xffffffff ) + { + return 0; + } + + if (HWREGBITW(&g_sExosite.ui32Flags, FLAG_CONNECTED)) + { + // + // Send. + // + EthClientSend((int8_t *)pcBuffer, (uint32_t)iLength); + + // + // Set the SENT flag. + // + HWREGBITW(&g_sExosite.ui32Flags, FLAG_SENT) = 1; + + // + // Return the number of bytes sent. + // + return iLength; + } + else + { + return 0; + } +} + +//***************************************************************************** +// +//! Returns data from the buffer. +//! +//! \param lSocket - socket handle. +//! \param pcBuffer - string buffer to put info we receive. +//! \param iLength - size of buffer in bytes. +//! +//! This function reads data from the receive buffer. +//! +//! \return Number of bytes received. +// +//***************************************************************************** +unsigned char +exoHAL_SocketRecv(long lSocket, char * pcBuffer, int iLength) +{ + uint32_t ui32Used, ui32Timeout; + + ui32Timeout = 10; + + // + // Block until we receive our response. + // + while(HWREGBITW(&g_sExosite.ui32Flags, FLAG_SENT) == 1 && + HWREGBITW(&g_sExosite.ui32Flags, FLAG_RECEIVED) == 0 && + ui32Timeout) + { + // + // Decrement timeout + // + ui32Timeout--; + + // + // Delay. + // +#if NO_SYS + SysCtlDelay(g_ui32SysClock / 10); +#elif RTOS_FREERTOS + vTaskDelay(300 / portTICK_RATE_MS); +#endif // #if NO_SYS + } + + if(ui32Timeout != 0) + { + // + // Determine how much of the buffer have we used. + // + ui32Used = RingBufUsed(&g_sEnetBuffer); + + // + // If the number of bytes being requested is greater than what we have, + // only read the number of bytes out that we have. + // + if (ui32Used < iLength) + { + // + // Read from the buffer. + // + RingBufRead(&g_sEnetBuffer, (uint8_t *)pcBuffer, ui32Used); + return (unsigned char)ui32Used; + } + else + { + // + // Read from the buffer. + // + RingBufRead(&g_sEnetBuffer, (uint8_t *)pcBuffer, + (uint32_t)iLength); + return (unsigned char)iLength; + } + } + else + { + // + // Timeout. + // + } + + return 0; +} + +//***************************************************************************** +// +//! Delays for specified milliseconds. +//! +//! \param usDelay - milliseconds to delay. +//! +//! This function delays for specified milliseconds. +//! +//! \return None. +// +//***************************************************************************** +void +exoHAL_MSDelay(unsigned short usDelay) +{ +#if NO_SYS + uint32_t ui32Delay; + + // + // Determine delay based on the current clock speed. + // + ui32Delay = usDelay * ((g_ui32SysClock / SYSTICKMS) / 3); + + // + // Delay + // + SysCtlDelay(ui32Delay); + +#elif RTOS_FREERTOS + // + // Delay. + // + vTaskDelay(usDelay / portTICK_RATE_MS); +#endif // #if NO_SYS + +} diff --git a/boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.h b/boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.h new file mode 100644 index 0000000..87f5759 --- /dev/null +++ b/boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.h @@ -0,0 +1,138 @@ +//***************************************************************************** +// +// exosite_hal_lwip.h - Abstraction layer between Excosite and eth_client_lwip. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef EXOSITE_HAL_LWIP_H +#define EXOSITE_HAL_LWIP_H + +#include +#include + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Proxy Config. +// +//***************************************************************************** +extern bool g_bUseProxy; +extern char g_pcProxyAddress[50]; +extern uint16_t g_ui16ProxyPort; + +//***************************************************************************** +// +// Exosite Config. +// +//***************************************************************************** +#define EXOSITE_ADDRESS "m2.exosite.com" +#define EXOSITE_PORT 80 + +//***************************************************************************** +// +// Meta Structure. +// +//***************************************************************************** +#define EXOMETA_ADDR_OFFSET 0 + +//***************************************************************************** +// +// Maximum length for the serial number. +// +//***************************************************************************** +#define EXOSITE_HAL_SN_MAXLENGTH 25 + +//***************************************************************************** +// +// Maximum size for the circular receive buffer. +// +//***************************************************************************** +#define RECEIVE_BUFFER_SIZE 1024 + +//***************************************************************************** +// +// EEPROM status. +// +//***************************************************************************** +#define EEPROM_INITALIZED 1 +#define EEPROM_IDLE 2 +#define EEPROM_READING 3 +#define EEPROM_WRITING 4 +#define EEPROM_ERASING 5 +#define EEPROM_ERROR 6 + +//***************************************************************************** +// +// Flag indexes for g_sExosite.ui32Flags +// +//***************************************************************************** +#define FLAG_ENET_INIT 0 +#define FLAG_CONNECTED 1 +#define FLAG_DNS_INIT 2 +#define FLAG_PROXY_SET 3 +#define FLAG_BUSY 4 +#define FLAG_SENT 5 +#define FLAG_RECEIVED 6 +#define FLAG_CONNECT_WAIT 7 + +//***************************************************************************** +// +// Prototypes. +// +//***************************************************************************** +typedef void (* tExositeEventHandler)(uint32_t ui32Event, void* pvData1, + uint16_t ui16Size1, void* pvData2, + uint16_t ui16Size2); + +int exoHAL_ReadUUID(unsigned char ucIfNbr, unsigned char * pucUUIDBuf); +void exoHAL_EnableMeta(void); +void exoHAL_EraseMeta(void); +void exoHAL_WriteMetaItem(unsigned char * pucBuffer, int iLength, int iOffset); +void exoHAL_ReadMetaItem(unsigned char * pucBuffer, int iLength, int iOffset); +void exoHAL_SocketClose(long ulSocket); +long exoHAL_SocketOpenTCP(unsigned char *pucServer); +long exoHAL_ServerConnect(long ulSocket); +unsigned char exoHAL_SocketSend(long lSocket, char * pcBuffer, int iLength); +unsigned char exoHAL_SocketRecv(long lSocket, char * pcBuffer, int iLength); +void exoHAL_MSDelay(unsigned short usDelay); +void exoHAL_Tick(unsigned long ulDelay); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif //EXOSITE_HAL_LWIP_H + diff --git a/boards/ek-tm4c1294xl/drivers/http.c b/boards/ek-tm4c1294xl/drivers/http.c new file mode 100644 index 0000000..22d4f0f --- /dev/null +++ b/boards/ek-tm4c1294xl/drivers/http.c @@ -0,0 +1,587 @@ +//***************************************************************************** +// +// http.c - HTTP request creation functions. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#include +#include +#include +#include "inc/hw_types.h" +#include "utils/ustdlib.h" +#include "http.h" + +//***************************************************************************** +// +// Buffer used to store temporary strings for constructing/parsing requests. +// +//***************************************************************************** +static char g_pcTempData[256]; + +//***************************************************************************** +// +// Declarations for request type strings. +// +//***************************************************************************** +static char g_pcHttpConnect[] = "CONNECT "; +static char g_pcHttpGet[] = "GET "; +static char g_pcHttpPost[] = "POST "; +static char g_pcHttpPut[] = "PUT "; +static char g_pcHttpDelete[] = "DELETE "; +static char g_pcHttpHead[] = "HEAD "; +static char g_pcHttpTrace[] = "TRACE "; +static char g_pcHttpOptions[] = "OPTIONS "; +static char g_pcHttpPatch[] = "PATCH "; + +//***************************************************************************** +// +// HTTP suffixes used by HTTPMessageTypeSet(). Default is HTTP 1.1. +// +//***************************************************************************** +#ifdef USE_HTTP_1_0 +static const char g_pcSuffixHttp10[] = " HTTP/1.0\r\n\r\n"; +#else +static const char g_pcSuffixHttp11[] = " HTTP/1.1\r\n\r\n"; +#endif + +//***************************************************************************** +// +//! Extract the portion of a string up to a specified character. +//! +//! \param cWhichOne specifies the character to compare against. +//! \param pcSource is a pointer to the source/input string. +//! \param pcOutput is a pointer to the destination/output string. +//! \param pui32Size is a pointer to a variable that will receive the size of +//! the destination/output string. +//! +//! \return None. +// +//***************************************************************************** +static void +BufferFillToCharacter(char cWhichOne, char *pcSource, char *pcOutput, + uint32_t *pui32Size) +{ + // + // Search the string until the character is found. + // + *pui32Size = 0; + while(*pcSource) + { + if(*pcSource == cWhichOne) + { + pcOutput[*pui32Size] = 0; + pcSource++; + return; + } + else + { + pcOutput[*pui32Size] = *pcSource; + pcSource++; + *pui32Size += 1; + } + } + + return; +} + +//***************************************************************************** +// +//! Extract the portion of a string up to end-of-line (EOL). +//! +//! \param pcSource is a pointer to the source/input string. +//! \param pcOutput is a pointer to the destination/output string. +//! \param pui32Size is a pointer to a variable that will receive the size of +//! the destination/output string. +//! +//! \return None. +// +//***************************************************************************** +static void +BufferFillToEOL(char *pcSource, char *pcOutput, uint32_t *pui32Size) +{ + // + // Search the string until EOL is found. + // + *pui32Size = 0; + while(*pcSource) + { + if((*pcSource == '\r') && (*(pcSource+ 1) == '\n')) + { + pcOutput[*pui32Size] = 0; + pcSource += 2; + return; + } + else + { + pcOutput[*pui32Size] = *pcSource; + pcSource++; + *pui32Size += 1; + } + } + + return; +} + +static void +InsertRequest(char *pcDest, char *pcRequest) +{ + uint32_t i; + uint32_t ui32ReqSize; + uint32_t ui32DstSize; + + ui32ReqSize = strlen(pcRequest); + ui32DstSize = strlen(pcDest); + + pcDest[ui32DstSize + ui32ReqSize] = 0; + for(i = ui32DstSize; i-- > 0; ) + { + pcDest[ui32ReqSize + i] = pcDest[i]; + } + + for(i = 0; i < ui32ReqSize; i++) + { + pcDest[i] = pcRequest[i]; + } +} + +//***************************************************************************** +// +//! Set the HTTP message type. +//! +//! \param pcDest is a pointer to the destination/output string. +//! \param ui8Type is the HTTP request type. Macros such as HTTP_MESSAGE_GET +//! are defined in http.h. +//! \param pcResource is a pointer to a string containing the resource portion +//! of the HTTP message. The resource goes in between the type (ex: GET) and +//! HTTP suffix on the first line of a HTTP request. An example would be +//! index.html. +//! +//! This function should be called to start off a new HTTP request. +//! +//! \return None. +// +//***************************************************************************** +void +HTTPMessageTypeSet(char *pcDest, uint8_t ui8Type, char *pcResource) +{ + // + // Check to see if the resource and destination pointers are the same. If + // yes, insert the request type at the beginning of the resource string. + // + if(pcDest == pcResource) + { + // + // Add the request type to the buffer. + // + switch(ui8Type) + { + case HTTP_MESSAGE_CONNECT: + { + InsertRequest(pcDest, g_pcHttpConnect); + break; + } + case HTTP_MESSAGE_GET: + { + InsertRequest(pcDest, g_pcHttpGet); + break; + } + case HTTP_MESSAGE_POST: + { + InsertRequest(pcDest, g_pcHttpPost); + break; + } + case HTTP_MESSAGE_PUT: + { + InsertRequest(pcDest, g_pcHttpPut); + break; + } + case HTTP_MESSAGE_DELETE: + { + InsertRequest(pcDest, g_pcHttpDelete); + break; + } + case HTTP_MESSAGE_HEAD: + { + InsertRequest(pcDest, g_pcHttpHead); + break; + } + case HTTP_MESSAGE_TRACE: + { + InsertRequest(pcDest, g_pcHttpTrace); + break; + } + case HTTP_MESSAGE_OPTIONS: + { + InsertRequest(pcDest, g_pcHttpOptions); + break; + } + case HTTP_MESSAGE_PATCH: + { + InsertRequest(pcDest, g_pcHttpPatch); + break; + } + } + } + else + { + // + // Add the request type to the buffer. + // + switch(ui8Type) + { + case HTTP_MESSAGE_CONNECT: + { + usprintf(pcDest, g_pcHttpConnect); + break; + } + case HTTP_MESSAGE_GET: + { + usprintf(pcDest, g_pcHttpGet); + break; + } + case HTTP_MESSAGE_POST: + { + usprintf(pcDest, g_pcHttpPost); + break; + } + case HTTP_MESSAGE_PUT: + { + usprintf(pcDest, g_pcHttpPut); + break; + } + case HTTP_MESSAGE_DELETE: + { + usprintf(pcDest, g_pcHttpDelete); + break; + } + case HTTP_MESSAGE_HEAD: + { + usprintf(pcDest, g_pcHttpHead); + break; + } + case HTTP_MESSAGE_TRACE: + { + usprintf(pcDest, g_pcHttpTrace); + break; + } + case HTTP_MESSAGE_OPTIONS: + { + usprintf(pcDest, g_pcHttpOptions); + break; + } + case HTTP_MESSAGE_PATCH: + { + usprintf(pcDest, g_pcHttpPatch); + break; + } + } + + // + // Add the resource to the buffer. + // + strcat(pcDest, pcResource); + } + + // + // Finish the first "line" by adding the HTTP suffix. + // +#ifdef USE_HTTP_1_0 + strcat(pcDest, g_pcSuffixHttp10); +#else + strcat(pcDest, g_pcSuffixHttp11); +#endif +} + +//***************************************************************************** +// +//! Add a header to a HTTP request. +//! +//! \param pcDest is a pointer to the destination/output string. +//! \param pcHeaderName is a pointer to a string containing the header name. +//! \param pcHeaderValue is a pointer to a string containing the header data. +//! +//! Note that this function must be called after HTTPMessageTypeSet() as it +//! simply appends a header to an existing string/buffer. +//! +//! \return None. +// +//***************************************************************************** +void +HTTPMessageHeaderAdd(char *pcDest, char *pcHeaderName, char *pcHeaderValue) +{ + // + // Add the header name to the buffer. + // + strcat(pcDest, pcHeaderName); + + // + // Add ":" and space. + // + strcat(pcDest, ": "); + + // + // Add header value. + // + strcat(pcDest, pcHeaderValue); + + // + // Add \r and \n. + // + strcat(pcDest, "\r\n"); +} + +//***************************************************************************** +// +//! Add body data to to a HTTP request. +//! +//! \param pcDest is a pointer to the destination/output string. +//! \param pcBodyData is a pointer to a string containing the body data. This +//! can be anything from HTML to encoded data (such as JSON). +//! +//! Note that this function must be called after HTTPMessageTypeSet() and +//! HTTPMessageHeaderAdd() as it simply appends the body data to an existing +//! string/buffer. +//! +//! \return None. +// +//***************************************************************************** +void +HTTPMessageBodyAdd(char *pcDest, char *pcBodyData) +{ + // + // First, insert blank line between header section and body. + // + strcat(pcDest, "\r\n"); + + // + // Add body content. + // + strcat(pcDest, pcBodyData); + + // + // Add blank line. + // + strcat(pcDest, "\r\n\r\n"); +} + +//***************************************************************************** +// +//! Parse a HTTP response. +//! +//! \param pcData is a pointer to the source string/buffer. +//! \param pcResponseText is a pointer to a string that will receive the +//! response text from the first line of the HTTP response. +//! \param pui32NumHeaders is a pointer to a variable that will receive the +//! number of headers detected in pcData. +//! +//! Note that this function must be called after HTTPMessageTypeSet() as it +//! simply appends a header to an existing string/buffer. +//! +//! \return Returns the HTTP response code. If parsing error occurs, returns 0. +// +//***************************************************************************** +uint32_t +HTTPResponseParse(char *pcData, char *pcResponseText, uint32_t *pui32NumHeaders) +{ + uint32_t ui32Response = 0; + uint32_t ui32Size; + + // + // Look for "HTTP/n.n" piece. + // + BufferFillToCharacter(' ', pcData, g_pcTempData, &ui32Size); + pcData += (ui32Size + 1); + + // + // Fail if not a HTTP response. + // + if(ustrncmp(g_pcTempData, "HTTP/", 5)) + { + *pcResponseText = 0; + *pui32NumHeaders = 0; + return 0; + } + + // + // Get the return code. + // + BufferFillToCharacter(' ', pcData, g_pcTempData, &ui32Size); + pcData += (ui32Size + 1); + + // + // Convert return code to unsigned long. + // + ui32Response = ustrtoul(g_pcTempData, 0, 10); + + // + // Get the response text. + // + BufferFillToEOL(pcData, pcResponseText, &ui32Size); + pcData += (ui32Size + 2); + + // + // Parse the remainder of the packet. + // + *pui32NumHeaders = 0; + while(*pcData) + { + // + // Search line by line and count headers. Search until there is a blank + // line, which means end of headers. + // + BufferFillToEOL(pcData, g_pcTempData, &ui32Size); + pcData += (ui32Size + 2); + + // + // Blank line. For the purposes of this function, we're done. + // + if(ui32Size == 0) + { + break; + } + else + { + // + // Increment header counter. + // + *pui32NumHeaders += 1; + } + } + + return ui32Response; +} + +//***************************************************************************** +// +//! Extract a specified header from a HTTP response string/buffer. +//! +//! \param pcData is a pointer to the source string/buffer. +//! \param ui32HeaderIdx specifies the index of the header to extract. +//! \param pcHeaderName is a pointer to a string that will receive the name of +//! the header specified by ui32HeaderIdx. +//! \param pcHeaderValue is a pointer to a string that will receive the value of +//! the header specified by ui32HeaderIdx. +//! +//! Note that this function should be used in conjunction with +//! HTTPResponseParse() since it notifies the application of the number of +//! headers in a string/buffer. +//! +//! \return None. +// +//***************************************************************************** +void +HTTPResponseHeaderExtract(char *pcData, uint32_t ui32HeaderIdx, + char *pcHeaderName, char *pcHeaderValue) +{ + uint32_t ui32Size; + uint32_t ui32HeaderNumber = 0; + + // + // Read first line and discard. + // + BufferFillToEOL(pcData, g_pcTempData, &ui32Size); + pcData += (ui32Size + 2); + + // + // Find and return the requested header. + // + while(*pcData) + { + BufferFillToEOL(pcData, g_pcTempData, &ui32Size); + pcData += (ui32Size + 2); + + // + // Blank line, end of header section. + // + if(ui32Size == 0) + { + break; + } + else + { + if(ui32HeaderNumber == ui32HeaderIdx) + { + BufferFillToCharacter(':', g_pcTempData, pcHeaderName, + &ui32Size); + BufferFillToCharacter(0, &g_pcTempData[ui32Size + 2], + pcHeaderValue, &ui32Size); + pcHeaderValue[ui32Size] = 0; + + break; + } + else + { + // + // Increment header counter. + // + ui32HeaderNumber++; + } + } + } +} + +//***************************************************************************** +// +//! Extract the body from a HTTP response string/buffer. +//! +//! \param pcData is a pointer to the source string/buffer. +//! \param pcDest is a pointer to a string that will receive the body data. +//! +//! \return None. +// +//***************************************************************************** +void +HTTPResponseBodyExtract(char *pcData, char *pcDest) +{ + bool bBodyFound = false; + uint32_t ui32Size; + + // + // Find and return the body. + // + while(*pcData) + { + // + // Read lines until a blank line is found. This is the start of the + // body. + // + BufferFillToEOL(pcData, g_pcTempData, &ui32Size); + pcData += (ui32Size + 2); + + // + // Blank line, end of header section. + // + if(ui32Size == 0) + { + bBodyFound = true; + } + + // + // If the body has been found, start filling the buffer. + // + if(bBodyFound) + { + + pcDest[0] = 0; + strcat(pcDest, pcData); + break; + } + } +} diff --git a/boards/ek-tm4c1294xl/drivers/http.h b/boards/ek-tm4c1294xl/drivers/http.h new file mode 100644 index 0000000..a166bdd --- /dev/null +++ b/boards/ek-tm4c1294xl/drivers/http.h @@ -0,0 +1,75 @@ +//***************************************************************************** +// +// http.h - Prototypes for the HTTP protocol layer. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#ifndef HTTP_H_ +#define HTTP_H_ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// HTTP request types used by HTTPMessageTypeSet(). +// +//***************************************************************************** +#define HTTP_MESSAGE_CONNECT 0x0 +#define HTTP_MESSAGE_GET 0x1 +#define HTTP_MESSAGE_POST 0x2 +#define HTTP_MESSAGE_PUT 0x3 +#define HTTP_MESSAGE_DELETE 0x4 +#define HTTP_MESSAGE_HEAD 0x5 +#define HTTP_MESSAGE_TRACE 0x6 +#define HTTP_MESSAGE_OPTIONS 0x7 +#define HTTP_MESSAGE_PATCH 0x8 + +//***************************************************************************** +// +// Exported function prototypes. +// +//***************************************************************************** +extern void HTTPMessageTypeSet(char *pcDest, uint8_t ui8Type, char *pcResource); +extern void HTTPMessageHeaderAdd(char *pcDest, char *pcHeaderName, + char *pcHeaderValue); +extern void HTTPMessageBodyAdd(char *pcDest, char *pcBodyData); + +extern uint32_t HTTPResponseParse(char *pcData, char *pcResponseText, + uint32_t *pui32NumHeaders); + +extern void HTTPResponseHeaderExtract(char *pcData, uint32_t ui32HeaderIdx, + char *pcHeaderName, char *pcHeaderValue); + +extern void HTTPResponseBodyExtract(char *pcData, char *pcDest); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/boards/ek-tm4c1294xl/drivers/pinout.c b/boards/ek-tm4c1294xl/drivers/pinout.c new file mode 100644 index 0000000..43c1c6e --- /dev/null +++ b/boards/ek-tm4c1294xl/drivers/pinout.c @@ -0,0 +1,301 @@ +//***************************************************************************** +// +// pinout.c - Function to configure the device pins on the EK-TM4C1294XL. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_gpio.h" +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/gpio.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "drivers/pinout.h" + +//***************************************************************************** +// +//! \addtogroup pinout_api +//! @{ +// +//***************************************************************************** + +//***************************************************************************** +// +//! Configures the device pins for the standard usages on the EK-TM4C1294XL. +//! +//! \param bEthernet is a boolean used to determine function of Ethernet pins. +//! If true Ethernet pins are configured as Ethernet LEDs. If false GPIO are +//! available for application use. +//! \param bUSB is a boolean used to determine function of USB pins. If true USB +//! pins are configured for USB use. If false then USB pins are available for +//! application use as GPIO. +//! +//! This function enables the GPIO modules and configures the device pins for +//! the default, standard usages on the EK-TM4C1294XL. Applications that +//! require alternate configurations of the device pins can either not call +//! this function and take full responsibility for configuring all the device +//! pins, or can reconfigure the required device pins after calling this +//! function. +//! +//! \return None. +// +//***************************************************************************** +void +PinoutSet(bool bEthernet, bool bUSB) +{ + // + // Enable all the GPIO peripherals. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOK); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOL); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOM); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOP); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOQ); + + // + // PA0-1 are used for UART0. + // + ROM_GPIOPinConfigure(GPIO_PA0_U0RX); + ROM_GPIOPinConfigure(GPIO_PA1_U0TX); + ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // PB0-1/PD6/PL6-7 are used for USB. + // PQ4 can be used as a power fault detect on this board but it is not + // the hardware peripheral power fault input pin. + // + if(bUSB) + { + HWREG(GPIO_PORTD_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTD_BASE + GPIO_O_CR) = 0xff; + ROM_GPIOPinConfigure(GPIO_PD6_USB0EPEN); + ROM_GPIOPinTypeUSBAnalog(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1); + ROM_GPIOPinTypeUSBDigital(GPIO_PORTD_BASE, GPIO_PIN_6); + ROM_GPIOPinTypeUSBAnalog(GPIO_PORTL_BASE, GPIO_PIN_6 | GPIO_PIN_7); + ROM_GPIOPinTypeGPIOInput(GPIO_PORTQ_BASE, GPIO_PIN_4); + } + else + { + // + // Keep the default config for most pins used by USB. + // Add a pull down to PD6 to turn off the TPS2052 switch + // + ROM_GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_6); + MAP_GPIOPadConfigSet(GPIO_PORTD_BASE, GPIO_PIN_6, GPIO_STRENGTH_2MA, + GPIO_PIN_TYPE_STD_WPD); + + } + + // + // PF0/PF4 are used for Ethernet LEDs. + // + if(bEthernet) + { + // + // this app wants to configure for ethernet LED function. + // + ROM_GPIOPinConfigure(GPIO_PF0_EN0LED0); + ROM_GPIOPinConfigure(GPIO_PF4_EN0LED1); + + GPIOPinTypeEthernetLED(GPIO_PORTF_BASE, GPIO_PIN_0 | GPIO_PIN_4); + + } + else + { + + // + // This app does not want Ethernet LED function so configure as + // standard outputs for LED driving. + // + ROM_GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0 | GPIO_PIN_4); + + // + // Default the LEDs to OFF. + // + ROM_GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_0 | GPIO_PIN_4, 0); + MAP_GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_0 | GPIO_PIN_4, + GPIO_STRENGTH_12MA, GPIO_PIN_TYPE_STD); + + + } + + // + // PJ0 and J1 are used for user buttons + // + ROM_GPIOPinTypeGPIOInput(GPIO_PORTJ_BASE, GPIO_PIN_0 | GPIO_PIN_1); + ROM_GPIOPinWrite(GPIO_PORTJ_BASE, GPIO_PIN_0 | GPIO_PIN_1, 0); + + // + // PN0 and PN1 are used for USER LEDs. + // + ROM_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0 | GPIO_PIN_1); + MAP_GPIOPadConfigSet(GPIO_PORTN_BASE, GPIO_PIN_0 | GPIO_PIN_1, + GPIO_STRENGTH_12MA, GPIO_PIN_TYPE_STD); + + // + // Default the LEDs to OFF. + // + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0 | GPIO_PIN_1, 0); +} + +//***************************************************************************** +// +//! This function writes a state to the LED bank. +//! +//! \param ui32LEDMask is a bit mask for which GPIO should be changed by this +//! call. +//! \param ui32LEDValue is the new value to be applied to the LEDs after the +//! ui32LEDMask is applied. +//! +//! The first parameter acts as a mask. Only bits in the mask that are set +//! will correspond to LEDs that may change. LEDs with a mask that is not set +//! will not change. This works the same as GPIOPinWrite. After applying the +//! mask the setting for each unmasked LED is written to the corresponding +//! LED port pin via GPIOPinWrite. +//! +//! \return None. +// +//***************************************************************************** +void +LEDWrite(uint32_t ui32LEDMask, uint32_t ui32LEDValue) +{ + + // + // Check the mask and set or clear the LED as directed. + // + if(ui32LEDMask & CLP_D1) + { + if(ui32LEDValue & CLP_D1) + { + GPIOPinWrite(CLP_D1_PORT, CLP_D1_PIN, CLP_D1_PIN); + } + else + { + GPIOPinWrite(CLP_D1_PORT, CLP_D1_PIN, 0); + } + } + + if(ui32LEDMask & CLP_D2) + { + if(ui32LEDValue & CLP_D2) + { + GPIOPinWrite(CLP_D2_PORT, CLP_D2_PIN, CLP_D2_PIN); + } + else + { + GPIOPinWrite(CLP_D2_PORT, CLP_D2_PIN, 0); + } + } + + if(ui32LEDMask & CLP_D3) + { + if(ui32LEDValue & CLP_D3) + { + GPIOPinWrite(CLP_D3_PORT, CLP_D3_PIN, CLP_D3_PIN); + } + else + { + GPIOPinWrite(CLP_D3_PORT, CLP_D3_PIN, 0); + } + } + + if(ui32LEDMask & CLP_D4) + { + if(ui32LEDValue & CLP_D4) + { + GPIOPinWrite(CLP_D4_PORT, CLP_D4_PIN, CLP_D4_PIN); + } + else + { + GPIOPinWrite(CLP_D4_PORT, CLP_D4_PIN, 0); + } + } +} + +//***************************************************************************** +// +//! This function reads the state to the LED bank. +//! +//! \param pui32LEDValue is a pointer to where the LED value will be stored. +//! +//! This function reads the state of the CLP LEDs and stores that state +//! information into the variable pointed to by pui32LEDValue. +//! +//! \return None. +// +//***************************************************************************** +void LEDRead(uint32_t *pui32LEDValue) +{ + *pui32LEDValue = 0; + + // + // Read the pin state and set the variable bit if needed. + // + if(GPIOPinRead(CLP_D4_PORT, CLP_D4_PIN)) + { + *pui32LEDValue |= CLP_D4; + } + + // + // Read the pin state and set the variable bit if needed. + // + if(GPIOPinRead(CLP_D3_PORT, CLP_D3_PIN)) + { + *pui32LEDValue |= CLP_D3; + } + + // + // Read the pin state and set the variable bit if needed. + // + if(GPIOPinRead(CLP_D2_PORT, CLP_D2_PIN)) + { + *pui32LEDValue |= CLP_D2; + } + + // + // Read the pin state and set the variable bit if needed. + // + if(GPIOPinRead(CLP_D1_PORT, CLP_D1_PIN)) + { + *pui32LEDValue |= CLP_D1; + } +} + +//***************************************************************************** +// +// Close the Doxygen group. +//! @} +// +//***************************************************************************** diff --git a/boards/ek-tm4c1294xl/drivers/pinout.h b/boards/ek-tm4c1294xl/drivers/pinout.h new file mode 100644 index 0000000..291db7f --- /dev/null +++ b/boards/ek-tm4c1294xl/drivers/pinout.h @@ -0,0 +1,80 @@ +//***************************************************************************** +// +// pinout.h - Prototype for the function to configure the device pins on the +// EK-TM4C1294XL. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __DRIVERS_PINOUT_H__ +#define __DRIVERS_PINOUT_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Define Board LED's +// +//***************************************************************************** +#define CLP_D1 1 +#define CLP_D2 2 +#define CLP_D3 4 +#define CLP_D4 8 + +#define CLP_D1_PORT GPIO_PORTN_BASE +#define CLP_D1_PIN GPIO_PIN_1 + +#define CLP_D2_PORT GPIO_PORTN_BASE +#define CLP_D2_PIN GPIO_PIN_0 + +#define CLP_D3_PORT GPIO_PORTF_BASE +#define CLP_D3_PIN GPIO_PIN_4 + +#define CLP_D4_PORT GPIO_PORTF_BASE +#define CLP_D4_PIN GPIO_PIN_0 + +//***************************************************************************** +// +// Prototypes. +// +//***************************************************************************** +extern void PinoutSet(bool bEthernet, bool bUSB); +extern void LEDWrite(uint32_t ui32LEDMask, uint32_t ui32LEDValue); +extern void LEDRead(uint32_t *pui32LEDValue); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __DRIVERS_PINOUT_H__ diff --git a/boards/ek-tm4c1294xl/ek-tm4c1294xl.eww b/boards/ek-tm4c1294xl/ek-tm4c1294xl.eww new file mode 100644 index 0000000..a018185 --- /dev/null +++ b/boards/ek-tm4c1294xl/ek-tm4c1294xl.eww @@ -0,0 +1,198 @@ + + + + + $WS_DIR$\..\..\..\driverlib\driverlib.ewp + + + $WS_DIR$\..\..\..\usblib\usblib.ewp + + + $WS_DIR$\bitband\bitband.ewp + + + $WS_DIR$\blinky\blinky.ewp + + + $WS_DIR$\enet_io\enet_io.ewp + + + $WS_DIR$\enet_lwip\enet_lwip.ewp + + + $WS_DIR$\enet_uip\enet_uip.ewp + + + $WS_DIR$\enet_weather\enet_weather.ewp + + + $WS_DIR$\gpio_jtag\gpio_jtag.ewp + + + $WS_DIR$\hello\hello.ewp + + + $WS_DIR$\hibernate\hibernate.ewp + + + $WS_DIR$\interrupts\interrupts.ewp + + + $WS_DIR$\mpu_fault\mpu_fault.ewp + + + $WS_DIR$\qs_iot\qs_iot.ewp + + + $WS_DIR$\sleep_modes\sleep_modes.ewp + + + $WS_DIR$\timers\timers.ewp + + + $WS_DIR$\uart_echo\uart_echo.ewp + + + $WS_DIR$\udma_demo\udma_demo.ewp + + + $WS_DIR$\usb_dev_bulk\usb_dev_bulk.ewp + + + $WS_DIR$\usb_dev_cserial\usb_dev_cserial.ewp + + + $WS_DIR$\usb_dev_keyboard\usb_dev_keyboard.ewp + + + $WS_DIR$\usb_host_keyboard\usb_host_keyboard.ewp + + + $WS_DIR$\usb_host_mouse\usb_host_mouse.ewp + + + $WS_DIR$\usb_host_msc\usb_host_msc.ewp + + + $WS_DIR$\usb_stick_demo\usb_stick_demo.ewp + + + $WS_DIR$\usb_stick_update\usb_stick_update.ewp + + + $WS_DIR$\watchdog\watchdog.ewp + + + + All Examples + + driverlib + Debug + + + usblib + Debug + + + bitband + Debug + + + blinky + Debug + + + enet_io + Debug + + + enet_lwip + Debug + + + enet_uip + Debug + + + enet_weather + Debug + + + gpio_jtag + Debug + + + hello + Debug + + + hibernate + Debug + + + interrupts + Debug + + + mpu_fault + Debug + + + qs_iot + Debug + + + sleep_modes + Debug + + + timers + Debug + + + uart_echo + Debug + + + udma_demo + Debug + + + usb_dev_bulk + Debug + + + usb_dev_cserial + Debug + + + usb_dev_keyboard + Debug + + + usb_host_keyboard + Debug + + + usb_host_mouse + Debug + + + usb_host_msc + Debug + + + usb_stick_demo + Debug + + + usb_stick_update + Debug + + + watchdog + Debug + + + + diff --git a/boards/ek-tm4c1294xl/ek-tm4c1294xl.uvmpw b/boards/ek-tm4c1294xl/ek-tm4c1294xl.uvmpw new file mode 100644 index 0000000..3947424 --- /dev/null +++ b/boards/ek-tm4c1294xl/ek-tm4c1294xl.uvmpw @@ -0,0 +1,145 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + ek-tm4c1294xl + + + ..\..\..\driverlib\driverlib.uvproj + 1 + + + + ..\..\..\usblib\usblib.uvproj + 1 + + + + .\bitband\bitband.uvproj + 1 + + + + .\blinky\blinky.uvproj + 1 + + + + .\enet_io\enet_io.uvproj + 1 + + + + .\enet_lwip\enet_lwip.uvproj + 1 + + + + .\enet_uip\enet_uip.uvproj + 1 + + + + .\enet_weather\enet_weather.uvproj + 1 + + + + .\gpio_jtag\gpio_jtag.uvproj + 1 + + + + .\hello\hello.uvproj + 1 + + + + .\hibernate\hibernate.uvproj + 1 + + + + .\interrupts\interrupts.uvproj + 1 + + + + .\mpu_fault\mpu_fault.uvproj + 1 + + + + .\qs_iot\qs_iot.uvproj + 1 + + + + .\sleep_modes\sleep_modes.uvproj + 1 + + + + .\timers\timers.uvproj + 1 + + + + .\uart_echo\uart_echo.uvproj + 1 + + + + .\udma_demo\udma_demo.uvproj + 1 + + + + .\usb_dev_bulk\usb_dev_bulk.uvproj + 1 + + + + .\usb_dev_cserial\usb_dev_cserial.uvproj + 1 + + + + .\usb_dev_keyboard\usb_dev_keyboard.uvproj + 1 + + + + .\usb_host_keyboard\usb_host_keyboard.uvproj + 1 + + + + .\usb_host_mouse\usb_host_mouse.uvproj + 1 + + + + .\usb_host_msc\usb_host_msc.uvproj + 1 + + + + .\usb_stick_demo\usb_stick_demo.uvproj + 1 + + + + .\usb_stick_update\usb_stick_update.uvproj + 1 + + + + .\watchdog\watchdog.uvproj + 1 + + +
diff --git a/boards/ek-tm4c1294xl/enet_io/Makefile b/boards/ek-tm4c1294xl/enet_io/Makefile new file mode 100644 index 0000000..155371c --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/Makefile @@ -0,0 +1,103 @@ +#****************************************************************************** +# +# Makefile - Rules for building the Sample Ethernet I/O Control Application using lwIP 1.4.1. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../../../../third_party/lwip-1.4.1/apps +VPATH+=../drivers +VPATH+=../../../../third_party/lwip-1.4.1/apps/httpserver_raw +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=. +IPATH+=.. +IPATH+=../../../.. +IPATH+=../../../../third_party/lwip-1.4.1/apps +IPATH+=../../../../third_party/lwip-1.4.1/ports/tiva-tm4c129/include +IPATH+=../../../../third_party/lwip-1.4.1/src/include +IPATH+=../../../../third_party/lwip-1.4.1/src/include/ipv4 +IPATH+=../../../../third_party + +# +# The default rule, which causes the Sample Ethernet I/O Control Application using lwIP 1.4.1 to be built. +# +all: ${COMPILER} +all: ${COMPILER}/enet_io.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the Sample Ethernet I/O Control Application using lwIP 1.4.1. +# +${COMPILER}/enet_io.axf: ${COMPILER}/cgifuncs.o +${COMPILER}/enet_io.axf: ${COMPILER}/enet_io.o +${COMPILER}/enet_io.axf: ${COMPILER}/httpd.o +${COMPILER}/enet_io.axf: ${COMPILER}/io.o +${COMPILER}/enet_io.axf: ${COMPILER}/io_fs.o +${COMPILER}/enet_io.axf: ${COMPILER}/locator.o +${COMPILER}/enet_io.axf: ${COMPILER}/lwiplib.o +${COMPILER}/enet_io.axf: ${COMPILER}/pinout.o +${COMPILER}/enet_io.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/enet_io.axf: ${COMPILER}/uartstdio.o +${COMPILER}/enet_io.axf: ${COMPILER}/ustdlib.o +${COMPILER}/enet_io.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/enet_io.axf: enet_io.ld +SCATTERgcc_enet_io=enet_io.ld +ENTRY_enet_io=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/enet_io/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/enet_io/ccs/.ccsimportspec new file mode 100644 index 0000000..7eb220f --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/ccs/.ccsimportspec @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_io/ccs/.ccsproject b/boards/ek-tm4c1294xl/enet_io/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_io/ccs/.cproject b/boards/ek-tm4c1294xl/enet_io/ccs/.cproject new file mode 100644 index 0000000..3a9e700 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/ccs/.cproject @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_io/ccs/.project b/boards/ek-tm4c1294xl/enet_io/ccs/.project new file mode 100644 index 0000000..1110789 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/ccs/.project @@ -0,0 +1,95 @@ + + + enet_io + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + cgifuncs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_io/cgifuncs.c + + + enet_io.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_io/enet_io.c + + + enet_io_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_io/enet_io_ccs.cmd + + + io.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_io/io.c + + + io_fs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_io/io_fs.c + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_io/startup_ccs.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/locator.c + 1 + SW_ROOT/utils/locator.c + + + utils/lwiplib.c + 1 + SW_ROOT/utils/lwiplib.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + third_party/lwip-1.4.1/apps/httpserver_raw/httpd.c + 1 + SW_ROOT/third_party/lwip-1.4.1/apps/httpserver_raw/httpd.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/enet_io/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/enet_io/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/enet_io/ccs/Debug/enet_io.bin b/boards/ek-tm4c1294xl/enet_io/ccs/Debug/enet_io.bin new file mode 100644 index 0000000..f7fec2a Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/ccs/Debug/enet_io.bin differ diff --git a/boards/ek-tm4c1294xl/enet_io/ccs/Debug/enet_io.out b/boards/ek-tm4c1294xl/enet_io/ccs/Debug/enet_io.out new file mode 100644 index 0000000..4619f5e Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/ccs/Debug/enet_io.out differ diff --git a/boards/ek-tm4c1294xl/enet_io/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/enet_io/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/enet_io/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/enet_io/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_io/cgifuncs.c b/boards/ek-tm4c1294xl/enet_io/cgifuncs.c new file mode 100644 index 0000000..7fb00ab --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/cgifuncs.c @@ -0,0 +1,551 @@ +//***************************************************************************** +// +// cgifuncs.c - Helper functions related to CGI script parameter parsing. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#include +#include +#include +#include "inc/hw_types.h" +#include "utils/ustdlib.h" +#include "cgifuncs.h" + +//***************************************************************************** +// +// Searches the list of parameters passed to a CGI handler and returns the +// index of a given parameter within that list. +// +// \param pcToFind is a pointer to a string containing the name of the +// parameter that is to be found. +// \param pcParam is an array of character pointers, each containing the name +// of a single parameter as encoded in the URI requesting the CGI. +// \param iNumParams is the number of elements in the pcParam array. +// +// This function searches an array of parameters to find the string passed in +// \e pcToFind. If the string is found, the index of that string within the +// \e pcParam array is returned, otherwise -1 is returned. +// +// \return Returns the index of string \e pcToFind within array \e pcParam +// or -1 if the string does not exist in the array. +// +//***************************************************************************** +int32_t +FindCGIParameter(const char *pcToFind, char *pcParam[], int32_t iNumParams) +{ + int32_t iLoop; + + // + // Scan through all the parameters in the array. + // + for(iLoop = 0; iLoop < iNumParams; iLoop++) + { + // + // Does the parameter name match the provided string? + // + if(strcmp(pcToFind, pcParam[iLoop]) == 0) + { + // + // We found a match - return the index. + // + return(iLoop); + } + } + + // + // If we drop out, the parameter was not found. + // + return(-1); +} + +//***************************************************************************** +// +// Determines whether a given character is a valid hexadecimal digit. +// +// \param cDigit is the ASCII character code to be checked for validity. +// +// This function checks the passed character to determime whether or not it is +// a valid hexadecimal digit. +// +// \return Returns \e true if the passed character is a valid hex digit or \e +// false otherwise +// +//***************************************************************************** +bool +IsValidHexDigit(const char cDigit) +{ + if(((cDigit >= '0') && (cDigit <= '9')) || + ((cDigit >= 'a') && (cDigit <= 'f')) || + ((cDigit >= 'A') && (cDigit <= 'F'))) + { + return(true); + } + else + { + return(false); + } +} + +//***************************************************************************** +// +// Converts an ASCII character to a hex digit value. +// +// \param cDigit is the ASCII character code to convert to a number. +// +// This function converts a passed ASCII character to a number assuming that +// the character is a valid hexadecimal digit. If the character is not a valid +// hex digit, the value 0xFF is returned. +// +// \return Returns the number represented by hex digit \e cDigit or 0xFF if +// the character passed is not valid hex. +// +//***************************************************************************** +unsigned char +HexDigit(const char cDigit) +{ + if((cDigit >= '0') && (cDigit <= '9')) + { + return(cDigit - '0'); + } + else + { + if((cDigit >= 'a') && (cDigit <= 'f')) + { + return((cDigit - 'a') + 10); + } + else + { + if((cDigit >= 'A') && (cDigit <= 'F')) + { + return((cDigit - 'A') + 10); + } + } + } + + // + // If we get here, we were passed an invalid hex digit so return 0xFF. + // + return(0xFF); +} + +//***************************************************************************** +// +// Decodes a single %xx escape sequence as an ASCII character. +// +// \param pcEncoded points to the ``%'' character at the start of a three +// character escape sequence which represents a single ASCII character. +// \param pcDecoded points to a byte which will be written with the decoded +// character assuming the escape sequence is valid. +// +// This function decodes a single escape sequence of the form ``%xy'' where +// x and y represent hexadecimal digits. If each digit is a valid hex digit, +// the function writes the decoded character to the pcDecoded buffer and +// returns true, else it returns false. +// +// \return Returns \b true on success or \b false if pcEncoded does not point +// to a valid escape sequence. +// +//***************************************************************************** +bool +DecodeHexEscape(const char *pcEncoded, char *pcDecoded) +{ + if((pcEncoded[0] != '%') || !IsValidHexDigit(pcEncoded[1]) || + !IsValidHexDigit(pcEncoded[2])) + { + return(false); + } + else + { + *pcDecoded = ((HexDigit(pcEncoded[1]) * 16) + + HexDigit(pcEncoded[2])); + return(true); + } +} + +//***************************************************************************** +// +// Encodes a string for use within an HTML tag, escaping non alphanumeric +// characters. +// +// \param pcDecoded is a pointer to a null terminated ASCII string. +// \param pcEncoded is a pointer to a storage for the encoded string. +// \param ui32Len is the number of bytes of storage pointed to by pcEncoded. +// +// This function encodes a string, adding escapes in place of any special, +// non-alphanumeric characters. If the encoded string is too long for the +// provided output buffer, the output will be truncated. +// +// \return Returns the number of characters written to the output buffer +// not including the terminating NULL. +// +//***************************************************************************** +uint32_t +EncodeFormString(const char *pcDecoded, char *pcEncoded, + uint32_t ui32Len) +{ + uint32_t ui32Loop; + uint32_t ui32Count; + + // + // Make sure we were not passed a tiny buffer. + // + if(ui32Len <= 1) + { + return(0); + } + + // + // Initialize our output character counter. + // + ui32Count = 0; + + // + // Step through each character of the input until we run out of data or + // space to put our output in. + // + for(ui32Loop = 0; pcDecoded[ui32Loop] && (ui32Count < (ui32Len - 1)); + ui32Loop++) + { + switch(pcDecoded[ui32Loop]) + { + // + // Pass most characters without modification. + // + default: + { + pcEncoded[ui32Count++] = pcDecoded[ui32Loop]; + break; + } + + case '\'': + { + ui32Count += usnprintf(&pcEncoded[ui32Count], + (ui32Len - ui32Count), "'"); + break; + } + } + } + + return(ui32Count); +} + +//***************************************************************************** +// +// Decodes a string encoded as part of an HTTP URI. +// +// \param pcEncoded is a pointer to a null terminated string encoded as per +// RFC1738, section 2.2. +// \param pcDecoded is a pointer to storage for the decoded, null terminated +// string. +// \param ui32Len is the number of bytes of storage pointed to by pcDecoded. +// +// This function decodes a string which has been encoded using the method +// described in RFC1738, section 2.2 for URLs. If the decoded string is too +// long for the provided output buffer, the output will be truncated. +// +// \return Returns the number of character written to the output buffer, not +// including the terminating NULL. +// +//***************************************************************************** +uint32_t +DecodeFormString(const char *pcEncoded, char *pcDecoded, + uint32_t ui32Len) +{ + uint32_t ui32Loop; + uint32_t ui32Count; + bool bValid; + + ui32Count = 0; + ui32Loop = 0; + + // + // Keep going until we run out of input or fill the output buffer. + // + while(pcEncoded[ui32Loop] && (ui32Count < (ui32Len - 1))) + { + switch(pcEncoded[ui32Loop]) + { + // + // '+' in the encoded data is decoded as a space. + // + case '+': + { + pcDecoded[ui32Count++] = ' '; + ui32Loop++; + break; + } + + // + // '%' in the encoded data indicates that the following 2 + // characters indicate the hex ASCII code of the decoded character. + // + case '%': + { + if(pcEncoded[ui32Loop + 1] && pcEncoded[ui32Loop + 2]) + { + // + // Decode the escape sequence. + // + bValid = DecodeHexEscape(&pcEncoded[ui32Loop], + &pcDecoded[ui32Count]); + + // + // If the escape sequence was valid, move to the next + // output character. + // + if(bValid) + { + ui32Count++; + } + + // + // Skip past the escape sequence in the encoded string. + // + ui32Loop += 3; + } + else + { + // + // We reached the end of the string partway through an + // escape sequence so just ignore it and return the number + // of decoded characters found so far. + // + pcDecoded[ui32Count] = '\0'; + return(ui32Count); + } + break; + } + + // + // For all other characters, just copy the input to the output. + // + default: + { + pcDecoded[ui32Count++] = pcEncoded[ui32Loop++]; + break; + } + } + } + + // + // Terminate the string and return the number of characters we decoded. + // + pcDecoded[ui32Count] = '\0'; + return(ui32Count); +} + +//***************************************************************************** +// +// Ensures that a string passed represents a valid decimal number and, +// if so, converts that number to a int32_t. +// +// \param pcValue points to a null terminated string which should contain an +// ASCII representation of a decimal number. +// \param pi32Value points to storage which will receive the number represented +// by pcValue assuming the string is a valid decimal number. +// +// This function determines whether or not a given string represents a valid +// decimal number and, if it does, converts the string into a decimal number +// which is returned to the caller. +// +// \return Returns \b true if the string is a valid representation of a +// decimal number or \b false if not. + +//***************************************************************************** +bool +CheckDecimalParam(const char *pcValue, int32_t *pi32Value) +{ + uint32_t ui32Loop; + bool bStarted; + bool bFinished; + bool bNeg; + int32_t i32Accum; + + // + // Check that the string is a valid decimal number. + // + bStarted = false; + bFinished = false; + bNeg = false; + ui32Loop = 0; + i32Accum = 0; + + while(pcValue[ui32Loop]) + { + // + // Ignore whitespace before the string. + // + if(!bStarted) + { + if((pcValue[ui32Loop] == ' ') || (pcValue[ui32Loop] == '\t')) + { + ui32Loop++; + continue; + } + + // + // Ignore a + or - character as long as we have not started. + // + if((pcValue[ui32Loop] == '+') || (pcValue[ui32Loop] == '-')) + { + // + // If the string starts with a '-', remember to negate the + // result. + // + bNeg = (pcValue[ui32Loop] == '-') ? true : false; + bStarted = true; + ui32Loop++; + } + else + { + // + // We found something other than whitespace or a sign character + // so we start looking for numerals now. + // + bStarted = true; + } + } + + if(bStarted) + { + if(!bFinished) + { + // + // We expect to see nothing other than valid digit characters + // here. + // + if((pcValue[ui32Loop] >= '0') && (pcValue[ui32Loop] <= '9')) + { + i32Accum = (i32Accum * 10) + (pcValue[ui32Loop] - '0'); + } + else + { + // + // Have we hit whitespace? If so, check for no more + // characters until the end of the string. + // + if((pcValue[ui32Loop] == ' ') || (pcValue[ui32Loop] == '\t')) + { + bFinished = true; + } + else + { + // + // We got something other than a digit or whitespace so + // this makes the string invalid as a decimal number. + // + return(false); + } + } + } + else + { + // + // We are scanning for whitespace until the end of the string. + // + if((pcValue[ui32Loop] != ' ') && (pcValue[ui32Loop] != '\t')) + { + // + // We found something other than whitespace so the string + // is not valid. + // + return(false); + } + } + + // + // Move on to the next character in the string. + // + ui32Loop++; + } + } + + // + // If we drop out of the loop, the string must be valid. All we need to do + // now is negate the accumulated value if the string started with a '-'. + // + *pi32Value = bNeg ? -i32Accum : i32Accum; + return(true); +} + +//***************************************************************************** +// +// Searches the list of parameters passed to a CGI handler for a parameter +// with the given name and, if found, reads the parameter value as a decimal +// number. +// +// \param pcName is a pointer to a string containing the name of the +// parameter that is to be found. +// \param pcParam is an array of character pointers, each containing the name +// of a single parameter as encoded in the URI requesting the CGI. +// \param iNumParams is the number of elements in the pcParam array. +// \param pcValues is an array of values associated with each parameter from +// the pcParam array. +// \param pbError is a pointer that will be written to \b true if there is any +// error during the parameter parsing process (parameter not found, value is +// not a valid decimal number). +// +// This function searches an array of parameters to find the string passed in +// \e pcName. If the string is found, the corresponding parameter value is +// read from array pcValues and checked to make sure that it is a valid +// decimal number. If so, the number is returned. If any error is detected, +// parameter \e pbError is written to \b true. Note that \e pbError is NOT +// written if the parameter is successfully found and validated. This is to +// allow multiple parameters to be parsed without the caller needing to check +// return codes after each individual call. +// +// \return Returns the value of the parameter or 0 if an error is detected (in +// which case \e *pbError will be \b true). +// +//***************************************************************************** +int32_t +GetCGIParam(const char *pcName, char *pcParams[], char *pcValue[], + int32_t iNumParams, bool *pbError) +{ + int32_t i32Param; + int32_t i32Value; + bool bRetcode; + + // + // Is the parameter we are looking for in the list? + // + i32Param = FindCGIParameter(pcName, pcParams, iNumParams); + if(i32Param != -1) + { + // + // We found the parameter so now get its value. + // + bRetcode = CheckDecimalParam(pcValue[i32Param], &i32Value); + if(bRetcode) + { + // + // All is well - return the parameter value. + // + return(i32Value); + } + } + + // + // If we reach here, there was a problem so return 0 and set the error + // flag. + // + *pbError = true; + return(0); +} diff --git a/boards/ek-tm4c1294xl/enet_io/cgifuncs.h b/boards/ek-tm4c1294xl/enet_io/cgifuncs.h new file mode 100644 index 0000000..dfa8150 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/cgifuncs.h @@ -0,0 +1,46 @@ +//***************************************************************************** +// +// cgifuncs.c - Helper functions related to CGI script parameter parsing. +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __CGIFUNCS_H__ +#define __CGIFUNCS_H__ + +//***************************************************************************** +// +// Prototypes of functions exported by this module. +// +//***************************************************************************** +int32_t FindCGIParameter(const char *pcToFind, char *pcParam[], + int32_t i32NumParams); +bool IsValidHexDigit(const char cDigit); +unsigned char HexDigit(const char cDigit); +bool DecodeHexEscape(const char *pcEncoded, char *pcDecoded); +uint32_t EncodeFormString(const char *pcDecoded, char *pcEncoded, + uint32_t ui32Len); +uint32_t DecodeFormString(const char *pcEncoded, char *pcDecoded, + uint32_t ui32Len); +bool CheckDecimalParam(const char *pcValue, int32_t *pi32Value); +int32_t GetCGIParam(const char *pcName, char *pcParams[], char *pcValue[], + int32_t i32NumParams, bool *pbError); + +#endif // __CGIFUNCS_H__ diff --git a/boards/ek-tm4c1294xl/enet_io/enet_io.c b/boards/ek-tm4c1294xl/enet_io/enet_io.c new file mode 100644 index 0000000..ef24b53 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/enet_io.c @@ -0,0 +1,708 @@ +//***************************************************************************** +// +// enet_io.c - I/O control via a web server. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#include +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" +#include "driverlib/flash.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "driverlib/timer.h" +#include "driverlib/rom_map.h" +#include "utils/locator.h" +#include "utils/lwiplib.h" +#include "utils/uartstdio.h" +#include "utils/ustdlib.h" +#include "httpserver_raw/httpd.h" +#include "drivers/pinout.h" +#include "io.h" +#include "cgifuncs.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

Ethernet-based I/O Control (enet_io)

+//! +//! This example application demonstrates web-based I/O control using the +//! Tiva Ethernet controller and the lwIP TCP/IP Stack. DHCP is used to +//! obtain an Ethernet address. If DHCP times out without obtaining an +//! address, a static IP address will be chosen using AutoIP. The address that +//! is selected will be shown on the UART allowing you to access the +//! internal web pages served by the application via your normal web browser. +//! +//! Two different methods of controlling board peripherals via web pages are +//! illustrated via pages labeled ``IO Control Demo 1'' and ``IO Control +//! Demo 2'' in the navigation menu on the left of the application's home page. +//! In both cases, the example allows you to toggle the state of the user LED +//! on the board and set the speed of a blinking LED. +//! +//! ``IO Control Demo 1'' uses JavaScript running in the web browser to send +//! HTTP requests for particular special URLs. These special URLs are +//! intercepted in the file system support layer (io_fs.c) and used to +//! control the LED and animation LED. Responses generated by the board are +//! returned to the browser and inserted into the page HTML dynamically by +//! more JavaScript code. +//! +//! ``IO Control Demo 2'' uses standard HTML forms to pass parameters to CGI +//! (Common Gateway Interface) handlers running on the board. These handlers +//! process the form data and control the animation and LED as requested before +//! sending a response page (in this case, the original form) back to the +//! browser. The application registers the names and handlers for each of its +//! CGIs with the HTTPD server during initialization and the server calls +//! these handlers after parsing URL parameters each time one of the CGI URLs +//! is requested. +//! +//! Information on the state of the various controls in the second demo is +//! inserted into the served HTML using SSI (Server Side Include) tags which +//! are parsed by the HTTPD server in the application. As with the CGI +//! handlers, the application registers its list of SSI tags and a handler +//! function with the web server during initialization and this handler is +//! called whenever any registered tag is found in a .shtml, .ssi, .shtm or +//! .xml file being served to the browser. +//! +//! In addition to LED and animation speed control, the second example also +//! allows a line of text to be sent to the board for output to the UART. +//! This is included to illustrate the decoding of HTTP text strings. +//! +//! Note that the web server used by this example has been modified from the +//! example shipped with the basic lwIP package. Additions include SSI and +//! CGI support along with the ability to have the server automatically insert +//! the HTTP headers rather than having these built in to the files in the +//! file system image. +//! +//! Source files for the internal file system image can be found in the ``fs'' +//! directory. If any of these files are changed, the file system image +//! (io_fsdata.h) should be rebuilt by running the following command from the +//! enet_io directory: +//! +//! ../../../../tools/bin/makefsfile -i fs -o io_fsdata.h -r -h -q +//! +//! For additional details on lwIP, refer to the lwIP web page at: +//! http://savannah.nongnu.org/projects/lwip/ +// +//***************************************************************************** + +//***************************************************************************** +// +// Defines for setting up the system clock. +// +//***************************************************************************** +#define SYSTICKHZ 100 +#define SYSTICKMS (1000 / SYSTICKHZ) + +//***************************************************************************** +// +// Interrupt priority definitions. The top 3 bits of these values are +// significant with lower values indicating higher priority interrupts. +// +//***************************************************************************** +#define SYSTICK_INT_PRIORITY 0x80 +#define ETHERNET_INT_PRIORITY 0xC0 + +//***************************************************************************** +// +// A set of flags. The flag bits are defined as follows: +// +// 0 -> An indicator that the animation timer interrupt has occurred. +// +//***************************************************************************** +#define FLAG_TICK 0 +static volatile unsigned long g_ulFlags; + +//***************************************************************************** +// +// External Application references. +// +//***************************************************************************** +extern void httpd_init(void); + +//***************************************************************************** +// +// SSI tag indices for each entry in the g_pcSSITags array. +// +//***************************************************************************** +#define SSI_INDEX_LEDSTATE 0 +#define SSI_INDEX_FORMVARS 1 +#define SSI_INDEX_SPEED 2 + +//***************************************************************************** +// +// This array holds all the strings that are to be recognized as SSI tag +// names by the HTTPD server. The server will call SSIHandler to request a +// replacement string whenever the pattern (where tagname +// appears in the following array) is found in ".ssi", ".shtml" or ".shtm" +// files that it serves. +// +//***************************************************************************** +static const char *g_pcConfigSSITags[] = +{ + "LEDtxt", // SSI_INDEX_LEDSTATE + "FormVars", // SSI_INDEX_FORMVARS + "speed" // SSI_INDEX_SPEED +}; + +//***************************************************************************** +// +// The number of individual SSI tags that the HTTPD server can expect to +// find in our configuration pages. +// +//***************************************************************************** +#define NUM_CONFIG_SSI_TAGS (sizeof(g_pcConfigSSITags) / sizeof (char *)) + +//***************************************************************************** +// +// Prototypes for the various CGI handler functions. +// +//***************************************************************************** +static char *ControlCGIHandler(int32_t iIndex, int32_t i32NumParams, + char *pcParam[], char *pcValue[]); +static char *SetTextCGIHandler(int32_t iIndex, int32_t i32NumParams, + char *pcParam[], char *pcValue[]); + +//***************************************************************************** +// +// Prototype for the main handler used to process server-side-includes for the +// application's web-based configuration screens. +// +//***************************************************************************** +static int32_t SSIHandler(int32_t iIndex, char *pcInsert, int32_t iInsertLen); + +//***************************************************************************** +// +// CGI URI indices for each entry in the g_psConfigCGIURIs array. +// +//***************************************************************************** +#define CGI_INDEX_CONTROL 0 +#define CGI_INDEX_TEXT 1 + +//***************************************************************************** +// +// This array is passed to the HTTPD server to inform it of special URIs +// that are treated as common gateway interface (CGI) scripts. Each URI name +// is defined along with a pointer to the function which is to be called to +// process it. +// +//***************************************************************************** +static const tCGI g_psConfigCGIURIs[] = +{ + { "/iocontrol.cgi", (tCGIHandler)ControlCGIHandler }, // CGI_INDEX_CONTROL + { "/settxt.cgi", (tCGIHandler)SetTextCGIHandler } // CGI_INDEX_TEXT +}; + +//***************************************************************************** +// +// The number of individual CGI URIs that are configured for this system. +// +//***************************************************************************** +#define NUM_CONFIG_CGI_URIS (sizeof(g_psConfigCGIURIs) / sizeof(tCGI)) + +//***************************************************************************** +// +// The file sent back to the browser by default following completion of any +// of our CGI handlers. Each individual handler returns the URI of the page +// to load in response to it being called. +// +//***************************************************************************** +#define DEFAULT_CGI_RESPONSE "/io_cgi.ssi" + +//***************************************************************************** +// +// The file sent back to the browser in cases where a parameter error is +// detected by one of the CGI handlers. This should only happen if someone +// tries to access the CGI directly via the broswer command line and doesn't +// enter all the required parameters alongside the URI. +// +//***************************************************************************** +#define PARAM_ERROR_RESPONSE "/perror.htm" + +#define JAVASCRIPT_HEADER \ + "\n" + +//***************************************************************************** +// +// Timeout for DHCP address request (in seconds). +// +//***************************************************************************** +#ifndef DHCP_EXPIRE_TIMER_SECS +#define DHCP_EXPIRE_TIMER_SECS 45 +#endif + +//***************************************************************************** +// +// The current IP address. +// +//***************************************************************************** +uint32_t g_ui32IPAddress; + +//***************************************************************************** +// +// The system clock frequency. Used by the SD card driver. +// +//***************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// This CGI handler is called whenever the web browser requests iocontrol.cgi. +// +//***************************************************************************** +static char * +ControlCGIHandler(int32_t iIndex, int32_t i32NumParams, char *pcParam[], + char *pcValue[]) +{ + int32_t i32LEDState, i32Speed; + bool bParamError; + + // + // We have not encountered any parameter errors yet. + // + bParamError = false; + + // + // Get each of the expected parameters. + // + i32LEDState = FindCGIParameter("LEDOn", pcParam, i32NumParams); + i32Speed = GetCGIParam("speed_percent", pcParam, pcValue, i32NumParams, + &bParamError); + + // + // Was there any error reported by the parameter parser? + // + if(bParamError || (i32Speed < 0) || (i32Speed > 100)) + { + return(PARAM_ERROR_RESPONSE); + } + + // + // We got all the parameters and the values were within the expected ranges + // so go ahead and make the changes. + // + io_set_led((i32LEDState == -1) ? false : true); + io_set_animation_speed(i32Speed); + + // + // Send back the default response page. + // + return(DEFAULT_CGI_RESPONSE); +} + +//***************************************************************************** +// +// This CGI handler is called whenever the web browser requests settxt.cgi. +// +//***************************************************************************** +static char * +SetTextCGIHandler(int32_t i32Index, int32_t i32NumParams, char *pcParam[], + char *pcValue[]) +{ + long lStringParam; + char pcDecodedString[48]; + + // + // Find the parameter that has the string we need to display. + // + lStringParam = FindCGIParameter("DispText", pcParam, i32NumParams); + + // + // If the parameter was not found, show the error page. + // + if(lStringParam == -1) + { + return(PARAM_ERROR_RESPONSE); + } + + // + // The parameter is present. We need to decode the text for display. + // + DecodeFormString(pcValue[lStringParam], pcDecodedString, 48); + + // + // Print sting over the UART + // + UARTprintf(pcDecodedString); + UARTprintf("\n"); + + // + // Tell the HTTPD server which file to send back to the client. + // + return(DEFAULT_CGI_RESPONSE); +} + +//***************************************************************************** +// +// This function is called by the HTTP server whenever it encounters an SSI +// tag in a web page. The iIndex parameter provides the index of the tag in +// the g_pcConfigSSITags array. This function writes the substitution text +// into the pcInsert array, writing no more than iInsertLen characters. +// +//***************************************************************************** +static int32_t +SSIHandler(int32_t iIndex, char *pcInsert, int32_t iInsertLen) +{ + // + // Which SSI tag have we been passed? + // + switch(iIndex) + { + case SSI_INDEX_LEDSTATE: + io_get_ledstate(pcInsert, iInsertLen); + break; + + case SSI_INDEX_FORMVARS: + usnprintf(pcInsert, iInsertLen, + "%sls=%d;\nsp=%d;\n%s", + JAVASCRIPT_HEADER, + io_is_led_on(), + io_get_animation_speed(), + JAVASCRIPT_FOOTER); + break; + + case SSI_INDEX_SPEED: + io_get_animation_speed_string(pcInsert, iInsertLen); + break; + + default: + usnprintf(pcInsert, iInsertLen, "??"); + break; + } + + // + // Tell the server how many characters our insert string contains. + // + return(strlen(pcInsert)); +} + +//***************************************************************************** +// +// The interrupt handler for the SysTick interrupt. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + // + // Call the lwIP timer handler. + // + lwIPTimer(SYSTICKMS); +} + +//***************************************************************************** +// +// The interrupt handler for the timer used to pace the animation. +// +//***************************************************************************** +void +AnimTimerIntHandler(void) +{ + // + // Clear the timer interrupt. + // + MAP_TimerIntClear(TIMER2_BASE, TIMER_TIMA_TIMEOUT); + + // + // Indicate that a timer interrupt has occurred. + // + HWREGBITW(&g_ulFlags, FLAG_TICK) = 1; +} + +//***************************************************************************** +// +// Display an lwIP type IP Address. +// +//***************************************************************************** +void +DisplayIPAddress(uint32_t ui32Addr) +{ + char pcBuf[16]; + + // + // Convert the IP Address into a string. + // + usprintf(pcBuf, "%d.%d.%d.%d", ui32Addr & 0xff, (ui32Addr >> 8) & 0xff, + (ui32Addr >> 16) & 0xff, (ui32Addr >> 24) & 0xff); + + // + // Display the string. + // + UARTprintf(pcBuf); +} + +//***************************************************************************** +// +// Required by lwIP library to support any host-related timer functions. +// +//***************************************************************************** +void +lwIPHostTimerHandler(void) +{ + uint32_t ui32Idx, ui32NewIPAddress; + + // + // Get the current IP address. + // + ui32NewIPAddress = lwIPLocalIPAddrGet(); + + // + // See if the IP address has changed. + // + if(ui32NewIPAddress != g_ui32IPAddress) + { + // + // See if there is an IP address assigned. + // + if(ui32NewIPAddress == 0xffffffff) + { + // + // Indicate that there is no link. + // + UARTprintf("Waiting for link.\n"); + } + else if(ui32NewIPAddress == 0) + { + // + // There is no IP address, so indicate that the DHCP process is + // running. + // + UARTprintf("Waiting for IP address.\n"); + } + else + { + // + // Display the new IP address. + // + UARTprintf("IP Address: "); + DisplayIPAddress(ui32NewIPAddress); + UARTprintf("\n"); + UARTprintf("Open a browser and enter the IP address.\n"); + } + + // + // Save the new IP address. + // + g_ui32IPAddress = ui32NewIPAddress; + } + + // + // If there is not an IP address. + // + if((ui32NewIPAddress == 0) || (ui32NewIPAddress == 0xffffffff)) + { + // + // Loop through the LED animation. + // + + for(ui32Idx = 1; ui32Idx < 17; ui32Idx++) + { + + // + // Toggle the GPIO + // + MAP_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, + (MAP_GPIOPinRead(GPIO_PORTN_BASE, GPIO_PIN_1) ^ + GPIO_PIN_1)); + + SysCtlDelay(g_ui32SysClock/(ui32Idx << 1)); + + } + } +} + +//***************************************************************************** +// +// This example demonstrates the use of the Ethernet Controller and lwIP +// TCP/IP stack to control various peripherals on the board via a web +// browser. +// +//***************************************************************************** +int +main(void) +{ + uint32_t ui32User0, ui32User1; + uint8_t pui8MACArray[8]; + + // + // Make sure the main oscillator is enabled because this is required by + // the PHY. The system must have a 25MHz crystal attached to the OSC + // pins. The SYSCTL_MOSC_HIGHFREQ parameter is used when the crystal + // frequency is 10MHz or higher. + // + SysCtlMOSCConfigSet(SYSCTL_MOSC_HIGHFREQ); + + // + // Run from the PLL at 120 MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins. + // + PinoutSet(true, false); + + // + // Configure debug port for internal use. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); + + // + // Clear the terminal and print a banner. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("Ethernet IO Example\n\n"); + + // + // Configure SysTick for a periodic interrupt. + // + MAP_SysTickPeriodSet(g_ui32SysClock / SYSTICKHZ); + MAP_SysTickEnable(); + MAP_SysTickIntEnable(); + + // + // Configure the hardware MAC address for Ethernet Controller filtering of + // incoming packets. The MAC address will be stored in the non-volatile + // USER0 and USER1 registers. + // + MAP_FlashUserGet(&ui32User0, &ui32User1); + if((ui32User0 == 0xffffffff) || (ui32User1 == 0xffffffff)) + { + // + // Let the user know there is no MAC address + // + UARTprintf("No MAC programmed!\n"); + + while(1) + { + } + } + + // + // Tell the user what we are doing just now. + // + UARTprintf("Waiting for IP.\n"); + + // + // Convert the 24/24 split MAC address from NV ram into a 32/16 split + // MAC address needed to program the hardware registers, then program + // the MAC address into the Ethernet Controller registers. + // + pui8MACArray[0] = ((ui32User0 >> 0) & 0xff); + pui8MACArray[1] = ((ui32User0 >> 8) & 0xff); + pui8MACArray[2] = ((ui32User0 >> 16) & 0xff); + pui8MACArray[3] = ((ui32User1 >> 0) & 0xff); + pui8MACArray[4] = ((ui32User1 >> 8) & 0xff); + pui8MACArray[5] = ((ui32User1 >> 16) & 0xff); + + // + // Initialze the lwIP library, using DHCP. + // + lwIPInit(g_ui32SysClock, pui8MACArray, 0, 0, 0, IPADDR_USE_DHCP); + + // + // Setup the device locator service. + // + LocatorInit(); + LocatorMACAddrSet(pui8MACArray); + LocatorAppTitleSet("EK-TM4C1294XL enet_io"); + + // + // Initialize a sample httpd server. + // + httpd_init(); + + // + // Set the interrupt priorities. We set the SysTick interrupt to a higher + // priority than the Ethernet interrupt to ensure that the file system + // tick is processed if SysTick occurs while the Ethernet handler is being + // processed. This is very likely since all the TCP/IP and HTTP work is + // done in the context of the Ethernet interrupt. + // + MAP_IntPrioritySet(INT_EMAC0, ETHERNET_INT_PRIORITY); + MAP_IntPrioritySet(FAULT_SYSTICK, SYSTICK_INT_PRIORITY); + + // + // Pass our tag information to the HTTP server. + // + http_set_ssi_handler((tSSIHandler)SSIHandler, g_pcConfigSSITags, + NUM_CONFIG_SSI_TAGS); + + // + // Pass our CGI handlers to the HTTP server. + // + http_set_cgi_handlers(g_psConfigCGIURIs, NUM_CONFIG_CGI_URIS); + + // + // Initialize IO controls + // + io_init(); + + // + // Loop forever, processing the on-screen animation. All other work is + // done in the interrupt handlers. + // + while(1) + { + // + // Wait for a new tick to occur. + // + while(!g_ulFlags) + { + // + // Do nothing. + // + } + + // + // Clear the flag now that we have seen it. + // + HWREGBITW(&g_ulFlags, FLAG_TICK) = 0; + + // + // Toggle the GPIO + // + MAP_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, + (MAP_GPIOPinRead(GPIO_PORTN_BASE, GPIO_PIN_1) ^ + GPIO_PIN_1)); + } +} diff --git a/boards/ek-tm4c1294xl/enet_io/enet_io.ewd b/boards/ek-tm4c1294xl/enet_io/enet_io.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/enet_io.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/enet_io/enet_io.ewp b/boards/ek-tm4c1294xl/enet_io/enet_io.ewp new file mode 100644 index 0000000..a40126b --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/enet_io.ewp @@ -0,0 +1,825 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\cgifuncs.c + + + $PROJ_DIR$\enet_io.c + + + $PROJ_DIR$\..\..\..\..\third_party\lwip-1.4.1\apps\httpserver_raw\httpd.c + + + $PROJ_DIR$\io.c + + + $PROJ_DIR$\io_fs.c + + + $PROJ_DIR$\..\..\..\..\utils\locator.c + + + $PROJ_DIR$\..\..\..\..\utils\lwiplib.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/enet_io/enet_io.icf b/boards/ek-tm4c1294xl/enet_io/enet_io.icf new file mode 100644 index 0000000..4965da7 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/enet_io.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// enet_io.icf - Linker configuration file for enet_io. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/enet_io/enet_io.ld b/boards/ek-tm4c1294xl/enet_io/enet_io.ld new file mode 100644 index 0000000..2fd2b25 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/enet_io.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * enet_io.ld - Linker configuration file for enet_io. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/enet_io/enet_io.sct b/boards/ek-tm4c1294xl/enet_io/enet_io.sct new file mode 100644 index 0000000..69e2c1a --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/enet_io.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; enet_io.sct - Linker configuration file for enet_io. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/enet_io/enet_io.uvopt b/boards/ek-tm4c1294xl/enet_io/enet_io.uvopt new file mode 100644 index 0000000..a59e206 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/enet_io.uvopt @@ -0,0 +1,415 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + enet_io + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\cgifuncs.c + cgifuncs.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\enet_io.c + enet_io.c + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\lwip-1.4.1\apps\httpserver_raw\httpd.c + httpd.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\io.c + io.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\io_fs.c + io_fs.c + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\locator.c + locator.c + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\lwiplib.c + lwiplib.c + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 9 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 11 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 12 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 13 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
diff --git a/boards/ek-tm4c1294xl/enet_io/enet_io.uvproj b/boards/ek-tm4c1294xl/enet_io/enet_io.uvproj new file mode 100644 index 0000000..9c0b9cf --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/enet_io.uvproj @@ -0,0 +1,469 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + enet_io + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + enet_io + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\enet_io.bin .\rvmdk\enet_io.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + .;..;..\..\..\..;..\..\..\..\third_party\lwip-1.4.1\apps;..\..\..\..\third_party\lwip-1.4.1\ports\tiva-tm4c129\include;..\..\..\..\third_party\lwip-1.4.1\src\include;..\..\..\..\third_party\lwip-1.4.1\src\include\ipv4;..\..\..\..\third_party; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + enet_io.sct + + + --entry Reset_Handler + + + + + + + + Source + + + cgifuncs.c + 1 + .\cgifuncs.c + + + enet_io.c + 1 + .\enet_io.c + + + httpd.c + 1 + ..\..\..\..\third_party\lwip-1.4.1\apps\httpserver_raw\httpd.c + + + io.c + 1 + .\io.c + + + io_fs.c + 1 + .\io_fs.c + + + locator.c + 1 + ..\..\..\..\utils\locator.c + + + lwiplib.c + 1 + ..\..\..\..\utils\lwiplib.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
diff --git a/boards/ek-tm4c1294xl/enet_io/enet_io_ccs.cmd b/boards/ek-tm4c1294xl/enet_io/enet_io_ccs.cmd new file mode 100644 index 0000000..35706dd --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/enet_io_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * enet_io_ccs.cmd - CCS linker configuration file for enet_io. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 1024; diff --git a/boards/ek-tm4c1294xl/enet_io/ewarm/Exe/enet_io.bin b/boards/ek-tm4c1294xl/enet_io/ewarm/Exe/enet_io.bin new file mode 100644 index 0000000..12b0fc3 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/ewarm/Exe/enet_io.bin differ diff --git a/boards/ek-tm4c1294xl/enet_io/ewarm/Exe/enet_io.out b/boards/ek-tm4c1294xl/enet_io/ewarm/Exe/enet_io.out new file mode 100644 index 0000000..55c973e Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/ewarm/Exe/enet_io.out differ diff --git a/boards/ek-tm4c1294xl/enet_io/fs/404.htm b/boards/ek-tm4c1294xl/enet_io/fs/404.htm new file mode 100644 index 0000000..d8b3630 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/404.htm @@ -0,0 +1,12 @@ + + + + + + +
+

404 - file not found

+

Try here instead.

+
+ + diff --git a/boards/ek-tm4c1294xl/enet_io/fs/about.htm b/boards/ek-tm4c1294xl/enet_io/fs/about.htm new file mode 100644 index 0000000..a87a8a0 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/about.htm @@ -0,0 +1,33 @@ + + + + +EK-TM4C1294XL Evaluation Kit + + + + + +

About Texas Instruments

+
+
+Texas Instruments (TI) is a global +analog +and digital +semiconductor IC design +and manufacturing company. In addition to analog technologies, +digital signal processing (DSP) +and +microcontroller (MCU) +semiconductors, TI designs and manufactures semiconductor solutions for analog +and digital embedded and application processing. In the microcontroller space, +TI offers the broadest range of embedded control products, from ultra-low-power +MSP430™ +MCUs and high-performance +TMS320C2000™ +real-time controllers, to the 32 bit general-purpose ARM®-based MCUs of the +Tiva™ C Series +product line. Read more about us on the web at +www.ti.com. + + diff --git a/boards/ek-tm4c1294xl/enet_io/fs/block.htm b/boards/ek-tm4c1294xl/enet_io/fs/block.htm new file mode 100644 index 0000000..1bdf795 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/block.htm @@ -0,0 +1,18 @@ + + + + + +EK-TM4C1294XL Evaluation Kit + + + + +

TM4C1294NCPDT Block Diagram

+
+
+
+ +
+ + diff --git a/boards/ek-tm4c1294xl/enet_io/fs/block.jpg b/boards/ek-tm4c1294xl/enet_io/fs/block.jpg new file mode 100644 index 0000000..a42d607 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/fs/block.jpg differ diff --git a/boards/ek-tm4c1294xl/enet_io/fs/ek-tm4c1294xl.jpg b/boards/ek-tm4c1294xl/enet_io/fs/ek-tm4c1294xl.jpg new file mode 100644 index 0000000..b6e5f28 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/fs/ek-tm4c1294xl.jpg differ diff --git a/boards/ek-tm4c1294xl/enet_io/fs/favicon.ico b/boards/ek-tm4c1294xl/enet_io/fs/favicon.ico new file mode 100644 index 0000000..d14b5d9 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/fs/favicon.ico differ diff --git a/boards/ek-tm4c1294xl/enet_io/fs/index.htm b/boards/ek-tm4c1294xl/enet_io/fs/index.htm new file mode 100644 index 0000000..b82f794 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/index.htm @@ -0,0 +1,57 @@ + + + + + + EK-TM4C1294XL Evaluation Kit + + + + + + +
+ + + + + + +
+ + Texas Instruments + + +
+ Tiva™ C Series TM4C1294XL Evaluation Kit +
+
+ EK-TM4C1294XL +
+
+ + TM4C + +
+

+
+ +
+
+
+

+ Copyright © 2013-2014 Texas Instruments Incorporated. All rights reserved. +
+ + diff --git a/boards/ek-tm4c1294xl/enet_io/fs/io_cgi.ssi b/boards/ek-tm4c1294xl/enet_io/fs/io_cgi.ssi new file mode 100644 index 0000000..7957caf --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/io_cgi.ssi @@ -0,0 +1,146 @@ + + + + + + I/O Control Demo 2 + + + + + + + +
+ + + + + + +
+ + Texas Instruments + + +
+ Tiva™ C Series TM4C1294XL Development Kit +
+
+ EK-TM4C1294XL +
+
+ + TM4C + +
+

+
+ +
+ + + + + + +
+
+

I/O Control Demo 2

+
+
+
    This demonstration shows another method of performing control and status reporting. This time, we use Server Side Include tags to replace text in the page as it is being server from the Tiva C Series EK board and standard HTML forms to send data to a CGI handler + running on the board.  This example does cause the page to be reloaded whenever form data is submitted but it  involves less complex HTML to perform the task. +
    +
    + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + Control + + Current + + New +
    LED State + + + +
    Animation Speed + + + +
    + +
    +
    +
    +
      +
      + + + + + + +
      +
      + + + + + + +
      + Display this text over the UART:
      + + +
      +
      +
      +
      +
      +
      +
      +

      + Copyright © 2013-2014 Texas Instruments Incorporated. All rights reserved. +
      + + diff --git a/boards/ek-tm4c1294xl/enet_io/fs/io_http.htm b/boards/ek-tm4c1294xl/enet_io/fs/io_http.htm new file mode 100644 index 0000000..3229198 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/io_http.htm @@ -0,0 +1,63 @@ + + + + + + + I/O Control Demo 1 + + + + + + + + + + + +
      +
      +

      I/O Control Demo 1

      +
      +
      +

      This demonstration shows how to perform control and status reporting using HTTP requests embedded within Javascript code on the web page itself. Using this method, it is possible to update sections of text on the current page without the need to refresh the + entire page.

      +

      Toggle USER LED and report the state of the LED

      + + + + + + + + +
      + + USER LED: +
      -
      +
      +

      +

      Set the speed of the animation LED. Speed is expressed as a percentage.

      + + + + + + + + + + + +
      Current Speed: +
      -
      +
      + + + %
      +

      +
      + + + diff --git a/boards/ek-tm4c1294xl/enet_io/fs/javascript.js b/boards/ek-tm4c1294xl/enet_io/fs/javascript.js new file mode 100644 index 0000000..74d90e0 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/javascript.js @@ -0,0 +1,191 @@ + + +window.onload = function() +{ + document.getElementById('about').onclick = loadAbout; + document.getElementById('overview').onclick = loadOverview; + document.getElementById('block').onclick = loadBlock; + document.getElementById('io_http').onclick = loadIOHttp; +} + +function loadAbout() +{ + loadPage("about.htm"); + return false; +} + +function loadOverview() +{ + loadPage("overview.htm"); + return false; +} + +function loadBlock() +{ + loadPage("block.htm"); + return false; +} + +function loadIOHttp() +{ + loadPage("io_http.htm"); + ledstateGet(); + speedGet(); + return false; +} + +function SetFormDefaults() +{ + document.iocontrol.LEDOn.checked = ls; + document.iocontrol.speed_percent.value = sp; +} + +function toggle_led() +{ + var req = false; + + function ToggleComplete() + { + if(req.readyState == 4) + { + if(req.status == 200) + { + document.getElementById("ledstate").innerHTML = "
      " + + req.responseText + "
      "; + } + } + } + + if(window.XMLHttpRequest) + { + req = new XMLHttpRequest(); + } + else if(window.ActiveXObject) + { + req = new ActiveXObject("Microsoft.XMLHTTP"); + } + if(req) + { + req.open("GET", "/cgi-bin/toggle_led?id" + Math.random(), true); + req.onreadystatechange = ToggleComplete; + req.send(null); + } +} + +function speedSet() +{ + var req = false; + var speed_txt = document.getElementById("speed_percent"); + function speedComplete() + { + if(req.readyState == 4) + { + if(req.status == 200) + { + document.getElementById("current_speed").innerHTML = + "
      " + req.responseText + "
      "; + } + } + } + if(window.XMLHttpRequest) + { + req = new XMLHttpRequest(); + } + else if(window.ActiveXObject) + { + req = new ActiveXObject("Microsoft.XMLHTTP"); + } + if(req) + { + req.open("GET", "/cgi-bin/set_speed?percent=" + speed_txt.value + + "&id" + Math.random(), true); + req.onreadystatechange = speedComplete; + req.send(null); + } +} + +function ledstateGet() +{ + var led = false; + function ledComplete() + { + if(led.readyState == 4) + { + if(led.status == 200) + { + document.getElementById("ledstate").innerHTML = "
      " + + led.responseText + "
      "; + } + } + } + + if(window.XMLHttpRequest) + { + led = new XMLHttpRequest(); + } + else if(window.ActiveXObject) + { + led = new ActiveXObject("Microsoft.XMLHTTP"); + } + if(led) + { + led.open("GET", "/ledstate?id=" + Math.random(), true); + led.onreadystatechange = ledComplete; + led.send(null); + } +} + +function speedGet() +{ + var req = false; + function speedReturned() + { + if(req.readyState == 4) + { + if(req.status == 200) + { + document.getElementById("current_speed").innerHTML = "
      " + req.responseText + "
      "; + } + } + } + + if(window.XMLHttpRequest) + { + req = new XMLHttpRequest(); + } + else if(window.ActiveXObject) + { + req = new ActiveXObject("Microsoft.XMLHTTP"); + } + if(req) + { + req.open("GET", "/get_speed?id=" + Math.random(), true); + req.onreadystatechange = speedReturned; + req.send(null); + } +} + +function loadPage(page) +{ + if(window.XMLHttpRequest) + { + xmlhttp = new XMLHttpRequest(); + } + else + { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } + + xmlhttp.open("GET", page, true); + xmlhttp.setRequestHeader("Content-type", + "application/x-www-form-urlencoded"); + xmlhttp.send(); + + xmlhttp.onreadystatechange = function () + { + if((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) + { + document.getElementById("content").innerHTML = xmlhttp.responseText; + } + } +} diff --git a/boards/ek-tm4c1294xl/enet_io/fs/javascript_load.js b/boards/ek-tm4c1294xl/enet_io/fs/javascript_load.js new file mode 100644 index 0000000..cb52985 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/javascript_load.js @@ -0,0 +1,11 @@ + + +window.onload = function() +{ + document.getElementById('about').onclick = loadAbout; + document.getElementById('overview').onclick = loadOverview; + document.getElementById('block').onclick = loadBlock; + document.getElementById('io_http').onclick = loadIOHttp; + + loadPage("about.htm"); +} diff --git a/boards/ek-tm4c1294xl/enet_io/fs/overview.htm b/boards/ek-tm4c1294xl/enet_io/fs/overview.htm new file mode 100644 index 0000000..e8a1e56 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/overview.htm @@ -0,0 +1,30 @@ + + + + + +EK-TM4C1294XL Evaluation Kit + + + + +

      Tiva™ C Series Product Line

      +
      +
      +As the first ARM® Cortex™-M4 microcontrollers (MCUs) to be +implemented on TI's proprietary 65-nm process technology, the Tiva C Series +provides customers an opportunity to increase their connectivity integration +without sacrificing price, performance, or power consumption. Every C Series +MCU integrates a floating-point core and high-performance analog while still +providing low-power modes to offer a great set of functional options. Today's +engineers understand that designs require more than hardware alone. Often, the +greatest challenge is software and +TivaWare for C Series is a +free library of C files that include both peripheral-level and +application-level code in source and in ROM for every Tiva C Series MCU. This +offering delivers USB, CAN, graphics, and sensor application libraries so +customers can focus their efforts on building applications instead of +programming their connectivity peripherals. The Tiva C Series provides an +excellent baseline for home, building, and industrial applications. + + diff --git a/boards/ek-tm4c1294xl/enet_io/fs/perror.htm b/boards/ek-tm4c1294xl/enet_io/fs/perror.htm new file mode 100644 index 0000000..2d1c7c4 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/perror.htm @@ -0,0 +1,74 @@ + + + + + + Form Parameter Error + + + + + +
      + + + + + + +
      + + Texas Instruments + + +
      + Tiva™ C Series TM4C1294XL Evaluation Kit +
      +
      + EK-TM4C1294XL +
      +
      + + TM4C + +
      +

      +
      + +
      + + + + + + +
      +
      +

      Parameter Error

      +
      +
      +

      +

      Oops - one of the parameters sent to the board +
      was either missing, invalid or out of range. 

      +

      Please try again! +
      +

      +
      +
      +
      +

      + Copyright © 2013-2014 Texas Instruments Incorporated. All rights reserved. +
      + + diff --git a/boards/ek-tm4c1294xl/enet_io/fs/styles.css b/boards/ek-tm4c1294xl/enet_io/fs/styles.css new file mode 100644 index 0000000..3403359 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/fs/styles.css @@ -0,0 +1,104 @@ +/* Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. */ + +/* Styling for the entire document. */ +body +{ + background-color: white; + color: black; + font-family: Ariel,Helvetica,sans-serif; +} + +/* Styling for the heading div. */ +#heading +{ + clear: both; + margin-bottom: 10px; +} + +#heading_h1 +{ + font-size: 2em; + font-weight: bold; + text-align: center; +} + +#heading_h2 +{ + font-size: 1.25em; + font-weight: bold; + text-align: center; +} + +#heading hr +{ + border-bottom: 1px solid #ff0000; + border-top: 1px solid #ff0000; +} + +#heading a img +{ + border: 0; +} + +/* Styling for the menu div. */ +#menu +{ + float: left; + margin-bottom: 10px; + width: 225px; +} + +#menu ul +{ + list-style-type: none; + margin: 0; + padding: 0; +} + +#menu a:link, #menu a:visited +{ + background-color: #ff0000; + color: #ffffff; + display: block; + font-weight: bold; + margin-bottom: 2px; + margin-top: 2px; + padding: 4px; + text-align: center; + text-decoration: none; + width: 200px; +} + +#menu a:hover, #menu a:active +{ + background-color: #bf0000; +} + +/* Styling for the content div. */ +#content +{ + margin-bottom: 10px; + margin-left: 225px; +} + +#content_heading +{ + font-size: 1.5em; + font-weight: bold; + text-align: center; +} + +/* Styling for the footing div. */ +#footing +{ + clear: both; + font-size: .75em; + font-style: italic; + text-align: right; +} + +#footing hr +{ + border-bottom: 1px solid #ff0000; + border-top: 1px solid #ff0000; +} diff --git a/boards/ek-tm4c1294xl/enet_io/fs/ti.jpg b/boards/ek-tm4c1294xl/enet_io/fs/ti.jpg new file mode 100644 index 0000000..5d1669c Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/fs/ti.jpg differ diff --git a/boards/ek-tm4c1294xl/enet_io/fs/tm4c.jpg b/boards/ek-tm4c1294xl/enet_io/fs/tm4c.jpg new file mode 100644 index 0000000..1672a1d Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/fs/tm4c.jpg differ diff --git a/boards/ek-tm4c1294xl/enet_io/gcc/enet_io.axf b/boards/ek-tm4c1294xl/enet_io/gcc/enet_io.axf new file mode 100644 index 0000000..29206b7 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/gcc/enet_io.axf differ diff --git a/boards/ek-tm4c1294xl/enet_io/gcc/enet_io.bin b/boards/ek-tm4c1294xl/enet_io/gcc/enet_io.bin new file mode 100644 index 0000000..63ee563 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/gcc/enet_io.bin differ diff --git a/boards/ek-tm4c1294xl/enet_io/io.c b/boards/ek-tm4c1294xl/enet_io/io.c new file mode 100644 index 0000000..23f1ece --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/io.c @@ -0,0 +1,280 @@ +//***************************************************************************** +// +// io.c - I/O routines for the enet_io example application. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_pwm.h" +#include "inc/hw_types.h" +#include "driverlib/gpio.h" +#include "driverlib/pwm.h" +#include "driverlib/sysctl.h" +#include "driverlib/timer.h" +#include "driverlib/interrupt.h" +#include "driverlib/rom.h" +#include "utils/ustdlib.h" +#include "io.h" + +//***************************************************************************** +// +// Hardware connection for the user LED. +// +//***************************************************************************** +#define LED_PORT_BASE GPIO_PORTN_BASE +#define LED_PIN GPIO_PIN_0 + +//***************************************************************************** +// +// Hardware connection for the animation LED. +// +//***************************************************************************** +#define LED_ANIM_PORT_BASE GPIO_PORTN_BASE +#define LED_ANIM_PIN GPIO_PIN_1 + +//***************************************************************************** +// +// The system clock speed. +// +//***************************************************************************** +extern uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// The current speed of the on-screen animation expressed as a percentage. +// +//***************************************************************************** +volatile unsigned long g_ulAnimSpeed = 10; + +//***************************************************************************** +// +// Set the timer used to pace the animation. We scale the timer timeout such +// that a speed of 100% causes the timer to tick once every 20 mS (50Hz). +// +//***************************************************************************** +static void +io_set_timer(unsigned long ulSpeedPercent) +{ + unsigned long ulTimeout; + + // + // Turn the timer off while we are mucking with it. + // + ROM_TimerDisable(TIMER2_BASE, TIMER_A); + + // + // If the speed is non-zero, we reset the timeout. If it is zero, we + // just leave the timer disabled. + // + if(ulSpeedPercent) + { + // + // Set Timeout + // + ulTimeout = g_ui32SysClock / 50; + ulTimeout = (ulTimeout * 100 ) / ulSpeedPercent; + + ROM_TimerLoadSet(TIMER2_BASE, TIMER_A, ulTimeout); + ROM_TimerEnable(TIMER2_BASE, TIMER_A); + } +} + +//***************************************************************************** +// +// Initialize the IO used in this demo +// +//***************************************************************************** +void +io_init(void) +{ + // + // Configure Port N0 for as an output for the status LED. + // + ROM_GPIOPinTypeGPIOOutput(LED_PORT_BASE, LED_PIN); + + // + // Configure Port N0 for as an output for the animation LED. + // + ROM_GPIOPinTypeGPIOOutput(LED_ANIM_PORT_BASE, LED_ANIM_PIN); + + // + // Initialize LED to OFF (0) + // + ROM_GPIOPinWrite(LED_PORT_BASE, LED_PIN, 0); + + // + // Initialize animation LED to OFF (0) + // + ROM_GPIOPinWrite(LED_ANIM_PORT_BASE, LED_ANIM_PIN, 0); + + // + // Enable the peripherals used by this example. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER2); + + // + // Configure the timer used to pace the animation. + // + ROM_TimerConfigure(TIMER2_BASE, TIMER_CFG_PERIODIC); + + // + // Setup the interrupts for the timer timeouts. + // + ROM_IntEnable(INT_TIMER2A); + ROM_TimerIntEnable(TIMER2_BASE, TIMER_TIMA_TIMEOUT); + + // + // Set the timer for the current animation speed. This enables the + // timer as a side effect. + // + io_set_timer(g_ulAnimSpeed); +} + +//***************************************************************************** +// +// Set the status LED on or off. +// +//***************************************************************************** +void +io_set_led(bool bOn) +{ + // + // Turn the LED on or off as requested. + // + ROM_GPIOPinWrite(LED_PORT_BASE, LED_PIN, bOn ? LED_PIN : 0); +} + +//***************************************************************************** +// +// Return LED state +// +//***************************************************************************** +void +io_get_ledstate(char * pcBuf, int iBufLen) +{ + // + // Get the state of the LED + // + if(ROM_GPIOPinRead(LED_PORT_BASE, LED_PIN)) + { + usnprintf(pcBuf, iBufLen, "ON"); + } + else + { + usnprintf(pcBuf, iBufLen, "OFF"); + } + +} + +//***************************************************************************** +// +// Return LED state as an integer, 1 on, 0 off. +// +//***************************************************************************** +int +io_is_led_on(void) +{ + // + // Get the state of the LED + // + if(ROM_GPIOPinRead(LED_PORT_BASE, LED_PIN)) + { + return(true); + } + else + { + return(0); + } +} + +//***************************************************************************** +// +// Set the speed of the animation shown on the display. In this version, the +// speed is described as a decimal number encoded as an ASCII string. +// +//***************************************************************************** +void +io_set_animation_speed_string(char *pcBuf) +{ + unsigned long ulSpeed; + + // + // Parse the passed parameter as a decimal number. + // + ulSpeed = 0; + while((*pcBuf >= '0') && (*pcBuf <= '9')) + { + ulSpeed *= 10; + ulSpeed += (*pcBuf - '0'); + pcBuf++; + } + + // + // If the number is valid, set the new speed. + // + if(ulSpeed <= 100) + { + g_ulAnimSpeed = ulSpeed; + io_set_timer(g_ulAnimSpeed); + } +} + +//***************************************************************************** +// +// Set the speed of the animation shown on the display. +// +//***************************************************************************** +void +io_set_animation_speed(unsigned long ulSpeed) +{ + // + // If the number is valid, set the new speed. + // + if(ulSpeed <= 100) + { + g_ulAnimSpeed = ulSpeed; + io_set_timer(g_ulAnimSpeed); + } +} + +//***************************************************************************** +// +// Get the current animation speed as an ASCII string. +// +//***************************************************************************** +void +io_get_animation_speed_string(char *pcBuf, int iBufLen) +{ + usnprintf(pcBuf, iBufLen, "%d%%", g_ulAnimSpeed); +} + +//***************************************************************************** +// +// Get the current animation speed as a number. +// +//***************************************************************************** +unsigned long +io_get_animation_speed(void) +{ + return(g_ulAnimSpeed); +} diff --git a/boards/ek-tm4c1294xl/enet_io/io.h b/boards/ek-tm4c1294xl/enet_io/io.h new file mode 100644 index 0000000..90ca963 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/io.h @@ -0,0 +1,58 @@ +//***************************************************************************** +// +// io.h - Prototypes for I/O routines for the enet_io example. +// +// Copyright (c) 2009-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __IO_H__ +#define __IO_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Exported global variables. +// +//***************************************************************************** +extern volatile unsigned long g_ulAnimSpeed; + +//***************************************************************************** +// +// Exported function prototypes. +// +//***************************************************************************** +void io_init(void); +void io_set_led(bool bOn); +void io_get_ledstate(char *pcBuf, int iBufLen); +void io_set_animation_speed_string(char *pcBuf); +void io_get_animation_speed_string(char *pcBuf, int iBufLen); +void io_set_animation_speed(unsigned long ulSpeedPercent); +unsigned long io_get_animation_speed(void); +int io_is_led_on(void); + +#ifdef __cplusplus +} +#endif + +#endif // __IO_H__ diff --git a/boards/ek-tm4c1294xl/enet_io/io_fs.c b/boards/ek-tm4c1294xl/enet_io/io_fs.c new file mode 100644 index 0000000..e3a45ce --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/io_fs.c @@ -0,0 +1,317 @@ +//***************************************************************************** +// +// io_fs.c - File System Processing for enet_io application. +// +// Copyright (c) 2007-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#include +#include +#include +#include "inc/hw_types.h" +#include "inc/hw_memmap.h" +#include "driverlib/rom.h" +#include "driverlib/ssi.h" +#include "utils/lwiplib.h" +#include "utils/ustdlib.h" +#include "httpserver_raw/httpd.h" +#include "httpserver_raw/fs.h" +#include "httpserver_raw/fsdata.h" +#include "io.h" + +//***************************************************************************** +// +// Include the web file system data for this application. This file is +// generated by the makefsfile utility, using the following command: +// +// ../../../../tools/bin/makefsfile -i fs -o io_fsdata.h -r -h -q +// +// If any changes are made to the static content of the web pages served by the +// application, this script must be used to regenerate io_fsdata.h in order +// for those changes to be picked up by the web server. +// +//***************************************************************************** +#include "io_fsdata.h" + +//***************************************************************************** +// +// Open a file and return a handle to the file, if found. Otherwise, +// return NULL. This function also looks for special file names used to +// provide specific status information or to control various subsystems. +// These file names are used by the JavaScript on the "IO Control Demo 1" +// example web page. +// +//***************************************************************************** +struct fs_file * +fs_open(const char *pcName) +{ + const struct fsdata_file *psTree; + struct fs_file *psFile = NULL; + + // + // Allocate memory for the file system structure. + // + psFile = mem_malloc(sizeof(struct fs_file)); + if(psFile == NULL) + { + return(NULL); + } + + // + // Process request to toggle STATUS LED + // + if(ustrncmp(pcName, "/cgi-bin/toggle_led", 19) == 0) + { + static char pcBuf[4]; + + // + // Toggle the STATUS LED + // + io_set_led(!io_is_led_on()); + + // + // Get the new state of the LED + // + io_get_ledstate(pcBuf, 4); + + psFile->data = pcBuf; + psFile->len = strlen(pcBuf); + psFile->index = psFile->len; + psFile->pextension = NULL; + + // + // Return the psFile system pointer. + // + return(psFile); + } + + // + // Request for LED State? + // + else if(ustrncmp(pcName, "/ledstate", 9) == 0) + { + static char pcBuf[4]; + + // + // Get the state of the LED + // + io_get_ledstate(pcBuf, 4); + + psFile->data = pcBuf; + psFile->len = strlen(pcBuf); + psFile->index = psFile->len; + psFile->pextension = NULL; + return(psFile); + } + // + // Request for the animation speed? + // + else if(ustrncmp(pcName, "/get_speed", 10) == 0) + { + static char pcBuf[6]; + + // + // Get the current animation speed as a string. + // + io_get_animation_speed_string(pcBuf, 6); + + psFile->data = pcBuf; + psFile->len = strlen(pcBuf); + psFile->index = psFile->len; + psFile->pextension = NULL; + return(psFile); + } + // + // Set the animation speed? + // + else if(ustrncmp(pcName, "/cgi-bin/set_speed?percent=", 12) == 0) + { + static char pcBuf[6]; + + // + // Extract the parameter and set the actual speed requested. + // + io_set_animation_speed_string((char*)pcName + 27); + + // + // Get the current speed setting as a string to send back. + // + io_get_animation_speed_string(pcBuf, 6); + + psFile->data = pcBuf; + psFile->len = strlen(pcBuf); + psFile->index = psFile->len; + psFile->pextension = NULL; + return(psFile); + } + // + // If I can't find it there, look in the rest of the main psFile system + // + else + { + // + // Initialize the psFile system tree pointer to the root of the linked + // list. + // + psTree = FS_ROOT; + + // + // Begin processing the linked list, looking for the requested file name. + // + while(NULL != psTree) + { + // + // Compare the requested file "pcName" to the file name in the + // current node. + // + if(ustrncmp(pcName, (char *)psTree->name, psTree->len) == 0) + { + // + // Fill in the data pointer and length values from the + // linked list node. + // + psFile->data = (char *)psTree->data; + psFile->len = psTree->len; + + // + // For now, we setup the read index to the end of the file, + // indicating that all data has been read. + // + psFile->index = psTree->len; + + // + // We are not using any file system extensions in this + // application, so set the pointer to NULL. + // + psFile->pextension = NULL; + + // + // Exit the loop and return the file system pointer. + // + break; + } + + // + // If we get here, we did not find the file at this node of the + // linked list. Get the next element in the list. + // + psTree = psTree->next; + } + } + + // + // If we didn't find the file, ptTee will be NULL. Make sure we + // return a NULL pointer if this happens. + // + if(NULL == psTree) + { + mem_free(psFile); + psFile = NULL; + } + + // + // Return the file system pointer. + // + return(psFile); +} + +//***************************************************************************** +// +// Close an opened file designated by the handle. +// +//***************************************************************************** +void +fs_close(struct fs_file *psFile) +{ + // + // Free the main psFile system object. + // + mem_free(psFile); +} + +//***************************************************************************** +// +// Read the next chunk of data from the file. Return the iCount of data +// that was read. Return 0 if no data is currently available. Return +// a -1 if at the end of file. +// +//***************************************************************************** +int +fs_read(struct fs_file *psFile, char *pcBuffer, int iCount) +{ + int iAvailable; + + // + // Check to see if a command (pextension = 1). + // + if(psFile->pextension == (void *)1) + { + // + // Nothing to do for this file type. + // + psFile->pextension = NULL; + return(-1); + } + + // + // Check to see if more data is available. + // + if(psFile->len == psFile->index) + { + // + // There is no remaining data. Return a -1 for EOF indication. + // + return(-1); + } + + // + // Determine how much data we can copy. The minimum of the 'iCount' + // parameter or the available data in the file system buffer. + // + iAvailable = psFile->len - psFile->index; + if(iAvailable > iCount) + { + iAvailable = iCount; + } + + // + // Copy the data. + // + memcpy(pcBuffer, psFile->data + iAvailable, iAvailable); + psFile->index += iAvailable; + + // + // Return the count of data that we copied. + // + return(iAvailable); +} + +//***************************************************************************** +// +// Determine the number of bytes left to read from the file. +// +//***************************************************************************** +int +fs_bytes_left(struct fs_file *psFile) +{ + // + // Return the number of bytes left to be read from this file. + // + return(psFile->len - psFile->index); +} diff --git a/boards/ek-tm4c1294xl/enet_io/io_fsdata.h b/boards/ek-tm4c1294xl/enet_io/io_fsdata.h new file mode 100644 index 0000000..72bbada --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/io_fsdata.h @@ -0,0 +1,33421 @@ +//*************************************************************************** +// +// File System Image. +// +// This file was automatically generated using the makefsfile utility. +// +//*************************************************************************** + +static const uint8_t data_404_htm[] = +{ + /* /404.htm */ + 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, + 0x00, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x6d, 0x65, + 0x74, 0x61, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, + 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x22, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3b, + 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, + 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, 0x3e, 0x0a, + 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, + 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, + 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x0a, + 0x3c, 0x68, 0x31, 0x3e, 0x34, 0x30, 0x34, 0x20, + 0x2d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, + 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x0a, 0x3c, 0x68, + 0x33, 0x3e, 0x54, 0x72, 0x79, 0x20, 0x3c, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, + 0x22, 0x3e, 0x68, 0x65, 0x72, 0x65, 0x3c, 0x2f, + 0x61, 0x3e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, + 0x61, 0x64, 0x2e, 0x3c, 0x2f, 0x68, 0x33, 0x3e, + 0x0a, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x3e, 0x0a, 0x3c, 0x2f, 0x62, 0x6f, 0x64, + 0x79, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, + 0x6c, 0x3e, 0x0a, +}; + +static const uint8_t data_about_htm[] = +{ + /* /about.htm */ + 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, + 0x74, 0x6d, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0a, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x3e, 0x45, 0x4b, 0x2d, 0x54, + 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, + 0x4c, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4b, 0x69, 0x74, + 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, + 0x0a, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x68, + 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, 0x75, 0x69, + 0x76, 0x3d, 0x22, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, + 0x74, 0x6d, 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x72, + 0x73, 0x65, 0x74, 0x3d, 0x55, 0x54, 0x46, 0x2d, + 0x38, 0x22, 0x3e, 0x0a, 0x3c, 0x6c, 0x69, 0x6e, + 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, + 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, + 0x73, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2e, + 0x63, 0x73, 0x73, 0x22, 0x2f, 0x3e, 0x0a, 0x3c, + 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, + 0x3d, 0x22, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, + 0x75, 0x74, 0x20, 0x69, 0x63, 0x6f, 0x6e, 0x22, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x69, + 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x66, 0x61, 0x76, 0x69, 0x63, + 0x6f, 0x6e, 0x2e, 0x69, 0x63, 0x6f, 0x22, 0x2f, + 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x0a, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x0a, 0x3c, 0x70, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x22, + 0x3e, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x54, + 0x65, 0x78, 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, + 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x3c, 0x68, 0x72, + 0x3e, 0x0a, 0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x54, + 0x65, 0x78, 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, + 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x20, 0x28, 0x54, 0x49, 0x29, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x20, 0x67, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x0a, 0x3c, 0x61, 0x20, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2f, 0x67, + 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x2e, 0x74, 0x73, 0x70, 0x3f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x3d, + 0x32, 0x39, 0x35, 0x36, 0x36, 0x22, 0x3e, 0x61, + 0x6e, 0x61, 0x6c, 0x6f, 0x67, 0x3c, 0x2f, 0x61, + 0x3e, 0x0a, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x69, + 0x67, 0x69, 0x74, 0x61, 0x6c, 0x0a, 0x3c, 0x61, + 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, + 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x2f, 0x64, 0x6f, 0x63, + 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, + 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x73, + 0x65, 0x6d, 0x69, 0x63, 0x6f, 0x6e, 0x64, 0x75, + 0x63, 0x74, 0x6f, 0x72, 0x20, 0x49, 0x43, 0x20, + 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x3c, 0x2f, + 0x61, 0x3e, 0x0a, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, + 0x72, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x2e, 0x20, 0x49, 0x6e, + 0x20, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x61, + 0x6c, 0x6f, 0x67, 0x20, 0x74, 0x65, 0x63, 0x68, + 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, + 0x2c, 0x0a, 0x3c, 0x61, 0x20, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x64, 0x73, 0x70, 0x2f, 0x64, 0x6f, + 0x63, 0x73, 0x2f, 0x64, 0x73, 0x70, 0x68, 0x6f, + 0x6d, 0x65, 0x2e, 0x74, 0x73, 0x70, 0x3f, 0x73, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x3d, 0x34, 0x36, 0x22, 0x3e, 0x64, 0x69, 0x67, + 0x69, 0x74, 0x61, 0x6c, 0x20, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x28, + 0x44, 0x53, 0x50, 0x29, 0x3c, 0x2f, 0x61, 0x3e, + 0x0a, 0x61, 0x6e, 0x64, 0x0a, 0x3c, 0x61, 0x20, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, + 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2e, 0x74, 0x69, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x63, 0x75, + 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2f, 0x6d, 0x63, + 0x75, 0x68, 0x6f, 0x6d, 0x65, 0x2e, 0x74, 0x73, + 0x70, 0x3f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x3d, 0x31, 0x30, 0x31, 0x22, + 0x3e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x20, 0x28, 0x4d, 0x43, 0x55, 0x29, 0x3c, 0x2f, + 0x61, 0x3e, 0x0a, 0x73, 0x65, 0x6d, 0x69, 0x63, + 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x2c, 0x20, 0x54, 0x49, 0x20, 0x64, 0x65, + 0x73, 0x69, 0x67, 0x6e, 0x73, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, + 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20, 0x73, + 0x65, 0x6d, 0x69, 0x63, 0x6f, 0x6e, 0x64, 0x75, + 0x63, 0x74, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x61, 0x6c, 0x6f, + 0x67, 0x0a, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x69, + 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x65, 0x6d, + 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x2e, 0x20, 0x49, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, + 0x0a, 0x54, 0x49, 0x20, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, + 0x72, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x74, 0x20, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x6f, 0x66, + 0x20, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, + 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x73, 0x2c, 0x20, 0x66, 0x72, 0x6f, 0x6d, + 0x20, 0x75, 0x6c, 0x74, 0x72, 0x61, 0x2d, 0x6c, + 0x6f, 0x77, 0x2d, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x0a, 0x3c, 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x6d, 0x63, 0x75, 0x2f, 0x64, 0x6f, 0x63, + 0x73, 0x2f, 0x6d, 0x63, 0x75, 0x70, 0x72, 0x6f, + 0x64, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, + 0x77, 0x2e, 0x74, 0x73, 0x70, 0x3f, 0x73, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3d, + 0x39, 0x35, 0x26, 0x74, 0x61, 0x62, 0x49, 0x64, + 0x3d, 0x31, 0x34, 0x30, 0x26, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x49, 0x64, 0x3d, 0x33, 0x34, + 0x32, 0x22, 0x3e, 0x4d, 0x53, 0x50, 0x34, 0x33, + 0x30, 0x26, 0x74, 0x72, 0x61, 0x64, 0x65, 0x3b, + 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x4d, 0x43, 0x55, + 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x69, + 0x67, 0x68, 0x2d, 0x70, 0x65, 0x72, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x0a, 0x3c, + 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2e, + 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, + 0x63, 0x75, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2f, + 0x6d, 0x63, 0x75, 0x70, 0x72, 0x6f, 0x64, 0x6f, + 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x2e, + 0x74, 0x73, 0x70, 0x3f, 0x73, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3d, 0x39, 0x35, + 0x26, 0x74, 0x61, 0x62, 0x49, 0x64, 0x3d, 0x31, + 0x35, 0x33, 0x31, 0x26, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x49, 0x64, 0x3d, 0x39, 0x31, 0x36, + 0x22, 0x3e, 0x54, 0x4d, 0x53, 0x33, 0x32, 0x30, + 0x43, 0x32, 0x30, 0x30, 0x30, 0x26, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x3b, 0x3c, 0x2f, 0x61, 0x3e, + 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x2d, 0x74, 0x69, + 0x6d, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2c, 0x20, + 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x33, + 0x32, 0x20, 0x62, 0x69, 0x74, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x2d, 0x70, 0x75, + 0x72, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x41, 0x52, + 0x4d, 0x26, 0x72, 0x65, 0x67, 0x3b, 0x2d, 0x62, + 0x61, 0x73, 0x65, 0x64, 0x20, 0x4d, 0x43, 0x55, + 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x0a, 0x3c, 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, + 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, + 0x73, 0x64, 0x73, 0x2f, 0x74, 0x69, 0x2f, 0x6d, + 0x69, 0x63, 0x72, 0x6f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x74, + 0x69, 0x76, 0x61, 0x5f, 0x61, 0x72, 0x6d, 0x5f, + 0x63, 0x6f, 0x72, 0x74, 0x65, 0x78, 0x2f, 0x63, + 0x5f, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2f, + 0x74, 0x6d, 0x34, 0x63, 0x5f, 0x61, 0x72, 0x6d, + 0x5f, 0x63, 0x6f, 0x72, 0x74, 0x65, 0x78, 0x2d, + 0x6d, 0x34, 0x2f, 0x6f, 0x76, 0x65, 0x72, 0x76, + 0x69, 0x65, 0x77, 0x2e, 0x70, 0x61, 0x67, 0x65, + 0x22, 0x3e, 0x54, 0x69, 0x76, 0x61, 0x26, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x3b, 0x20, 0x43, 0x20, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x3c, 0x2f, + 0x61, 0x3e, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x20, 0x52, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x6f, + 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, + 0x20, 0x75, 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x77, 0x65, 0x62, 0x20, 0x61, + 0x74, 0x0a, 0x3c, 0x61, 0x20, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, + 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x22, 0x3e, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, + 0x2e, 0x63, 0x6f, 0x6d, 0x3c, 0x2f, 0x61, 0x3e, + 0x2e, 0x0a, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, + 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, + 0x3e, 0x0a, +}; + +static const uint8_t data_block_htm[] = +{ + /* /block.htm */ + 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x68, + 0x74, 0x6d, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0a, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x6d, 0x65, + 0x74, 0x61, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, + 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x22, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3b, + 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, + 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, 0x3e, 0x0a, + 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x45, + 0x4b, 0x2d, 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, + 0x39, 0x34, 0x58, 0x4c, 0x20, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x4b, 0x69, 0x74, 0x3c, 0x2f, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0x0a, 0x3c, 0x6c, 0x69, 0x6e, + 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, + 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, + 0x73, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2e, + 0x63, 0x73, 0x73, 0x22, 0x2f, 0x3e, 0x0a, 0x3c, + 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, + 0x3d, 0x22, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, + 0x75, 0x74, 0x20, 0x69, 0x63, 0x6f, 0x6e, 0x22, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x69, + 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x66, 0x61, 0x76, 0x69, 0x63, + 0x6f, 0x6e, 0x2e, 0x69, 0x63, 0x6f, 0x22, 0x2f, + 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x0a, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x0a, 0x3c, 0x70, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x22, + 0x3e, 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, + 0x34, 0x4e, 0x43, 0x50, 0x44, 0x54, 0x20, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x44, 0x69, 0x61, + 0x67, 0x72, 0x61, 0x6d, 0x3c, 0x2f, 0x70, 0x3e, + 0x0a, 0x3c, 0x68, 0x72, 0x3e, 0x0a, 0x3c, 0x62, + 0x72, 0x3e, 0x0a, 0x3c, 0x63, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x3e, 0x0a, 0x3c, 0x69, 0x6d, 0x67, + 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x6a, 0x70, 0x67, 0x22, + 0x2f, 0x3e, 0x0a, 0x3c, 0x2f, 0x63, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x3e, 0x0a, 0x3c, 0x2f, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, + 0x74, 0x6d, 0x6c, 0x3e, 0x0a, +}; + +static const uint8_t data_block_jpg[] = +{ + /* /block.jpg */ + 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x6a, + 0x70, 0x67, 0x00, + 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, + 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0xf0, + 0x00, 0xf0, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x13, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, 0x49, 0x4d, + 0x50, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xdb, + 0x00, 0x43, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0xff, 0xc2, 0x00, 0x11, 0x08, + 0x01, 0xec, 0x02, 0x68, 0x03, 0x01, 0x11, 0x00, + 0x02, 0x11, 0x01, 0x03, 0x11, 0x01, 0xff, 0xc4, + 0x00, 0x1e, 0x00, 0x01, 0x00, 0x01, 0x04, 0x03, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x05, 0x07, + 0x08, 0x01, 0x02, 0x03, 0x09, 0x0a, 0xff, 0xc4, + 0x00, 0x1d, 0x01, 0x01, 0x00, 0x01, 0x04, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x03, 0x04, 0x06, + 0x07, 0x01, 0x02, 0x08, 0x09, 0xff, 0xda, 0x00, + 0x0c, 0x03, 0x01, 0x00, 0x02, 0x10, 0x03, 0x10, + 0x00, 0x00, 0x01, 0xfb, 0xf0, 0x63, 0x52, 0x98, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xb8, 0x99, 0x10, 0xb1, 0x98, + 0xb8, 0xc8, 0xe0, 0x00, 0x00, 0x00, 0xe4, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x72, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x63, 0x23, 0x30, 0x96, 0xd3, 0x17, 0x99, 0x28, + 0xd4, 0xc3, 0xe5, 0xb1, 0xbe, 0xe6, 0x95, 0x9f, + 0x55, 0x0f, 0x9f, 0x86, 0xce, 0x15, 0xa6, 0xb6, + 0x97, 0xb3, 0x72, 0xcf, 0x94, 0x47, 0xd9, 0xe3, + 0x40, 0x4b, 0x81, 0x8f, 0xcc, 0xf2, 0x64, 0x33, + 0x0d, 0x9f, 0x3e, 0x4f, 0xbd, 0x86, 0x81, 0x98, + 0xb8, 0xad, 0x2f, 0x84, 0xd4, 0xa5, 0x35, 0x20, + 0xcc, 0x26, 0xda, 0x1f, 0x36, 0x4f, 0xa5, 0xe6, + 0xe6, 0x00, 0x00, 0x00, 0x02, 0xc0, 0x79, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x05, 0x50, 0x00, + 0x1e, 0x60, 0xf4, 0x00, 0x03, 0xb1, 0x05, 0x33, + 0x31, 0x44, 0x62, 0xd3, 0x25, 0x03, 0xe4, 0xc1, + 0xf4, 0x00, 0xf8, 0xac, 0x6f, 0xc9, 0xaf, 0x25, + 0x31, 0x9c, 0xc8, 0xc9, 0xf5, 0x5c, 0x8b, 0x9f, + 0x38, 0xcf, 0xa9, 0x06, 0x86, 0x1e, 0xe6, 0xb9, + 0x18, 0xc0, 0x9a, 0x12, 0x32, 0x3e, 0x7a, 0x18, + 0x60, 0xfa, 0xca, 0x67, 0x23, 0xe4, 0xc9, 0x3f, + 0x32, 0xe1, 0x82, 0x4d, 0xf1, 0x35, 0x94, 0xc3, + 0xa7, 0xd6, 0x70, 0x00, 0x00, 0x00, 0x0c, 0x7a, + 0x69, 0xd9, 0x75, 0x3b, 0x9e, 0xc7, 0x62, 0x8c, + 0x90, 0x90, 0x72, 0x66, 0x58, 0x8b, 0xe9, 0xb3, + 0xe0, 0x03, 0xc4, 0xa4, 0x35, 0xa4, 0xc9, 0xe7, + 0x63, 0x2b, 0x17, 0x83, 0xb1, 0xaf, 0x04, 0x60, + 0x92, 0x17, 0x53, 0x28, 0x97, 0xe2, 0x20, 0x66, + 0x72, 0x88, 0xc5, 0x86, 0x49, 0x07, 0xcd, 0xf3, + 0x73, 0x4d, 0x45, 0x20, 0x25, 0xd4, 0xcd, 0x84, + 0x14, 0xc5, 0xc7, 0x43, 0x75, 0xcd, 0x7c, 0x36, + 0x4c, 0xf9, 0x42, 0x7d, 0x2a, 0x35, 0x78, 0xc8, + 0x66, 0x57, 0x35, 0xc8, 0x93, 0x17, 0x62, 0x8c, + 0xc1, 0xa7, 0x91, 0x95, 0xcf, 0xa5, 0x27, 0xa9, + 0xf0, 0xcc, 0xca, 0x87, 0xd4, 0x63, 0x43, 0x0f, + 0xa4, 0x00, 0x00, 0x00, 0x00, 0x18, 0xec, 0x83, + 0x98, 0xa0, 0xaf, 0x31, 0xc9, 0x2b, 0x2f, 0x64, + 0x40, 0xbc, 0x82, 0xbc, 0xb7, 0x9b, 0x3a, 0x00, + 0x3c, 0x8a, 0xf2, 0x00, 0x4a, 0x8e, 0xc7, 0xa9, + 0x7a, 0x3b, 0x11, 0xe2, 0x14, 0x49, 0x0b, 0xe1, + 0x6f, 0x24, 0x64, 0x5c, 0xcd, 0x05, 0x11, 0x8b, + 0x0c, 0x92, 0x0c, 0x55, 0x17, 0x9d, 0x6b, 0xec, + 0x26, 0xd1, 0xf2, 0xe3, 0xb8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x2e, 0x32, 0x94, 0x8e, 0x1b, + 0xb1, 0x53, 0xfa, 0x93, 0x83, 0xcc, 0x85, 0x14, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x0e, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x17, 0xe2, 0x52, 0x63, 0x53, 0x34, + 0x14, 0x46, 0x2a, 0x32, 0x41, 0x8c, 0xa3, 0x73, + 0x6f, 0xcd, 0x0e, 0x81, 0xfa, 0xf1, 0x6a, 0xa7, + 0x7b, 0xcb, 0x8e, 0x4e, 0x1c, 0xdc, 0x7b, 0xda, + 0x5f, 0xeb, 0x46, 0x43, 0x6d, 0xa7, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x7d, 0xe3, 0xdc, 0x7f, 0x35, + 0x37, 0x7b, 0x31, 0xf3, 0x76, 0x0f, 0xb9, 0x8b, + 0xc4, 0x5b, 0x17, 0xce, 0x9e, 0x15, 0x2d, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x91, + 0xe2, 0x9b, 0x62, 0xcd, 0x8c, 0x6d, 0x1b, 0xa6, + 0x67, 0xa5, 0xac, 0x13, 0xfa, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0xe9, 0xc5, 0x49, + 0x06, 0x03, 0xbf, 0x73, 0x74, 0x66, 0x51, 0x42, + 0x66, 0xa2, 0x88, 0xc5, 0x26, 0x48, 0x35, 0xb3, + 0x1e, 0xdc, 0x3f, 0x9d, 0x2d, 0x19, 0xf5, 0x6f, + 0x73, 0x32, 0x7d, 0x0b, 0x37, 0xbb, 0xc7, 0xae, + 0x75, 0x2d, 0x06, 0x49, 0xbe, 0xc5, 0x75, 0xa6, + 0x0b, 0x6b, 0xe9, 0xb6, 0x31, 0xbe, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x7d, 0x91, 0xda, 0x5e, 0x06, + 0xfa, 0x61, 0xb0, 0xbc, 0x79, 0xa5, 0xb9, 0xbe, + 0x8f, 0xd6, 0x9d, 0xbd, 0xe3, 0xe0, 0x00, 0x03, + 0x3e, 0x62, 0xbb, 0x5f, 0xd3, 0xaf, 0x7c, 0x7d, + 0x2f, 0x87, 0xdc, 0xa9, 0x5e, 0x58, 0x6e, 0x62, + 0xfd, 0xfa, 0xd5, 0xe1, 0xc4, 0x7a, 0xee, 0x26, + 0xcf, 0x71, 0x1e, 0x00, 0x03, 0x2c, 0x63, 0xbb, + 0x17, 0x32, 0x68, 0xbf, 0x76, 0x6b, 0x17, 0xa2, + 0xfe, 0x72, 0xd8, 0x2e, 0xe2, 0x06, 0x6c, 0xc6, + 0x76, 0x6d, 0x35, 0x5b, 0x7b, 0x05, 0xdc, 0x3c, + 0x66, 0xf6, 0x16, 0x55, 0x63, 0x3b, 0x45, 0x52, + 0xde, 0xfb, 0x69, 0x2d, 0x45, 0x52, 0xda, 0xe3, + 0x46, 0xf6, 0x63, 0x1d, 0x91, 0x62, 0xe9, 0xec, + 0x0e, 0x86, 0xa5, 0xb4, 0xc6, 0x3b, 0x24, 0xe1, + 0xc5, 0xa6, 0xe6, 0x36, 0x8a, 0xa5, 0xb4, 0x5a, + 0xf6, 0x12, 0xdb, 0x5a, 0xcc, 0x6c, 0x06, 0xb6, + 0xf4, 0xae, 0x6b, 0xd6, 0x7e, 0x9c, 0x96, 0x19, + 0xac, 0xa2, 0x31, 0x49, 0x92, 0x0d, 0x6c, 0xc7, + 0xb7, 0x0f, 0xe7, 0x4b, 0x46, 0x7d, 0x5b, 0xdb, + 0x8c, 0x93, 0x48, 0xcc, 0xae, 0x60, 0x71, 0x04, + 0x6e, 0x71, 0x9f, 0xe6, 0x35, 0xae, 0x05, 0x88, + 0xd8, 0xfa, 0xdf, 0x07, 0xb5, 0x8e, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x7d, 0x91, 0xda, 0x5e, 0x06, + 0xfa, 0x61, 0xb0, 0xbc, 0x79, 0xa1, 0x59, 0x8e, + 0x98, 0xd3, 0xdd, 0xa3, 0xe5, 0x80, 0x00, 0x03, + 0x7f, 0x75, 0xe7, 0xa3, 0x2f, 0x76, 0xd2, 0x57, + 0x7a, 0x57, 0x58, 0x76, 0x67, 0x0c, 0xc9, 0xd1, + 0x79, 0x47, 0x77, 0x6c, 0x49, 0x31, 0x86, 0xeb, + 0x0e, 0x53, 0xaa, 0x23, 0x57, 0x71, 0x20, 0x00, + 0x33, 0x44, 0x16, 0x77, 0xb4, 0x9a, 0x67, 0xda, + 0x7a, 0x29, 0xbe, 0xbc, 0x07, 0x1e, 0xb9, 0x8d, + 0x1b, 0x55, 0x88, 0xee, 0x1a, 0xca, 0x57, 0x57, + 0x7e, 0x95, 0xf3, 0x04, 0x2e, 0x6b, 0x1f, 0xaf, + 0x1f, 0x8d, 0xa5, 0x31, 0x7b, 0x55, 0x7b, 0x09, + 0x3d, 0xac, 0xac, 0x1a, 0xff, 0x00, 0x1f, 0x9a, + 0xd9, 0x4d, 0xdc, 0x28, 0xde, 0x48, 0x2d, 0xa5, + 0x2b, 0x29, 0xdc, 0x46, 0xef, 0x21, 0xe4, 0xf6, + 0x73, 0x31, 0xdb, 0xa8, 0x9d, 0x6b, 0xc9, 0xf5, + 0x76, 0x24, 0x98, 0xc3, 0x46, 0xd2, 0x60, 0x3e, + 0x81, 0xd9, 0x6d, 0x77, 0xe8, 0xd9, 0x61, 0x9a, + 0xca, 0x23, 0x13, 0x99, 0x1c, 0xd6, 0xdc, 0x7b, + 0x70, 0xfe, 0x75, 0x34, 0x67, 0xd5, 0xbe, 0xee, + 0x87, 0x3d, 0x1d, 0xb9, 0x71, 0xc3, 0x91, 0x53, + 0xcd, 0x1e, 0xae, 0x7c, 0x38, 0xa9, 0xe8, 0xea, + 0x39, 0xe7, 0x8f, 0x6e, 0x7a, 0x52, 0x75, 0xae, + 0x00, 0x00, 0x7d, 0x90, 0xda, 0x5e, 0x06, 0xfa, + 0x5d, 0xb0, 0xbc, 0x79, 0xa7, 0x12, 0x58, 0xd6, + 0x9a, 0xec, 0x4f, 0x3b, 0x5b, 0xfb, 0xd2, 0x00, + 0x01, 0xd1, 0xc7, 0x27, 0x07, 0x27, 0x00, 0xcd, + 0x11, 0x59, 0x5e, 0x1a, 0x95, 0xc5, 0x40, 0x00, + 0x0d, 0x91, 0xc6, 0xb6, 0x4e, 0x52, 0xc2, 0xf7, + 0x56, 0x04, 0xd8, 0x3e, 0x7b, 0xc2, 0xf3, 0x18, + 0x80, 0xe1, 0xc1, 0xcf, 0x0e, 0x00, 0x03, 0x93, + 0x80, 0x00, 0x38, 0x06, 0xc5, 0x42, 0x67, 0x18, + 0x56, 0x57, 0x14, 0xb1, 0x56, 0xb3, 0xf5, 0xe3, + 0x9d, 0xc0, 0xc1, 0x77, 0xae, 0x61, 0x81, 0xcf, + 0x65, 0x66, 0x6d, 0x28, 0x8c, 0x4e, 0x64, 0x63, + 0x5b, 0x71, 0xed, 0xc3, 0xf9, 0xd5, 0xd1, 0x9f, + 0x56, 0xf6, 0xe3, 0x24, 0xd2, 0x34, 0xfd, 0x6a, + 0x53, 0xf1, 0x5b, 0x37, 0xca, 0xeb, 0xdc, 0x43, + 0x1b, 0x9b, 0xf8, 0x75, 0xa9, 0x11, 0xb6, 0x9b, + 0xdc, 0xfc, 0xa7, 0x42, 0xfc, 0xc2, 0xc0, 0x7d, + 0x79, 0xf4, 0x47, 0x35, 0xf2, 0xed, 0x57, 0x7a, + 0x37, 0xca, 0x91, 0xf8, 0x56, 0x2f, 0x3e, 0xd1, + 0xcc, 0x4f, 0xd1, 0x00, 0x00, 0x07, 0xd9, 0x0d, + 0xa5, 0xe0, 0x6f, 0xa5, 0xbb, 0x0b, 0xc7, 0x9a, + 0x9a, 0x69, 0x09, 0x01, 0x00, 0x03, 0x23, 0x14, + 0xc6, 0x51, 0x3d, 0x08, 0x39, 0x5a, 0x47, 0x09, + 0x41, 0x8a, 0x8b, 0x40, 0x00, 0x03, 0x7e, 0x4b, + 0x81, 0x8a, 0x8d, 0x4b, 0x00, 0x9f, 0x92, 0xf2, + 0x2e, 0x77, 0x38, 0x2b, 0x0a, 0x62, 0x80, 0xbf, + 0x16, 0x63, 0x28, 0x18, 0xd4, 0x90, 0x11, 0x32, + 0x08, 0x00, 0x3e, 0x8b, 0x93, 0xd2, 0x56, 0x66, + 0xd2, 0x88, 0xc4, 0x86, 0x44, 0x35, 0xc3, 0x1e, + 0xdc, 0x3f, 0x9d, 0x7d, 0x19, 0xf5, 0x6f, 0x65, + 0x27, 0x75, 0x36, 0x4a, 0xbe, 0xc4, 0xfc, 0xb8, + 0xa9, 0x1e, 0xa1, 0x27, 0x93, 0x2f, 0xf1, 0x28, + 0xfd, 0x19, 0x3d, 0x2c, 0xc5, 0xb7, 0xed, 0xbb, + 0xa5, 0xd6, 0x59, 0x91, 0xc2, 0xf6, 0xf7, 0x25, + 0xd1, 0xf8, 0xfa, 0xcf, 0x25, 0xc8, 0x17, 0x98, + 0xd7, 0xcf, 0x6c, 0x2f, 0xd3, 0xb4, 0x7d, 0x6e, + 0x00, 0x00, 0x0f, 0xb2, 0x5b, 0x4f, 0xc0, 0x9f, + 0x49, 0xf6, 0x0f, 0x8f, 0xb5, 0x44, 0xd2, 0x52, + 0x04, 0x00, 0x04, 0x98, 0xab, 0x32, 0x49, 0x48, + 0x40, 0x09, 0x51, 0x2f, 0x2c, 0x44, 0x14, 0x86, + 0x80, 0x00, 0x37, 0xd4, 0xaf, 0x31, 0x61, 0xa9, + 0xc0, 0x13, 0x52, 0xa0, 0x9b, 0x9e, 0x05, 0xd4, + 0xee, 0x5a, 0xcc, 0x7e, 0x4c, 0xcb, 0x91, 0x24, + 0x28, 0x4a, 0x02, 0x22, 0x63, 0x00, 0x01, 0xf4, + 0x48, 0x9d, 0x92, 0xa3, 0x38, 0x14, 0x46, 0x24, + 0x32, 0x21, 0xae, 0x18, 0xf6, 0xe1, 0xfc, 0xeb, + 0xe8, 0xcf, 0xab, 0x7e, 0x9c, 0xf4, 0x1e, 0x7c, + 0x77, 0xec, 0xeb, 0xd5, 0xdb, 0xbb, 0xa7, 0xb7, + 0x3d, 0x38, 0x3c, 0x38, 0xab, 0xe9, 0xcf, 0x4f, + 0x6e, 0x7a, 0x78, 0x71, 0x53, 0xcf, 0x8e, 0xe0, + 0x00, 0x00, 0xfb, 0x2d, 0xb5, 0x3c, 0x05, 0xf4, + 0x8f, 0x60, 0x79, 0x03, 0x54, 0x4c, 0x10, 0x44, + 0x00, 0x04, 0xc8, 0xf5, 0x3a, 0x16, 0x12, 0x54, + 0x45, 0x09, 0x09, 0x6f, 0x3d, 0xce, 0x08, 0x91, + 0xc8, 0x00, 0x1b, 0x44, 0x50, 0x11, 0x2b, 0x59, + 0xbd, 0x57, 0x85, 0xda, 0x02, 0x65, 0x2d, 0xaf, + 0xa5, 0xf7, 0xd8, 0xac, 0x7c, 0xe0, 0xf1, 0x3d, + 0xc9, 0x49, 0x0f, 0x2e, 0xa5, 0xa8, 0xb9, 0x9c, + 0x15, 0x27, 0x89, 0x6a, 0x00, 0xf6, 0x3c, 0x4d, + 0xb5, 0x25, 0xe4, 0xa8, 0xce, 0x05, 0x11, 0x88, + 0x4c, 0x86, 0x6b, 0x8e, 0x3d, 0xb8, 0x7f, 0x3b, + 0x5a, 0x33, 0xea, 0xde, 0xc8, 0xce, 0x6a, 0x8c, + 0xd3, 0x2b, 0x80, 0x6b, 0xcc, 0x26, 0xd0, 0xd9, + 0x79, 0xed, 0x4d, 0xac, 0xd0, 0x3b, 0x6f, 0x2a, + 0x48, 0x61, 0xb7, 0x4a, 0x96, 0x59, 0x16, 0xfb, + 0x17, 0xd4, 0x4c, 0x6b, 0x77, 0xed, 0xe6, 0x4b, + 0xa4, 0x32, 0x1d, 0xee, 0x2d, 0xaf, 0xf0, 0xdb, + 0x32, 0x0b, 0x69, 0x91, 0xea, 0xb6, 0x3d, 0xb9, + 0x40, 0x00, 0x0f, 0xb2, 0x9b, 0x53, 0xc0, 0x5f, + 0x48, 0x76, 0x07, 0x90, 0x35, 0x54, 0xd2, 0xf2, + 0x08, 0x00, 0x32, 0x89, 0x91, 0x4a, 0x32, 0xf4, + 0x43, 0x8f, 0x02, 0x78, 0x45, 0xcc, 0x80, 0x5c, + 0x8d, 0x2a, 0x3b, 0x80, 0x01, 0xbd, 0x85, 0x61, + 0xaa, 0xd8, 0x67, 0xa5, 0x75, 0x5f, 0x5f, 0x7b, + 0x0a, 0x87, 0xa5, 0xc4, 0x9b, 0x32, 0xf3, 0x66, + 0xdf, 0xec, 0x5f, 0x19, 0xe4, 0x23, 0xc8, 0x8a, + 0x90, 0xd2, 0x5c, 0x5f, 0x0f, 0x02, 0xd4, 0x48, + 0x4c, 0x20, 0x65, 0x52, 0xb0, 0xb3, 0x17, 0xd3, + 0xa9, 0x23, 0x35, 0xa0, 0xdd, 0x72, 0x76, 0x4a, + 0x4c, 0xe4, 0x51, 0x18, 0x80, 0xc8, 0x66, 0xb8, + 0xe3, 0xdb, 0x87, 0xf3, 0xb7, 0xa3, 0x3e, 0xad, + 0xe7, 0xf9, 0x8d, 0x67, 0x9c, 0x25, 0xb5, 0xe6, + 0xba, 0xc2, 0x6d, 0x2c, 0x9b, 0x7f, 0x88, 0xe3, + 0x3b, 0x1c, 0xba, 0xc7, 0x46, 0x43, 0x2d, 0xc9, + 0x61, 0x35, 0xdd, 0xed, 0xf5, 0xde, 0x13, 0x68, + 0x67, 0xb9, 0x8d, 0x6f, 0x43, 0xd2, 0xbc, 0x3a, + 0xda, 0x7a, 0x65, 0x75, 0x03, 0xac, 0xd0, 0x3b, + 0x70, 0x00, 0x00, 0xfb, 0x29, 0xb5, 0x3c, 0x05, + 0xf4, 0x83, 0x60, 0x79, 0x03, 0x55, 0x8c, 0x02, + 0x43, 0x80, 0x04, 0xa4, 0xa6, 0x3c, 0x0a, 0x12, + 0x4c, 0x46, 0x8b, 0xc1, 0x4e, 0x78, 0x1e, 0xa5, + 0x94, 0x00, 0x01, 0xb5, 0x25, 0x11, 0x62, 0xb4, + 0x9f, 0xd4, 0x88, 0x5d, 0x9f, 0xe4, 0x4a, 0xe5, + 0x70, 0x09, 0xac, 0x86, 0x21, 0x56, 0x70, 0x79, + 0x96, 0x12, 0xf2, 0x7a, 0x14, 0xe5, 0x41, 0xe4, + 0x59, 0x4a, 0xa2, 0xe2, 0x53, 0x9e, 0x05, 0xcc, + 0xe4, 0xf4, 0x36, 0x0c, 0x99, 0x92, 0x93, 0x39, + 0x94, 0x46, 0x1e, 0x32, 0x19, 0x83, 0xac, 0xf2, + 0x3f, 0x88, 0x38, 0xae, 0xff, 0x00, 0x1e, 0xdc, + 0xd3, 0xf1, 0xe2, 0xa5, 0xdc, 0xec, 0x5b, 0xce, + 0x87, 0x88, 0x07, 0x53, 0x22, 0x98, 0xf0, 0x15, + 0x25, 0x79, 0x4c, 0x52, 0x9e, 0x40, 0xfa, 0x91, + 0x3d, 0xa8, 0xf7, 0xa2, 0x63, 0x5c, 0xea, 0xc9, + 0xa4, 0xa4, 0x08, 0x00, 0x64, 0xa2, 0x90, 0xcc, + 0x47, 0x62, 0x18, 0x5d, 0x41, 0x24, 0x22, 0xa4, + 0xa0, 0x8c, 0x1a, 0xfe, 0x00, 0x06, 0xfa, 0x95, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x32, 0x31, 0x29, 0x33, 0xa1, 0x44, 0x61, + 0xe3, 0x21, 0x9a, 0xe0, 0x7e, 0x75, 0x80, 0x07, + 0xd0, 0xd3, 0xd8, 0x8e, 0x18, 0x60, 0xd7, 0x60, + 0x0e, 0x86, 0xca, 0x1a, 0xdc, 0x79, 0x9f, 0x4e, + 0xcc, 0x8c, 0x62, 0xd3, 0x54, 0x8c, 0x02, 0x0f, + 0xb2, 0xa7, 0xd2, 0x43, 0x56, 0x4d, 0x3b, 0x20, + 0xa0, 0x02, 0x44, 0x54, 0x93, 0x63, 0x82, 0x3a, + 0x56, 0x16, 0x93, 0xc4, 0x98, 0x14, 0xa5, 0x69, + 0x87, 0x80, 0x00, 0xde, 0x22, 0xa4, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x46, + 0x25, 0x26, 0x74, 0x28, 0x8c, 0x3a, 0x64, 0x13, + 0x05, 0x1f, 0x0b, 0x40, 0x04, 0xf0, 0xe0, 0xbd, + 0x94, 0x86, 0x34, 0x00, 0xe8, 0x67, 0xf3, 0x01, + 0x9d, 0x4d, 0x95, 0x23, 0xe4, 0x2c, 0x91, 0x18, + 0x78, 0x1f, 0x55, 0x8d, 0xf3, 0x35, 0x6c, 0xd5, + 0xf2, 0x14, 0x00, 0x00, 0x03, 0x2d, 0x96, 0xb3, + 0xb1, 0x6e, 0x20, 0xe0, 0x00, 0x00, 0x37, 0x14, + 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x22, 0x92, 0x83, 0x3b, 0x14, 0x46, + 0x1b, 0x32, 0x11, 0x80, 0x4f, 0xce, 0xf9, 0xb0, + 0x05, 0xd4, 0xf1, 0x3b, 0x98, 0x3c, 0xd8, 0xc3, + 0x54, 0x49, 0xe9, 0x99, 0x8b, 0x99, 0xe2, 0x45, + 0x4d, 0x79, 0x36, 0x58, 0xaf, 0x28, 0x8b, 0xd9, + 0x20, 0x31, 0x79, 0x56, 0x7d, 0x02, 0x3e, 0x87, + 0x9a, 0xba, 0x69, 0x29, 0x02, 0x00, 0x00, 0x01, + 0xb5, 0xc6, 0x3c, 0x32, 0xf1, 0x83, 0x0c, 0x52, + 0x00, 0x00, 0x03, 0x7d, 0x4a, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x14, + 0x93, 0x99, 0xdc, 0xa2, 0x30, 0xd9, 0x90, 0x8c, + 0x00, 0x7e, 0x72, 0x8d, 0x9d, 0x33, 0x79, 0x48, + 0x40, 0x8d, 0x66, 0x33, 0x59, 0xad, 0x26, 0x4d, + 0x36, 0x28, 0xc2, 0xe6, 0xd5, 0x9a, 0xa0, 0x61, + 0x43, 0x61, 0x8c, 0xbc, 0x5d, 0xcb, 0x09, 0x31, + 0x35, 0x48, 0xac, 0x3e, 0x94, 0x1f, 0x48, 0x0d, + 0x5c, 0x35, 0xe0, 0x84, 0x80, 0x01, 0x7c, 0x3d, + 0x4b, 0x79, 0xd4, 0xaa, 0x2e, 0xa5, 0xa4, 0xa4, + 0x3c, 0x8a, 0x70, 0x00, 0x06, 0xda, 0x14, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x29, 0x27, 0x33, 0xb9, 0x44, 0x61, 0x83, + 0x20, 0x9d, 0x0d, 0x30, 0x28, 0x01, 0xc0, 0x39, + 0x26, 0x84, 0x2c, 0x00, 0x00, 0x25, 0xe4, 0x3c, + 0xe4, 0x1c, 0x1c, 0x9c, 0x9b, 0x66, 0x4b, 0xcd, + 0x5e, 0x34, 0xb0, 0xc7, 0xa0, 0x00, 0x64, 0xb3, + 0x3a, 0x16, 0xa2, 0x90, 0xc6, 0x64, 0x9c, 0x8a, + 0x19, 0x7c, 0x8e, 0x9a, 0xe2, 0x76, 0x00, 0x03, + 0x7d, 0x4a, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x19, 0x10, 0x93, 0x19, 0xe4, + 0xa2, 0x30, 0xb9, 0x90, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6a, 0x91, + 0x88, 0x4c, 0x4e, 0x00, 0x04, 0x90, 0x17, 0x82, + 0x2e, 0x49, 0x4e, 0x48, 0xd9, 0x26, 0x3a, 0x90, + 0x50, 0x00, 0x2a, 0x4d, 0xb2, 0x29, 0x89, 0x0d, + 0xec, 0x27, 0x95, 0xfc, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0xa2, 0xce, 0x5e, 0x37, + 0x1f, 0x90, 0xe4, 0x32, 0x4e, 0x67, 0x92, 0x88, + 0xc2, 0x66, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xc9, 0xac, 0xf5, 0xe3, + 0xe8, 0xb3, 0x3d, 0x31, 0xe5, 0xde, 0x88, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xf5, 0x01, + 0xb0, 0x2a, 0x60, 0xb3, 0xad, 0x64, 0xf4, 0x87, + 0xcd, 0x9b, 0x5d, 0xd4, 0x60, 0xbf, 0x5a, 0x4b, + 0xcc, 0x23, 0x72, 0x4c, 0x5f, 0x3b, 0x81, 0xf7, + 0xe3, 0xbd, 0xea, 0xda, 0x4e, 0xc5, 0x75, 0x13, + 0xc7, 0x2b, 0xad, 0xbd, 0xfe, 0x48, 0x84, 0xcd, + 0xa0, 0x52, 0xf8, 0x8d, 0x86, 0xee, 0x22, 0x4f, + 0x63, 0x3d, 0x17, 0xbe, 0x81, 0x95, 0xc7, 0xe4, + 0x31, 0x49, 0x0c, 0x7b, 0x97, 0x3c, 0x82, 0xa6, + 0x9d, 0xc6, 0xd1, 0x79, 0xd3, 0xe8, 0xe4, 0x82, + 0xce, 0x62, 0x4c, 0x67, 0xb2, 0x88, 0xc2, 0x66, + 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xc9, 0xa6, 0xdb, 0x13, 0xce, 0x58, + 0x17, 0x69, 0xf9, 0x5b, 0x26, 0x42, 0x67, 0x17, + 0x4b, 0x79, 0x0c, 0x7b, 0x33, 0x86, 0x4b, 0xe3, + 0xf2, 0x2a, 0x6e, 0xf4, 0x2c, 0xb7, 0x31, 0x9e, + 0xfd, 0x6a, 0xd6, 0x51, 0xbb, 0xca, 0xd0, 0x39, + 0xfe, 0x26, 0xc8, 0x35, 0xe5, 0x05, 0x6b, 0x4e, + 0x9c, 0xf5, 0xe1, 0xc7, 0x7e, 0x3b, 0x76, 0xe3, + 0xb5, 0x7d, 0x2b, 0xab, 0x5d, 0x7b, 0x1e, 0x39, + 0xe2, 0x6b, 0x19, 0x93, 0xe2, 0x89, 0xec, 0x06, + 0x67, 0x17, 0x94, 0xed, 0x07, 0x9f, 0xfe, 0x82, + 0xfc, 0xec, 0xf4, 0x4f, 0xce, 0x5f, 0x4e, 0x3b, + 0x0c, 0xb7, 0x07, 0x9c, 0xe6, 0xfc, 0x7f, 0x62, + 0x48, 0x6d, 0x65, 0x66, 0xf1, 0xb9, 0x25, 0x57, + 0x4a, 0xd1, 0xcb, 0xa8, 0xab, 0x85, 0x2b, 0xcd, + 0x28, 0xd8, 0x5e, 0x75, 0xde, 0x2d, 0x75, 0xe8, + 0xe8, 0x9d, 0xf4, 0x1d, 0x67, 0x4a, 0xd6, 0xaa, + 0xb6, 0x91, 0xeb, 0xc8, 0x8c, 0xb9, 0x05, 0x9d, + 0x53, 0xf6, 0xa7, 0xa9, 0xd9, 0xb6, 0x90, 0xc1, + 0xd9, 0x16, 0xb9, 0x03, 0x78, 0x74, 0x3f, 0xbe, + 0x25, 0xf1, 0xb9, 0x2c, 0x98, 0xcf, 0x65, 0x11, + 0x84, 0x8c, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0xb1, 0xa1, 0x3b, 0x07, + 0xcf, 0x3a, 0xd1, 0xb1, 0x7c, 0xe3, 0x9f, 0x31, + 0xdd, 0x8f, 0x9b, 0xb1, 0xed, 0x85, 0x78, 0xa3, + 0x7b, 0x2e, 0xb2, 0x9b, 0xa7, 0xef, 0x47, 0x1e, + 0xc8, 0xe3, 0x93, 0x2b, 0x19, 0xcd, 0x61, 0xcb, + 0xb5, 0x0e, 0xd7, 0x61, 0xbb, 0x9a, 0xcb, 0x71, + 0x1d, 0x09, 0xbe, 0x83, 0x96, 0x5a, 0xcb, 0x5e, + 0xad, 0xa4, 0x6a, 0x3a, 0xd6, 0xe7, 0x8e, 0x31, + 0x94, 0xae, 0x2d, 0x96, 0x21, 0xf3, 0x0c, 0x45, + 0x35, 0x85, 0xe4, 0x78, 0xbc, 0x9f, 0xe7, 0x7e, + 0xce, 0xf3, 0x04, 0xae, 0xce, 0x67, 0x78, 0x34, + 0x4f, 0xbc, 0xfe, 0x5e, 0xee, 0xdf, 0x10, 0x46, + 0x2b, 0xd8, 0x8b, 0x8d, 0x3b, 0x99, 0xf5, 0x84, + 0xf4, 0xe2, 0xd2, 0x5b, 0x1f, 0xde, 0xc3, 0x56, + 0xf4, 0xad, 0x64, 0xad, 0x65, 0xd9, 0xcc, 0x5a, + 0xea, 0x2a, 0x5b, 0x69, 0x2d, 0xe9, 0xc7, 0x6a, + 0x1e, 0xf4, 0x6b, 0xfa, 0x57, 0xab, 0xe9, 0x5b, + 0xc3, 0xb5, 0x3e, 0xae, 0x22, 0x77, 0x71, 0x36, + 0x5a, 0xd6, 0x42, 0xe7, 0x4e, 0xbf, 0xd3, 0x7d, + 0x2f, 0xed, 0x59, 0x55, 0xb4, 0x9c, 0x94, 0xcf, + 0x85, 0x11, 0x84, 0x0c, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x93, 0x4c, + 0x32, 0x2d, 0x73, 0xa1, 0xfb, 0x1f, 0xce, 0x34, + 0xfc, 0xf4, 0x90, 0x51, 0xbd, 0x93, 0xdb, 0x49, + 0x63, 0x9b, 0xf8, 0x01, 0xc1, 0xc9, 0xc1, 0xc8, + 0x00, 0xc8, 0xf6, 0x13, 0xd5, 0xfd, 0x2b, 0xe2, + 0x99, 0x2c, 0x68, 0x0e, 0x0e, 0x4e, 0x0d, 0x87, + 0x82, 0xce, 0xf6, 0x7f, 0x59, 0x7a, 0x72, 0x25, + 0x5e, 0xc3, 0x5a, 0xae, 0x23, 0xf2, 0xe9, 0x8f, + 0x8b, 0x89, 0x2b, 0x23, 0xc5, 0x39, 0x50, 0x75, + 0x2d, 0x25, 0x01, 0x28, 0x25, 0xe4, 0x74, 0x93, + 0x96, 0x33, 0xc0, 0xa6, 0x2b, 0x48, 0x59, 0x7e, + 0xa3, 0x7b, 0xb4, 0x76, 0xd2, 0x52, 0x12, 0x4a, + 0x67, 0xe2, 0x88, 0xc2, 0x06, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc9, + 0xad, 0x26, 0xb1, 0x10, 0xb0, 0x00, 0x32, 0x81, + 0x15, 0x33, 0x29, 0x71, 0x22, 0x24, 0x28, 0xca, + 0xe5, 0xd8, 0x88, 0x18, 0x20, 0x00, 0x01, 0xb8, + 0x27, 0x43, 0x16, 0x1a, 0x9c, 0x6c, 0xe1, 0x13, + 0x23, 0x06, 0x53, 0x22, 0xa6, 0x49, 0x30, 0x29, + 0x95, 0xca, 0x62, 0xe2, 0x75, 0x31, 0x99, 0x99, + 0x0f, 0x12, 0xd2, 0x44, 0x8a, 0x12, 0xe0, 0x61, + 0xc2, 0x46, 0x6f, 0xa1, 0x21, 0x24, 0xa6, 0x7e, + 0x28, 0x8c, 0x1e, 0x64, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x9a, 0xc6, + 0x6a, 0x79, 0x8b, 0x00, 0x00, 0x91, 0x14, 0xa6, + 0x51, 0x2d, 0x05, 0xb8, 0xe8, 0x56, 0x95, 0x67, + 0x26, 0x28, 0x00, 0x03, 0x83, 0x7e, 0x0e, 0x4e, + 0x0c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x24, 0x26, 0x66, 0x24, 0x24, 0x90, 0xcf, + 0xe5, 0x11, 0x83, 0x0c, 0x82, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x93, 0x57, + 0x49, 0xa5, 0xe4, 0x2d, 0xbe, 0xad, 0xa8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x85, 0x35, + 0x94, 0xdc, 0x76, 0x9d, 0xce, 0x2c, 0x35, 0x38, + 0x00, 0x00, 0x07, 0x06, 0xc1, 0x92, 0x13, 0x13, + 0x98, 0xd0, 0x00, 0x00, 0x04, 0xbc, 0xdf, 0x42, + 0x40, 0x49, 0x0d, 0x80, 0x28, 0x8c, 0x14, 0x64, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x9a, 0xdb, 0x94, 0xea, 0xbd, 0x6c, + 0xde, 0x5e, 0x16, 0xea, 0xe0, 0x00, 0x05, 0x6d, + 0x2b, 0xa9, 0x74, 0x76, 0x45, 0x04, 0x96, 0xc4, + 0xee, 0xb4, 0x2f, 0xed, 0x55, 0xec, 0x00, 0x00, + 0x00, 0x06, 0x49, 0xc7, 0x76, 0x46, 0x46, 0xd0, + 0xde, 0xf6, 0x8b, 0x9a, 0xfc, 0x00, 0x00, 0x00, + 0x64, 0xa2, 0x36, 0x7a, 0x11, 0x50, 0x00, 0x00, + 0x12, 0x63, 0x66, 0x0b, 0xf9, 0x23, 0x36, 0x08, + 0xa2, 0x30, 0x41, 0x90, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6a, 0x06, + 0x6b, 0xa4, 0xb5, 0x57, 0x6b, 0xf9, 0x34, 0x00, + 0x00, 0xc8, 0xf1, 0x39, 0x6e, 0xc2, 0x62, 0xbb, + 0x5b, 0xd7, 0x9e, 0xbe, 0x4e, 0x62, 0x32, 0x18, + 0xec, 0xa2, 0xca, 0x6a, 0x0b, 0x23, 0x8e, 0x6b, + 0xa6, 0x57, 0xaa, 0x00, 0x00, 0x09, 0xa4, 0x7e, + 0x43, 0xb4, 0xfa, 0x0f, 0xdf, 0xd8, 0x5c, 0xd4, + 0xd0, 0x00, 0x27, 0x27, 0x43, 0xa9, 0x7c, 0x04, + 0x04, 0xc9, 0xc4, 0x6c, 0xa4, 0x29, 0x48, 0xc0, + 0x00, 0x13, 0x03, 0x7d, 0x8b, 0xf1, 0x23, 0x36, + 0x0c, 0xa2, 0x30, 0x39, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc9, 0xa7, + 0x19, 0x36, 0xb1, 0xf9, 0xfd, 0xb4, 0xbc, 0xb6, + 0x00, 0x00, 0x48, 0x2d, 0xef, 0xf3, 0x44, 0x36, + 0x69, 0x6a, 0xab, 0x6b, 0x71, 0xa7, 0x71, 0x65, + 0xad, 0x65, 0x91, 0xec, 0x27, 0xee, 0xd4, 0xeb, + 0xe9, 0xc6, 0x5b, 0xa9, 0x40, 0x00, 0x0c, 0xbb, + 0x17, 0x94, 0x6e, 0xd6, 0x9b, 0xf6, 0x56, 0x1f, + 0x35, 0x38, 0x00, 0x09, 0x59, 0xb0, 0x45, 0x90, + 0xbf, 0x96, 0xf3, 0x5c, 0x0c, 0xbe, 0x54, 0x12, + 0xc3, 0x17, 0x98, 0xa8, 0x00, 0x09, 0x79, 0xbe, + 0x85, 0xf4, 0x91, 0x9b, 0x08, 0x51, 0x18, 0x18, + 0x9f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe4, 0xd7, 0xb7, 0x1a, 0xa7, 0x29, + 0x8b, 0x43, 0x3b, 0xd2, 0x00, 0x4c, 0xcb, 0x61, + 0x1e, 0x2f, 0xa7, 0x42, 0xca, 0x09, 0x01, 0x21, + 0x29, 0x0a, 0xf3, 0x1f, 0x9e, 0x60, 0x03, 0x66, + 0xac, 0x66, 0xe5, 0x96, 0xd2, 0x91, 0x93, 0x5f, + 0x00, 0x24, 0x87, 0xa9, 0xe0, 0x4a, 0x88, 0x19, + 0xd8, 0xad, 0x3d, 0x48, 0xd0, 0x32, 0x09, 0x04, + 0x3c, 0x41, 0xc8, 0x04, 0x8c, 0xda, 0x52, 0xf8, + 0x48, 0xcd, 0x85, 0x28, 0x8c, 0x04, 0x4f, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x72, 0x6b, 0xb1, 0xa5, 0x66, 0x3f, 0x00, 0x19, + 0xa4, 0xcc, 0xc7, 0x04, 0x0c, 0xcc, 0x86, 0x35, + 0x38, 0x20, 0x64, 0x64, 0xcd, 0x44, 0x58, 0xc1, + 0xc5, 0x98, 0x00, 0x6d, 0x69, 0x95, 0xcc, 0x54, + 0x6a, 0x80, 0x06, 0x55, 0x32, 0x71, 0x8a, 0x4c, + 0xf0, 0x77, 0x2a, 0xcb, 0x41, 0x70, 0x3a, 0x10, + 0xc3, 0x1b, 0x9b, 0x30, 0x44, 0x8a, 0x43, 0x54, + 0x40, 0x25, 0x66, 0xfb, 0x97, 0xc2, 0x42, 0x6c, + 0x41, 0x44, 0x60, 0x22, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x93, 0x59, + 0x88, 0xd1, 0x89, 0xc0, 0x07, 0x07, 0x53, 0x90, + 0x70, 0x72, 0x01, 0xc9, 0xc0, 0x3b, 0x00, 0x0f, + 0x53, 0x3d, 0x9d, 0x01, 0x81, 0xcf, 0x20, 0x75, + 0x07, 0x27, 0x07, 0x00, 0xe4, 0xe0, 0xaa, 0x24, + 0xc4, 0x44, 0xe0, 0x03, 0xb0, 0x06, 0x4e, 0x26, + 0x24, 0xe0, 0x90, 0x9b, 0x10, 0x51, 0x18, 0x08, + 0x9f, 0x11, 0xf2, 0x28, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x26, 0x33, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x09, 0xd1, 0x21, 0x36, 0x20, 0xa2, 0x35, 0xf8, + 0x95, 0x18, 0x10, 0xf3, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0b, 0xd5, 0xfc, 0x0c, + 0x47, 0x67, 0xf9, 0x73, 0xca, 0xb5, 0xa0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x59, 0x87, + 0x6e, 0x2b, 0x76, 0x19, 0xba, 0xaa, 0x76, 0x0f, + 0x9e, 0x62, 0xf9, 0x1e, 0xb9, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x77, 0xeb, 0x52, 0x67, + 0xad, 0xfd, 0x25, 0x7f, 0x85, 0xcd, 0xa4, 0x26, + 0xc5, 0x14, 0x46, 0xbf, 0x17, 0x03, 0x18, 0x5e, + 0x43, 0x59, 0x36, 0x1f, 0x9d, 0xfc, 0x7b, 0xdb, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, + 0x58, 0xce, 0xcd, 0xb4, 0x62, 0x7b, 0x72, 0x8b, + 0x37, 0xd1, 0xda, 0xc7, 0xb7, 0x7c, 0x85, 0xcb, + 0x9d, 0xac, 0xc0, 0xb7, 0xde, 0x33, 0x9d, 0xc1, + 0x6b, 0xa9, 0xd7, 0x90, 0xda, 0x4b, 0xd9, 0x2e, + 0x63, 0x7b, 0xf1, 0xcd, 0x3f, 0x6a, 0x72, 0x4b, + 0x19, 0xeb, 0xad, 0x1b, 0xb8, 0x6c, 0x96, 0x35, + 0x5f, 0x46, 0xfa, 0x9e, 0xa5, 0xb4, 0xbe, 0x3b, + 0x22, 0xc7, 0x13, 0x38, 0x68, 0xf3, 0xe7, 0xae, + 0x45, 0x87, 0xcc, 0x75, 0xf7, 0x2c, 0xd4, 0x91, + 0xab, 0xc8, 0x7c, 0xbf, 0x8e, 0x6c, 0x7c, 0xd1, + 0xa3, 0x7d, 0xcf, 0xab, 0x3e, 0x8b, 0xf9, 0xcd, + 0x62, 0xba, 0x89, 0x00, 0x00, 0x36, 0x37, 0x0f, + 0xdc, 0x78, 0xc2, 0x73, 0x06, 0xbc, 0x5b, 0xdf, + 0xca, 0xec, 0x32, 0x18, 0xcd, 0xec, 0x15, 0x15, + 0x5b, 0x6b, 0x2d, 0xc4, 0x74, 0x2e, 0x47, 0x1c, + 0x00, 0x00, 0x36, 0x0b, 0x5b, 0xfa, 0x4b, 0x2d, + 0xeb, 0x3f, 0x4e, 0xc8, 0x4d, 0x8a, 0x28, 0x8d, + 0x7d, 0x2b, 0xcc, 0x21, 0x9d, 0xe8, 0x6d, 0x6c, + 0xdb, 0x5e, 0x47, 0x19, 0xcb, 0x17, 0xda, 0x51, + 0xab, 0xe8, 0x2b, 0x5d, 0xc5, 0x85, 0x5d, 0x3b, + 0x89, 0x84, 0x76, 0x45, 0x11, 0x90, 0xc7, 0xbd, + 0xfa, 0x57, 0xbf, 0x5a, 0x4b, 0xf5, 0xe6, 0x9c, + 0x5e, 0xfe, 0x06, 0xfb, 0x69, 0x2f, 0x61, 0xbb, + 0x88, 0x9b, 0x46, 0x64, 0xf8, 0xf2, 0x5f, 0x0f, + 0xa8, 0xeb, 0x56, 0xb6, 0x95, 0xd4, 0x92, 0xca, + 0x6b, 0x0e, 0xe4, 0x5a, 0xee, 0x97, 0xbd, 0x0c, + 0x81, 0x11, 0x98, 0x65, 0xfd, 0x03, 0xf4, 0x06, + 0x25, 0x98, 0x69, 0xdd, 0x2e, 0xda, 0x1e, 0x5b, + 0x1b, 0x7d, 0x86, 0xee, 0x58, 0xe5, 0xcc, 0x74, + 0xaa, 0xce, 0x62, 0x37, 0x75, 0x17, 0xef, 0xd7, + 0xbd, 0xca, 0x95, 0xd4, 0x8a, 0xda, 0x4f, 0x10, + 0xcc, 0x61, 0xbe, 0x7c, 0xf1, 0x9b, 0x60, 0xf3, + 0x9c, 0x43, 0x33, 0x85, 0xe6, 0x98, 0x5c, 0xda, + 0x0d, 0x7d, 0x09, 0x7f, 0xb6, 0x91, 0xc6, 0x92, + 0x98, 0xbe, 0x4f, 0x8b, 0xca, 0x6e, 0xb4, 0x6f, + 0x35, 0x73, 0x2b, 0xd4, 0xd8, 0xc6, 0x57, 0x15, + 0xce, 0x70, 0x19, 0xf6, 0xd4, 0xe9, 0xdf, 0x64, + 0x68, 0x5e, 0xf9, 0xf0, 0x44, 0x76, 0xe6, 0x34, + 0x00, 0x00, 0xdd, 0xbc, 0x13, 0x7c, 0x56, 0x75, + 0xa9, 0x61, 0xb8, 0x8f, 0xc8, 0xb1, 0xb9, 0x36, + 0x30, 0x95, 0xc4, 0xe4, 0x76, 0xb2, 0xb8, 0xee, + 0x4f, 0x18, 0xd6, 0x1c, 0xa7, 0x55, 0x80, 0x00, + 0x1b, 0x55, 0x80, 0xef, 0xfd, 0x86, 0xd7, 0x9e, + 0x8a, 0x90, 0x1b, 0x16, 0x51, 0x1a, 0xf6, 0x57, + 0x1a, 0xe3, 0x9a, 0x69, 0x2d, 0x3f, 0xd9, 0xde, + 0x5e, 0x1b, 0x79, 0x87, 0xee, 0x5a, 0xaa, 0x77, + 0x13, 0xd8, 0xec, 0x8b, 0x1e, 0xc8, 0xe3, 0xd9, + 0x92, 0x17, 0x33, 0xc5, 0xd2, 0xd8, 0x9d, 0x65, + 0x3b, 0x88, 0x4d, 0xec, 0x1d, 0xf2, 0xde, 0x4f, + 0x35, 0xc2, 0xe6, 0xd8, 0x13, 0x21, 0xd7, 0x79, + 0x76, 0x1b, 0x31, 0xe8, 0xe6, 0xb3, 0xa5, 0x6c, + 0x35, 0x37, 0x84, 0x66, 0xc8, 0x3c, 0xe2, 0xf7, + 0x6f, 0x25, 0xa3, 0x39, 0xf7, 0x9f, 0xf1, 0x3c, + 0xbe, 0x1d, 0x92, 0xe2, 0xf2, 0x9d, 0xa3, 0xd2, + 0x3e, 0xe5, 0xac, 0xba, 0x8a, 0xd3, 0x3c, 0xd3, + 0x4b, 0x5a, 0x39, 0xe8, 0x00, 0x03, 0x93, 0x93, + 0xa9, 0xc0, 0x2a, 0xba, 0xd4, 0xb9, 0x74, 0xb8, + 0xb2, 0x55, 0xb3, 0x00, 0x00, 0x36, 0x8e, 0x0f, + 0x39, 0x9c, 0xe3, 0x9b, 0x23, 0x0b, 0x66, 0xfa, + 0x47, 0x02, 0xcb, 0x62, 0x40, 0x00, 0x00, 0x00, + 0x0c, 0xab, 0x1d, 0x91, 0xd9, 0xaa, 0xda, 0xc0, + 0xef, 0x21, 0x80, 0x00, 0x7a, 0xf1, 0xdb, 0x74, + 0x70, 0xbd, 0xd1, 0x3f, 0x87, 0xcc, 0x6f, 0xe6, + 0xc6, 0x94, 0x46, 0xbd, 0x15, 0xc6, 0x18, 0x95, + 0xc5, 0x74, 0xd7, 0x60, 0xf9, 0xea, 0x97, 0xb5, + 0x3e, 0xbc, 0xf1, 0xc9, 0xc1, 0xc9, 0xd5, 0xc7, + 0x2e, 0x79, 0x07, 0x3c, 0x3a, 0xf2, 0xbe, 0x51, + 0xbb, 0xac, 0xeb, 0x56, 0x2f, 0x71, 0x1e, 0x39, + 0x3a, 0xb8, 0x39, 0xef, 0xc7, 0x23, 0x3f, 0x40, + 0xe7, 0xd9, 0x7b, 0x05, 0xde, 0xb7, 0x33, 0x49, + 0x48, 0x10, 0x00, 0x03, 0x25, 0x19, 0x2c, 0x84, + 0x94, 0xe6, 0x46, 0x2f, 0x06, 0x33, 0x30, 0xb0, + 0x00, 0x00, 0x6f, 0xa9, 0x5e, 0x63, 0x23, 0x55, + 0x00, 0x32, 0x69, 0x1c, 0x2e, 0x65, 0xd8, 0xaf, + 0x31, 0x71, 0x2b, 0x2e, 0x47, 0x07, 0x52, 0xa8, + 0xa1, 0x2e, 0x85, 0x8c, 0x80, 0x00, 0x79, 0x1f, + 0x4d, 0x0e, 0x0b, 0xf9, 0xb1, 0xc5, 0x11, 0xaf, + 0x05, 0x69, 0x83, 0xcd, 0x0b, 0x38, 0x00, 0x03, + 0x29, 0x18, 0xec, 0x96, 0x17, 0xc2, 0x26, 0x4a, + 0x4f, 0x43, 0xdc, 0x8b, 0x90, 0x90, 0x00, 0x06, + 0xfa, 0x97, 0x42, 0xe6, 0x69, 0x79, 0x04, 0x00, + 0x00, 0x48, 0xcb, 0x81, 0x61, 0x27, 0x85, 0xbc, + 0xb8, 0x91, 0x02, 0x38, 0x00, 0x00, 0x1b, 0xd8, + 0x56, 0x18, 0xc8, 0xd5, 0x40, 0x0c, 0xa8, 0x56, + 0x10, 0xe3, 0x20, 0x16, 0xf2, 0xc0, 0x5b, 0x49, + 0x89, 0x70, 0x29, 0x0a, 0x02, 0xe6, 0x78, 0x17, + 0xa3, 0x05, 0x9e, 0x00, 0xf2, 0x3e, 0x9a, 0x1d, + 0x4b, 0xf9, 0xb1, 0xe5, 0x11, 0xae, 0xc5, 0x71, + 0x84, 0x0d, 0x0f, 0x00, 0x03, 0x83, 0x69, 0x48, + 0xb1, 0x7d, 0x2f, 0x46, 0xbd, 0x99, 0x30, 0xba, + 0x13, 0xb2, 0x3c, 0x6a, 0xb8, 0x00, 0x03, 0x7c, + 0x4b, 0x99, 0x73, 0x35, 0xa4, 0x85, 0x80, 0x01, + 0x76, 0x2f, 0xe5, 0x90, 0xbe, 0x17, 0x13, 0xb1, + 0x70, 0x28, 0xce, 0xc6, 0x30, 0x00, 0x00, 0x6d, + 0xe1, 0xe4, 0x63, 0x23, 0x55, 0x00, 0x00, 0xec, + 0x7a, 0x97, 0x92, 0xc6, 0x4c, 0x8a, 0x83, 0x92, + 0xb0, 0xe0, 0xa1, 0x20, 0x60, 0x00, 0x79, 0x1f, + 0x4d, 0x0e, 0x85, 0xf8, 0xd9, 0x12, 0x88, 0xd7, + 0x42, 0xbc, 0xc4, 0xa6, 0xa9, 0x80, 0x00, 0x38, + 0x39, 0x38, 0x00, 0xe4, 0xe0, 0x03, 0x90, 0x00, + 0x06, 0xd7, 0x9d, 0x0b, 0x99, 0xa4, 0xa4, 0x08, + 0x00, 0x09, 0xb1, 0xb0, 0x06, 0x20, 0x25, 0xe5, + 0xc4, 0xee, 0x5e, 0xca, 0x72, 0x0a, 0x60, 0xc0, + 0x00, 0x06, 0xfa, 0x95, 0xe6, 0x32, 0x35, 0x50, + 0x00, 0x0c, 0x84, 0x67, 0x92, 0x02, 0x7b, 0x11, + 0xc2, 0x94, 0xc8, 0x47, 0xb1, 0x8c, 0x89, 0x81, + 0xaf, 0xc0, 0x00, 0x79, 0x1f, 0x4d, 0x0e, 0x85, + 0xf4, 0xd9, 0x22, 0x88, 0xd7, 0x22, 0xb8, 0xc2, + 0x86, 0x87, 0x99, 0x30, 0xb8, 0x94, 0x04, 0xcc, + 0xb3, 0x97, 0x02, 0xc2, 0x7b, 0x1e, 0x85, 0x29, + 0x4e, 0x72, 0x4b, 0x08, 0xf1, 0x71, 0x28, 0xce, + 0xc7, 0x04, 0x7c, 0xc7, 0x46, 0xf8, 0x17, 0x42, + 0xe6, 0x6b, 0xa9, 0x0d, 0x00, 0x00, 0x0a, 0x92, + 0xe0, 0x59, 0x0b, 0xc1, 0x6f, 0x29, 0xce, 0xc0, + 0x00, 0x01, 0xb6, 0x45, 0x31, 0x4e, 0x61, 0x10, + 0x0e, 0xa7, 0x27, 0x25, 0xc4, 0xb7, 0x00, 0x0e, + 0x0e, 0x40, 0x00, 0x00, 0x70, 0x6d, 0x11, 0x50, + 0x5f, 0x0d, 0x94, 0x28, 0x8d, 0x72, 0x2b, 0x4c, + 0x62, 0x7c, 0xf8, 0x26, 0xe4, 0xfc, 0xe8, 0x54, + 0x96, 0x62, 0xbc, 0xad, 0x22, 0x45, 0x8c, 0xec, + 0x49, 0x0f, 0x63, 0xd0, 0xf2, 0x23, 0x84, 0xb8, + 0xb8, 0x94, 0x25, 0x80, 0xc5, 0x87, 0xd0, 0x53, + 0xa1, 0x73, 0x34, 0x94, 0x81, 0x00, 0x00, 0x06, + 0x5a, 0x26, 0x27, 0x42, 0xb8, 0x89, 0x98, 0x94, + 0xb7, 0x80, 0x00, 0x06, 0xfa, 0x95, 0xe6, 0x2c, + 0x35, 0x38, 0x19, 0x08, 0x96, 0x17, 0x52, 0x28, + 0x4c, 0xca, 0x22, 0xf2, 0x47, 0x4a, 0x92, 0x84, + 0x90, 0x91, 0x60, 0x49, 0xcb, 0x81, 0x05, 0x31, + 0x19, 0x4c, 0x0f, 0xa2, 0x44, 0x90, 0xbe, 0x9b, + 0x28, 0x51, 0x1a, 0xe0, 0x56, 0x98, 0xb4, 0xb9, + 0x96, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0b, 0x81, 0x6f, 0x3a, 0x17, 0x33, 0x01, 0x90, + 0xe0, 0x00, 0x00, 0xbc, 0x17, 0xe2, 0x16, 0x5e, + 0x8b, 0xf1, 0x09, 0x3c, 0xc0, 0x00, 0x03, 0x69, + 0xca, 0x22, 0x22, 0x6b, 0x78, 0x26, 0xe5, 0xcc, + 0xb7, 0x96, 0x52, 0x48, 0x5e, 0x4f, 0x62, 0x7e, + 0x63, 0xa2, 0x0a, 0x4d, 0x4b, 0xd9, 0x58, 0x59, + 0xca, 0xd2, 0x30, 0x63, 0x20, 0x0d, 0xd5, 0x2f, + 0x45, 0xf0, 0xd9, 0x62, 0x88, 0xd6, 0xf2, 0xb4, + 0xc5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x2e, 0x66, 0x92, 0x90, 0x20, 0x00, + 0x00, 0xcd, 0x25, 0x94, 0xf1, 0x25, 0x47, 0x63, + 0x1e, 0x90, 0xc0, 0x00, 0x00, 0xdf, 0x52, 0xbc, + 0xc6, 0x46, 0xad, 0x83, 0x35, 0x16, 0x33, 0xd8, + 0xf1, 0x29, 0xcb, 0xe9, 0x6a, 0x3c, 0x4f, 0x02, + 0xb0, 0xaa, 0x28, 0x8f, 0x62, 0x98, 0x92, 0x16, + 0xb2, 0x0a, 0x58, 0x81, 0xf4, 0x00, 0x91, 0x17, + 0xb3, 0x65, 0xca, 0x23, 0x5b, 0x4a, 0xb3, 0x1f, + 0xd4, 0xb7, 0xf6, 0xc8, 0xf5, 0xb7, 0x5e, 0xd4, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, + 0xa9, 0x82, 0xcf, 0x2c, 0x56, 0x73, 0x37, 0x33, + 0x48, 0x48, 0x10, 0x00, 0x03, 0x83, 0x2f, 0x96, + 0x13, 0x92, 0x46, 0x5d, 0xc8, 0x19, 0x00, 0x00, + 0x00, 0x0d, 0xf8, 0x2e, 0x06, 0x37, 0x35, 0x0c, + 0x19, 0x50, 0xb6, 0x1d, 0x89, 0x71, 0x22, 0x2c, + 0xc4, 0xb4, 0xc6, 0x07, 0xa1, 0x50, 0x49, 0x81, + 0xe4, 0x78, 0x9e, 0x65, 0x01, 0x19, 0x31, 0xc9, + 0xe8, 0x7d, 0x19, 0x2e, 0xc5, 0xec, 0xd9, 0x92, + 0x88, 0xd6, 0xd2, 0xac, 0xc3, 0xdb, 0x17, 0xce, + 0x38, 0x0f, 0x6a, 0x79, 0x53, 0x83, 0x82, 0x6d, + 0x19, 0x94, 0x4c, 0xe3, 0x32, 0x6c, 0x47, 0x91, + 0x6b, 0xa9, 0x55, 0x84, 0xfc, 0x42, 0x47, 0x1d, + 0xcc, 0x38, 0xde, 0xc9, 0x8a, 0xc8, 0x63, 0xd1, + 0x09, 0x1c, 0x72, 0x47, 0x65, 0x35, 0x15, 0xbf, + 0x81, 0xed, 0xc7, 0x39, 0x32, 0x0f, 0x39, 0xc7, + 0x13, 0x58, 0x57, 0x87, 0x7a, 0x3d, 0x39, 0xeb, + 0xe3, 0xda, 0x98, 0xec, 0x65, 0xbc, 0x47, 0x6f, + 0x4c, 0xf4, 0xa7, 0xb6, 0xee, 0x66, 0x04, 0x21, + 0xe5, 0xfc, 0xca, 0x27, 0xa9, 0x6a, 0x3b, 0x96, + 0xd2, 0xe2, 0x42, 0x0a, 0x92, 0xe2, 0x55, 0x93, + 0x12, 0x06, 0x51, 0x97, 0x42, 0xe2, 0x5c, 0x8c, + 0x1c, 0x72, 0x6d, 0x31, 0x42, 0x5c, 0x0c, 0x76, + 0x52, 0x80, 0x00, 0x07, 0xb1, 0xe2, 0x01, 0xc8, + 0x38, 0x00, 0x00, 0x4c, 0x4a, 0xf2, 0x5a, 0x5e, + 0xcd, 0x99, 0x28, 0x8d, 0x6c, 0x2a, 0xcd, 0x76, + 0xd8, 0xbe, 0x70, 0xd6, 0x4d, 0x87, 0xe7, 0x5e, + 0x8e, 0xdd, 0x78, 0x6c, 0x16, 0x35, 0xb3, 0x64, + 0xd6, 0xd2, 0x79, 0xaf, 0x1e, 0xd8, 0x55, 0xb4, + 0xee, 0x70, 0x26, 0x49, 0xad, 0xae, 0x34, 0x6e, + 0xe4, 0x16, 0x92, 0xf5, 0xdd, 0x6a, 0xcb, 0xec, + 0xa6, 0xee, 0xf4, 0x6f, 0x6c, 0x95, 0xe3, 0xee, + 0x54, 0x6f, 0x20, 0xd2, 0x58, 0xe5, 0x6d, 0x2b, + 0x9c, 0x35, 0x3b, 0x81, 0x6b, 0x7e, 0x55, 0xaa, + 0x47, 0xaf, 0x3d, 0x73, 0x1e, 0x3b, 0xb1, 0xb3, + 0x9e, 0x99, 0xf6, 0x9d, 0xcc, 0xd2, 0x52, 0x04, + 0x56, 0x99, 0xf4, 0xf3, 0x28, 0x8f, 0x72, 0xbc, + 0x94, 0x97, 0x23, 0x1e, 0x93, 0xf2, 0x16, 0x54, + 0x94, 0xa6, 0x35, 0x2f, 0x44, 0xac, 0x88, 0x18, + 0x84, 0x1b, 0xea, 0x57, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x97, 0xa3, + 0x66, 0x8a, 0x23, 0x5a, 0x8a, 0xc3, 0x5a, 0xf2, + 0xdd, 0x49, 0xa1, 0x1b, 0x1b, 0xcd, 0xfd, 0x5c, + 0x75, 0x73, 0x73, 0xa7, 0x73, 0x72, 0xa7, 0x73, + 0xef, 0xd6, 0xa1, 0xc5, 0x0d, 0x4b, 0x7a, 0x5e, + 0xd4, 0xc5, 0x6f, 0x4a, 0xdd, 0x5c, 0x70, 0x7a, + 0xbb, 0x54, 0xf4, 0xa9, 0x4f, 0xda, 0x9d, 0x05, + 0x4a, 0x02, 0xd7, 0x52, 0xdb, 0x93, 0x97, 0x1b, + 0x6b, 0x8a, 0xed, 0x7d, 0x8a, 0xd6, 0xde, 0x95, + 0xb9, 0x9a, 0x4a, 0x40, 0x80, 0x00, 0xaf, 0x25, + 0xe5, 0x30, 0x22, 0x84, 0x94, 0xb8, 0x82, 0xd8, + 0x44, 0x80, 0x00, 0x1b, 0xea, 0x57, 0x83, 0x1f, + 0x90, 0x03, 0x3f, 0x96, 0x03, 0xa1, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0xc5, 0xe8, + 0xd9, 0xb2, 0x88, 0xd6, 0xa2, 0xb0, 0xb4, 0x9a, + 0x31, 0xde, 0xde, 0xa3, 0x9e, 0xa0, 0x0c, 0xce, + 0x62, 0xc2, 0x70, 0x58, 0x81, 0xe0, 0x76, 0x2f, + 0x85, 0xa4, 0xf1, 0x2e, 0x44, 0x78, 0xb2, 0x00, + 0x0d, 0x87, 0xa7, 0x73, 0x21, 0x73, 0x73, 0x34, + 0x94, 0x81, 0x00, 0x01, 0x91, 0x4c, 0xd2, 0x63, + 0x70, 0x62, 0x03, 0x38, 0x13, 0x63, 0xc0, 0xb7, + 0x1a, 0xd2, 0x72, 0x00, 0x06, 0xfa, 0x95, 0xe0, + 0xd5, 0x72, 0x1c, 0x6a, 0x09, 0x97, 0x48, 0x49, + 0x1b, 0x24, 0x45, 0x11, 0xf5, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x2e, 0x2f, 0x46, 0xcd, 0x94, + 0x46, 0xb4, 0x95, 0x65, 0xac, 0xf9, 0x7e, 0x7a, + 0x80, 0x5e, 0x8c, 0xf8, 0x63, 0x62, 0xf2, 0x65, + 0x22, 0x08, 0x4c, 0x8e, 0x86, 0x33, 0x32, 0x61, + 0x6a, 0x2e, 0xa6, 0x3a, 0x30, 0xc0, 0x00, 0xdc, + 0x23, 0x21, 0x17, 0x23, 0x5f, 0x48, 0x68, 0x00, + 0x17, 0xb2, 0xe4, 0x7a, 0x82, 0x38, 0x79, 0x17, + 0x23, 0xb9, 0x52, 0x45, 0xc0, 0x00, 0x1b, 0x56, + 0x53, 0x02, 0xd2, 0x57, 0x11, 0x13, 0x82, 0xb0, + 0xb0, 0x98, 0x54, 0xd8, 0xa2, 0x52, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x96, 0x97, 0xa3, 0x67, 0x0a, + 0x23, 0x5a, 0x0a, 0xa2, 0xd6, 0x69, 0x11, 0xe8, + 0x00, 0x00, 0x00, 0x5c, 0x8b, 0x68, 0x2e, 0x05, + 0x09, 0xd4, 0x00, 0x01, 0xb1, 0x45, 0xe8, 0xb8, + 0x1a, 0x50, 0x40, 0x81, 0x31, 0x32, 0x51, 0xe0, + 0x63, 0xb2, 0x74, 0x5b, 0x49, 0x01, 0x6b, 0x2d, + 0x87, 0xb9, 0x46, 0x70, 0x5b, 0x4f, 0x32, 0x52, + 0x62, 0x03, 0x90, 0x6f, 0x71, 0x76, 0x05, 0x98, + 0x84, 0x99, 0x3c, 0x8e, 0x1a, 0xf4, 0x46, 0x4c, + 0x94, 0x5e, 0x8c, 0x52, 0x53, 0x19, 0xa8, 0xc7, + 0x47, 0x81, 0x25, 0x21, 0xa5, 0xcc, 0xcc, 0xe5, + 0x11, 0x8c, 0x0b, 0xe9, 0x3c, 0x32, 0x09, 0x2c, + 0x2f, 0x26, 0xcf, 0x14, 0x46, 0xb3, 0x15, 0x45, + 0xb0, 0xf9, 0x9c, 0x7a, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0d, 0xb6, 0x32, 0x11, 0x70, + 0x34, 0xa0, 0x81, 0x03, 0x21, 0x12, 0x22, 0x48, + 0x62, 0xa3, 0xdc, 0xcf, 0xc4, 0x2c, 0x89, 0x19, + 0xec, 0xc2, 0x84, 0x30, 0xcd, 0x87, 0x05, 0x31, + 0x69, 0x35, 0xf8, 0xe4, 0x1b, 0xdc, 0x5d, 0x80, + 0x39, 0x38, 0x3c, 0x8c, 0x30, 0x5c, 0x09, 0xd9, + 0x6e, 0x20, 0x06, 0x4a, 0x28, 0x0f, 0x22, 0x20, + 0x49, 0x08, 0xf1, 0x5c, 0x56, 0x12, 0x02, 0x3a, + 0x53, 0x12, 0x12, 0x6e, 0x4a, 0xcb, 0xc9, 0xb3, + 0xe5, 0x11, 0xac, 0xc5, 0x49, 0x6d, 0x3e, 0x67, + 0x1e, 0xa0, 0x03, 0x20, 0x95, 0x05, 0xb0, 0x8c, + 0x12, 0x22, 0x16, 0x0b, 0xe9, 0x62, 0x2a, 0x4e, + 0x87, 0x91, 0xd8, 0x00, 0x6d, 0xb1, 0x90, 0x8b, + 0x81, 0xa5, 0x44, 0x00, 0x02, 0x66, 0x5b, 0x08, + 0xe1, 0x70, 0x32, 0x11, 0x00, 0x2d, 0xc5, 0xf4, + 0xb0, 0x93, 0xb2, 0xf2, 0x58, 0xcf, 0x42, 0x0a, + 0x00, 0x37, 0xc0, 0xba, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x97, 0x83, + 0x68, 0x0a, 0x23, 0x58, 0xca, 0x92, 0x38, 0x68, + 0x81, 0x16, 0x00, 0x19, 0xc8, 0x98, 0x11, 0x02, + 0x1c, 0x67, 0x22, 0xda, 0x5d, 0x8b, 0xb9, 0x1c, + 0x32, 0x09, 0x1d, 0x30, 0xa9, 0x87, 0x80, 0x06, + 0xe7, 0x12, 0xa3, 0x93, 0x5e, 0xcd, 0x7e, 0x00, + 0xd8, 0xe2, 0xb0, 0x90, 0x12, 0x93, 0x09, 0x19, + 0x84, 0x8d, 0x17, 0x42, 0x90, 0x81, 0x17, 0x32, + 0x0c, 0x64, 0x53, 0x57, 0xce, 0xe0, 0xf5, 0x3e, + 0x87, 0x96, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x12, 0x92, 0xf0, 0x6d, 0x11, + 0x44, 0x6b, 0x19, 0x70, 0x31, 0xa9, 0x6a, 0x35, + 0x88, 0x8d, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0xc6, 0x68, 0x33, 0xd9, 0x6c, 0x05, 0x51, + 0xac, 0xa6, 0x33, 0x3c, 0x8b, 0xd1, 0x65, 0x00, + 0x00, 0x00, 0x00, 0xbc, 0x16, 0x70, 0x48, 0x8d, + 0x99, 0x25, 0x07, 0x50, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x12, 0xc2, 0xea, 0x6d, + 0x11, 0x44, 0x6a, 0xa1, 0x27, 0x31, 0xc1, 0x48, + 0x5c, 0x8a, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0xa9, 0x64, 0x3a, 0x80, 0x0f, 0x52, 0xf2, + 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x88, + 0xb6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x21, 0x14, 0x06, 0xd8, 0x9e, + 0xc6, 0xbb, 0x96, 0x40, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x20, + 0x93, 0x9b, 0x04, 0x55, 0x9d, 0x4e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x4e, 0xc7, 0xff, 0xc4, 0x00, 0x37, + 0x10, 0x00, 0x00, 0x05, 0x03, 0x03, 0x02, 0x04, + 0x04, 0x06, 0x03, 0x01, 0x00, 0x03, 0x01, 0x01, + 0x00, 0x00, 0x03, 0x04, 0x05, 0x06, 0x01, 0x02, + 0x16, 0x07, 0x12, 0x14, 0x15, 0x34, 0x11, 0x13, + 0x17, 0x33, 0x18, 0x20, 0x35, 0x36, 0x08, 0x10, + 0x27, 0x31, 0x32, 0x40, 0x21, 0x30, 0x37, 0x24, + 0x25, 0x26, 0x38, 0x46, 0x50, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x01, 0x00, 0x01, 0x05, 0x02, 0xad, + 0x7c, 0x01, 0xb2, 0xf8, 0xf9, 0x06, 0xe6, 0x91, + 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, + 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, + 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, + 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, + 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, + 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, + 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, + 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, + 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, + 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, + 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, + 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, + 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, + 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, + 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, + 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, + 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, + 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, + 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, + 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, + 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, + 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, + 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, + 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, + 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb0, 0x96, + 0x54, 0xc4, 0xb0, 0xfa, 0x57, 0xc4, 0x2e, 0xbe, + 0xb6, 0x13, 0x16, 0xbe, 0xb5, 0x6d, 0xdc, 0x37, + 0x0d, 0xc3, 0x70, 0xdc, 0x37, 0x0d, 0xc3, 0x70, + 0xdc, 0x37, 0x0d, 0xd5, 0x1b, 0x86, 0xe1, 0xb8, + 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, 0x86, + 0xe1, 0xb8, 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, + 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, 0x86, 0xe1, + 0xb8, 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, + 0x86, 0xe1, 0xb8, 0x6e, 0x1b, 0x86, 0xe1, 0xb8, + 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, 0x86, + 0xe1, 0xb8, 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, + 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, 0x86, 0xe1, + 0xb8, 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, + 0x86, 0xe1, 0x24, 0x32, 0xb6, 0xdc, 0x96, 0xed, + 0xc5, 0x39, 0xf6, 0xf1, 0x4f, 0xa5, 0x89, 0xf6, + 0x96, 0x1b, 0x3a, 0x75, 0x4f, 0x04, 0x7f, 0x37, + 0x5c, 0xbd, 0x38, 0x59, 0xa7, 0x50, 0xff, 0x00, + 0xc2, 0xfc, 0xca, 0x52, 0x4c, 0xa3, 0x55, 0x65, + 0xf4, 0x82, 0x69, 0xf7, 0xe1, 0x41, 0x74, 0xb0, + 0xe5, 0x7a, 0xdf, 0xa8, 0x2e, 0x91, 0xb6, 0x9f, + 0xc3, 0x93, 0x93, 0x8b, 0xbe, 0x8e, 0xa8, 0x7c, + 0x9c, 0x6b, 0x9c, 0xf2, 0x43, 0xa1, 0x52, 0x48, + 0xab, 0x54, 0x1e, 0x66, 0xbd, 0xe3, 0x4f, 0x67, + 0x3a, 0xc7, 0x37, 0x98, 0xbe, 0xcd, 0x1e, 0x17, + 0xc7, 0xa2, 0xf1, 0x8d, 0x22, 0x9a, 0xca, 0xe3, + 0xfa, 0x4f, 0xaa, 0x0f, 0xd6, 0x46, 0x74, 0xfa, + 0x17, 0x36, 0xd5, 0xd6, 0x1d, 0x1f, 0x97, 0xc9, + 0xeb, 0x21, 0xd5, 0xfd, 0x42, 0x53, 0x0c, 0x66, + 0xfc, 0x2c, 0xbb, 0x3c, 0xbc, 0xe9, 0x9a, 0x6d, + 0x57, 0x98, 0x41, 0x35, 0xb1, 0xd9, 0x5d, 0x87, + 0x46, 0x7f, 0x0f, 0xf2, 0xf3, 0xd3, 0x68, 0x5c, + 0x36, 0x3d, 0x3f, 0xd7, 0xb4, 0x92, 0x48, 0x66, + 0xa2, 0xe8, 0xa9, 0xff, 0x00, 0x89, 0x27, 0x27, + 0x83, 0x05, 0xdf, 0x87, 0x75, 0xb4, 0xa6, 0x8a, + 0x4b, 0x66, 0x48, 0xe7, 0xfa, 0x39, 0x06, 0x7d, + 0xd5, 0x36, 0xe9, 0x94, 0x43, 0x55, 0x34, 0x6d, + 0x03, 0x9b, 0x22, 0x4d, 0x71, 0x8a, 0x4b, 0xa0, + 0x6f, 0xf1, 0xed, 0x5b, 0x84, 0xe9, 0x01, 0xd0, + 0xd7, 0xef, 0xf5, 0x18, 0xe2, 0x49, 0x67, 0x75, + 0x32, 0x87, 0x53, 0x28, 0x75, 0x32, 0x87, 0x53, + 0x28, 0x75, 0x32, 0x87, 0x53, 0x28, 0x75, 0x32, + 0x87, 0x53, 0x28, 0x75, 0x32, 0x87, 0x53, 0x28, + 0x75, 0x32, 0x87, 0x53, 0x28, 0x75, 0x32, 0x87, + 0x53, 0x28, 0x75, 0x32, 0x81, 0x6e, 0x85, 0x1b, + 0x77, 0x34, 0x73, 0x47, 0x34, 0x73, 0x47, 0x34, + 0x5e, 0xe1, 0x69, 0x76, 0x58, 0xe1, 0x6d, 0xf6, + 0x73, 0x47, 0x34, 0x73, 0x47, 0x34, 0x73, 0x45, + 0x8b, 0x6c, 0xb8, 0xd9, 0x47, 0xec, 0x8b, 0xd9, + 0x73, 0xed, 0xe2, 0xbf, 0x4b, 0xf1, 0x1e, 0x21, + 0x17, 0xff, 0x00, 0xb0, 0x75, 0x1e, 0xbf, 0xa7, + 0x49, 0xed, 0x32, 0x33, 0xa4, 0x9a, 0xa4, 0x62, + 0x69, 0xd4, 0xf7, 0x4c, 0xe5, 0xad, 0x90, 0x89, + 0x0c, 0x2e, 0x4d, 0x09, 0x31, 0x83, 0xf0, 0xc3, + 0x23, 0x60, 0x51, 0xa5, 0x1f, 0x84, 0x8d, 0x85, + 0xc3, 0x6b, 0x75, 0x29, 0x46, 0xf7, 0x56, 0x39, + 0x1a, 0x1f, 0xc4, 0x9f, 0x85, 0x15, 0xdd, 0x5f, + 0xf3, 0xaa, 0x7a, 0xbd, 0x7b, 0x02, 0xc8, 0x06, + 0x8d, 0x27, 0x8c, 0x69, 0xcc, 0x06, 0x57, 0xa9, + 0xba, 0x52, 0xcd, 0xa7, 0xee, 0xcf, 0x11, 0xed, + 0x71, 0xd3, 0x99, 0xac, 0x31, 0xed, 0xcb, 0xf0, + 0x97, 0x24, 0x8f, 0xd2, 0x11, 0xa6, 0x11, 0xd6, + 0xa9, 0x6c, 0xeb, 0x4d, 0x24, 0x4e, 0xd0, 0x4b, + 0xe2, 0x45, 0xa9, 0x37, 0xf0, 0x6f, 0xa4, 0x06, + 0xa4, 0x33, 0x4a, 0x9c, 0x5d, 0x1b, 0x59, 0xd1, + 0xfe, 0x29, 0x55, 0xaa, 0x32, 0xea, 0xbf, 0x7e, + 0x2c, 0xd4, 0x53, 0x47, 0x34, 0xbd, 0xf6, 0x22, + 0xe9, 0xf8, 0x4c, 0xfb, 0x5f, 0x52, 0x4d, 0x4e, + 0x56, 0x9e, 0x7e, 0x17, 0xad, 0x3a, 0xcd, 0x18, + 0xd4, 0xef, 0xff, 0x00, 0x4d, 0x78, 0x8f, 0x11, + 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, + 0x78, 0x8f, 0x11, 0xe2, 0x2e, 0xfa, 0x8c, 0x85, + 0xe3, 0x52, 0x1b, 0xe7, 0x2f, 0x7a, 0xcf, 0x0d, + 0x8d, 0x3b, 0xb8, 0x6b, 0x24, 0x75, 0xb5, 0x69, + 0x9a, 0xc1, 0x1e, 0x21, 0x32, 0xad, 0x62, 0x8a, + 0x37, 0xa2, 0x23, 0x5a, 0x22, 0x8b, 0x12, 0xbd, + 0x6a, 0x93, 0x3c, 0x71, 0xd1, 0x9b, 0x58, 0xd3, + 0xab, 0x25, 0xdf, 0x56, 0x23, 0x6c, 0xf5, 0x7b, + 0xd6, 0x98, 0x9c, 0x75, 0x6b, 0x0e, 0xac, 0x46, + 0xe4, 0xaf, 0xff, 0x00, 0x23, 0x57, 0x73, 0x2b, + 0x74, 0x3d, 0x92, 0x35, 0x74, 0xaa, 0x53, 0xc5, + 0x4e, 0xea, 0xf1, 0x7a, 0x7e, 0xb7, 0x28, 0xaa, + 0xb6, 0x9a, 0x3e, 0x58, 0x1c, 0x3b, 0x04, 0x1d, + 0x89, 0xd2, 0x97, 0xe6, 0xe9, 0x21, 0x92, 0x49, + 0x53, 0x41, 0x2c, 0xae, 0xef, 0xd6, 0x94, 0x6b, + 0xec, 0xa5, 0xb9, 0x23, 0x65, 0x92, 0x12, 0x15, + 0x9f, 0xde, 0xc9, 0xff, 0x00, 0x64, 0x5e, 0xcb, + 0x9f, 0x6f, 0x15, 0xfa, 0x5f, 0xe4, 0x96, 0x23, + 0x24, 0xb3, 0xf1, 0x35, 0x3a, 0x44, 0xa9, 0xca, + 0x11, 0x09, 0xd3, 0xa5, 0xee, 0x1f, 0x87, 0xcf, + 0xc3, 0xac, 0x16, 0x66, 0xd4, 0x7e, 0x99, 0x69, + 0xca, 0xca, 0xc9, 0xdf, 0xb4, 0x53, 0x4d, 0x2a, + 0xc5, 0xf8, 0x7b, 0xd3, 0x74, 0xf0, 0xe8, 0x33, + 0xc4, 0x27, 0x51, 0x34, 0xbb, 0x50, 0x24, 0x13, + 0xad, 0x71, 0x9d, 0x37, 0x69, 0x84, 0x01, 0x0e, + 0x9a, 0x43, 0x35, 0xda, 0x2b, 0x21, 0x93, 0x2a, + 0xd4, 0xa7, 0x19, 0x53, 0x64, 0x2f, 0x4b, 0xcc, + 0xd4, 0xad, 0x34, 0x45, 0x0b, 0x93, 0x4d, 0x66, + 0x68, 0xe3, 0x93, 0x1d, 0x64, 0x81, 0xb5, 0xe9, + 0x66, 0x98, 0x3a, 0x90, 0x99, 0x4e, 0x8a, 0xe9, + 0x5f, 0x1b, 0xf0, 0xdf, 0xa5, 0xd4, 0x89, 0x47, + 0x34, 0x8a, 0x27, 0x23, 0x61, 0xd4, 0x7d, 0x7e, + 0xd2, 0xb3, 0xf5, 0x02, 0x3b, 0xa0, 0xb0, 0x77, + 0x26, 0xad, 0x1f, 0x8b, 0xa4, 0xd6, 0x0d, 0x09, + 0xb6, 0x4a, 0xdf, 0xab, 0xba, 0xf4, 0x6e, 0xb5, + 0x41, 0x9e, 0x5d, 0x14, 0x0b, 0x3f, 0xc5, 0xfa, + 0x5c, 0xab, 0x58, 0x34, 0xa9, 0x14, 0x9d, 0x26, + 0xbc, 0xeb, 0x29, 0x0c, 0x2c, 0x8d, 0xd1, 0xa6, + 0x59, 0xf4, 0x46, 0x48, 0xe9, 0xaf, 0x7f, 0xeb, + 0x32, 0xeb, 0x6c, 0x70, 0x5c, 0xc2, 0xcc, 0xe2, + 0xfc, 0xe9, 0xa5, 0xb0, 0x87, 0x67, 0xf5, 0x1a, + 0x6d, 0x0f, 0x53, 0x49, 0x66, 0x96, 0x21, 0x77, + 0x56, 0xa3, 0x49, 0xa0, 0xcb, 0x10, 0xb7, 0xe9, + 0xbc, 0x41, 0xb6, 0xae, 0x7a, 0x37, 0x02, 0x76, + 0x79, 0x53, 0xa5, 0x90, 0xf5, 0x24, 0xd3, 0x4a, + 0xa1, 0xbb, 0x5f, 0xf4, 0xca, 0x17, 0x23, 0x7c, + 0xb7, 0x4a, 0x61, 0x19, 0x2f, 0x9c, 0x48, 0xf3, + 0x89, 0x1e, 0x71, 0x23, 0xce, 0x24, 0x36, 0x1a, + 0x55, 0x8a, 0x1d, 0x52, 0x34, 0xbd, 0xb7, 0xdf, + 0x13, 0x63, 0x3e, 0xad, 0x4d, 0x6d, 0x8d, 0x4a, + 0x1d, 0x5a, 0xda, 0x5d, 0xcd, 0x6b, 0x6e, 0x6a, + 0x69, 0xbd, 0x72, 0x82, 0x2e, 0x44, 0x89, 0x41, + 0x16, 0xa3, 0xb9, 0xa9, 0x90, 0xc7, 0x42, 0x21, + 0x91, 0x92, 0xad, 0x6d, 0x63, 0x6a, 0x6e, 0x5e, + 0xee, 0x85, 0xa5, 0xe9, 0x3b, 0x7b, 0x4b, 0x5a, + 0x05, 0xc6, 0x18, 0x59, 0x8b, 0x64, 0xe1, 0x17, + 0xb2, 0xe7, 0xdb, 0xc5, 0x7e, 0x97, 0xf9, 0x49, + 0x26, 0xf1, 0x38, 0x80, 0xbb, 0xf1, 0x03, 0xa6, + 0xd6, 0xd7, 0xe2, 0x0f, 0x4d, 0xc7, 0xc4, 0x1e, + 0x9b, 0x8f, 0x88, 0x3d, 0x37, 0x1f, 0x10, 0x7a, + 0x6e, 0x3e, 0x20, 0xf4, 0xdc, 0x7c, 0x41, 0xe9, + 0xb8, 0xf8, 0x83, 0xd3, 0x71, 0xf1, 0x07, 0xa6, + 0xe3, 0xe2, 0x0f, 0x4d, 0xc7, 0xc4, 0x1e, 0x9b, + 0x8f, 0x88, 0x3d, 0x37, 0x1f, 0x10, 0x7a, 0x6e, + 0x3e, 0x20, 0xf4, 0xdc, 0x7c, 0x41, 0xe9, 0xb8, + 0xf8, 0x83, 0xd3, 0x71, 0xf1, 0x07, 0xa6, 0xe3, + 0xe2, 0x0f, 0x4d, 0xc7, 0xc4, 0x1e, 0x9b, 0x86, + 0x0d, 0x57, 0xd3, 0xf9, 0x22, 0x9a, 0xd2, 0xb4, + 0xa8, 0xba, 0xeb, 0x6c, 0xb4, 0xc9, 0x13, 0x51, + 0x75, 0xc9, 0xdb, 0x06, 0x4e, 0xd8, 0x32, 0x76, + 0xc1, 0x93, 0xb6, 0x0c, 0x9d, 0xb0, 0x64, 0xed, + 0x83, 0x27, 0x6c, 0x19, 0x3b, 0x60, 0xc9, 0xdb, + 0x06, 0x4e, 0xd8, 0x32, 0x76, 0xc1, 0x93, 0xb6, + 0x0c, 0x9d, 0xb0, 0x64, 0xed, 0x83, 0x27, 0x6c, + 0x19, 0x3b, 0x60, 0xac, 0x89, 0x9e, 0xea, 0xe4, + 0x0c, 0xa3, 0x20, 0x65, 0x19, 0x03, 0x28, 0xc8, + 0x19, 0x46, 0x40, 0xca, 0x32, 0x06, 0x51, 0x90, + 0x32, 0x8c, 0x81, 0x94, 0x64, 0x0c, 0xa3, 0x20, + 0x65, 0x19, 0x03, 0x28, 0xc8, 0x19, 0x46, 0x40, + 0xca, 0x32, 0x06, 0x51, 0x90, 0x32, 0x8c, 0x81, + 0x98, 0x64, 0x0c, 0xa3, 0x20, 0x65, 0x19, 0x03, + 0x28, 0xc8, 0x19, 0x46, 0x40, 0xca, 0x32, 0x06, + 0x61, 0x90, 0x33, 0x0c, 0x81, 0x94, 0x64, 0x0c, + 0xa3, 0x20, 0x65, 0x19, 0x03, 0x28, 0x4a, 0xe0, + 0xd0, 0xb2, 0xea, 0x16, 0x5d, 0xb5, 0x93, 0x84, + 0x5e, 0xcb, 0x9f, 0x6f, 0x15, 0xfa, 0x5f, 0x88, + 0x9a, 0x3f, 0x99, 0x17, 0x89, 0xaf, 0x5e, 0xb1, + 0xd1, 0x65, 0x29, 0x5a, 0x8a, 0x52, 0xb5, 0x15, + 0xb6, 0xea, 0x0f, 0x0a, 0xd0, 0x24, 0x44, 0xad, + 0x7a, 0x87, 0x56, 0x07, 0x36, 0x6b, 0x7f, 0xdd, + 0xa0, 0x92, 0xa7, 0x19, 0x1c, 0x3b, 0xc4, 0x3b, + 0x29, 0xaa, 0xf3, 0xef, 0x92, 0x30, 0xd9, 0x5c, + 0x99, 0x9c, 0x64, 0xcc, 0xe3, 0x26, 0x67, 0x19, + 0x33, 0x38, 0xc9, 0x99, 0xc6, 0x4c, 0xce, 0x32, + 0x66, 0x71, 0x93, 0x33, 0x8c, 0x99, 0x9c, 0x64, + 0xcc, 0xe3, 0x26, 0x67, 0x19, 0x33, 0x38, 0xc9, + 0x99, 0xc6, 0x4c, 0xce, 0x32, 0x66, 0x71, 0x93, + 0x33, 0x8c, 0x99, 0x9c, 0x64, 0xcc, 0xe3, 0x26, + 0x67, 0x19, 0x33, 0x38, 0x4e, 0x63, 0x63, 0xc1, + 0x61, 0x5a, 0xb6, 0x86, 0x5b, 0xf2, 0x66, 0x71, + 0x93, 0x33, 0x8c, 0x99, 0x9c, 0x64, 0xcc, 0xe3, + 0x26, 0x67, 0x19, 0x33, 0x38, 0xc9, 0x99, 0xc6, + 0x4c, 0xce, 0x32, 0x66, 0x71, 0x93, 0x33, 0x8c, + 0x99, 0x9c, 0x64, 0xcc, 0xe3, 0x26, 0x67, 0x19, + 0x33, 0x38, 0xc9, 0x99, 0xc6, 0x4c, 0xce, 0x32, + 0x66, 0x71, 0x93, 0x33, 0x8c, 0x99, 0x9c, 0x64, + 0xcc, 0xe2, 0xd9, 0x33, 0x27, 0x89, 0x85, 0xa5, + 0x35, 0x2c, 0x79, 0xc6, 0xf5, 0x89, 0xa4, 0xc1, + 0x17, 0xb2, 0xe7, 0xdb, 0xc5, 0x7e, 0x96, 0x35, + 0x87, 0xfe, 0x62, 0x34, 0xa9, 0x79, 0x11, 0x24, + 0xf1, 0x26, 0x07, 0xc6, 0x19, 0xb3, 0xc1, 0x93, + 0xa6, 0xc8, 0xc6, 0xa8, 0xd9, 0x6b, 0xb4, 0x2e, + 0x47, 0xc6, 0x41, 0x17, 0xd4, 0x13, 0x2d, 0xb0, + 0x8f, 0xf7, 0x7e, 0x19, 0x7e, 0xdf, 0xa7, 0xef, + 0x20, 0x3a, 0xe2, 0xe2, 0xbc, 0x91, 0xc9, 0x1c, + 0x91, 0xc9, 0x1c, 0x91, 0xc9, 0x1c, 0x91, 0x58, + 0xe2, 0x2a, 0xc2, 0xe4, 0x71, 0x82, 0x19, 0xda, + 0x54, 0xc7, 0xe4, 0x28, 0xd6, 0x56, 0x25, 0x2b, + 0xa0, 0x2d, 0x99, 0xec, 0xe7, 0x3e, 0x84, 0xff, + 0x00, 0xd4, 0x9c, 0x58, 0xdf, 0x5a, 0x4a, 0x5e, + 0x4a, 0xc6, 0xc5, 0x5c, 0x91, 0xc9, 0x1c, 0x91, + 0xc9, 0x1c, 0x91, 0xc9, 0x10, 0x65, 0x15, 0xac, + 0xa9, 0xae, 0x9e, 0x2e, 0x6e, 0xaa, 0xab, 0x73, + 0xa7, 0x24, 0x72, 0x43, 0x23, 0x74, 0x7c, 0xe6, + 0x27, 0xb6, 0x22, 0x88, 0xbc, 0xf8, 0xe4, 0x8d, + 0x2a, 0xde, 0x2a, 0xfe, 0x31, 0x51, 0x99, 0x29, + 0xea, 0x11, 0x30, 0xbf, 0x38, 0xa7, 0x88, 0xb4, + 0x27, 0x90, 0xad, 0x95, 0x36, 0xa7, 0x61, 0x73, + 0x65, 0x6a, 0x6d, 0x35, 0xb0, 0x98, 0xcb, 0x3a, + 0xa7, 0xc6, 0xf6, 0x27, 0xc7, 0x7b, 0x5b, 0x9a, + 0x5e, 0x5d, 0x94, 0xa0, 0x60, 0xbe, 0xf4, 0xd6, + 0x33, 0xaa, 0x40, 0x92, 0xe8, 0xcc, 0x9a, 0xc2, + 0x1b, 0x98, 0x5f, 0xdd, 0xd3, 0x2c, 0xb1, 0x4b, + 0x7a, 0xae, 0x48, 0xe4, 0x88, 0x71, 0xd5, 0x31, + 0xa2, 0x2b, 0xf5, 0x09, 0x30, 0x45, 0xec, 0xb9, + 0xf6, 0xf1, 0x5f, 0xa5, 0x8d, 0x61, 0xff, 0x00, + 0x98, 0x8a, 0xcf, 0x71, 0xc8, 0x8b, 0xbc, 0xc2, + 0x3a, 0xec, 0x43, 0x13, 0xe3, 0x62, 0xf8, 0x8b, + 0x64, 0xce, 0x1d, 0x74, 0x86, 0x47, 0x26, 0x48, + 0xf7, 0x0d, 0xff, 0x00, 0x7f, 0xe1, 0x97, 0xed, + 0xfa, 0x7e, 0xf3, 0x03, 0x7c, 0x98, 0x77, 0x38, + 0x73, 0x87, 0x38, 0x73, 0x87, 0x38, 0x73, 0x87, + 0x38, 0x46, 0x8f, 0x4e, 0xad, 0x95, 0x4c, 0x89, + 0x05, 0x14, 0xad, 0x57, 0xc1, 0x73, 0x5d, 0x21, + 0x71, 0xc5, 0x1c, 0x15, 0xf3, 0x1f, 0x1b, 0x96, + 0x51, 0x1b, 0xee, 0x9b, 0xb9, 0x17, 0x21, 0x0f, + 0x2f, 0xd5, 0x75, 0x75, 0xe7, 0x0e, 0x70, 0xe7, + 0x0e, 0x70, 0xe7, 0x0e, 0x70, 0xd3, 0xc5, 0x7e, + 0x64, 0xd1, 0xab, 0xea, 0x8e, 0xcb, 0x7c, 0x1d, + 0xb9, 0xc3, 0x9c, 0x23, 0x92, 0x3b, 0xd9, 0x60, + 0x31, 0x89, 0xd9, 0xaf, 0x52, 0x67, 0x95, 0x8b, + 0xe1, 0xec, 0x1c, 0xa6, 0x0b, 0xdc, 0xe2, 0x6f, + 0x76, 0x48, 0x9b, 0x24, 0x4f, 0xd5, 0xbe, 0x25, + 0xa7, 0x97, 0x98, 0xa9, 0xbb, 0x52, 0xed, 0x65, + 0xb5, 0x04, 0x7e, 0xcb, 0x65, 0xb1, 0x46, 0x06, + 0xa4, 0x11, 0xd9, 0xc3, 0x45, 0xab, 0xa4, 0x2c, + 0x17, 0x39, 0x11, 0x29, 0xb9, 0xad, 0xe2, 0xac, + 0x8e, 0x2b, 0xca, 0xa2, 0x44, 0xfd, 0x59, 0x45, + 0x67, 0x11, 0xfe, 0x5b, 0xbb, 0x24, 0xf1, 0x5e, + 0xc9, 0x8f, 0x38, 0x73, 0x86, 0x9e, 0x1f, 0xe7, + 0x35, 0xc5, 0x7e, 0xa1, 0x26, 0x08, 0xbd, 0x97, + 0x3e, 0xde, 0x2d, 0xf4, 0xc1, 0xac, 0x1f, 0xf3, + 0x21, 0x6d, 0xb7, 0x5f, 0x5b, 0xad, 0xba, 0xda, + 0x8f, 0x0a, 0xd7, 0xf3, 0xb0, 0x93, 0x8c, 0xa7, + 0x94, 0x67, 0x88, 0xba, 0xcb, 0xac, 0xad, 0x6d, + 0xba, 0xd1, 0xb2, 0xff, 0x00, 0x1a, 0xa7, 0x3e, + 0xda, 0x7c, 0xff, 0x00, 0x86, 0x6f, 0xb7, 0xe9, + 0xfb, 0xab, 0x6e, 0x21, 0xfd, 0xa1, 0x4e, 0x9a, + 0xcf, 0x93, 0x1d, 0xe9, 0xec, 0xfc, 0x7a, 0x7b, + 0x3f, 0x1e, 0x9e, 0xcf, 0xc7, 0xa7, 0xb3, 0xf1, + 0xe9, 0xec, 0xfc, 0x7a, 0x7b, 0x3f, 0x1e, 0x9e, + 0x4f, 0x47, 0xa7, 0x93, 0xe1, 0xe9, 0xdc, 0xf4, + 0x7a, 0x79, 0x3e, 0x1e, 0x9e, 0x4f, 0x7c, 0x3d, + 0x3c, 0x9e, 0xf8, 0x33, 0xb6, 0x4f, 0x99, 0x23, + 0xfe, 0x9e, 0xcf, 0xc7, 0xa7, 0xb3, 0xf1, 0xe9, + 0xec, 0xfc, 0x7a, 0x7b, 0x3f, 0x1e, 0x9e, 0xcf, + 0xc7, 0xa7, 0xb3, 0xf1, 0xe9, 0xec, 0xfc, 0x42, + 0xa1, 0x8e, 0x71, 0x43, 0xca, 0x32, 0xe2, 0x4d, + 0x98, 0x69, 0xd3, 0xd2, 0xd7, 0x0f, 0x4f, 0x67, + 0xe3, 0xd3, 0xd9, 0xf8, 0xf4, 0xf2, 0x7c, 0x3d, + 0x3d, 0x9f, 0x8a, 0x69, 0xe4, 0xfa, 0x83, 0xd3, + 0xc9, 0xe8, 0xae, 0x9e, 0x4f, 0xaa, 0x3d, 0x3c, + 0x9f, 0x0a, 0xe9, 0xe4, 0xfa, 0xa3, 0xd3, 0xc9, + 0xf0, 0xae, 0x9e, 0x4f, 0xaa, 0x3d, 0x3c, 0x9e, + 0xf8, 0x57, 0x4f, 0x27, 0xb5, 0x15, 0xd3, 0xc9, + 0xf5, 0x47, 0xa7, 0x93, 0xe1, 0xe9, 0xdc, 0xf4, + 0x7a, 0x77, 0x3d, 0x11, 0xc4, 0xd2, 0xe6, 0x44, + 0x6e, 0x70, 0xfd, 0x49, 0x77, 0x71, 0xf4, 0xf6, + 0x7e, 0x2c, 0xd3, 0xb9, 0xfd, 0xf7, 0x30, 0xc7, + 0xeb, 0x10, 0x64, 0x8b, 0x77, 0xf2, 0x60, 0x8b, + 0xd9, 0x73, 0xed, 0xe2, 0xff, 0x00, 0x4c, 0x1a, + 0xc1, 0xff, 0x00, 0x32, 0x09, 0x5c, 0x54, 0x42, + 0x34, 0xff, 0x00, 0x9e, 0xb7, 0x55, 0xd4, 0x5b, + 0x02, 0x63, 0x75, 0xb2, 0x3b, 0x19, 0x85, 0xb1, + 0x38, 0x37, 0xe9, 0xc3, 0x31, 0xf4, 0x61, 0xd3, + 0x0e, 0xba, 0x8a, 0x2c, 0xe8, 0xad, 0xbd, 0x2b, + 0x43, 0x8a, 0x5a, 0x2b, 0xaf, 0x7d, 0xac, 0xcd, + 0xb7, 0xca, 0x24, 0x1a, 0x8c, 0xd4, 0x54, 0xb5, + 0xf1, 0x42, 0xc4, 0xcb, 0xf5, 0x3e, 0x64, 0x9f, + 0x5a, 0xda, 0xda, 0x7e, 0x7f, 0xc3, 0x37, 0xdb, + 0xd4, 0xfd, 0xd1, 0x77, 0x92, 0xbb, 0x6d, 0xca, + 0x76, 0x58, 0x36, 0x58, 0x36, 0x58, 0x36, 0x58, + 0x36, 0x58, 0x22, 0x69, 0x5a, 0x94, 0xbf, 0xb0, + 0xa1, 0x42, 0xae, 0x42, 0x92, 0x2c, 0xd5, 0x47, + 0xb3, 0xe3, 0xc8, 0xed, 0x26, 0x3a, 0xd4, 0x52, + 0xd6, 0xea, 0x31, 0x5a, 0xb9, 0x0d, 0x22, 0xea, + 0x0c, 0xa2, 0x78, 0xb2, 0x7e, 0x90, 0xbd, 0xb8, + 0xd6, 0xd5, 0x9b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, + 0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x0c, 0x3f, + 0xe2, 0x0c, 0x35, 0x2e, 0x94, 0xab, 0x66, 0xcb, + 0x06, 0xcb, 0x06, 0xcb, 0x04, 0x61, 0x0a, 0x35, + 0xcf, 0x24, 0xc7, 0xec, 0x7e, 0x45, 0x8b, 0x2a, + 0xa8, 0x4f, 0x16, 0x58, 0x65, 0x0f, 0x8b, 0xac, + 0x28, 0xb3, 0x22, 0x8b, 0x2e, 0x56, 0x5c, 0x49, + 0x71, 0x89, 0x5a, 0x90, 0x21, 0xe0, 0xd1, 0x8d, + 0x3b, 0xca, 0x4c, 0x65, 0x45, 0x2f, 0x64, 0x88, + 0x93, 0x5b, 0xa9, 0x19, 0x34, 0xfb, 0x9c, 0x61, + 0xb4, 0x4a, 0xb1, 0x4c, 0x6d, 0x5a, 0x24, 0x1b, + 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x15, + 0xfa, 0x7c, 0x5b, 0xbf, 0x92, 0x84, 0x5e, 0xcb, + 0x9f, 0x6f, 0x17, 0xfa, 0x60, 0xd5, 0xff, 0x00, + 0xf9, 0x90, 0x66, 0x73, 0x8f, 0x3e, 0x45, 0x5b, + 0x65, 0x90, 0x98, 0x82, 0xa6, 0xb7, 0x48, 0x5c, + 0x38, 0xa6, 0x57, 0xe8, 0xf5, 0x65, 0xf6, 0x4b, + 0x23, 0xae, 0x49, 0xe3, 0x72, 0xb8, 0x73, 0x3b, + 0x62, 0xc2, 0x89, 0x21, 0x58, 0x2a, 0x68, 0xfd, + 0x6b, 0x39, 0x7a, 0x83, 0x17, 0x2d, 0xf6, 0xed, + 0x4a, 0x4c, 0xce, 0xc8, 0xa3, 0x52, 0x63, 0x6b, + 0xa4, 0xca, 0x2e, 0xb6, 0xf5, 0x1f, 0x3f, 0xe1, + 0x9e, 0x9f, 0xfd, 0x72, 0x9f, 0xba, 0x2e, 0xf2, + 0x55, 0xf7, 0x4f, 0xca, 0xca, 0xac, 0xa6, 0xf7, + 0x76, 0x65, 0xe4, 0x20, 0x7b, 0x2e, 0x50, 0x8b, + 0xc8, 0xab, 0xc3, 0x45, 0xab, 0x11, 0xae, 0x4e, + 0x4b, 0x2c, 0x79, 0xe1, 0xb1, 0xb9, 0x1e, 0x48, + 0x82, 0x89, 0x9d, 0xa4, 0x0d, 0xeb, 0x5b, 0xa4, + 0x0b, 0xc8, 0x74, 0x78, 0xf9, 0x98, 0x7e, 0xc7, + 0x1a, 0x95, 0xf4, 0xcf, 0xce, 0x3c, 0xe2, 0x53, + 0x53, 0xab, 0x4b, 0xc5, 0xe4, 0x38, 0x27, 0x92, + 0x11, 0xd3, 0xed, 0x78, 0x62, 0x35, 0x6d, 0x64, + 0xad, 0xd5, 0x44, 0xb6, 0x42, 0xcc, 0xe4, 0xe1, + 0x49, 0x2a, 0x3b, 0xd6, 0x36, 0x2e, 0x4e, 0x5a, + 0x44, 0x6f, 0x0d, 0xed, 0xd4, 0x70, 0x7d, 0x68, + 0x74, 0x29, 0x04, 0xad, 0x81, 0x15, 0xa8, 0x64, + 0x6c, 0xc9, 0xc3, 0xab, 0xdb, 0x1b, 0xd5, 0x92, + 0x37, 0xd2, 0x5f, 0x3e, 0x5b, 0xbe, 0x9f, 0x17, + 0xef, 0xe4, 0x81, 0x17, 0xb2, 0xe7, 0xdb, 0xc5, + 0xfe, 0x98, 0x35, 0x7f, 0xfe, 0x64, 0x2b, 0x65, + 0xf4, 0xb6, 0xb6, 0x5f, 0x6d, 0x07, 0x85, 0x69, + 0xf9, 0x52, 0xdb, 0xae, 0x16, 0x12, 0x71, 0x96, + 0xd8, 0x49, 0xa6, 0x5b, 0x4a, 0x56, 0xb5, 0xbe, + 0xcb, 0xcb, 0xba, 0xe2, 0x0f, 0xb0, 0x6c, 0xbe, + 0xb6, 0xff, 0x00, 0xa3, 0xf0, 0xd1, 0xf6, 0xcd, + 0x3f, 0x74, 0x5d, 0xe4, 0x86, 0x57, 0x62, 0x79, + 0x06, 0x63, 0x60, 0xcc, 0x6c, 0x19, 0x8d, 0x83, + 0x31, 0xb0, 0x37, 0xba, 0x9a, 0xe0, 0x4f, 0x54, + 0xa9, 0x49, 0x4b, 0x73, 0x3c, 0xc4, 0x56, 0xc8, + 0x8f, 0xb9, 0x3d, 0x54, 0x3b, 0x5b, 0x5b, 0x24, + 0x6a, 0x0c, 0x59, 0xce, 0x74, 0xaa, 0x85, 0x6f, + 0x2a, 0xd1, 0x27, 0x31, 0xcd, 0xcc, 0xa5, 0x44, + 0x3a, 0x39, 0x29, 0x71, 0xcc, 0x4b, 0x19, 0x8d, + 0x83, 0x31, 0xb0, 0x66, 0x36, 0x0c, 0xc6, 0xc1, + 0x98, 0xd8, 0x12, 0xad, 0xa3, 0x84, 0x50, 0x4e, + 0xe4, 0xc9, 0xa3, 0xac, 0xbe, 0xac, 0xb0, 0x0f, + 0x56, 0x58, 0x03, 0x4c, 0xe0, 0x87, 0xd3, 0x96, + 0x3d, 0xac, 0x40, 0x55, 0x92, 0xfa, 0x9b, 0x53, + 0x25, 0xf5, 0x2a, 0xfc, 0xce, 0xd0, 0x5c, 0xbf, + 0xcd, 0x31, 0x6b, 0xab, 0x83, 0x79, 0x79, 0x9d, + 0xa1, 0x34, 0x98, 0xf5, 0x76, 0x66, 0x76, 0x84, + 0x72, 0x73, 0x9c, 0x15, 0x26, 0x94, 0x1c, 0xb1, + 0x4a, 0x79, 0x12, 0x95, 0x44, 0xa8, 0x93, 0x1e, + 0x92, 0xcc, 0xce, 0xd1, 0x99, 0xda, 0x33, 0x3b, + 0x45, 0x65, 0xf5, 0xb6, 0xdc, 0xce, 0xd0, 0xa8, + 0xee, 0x4a, 0x78, 0xbf, 0x7f, 0x24, 0x08, 0xbd, + 0x97, 0x3e, 0xde, 0x31, 0xf4, 0xd1, 0xab, 0xdf, + 0xf3, 0x20, 0xfb, 0xff, 0x00, 0x32, 0xab, 0x23, + 0x3b, 0xfb, 0x7c, 0xa9, 0x81, 0x91, 0x2b, 0x53, + 0x9b, 0x1c, 0x4d, 0xe1, 0x9e, 0x54, 0xc0, 0xcc, + 0x91, 0xb3, 0x4f, 0x5c, 0x5a, 0x2c, 0x8d, 0xe9, + 0xb4, 0x91, 0xfe, 0xe3, 0x88, 0x90, 0x9a, 0xc0, + 0xa9, 0x32, 0x42, 0x90, 0x6a, 0x04, 0xc9, 0x81, + 0x2c, 0xa7, 0x53, 0x1f, 0x95, 0x24, 0x93, 0xa9, + 0xa3, 0x5c, 0x69, 0xab, 0x4e, 0xe4, 0xcc, 0x30, + 0x94, 0x11, 0x1f, 0x9f, 0xf0, 0xd3, 0xf6, 0xcd, + 0x3f, 0x74, 0x5d, 0xe4, 0xa7, 0xee, 0x8f, 0x92, + 0x3e, 0x90, 0x9b, 0x6d, 0x44, 0xb9, 0x53, 0xd2, + 0x85, 0x69, 0xda, 0xdc, 0x4d, 0x89, 0xa9, 0x6f, + 0x21, 0x86, 0xe2, 0xc8, 0x6d, 0x60, 0x36, 0xe7, + 0x44, 0xf3, 0x76, 0x4b, 0x1b, 0x14, 0x28, 0x46, + 0xd2, 0x4a, 0xc6, 0x8b, 0x54, 0x24, 0x79, 0x5c, + 0x8e, 0xb4, 0xb5, 0xe6, 0x9f, 0xb7, 0xca, 0xc7, + 0xf6, 0x40, 0xd7, 0x8f, 0xb5, 0xac, 0x75, 0x67, + 0x4e, 0xc6, 0xec, 0xa1, 0x2a, 0xc6, 0x9d, 0x20, + 0xfa, 0xfb, 0x7a, 0x74, 0xae, 0xa9, 0xda, 0x6e, + 0x4d, 0xc2, 0x75, 0xb5, 0xb6, 0x8e, 0x05, 0x58, + 0xd5, 0xb1, 0x6a, 0x14, 0x24, 0xbe, 0x98, 0x5a, + 0x67, 0x13, 0x8b, 0x6c, 0x69, 0x72, 0x11, 0x5a, + 0x26, 0x73, 0xb2, 0xe4, 0xe9, 0x51, 0x5a, 0xd3, + 0x62, 0x26, 0xb7, 0xe8, 0xc7, 0x86, 0x53, 0x18, + 0xa3, 0x52, 0xb4, 0x26, 0x50, 0x93, 0xe8, 0xe4, + 0x91, 0x95, 0x21, 0x4f, 0x46, 0xa0, 0x47, 0x43, + 0xdb, 0x90, 0x36, 0xb9, 0x39, 0xa4, 0x40, 0x9c, + 0xb9, 0x0d, 0x11, 0xf3, 0x6b, 0xf4, 0xf8, 0xc7, + 0x7f, 0x23, 0x08, 0xbd, 0x97, 0x3e, 0xde, 0x31, + 0xf4, 0xdf, 0x11, 0xab, 0xdf, 0xf3, 0x30, 0xcb, + 0x28, 0x61, 0xc7, 0x63, 0x12, 0x84, 0x0f, 0x12, + 0x39, 0x44, 0x8d, 0xbd, 0xd1, 0x1a, 0x1d, 0x41, + 0x67, 0x21, 0xbe, 0x53, 0x24, 0x6f, 0x75, 0x49, + 0x1b, 0x7e, 0x2d, 0x88, 0x36, 0xca, 0xa1, 0x65, + 0xc3, 0xd9, 0x67, 0xb1, 0xe4, 0x09, 0x91, 0x3a, + 0x5e, 0x4b, 0xe1, 0xba, 0x91, 0xe2, 0xc4, 0xae, + 0x7a, 0x99, 0x4b, 0x6b, 0x04, 0x91, 0xbd, 0xb5, + 0x96, 0x6d, 0x26, 0x88, 0x4a, 0x4d, 0xf9, 0xff, + 0x00, 0x0d, 0x3f, 0x6c, 0xd2, 0xbf, 0xe5, 0x17, + 0x79, 0x22, 0x68, 0x8d, 0x19, 0x20, 0xe8, 0xb1, + 0x51, 0xd1, 0x62, 0xa3, 0xa2, 0xc5, 0x47, 0x45, + 0x8a, 0x82, 0x68, 0xd0, 0x84, 0xab, 0x6c, 0x68, + 0xa1, 0x34, 0x4a, 0xc9, 0x6a, 0x4e, 0x99, 0x1c, + 0xf2, 0x68, 0x7a, 0x3a, 0x0b, 0x5b, 0x63, 0x96, + 0x9e, 0x65, 0xad, 0x67, 0x1c, 0x8c, 0x86, 0x66, + 0xfb, 0x52, 0xa3, 0x61, 0x42, 0x2c, 0x4c, 0xca, + 0x58, 0xe8, 0xb1, 0x41, 0xd1, 0x62, 0xa3, 0xa2, + 0xc5, 0x47, 0x45, 0x8a, 0x8e, 0x8b, 0x15, 0x1d, + 0x16, 0x2a, 0x11, 0x90, 0x91, 0x34, 0x4c, 0x48, + 0x63, 0xa8, 0x26, 0x6c, 0x77, 0xe8, 0xa3, 0xb5, + 0x97, 0x7a, 0x2e, 0xec, 0x1b, 0x34, 0xca, 0x56, + 0xcd, 0x79, 0xf1, 0x6d, 0x48, 0x53, 0x75, 0xd1, + 0xdd, 0x4f, 0xba, 0xfc, 0x73, 0x53, 0xb7, 0x37, + 0xc3, 0xa6, 0x49, 0xd6, 0x99, 0x05, 0x9c, 0x18, + 0xa1, 0x54, 0x5f, 0x52, 0x56, 0xda, 0x7c, 0x6b, + 0x53, 0x14, 0xda, 0x74, 0x53, 0x51, 0x94, 0x54, + 0xb8, 0xce, 0xa5, 0x94, 0x62, 0x48, 0xb6, 0xa4, + 0x20, 0x05, 0x41, 0x27, 0x24, 0x1c, 0x9e, 0x17, + 0x3f, 0x49, 0x4a, 0xc5, 0xb5, 0x26, 0xe4, 0xb5, + 0x88, 0xea, 0x25, 0xc8, 0xcd, 0x86, 0x6a, 0x01, + 0xf4, 0xb2, 0x33, 0xa9, 0x65, 0xd7, 0x1a, 0xd4, + 0xcd, 0xe9, 0xa0, 0x12, 0x35, 0xcb, 0x55, 0x9c, + 0x51, 0xc7, 0x46, 0x3b, 0xe9, 0x18, 0x45, 0xec, + 0xb9, 0xf6, 0xf1, 0x9f, 0xa6, 0x8d, 0x4b, 0xbd, + 0xb4, 0xb8, 0x0f, 0x37, 0x4a, 0xc7, 0x37, 0x4a, + 0xc5, 0x8e, 0x3a, 0x5e, 0x58, 0xe6, 0xe9, 0x58, + 0x26, 0xdd, 0x3b, 0x51, 0x61, 0x65, 0xe9, 0xe1, + 0xa2, 0xa7, 0xe9, 0x8d, 0xb4, 0xb9, 0x4e, 0x97, + 0xdb, 0x6f, 0x37, 0x4a, 0xc7, 0x37, 0x4a, 0xc7, + 0x37, 0x4a, 0xc5, 0x57, 0x69, 0x5d, 0x04, 0xa9, + 0xb7, 0x4b, 0xe2, 0xef, 0x9c, 0xdd, 0x2b, 0x1c, + 0xed, 0x2b, 0x06, 0x9f, 0xa6, 0x24, 0x56, 0xdb, + 0x34, 0xee, 0xfb, 0xef, 0xbb, 0x4d, 0x4b, 0xbf, + 0x95, 0xa5, 0xfb, 0x39, 0xba, 0x56, 0x39, 0xba, + 0x56, 0x34, 0x14, 0xe8, 0xd9, 0xd1, 0xfa, 0x7e, + 0xe8, 0xbb, 0xc9, 0x57, 0xdd, 0x3f, 0x24, 0x59, + 0x27, 0x25, 0x7c, 0x83, 0x9d, 0x75, 0xf2, 0xf6, + 0x74, 0xd1, 0x9a, 0xc8, 0x90, 0x58, 0x59, 0xcd, + 0x64, 0x1b, 0x8c, 0x12, 0x4a, 0xbe, 0x84, 0x4a, + 0x77, 0x3b, 0x98, 0x96, 0xa0, 0xbe, 0xd4, 0x4b, + 0xc8, 0x6e, 0x47, 0x64, 0x6d, 0x3b, 0x2a, 0xcb, + 0x88, 0x64, 0x21, 0xb9, 0x8b, 0xe5, 0x61, 0xfb, + 0x1f, 0xfb, 0x11, 0x8e, 0xfa, 0x46, 0x11, 0x7b, + 0x2e, 0x7d, 0xbc, 0x67, 0xe9, 0xa3, 0x57, 0xff, + 0x00, 0xe6, 0x5f, 0x23, 0x42, 0xda, 0x24, 0xd3, + 0x58, 0xf1, 0x92, 0x15, 0xd0, 0x09, 0x8b, 0x92, + 0x27, 0x38, 0xfc, 0xae, 0xbf, 0xfd, 0x27, 0xf3, + 0xbb, 0xf8, 0xea, 0xdf, 0xdf, 0x82, 0xef, 0xe3, + 0xa8, 0x0d, 0x65, 0xca, 0xdf, 0x56, 0xb8, 0xb8, + 0xbf, 0x58, 0x63, 0x85, 0x86, 0xa2, 0x2e, 0xbf, + 0xa5, 0xbf, 0x97, 0xe1, 0x9f, 0xed, 0x9a, 0x7e, + 0xe8, 0xbb, 0xc9, 0x42, 0x05, 0xd7, 0xc9, 0xfa, + 0x73, 0x80, 0xe9, 0xce, 0x03, 0xa7, 0x38, 0x0e, + 0x9c, 0xe0, 0x1b, 0x2c, 0x5e, 0x81, 0x43, 0x9d, + 0xaa, 0xd5, 0xd8, 0xa9, 0xd9, 0x62, 0xd3, 0x9c, + 0x57, 0xf2, 0x16, 0x27, 0xff, 0x00, 0x2c, 0xb4, + 0xf2, 0x2a, 0xd4, 0xaa, 0x87, 0x5c, 0xd1, 0x6d, + 0xee, 0x45, 0xb4, 0x2e, 0x72, 0x35, 0xc5, 0x45, + 0xab, 0xd4, 0x90, 0x43, 0x8b, 0xcb, 0x83, 0x85, + 0x3a, 0x73, 0x80, 0xe9, 0xce, 0x03, 0xa7, 0x38, + 0x0e, 0x9c, 0xe0, 0x3a, 0x73, 0x80, 0x66, 0x2c, + 0xc2, 0x61, 0x3f, 0xd8, 0x8c, 0x77, 0xd2, 0x30, + 0x8b, 0xd9, 0x73, 0xed, 0xe3, 0x3f, 0x4d, 0xf1, + 0x1a, 0x9e, 0xde, 0xb9, 0xdb, 0x4f, 0xbd, 0x35, + 0xd4, 0x21, 0xe9, 0xae, 0xa1, 0x0f, 0x4d, 0x75, + 0x08, 0x7a, 0x6b, 0xa8, 0x41, 0x7c, 0x4f, 0x51, + 0xd7, 0xb0, 0x5f, 0x12, 0xd4, 0x7b, 0xe3, 0x11, + 0xa8, 0xe4, 0xf9, 0x88, 0xb9, 0x3c, 0x67, 0x51, + 0xa4, 0x8a, 0x7d, 0x35, 0xd4, 0x21, 0xe9, 0xae, + 0xa1, 0x0f, 0x4d, 0x75, 0x08, 0x57, 0x4d, 0x35, + 0x0b, 0xc3, 0x53, 0xa0, 0x73, 0x57, 0x29, 0xa7, + 0xa6, 0xba, 0x84, 0x2b, 0xa6, 0x9a, 0x85, 0x5a, + 0x1f, 0x5d, 0x55, 0x36, 0xe5, 0x4d, 0xda, 0x98, + 0xa9, 0x92, 0x33, 0x16, 0xd4, 0xa8, 0xcb, 0xac, + 0x8a, 0x3f, 0x3a, 0x77, 0x41, 0xe9, 0xae, 0xa1, + 0x0f, 0x4d, 0x75, 0x08, 0x7e, 0x1f, 0xe3, 0xef, + 0xb1, 0xe8, 0xed, 0x2b, 0xfe, 0x51, 0x77, 0x92, + 0x59, 0x44, 0x94, 0x89, 0x1e, 0x5b, 0x2a, 0x19, + 0x6c, 0xa8, 0x65, 0xb2, 0xa1, 0x96, 0xca, 0x86, + 0x5b, 0x2a, 0x19, 0x6c, 0xa8, 0x65, 0xb2, 0xa1, + 0x96, 0xca, 0x82, 0xa5, 0x2f, 0xe4, 0xad, 0x29, + 0x7c, 0x96, 0xb7, 0x2d, 0x51, 0x34, 0x42, 0xc4, + 0xf6, 0xe5, 0x30, 0x63, 0xbb, 0x2d, 0x95, 0x0c, + 0xb6, 0x54, 0x32, 0xd9, 0x50, 0xcb, 0x65, 0x43, + 0x2d, 0x95, 0x0c, 0xb6, 0x54, 0x32, 0xd9, 0x50, + 0xcb, 0x65, 0x41, 0xb5, 0x62, 0xb5, 0xf0, 0xef, + 0xec, 0x46, 0x7b, 0xe9, 0x10, 0x45, 0xec, 0xb9, + 0xf6, 0xf1, 0x9f, 0xa7, 0x0d, 0x55, 0xbe, 0xf2, + 0xf4, 0xdf, 0x9e, 0xbc, 0x45, 0x62, 0xce, 0x52, + 0x98, 0xda, 0x48, 0xa9, 0x8a, 0xe3, 0x30, 0xd8, + 0xb9, 0x92, 0x32, 0x9b, 0xd9, 0x58, 0xd1, 0xb6, + 0xbb, 0xda, 0xe6, 0xce, 0xe9, 0xa6, 0x8f, 0xef, + 0x97, 0x13, 0xcf, 0x5e, 0x22, 0xd6, 0x9c, 0xf3, + 0x26, 0x7f, 0xc7, 0x9b, 0xa8, 0xed, 0x58, 0x42, + 0x68, 0x94, 0xf6, 0x23, 0x56, 0x35, 0x1a, 0x96, + 0xd0, 0x9a, 0x28, 0xf9, 0xcf, 0x5e, 0x1a, 0x5e, + 0x9e, 0x11, 0x69, 0x7b, 0x4a, 0x44, 0x05, 0xb1, + 0xd1, 0x9d, 0xd0, 0xda, 0xe3, 0xce, 0x36, 0x3c, + 0xaf, 0x65, 0x6a, 0x3d, 0xc5, 0x94, 0xc4, 0x7c, + 0x09, 0xdf, 0x0a, 0x36, 0xe7, 0xf8, 0x71, 0x5a, + 0xb1, 0x6c, 0x6a, 0x9f, 0xba, 0x2e, 0xf2, 0x55, + 0xf7, 0x4f, 0xfa, 0x17, 0xa8, 0x42, 0xe2, 0xf6, + 0xb9, 0x09, 0x8f, 0xae, 0x17, 0xb8, 0x36, 0x3f, + 0x56, 0x54, 0xba, 0xae, 0x55, 0xff, 0x00, 0x43, + 0x0f, 0xd8, 0xff, 0x00, 0xd8, 0x8c, 0xf7, 0xd2, + 0x20, 0x8b, 0xd9, 0x73, 0xed, 0xe3, 0x3f, 0x4e, + 0x1a, 0xad, 0x65, 0xd7, 0xe9, 0xb0, 0x88, 0x3d, + 0x9e, 0xc1, 0x11, 0x94, 0x48, 0x98, 0xd8, 0xd6, + 0x24, 0xab, 0x63, 0x1e, 0xa7, 0x9f, 0x1e, 0xbe, + 0x7e, 0xde, 0xf9, 0x63, 0x49, 0x4f, 0x1a, 0x65, + 0xef, 0x88, 0x52, 0xa4, 0xe8, 0xa6, 0x33, 0x32, + 0xa4, 0x87, 0xa1, 0x76, 0x5c, 0x8c, 0xdd, 0x3f, + 0x3e, 0x57, 0x1a, 0xe7, 0xcd, 0x17, 0xa6, 0x70, + 0xa0, 0x47, 0xff, 0x00, 0x2b, 0x82, 0x11, 0x28, + 0xb1, 0x91, 0x95, 0x74, 0x71, 0x12, 0x43, 0x1d, + 0x90, 0x19, 0x0b, 0x52, 0xc4, 0xa6, 0x33, 0x3a, + 0x7f, 0x32, 0xc2, 0x9c, 0x75, 0x24, 0xd2, 0x8f, + 0x9f, 0xfe, 0x1a, 0x29, 0x5c, 0x5e, 0x9f, 0xba, + 0x3f, 0xf0, 0xae, 0x4a, 0xa6, 0x22, 0x5c, 0x8f, + 0x99, 0x0a, 0x1c, 0xc8, 0x50, 0xe6, 0x42, 0x87, + 0x32, 0x14, 0x39, 0x90, 0xa0, 0x8c, 0x98, 0xd3, + 0x85, 0xbc, 0x58, 0xf5, 0x4d, 0xb3, 0x15, 0x31, + 0x29, 0xf8, 0xa2, 0x6b, 0x52, 0x13, 0x18, 0x70, + 0xba, 0xad, 0xd1, 0xde, 0x4a, 0xdb, 0x22, 0x8d, + 0xc6, 0x27, 0xbe, 0x24, 0xac, 0xd2, 0xce, 0x87, + 0x9b, 0x4e, 0x64, 0x28, 0x73, 0x21, 0x43, 0x99, + 0x0a, 0x1c, 0xc8, 0x50, 0xe6, 0x42, 0x87, 0x32, + 0x14, 0x10, 0x5e, 0x84, 0xc8, 0x8f, 0xf6, 0x23, + 0x3d, 0xf4, 0x88, 0x22, 0xf6, 0x5c, 0xfb, 0x78, + 0xd7, 0xd3, 0x85, 0xd6, 0xd8, 0x65, 0x8a, 0xb4, + 0x03, 0x4d, 0xd4, 0x1f, 0xf0, 0xf3, 0xa7, 0x23, + 0xe1, 0xe7, 0x4e, 0x47, 0xc3, 0xce, 0x9c, 0x8f, + 0x87, 0x9d, 0x39, 0x1f, 0x0f, 0x3a, 0x74, 0x19, + 0x74, 0x5e, 0x0e, 0xc3, 0x77, 0xc3, 0xce, 0x9d, + 0x0f, 0x87, 0x9d, 0x3a, 0x1f, 0x0f, 0x3a, 0x74, + 0x3e, 0x1e, 0x74, 0xe8, 0x7c, 0x3c, 0xe9, 0xd0, + 0xf8, 0x79, 0xd3, 0xa1, 0xf0, 0xf3, 0xa7, 0x40, + 0xbd, 0x14, 0x83, 0x14, 0xc5, 0xf0, 0xf1, 0xa7, + 0x23, 0xe1, 0xe7, 0x4e, 0x47, 0xc3, 0xce, 0x9c, + 0x8f, 0x87, 0x8d, 0x39, 0x1f, 0x0f, 0x3a, 0x72, + 0x3e, 0x1e, 0x74, 0xe4, 0x31, 0x30, 0xb4, 0x46, + 0x5a, 0xe9, 0xfb, 0xa4, 0xee, 0xe5, 0xdf, 0x75, + 0xfc, 0xa8, 0x3e, 0xd4, 0x8d, 0xab, 0x29, 0x2a, + 0x7e, 0x94, 0xa9, 0x3b, 0x0c, 0xb2, 0x88, 0xdc, + 0x1a, 0x55, 0x26, 0x51, 0x7b, 0x29, 0xa9, 0x4e, + 0x72, 0x6b, 0x7d, 0xbd, 0x19, 0xcb, 0x19, 0x88, + 0x40, 0x44, 0xa9, 0xa1, 0x32, 0x15, 0x2b, 0x29, + 0xfb, 0x7c, 0xac, 0x3f, 0x63, 0xff, 0x00, 0x62, + 0x35, 0xdf, 0x48, 0x7f, 0x74, 0x5e, 0xcb, 0x9f, + 0x6f, 0x1a, 0xfa, 0x77, 0xf6, 0x29, 0xfb, 0xd9, + 0x75, 0x6c, 0xbe, 0x5b, 0x0d, 0x73, 0x72, 0x76, + 0xc2, 0x25, 0xe3, 0x08, 0x97, 0x8c, 0x22, 0x5e, + 0x30, 0x89, 0x78, 0xc2, 0x25, 0xe1, 0x0c, 0x7a, + 0x7a, 0xdc, 0x51, 0xb1, 0xfd, 0x41, 0x3e, 0xfb, + 0x1b, 0xf5, 0x36, 0xc5, 0x69, 0xe2, 0xb3, 0x94, + 0xa5, 0x94, 0xc1, 0x32, 0x29, 0xba, 0xc6, 0xdd, + 0x48, 0x29, 0x4a, 0xb8, 0xac, 0xd5, 0x75, 0xf5, + 0x6f, 0xd4, 0xca, 0xdc, 0xd8, 0xc5, 0x34, 0x45, + 0x4c, 0x22, 0x5c, 0x30, 0x89, 0x78, 0xc2, 0x25, + 0xe3, 0x08, 0x97, 0x8c, 0x22, 0x5e, 0x0a, 0x81, + 0xcb, 0xcd, 0xbc, 0xb4, 0xe5, 0x36, 0x34, 0x8a, + 0x37, 0x19, 0x42, 0xf8, 0xa9, 0x07, 0x15, 0x20, + 0xe2, 0xa4, 0x1c, 0x54, 0x83, 0x8a, 0x90, 0x71, + 0x52, 0x0e, 0x2a, 0x41, 0xc5, 0x48, 0x38, 0xa9, + 0x07, 0x15, 0x20, 0xe2, 0xa4, 0x1c, 0x54, 0x83, + 0x8a, 0x90, 0x71, 0x52, 0x0e, 0x2a, 0x41, 0xc5, + 0x48, 0x38, 0xa9, 0x07, 0x15, 0x20, 0xe2, 0xa4, + 0x1c, 0x54, 0x82, 0x8d, 0xb7, 0x1d, 0x68, 0x8d, + 0x77, 0xd2, 0x1f, 0xdd, 0x17, 0xb2, 0xe7, 0xdb, + 0xc6, 0xbe, 0x9f, 0xfd, 0x8a, 0x7e, 0xe9, 0x92, + 0xf9, 0xe2, 0xe7, 0x28, 0xc5, 0x95, 0xea, 0xb1, + 0x91, 0xd5, 0x63, 0x23, 0xaa, 0xc6, 0x47, 0x55, + 0x8c, 0x8e, 0xab, 0x19, 0x1d, 0x56, 0x32, 0x3a, + 0xac, 0x64, 0x75, 0x58, 0xc8, 0xea, 0xb1, 0x91, + 0xd5, 0x63, 0x23, 0xaa, 0xc6, 0x47, 0x55, 0x8c, + 0x8e, 0xab, 0x19, 0x1d, 0x56, 0x32, 0x3a, 0xac, + 0x64, 0x75, 0x58, 0xc8, 0xea, 0xb1, 0x91, 0xd5, + 0x63, 0x23, 0xaa, 0xc6, 0x47, 0x55, 0x8c, 0x82, + 0x8a, 0x40, 0xe2, 0x5b, 0x39, 0x05, 0xa9, 0x72, + 0x5a, 0xec, 0x7b, 0x8a, 0xae, 0x40, 0xe4, 0x06, + 0xc4, 0xcb, 0x1d, 0xd6, 0xbc, 0x47, 0x1c, 0x99, + 0x92, 0xf2, 0x85, 0x8a, 0x2a, 0x65, 0xce, 0x44, + 0x29, 0x69, 0x5b, 0xca, 0x1c, 0xaa, 0x04, 0x74, + 0x31, 0x6a, 0xb3, 0x62, 0xae, 0xe4, 0xbe, 0xba, + 0x10, 0x7b, 0x42, 0xfe, 0x48, 0xbd, 0x1a, 0x8b, + 0x1a, 0x39, 0x41, 0xe5, 0x0a, 0xa6, 0x25, 0x9c, + 0xa1, 0xc9, 0x1c, 0x81, 0xc8, 0x04, 0xaf, 0x39, + 0x39, 0xae, 0x57, 0xd0, 0xf3, 0x23, 0x7d, 0xec, + 0x83, 0xf7, 0x45, 0xec, 0xb9, 0xf6, 0xf1, 0xaf, + 0xa7, 0xff, 0x00, 0x62, 0x9f, 0xbc, 0x8d, 0x4d, + 0xe4, 0xb0, 0xf2, 0x04, 0x69, 0xa4, 0xb7, 0xc3, + 0x9c, 0x59, 0x11, 0x99, 0x42, 0x52, 0x38, 0x29, + 0x25, 0x24, 0x6d, 0xe4, 0xe7, 0x53, 0xd8, 0x5d, + 0xe8, 0xea, 0x95, 0xb1, 0xdd, 0x70, 0x35, 0x9d, + 0xec, 0x92, 0xa3, 0x48, 0x4a, 0x7c, 0x79, 0x41, + 0x0d, 0x21, 0x54, 0x92, 0xd6, 0x57, 0x65, 0x46, + 0xa5, 0x6b, 0x77, 0x5d, 0x62, 0x76, 0xd7, 0x65, + 0x6a, 0x8a, 0x6e, 0x76, 0x39, 0x69, 0xcd, 0x8e, + 0xe9, 0xcf, 0xb9, 0xa9, 0xe2, 0xd5, 0xbd, 0x02, + 0x43, 0x5b, 0xd2, 0x36, 0xbb, 0x2f, 0x35, 0x2b, + 0x73, 0xaa, 0xda, 0x34, 0xc6, 0x1c, 0xdc, 0xaf, + 0xb8, 0xea, 0xd9, 0x74, 0x69, 0x6d, 0xe5, 0x48, + 0x5a, 0xed, 0xa5, 0x92, 0x0b, 0x56, 0x53, 0x6f, + 0x32, 0x83, 0x99, 0x41, 0x09, 0x58, 0xef, 0x47, + 0xd5, 0x37, 0xa3, 0xa4, 0x75, 0xe6, 0x89, 0xda, + 0x89, 0x90, 0x2a, 0xbc, 0xe6, 0xe3, 0x94, 0x1a, + 0x6c, 0x94, 0xd5, 0x88, 0x50, 0x2e, 0x4b, 0x20, + 0xb9, 0x5b, 0x9b, 0x1a, 0x8b, 0x69, 0x28, 0x52, + 0x7d, 0x9b, 0xd5, 0x9c, 0x73, 0x7a, 0xc2, 0x48, + 0x24, 0xd7, 0xa3, 0x9c, 0x9c, 0x1c, 0x1b, 0x15, + 0x26, 0x56, 0x91, 0xb0, 0xcb, 0x53, 0xd8, 0xf8, + 0x9d, 0x4b, 0x62, 0x37, 0x9d, 0x43, 0xb0, 0xc4, + 0x12, 0x5e, 0x65, 0x07, 0x32, 0x83, 0x99, 0x40, + 0x75, 0x77, 0x23, 0x8d, 0xf7, 0xb2, 0x0f, 0xdd, + 0x17, 0xb2, 0xe7, 0xdb, 0xc6, 0xbe, 0x9f, 0xfd, + 0x8a, 0x7e, 0xf3, 0x63, 0xbc, 0x96, 0x6e, 0x68, + 0x80, 0x18, 0xe4, 0x7a, 0xf9, 0x3b, 0xa9, 0xcc, + 0xe4, 0xbb, 0x2a, 0xb2, 0x3c, 0xf6, 0xe0, 0x71, + 0x88, 0xd5, 0xa2, 0xb5, 0xd6, 0x95, 0x7a, 0x90, + 0x28, 0x25, 0x89, 0xcd, 0xd5, 0x71, 0x92, 0x5d, + 0x33, 0x53, 0xe6, 0x4c, 0x9a, 0x16, 0x13, 0xc3, + 0x8c, 0xa7, 0xba, 0xb5, 0x73, 0x77, 0x5e, 0xd1, + 0x1e, 0x70, 0x4b, 0x72, 0x97, 0xd5, 0xf7, 0xab, + 0x52, 0xef, 0x6a, 0xab, 0xd2, 0xbc, 0xa6, 0x56, + 0xa8, 0xa9, 0x0a, 0x29, 0x2b, 0xc9, 0x91, 0x64, + 0xc7, 0x5e, 0xa0, 0xe7, 0x37, 0xf5, 0x04, 0xb0, + 0xd5, 0x4b, 0x82, 0x99, 0x02, 0x85, 0x26, 0x92, + 0xa2, 0x32, 0xb3, 0x74, 0x91, 0x29, 0xe5, 0xa6, + 0x7e, 0x79, 0x4c, 0xb5, 0x81, 0xcb, 0x9e, 0x39, + 0xe1, 0x23, 0xda, 0xa4, 0x0a, 0x5c, 0x67, 0x4f, + 0xb2, 0x1a, 0xcd, 0xe5, 0xac, 0xea, 0xc9, 0x72, + 0x9f, 0x49, 0x9d, 0xd2, 0x57, 0x51, 0xa5, 0x77, + 0x2d, 0x32, 0x68, 0xfa, 0x69, 0xa5, 0xcd, 0x5f, + 0x49, 0x38, 0x97, 0xa5, 0x29, 0x95, 0xdf, 0x38, + 0x7f, 0x30, 0xa2, 0x27, 0x72, 0x24, 0xae, 0xb5, + 0x99, 0x3e, 0xdc, 0xee, 0xe5, 0x3b, 0x91, 0xbc, + 0x5a, 0xbb, 0x50, 0xe5, 0x2e, 0x64, 0xdb, 0x3e, + 0x92, 0xd8, 0xe8, 0x9e, 0x7b, 0x26, 0x48, 0xe4, + 0xe1, 0x20, 0x5c, 0xea, 0xaf, 0x9e, 0x39, 0xe1, + 0x1d, 0xca, 0xdc, 0x55, 0xab, 0x26, 0xa9, 0x29, + 0x1b, 0xef, 0x64, 0x1f, 0xba, 0x2f, 0x65, 0xcf, + 0xb7, 0x8d, 0xf6, 0x1f, 0xd9, 0x92, 0x31, 0x1f, + 0x24, 0x8f, 0x9a, 0xdb, 0x20, 0x22, 0xfe, 0x1b, + 0xd8, 0x6b, 0xb1, 0x7a, 0x45, 0xf2, 0xa7, 0x57, + 0xf9, 0x3b, 0xbf, 0x0d, 0xf0, 0x71, 0x1f, 0x07, + 0x0d, 0xec, 0x70, 0xdf, 0x07, 0x0d, 0xec, 0x70, + 0xdf, 0x07, 0x11, 0xf0, 0x70, 0xde, 0xc7, 0x11, + 0xf0, 0x47, 0x96, 0x1c, 0xd7, 0x7c, 0xad, 0xe9, + 0xe2, 0x46, 0x77, 0x0d, 0xf0, 0x70, 0xde, 0xc7, + 0x11, 0xf0, 0x70, 0xde, 0xc7, 0x11, 0xf0, 0x70, + 0xde, 0xc4, 0x06, 0x2c, 0xee, 0x63, 0xb9, 0xb7, + 0xd4, 0xd3, 0x27, 0x4e, 0xf7, 0x21, 0x6b, 0xc8, + 0xcb, 0x0d, 0xd5, 0x42, 0xb1, 0x2f, 0x3d, 0x6e, + 0xc6, 0xc7, 0xd6, 0x53, 0x01, 0x0a, 0x19, 0xca, + 0x58, 0xdc, 0x7f, 0x3d, 0xdd, 0x21, 0xeb, 0x14, + 0xac, 0x46, 0xb5, 0x2d, 0xee, 0x8b, 0x5c, 0x10, + 0x16, 0x61, 0x8b, 0x5c, 0x4a, 0xa7, 0x57, 0x3e, + 0x89, 0x9b, 0xcc, 0x3d, 0x5a, 0xa2, 0x0a, 0x6b, + 0x5a, 0xb2, 0xcd, 0xf7, 0x34, 0xab, 0x6f, 0xe2, + 0xb3, 0x54, 0xbd, 0xa8, 0xcb, 0x31, 0x10, 0x4c, + 0xa9, 0x05, 0x49, 0xf3, 0xda, 0x93, 0x26, 0x71, + 0x74, 0xb9, 0xb1, 0x7c, 0x7a, 0x58, 0xb8, 0xb7, + 0x87, 0x5f, 0xaa, 0x47, 0x3b, 0xd7, 0xff, 0x00, + 0xdd, 0x17, 0xb2, 0xe7, 0xdb, 0xc6, 0xbb, 0x0f, + 0xec, 0xa2, 0xef, 0x24, 0x92, 0x49, 0x19, 0x32, + 0x3c, 0xa2, 0x4e, 0x32, 0x89, 0x38, 0xca, 0x24, + 0xe3, 0x28, 0x93, 0x8c, 0xa2, 0x4e, 0x21, 0xb2, + 0x97, 0xba, 0xc8, 0xd9, 0xa6, 0x0f, 0xc9, 0x9e, + 0x4c, 0x5a, 0xfe, 0x89, 0xa9, 0xd6, 0xf7, 0xd3, + 0xd5, 0x70, 0xe6, 0x17, 0xa6, 0x43, 0x21, 0x92, + 0x58, 0xca, 0xe5, 0x26, 0x90, 0x5a, 0x94, 0xd7, + 0x07, 0x6b, 0x2e, 0x72, 0x7d, 0x7d, 0xaa, 0x4c, + 0xa2, 0x4e, 0x32, 0x89, 0x38, 0xca, 0x24, 0xe3, + 0x28, 0x93, 0x8c, 0xa2, 0x4e, 0x32, 0x89, 0x38, + 0x6d, 0x56, 0xa9, 0x6c, 0x3c, 0x6a, 0x57, 0xd3, + 0x03, 0x2a, 0xb2, 0xec, 0x43, 0x49, 0x5a, 0x5a, + 0x44, 0xd8, 0x09, 0x51, 0x65, 0xe4, 0x14, 0x89, + 0x3a, 0x98, 0x99, 0xe9, 0x09, 0x7c, 0x64, 0x58, + 0x9d, 0x0a, 0x02, 0x3c, 0x13, 0xca, 0x63, 0xab, + 0x53, 0x10, 0xb1, 0xad, 0xca, 0x9b, 0x17, 0x2e, + 0x2e, 0xa9, 0x9d, 0x5d, 0x7c, 0xc7, 0xc7, 0x77, + 0xe3, 0xed, 0x58, 0xad, 0x6b, 0x59, 0xb2, 0x42, + 0x5d, 0xd2, 0xb8, 0x9a, 0xb9, 0xc1, 0x19, 0xa8, + 0xd6, 0x25, 0x4c, 0xf6, 0xb4, 0xf4, 0xb6, 0xbd, + 0xa7, 0x56, 0xe6, 0x85, 0x03, 0x62, 0x85, 0x07, + 0x2b, 0x3e, 0x3d, 0xf7, 0x03, 0xaf, 0xd5, 0x23, + 0x9d, 0xeb, 0xff, 0x00, 0xee, 0x8b, 0xd9, 0x73, + 0xed, 0xe3, 0x75, 0xff, 0x00, 0xc1, 0xe2, 0x3c, + 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, + 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, + 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, + 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, + 0x08, 0x32, 0x85, 0x1f, 0x36, 0x44, 0x72, 0x29, + 0x4f, 0xca, 0xd0, 0xbf, 0xa5, 0x3a, 0x51, 0xc5, + 0xc6, 0xd4, 0x97, 0x4c, 0x4c, 0x32, 0x44, 0x5c, + 0x9e, 0xfa, 0x22, 0x31, 0xe1, 0x0a, 0x84, 0xcd, + 0xea, 0x2c, 0xb9, 0x94, 0xe7, 0xc4, 0x5e, 0x06, + 0xca, 0x4d, 0x31, 0x61, 0x8e, 0x94, 0x53, 0x67, + 0xcc, 0xdc, 0x41, 0xa8, 0xa2, 0x82, 0x4e, 0x96, + 0x22, 0xa5, 0xa7, 0xa5, 0xe9, 0x30, 0xe9, 0x7a, + 0x4c, 0x3a, 0x5e, 0x93, 0x0e, 0x97, 0xa4, 0xc3, + 0xa5, 0xe9, 0x30, 0xe9, 0x7a, 0x4c, 0x3a, 0x5e, + 0x93, 0x0e, 0x97, 0xa4, 0xc3, 0xa5, 0xe9, 0x30, + 0xe9, 0x7a, 0x4c, 0x3a, 0x5e, 0x93, 0x0e, 0x97, + 0xa4, 0xc3, 0xa5, 0xe9, 0x30, 0xe9, 0x7a, 0x4c, + 0x3a, 0x5e, 0x93, 0x0e, 0x97, 0xa4, 0xc3, 0xa5, + 0xe9, 0x30, 0xe9, 0x7a, 0x4c, 0x3a, 0x5e, 0x93, + 0x0e, 0x97, 0xa4, 0xc1, 0xa1, 0xb7, 0x4b, 0xed, + 0x76, 0x75, 0xfa, 0xa4, 0x73, 0xbd, 0x7f, 0xfd, + 0xd1, 0x7b, 0x2e, 0x7d, 0xbc, 0x6f, 0xb0, 0xfe, + 0xcd, 0xb6, 0xdd, 0x7d, 0xc6, 0x10, 0xb2, 0xc2, + 0xf8, 0xa9, 0x47, 0x15, 0x28, 0xe2, 0xa5, 0x1c, + 0x54, 0xa3, 0x8a, 0x94, 0x71, 0x52, 0x8e, 0x2a, + 0x51, 0xc5, 0x4a, 0x38, 0xa9, 0x47, 0x15, 0x28, + 0xe2, 0xa5, 0x1c, 0x54, 0xa3, 0x8a, 0x94, 0x71, + 0x52, 0x8e, 0x2a, 0x51, 0xc5, 0x4a, 0x38, 0xa9, + 0x47, 0x15, 0x28, 0xe2, 0xa5, 0x16, 0x90, 0x51, + 0x57, 0x2d, 0x4c, 0xe1, 0xf9, 0x6a, 0x57, 0xd3, + 0x3f, 0xd2, 0xef, 0x43, 0x93, 0x13, 0x79, 0x36, + 0x94, 0x7c, 0xa4, 0x82, 0x08, 0x59, 0xfe, 0x88, + 0xf7, 0xdc, 0x0e, 0xbf, 0x54, 0x8e, 0x77, 0xaf, + 0xdf, 0xc9, 0x17, 0xb2, 0xe7, 0xdb, 0xc6, 0xeb, + 0xff, 0x00, 0x87, 0xc4, 0x78, 0x8f, 0x11, 0xe2, + 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, + 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, + 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, + 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x1e, 0xb2, 0xe6, + 0x96, 0x3a, 0xa9, 0xad, 0x6b, 0xc8, 0x1c, 0x81, + 0xc8, 0x1c, 0x81, 0xc8, 0x1c, 0x80, 0x9f, 0xcf, + 0x56, 0x7a, 0xd6, 0x19, 0x03, 0x72, 0x7e, 0x40, + 0x38, 0xa5, 0x69, 0xd3, 0xf2, 0x07, 0x20, 0x72, + 0x07, 0x20, 0x72, 0x07, 0x20, 0x72, 0x07, 0x20, + 0x72, 0x07, 0x20, 0x45, 0x5d, 0x8d, 0x4e, 0xee, + 0x79, 0x7e, 0x51, 0xd3, 0x38, 0xe3, 0xe3, 0xf3, + 0x57, 0xa7, 0xb3, 0x51, 0xe9, 0xec, 0xd4, 0x7a, + 0x7b, 0x35, 0x1e, 0x9e, 0xcd, 0x47, 0xa7, 0xb3, + 0x51, 0xe9, 0xec, 0xd4, 0x7a, 0x7b, 0x35, 0x1e, + 0x9e, 0xcd, 0x47, 0xa7, 0xb3, 0x50, 0xb2, 0x26, + 0xf8, 0xe1, 0x6b, 0xac, 0x3a, 0x68, 0xe6, 0x6b, + 0xbc, 0x42, 0x6a, 0xea, 0x77, 0xa7, 0xb3, 0x51, + 0xe9, 0xec, 0xd4, 0x7a, 0x7b, 0x35, 0x1e, 0x9e, + 0xcd, 0x47, 0xa7, 0xb3, 0x51, 0xe9, 0xec, 0xd4, + 0x7a, 0x7b, 0x35, 0x1e, 0x9e, 0xcd, 0x43, 0x2c, + 0x0e, 0x60, 0x9d, 0xe9, 0xd7, 0xea, 0x91, 0xde, + 0xf1, 0xfb, 0xf9, 0x22, 0xf6, 0x5c, 0xfb, 0x78, + 0xdf, 0x63, 0xfd, 0x99, 0x41, 0x9e, 0x54, 0x47, + 0x97, 0x41, 0xcb, 0xa0, 0xe5, 0xd0, 0x72, 0xe8, + 0x39, 0x74, 0x1c, 0xba, 0x0e, 0x5d, 0x04, 0x41, + 0x4d, 0x2e, 0x94, 0x32, 0x3c, 0x38, 0x2b, 0x9f, + 0xb4, 0x32, 0x46, 0x4b, 0x66, 0xa2, 0xe6, 0x24, + 0x51, 0xe7, 0xb6, 0x36, 0xe6, 0x96, 0x9b, 0x99, + 0xd8, 0x93, 0xbb, 0x49, 0xfa, 0x19, 0x91, 0x7e, + 0x5d, 0x07, 0x2e, 0x83, 0x97, 0x41, 0xcb, 0xa0, + 0xe5, 0xd0, 0x72, 0xe8, 0x39, 0x74, 0x11, 0xb5, + 0x54, 0xac, 0x89, 0x6f, 0x79, 0xa9, 0x74, 0xa5, + 0x5b, 0x36, 0xda, 0x36, 0xda, 0x36, 0xda, 0x36, + 0xda, 0x36, 0xda, 0x23, 0xec, 0xf6, 0x3c, 0xad, + 0x5a, 0xda, 0x92, 0xe2, 0x6b, 0x1b, 0x78, 0xb6, + 0xd7, 0x18, 0xa2, 0xf4, 0x27, 0x15, 0x17, 0x51, + 0x54, 0x15, 0x22, 0xc4, 0xaa, 0xd5, 0xb4, 0xb3, + 0x52, 0x94, 0x8b, 0x3e, 0x54, 0xab, 0x23, 0xaf, + 0x06, 0x1f, 0x56, 0x37, 0x3a, 0x20, 0xdb, 0x68, + 0xdb, 0x68, 0xdb, 0x68, 0xdb, 0x68, 0xdb, 0x68, + 0x8f, 0x52, 0x99, 0x0b, 0xaf, 0xd5, 0x23, 0xbd, + 0xe3, 0xf7, 0xf2, 0x45, 0xec, 0xb9, 0xf6, 0xf1, + 0xbe, 0xc7, 0xfb, 0x32, 0xc4, 0xe7, 0xac, 0x85, + 0xf3, 0xc7, 0x3c, 0x73, 0xc7, 0x3c, 0x73, 0xc7, + 0x3c, 0x73, 0xc3, 0x54, 0x80, 0xd6, 0x87, 0x25, + 0xfa, 0xae, 0xe8, 0xac, 0x86, 0xbd, 0x50, 0x79, + 0x69, 0x6c, 0x6b, 0xd5, 0x67, 0x56, 0xb4, 0x0d, + 0xfa, 0x96, 0xf2, 0x84, 0xc6, 0x09, 0xd3, 0x93, + 0xec, 0xa3, 0x52, 0x64, 0x28, 0xee, 0x64, 0xe7, + 0x8e, 0x78, 0xe7, 0x8e, 0x78, 0xe7, 0x8e, 0x78, + 0xe7, 0x88, 0x25, 0x8a, 0x5d, 0x25, 0xaa, 0x6f, + 0xa1, 0x8a, 0x35, 0x2b, 0xe9, 0x9f, 0x2b, 0x3d, + 0xa9, 0x6e, 0x50, 0x85, 0xd8, 0x97, 0x27, 0x74, + 0xaf, 0xa9, 0x15, 0xda, 0x73, 0xe3, 0x3d, 0xd6, + 0xb0, 0xbd, 0xb5, 0x47, 0x50, 0xac, 0x24, 0xa4, + 0xea, 0xd3, 0x39, 0xa0, 0xb1, 0xc5, 0x73, 0xb2, + 0x13, 0x49, 0x5c, 0xf0, 0xd6, 0xe1, 0x49, 0x0b, + 0xa1, 0x4e, 0x49, 0xfe, 0x58, 0xf7, 0xdc, 0x0e, + 0xbf, 0x54, 0x8f, 0x77, 0x8f, 0xbf, 0xc9, 0x17, + 0xb2, 0xe7, 0xdb, 0xc7, 0x3b, 0x1f, 0xec, 0xb7, + 0x9a, 0x61, 0x2b, 0x64, 0x4e, 0x2c, 0xc9, 0xdf, + 0xfa, 0xab, 0x30, 0xea, 0xac, 0xc3, 0xaa, 0xb3, + 0x0e, 0xaa, 0xcc, 0x13, 0x51, 0x90, 0xe6, 0xd7, + 0x33, 0x5a, 0x9a, 0xd4, 0xf5, 0x66, 0x60, 0xa4, + 0xf6, 0xb4, 0xa9, 0x56, 0x28, 0x6b, 0x41, 0x7f, + 0x56, 0x66, 0x1d, 0x59, 0x98, 0x35, 0x9a, 0xd8, + 0xea, 0xbc, 0xa2, 0xa3, 0xc6, 0xb6, 0x5c, 0x42, + 0x2b, 0x58, 0x49, 0x46, 0xd6, 0x65, 0xf7, 0xb9, + 0xb4, 0x97, 0x7f, 0x55, 0x66, 0x1d, 0x55, 0x98, + 0x75, 0x56, 0x61, 0xd5, 0x59, 0x84, 0x35, 0xcc, + 0xa5, 0x2c, 0x82, 0x6a, 0xea, 0x4b, 0x73, 0x5e, + 0x4e, 0x8c, 0x64, 0xe8, 0xc6, 0x4e, 0x8c, 0x37, + 0xbe, 0x33, 0xa8, 0xb1, 0xd5, 0xcc, 0x86, 0xd5, + 0x88, 0x1d, 0x49, 0x70, 0x39, 0x33, 0x92, 0xa4, + 0xa8, 0x16, 0x48, 0x11, 0xa2, 0x56, 0xb1, 0xf0, + 0xa4, 0x07, 0xab, 0x77, 0x21, 0x1a, 0x66, 0xe7, + 0x42, 0x5c, 0xad, 0xca, 0x11, 0x0c, 0xa1, 0x10, + 0xbd, 0x63, 0x55, 0x8d, 0xc6, 0x49, 0x90, 0x58, + 0x66, 0x50, 0x88, 0x65, 0x08, 0x86, 0x4e, 0x8c, + 0x64, 0xe8, 0xc6, 0x4e, 0x8c, 0x33, 0xc9, 0x52, + 0x5e, 0xf0, 0xeb, 0xf5, 0x48, 0xf7, 0x78, 0xfb, + 0xfc, 0x91, 0x7b, 0x2e, 0x7d, 0xbc, 0x73, 0xb2, + 0xfe, 0xca, 0x4e, 0xea, 0x59, 0x6d, 0x6d, 0x95, + 0x7c, 0x88, 0x54, 0x22, 0x4d, 0x15, 0xa9, 0x07, + 0x26, 0xaa, 0x4e, 0x5d, 0x15, 0x4c, 0x93, 0xa0, + 0x4e, 0xa5, 0xd1, 0x63, 0x89, 0x65, 0x1c, 0xe0, + 0xa5, 0x59, 0x72, 0xf3, 0x4d, 0xa2, 0x48, 0x8b, + 0x62, 0x8b, 0x15, 0xa7, 0xfb, 0x36, 0xea, 0x24, + 0x35, 0x49, 0x8d, 0xa6, 0xbc, 0xbb, 0xb8, 0x96, + 0x98, 0xa7, 0x1f, 0x93, 0x4f, 0xfe, 0x8a, 0x35, + 0x22, 0x95, 0xe9, 0x9f, 0x9c, 0x56, 0x3f, 0x73, + 0xd2, 0x86, 0xe9, 0x61, 0x8c, 0xce, 0xcc, 0xeb, + 0xad, 0x2e, 0x56, 0x82, 0xf4, 0xd6, 0xbc, 0x46, + 0x4a, 0x5d, 0x72, 0x57, 0x4b, 0xe4, 0x87, 0x8b, + 0x16, 0x2b, 0xa5, 0x49, 0xaa, 0xeb, 0x93, 0x5f, + 0x5b, 0xa8, 0xb6, 0x45, 0x90, 0x52, 0x29, 0xff, + 0x00, 0xf3, 0x0a, 0xdc, 0x16, 0x10, 0xfc, 0xd8, + 0xa4, 0xc5, 0x68, 0x5c, 0x9c, 0x97, 0xa3, 0x69, + 0xfc, 0xd8, 0x69, 0x5b, 0x9f, 0x9d, 0x7e, 0xa9, + 0x1f, 0xef, 0x1f, 0x3f, 0x9a, 0x2f, 0x65, 0xcf, + 0xb7, 0x8e, 0x76, 0x5f, 0xda, 0x91, 0xc7, 0x1b, + 0xe4, 0xe6, 0xfa, 0x7a, 0x78, 0xf4, 0xf4, 0xf1, + 0xe9, 0xe9, 0xe3, 0xd3, 0xd3, 0xc7, 0xa7, 0x87, + 0x8f, 0x4e, 0xce, 0x1e, 0x9d, 0x9c, 0x3d, 0x3c, + 0x3a, 0x83, 0xd3, 0xb3, 0x87, 0xa7, 0x67, 0x0f, + 0x4e, 0xce, 0x1e, 0x9d, 0x9c, 0x3d, 0x3c, 0x3c, + 0x7a, 0x76, 0x77, 0x87, 0xa7, 0x67, 0x0f, 0x4f, + 0x4f, 0x1e, 0x9e, 0x9e, 0x3d, 0x3d, 0x3c, 0x7a, + 0x7a, 0x78, 0xb3, 0x4f, 0x0c, 0xad, 0xc9, 0xd2, + 0xb7, 0xb4, 0xb6, 0x85, 0x49, 0x1b, 0xde, 0x5b, + 0x6f, 0xd3, 0xc3, 0x69, 0x77, 0xa7, 0xa7, 0x8f, + 0x4f, 0x4f, 0x15, 0xd3, 0xb3, 0xaa, 0x3d, 0x3c, + 0x3a, 0x83, 0xd3, 0xc3, 0xc7, 0xa7, 0x67, 0x0f, + 0x4e, 0xce, 0x1e, 0x9d, 0x1a, 0x3d, 0x3b, 0x38, + 0x7a, 0x76, 0x77, 0x89, 0x10, 0x15, 0x09, 0xce, + 0x5f, 0x13, 0x52, 0xb4, 0x9f, 0x4f, 0x0f, 0x1e, + 0x9d, 0x9c, 0x3d, 0x3b, 0x38, 0x7a, 0x76, 0x70, + 0xf4, 0xf4, 0xf1, 0xe9, 0xe9, 0xe3, 0xd3, 0xd3, + 0xc4, 0x76, 0x2c, 0xdf, 0x1d, 0x51, 0x5a, 0xd6, + 0xea, 0xc7, 0xfb, 0xc7, 0xcf, 0xe6, 0x8b, 0xd9, + 0x73, 0xed, 0xe3, 0x9d, 0x90, 0x56, 0xe6, 0x99, + 0x1d, 0x72, 0x21, 0x91, 0x0c, 0x88, 0x64, 0x43, + 0x22, 0x19, 0x10, 0xc8, 0x86, 0x44, 0x32, 0x21, + 0x91, 0x0c, 0x88, 0x64, 0x43, 0x22, 0x19, 0x10, + 0xc8, 0x86, 0x44, 0x32, 0x21, 0x91, 0x0c, 0x88, + 0x64, 0x43, 0x22, 0x19, 0x10, 0xc8, 0xbf, 0xff, + 0x00, 0x42, 0x3f, 0xde, 0x3e, 0x7f, 0x34, 0x5e, + 0xcb, 0x9f, 0x6f, 0x1c, 0xec, 0xd6, 0xa8, 0xe2, + 0xa6, 0xba, 0xeb, 0xaf, 0xbb, 0xfa, 0xe9, 0x8b, + 0x4b, 0x69, 0x37, 0xcb, 0x89, 0xb6, 0xec, 0xc6, + 0xe1, 0x98, 0xdc, 0x33, 0x1b, 0x86, 0x63, 0x70, + 0xcc, 0x6e, 0x19, 0x8d, 0xc3, 0x31, 0xb8, 0x66, + 0x37, 0x0c, 0xc6, 0xe1, 0x98, 0xdc, 0x33, 0x1b, + 0x86, 0x63, 0x70, 0xcc, 0x6e, 0x19, 0x8d, 0xc3, + 0x31, 0xb8, 0x66, 0x37, 0x0c, 0xc6, 0xe1, 0x98, + 0xdc, 0x33, 0x1b, 0x86, 0x63, 0x70, 0x42, 0xb5, + 0xbd, 0xfa, 0xca, 0x52, 0xb7, 0x55, 0xc1, 0xd9, + 0xb5, 0x90, 0xdc, 0xb6, 0xa3, 0x2d, 0xa8, 0xcb, + 0x6a, 0x32, 0xda, 0x8c, 0xb6, 0xa3, 0x2d, 0xa8, + 0xcb, 0x6a, 0x32, 0xda, 0x8c, 0xb6, 0xa3, 0x2d, + 0xa8, 0xcb, 0x6a, 0x32, 0xda, 0x8c, 0xb6, 0xa3, + 0x2d, 0xa8, 0xcb, 0x6a, 0x32, 0xda, 0x8c, 0xb6, + 0xa3, 0x2d, 0xa8, 0xcb, 0x6a, 0x32, 0xda, 0x8a, + 0x4b, 0x6d, 0xf1, 0xaf, 0x09, 0x7a, 0x26, 0x0e, + 0xed, 0xef, 0xf9, 0xa2, 0xf6, 0x5c, 0xfb, 0x78, + 0xe7, 0x66, 0xf7, 0xd8, 0xa7, 0x20, 0xab, 0xac, + 0xbe, 0x48, 0xc5, 0x6d, 0x72, 0x66, 0x71, 0x93, + 0x33, 0x8c, 0x99, 0x9c, 0x64, 0xcc, 0xe3, 0x26, + 0x67, 0x19, 0x33, 0x38, 0xc9, 0x99, 0xc6, 0x4c, + 0xce, 0x32, 0x66, 0x71, 0x93, 0x33, 0x8c, 0x99, + 0x9c, 0x64, 0xcc, 0xe3, 0x26, 0x67, 0x19, 0x33, + 0x38, 0xc9, 0x99, 0xc6, 0x4c, 0xce, 0x32, 0x66, + 0x71, 0x93, 0x33, 0x8c, 0x99, 0x9c, 0x64, 0xcc, + 0xe1, 0x29, 0xed, 0x4f, 0x7f, 0x94, 0x84, 0xcf, + 0x2a, 0x23, 0xc9, 0x1c, 0x8f, 0x10, 0xa8, 0xe8, + 0x9c, 0x5d, 0x52, 0x28, 0xfd, 0x1e, 0x14, 0x97, + 0x0d, 0x75, 0xbd, 0xe2, 0xd8, 0x02, 0xeb, 0xef, + 0x6e, 0x86, 0x2f, 0x5c, 0x9d, 0x74, 0x21, 0xd5, + 0x0a, 0x47, 0x58, 0x72, 0xf6, 0xa4, 0x31, 0x02, + 0xd2, 0x5f, 0x1f, 0x7a, 0x8e, 0xf5, 0x23, 0x2d, + 0x85, 0x38, 0x18, 0xe4, 0x73, 0x42, 0x94, 0xcc, + 0x8e, 0x30, 0x77, 0x16, 0xf2, 0x15, 0x43, 0xaa, + 0xe8, 0x43, 0x3c, 0x49, 0xc5, 0xdd, 0x1d, 0x91, + 0x55, 0x7d, 0x19, 0x5c, 0x64, 0xf4, 0x68, 0xde, + 0x62, 0x76, 0xaa, 0x7e, 0x77, 0x48, 0xa5, 0x95, + 0xc7, 0x92, 0x20, 0x47, 0xef, 0x96, 0xb5, 0xfd, + 0x4d, 0xd1, 0x4f, 0xff, 0x00, 0x27, 0xc9, 0x1c, + 0x91, 0xc9, 0x1c, 0x91, 0xc9, 0x1c, 0x91, 0xc9, + 0x10, 0xa6, 0x16, 0xc7, 0x84, 0x8d, 0xcc, 0x6e, + 0xce, 0xaa, 0x96, 0x45, 0x1f, 0xd1, 0x39, 0xb3, + 0x45, 0xaf, 0xa3, 0xf3, 0x4c, 0x4d, 0xf5, 0xf0, + 0x96, 0xa8, 0xcb, 0xeb, 0xba, 0xa7, 0xb6, 0x97, + 0x18, 0xf9, 0xdc, 0x91, 0xc9, 0x1c, 0x91, 0xc9, + 0x1c, 0x91, 0xc9, 0x1c, 0x91, 0x0d, 0x37, 0xcc, + 0x69, 0x60, 0xee, 0xde, 0xff, 0x00, 0x9a, 0x2f, + 0x65, 0xcf, 0xb7, 0x8e, 0xf6, 0x6f, 0x7d, 0x8c, + 0x84, 0xdf, 0x2a, 0x25, 0xc9, 0x1c, 0x90, 0x89, + 0x9d, 0x89, 0x2b, 0x53, 0x93, 0x19, 0xe4, 0xbe, + 0x28, 0x63, 0x7e, 0x4a, 0xe0, 0x64, 0x72, 0x44, + 0x4d, 0xae, 0xf0, 0xa7, 0xb4, 0x6e, 0x89, 0xa3, + 0x52, 0x45, 0xa7, 0xa5, 0x6b, 0xb2, 0xf6, 0x36, + 0x36, 0xe6, 0x03, 0xd8, 0x9e, 0x23, 0xd6, 0xda, + 0x66, 0x3b, 0x22, 0xea, 0x2a, 0x19, 0x56, 0x24, + 0x6c, 0x5f, 0x1e, 0x91, 0x36, 0x23, 0x77, 0x88, + 0x38, 0x93, 0x44, 0x0c, 0xcf, 0x6e, 0x69, 0x09, + 0x61, 0x7e, 0x52, 0xdc, 0x74, 0x75, 0xf5, 0x0d, + 0xab, 0xe2, 0x6e, 0x77, 0x3e, 0x1f, 0x71, 0xc9, + 0x8e, 0xe4, 0x88, 0xa2, 0x9a, 0xe4, 0xa2, 0x64, + 0x65, 0x4b, 0x85, 0x73, 0xc7, 0x3c, 0x1a, 0xf9, + 0x04, 0x92, 0xaa, 0x6d, 0x92, 0xc5, 0x1c, 0x9b, + 0xf3, 0x68, 0xe1, 0x4b, 0x90, 0xcb, 0x59, 0x0a, + 0x21, 0xca, 0x5c, 0xc8, 0x72, 0x25, 0x73, 0x28, + 0xf9, 0x8b, 0x9f, 0xa6, 0x91, 0x65, 0x71, 0xc6, + 0x09, 0x89, 0x4c, 0xf1, 0x18, 0xb4, 0xea, 0xa4, + 0x49, 0x13, 0xce, 0x63, 0xc9, 0x1e, 0xe3, 0xb2, + 0x16, 0xeb, 0x63, 0x12, 0x37, 0x98, 0xab, 0x03, + 0xd2, 0x39, 0x93, 0x09, 0x72, 0x66, 0x39, 0xcc, + 0x7e, 0xe6, 0xa7, 0xd9, 0x73, 0x53, 0x94, 0x6d, + 0xe2, 0x63, 0x18, 0xbd, 0x9e, 0x93, 0x98, 0xed, + 0xd2, 0x49, 0x8b, 0xe3, 0x3a, 0xf9, 0x07, 0x3c, + 0x69, 0xaa, 0xbf, 0x32, 0x6e, 0xd5, 0xf5, 0x47, + 0x75, 0xb5, 0xb5, 0xdf, 0x9c, 0x39, 0xc3, 0x9c, + 0x39, 0xc3, 0x9c, 0x39, 0xc3, 0x9c, 0x2b, 0x2c, + 0x86, 0x47, 0x9a, 0x17, 0x3c, 0x31, 0x27, 0x71, + 0x6d, 0x77, 0x8e, 0x9e, 0x42, 0x57, 0xf6, 0x82, + 0x97, 0x22, 0x56, 0xcb, 0x23, 0x64, 0x53, 0x23, + 0x61, 0x97, 0x59, 0xa9, 0xaa, 0x4b, 0x24, 0xee, + 0x70, 0xe7, 0x0e, 0x70, 0xe7, 0x0e, 0x70, 0xe7, + 0x0e, 0x70, 0xd3, 0xa3, 0xfc, 0xe6, 0xb6, 0x0e, + 0xed, 0xef, 0xf9, 0xa2, 0xf6, 0x5c, 0xfb, 0x78, + 0xef, 0x66, 0xf7, 0xd9, 0x4d, 0x0d, 0xf2, 0x61, + 0xdc, 0xe1, 0xce, 0x05, 0x37, 0x5f, 0x3d, 0x8f, + 0xb1, 0x74, 0x86, 0xc9, 0x01, 0x06, 0xde, 0xd2, + 0xa8, 0xc7, 0xc5, 0x6a, 0x23, 0xce, 0xf7, 0xac, + 0x48, 0xe4, 0xcb, 0x73, 0x84, 0xa6, 0x28, 0xfe, + 0xf0, 0x81, 0x7b, 0x64, 0x6e, 0x47, 0x7b, 0x2c, + 0x0a, 0x21, 0x39, 0x31, 0xf6, 0x50, 0x53, 0x87, + 0x19, 0xf5, 0x89, 0xc4, 0xc5, 0x51, 0x37, 0xae, + 0x4b, 0x45, 0xa9, 0xdd, 0x8f, 0xcd, 0x62, 0x8e, + 0x49, 0x94, 0xc7, 0x9e, 0x9d, 0xad, 0x32, 0x2e, + 0xf4, 0x5d, 0x11, 0xb4, 0x26, 0x54, 0x72, 0x99, + 0x24, 0xe1, 0x62, 0x2b, 0x65, 0x5c, 0xe1, 0x0d, + 0x59, 0xbe, 0x56, 0x28, 0x99, 0x23, 0x9a, 0x55, + 0xf0, 0x96, 0x94, 0x2b, 0xb1, 0x36, 0x81, 0x89, + 0xb4, 0x0c, 0x4d, 0xa0, 0x62, 0x6d, 0x03, 0x13, + 0x68, 0x18, 0x9b, 0x40, 0xc4, 0x9a, 0x6a, 0x2b, + 0x11, 0x6a, 0xa5, 0x71, 0x36, 0x81, 0x89, 0xb4, + 0x0c, 0x4d, 0xa0, 0x11, 0x1a, 0x6c, 0x4c, 0x7b, + 0x93, 0x2a, 0x47, 0x75, 0xf8, 0x9b, 0x40, 0xc4, + 0xda, 0x06, 0x26, 0xd0, 0x31, 0x36, 0x81, 0x89, + 0xb4, 0x0c, 0x4d, 0xa0, 0x62, 0x6d, 0x02, 0x23, + 0x17, 0x6d, 0x8d, 0x20, 0xb2, 0xfb, 0x8b, 0xbe, + 0x6b, 0x03, 0xb5, 0x72, 0xac, 0x19, 0xd8, 0x60, + 0xce, 0xc3, 0x06, 0x76, 0x18, 0x33, 0xb0, 0xc1, + 0x9d, 0x86, 0x0c, 0xec, 0x30, 0x67, 0x61, 0x83, + 0x3b, 0x0c, 0x19, 0xd8, 0x60, 0xce, 0xc3, 0x06, + 0x76, 0x18, 0x33, 0xb0, 0x8d, 0xa6, 0x94, 0x46, + 0x6d, 0x91, 0x34, 0xca, 0x65, 0x0e, 0x38, 0x33, + 0xb0, 0xc1, 0x9d, 0x86, 0x0c, 0xec, 0x30, 0x67, + 0x61, 0x83, 0x3b, 0x0c, 0x19, 0xd8, 0x59, 0x04, + 0x74, 0xba, 0xe6, 0xd6, 0x02, 0xa1, 0xcd, 0x8c, + 0x3d, 0xdb, 0xd7, 0xf3, 0x45, 0xec, 0xb9, 0xf6, + 0xf1, 0xda, 0xff, 0x00, 0xe3, 0x7b, 0xaf, 0xfe, + 0x27, 0x36, 0xd4, 0xef, 0xb1, 0xe3, 0x74, 0xea, + 0x78, 0x5d, 0xde, 0x9f, 0x4f, 0xc5, 0x74, 0xf2, + 0x7b, 0x51, 0xe9, 0xec, 0xf8, 0x7a, 0x79, 0x3d, + 0xf0, 0xf4, 0xf2, 0x7a, 0x3d, 0x3b, 0x9e, 0x8a, + 0xe9, 0xe4, 0xf6, 0xa3, 0xd3, 0xd9, 0xf0, 0xf4, + 0xf6, 0x7c, 0x3d, 0x3d, 0x9f, 0x0f, 0x4f, 0x27, + 0xa1, 0xb6, 0x13, 0x3e, 0x6e, 0x71, 0x7a, 0x87, + 0xcf, 0x9e, 0x1e, 0x3d, 0x3c, 0x9e, 0x8f, 0x4f, + 0x27, 0xa3, 0xd3, 0xd9, 0xf0, 0xf4, 0xee, 0x78, + 0x3d, 0x3c, 0x9e, 0x8f, 0x4f, 0x67, 0xc3, 0xd3, + 0xe9, 0xf8, 0x86, 0x41, 0x5c, 0xe3, 0xcb, 0x82, + 0x2e, 0xf2, 0x55, 0xf7, 0x4f, 0xcd, 0x14, 0xa7, + 0xff, 0x00, 0x29, 0x7b, 0x2d, 0xb2, 0x07, 0x4a, + 0x35, 0x90, 0xd7, 0x36, 0x4c, 0x59, 0x7e, 0x63, + 0xf3, 0x19, 0xa9, 0xe2, 0xef, 0x84, 0xad, 0x4e, + 0xbd, 0x6b, 0x9a, 0xeb, 0xe2, 0x9f, 0x3b, 0x0f, + 0xd8, 0xe3, 0x51, 0xfe, 0x99, 0xf9, 0xb1, 0xb6, + 0xb4, 0xb9, 0x5c, 0xa1, 0x91, 0xd1, 0x22, 0x76, + 0xc6, 0x94, 0xeb, 0x5b, 0x6c, 0x69, 0x6b, 0x56, + 0xdc, 0x8a, 0x1c, 0xe2, 0x71, 0x6a, 0xd2, 0x28, + 0x40, 0xa4, 0xa6, 0x94, 0xf7, 0xc7, 0x97, 0x36, + 0x34, 0xf4, 0xcc, 0x70, 0xf3, 0xd8, 0xdc, 0xd8, + 0x2f, 0x40, 0xd3, 0x1e, 0x61, 0x4c, 0xee, 0x9a, + 0xc4, 0xac, 0xc9, 0x9a, 0x56, 0xb0, 0xa3, 0x67, + 0xa7, 0x44, 0xbd, 0x79, 0xbf, 0x9d, 0xff, 0x00, + 0xc2, 0x49, 0xf5, 0xb6, 0x1e, 0xed, 0xeb, 0xf9, + 0xa2, 0xf6, 0x5c, 0xfb, 0x78, 0xf7, 0x68, 0xf7, + 0xd9, 0xba, 0xfd, 0xb9, 0xb2, 0xd1, 0xb2, 0xc1, + 0xb2, 0xc1, 0xb2, 0xc1, 0xb2, 0xc1, 0xb2, 0xc1, + 0x48, 0xd1, 0x15, 0x47, 0x72, 0x33, 0xac, 0x16, + 0xc7, 0x8c, 0xbe, 0x39, 0x7c, 0x3d, 0x51, 0x65, + 0xad, 0x6b, 0x24, 0x84, 0xb6, 0x46, 0x08, 0xbc, + 0xe4, 0xd1, 0x05, 0x0a, 0x9d, 0x98, 0xe1, 0x8a, + 0x1f, 0x13, 0xa5, 0x60, 0x35, 0x53, 0x2e, 0xcb, + 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, + 0x06, 0xcb, 0x03, 0x27, 0xf8, 0x87, 0x84, 0x5d, + 0xe4, 0xa4, 0x83, 0xeb, 0x28, 0xe3, 0x9e, 0x38, + 0xe7, 0x8e, 0x39, 0xe3, 0x8e, 0x78, 0xe3, 0x9e, + 0x38, 0xe7, 0x86, 0xc5, 0x07, 0xb7, 0x1e, 0xb5, + 0xc1, 0x61, 0xf6, 0xf9, 0xae, 0x9c, 0x9b, 0xde, + 0x0b, 0xf3, 0x6d, 0x78, 0x5b, 0x57, 0x1a, 0x3f, + 0xab, 0xea, 0xc6, 0xa8, 0x52, 0x6b, 0x4f, 0x1c, + 0xf1, 0xc7, 0x3c, 0x71, 0xcf, 0x1c, 0x73, 0xc7, + 0x1c, 0xf1, 0xc7, 0x3c, 0x71, 0xcf, 0x0c, 0x76, + 0xdd, 0x6c, 0x20, 0x6a, 0x3f, 0xd3, 0x3f, 0x36, + 0xc5, 0xcd, 0x68, 0xd9, 0x9d, 0x5e, 0x1b, 0x15, + 0xb0, 0x35, 0xae, 0x25, 0x1a, 0x7b, 0x5e, 0x1a, + 0x50, 0x24, 0xab, 0x93, 0x3a, 0x64, 0x0f, 0x46, + 0x12, 0xe2, 0x62, 0x55, 0xa4, 0x14, 0xce, 0xee, + 0xe8, 0xd9, 0x42, 0xd2, 0xbf, 0x36, 0xda, 0x9e, + 0x42, 0xf6, 0xde, 0xee, 0x85, 0x24, 0x92, 0xf6, + 0xa4, 0x2e, 0xab, 0x23, 0x8e, 0x05, 0xaf, 0x7c, + 0x42, 0xf5, 0x6b, 0x5c, 0x85, 0xad, 0xb1, 0x51, + 0xb7, 0x52, 0xf3, 0x3f, 0x2b, 0xff, 0x00, 0x84, + 0x93, 0xeb, 0x6c, 0x5d, 0xdb, 0xcf, 0xb8, 0x8b, + 0xd9, 0x73, 0xed, 0xe3, 0xdd, 0xa3, 0xd7, 0x66, + 0xeb, 0xf6, 0xe7, 0xcd, 0x6d, 0xd7, 0xf4, 0xc7, + 0x49, 0x52, 0x35, 0xd1, 0x98, 0xd5, 0x0a, 0x59, + 0x1e, 0x3d, 0x69, 0x0e, 0x28, 0x17, 0x34, 0x18, + 0xda, 0x91, 0xd1, 0xeb, 0xa6, 0x99, 0x73, 0xa5, + 0x13, 0x46, 0x15, 0xac, 0x21, 0xad, 0xc9, 0xe7, + 0x8a, 0x8d, 0xb3, 0xe6, 0x65, 0xfb, 0x40, 0x22, + 0xef, 0x24, 0x92, 0xd9, 0x42, 0x79, 0x16, 0x69, + 0x2d, 0x19, 0xa4, 0xb4, 0x66, 0x92, 0xd1, 0x9a, + 0x4b, 0x46, 0x69, 0x2d, 0x08, 0x64, 0xf3, 0x47, + 0x15, 0x8f, 0x8f, 0x73, 0x06, 0x97, 0x54, 0xf2, + 0x39, 0xd2, 0x95, 0xe7, 0x3e, 0xc9, 0xb8, 0xeb, + 0x5c, 0xa5, 0xc8, 0xe8, 0xad, 0xc6, 0x5c, 0x94, + 0x18, 0x74, 0xd8, 0xa5, 0x85, 0x38, 0xca, 0x8e, + 0x16, 0xaf, 0x96, 0xa8, 0x49, 0x9a, 0x4b, 0x46, + 0x69, 0x2d, 0x19, 0xa4, 0xb4, 0x66, 0x92, 0xd1, + 0x9a, 0x4b, 0x46, 0x69, 0x2d, 0x0d, 0xcb, 0x96, + 0x38, 0xc4, 0x06, 0xa3, 0xfd, 0x33, 0xe5, 0xa5, + 0x2b, 0x51, 0x42, 0x8d, 0xb8, 0x37, 0xb7, 0x1e, + 0xe4, 0x65, 0x6c, 0xbe, 0xda, 0x36, 0x33, 0x51, + 0x79, 0x6d, 0x11, 0xf5, 0x2e, 0xcb, 0x10, 0x47, + 0x95, 0x38, 0x34, 0x5f, 0x1d, 0xa7, 0x99, 0x7c, + 0x7a, 0x86, 0x55, 0x73, 0x25, 0xa9, 0x8a, 0xf9, + 0x6f, 0xfe, 0x12, 0x4f, 0xad, 0xb1, 0x77, 0x6f, + 0x3e, 0xe2, 0x2f, 0x65, 0xcf, 0xb7, 0x8f, 0x76, + 0x8f, 0x5d, 0x9a, 0x8b, 0x51, 0xde, 0xcd, 0xc5, + 0x84, 0x8e, 0x2c, 0x24, 0x71, 0x61, 0x23, 0x8b, + 0x09, 0x1c, 0x58, 0x48, 0xe2, 0xc2, 0x47, 0x12, + 0x10, 0x38, 0xb0, 0x91, 0xc4, 0x84, 0x0e, 0x24, + 0x20, 0x71, 0x21, 0x14, 0x1c, 0x48, 0x48, 0xe2, + 0x42, 0x07, 0x12, 0x10, 0x38, 0x90, 0x81, 0xc5, + 0x84, 0x8e, 0x2c, 0x24, 0x71, 0x61, 0x23, 0x8b, + 0x09, 0x1c, 0x58, 0x48, 0xe2, 0xc2, 0x42, 0x2b, + 0x51, 0x59, 0x1a, 0x08, 0xbb, 0xc9, 0x57, 0xdd, + 0x3f, 0x2b, 0x32, 0xe4, 0x48, 0x68, 0xaa, 0x48, + 0x86, 0x37, 0x37, 0x6f, 0x72, 0x47, 0x64, 0xad, + 0xb6, 0x32, 0xbd, 0xb1, 0xad, 0xc6, 0xc5, 0x27, + 0x37, 0x38, 0x5a, 0xa8, 0xd4, 0x12, 0x1b, 0x96, + 0x52, 0x5d, 0xbd, 0x3d, 0xb5, 0x69, 0x77, 0xbd, + 0x61, 0x5f, 0x33, 0x0f, 0xd8, 0xe3, 0x51, 0xfe, + 0x99, 0xf2, 0xc6, 0x0e, 0x24, 0x97, 0x33, 0x7c, + 0xde, 0x8c, 0x89, 0xc5, 0x16, 0x57, 0x21, 0x58, + 0x55, 0xe8, 0xe3, 0x49, 0x88, 0x24, 0xa8, 0xeb, + 0x87, 0x4e, 0x39, 0x52, 0xc6, 0x64, 0xe9, 0x6e, + 0x5c, 0x5d, 0xe1, 0xc9, 0xec, 0xf5, 0x2e, 0x0e, + 0xea, 0xb9, 0x0d, 0x9f, 0x2d, 0xff, 0x00, 0xc2, + 0x49, 0xf5, 0xb6, 0x2e, 0xe9, 0xe7, 0xdc, 0x45, + 0xec, 0xb9, 0xf6, 0xf1, 0xfe, 0xd5, 0xeb, 0xb3, + 0x75, 0xfb, 0x70, 0x27, 0xb0, 0xa6, 0xc6, 0x07, + 0x06, 0x62, 0xd5, 0x20, 0xc7, 0x28, 0x59, 0xcd, + 0xb1, 0x42, 0xd0, 0xbe, 0x2d, 0x8c, 0xa6, 0xa1, + 0xc4, 0xc4, 0xd2, 0x5a, 0xde, 0x44, 0x48, 0xf3, + 0xdc, 0x2c, 0x8a, 0x58, 0x60, 0x63, 0x42, 0x71, + 0x44, 0x55, 0xa8, 0xd5, 0xf4, 0x36, 0x35, 0x6a, + 0x43, 0x0a, 0x8b, 0xdd, 0x7d, 0x5a, 0x58, 0x11, + 0xa7, 0x24, 0xd8, 0x82, 0xa2, 0xe8, 0xda, 0xcc, + 0x81, 0x2c, 0x99, 0x5c, 0x47, 0x8e, 0x65, 0x62, + 0x1b, 0xd6, 0xb1, 0x47, 0x12, 0xad, 0x48, 0xf7, + 0x1f, 0xe8, 0x9f, 0x93, 0x27, 0xda, 0x01, 0x17, + 0x79, 0x23, 0x36, 0x17, 0x49, 0x0f, 0x9d, 0x04, + 0x1e, 0x74, 0x10, 0x79, 0xd0, 0x41, 0xe7, 0x41, + 0x07, 0x9d, 0x04, 0x1e, 0x74, 0x10, 0x79, 0xd0, + 0x40, 0x5e, 0x14, 0x70, 0x2d, 0x34, 0x53, 0x8b, + 0xe6, 0xc0, 0xc2, 0x54, 0xb1, 0x25, 0xb7, 0xdb, + 0x84, 0x5f, 0x6f, 0x9b, 0x03, 0x1e, 0x74, 0x10, + 0x79, 0xd0, 0x41, 0xe7, 0x41, 0x07, 0x9d, 0x04, + 0x1e, 0x74, 0x10, 0x79, 0xd0, 0x41, 0xe7, 0x41, + 0x02, 0x1a, 0xa0, 0xba, 0x22, 0x25, 0x58, 0x97, + 0x4a, 0xfd, 0x2a, 0x1f, 0xa5, 0x43, 0xf4, 0xa8, + 0x78, 0xe9, 0x48, 0xfd, 0x29, 0x1f, 0xa5, 0x42, + 0xc5, 0x9a, 0x64, 0x5a, 0x5f, 0xd2, 0xa1, 0xfa, + 0x54, 0x3f, 0x4a, 0x87, 0xe9, 0x50, 0xf1, 0xd2, + 0x91, 0xfa, 0x54, 0x3f, 0x4a, 0x87, 0xe9, 0x50, + 0xfd, 0x2a, 0x1f, 0xa5, 0x43, 0xf4, 0xa8, 0x7e, + 0x95, 0x0f, 0xd2, 0xa1, 0x5f, 0x4a, 0xab, 0x47, + 0x95, 0x05, 0x2d, 0x56, 0xc7, 0xdd, 0x3c, 0x7b, + 0x88, 0xbd, 0x97, 0x3e, 0xde, 0x3f, 0xda, 0xbd, + 0x76, 0x95, 0x45, 0x7b, 0xa2, 0x0b, 0xec, 0xbc, + 0xab, 0xdb, 0x9d, 0x53, 0x92, 0x91, 0xc2, 0x4a, + 0xca, 0xa2, 0x8a, 0x65, 0x2d, 0xaa, 0x6a, 0x6c, + 0xbd, 0xb5, 0x63, 0x95, 0xb2, 0xa2, 0x68, 0xe1, + 0x59, 0x53, 0x75, 0x1a, 0xcb, 0x97, 0xb6, 0x12, + 0xa5, 0x0c, 0x81, 0x39, 0x68, 0x50, 0xb9, 0x24, + 0x2c, 0x8e, 0xa0, 0x81, 0x33, 0x72, 0x89, 0x0a, + 0x07, 0x0a, 0xdb, 0x27, 0x47, 0x72, 0x82, 0xe4, + 0xe8, 0xfc, 0x16, 0x49, 0x92, 0xaa, 0x35, 0x1b, + 0xd9, 0x69, 0x5f, 0x4a, 0x91, 0x14, 0xad, 0xe1, + 0x6c, 0x81, 0x1b, 0x3b, 0xc9, 0x12, 0x56, 0x84, + 0x88, 0xdd, 0x24, 0x04, 0x2b, 0x6b, 0xa5, 0x2b, + 0x75, 0x53, 0xa2, 0x39, 0xa9, 0x8c, 0x22, 0xef, + 0x25, 0x5f, 0x74, 0xfc, 0xf1, 0xe5, 0x86, 0xda, + 0xda, 0x4d, 0x3f, 0xf9, 0x15, 0xb1, 0xb6, 0xb2, + 0x62, 0x89, 0x0d, 0x48, 0x4b, 0x1b, 0x8b, 0x93, + 0x83, 0x59, 0xca, 0xe8, 0x65, 0xaa, 0xfe, 0x76, + 0x1f, 0xb1, 0xc6, 0xa5, 0x7d, 0x33, 0xf2, 0x36, + 0xdb, 0x71, 0x43, 0x9c, 0xd6, 0xb6, 0x34, 0x3d, + 0x97, 0x6c, 0x68, 0xa7, 0x33, 0x6c, 0x4a, 0xa7, + 0xa7, 0x12, 0xd4, 0xad, 0x0c, 0x79, 0x19, 0x4e, + 0xcf, 0x2c, 0x2d, 0x67, 0xa9, 0x51, 0x14, 0x42, + 0xde, 0xb8, 0xa8, 0x4d, 0x6e, 0x31, 0x80, 0x95, + 0xc5, 0x35, 0x2c, 0x63, 0x54, 0xe6, 0x7a, 0xb8, + 0xc2, 0x56, 0xc2, 0xde, 0x62, 0xa4, 0xb5, 0x9a, + 0xe1, 0x1f, 0x22, 0x95, 0xc3, 0xd0, 0x58, 0xdc, + 0x8a, 0x3c, 0xd8, 0xbe, 0x87, 0x79, 0x34, 0x3b, + 0xf2, 0xbb, 0xe9, 0xec, 0x7d, 0xd3, 0xc7, 0xb8, + 0x8b, 0xd9, 0x73, 0xed, 0xd8, 0x3b, 0x57, 0x9e, + 0xd2, 0x95, 0xad, 0xb5, 0x3c, 0xe4, 0x8b, 0x47, + 0x90, 0xc6, 0x3c, 0x86, 0x31, 0xe4, 0x31, 0x8f, + 0x21, 0x8c, 0x79, 0x0c, 0x63, 0xc8, 0x63, 0x1e, + 0x43, 0x18, 0xf2, 0x18, 0xc7, 0x90, 0xc6, 0x3c, + 0x86, 0x31, 0xe4, 0x31, 0x8f, 0x21, 0x8c, 0x79, + 0x0c, 0x63, 0xc8, 0x63, 0x1e, 0x43, 0x18, 0xf2, + 0x18, 0x87, 0x1d, 0x88, 0x79, 0x0c, 0x63, 0xc8, + 0x63, 0x09, 0xcd, 0x44, 0x8a, 0xeb, 0xae, 0xba, + 0xfb, 0x82, 0x2e, 0xf2, 0x43, 0x11, 0xe4, 0x48, + 0x30, 0xb1, 0x85, 0x8c, 0x2c, 0x61, 0x63, 0x0b, + 0x18, 0x58, 0xc2, 0xc2, 0x48, 0xc1, 0xa8, 0xe9, + 0x63, 0x4a, 0xbb, 0x11, 0x61, 0x81, 0x44, 0x6c, + 0xe5, 0x28, 0xd2, 0x35, 0x29, 0x4a, 0x4d, 0xf0, + 0xdb, 0x8c, 0xbf, 0x0b, 0x18, 0x58, 0xc2, 0xc6, + 0x16, 0x30, 0xb1, 0x85, 0x8c, 0x2c, 0x23, 0x43, + 0xd3, 0xa2, 0x62, 0x74, 0xcc, 0xee, 0xea, 0xd7, + 0x87, 0xca, 0xc6, 0x1f, 0x2b, 0x09, 0xd8, 0xdf, + 0xe8, 0xd9, 0x46, 0xb7, 0xca, 0xa7, 0xa3, 0x54, + 0xb1, 0x45, 0xae, 0x4c, 0x13, 0x07, 0x25, 0x0b, + 0x91, 0x4d, 0x17, 0x33, 0x79, 0x72, 0xdb, 0x0e, + 0x3c, 0xb9, 0x3a, 0xd4, 0x69, 0x5a, 0xa4, 0x4f, + 0xaa, 0x15, 0x23, 0x90, 0xa8, 0x52, 0x4b, 0x04, + 0xb8, 0x96, 0xea, 0x15, 0x30, 0x31, 0x2b, 0x74, + 0x69, 0xfd, 0xc8, 0x87, 0x52, 0xdf, 0x8e, 0x79, + 0x3f, 0x2e, 0x57, 0x5b, 0x8e, 0x97, 0x6c, 0xa2, + 0x29, 0x49, 0x05, 0x61, 0xf2, 0xb1, 0x87, 0xca, + 0xc6, 0x1f, 0x2b, 0x0a, 0x09, 0x35, 0x3a, 0x56, + 0x4e, 0xe9, 0xdf, 0xdd, 0x45, 0xec, 0xb9, 0xf6, + 0xec, 0x1d, 0xab, 0xcf, 0x69, 0xfd, 0x84, 0x5d, + 0xe4, 0xab, 0xee, 0x9f, 0x9d, 0x25, 0x52, 0xb8, + 0xb5, 0xba, 0xc5, 0xcf, 0x68, 0x6f, 0xb4, 0xb6, + 0xf6, 0xb6, 0xd8, 0xf3, 0x53, 0x03, 0x83, 0x82, + 0x48, 0xda, 0x75, 0x31, 0x87, 0xd4, 0x89, 0xd1, + 0xac, 0xf9, 0xd8, 0x7e, 0xc7, 0x1a, 0x88, 0x79, + 0xc4, 0xb6, 0xf3, 0x56, 0x0e, 0x6a, 0xc1, 0x1b, + 0x50, 0xa9, 0xc8, 0xae, 0x88, 0xe9, 0xd0, 0xa2, + 0x94, 0x21, 0x4a, 0x9b, 0x18, 0xdd, 0xee, 0xaa, + 0x76, 0x67, 0x93, 0x94, 0x2b, 0x6a, 0x55, 0xc4, + 0x2d, 0x81, 0xf6, 0xaa, 0x50, 0xa5, 0x50, 0x52, + 0xca, 0x1b, 0x57, 0xbb, 0xcb, 0x63, 0x78, 0x38, + 0x1d, 0x1c, 0x7d, 0x2a, 0xe5, 0x4c, 0x6f, 0x69, + 0xcc, 0x25, 0x85, 0xdd, 0x55, 0xe5, 0xb3, 0xba, + 0x1c, 0x1c, 0xa3, 0xaa, 0xd2, 0xac, 0x26, 0x37, + 0x22, 0x36, 0xc5, 0xd4, 0x5c, 0x86, 0xee, 0x6a, + 0xc1, 0xcd, 0x58, 0x2f, 0xad, 0x6e, 0x40, 0xc9, + 0xdd, 0x3b, 0xfb, 0xa8, 0xbd, 0x97, 0x3e, 0xdd, + 0x87, 0xb5, 0x79, 0xed, 0x53, 0xa7, 0x31, 0x4d, + 0xf5, 0xab, 0x15, 0x83, 0x7c, 0x7c, 0x6f, 0x8f, + 0x8d, 0xf1, 0xf1, 0xbe, 0x3e, 0x37, 0xc7, 0xc6, + 0xf8, 0xf8, 0xdf, 0x1f, 0x1b, 0xe3, 0xe3, 0x7c, + 0x7c, 0x6f, 0x8f, 0x8d, 0xf1, 0xf1, 0xbe, 0x3e, + 0x37, 0xc7, 0xc6, 0xf8, 0xf8, 0xdf, 0x1f, 0x1b, + 0xe3, 0xe3, 0x7c, 0x7c, 0x6f, 0x8f, 0x8d, 0xf1, + 0xf1, 0xbe, 0x3e, 0x0e, 0x43, 0xb5, 0x38, 0x45, + 0xde, 0x4a, 0xee, 0xb7, 0x29, 0xdd, 0x68, 0xdd, + 0x68, 0xdd, 0x68, 0xdd, 0x68, 0xdd, 0x68, 0xdd, + 0x68, 0xdd, 0x68, 0x73, 0x74, 0x63, 0x3d, 0x9d, + 0xc2, 0x54, 0xea, 0xe8, 0x90, 0xb5, 0xed, 0x2b, + 0x1b, 0x95, 0x4a, 0xed, 0x29, 0x0b, 0x94, 0xc5, + 0x2d, 0xd7, 0x49, 0x9d, 0x5b, 0xdd, 0x9d, 0xb7, + 0x5a, 0x37, 0x5a, 0x37, 0x5a, 0x37, 0x5a, 0x37, + 0x5a, 0x37, 0x5a, 0x37, 0x5a, 0x18, 0x7f, 0xcc, + 0x18, 0x6a, 0x0a, 0x73, 0x14, 0x30, 0xfe, 0x4d, + 0x4e, 0x6c, 0xcd, 0xd7, 0x65, 0x0f, 0x1d, 0x35, + 0x23, 0xe1, 0xad, 0xac, 0xaf, 0x32, 0x46, 0xe7, + 0x14, 0xc4, 0x4b, 0x1a, 0x2c, 0x5a, 0xba, 0x42, + 0xd0, 0xe4, 0xde, 0x9d, 0x41, 0x32, 0x1b, 0x8c, + 0x75, 0x4a, 0x53, 0xf2, 0x27, 0x66, 0x76, 0xd1, + 0xd7, 0x1b, 0x53, 0xb4, 0xa1, 0x7f, 0x44, 0xa5, + 0xe0, 0xd7, 0x86, 0x56, 0x77, 0x2b, 0xe4, 0xed, + 0xdc, 0x36, 0xb9, 0x23, 0x52, 0x34, 0xae, 0x8f, + 0xac, 0x2f, 0x36, 0x2d, 0x93, 0x26, 0x71, 0x70, + 0x91, 0xbb, 0x94, 0xf0, 0x68, 0xb2, 0xcb, 0xcc, + 0xbd, 0x59, 0x37, 0x24, 0xb1, 0x97, 0xb9, 0x76, + 0xf7, 0x51, 0x7b, 0x2e, 0x7d, 0xbb, 0x0f, 0x6a, + 0xf3, 0xda, 0xc9, 0x0f, 0xb9, 0x1b, 0x17, 0x20, + 0x72, 0x47, 0x24, 0x47, 0xdb, 0xef, 0x7f, 0x73, + 0x71, 0x8c, 0xd1, 0x33, 0x7f, 0xfe, 0x8f, 0x29, + 0xd5, 0xa9, 0x7b, 0x41, 0xa6, 0x18, 0x69, 0x37, + 0x35, 0x46, 0xd3, 0xaf, 0x68, 0x7a, 0x66, 0x5c, + 0xcc, 0xb6, 0xda, 0x2a, 0xbe, 0xf4, 0x6d, 0x8b, + 0x56, 0xb5, 0xef, 0x3a, 0x85, 0x6e, 0x3f, 0xca, + 0xb1, 0x8a, 0xe4, 0xc6, 0xd3, 0xce, 0x36, 0xfb, + 0x2f, 0x38, 0xca, 0x18, 0x69, 0x85, 0x5f, 0xc9, + 0x1c, 0x91, 0xc8, 0x10, 0xc5, 0x86, 0x55, 0xdc, + 0x22, 0xef, 0x24, 0x33, 0xd9, 0x62, 0x49, 0x07, + 0xa8, 0xb3, 0x20, 0xd7, 0x3a, 0x95, 0xad, 0x5c, + 0xa2, 0x54, 0xf2, 0xda, 0xa5, 0xbd, 0xe2, 0x51, + 0x57, 0xb6, 0xd9, 0x5c, 0x84, 0xeb, 0x14, 0xca, + 0x24, 0x84, 0xd8, 0xa6, 0x62, 0xfa, 0x9d, 0x4c, + 0x89, 0xcf, 0x50, 0xd8, 0xae, 0xca, 0x35, 0x30, + 0x29, 0x91, 0x6a, 0x82, 0x22, 0xd0, 0xbd, 0xea, + 0x6a, 0xdb, 0xd4, 0xc9, 0x25, 0xe4, 0x45, 0xba, + 0x9c, 0x9c, 0xb7, 0x7a, 0xca, 0xe5, 0xcd, 0xe4, + 0xdb, 0x31, 0x93, 0x98, 0xf0, 0x54, 0xc9, 0xec, + 0xa4, 0x2b, 0xdf, 0xa5, 0xed, 0xf2, 0x45, 0x2f, + 0x52, 0x84, 0xe6, 0x7a, 0x8b, 0x32, 0x1e, 0xa2, + 0xcc, 0x82, 0x47, 0x25, 0xae, 0xf1, 0x30, 0x41, + 0xf4, 0x2a, 0x87, 0x44, 0xe2, 0x66, 0x5f, 0x88, + 0x45, 0x86, 0x21, 0x16, 0x18, 0x84, 0x58, 0x62, + 0x11, 0x61, 0x88, 0x45, 0x86, 0x21, 0x16, 0x18, + 0x84, 0x58, 0x5b, 0x14, 0x8d, 0x58, 0x31, 0x08, + 0xb0, 0xc4, 0x22, 0xc3, 0x10, 0x8b, 0x0c, 0x46, + 0x2d, 0x41, 0x88, 0xc5, 0xaa, 0x31, 0x08, 0xb0, + 0xc4, 0x22, 0xc3, 0x10, 0x8b, 0x0c, 0x42, 0x2c, + 0x31, 0x08, 0xb0, 0xc4, 0x22, 0xc1, 0xa9, 0xb5, + 0x85, 0x88, 0xca, 0xd6, 0xb7, 0x55, 0x97, 0xba, + 0x76, 0xf7, 0x51, 0x7b, 0x2e, 0x7d, 0xbb, 0x0f, + 0x6a, 0xf1, 0xda, 0xcf, 0x4e, 0xf2, 0x5a, 0x39, + 0xb4, 0x1c, 0xd1, 0xcd, 0x1a, 0x62, 0xa7, 0xcd, + 0x97, 0x31, 0x37, 0xba, 0x31, 0x35, 0xff, 0x00, + 0xea, 0x4e, 0xce, 0xa8, 0xe7, 0xf5, 0xef, 0x9a, + 0x8c, 0xa3, 0xc1, 0x02, 0x37, 0x56, 0x64, 0x5a, + 0x7a, 0xc5, 0x33, 0x3d, 0xce, 0xf6, 0xf7, 0x59, + 0x31, 0xb1, 0x85, 0xcb, 0x55, 0x92, 0x99, 0xdd, + 0x45, 0x85, 0x33, 0xb8, 0x1f, 0x29, 0xb6, 0x88, + 0x9c, 0x1d, 0x95, 0xad, 0x6f, 0x55, 0x20, 0x4f, + 0x1d, 0x70, 0x74, 0x29, 0x8e, 0xdd, 0x47, 0x5d, + 0x53, 0x94, 0x73, 0x47, 0x34, 0x73, 0x68, 0x20, + 0x2a, 0x7c, 0xc9, 0x48, 0x45, 0xde, 0x4a, 0xbe, + 0xe9, 0x09, 0xae, 0xa5, 0xaa, 0x57, 0x9c, 0xdc, + 0xf2, 0xa8, 0xf7, 0xa4, 0x4a, 0xa6, 0xed, 0x4a, + 0xd0, 0xdc, 0x16, 0xb8, 0x23, 0x36, 0xf5, 0xab, + 0xdd, 0x4d, 0x35, 0xe1, 0xe1, 0xb3, 0x2b, 0xb5, + 0xed, 0x09, 0x0e, 0xe9, 0x5d, 0x91, 0x16, 0xb3, + 0xab, 0x37, 0xf3, 0xd9, 0xd7, 0xb4, 0x51, 0xbd, + 0x73, 0xfa, 0x3e, 0x81, 0x20, 0x54, 0x86, 0x42, + 0x87, 0xc5, 0xb5, 0x11, 0xb7, 0xbf, 0x1c, 0x85, + 0x94, 0x89, 0x32, 0xa2, 0x5d, 0xd6, 0xb9, 0xd2, + 0xe6, 0x0f, 0xc9, 0x87, 0xec, 0x7f, 0xec, 0x32, + 0xf7, 0x2e, 0xbe, 0xea, 0x2f, 0x65, 0xcf, 0xb7, + 0x61, 0xed, 0x9e, 0x3b, 0x59, 0xc2, 0x05, 0x8e, + 0xd1, 0xfe, 0xa3, 0x6d, 0x2b, 0xd4, 0x6c, 0x1d, + 0x42, 0xc0, 0x91, 0xf5, 0x4b, 0x79, 0xcb, 0xa5, + 0x4e, 0xae, 0x76, 0x52, 0x5e, 0xf5, 0x42, 0x0b, + 0x97, 0x3c, 0x95, 0x45, 0x92, 0x45, 0xee, 0x14, + 0xb9, 0xf5, 0x45, 0xe9, 0x48, 0x7d, 0x50, 0x96, + 0xc4, 0x32, 0x67, 0x16, 0xc0, 0x92, 0x4a, 0xbd, + 0x05, 0xd7, 0x49, 0x17, 0xde, 0x86, 0x92, 0x77, + 0x1a, 0x22, 0x22, 0x5c, 0xf0, 0x94, 0xa4, 0x72, + 0x87, 0x36, 0xf1, 0x6b, 0xf2, 0x92, 0xc8, 0x52, + 0xfc, 0xa5, 0x68, 0xea, 0x16, 0x0e, 0xa1, 0x60, + 0xea, 0x36, 0x8d, 0x30, 0x6d, 0x5d, 0x72, 0xf0, + 0x8b, 0xbc, 0x95, 0x7d, 0xd3, 0xf2, 0xa6, 0x4a, + 0x7a, 0xc3, 0x6b, 0x19, 0x77, 0xb0, 0x9b, 0x18, + 0x1c, 0x2f, 0x26, 0xc6, 0x07, 0x0b, 0xc9, 0x3c, + 0x9b, 0x93, 0x9a, 0x6b, 0x1b, 0x81, 0x09, 0x4e, + 0x8f, 0x19, 0x6b, 0x86, 0x3a, 0xaa, 0xa7, 0xac, + 0x65, 0x58, 0x93, 0xe7, 0x61, 0xfb, 0x1f, 0xf2, + 0x94, 0xc8, 0xd1, 0x44, 0x58, 0x63, 0xba, 0x86, + 0xdf, 0x20, 0x76, 0x0e, 0xae, 0x24, 0xb4, 0x35, + 0xb4, 0x39, 0x90, 0xf4, 0xd5, 0xfd, 0x16, 0x6e, + 0xe5, 0xd7, 0xdd, 0x45, 0xec, 0xb9, 0xf6, 0xec, + 0x3d, 0xb3, 0xc7, 0x6b, 0x1c, 0xfa, 0xd9, 0x53, + 0x99, 0x55, 0x0b, 0xce, 0xa5, 0x23, 0x3a, 0x94, + 0x8c, 0xea, 0x52, 0x33, 0xa9, 0x48, 0x7a, 0x70, + 0x95, 0xa0, 0x4f, 0x74, 0xc6, 0x5a, 0x9a, 0xae, + 0x92, 0xa7, 0x44, 0xc8, 0xea, 0xf7, 0xa8, 0x94, + 0x34, 0xe7, 0xbd, 0x43, 0x4e, 0x52, 0xa7, 0xfd, + 0x40, 0x42, 0x4d, 0xef, 0xda, 0x82, 0x5d, 0xe8, + 0x9e, 0x66, 0x46, 0x1a, 0x73, 0xd6, 0xa2, 0xa7, + 0x30, 0xc7, 0xed, 0x41, 0x24, 0xd4, 0x0e, 0xf3, + 0xc7, 0x04, 0x0b, 0x25, 0x13, 0x86, 0xf1, 0x9d, + 0x4a, 0x46, 0x75, 0x29, 0x19, 0xd4, 0xa4, 0x67, + 0x72, 0x91, 0x16, 0x76, 0x72, 0x78, 0x8e, 0x04, + 0x5d, 0xe4, 0xab, 0xee, 0x9f, 0x95, 0x92, 0xda, + 0x74, 0xe9, 0x39, 0xc8, 0xc9, 0x61, 0xa2, 0xa6, + 0xeb, 0x62, 0x54, 0x54, 0xdd, 0x6c, 0x48, 0xdb, + 0xca, 0x30, 0xc2, 0x0e, 0x58, 0x62, 0x06, 0x8a, + 0xde, 0xe0, 0x72, 0x3b, 0x8a, 0x31, 0xa6, 0xbb, + 0x4f, 0x33, 0xe6, 0x61, 0xfb, 0x1f, 0xf2, 0xd6, + 0xcf, 0xf9, 0x79, 0xcc, 0x0e, 0x4d, 0x49, 0xa3, + 0x4b, 0x15, 0xb4, 0x38, 0xb6, 0x23, 0x86, 0x37, + 0xc7, 0x74, 0xfd, 0xd1, 0x42, 0x06, 0xf8, 0xe2, + 0xc5, 0x4c, 0xcb, 0x19, 0x92, 0xc7, 0x99, 0xe5, + 0xda, 0x4f, 0xcf, 0xa4, 0x97, 0xfd, 0xcc, 0xdd, + 0xcb, 0xaf, 0xba, 0x8b, 0xd9, 0x73, 0xed, 0xd8, + 0xbb, 0x67, 0x8e, 0xd6, 0x37, 0xf5, 0xbb, 0x3f, + 0x87, 0xe6, 0xda, 0xae, 0xd6, 0xf5, 0xfd, 0x55, + 0xb5, 0x6d, 0x65, 0x8a, 0x93, 0x39, 0x39, 0xd1, + 0x5b, 0x71, 0x8a, 0x11, 0xb8, 0xb7, 0x20, 0x4c, + 0x99, 0xc9, 0x15, 0xa4, 0x3a, 0x29, 0x4e, 0xd0, + 0xef, 0x6b, 0xaa, 0x24, 0xcf, 0x11, 0x75, 0xe9, + 0x93, 0x2a, 0x69, 0x70, 0x4c, 0xa2, 0x42, 0xd6, + 0xb1, 0x13, 0x3d, 0xe9, 0x14, 0xa0, 0x44, 0xc7, + 0x26, 0x50, 0x88, 0xe4, 0x9f, 0x24, 0x13, 0xed, + 0x50, 0x8f, 0xfc, 0x2c, 0x91, 0x5b, 0x05, 0xc8, + 0x76, 0x69, 0xe8, 0xd9, 0xa7, 0xa3, 0x66, 0x9e, + 0x8d, 0x9a, 0x7a, 0x36, 0x69, 0xe8, 0x44, 0xaa, + 0x00, 0x8a, 0xa4, 0xbe, 0x46, 0xd3, 0x52, 0xc7, + 0xf8, 0xf1, 0x77, 0x58, 0xff, 0x00, 0x1e, 0x2e, + 0xaa, 0x4e, 0x83, 0x2c, 0x3a, 0xb7, 0xc0, 0xee, + 0x29, 0x43, 0x84, 0x41, 0x59, 0xa6, 0x39, 0x44, + 0x8d, 0x57, 0x6b, 0x9c, 0x27, 0x76, 0xcd, 0x3d, + 0x1b, 0x34, 0xf4, 0x6c, 0xd3, 0xd1, 0xb3, 0x4f, + 0x46, 0xcd, 0x3d, 0x1b, 0x34, 0xf4, 0x21, 0xe9, + 0xb8, 0x9f, 0xe4, 0xb9, 0x02, 0x17, 0x34, 0xb5, + 0x28, 0xaa, 0x94, 0xdf, 0x1a, 0x8e, 0x34, 0x5e, + 0x92, 0x35, 0x1c, 0x40, 0x5f, 0x42, 0x64, 0xf1, + 0x2e, 0x28, 0xc6, 0x80, 0x88, 0xbe, 0x98, 0xde, + 0xc8, 0xfa, 0x8d, 0x8d, 0x91, 0xb9, 0x5f, 0xfb, + 0x99, 0xbb, 0x97, 0x5f, 0x75, 0x17, 0xb2, 0xe7, + 0xdb, 0xb1, 0xf6, 0xcf, 0x1d, 0xb4, 0x73, 0xfc, + 0x3d, 0x5a, 0xba, 0x19, 0xb7, 0x9d, 0x0c, 0x1c, + 0xe8, 0x60, 0xe7, 0x43, 0x07, 0x3a, 0x18, 0x39, + 0xd0, 0xc1, 0xce, 0x86, 0x0e, 0x74, 0x30, 0x73, + 0xa1, 0x83, 0x9d, 0x0c, 0x0a, 0xde, 0x62, 0xab, + 0xd4, 0x73, 0xa1, 0x83, 0x9d, 0x0c, 0x09, 0x5e, + 0x22, 0x88, 0x54, 0xd5, 0x7c, 0x3a, 0xea, 0xf3, + 0xa1, 0x83, 0x9d, 0x0c, 0x1c, 0xe8, 0x60, 0xe7, + 0x43, 0x07, 0x3a, 0x18, 0x39, 0xd0, 0xc1, 0x19, + 0x3d, 0xa4, 0xe8, 0xd0, 0x49, 0xdd, 0x4a, 0xbe, + 0xe9, 0xfc, 0xaa, 0x84, 0x8c, 0x78, 0x98, 0xda, + 0x53, 0x02, 0x76, 0x66, 0xd5, 0x09, 0xdf, 0xd1, + 0x12, 0xdc, 0xba, 0x4c, 0xce, 0x5b, 0x4a, 0x96, + 0x98, 0xba, 0xc3, 0x9f, 0x53, 0x47, 0x1b, 0x8c, + 0x72, 0x2e, 0x2e, 0xa2, 0xc1, 0x48, 0x93, 0xda, + 0x85, 0x6b, 0xe3, 0x46, 0xd8, 0x85, 0x81, 0xa2, + 0xd7, 0x24, 0xd7, 0xb0, 0xdc, 0xb4, 0xd2, 0xe3, + 0x8e, 0xe6, 0x5e, 0x44, 0x79, 0xd9, 0x45, 0x8c, + 0xf1, 0x93, 0x14, 0x91, 0xf9, 0xc7, 0xfe, 0xc9, + 0xfc, 0x9c, 0x56, 0xd8, 0xda, 0xdf, 0x0f, 0x94, + 0xa3, 0x99, 0xc7, 0xc3, 0xb5, 0xee, 0x05, 0xb7, + 0x5c, 0xb9, 0x71, 0xd0, 0xdb, 0x5e, 0xe4, 0x74, + 0x7a, 0x96, 0xb9, 0xa2, 0x71, 0x89, 0xa9, 0x4e, + 0x77, 0x58, 0x52, 0xe8, 0xe3, 0x47, 0x55, 0xab, + 0x6e, 0x29, 0xee, 0xe5, 0x8e, 0xb7, 0x5a, 0xe5, + 0x21, 0x7f, 0x6e, 0x5b, 0x6c, 0x99, 0x4c, 0x58, + 0xa7, 0x47, 0x99, 0x15, 0x8a, 0x99, 0x9f, 0x9e, + 0x43, 0xac, 0xb5, 0xe9, 0xce, 0x0a, 0xf8, 0x5a, + 0x93, 0x51, 0xc4, 0x14, 0x38, 0x2b, 0x60, 0x6f, + 0x74, 0x72, 0xe7, 0x4b, 0x1e, 0x1c, 0x09, 0x5d, + 0x1d, 0x5a, 0xa1, 0x4a, 0x60, 0xcf, 0xdc, 0xba, + 0x7b, 0xa8, 0xbd, 0x97, 0x3e, 0xdd, 0x8f, 0xb6, + 0x77, 0xed, 0xa3, 0xbf, 0x5a, 0xb3, 0xf8, 0x7f, + 0x52, 0x0d, 0xf6, 0xc0, 0x49, 0xdd, 0x4a, 0xbe, + 0xe9, 0xfc, 0x91, 0x1e, 0x8d, 0x4b, 0x29, 0xeb, + 0x99, 0xd7, 0x2a, 0x5a, 0xf2, 0xdc, 0xec, 0x95, + 0xfd, 0x5a, 0x75, 0x87, 0xc9, 0x57, 0x90, 0xe2, + 0xfa, 0x44, 0x8a, 0x38, 0x4b, 0xa5, 0x5f, 0x9a, + 0xad, 0xbd, 0xbd, 0xd5, 0x19, 0x07, 0x92, 0xa5, + 0xbd, 0xd2, 0x4f, 0x63, 0xcb, 0x7d, 0x0c, 0x6a, + 0xe0, 0x6c, 0x54, 0xa1, 0x0b, 0xf3, 0x41, 0xb2, + 0x96, 0xd7, 0x1b, 0x6c, 0x94, 0xa6, 0x51, 0x69, + 0x0e, 0xcc, 0xe6, 0x7c, 0x91, 0xff, 0x00, 0xb2, + 0x7f, 0x3a, 0xd6, 0xb5, 0xfc, 0xaf, 0xb6, 0x97, + 0xd8, 0x64, 0x24, 0x8f, 0x2c, 0xc8, 0x7a, 0x43, + 0x95, 0x3c, 0xb6, 0x94, 0xf8, 0xd6, 0xec, 0xcd, + 0x63, 0xa5, 0xf1, 0xd8, 0x39, 0x11, 0xf3, 0x0a, + 0x6a, 0x20, 0xa7, 0x87, 0x44, 0x07, 0x1c, 0xad, + 0x4c, 0x79, 0x02, 0xb5, 0x47, 0x41, 0x9b, 0x56, + 0xd2, 0xd8, 0xd2, 0x5a, 0x26, 0xba, 0x14, 0x8e, + 0xe2, 0xcb, 0x86, 0xb4, 0x90, 0xc8, 0xff, 0x00, + 0x19, 0xb6, 0x42, 0x99, 0x1a, 0x47, 0x34, 0xc7, + 0x27, 0x8a, 0xa4, 0x4c, 0xe2, 0xed, 0x0a, 0x8e, + 0xbd, 0x5c, 0xc2, 0xdc, 0x73, 0x7a, 0x50, 0xcf, + 0xdc, 0xb9, 0xfb, 0xa8, 0xbd, 0x97, 0x3e, 0xdd, + 0x8f, 0xb6, 0x77, 0xed, 0xa3, 0xbf, 0x5a, 0xb3, + 0xf8, 0x7c, 0x85, 0x47, 0x15, 0x9c, 0x0a, 0x8d, + 0xd4, 0xcb, 0xc8, 0x63, 0x3a, 0xe2, 0xd5, 0x26, + 0x3d, 0x12, 0x87, 0x76, 0x35, 0x8c, 0xa3, 0x75, + 0x06, 0xea, 0x03, 0x90, 0x9a, 0x4a, 0x0f, 0x1a, + 0x02, 0x4b, 0xb9, 0x41, 0xc6, 0x53, 0xca, 0x33, + 0xc6, 0x9f, 0x2c, 0x1b, 0xed, 0x80, 0x93, 0xba, + 0x96, 0x52, 0xb6, 0xca, 0xbf, 0x36, 0xd6, 0x35, + 0x4e, 0x76, 0x90, 0xdc, 0x72, 0x86, 0xef, 0x1a, + 0x02, 0x93, 0x9a, 0x71, 0x07, 0xc6, 0x2f, 0x47, + 0x6a, 0xc4, 0xa7, 0xb7, 0xaa, 0xff, 0x00, 0x03, + 0xa8, 0x2d, 0x4e, 0x47, 0x8d, 0x3c, 0x6d, 0x61, + 0x51, 0x42, 0xd2, 0x30, 0x2d, 0x39, 0x65, 0x8c, + 0xbe, 0x6d, 0xe6, 0xb0, 0x2a, 0xb2, 0x9f, 0x23, + 0x05, 0x2b, 0x48, 0x47, 0xf6, 0x1a, 0x3b, 0x97, + 0x3f, 0x75, 0x17, 0xb2, 0xe7, 0xdb, 0xb2, 0x76, + 0xee, 0xdd, 0xb3, 0x52, 0x8b, 0x52, 0xb9, 0x3d, + 0xb6, 0x9a, 0xce, 0xef, 0xf2, 0x39, 0x33, 0x9e, + 0xee, 0xec, 0x9a, 0xe6, 0xdb, 0xdd, 0x5d, 0x1b, + 0x1d, 0x9d, 0x12, 0xb7, 0xb3, 0x96, 0xae, 0x4a, + 0x91, 0x63, 0x4c, 0x8c, 0xc2, 0x32, 0x6a, 0x94, + 0x9b, 0xaa, 0x94, 0x9d, 0x3d, 0x48, 0xaa, 0x65, + 0xae, 0x4e, 0x08, 0x90, 0xa5, 0xb1, 0x7a, 0x70, + 0x77, 0x56, 0xe7, 0xcb, 0x57, 0x2a, 0x32, 0xbf, + 0x24, 0x4d, 0x35, 0xe8, 0xe2, 0x23, 0xf6, 0x1a, + 0x8e, 0xdf, 0xe5, 0x3e, 0xfe, 0x6c, 0x5f, 0xe0, + 0xc8, 0xca, 0x96, 0xf5, 0x6d, 0xa9, 0x4c, 0x7d, + 0xb0, 0x5a, 0x5a, 0xb5, 0x01, 0xc9, 0x13, 0xc3, + 0xfb, 0x47, 0x23, 0xcd, 0x16, 0x98, 0x49, 0xc8, + 0x1f, 0x28, 0xed, 0xce, 0x71, 0x2c, 0xe5, 0x09, + 0x1c, 0xeb, 0x7b, 0xeb, 0x7b, 0x77, 0x89, 0x12, + 0x26, 0xf2, 0xee, 0x5e, 0xc6, 0xda, 0xd8, 0x42, + 0x07, 0x7a, 0x7e, 0xdf, 0x95, 0x96, 0x5e, 0x65, + 0xf7, 0x26, 0xa3, 0x62, 0x1f, 0xec, 0x34, 0x77, + 0x0e, 0x5e, 0xf2, 0x2f, 0x65, 0xcf, 0xb7, 0x64, + 0xed, 0xdd, 0x2d, 0xdc, 0x94, 0x3e, 0x31, 0xa3, + 0x94, 0x27, 0x5b, 0x11, 0x93, 0x37, 0xdf, 0xd1, + 0xde, 0x07, 0x47, 0x78, 0x1d, 0x1d, 0xe0, 0x74, + 0x77, 0x71, 0xd1, 0xdd, 0xc7, 0x47, 0x77, 0x1d, + 0x1d, 0xdc, 0x74, 0x77, 0x71, 0xd1, 0xdd, 0xc7, + 0x47, 0x77, 0x1d, 0x1d, 0xdc, 0x74, 0x77, 0x71, + 0xd1, 0xdd, 0xc7, 0x47, 0x77, 0x1d, 0x1d, 0xdc, + 0x74, 0x77, 0x81, 0xd1, 0xde, 0x05, 0x8c, 0x6f, + 0x66, 0xdc, 0xcd, 0xa7, 0xea, 0xfc, 0xc5, 0x4a, + 0x39, 0x37, 0xfe, 0x57, 0x94, 0x81, 0xc5, 0x0b, + 0x96, 0x9e, 0xbf, 0xa4, 0x17, 0x31, 0xbd, 0xd9, + 0x5e, 0x8c, 0xf0, 0x38, 0x8f, 0x95, 0x6f, 0xe8, + 0xcf, 0x03, 0xa3, 0x3c, 0x0e, 0x8c, 0xf0, 0x3a, + 0x33, 0xc0, 0xe8, 0xcf, 0x03, 0xa3, 0x3c, 0x0e, + 0x8c, 0xf0, 0x3a, 0x33, 0xc0, 0xe8, 0xcf, 0x03, + 0xa3, 0x3c, 0x0e, 0x8c, 0xf0, 0x11, 0xa3, 0x7c, + 0x44, 0x3a, 0x33, 0xc0, 0xe8, 0xcf, 0x01, 0x14, + 0x46, 0x4e, 0xe1, 0x74, 0x7a, 0x32, 0x92, 0x2f, + 0x5a, 0xd6, 0xb7, 0x57, 0xfb, 0x0d, 0x16, 0xd7, + 0xce, 0x72, 0xf7, 0x91, 0x7b, 0x2e, 0x7d, 0xbb, + 0x4a, 0x84, 0xe5, 0x93, 0x55, 0x68, 0x6e, 0xa2, + 0x9b, 0x49, 0x26, 0xe0, 0x4a, 0xc5, 0x69, 0xe9, + 0xd5, 0x5d, 0x07, 0x55, 0x74, 0x1d, 0x55, 0xd0, + 0x75, 0x57, 0x41, 0xd5, 0x5d, 0x07, 0x55, 0x74, + 0x1d, 0x55, 0xd0, 0x75, 0x57, 0x41, 0xd5, 0x5d, + 0x07, 0x55, 0x74, 0x1d, 0x55, 0xd0, 0x75, 0x57, + 0x41, 0xd5, 0x5d, 0x07, 0x55, 0x74, 0x1d, 0x55, + 0xd0, 0x75, 0x57, 0x41, 0xd5, 0x5d, 0x05, 0x5d, + 0x1c, 0xea, 0x2b, 0x5a, 0xdd, 0x5f, 0x92, 0xcb, + 0xef, 0x2e, 0xee, 0xaa, 0xe8, 0x3a, 0xab, 0xa0, + 0xea, 0xae, 0x83, 0xaa, 0xba, 0x0e, 0xaa, 0xe8, + 0x3a, 0xab, 0xa0, 0xea, 0xae, 0x83, 0xaa, 0xba, + 0x0e, 0xaa, 0xe8, 0x3a, 0xab, 0xa0, 0xea, 0xae, + 0x83, 0xaa, 0xba, 0x0e, 0xaa, 0xe8, 0x3a, 0xab, + 0xa0, 0xea, 0xae, 0x83, 0xaa, 0xba, 0x0e, 0xaa, + 0xe8, 0x0e, 0x58, 0xb1, 0x45, 0x3f, 0xb3, 0x4d, + 0xb5, 0xbd, 0x29, 0x88, 0x53, 0x14, 0xb4, 0xf2, + 0x0d, 0x50, 0x8b, 0xd9, 0x50, 0x57, 0x9b, 0x62, + 0xd8, 0x81, 0x27, 0x9b, 0x84, 0xd8, 0x30, 0x9b, + 0x06, 0x12, 0x58, 0xc2, 0x4b, 0x18, 0x49, 0x63, + 0x09, 0x2c, 0x61, 0x25, 0x8c, 0x24, 0xb1, 0x84, + 0x96, 0x30, 0x92, 0xc6, 0x12, 0x58, 0xc2, 0x4b, + 0x18, 0x49, 0x63, 0x09, 0x2c, 0x61, 0x25, 0x8c, + 0x24, 0xb1, 0x84, 0x96, 0x30, 0x92, 0xc6, 0x12, + 0x58, 0xc2, 0x4b, 0x18, 0x49, 0x63, 0x09, 0x2c, + 0x61, 0x25, 0x8c, 0x24, 0xb1, 0x84, 0x96, 0x30, + 0x92, 0xc6, 0x12, 0x58, 0xc2, 0x4b, 0x18, 0x49, + 0x63, 0x09, 0x2c, 0x61, 0x25, 0x8c, 0x24, 0xb1, + 0x84, 0x96, 0x30, 0x92, 0xc6, 0x12, 0x58, 0xc2, + 0x4b, 0x18, 0x49, 0x63, 0x09, 0x2c, 0x61, 0x25, + 0x8c, 0x24, 0xb1, 0x84, 0x96, 0x30, 0x92, 0xc6, + 0x12, 0x58, 0xc2, 0x4b, 0x18, 0x49, 0x63, 0x09, + 0x2c, 0x61, 0x25, 0x8c, 0x24, 0xb1, 0x84, 0x96, + 0x30, 0x92, 0xc6, 0x12, 0x58, 0xc2, 0x4b, 0x18, + 0x49, 0x63, 0x09, 0x2c, 0x61, 0x25, 0x8c, 0x24, + 0xb1, 0x84, 0x96, 0x30, 0x92, 0xc6, 0x12, 0x58, + 0xc2, 0x4b, 0x18, 0x49, 0x63, 0x09, 0x2c, 0x61, + 0x25, 0x8c, 0x24, 0xb1, 0x84, 0x96, 0x30, 0x92, + 0xc6, 0x12, 0x58, 0xc2, 0x4b, 0x18, 0x49, 0x63, + 0x09, 0x2c, 0x61, 0x25, 0x8c, 0x26, 0xc1, 0x84, + 0xd8, 0x1b, 0x62, 0x64, 0xa5, 0x38, 0x9b, 0x36, + 0x5a, 0x3c, 0x28, 0x36, 0xd0, 0x6d, 0xa0, 0xdb, + 0x41, 0xb6, 0x83, 0x6d, 0x06, 0xda, 0x0d, 0xb4, + 0x1b, 0x68, 0x36, 0xd0, 0x6d, 0xa0, 0xdb, 0x41, + 0xb6, 0x83, 0x6d, 0x06, 0xda, 0x0d, 0xb4, 0x1b, + 0x68, 0x36, 0xd0, 0x6d, 0xa0, 0xdb, 0x41, 0xb6, + 0x83, 0x6d, 0x06, 0xda, 0x0d, 0xb4, 0x1b, 0x68, + 0x36, 0xd0, 0x6d, 0xa0, 0xdb, 0x41, 0xb6, 0x83, + 0x6d, 0x06, 0xda, 0x0d, 0xb4, 0x1b, 0x68, 0x36, + 0xd0, 0x6d, 0xa0, 0xdb, 0x41, 0xb6, 0x83, 0x6d, + 0x06, 0xda, 0x0d, 0xb4, 0x1b, 0x68, 0x36, 0xd0, + 0x6d, 0xa0, 0xdb, 0x41, 0xb6, 0x83, 0x6d, 0x06, + 0xda, 0x0d, 0xb4, 0x1b, 0x68, 0x36, 0xd0, 0x6d, + 0xa0, 0xdb, 0x41, 0xb6, 0x83, 0x6d, 0x06, 0xda, + 0x0d, 0xb4, 0x1b, 0x68, 0x36, 0xd0, 0x6d, 0xa0, + 0xdb, 0x41, 0xb6, 0x83, 0x6d, 0x06, 0xda, 0x0d, + 0xb4, 0x1b, 0x68, 0x36, 0xd0, 0x6d, 0xa0, 0xdb, + 0x41, 0xb6, 0x83, 0x6d, 0x06, 0xda, 0x0d, 0xb4, + 0x1b, 0x68, 0x36, 0xd0, 0x78, 0x53, 0xf2, 0xff, + 0xc4, 0x00, 0x6c, 0x11, 0x00, 0x01, 0x03, 0x02, + 0x03, 0x03, 0x04, 0x0c, 0x08, 0x06, 0x0c, 0x08, + 0x0a, 0x06, 0x0b, 0x00, 0x02, 0x01, 0x03, 0x04, + 0x05, 0x06, 0x00, 0x11, 0x12, 0x07, 0x13, 0x14, + 0x18, 0x21, 0x55, 0xd5, 0x15, 0x16, 0x17, 0x22, + 0x31, 0x51, 0x56, 0x61, 0x93, 0x94, 0x95, 0xd2, + 0x32, 0x41, 0x71, 0x96, 0xa1, 0xd3, 0xd4, 0xe1, + 0x08, 0x10, 0x23, 0x53, 0x54, 0x91, 0x20, 0x24, + 0x33, 0x37, 0x42, 0x50, 0x62, 0xb1, 0xb4, 0xb5, + 0xe4, 0xf0, 0x30, 0x34, 0x36, 0x40, 0x73, 0x74, + 0x75, 0x81, 0x25, 0x26, 0x45, 0x52, 0x72, 0x80, + 0xa5, 0xb2, 0xc1, 0xd1, 0x35, 0x43, 0x63, 0x90, + 0x92, 0xd6, 0x44, 0x65, 0x70, 0x76, 0x82, 0x83, + 0xa3, 0xa4, 0xc2, 0xc3, 0xf1, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, 0x01, 0xff, + 0x00, 0xac, 0x2d, 0xa3, 0xb3, 0x4b, 0xe2, 0xfa, + 0xd6, 0x76, 0xc5, 0xbd, 0x32, 0xa1, 0x19, 0xb3, + 0x56, 0xdd, 0xa8, 0x16, 0xee, 0x25, 0x35, 0xb7, + 0x13, 0x4a, 0x93, 0x7c, 0x7c, 0xb3, 0x66, 0x31, + 0xbc, 0x08, 0x42, 0x46, 0xc3, 0x26, 0xe3, 0xe2, + 0x24, 0x24, 0xad, 0x64, 0x48, 0xaa, 0x1f, 0x82, + 0xde, 0xd5, 0xc8, 0x50, 0x96, 0x35, 0x09, 0xb5, + 0xe7, 0xef, 0x4e, 0xb2, 0x3a, 0x93, 0x9f, 0xe3, + 0xd1, 0x1c, 0xc7, 0x9f, 0xc2, 0x99, 0x17, 0x83, + 0xc3, 0x92, 0xe3, 0x92, 0xce, 0xd5, 0x7f, 0x33, + 0x6f, 0xfb, 0x63, 0xfb, 0x2e, 0x39, 0x2c, 0xed, + 0x57, 0xf3, 0x36, 0xff, 0x00, 0xb6, 0x3f, 0xb2, + 0xe3, 0x92, 0xce, 0xd5, 0x7f, 0x33, 0x6f, 0xfb, + 0x63, 0xfb, 0x2e, 0x39, 0x2c, 0xed, 0x57, 0xf3, + 0x36, 0xff, 0x00, 0xb6, 0x3f, 0xb2, 0xe3, 0x92, + 0xce, 0xd5, 0x7f, 0x33, 0x6f, 0xfb, 0x63, 0xfb, + 0x2e, 0x39, 0x2c, 0xed, 0x57, 0xf3, 0x36, 0xff, + 0x00, 0xb6, 0x3f, 0xb2, 0xe3, 0x92, 0xce, 0xd5, + 0x7f, 0x33, 0x6f, 0xfb, 0x63, 0xfb, 0x2e, 0x39, + 0x2c, 0xed, 0x57, 0xf3, 0x36, 0xff, 0x00, 0xb6, + 0x3f, 0xb2, 0xe3, 0x92, 0xce, 0xd5, 0x7f, 0x33, + 0x6f, 0xfb, 0x63, 0xfb, 0x2e, 0x39, 0x2c, 0xed, + 0x57, 0xf3, 0x36, 0xff, 0x00, 0xb6, 0x3f, 0xb2, + 0xe3, 0x92, 0xce, 0xd5, 0x7f, 0x33, 0x6f, 0xfb, + 0x63, 0xfb, 0x2e, 0x39, 0x2c, 0xed, 0x57, 0xf3, + 0x36, 0xff, 0x00, 0xb6, 0x3f, 0xb2, 0xe3, 0x92, + 0xce, 0xd5, 0x7f, 0x33, 0x6f, 0xfb, 0x63, 0xfb, + 0x2e, 0x39, 0x2c, 0xed, 0x57, 0xf3, 0x36, 0xff, + 0x00, 0xb6, 0x3f, 0xb2, 0xe3, 0x92, 0xce, 0xd5, + 0x7f, 0x33, 0x6f, 0xfb, 0x63, 0xfb, 0x2e, 0x39, + 0x2c, 0xed, 0x57, 0xf3, 0x36, 0xff, 0x00, 0xb6, + 0x3f, 0xb2, 0xe3, 0x92, 0xce, 0xd5, 0x7f, 0x33, + 0x6f, 0xfb, 0x63, 0xfb, 0x2e, 0x39, 0x2c, 0xed, + 0x5b, 0xf3, 0x34, 0x0f, 0x6c, 0x7f, 0x65, 0xc5, + 0xcd, 0xb0, 0xdd, 0xa7, 0x5a, 0x91, 0x1d, 0xa8, + 0x54, 0xad, 0xa7, 0xe4, 0x40, 0x60, 0x54, 0xdf, + 0x97, 0x49, 0x79, 0x9a, 0xa0, 0x47, 0x01, 0x15, + 0x33, 0x71, 0xf6, 0xa2, 0x99, 0xca, 0x65, 0x96, + 0x85, 0x14, 0x9d, 0x90, 0x71, 0xd2, 0x3b, 0x69, + 0xce, 0x6e, 0x8f, 0xf1, 0xc6, 0xce, 0x2d, 0x86, + 0x6f, 0x2b, 0xe6, 0xd9, 0xb6, 0xa4, 0x99, 0xb7, + 0x12, 0xa9, 0x53, 0x6d, 0xb9, 0xa4, 0xda, 0xa0, + 0xbb, 0xc0, 0xb0, 0x0e, 0x4b, 0x9a, 0x2c, 0x9a, + 0xe6, 0x80, 0xf3, 0x91, 0x63, 0xbc, 0x0d, 0x38, + 0xa8, 0x48, 0x0e, 0x10, 0x9e, 0x83, 0xcb, 0x42, + 0xd3, 0x69, 0xb0, 0x28, 0xf0, 0x22, 0xd3, 0x29, + 0x71, 0x18, 0x83, 0x4f, 0x84, 0xc8, 0x47, 0x8b, + 0x12, 0x33, 0x68, 0xd3, 0x2c, 0x32, 0x09, 0xde, + 0x80, 0x00, 0xfe, 0xb2, 0x55, 0xcc, 0x8c, 0x94, + 0x8c, 0xd4, 0x88, 0x95, 0x55, 0x55, 0x13, 0xc2, + 0xa8, 0x9f, 0x2a, 0xe5, 0x85, 0x21, 0x1e, 0x72, + 0x54, 0x4f, 0x95, 0x51, 0x30, 0x86, 0x05, 0xf0, + 0x48, 0x57, 0xe4, 0x24, 0x5c, 0x21, 0x22, 0xe7, + 0x92, 0xa2, 0xe5, 0xe1, 0xc9, 0x73, 0xcb, 0xe5, + 0xc4, 0xda, 0x84, 0x1a, 0x6c, 0x59, 0x13, 0xaa, + 0x13, 0x23, 0x42, 0x87, 0x11, 0xb5, 0x76, 0x54, + 0xa9, 0x4f, 0xb6, 0xc3, 0x11, 0xdb, 0x4f, 0xe1, + 0xbc, 0xeb, 0x84, 0x20, 0xd8, 0xf8, 0x39, 0xc9, + 0x53, 0x35, 0x54, 0x44, 0xe7, 0x5c, 0x51, 0x6e, + 0x6a, 0x45, 0x78, 0xa4, 0xb5, 0x01, 0xd9, 0x61, + 0x26, 0x1e, 0xe8, 0xa4, 0xc0, 0xaa, 0x52, 0xea, + 0xb4, 0x2a, 0x9b, 0x2d, 0x3f, 0xab, 0x87, 0x92, + 0x54, 0xba, 0xdc, 0x2a, 0x7d, 0x43, 0x83, 0x90, + 0xa0, 0xeb, 0x71, 0xe6, 0xa4, 0x65, 0x8a, 0xfb, + 0xac, 0x49, 0x65, 0xa7, 0x8d, 0xd8, 0xcf, 0x83, + 0x7f, 0xe1, 0xbf, 0x09, 0xcb, 0x2e, 0x95, 0x6a, + 0xdf, 0x11, 0x27, 0x51, 0xa3, 0xb5, 0x0a, 0x2d, + 0xcb, 0x4f, 0x2a, 0x8b, 0xf0, 0x98, 0x04, 0x6d, + 0x86, 0xaa, 0x0c, 0xc8, 0x26, 0x25, 0x3a, 0xcb, + 0x63, 0x90, 0x34, 0x12, 0x51, 0x59, 0x78, 0x9b, + 0x04, 0x41, 0x47, 0xd5, 0xe3, 0x4f, 0xdd, 0x34, + 0x8e, 0x2b, 0x35, 0x88, 0x14, 0x0a, 0x5c, 0xca, + 0xc5, 0x51, 0xed, 0xc4, 0x18, 0x2d, 0x2b, 0xaf, + 0xb9, 0x96, 0xa2, 0xf0, 0xa0, 0x83, 0x6d, 0x8f, + 0x84, 0xdd, 0x75, 0xc2, 0x16, 0x9a, 0x6d, 0x39, + 0xcd, 0xc3, 0x11, 0x4f, 0x0e, 0x25, 0xfe, 0x12, + 0x00, 0x0f, 0x18, 0xc0, 0xb4, 0x1c, 0x91, 0x1d, + 0x09, 0x50, 0x1d, 0x97, 0x5a, 0x18, 0x8f, 0x10, + 0xe7, 0xcc, 0x44, 0xcb, 0x54, 0xc9, 0xa2, 0x0a, + 0xa9, 0xcf, 0xa7, 0x7e, 0x59, 0x78, 0x33, 0x5c, + 0x72, 0x93, 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, + 0xa8, 0x31, 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, + 0xe4, 0x3e, 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, + 0xb5, 0xf3, 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, + 0xf9, 0x12, 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, + 0x93, 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, + 0x31, 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, + 0x3e, 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, + 0xf3, 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, + 0x12, 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, + 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, + 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, + 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, + 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, + 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, + 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, + 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, + 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, + 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, + 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, + 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, 0x4e, + 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, + 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, + 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, + 0x43, 0xea, 0x1c, 0x58, 0x1b, 0x54, 0xa3, 0x5f, + 0x66, 0xec, 0x20, 0x8c, 0xfd, 0x2a, 0xae, 0xc3, + 0x6a, 0xf9, 0x40, 0x90, 0xe0, 0x3c, 0x2f, 0x30, + 0x2a, 0x22, 0x4e, 0xc5, 0x92, 0x08, 0x1b, 0xd4, + 0x6d, 0x48, 0x77, 0x80, 0x6d, 0x34, 0xe0, 0x66, + 0x8b, 0xa4, 0x87, 0x35, 0x4c, 0x5f, 0x1b, 0x69, + 0xa3, 0xda, 0x35, 0x17, 0x68, 0xf0, 0xe9, 0xef, + 0x57, 0x6a, 0x51, 0xb2, 0x49, 0x82, 0xdc, 0x90, + 0x87, 0x0e, 0x2b, 0x84, 0x08, 0x68, 0xc1, 0x4a, + 0x56, 0xa4, 0x91, 0xbe, 0x28, 0x49, 0xbd, 0x06, + 0xd8, 0x21, 0x68, 0xb3, 0x03, 0x3d, 0xe8, 0x9b, + 0x63, 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, + 0x3e, 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, + 0xf3, 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, + 0x12, 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, + 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, + 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, + 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, + 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, + 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, + 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, + 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, + 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, + 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, + 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, + 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, 0x4e, + 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, + 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, + 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, + 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, 0x4b, + 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, 0x4e, 0x4f, + 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, 0x29, + 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, 0x83, + 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, 0x43, + 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, 0x4b, 0x5f, + 0x39, 0x0f, 0xa8, 0x30, 0xdf, 0xe1, 0x24, 0xe2, + 0x98, 0xef, 0xac, 0xb4, 0x16, 0xff, 0x00, 0x84, + 0x4d, 0x5c, 0x1b, 0xc7, 0x11, 0x3f, 0x92, 0x07, + 0x45, 0x64, 0x49, 0x7c, 0xca, 0xe0, 0xfc, 0xb8, + 0xb4, 0xae, 0xea, 0x4d, 0xe7, 0x49, 0x1a, 0xb5, + 0x24, 0xdc, 0xd0, 0x8e, 0x2b, 0x12, 0x63, 0x3e, + 0x28, 0x12, 0x61, 0xc9, 0x11, 0x12, 0x26, 0x1e, + 0x11, 0x22, 0x1c, 0xf4, 0x98, 0x98, 0x18, 0x91, + 0x03, 0x80, 0x48, 0x42, 0xbe, 0x14, 0x4f, 0xd9, + 0x6c, 0x07, 0xf7, 0xdf, 0xb2, 0xbf, 0xd7, 0x2a, + 0x1f, 0xd4, 0xb5, 0x2f, 0xc5, 0xb6, 0x5a, 0x6c, + 0x8b, 0xda, 0x55, 0x0b, 0x67, 0x70, 0x1d, 0x20, + 0x7a, 0x65, 0x3e, 0xe2, 0xba, 0x66, 0x13, 0x66, + 0xa2, 0x4c, 0x76, 0x16, 0x9c, 0x71, 0x6d, 0xe5, + 0x77, 0x2c, 0xb2, 0x6d, 0xfb, 0x8e, 0xa1, 0x0d, + 0xc4, 0xcc, 0x87, 0x52, 0x53, 0xde, 0x0c, 0xf1, + 0x7a, 0xdc, 0xb6, 0xf5, 0xc7, 0xb3, 0xfd, 0x95, + 0xdc, 0xd7, 0x7b, 0x4c, 0xf6, 0x0a, 0x6d, 0xc5, + 0x47, 0x91, 0x71, 0x33, 0x2a, 0x23, 0xf2, 0x5a, + 0x07, 0x06, 0x93, 0x57, 0x62, 0x73, 0x2e, 0xc3, + 0x8e, 0xd3, 0xb2, 0x0d, 0x1b, 0xa8, 0x81, 0x37, + 0xbb, 0x6d, 0x92, 0x24, 0xc9, 0x33, 0x1d, 0x28, + 0xaa, 0x94, 0x36, 0xf6, 0x75, 0x57, 0xbb, 0xac, + 0xea, 0x86, 0xc6, 0x69, 0x66, 0xd3, 0xf4, 0xda, + 0xc4, 0xa1, 0xba, 0xaa, 0xb4, 0xaa, 0x2d, 0x62, + 0x91, 0x46, 0x66, 0xde, 0x72, 0x98, 0xff, 0x00, + 0x15, 0x4e, 0xac, 0x3f, 0x3a, 0x2c, 0x28, 0xb2, + 0xa4, 0xcc, 0x7c, 0xa1, 0x1d, 0x2e, 0x18, 0xa4, + 0x89, 0x21, 0x21, 0xae, 0x29, 0x05, 0xa6, 0x9b, + 0x33, 0x2d, 0x8f, 0x99, 0x51, 0x6f, 0xdb, 0xc9, + 0xa3, 0x73, 0x4c, 0x1b, 0xca, 0xa3, 0x78, 0x54, + 0x19, 0x42, 0x5e, 0xf4, 0x2a, 0x96, 0x8d, 0xd7, + 0x36, 0x14, 0xe4, 0x14, 0x53, 0xc8, 0x77, 0x94, + 0xca, 0xbd, 0x3d, 0xd3, 0x54, 0x04, 0xd7, 0xb9, + 0x55, 0xfe, 0x01, 0x2e, 0x2d, 0x5e, 0x2e, 0xa5, + 0x78, 0x5f, 0x77, 0x3a, 0x37, 0x22, 0x48, 0x56, + 0x18, 0xa0, 0x5d, 0x66, 0xd4, 0x56, 0x24, 0xc9, + 0x7d, 0x29, 0x92, 0x25, 0xdd, 0x54, 0xfb, 0x7a, + 0x5b, 0x11, 0x63, 0xb4, 0xe4, 0xc7, 0xd2, 0x94, + 0xd3, 0x54, 0x1a, 0xde, 0xee, 0x3b, 0x4f, 0xca, + 0x0e, 0x04, 0xa4, 0x41, 0x6d, 0xf9, 0x6c, 0xc6, + 0x68, 0xf6, 0x64, 0xd1, 0x3b, 0x26, 0x9e, 0x0c, + 0x56, 0x20, 0x5c, 0xe9, 0x48, 0x1a, 0x9f, 0x1b, + 0x5f, 0xa2, 0x49, 0x7e, 0x75, 0x05, 0x90, 0xa8, + 0xd3, 0xed, 0xf6, 0xdb, 0xa3, 0xc3, 0x9e, 0xfc, + 0xda, 0x9e, 0xa9, 0x6e, 0x4b, 0x84, 0xf5, 0x42, + 0xa3, 0x4f, 0x0a, 0xa4, 0xe7, 0x19, 0x90, 0x2b, + 0x54, 0x90, 0x14, 0xe8, 0xf5, 0x7a, 0x54, 0x4f, + 0xf0, 0xff, 0x00, 0x86, 0x0f, 0xf9, 0x45, 0x67, + 0x7f, 0xb1, 0xaa, 0x1f, 0xd3, 0x5b, 0xfc, 0x5b, + 0x7e, 0x57, 0x3b, 0x4c, 0x80, 0xd8, 0x12, 0xa0, + 0xbd, 0x72, 0x42, 0x07, 0x53, 0xe2, 0x30, 0x1a, + 0x75, 0x59, 0xe4, 0x12, 0xf1, 0xa2, 0x3a, 0xd3, + 0x47, 0xff, 0x00, 0x48, 0x11, 0x71, 0xc3, 0x7c, + 0x9f, 0xab, 0xee, 0xc7, 0x0d, 0xf2, 0x7e, 0xaf, + 0xbb, 0x1c, 0x37, 0xc9, 0xfa, 0xbe, 0xec, 0x70, + 0xdf, 0x27, 0xea, 0xfb, 0xb1, 0xc3, 0x7c, 0x9f, + 0xab, 0xee, 0xc7, 0x0d, 0xf2, 0x7e, 0xaf, 0xbb, + 0x1c, 0x37, 0xc9, 0xfa, 0xbe, 0xec, 0x1e, 0xce, + 0xa9, 0x2b, 0xb3, 0x40, 0xbc, 0x19, 0x95, 0x50, + 0xec, 0xce, 0x87, 0x24, 0x39, 0x10, 0xdd, 0x88, + 0xb4, 0xfe, 0x15, 0x8a, 0x98, 0xc2, 0x90, 0x60, + 0xd2, 0x42, 0x49, 0x48, 0x40, 0xdb, 0xad, 0x17, + 0x3c, 0xb2, 0x1d, 0xe1, 0x67, 0x96, 0x95, 0x41, + 0x4b, 0xcb, 0x66, 0xb0, 0x2d, 0xea, 0x05, 0xb3, + 0x32, 0x9c, 0x55, 0x69, 0x75, 0xba, 0xbc, 0x88, + 0x90, 0xa7, 0x41, 0x77, 0x87, 0x7d, 0xb1, 0x9c, + 0xfd, 0x34, 0x25, 0xb9, 0x1a, 0x0c, 0x68, 0xd0, + 0x5a, 0x95, 0xbc, 0xe2, 0x5c, 0x46, 0x5b, 0x6d, + 0xc7, 0x64, 0x38, 0xa9, 0xde, 0x64, 0x47, 0xdf, + 0x62, 0x6e, 0xcf, 0xae, 0xca, 0x75, 0x42, 0x9d, + 0x4a, 0x9b, 0x43, 0x7e, 0x3c, 0xea, 0xb2, 0xe9, + 0xa7, 0x34, 0x4e, 0xc2, 0x26, 0xe5, 0x9a, 0x67, + 0xa9, 0xb0, 0x96, 0xdc, 0x93, 0x84, 0x2e, 0x82, + 0x26, 0xa7, 0x1a, 0x76, 0x43, 0x6e, 0x36, 0x24, + 0xd9, 0x98, 0x88, 0xba, 0xda, 0x9a, 0xec, 0xba, + 0xfa, 0x1e, 0x11, 0x16, 0xd9, 0x9d, 0xfb, 0x75, + 0xe3, 0x62, 0x3e, 0x45, 0x0c, 0xbf, 0x28, 0xda, + 0x38, 0x45, 0xbe, 0x51, 0x92, 0xa9, 0x11, 0xa5, + 0x16, 0x8c, 0x9b, 0x91, 0x33, 0x71, 0x1d, 0xd1, + 0xd2, 0x4d, 0x3a, 0x68, 0xe3, 0x6a, 0x4c, 0xd9, + 0x37, 0x2c, 0x8a, 0xcb, 0xd6, 0xf3, 0x34, 0x69, + 0x47, 0x59, 0x8f, 0xa9, 0x5f, 0x83, 0x93, 0x22, + 0xac, 0x88, 0xa2, 0x12, 0xba, 0xe4, 0x82, 0x70, + 0x62, 0x03, 0x0a, 0x84, 0x1a, 0x24, 0x2c, 0x8d, + 0xc3, 0x9a, 0xdb, 0x46, 0xdc, 0x35, 0x70, 0x10, + 0xbb, 0x42, 0xba, 0x52, 0xb3, 0xda, 0xf2, 0xd1, + 0x64, 0x0d, 0x67, 0x70, 0x52, 0x46, 0x09, 0x9c, + 0x40, 0x57, 0x23, 0x80, 0xa9, 0x93, 0xcc, 0xc8, + 0x37, 0xd2, 0x23, 0xed, 0xe4, 0x24, 0x88, 0x4c, + 0xc8, 0x73, 0x51, 0x89, 0xb4, 0x39, 0xb8, 0x24, + 0x09, 0x58, 0xb1, 0x2e, 0x7a, 0x03, 0x0c, 0x49, + 0xab, 0xd2, 0x1c, 0x86, 0xcc, 0x89, 0x01, 0x11, + 0xa2, 0xe2, 0x20, 0xc8, 0x25, 0x94, 0xe3, 0x5b, + 0xe6, 0xe3, 0x9b, 0x51, 0x24, 0xc8, 0x75, 0x97, + 0x4d, 0xae, 0xf9, 0x01, 0xf6, 0xdb, 0x5f, 0x02, + 0x7c, 0x25, 0x44, 0xc5, 0x52, 0x83, 0x50, 0xa2, + 0xce, 0x7a, 0x9b, 0x54, 0x8d, 0xc2, 0x4e, 0x8f, + 0xa3, 0x7f, 0x1d, 0x5c, 0x61, 0xe5, 0x6f, 0x78, + 0x02, 0xe0, 0x66, 0xe4, 0x67, 0x1e, 0x65, 0x55, + 0x40, 0xc5, 0x72, 0x17, 0x15, 0x53, 0x3c, 0x8b, + 0x22, 0x45, 0x4c, 0x70, 0xdf, 0x27, 0xea, 0xfb, + 0xb1, 0xc3, 0x7c, 0x9f, 0xab, 0xee, 0xc7, 0x0d, + 0xf2, 0x7e, 0xaf, 0xbb, 0x1c, 0x37, 0xc9, 0xfa, + 0xbe, 0xec, 0x70, 0xdf, 0x27, 0xea, 0xfb, 0xb1, + 0xc3, 0x7c, 0x9f, 0xab, 0xee, 0xc6, 0xc9, 0x40, + 0xd9, 0xda, 0x25, 0xb4, 0x40, 0xba, 0x75, 0x3d, + 0x50, 0x6c, 0xb2, 0xfe, 0x10, 0x15, 0x1e, 0xa1, + 0x98, 0xaf, 0x8d, 0x33, 0xc9, 0x7c, 0xc4, 0x88, + 0xbe, 0x14, 0x4c, 0x26, 0x2e, 0x06, 0xcd, 0xea, + 0xf5, 0x6d, 0xd7, 0x17, 0x51, 0x9d, 0x5e, 0xa4, + 0x44, 0x4b, 0xce, 0xaa, 0xbc, 0x6b, 0xde, 0x1c, + 0x70, 0xdf, 0x27, 0xea, 0xfb, 0xb1, 0xc3, 0x7c, + 0x9f, 0xab, 0xee, 0xc5, 0xaf, 0x69, 0x59, 0xd2, + 0x6d, 0x69, 0xf7, 0x25, 0xd7, 0x2e, 0xe0, 0x8c, + 0x11, 0x6b, 0x4d, 0xd2, 0x9b, 0x1a, 0x22, 0xd3, + 0xd7, 0x56, 0xf6, 0x2b, 0x6f, 0x81, 0x1b, 0x52, + 0xe0, 0xc8, 0x2d, 0x5a, 0x95, 0xc4, 0x23, 0x17, + 0x44, 0x72, 0xd2, 0x9a, 0x33, 0xcc, 0x96, 0xe8, + 0xb0, 0xa2, 0xc5, 0x7a, 0xdd, 0x7e, 0xd0, 0x76, + 0xa3, 0x5a, 0xa7, 0x5d, 0x51, 0x8d, 0xda, 0x54, + 0x79, 0x51, 0xc3, 0xb2, 0xa0, 0xf3, 0x1a, 0x02, + 0x43, 0x0f, 0x23, 0x0d, 0x32, 0xd3, 0xb9, 0x12, + 0x93, 0x9b, 0xd1, 0x61, 0x96, 0xda, 0x6d, 0x09, + 0x0d, 0x4c, 0x1a, 0xe2, 0x9d, 0x95, 0xb3, 0xab, + 0xbe, 0x15, 0x4a, 0x05, 0x22, 0x5d, 0x09, 0xe6, + 0x27, 0xd4, 0xf7, 0x9d, 0x8f, 0x68, 0xe4, 0x53, + 0xf7, 0x52, 0x89, 0xa0, 0x37, 0x1c, 0x6d, 0xb9, + 0xa3, 0x29, 0x60, 0xef, 0x80, 0x1b, 0x22, 0x56, + 0x0e, 0x48, 0xbd, 0x92, 0x86, 0x4d, 0xae, 0xf5, + 0xad, 0x7d, 0xae, 0x55, 0x52, 0x19, 0xd4, 0x38, + 0x23, 0xe0, 0x82, 0xa4, 0x94, 0x73, 0x91, 0xa9, + 0x9d, 0x23, 0x53, 0x50, 0x57, 0x52, 0x26, 0x9d, + 0xe6, 0xf3, 0x5a, 0x80, 0xaa, 0xeb, 0xd1, 0xb9, + 0xe6, 0xcb, 0x79, 0x9a, 0xa2, 0x61, 0x8d, 0x9b, + 0xde, 0x52, 0x65, 0xd4, 0x20, 0xc7, 0xa0, 0x48, + 0x7a, 0x55, 0x29, 0x19, 0x5a, 0x83, 0x6d, 0xbf, + 0x4f, 0x24, 0x8e, 0xaf, 0xb2, 0x32, 0x1a, 0x6f, + 0x7c, 0x92, 0xf7, 0x0f, 0x3e, 0x6c, 0x90, 0xb9, + 0xc3, 0x47, 0x75, 0xd9, 0x02, 0x8a, 0x88, 0x6d, + 0x09, 0x2e, 0x58, 0xa6, 0xd8, 0x57, 0x4d, 0x5e, + 0x23, 0xd3, 0xe9, 0xd4, 0x67, 0xa4, 0x44, 0x8c, + 0xf4, 0x98, 0xf2, 0x1e, 0x57, 0xa1, 0x47, 0xdc, + 0x3f, 0x11, 0xa4, 0x7e, 0x4b, 0x6f, 0xb7, 0x2a, + 0x4b, 0x0f, 0x34, 0xad, 0x36, 0xa8, 0xaa, 0xae, + 0x36, 0x22, 0xa4, 0xbb, 0xa0, 0x52, 0x77, 0xbc, + 0xc6, 0xcf, 0x6c, 0xa8, 0x37, 0x6d, 0x52, 0x7c, + 0x6a, 0x84, 0x89, 0xad, 0xc7, 0xa7, 0x53, 0x1e, + 0xa8, 0x94, 0x5a, 0x50, 0xc6, 0x5a, 0xa4, 0xfd, + 0x04, 0x2d, 0x23, 0x10, 0x96, 0x5a, 0x14, 0x71, + 0x21, 0x37, 0x00, 0x8d, 0x4d, 0xb7, 0x75, 0xe6, + 0x0c, 0x8a, 0x02, 0xbb, 0xbe, 0x6a, 0xfc, 0xb4, + 0x60, 0xda, 0xd5, 0xb6, 0xe0, 0x53, 0xa5, 0x49, + 0x91, 0x1a, 0x45, 0x3e, 0x24, 0xf1, 0x6a, 0xa0, + 0x0c, 0x8d, 0x4a, 0x0a, 0xc9, 0x43, 0xce, 0x1d, + 0x40, 0x58, 0x10, 0x6d, 0x24, 0x86, 0x84, 0x71, + 0x72, 0x69, 0x9c, 0x85, 0xc1, 0x15, 0x6f, 0xbd, + 0xde, 0x39, 0x6c, 0x59, 0xb4, 0x29, 0x14, 0x59, + 0x57, 0x45, 0xdb, 0x53, 0x9b, 0x4e, 0xa1, 0xb1, + 0x38, 0x69, 0x71, 0x58, 0xa5, 0xb2, 0xcb, 0x95, + 0x2a, 0x8c, 0xf2, 0x67, 0x7c, 0x40, 0xc1, 0x48, + 0x6d, 0xe6, 0x59, 0x16, 0x01, 0x45, 0xc3, 0x57, + 0x18, 0x34, 0x70, 0x11, 0xc4, 0xd6, 0xca, 0x8a, + 0x11, 0x47, 0xd9, 0xb5, 0xb3, 0x36, 0xe9, 0xb6, + 0x61, 0xd3, 0xeb, 0x92, 0xa7, 0xdb, 0x77, 0x3c, + 0x2a, 0x84, 0xc6, 0x48, 0x1c, 0x84, 0xcd, 0x7a, + 0x17, 0x03, 0x12, 0x4b, 0x84, 0xcc, 0xa0, 0x28, + 0xce, 0xb5, 0xfe, 0x33, 0x1d, 0x5b, 0x57, 0x96, + 0x03, 0x42, 0x6a, 0x12, 0x23, 0x80, 0x6b, 0x63, + 0x7c, 0x54, 0x9b, 0x0e, 0xe6, 0xb8, 0x02, 0x5b, + 0xf4, 0x3a, 0x34, 0x99, 0xf1, 0x61, 0xba, 0x6d, + 0xb8, 0xfa, 0x14, 0x66, 0x43, 0x50, 0xe6, 0xbb, + 0xb6, 0xca, 0x53, 0xd1, 0xd2, 0x4b, 0xc8, 0x08, + 0x8a, 0x6d, 0x46, 0xde, 0xb8, 0x3a, 0x83, 0x50, + 0x0e, 0xf1, 0xb4, 0x2a, 0x45, 0x9b, 0x71, 0x57, + 0xa6, 0x49, 0x81, 0x49, 0xa3, 0xca, 0x97, 0x2e, + 0x16, 0xae, 0x31, 0x9d, 0x2d, 0xc6, 0xe1, 0x08, + 0x48, 0x81, 0x5b, 0x94, 0xec, 0xc3, 0x8e, 0xcc, + 0x77, 0xb5, 0x81, 0x80, 0xb0, 0xeb, 0x82, 0xf1, + 0x90, 0x38, 0x80, 0x05, 0xbb, 0x3d, 0x34, 0x9b, + 0x00, 0x9d, 0x81, 0x7c, 0xf6, 0x6a, 0x3d, 0x4e, + 0x0d, 0x66, 0xd6, 0x87, 0x11, 0xd8, 0xd0, 0x1b, + 0x46, 0x51, 0x1d, 0x93, 0x25, 0xc9, 0x01, 0xa1, + 0xf0, 0x58, 0xf2, 0x0a, 0x53, 0x2e, 0x23, 0x6d, + 0x94, 0x53, 0x84, 0xf3, 0x60, 0xf8, 0x1a, 0x3a, + 0xcb, 0xcf, 0x34, 0xe3, 0x65, 0x86, 0x6c, 0xb9, + 0x54, 0xaa, 0x7d, 0xd6, 0xdd, 0xc1, 0x6c, 0xc9, + 0x7a, 0xa3, 0x4f, 0xa5, 0xc1, 0x99, 0x1e, 0x43, + 0x15, 0x6a, 0x7a, 0x0d, 0x05, 0x24, 0x1c, 0x8c, + 0xa5, 0xd4, 0x23, 0x46, 0xaa, 0x21, 0x3e, 0x92, + 0x45, 0xb4, 0x46, 0xe3, 0x2b, 0x12, 0x5e, 0x14, + 0x6d, 0x4d, 0x58, 0x01, 0x31, 0x23, 0x3d, 0x9b, + 0x5e, 0x6d, 0xc6, 0x95, 0x30, 0xad, 0xe9, 0x5c, + 0x34, 0x28, 0xed, 0xcb, 0x90, 0xf0, 0xb9, 0x09, + 0xc4, 0x18, 0xee, 0xb3, 0xc4, 0x0b, 0x8d, 0xa3, + 0x72, 0x4c, 0xe4, 0x64, 0xc2, 0xef, 0x1c, 0x08, + 0xc2, 0xf3, 0x8c, 0x8f, 0xee, 0xc0, 0x0b, 0xcd, + 0x8a, 0x45, 0x85, 0x75, 0x57, 0xe1, 0x1d, 0x42, + 0x8f, 0x44, 0x93, 0x3a, 0x13, 0x6f, 0x6e, 0x09, + 0xf6, 0xca, 0x2b, 0x68, 0xae, 0xf7, 0xb9, 0x8b, + 0x61, 0x21, 0xf6, 0x5d, 0x7b, 0x46, 0xb1, 0xde, + 0x1b, 0x20, 0xe0, 0x35, 0xcf, 0xbc, 0x21, 0xd2, + 0x59, 0x54, 0x28, 0xd3, 0x29, 0x53, 0x64, 0xd3, + 0x6a, 0x2c, 0x70, 0xd3, 0xa1, 0xb9, 0xb9, 0x92, + 0xc2, 0x93, 0x4e, 0xab, 0x4e, 0x69, 0x42, 0xd2, + 0xae, 0x30, 0x6e, 0xb2, 0x5d, 0xe9, 0x0a, 0xe6, + 0xdb, 0x84, 0x3c, 0xfe, 0x1c, 0xf1, 0xc3, 0x7c, + 0x9f, 0xab, 0xee, 0xc7, 0x0d, 0xf2, 0x7e, 0xaf, + 0xbb, 0x1f, 0x83, 0xaa, 0x18, 0x39, 0x77, 0xb5, + 0xa9, 0x74, 0x6e, 0xe8, 0x2e, 0x20, 0xff, 0x00, + 0x05, 0x0f, 0x55, 0x60, 0x54, 0x91, 0x3e, 0x25, + 0x51, 0x44, 0x45, 0xf1, 0xa0, 0x8e, 0x7e, 0x04, + 0xcb, 0xf6, 0x5b, 0x01, 0xfd, 0xf7, 0xec, 0xaf, + 0xf5, 0xca, 0x87, 0xf5, 0x2d, 0x4b, 0xf1, 0x0e, + 0xcd, 0xbb, 0x69, 0xbd, 0xef, 0x1b, 0x9a, 0xf2, + 0x8b, 0x52, 0x61, 0x8c, 0xe9, 0x94, 0x2b, 0x4c, + 0x20, 0x5c, 0x75, 0x3a, 0x5b, 0x8b, 0x44, 0x81, + 0x19, 0x64, 0xcb, 0x94, 0x6b, 0x6f, 0xd4, 0xe2, + 0x9e, 0xe6, 0xa1, 0x54, 0x96, 0xe9, 0x84, 0x79, + 0xa7, 0xbd, 0x6c, 0xa3, 0x91, 0xf0, 0xed, 0x21, + 0x89, 0xb9, 0x44, 0xb1, 0xae, 0x8a, 0x2c, 0x88, + 0x14, 0x06, 0x69, 0x52, 0x0e, 0xdd, 0xb6, 0xf6, + 0xac, 0x97, 0x05, 0x0a, 0x7b, 0xb5, 0x28, 0x4f, + 0x92, 0xda, 0xd5, 0x3a, 0x4d, 0x4d, 0xe9, 0x48, + 0x7b, 0xf9, 0xc7, 0x51, 0x71, 0xca, 0x6d, 0x5e, + 0x53, 0xac, 0xba, 0xb2, 0x45, 0x66, 0x4a, 0xe3, + 0x41, 0xc6, 0xc1, 0xf0, 0x6d, 0xe7, 0x92, 0xe3, + 0xb7, 0xaa, 0xf4, 0xdb, 0xde, 0x83, 0x7b, 0xda, + 0xb0, 0x0a, 0x63, 0x93, 0x74, 0x5b, 0xd7, 0xbd, + 0x39, 0x87, 0xe2, 0x45, 0xe3, 0xe8, 0x64, 0x2e, + 0x14, 0x0a, 0xce, 0x52, 0xa4, 0x44, 0x61, 0xe9, + 0xf4, 0x09, 0x39, 0x20, 0xa9, 0x38, 0x72, 0x5e, + 0xa7, 0xbe, 0xe4, 0x46, 0x53, 0x26, 0xc1, 0x12, + 0xaf, 0x61, 0xdf, 0x43, 0x6c, 0x38, 0xed, 0x0a, + 0x9d, 0xba, 0xba, 0x23, 0x5f, 0xd7, 0xdc, 0x98, + 0x42, 0x53, 0xa0, 0x37, 0xff, 0x00, 0x17, 0x6f, + 0x25, 0xab, 0x53, 0x9d, 0xa8, 0x0b, 0xe9, 0x2b, + 0x74, 0x3b, 0xa8, 0xf3, 0x62, 0x55, 0x5b, 0x8e, + 0xae, 0xb7, 0x31, 0x1d, 0x86, 0xd0, 0xee, 0x45, + 0xf1, 0x40, 0xc5, 0xab, 0x69, 0x4d, 0xb7, 0xef, + 0xba, 0xdc, 0xa6, 0xe1, 0x93, 0x76, 0xef, 0x69, + 0x96, 0x75, 0x02, 0x93, 0x2d, 0x5d, 0x8c, 0xbb, + 0xe7, 0x28, 0x7d, 0x93, 0x6d, 0xe6, 0x55, 0x80, + 0x75, 0x64, 0x36, 0xad, 0x32, 0xf4, 0x75, 0x57, + 0x1d, 0x61, 0xb6, 0xdc, 0x53, 0x5d, 0xd9, 0x9a, + 0xa1, 0x65, 0xfe, 0x1f, 0xf0, 0xc1, 0xff, 0x00, + 0x28, 0xac, 0xef, 0xf6, 0x35, 0x43, 0xfa, 0x6b, + 0x7f, 0x8b, 0x6e, 0x4d, 0x6f, 0xad, 0x4a, 0x68, + 0xf8, 0xae, 0x38, 0xa5, 0xff, 0x00, 0x65, 0xd6, + 0x13, 0xff, 0x00, 0x1c, 0x70, 0x3e, 0x6f, 0xa3, + 0xee, 0xc7, 0x03, 0xe6, 0xfa, 0x3e, 0xec, 0x70, + 0x3e, 0x6f, 0xa3, 0xee, 0xc7, 0x03, 0xe6, 0xfa, + 0x3e, 0xec, 0x70, 0x3e, 0x6f, 0xa3, 0xee, 0xc7, + 0x03, 0xe6, 0xfa, 0x3e, 0xec, 0x70, 0x3e, 0x6f, + 0xa3, 0xee, 0xc5, 0xae, 0xc4, 0x69, 0x16, 0xfd, + 0x91, 0x45, 0x96, 0xa9, 0xc3, 0x56, 0x69, 0xd7, + 0x8d, 0x2d, 0xfc, 0xf4, 0xae, 0x9d, 0xe4, 0x98, + 0x73, 0x1b, 0x55, 0x15, 0xcb, 0x9f, 0x79, 0x0c, + 0x74, 0xf8, 0x39, 0xfc, 0x18, 0x95, 0x58, 0x83, + 0xc6, 0xdb, 0xf5, 0x5a, 0x83, 0xcd, 0x84, 0x46, + 0x76, 0x87, 0x70, 0x36, 0x8f, 0x19, 0x0a, 0x34, + 0xc3, 0x6d, 0x44, 0x93, 0x4e, 0x8a, 0xf9, 0x97, + 0x30, 0xb6, 0xc8, 0xe8, 0x6c, 0x95, 0xd2, 0xc8, + 0x00, 0x57, 0x78, 0x6a, 0x82, 0x84, 0xa9, 0x39, + 0x56, 0x15, 0x4a, 0xd5, 0xa5, 0xca, 0x8f, 0x05, + 0x87, 0x1e, 0xbb, 0xd6, 0xab, 0x1c, 0x52, 0xe4, + 0xa9, 0xd7, 0xe6, 0xee, 0x91, 0x99, 0xa0, 0x73, + 0x57, 0xb2, 0x31, 0x41, 0x62, 0xc5, 0x91, 0xbc, + 0xd0, 0x8c, 0x8c, 0x8d, 0xd3, 0x6e, 0x11, 0x03, + 0x20, 0x5a, 0x5c, 0x21, 0x9f, 0x56, 0xab, 0x95, + 0xa1, 0xb4, 0x27, 0x52, 0xa9, 0x34, 0x64, 0x76, + 0xf0, 0x4d, 0x30, 0xe0, 0x4a, 0x79, 0x1c, 0x66, + 0x2e, 0xfd, 0x94, 0x46, 0x63, 0x12, 0x1e, 0xb6, + 0x58, 0x41, 0x01, 0x44, 0x06, 0x95, 0x07, 0x24, + 0x5f, 0x19, 0x2a, 0xd4, 0xf5, 0x4e, 0xae, 0x5e, + 0xd4, 0x68, 0x15, 0x16, 0xa9, 0xd5, 0xfa, 0xdd, + 0x26, 0xda, 0x2a, 0x6c, 0xb3, 0x7d, 0x63, 0x2c, + 0x81, 0x87, 0x14, 0x8a, 0x5c, 0x50, 0x94, 0x19, + 0x9b, 0x6e, 0x18, 0xb9, 0x9a, 0xa3, 0x79, 0x99, + 0x8a, 0x91, 0x64, 0xa2, 0xca, 0xaa, 0x52, 0xbf, + 0x68, 0xd7, 0xac, 0xca, 0x3c, 0xe9, 0xed, 0x54, + 0x6e, 0x0a, 0x1d, 0x0e, 0xe1, 0xec, 0x9c, 0xe0, + 0x7b, 0x88, 0xdc, 0x8c, 0xa6, 0x84, 0xe1, 0xc3, + 0x72, 0x49, 0xf7, 0xef, 0x38, 0xd2, 0x36, 0xa7, + 0x93, 0xd9, 0x18, 0x8a, 0x89, 0x28, 0xe4, 0xf2, + 0x67, 0xb3, 0x42, 0x1a, 0xfb, 0x75, 0x0a, 0x1d, + 0x7a, 0x4b, 0xb2, 0x11, 0x8a, 0x95, 0x2e, 0xec, + 0x61, 0xf9, 0x66, 0xe3, 0xe6, 0x4e, 0xd2, 0xdd, + 0x68, 0x66, 0x36, 0xe3, 0x8e, 0x12, 0x99, 0x0b, + 0x8c, 0x84, 0x64, 0x44, 0xcd, 0x50, 0x40, 0x5e, + 0xcd, 0x15, 0x39, 0xb1, 0x5e, 0x78, 0xeb, 0x75, + 0xaa, 0xa5, 0x58, 0xd3, 0xfc, 0x7e, 0x74, 0x89, + 0x01, 0x9a, 0x78, 0x1a, 0x37, 0x0b, 0x70, 0x3f, + 0xfe, 0x16, 0x74, 0x0f, 0xfb, 0xb1, 0xc0, 0xf9, + 0xbe, 0x8f, 0xbb, 0x1c, 0x0f, 0x9b, 0xe8, 0xfb, + 0xb1, 0xc0, 0xf9, 0xbe, 0x8f, 0xbb, 0x1c, 0x0f, + 0x9b, 0xe8, 0xfb, 0xb1, 0xc0, 0xf9, 0xbe, 0x8f, + 0xbb, 0x1c, 0x0f, 0x9b, 0xe8, 0xfb, 0xb1, 0xb3, + 0x18, 0x9b, 0xbb, 0xf2, 0xdc, 0x3c, 0xbe, 0x0c, + 0x89, 0xbf, 0xd5, 0x53, 0xd3, 0x09, 0x8a, 0xcc, + 0x2c, 0xeb, 0x15, 0x65, 0xcb, 0xc3, 0x54, 0xa8, + 0x2f, 0x83, 0xc7, 0x2d, 0xef, 0x36, 0x38, 0x1f, + 0x37, 0xd1, 0xf7, 0x63, 0x81, 0xf3, 0x7d, 0x1f, + 0x76, 0x2d, 0x5a, 0xa3, 0xb6, 0xee, 0xcf, 0x2a, + 0xb2, 0x98, 0x83, 0x4b, 0x9e, 0xe9, 0x5d, 0x11, + 0xdb, 0xe1, 0xaa, 0xf1, 0x4a, 0x64, 0x5d, 0x2e, + 0x40, 0x6f, 0x37, 0x37, 0x00, 0xf3, 0x05, 0xbc, + 0x1d, 0x19, 0x01, 0xeb, 0xc9, 0x33, 0x2e, 0x65, + 0xcf, 0x16, 0xb5, 0xdf, 0x2e, 0xb5, 0x75, 0x94, + 0x8a, 0xdc, 0xa8, 0x34, 0xb3, 0x72, 0xdf, 0x9d, + 0x45, 0xa0, 0x94, 0x76, 0x78, 0x4a, 0x6d, 0x22, + 0x4b, 0xe8, 0xc6, 0xeb, 0x70, 0x24, 0x6e, 0x13, + 0x3b, 0xd5, 0x65, 0x7f, 0x2a, 0xf3, 0xce, 0x1e, + 0xbd, 0x11, 0xc0, 0xc5, 0xa5, 0x69, 0x91, 0xab, + 0x8d, 0x4e, 0xcf, 0xb6, 0xe9, 0x90, 0x6b, 0x95, + 0x66, 0xea, 0x77, 0x0b, 0x57, 0x54, 0x6a, 0xf5, + 0x38, 0x02, 0x59, 0xce, 0x7a, 0x14, 0x38, 0x83, + 0x93, 0xae, 0xab, 0xef, 0x22, 0x3e, 0x2d, 0xca, + 0x74, 0x48, 0x11, 0xa5, 0x1d, 0xd2, 0xa9, 0x1a, + 0x0e, 0xa5, 0x17, 0x11, 0x34, 0x5b, 0xce, 0x54, + 0x52, 0xd8, 0xd6, 0xd7, 0x63, 0xe6, 0x0a, 0xed, + 0x01, 0x5c, 0x11, 0x0c, 0xd2, 0x67, 0x66, 0x5a, + 0xa9, 0x0c, 0x7e, 0x72, 0x54, 0xef, 0xa9, 0x8d, + 0x9c, 0x65, 0x04, 0x4c, 0xf8, 0x7f, 0xca, 0x22, + 0x0f, 0x36, 0x2d, 0x2a, 0x80, 0xdc, 0x14, 0xb9, + 0x4f, 0x30, 0xd4, 0x77, 0xea, 0x6d, 0xdd, 0xd3, + 0x6b, 0xb3, 0x59, 0x7e, 0xe2, 0xa8, 0xd0, 0x37, + 0x0c, 0xca, 0x54, 0x38, 0xd3, 0x88, 0xa0, 0xb6, + 0xf1, 0x4e, 0x8e, 0xcb, 0x40, 0x31, 0xb8, 0x59, + 0x03, 0xb8, 0xc9, 0x85, 0x42, 0x4f, 0x83, 0xaa, + 0xe6, 0xa8, 0x38, 0xfd, 0x9d, 0x5a, 0x93, 0x4e, + 0x91, 0xc3, 0x0d, 0x43, 0x68, 0xb3, 0x5c, 0x73, + 0xb1, 0xf2, 0x9d, 0x56, 0xa4, 0x34, 0x74, 0xcf, + 0xca, 0x28, 0xbd, 0xa2, 0x3b, 0x8f, 0x46, 0x90, + 0xf0, 0xef, 0xbb, 0xf6, 0x80, 0x5c, 0xd4, 0x3a, + 0x83, 0x99, 0x31, 0xb3, 0x58, 0x0f, 0x2d, 0x32, + 0xbb, 0xda, 0xf3, 0xf4, 0xe8, 0x97, 0x90, 0xbb, + 0x04, 0xa1, 0x3d, 0x50, 0xd2, 0x8a, 0x94, 0x91, + 0x74, 0x4a, 0x6b, 0x71, 0xb5, 0xb6, 0xe6, 0x94, + 0x74, 0x93, 0x75, 0x28, 0xc1, 0xb5, 0x2d, 0x06, + 0xd8, 0x29, 0x37, 0xbc, 0x6c, 0xf1, 0xb5, 0x3a, + 0x4d, 0x05, 0xd8, 0x1c, 0x7d, 0x3c, 0x68, 0x03, + 0x59, 0x5a, 0xb2, 0x2d, 0xca, 0x50, 0xdf, 0x57, + 0xa7, 0x15, 0x49, 0xd8, 0x60, 0x2a, 0xc3, 0x19, + 0x89, 0x2a, 0x47, 0x15, 0x17, 0x5d, 0x90, 0x2b, + 0xb8, 0x1d, 0xe8, 0x6b, 0x31, 0xe2, 0x95, 0xd1, + 0x5a, 0x0d, 0x1c, 0x6e, 0xdb, 0x2b, 0xb5, 0x58, + 0x72, 0xe1, 0xc6, 0xad, 0x52, 0xeb, 0x8e, 0x55, + 0xa3, 0x46, 0x9a, 0xef, 0x0e, 0x13, 0xa1, 0xc8, + 0x8a, 0xac, 0xbd, 0xba, 0x24, 0x02, 0x53, 0x71, + 0x82, 0xcc, 0xcd, 0x74, 0x1a, 0xb6, 0x08, 0x28, + 0x5a, 0x45, 0xc1, 0x5c, 0x5b, 0x16, 0xad, 0x3a, + 0xd5, 0xbf, 0x2d, 0x68, 0xad, 0xd4, 0xc2, 0x75, + 0x59, 0x21, 0x55, 0x1c, 0xae, 0x36, 0xca, 0xb4, + 0x71, 0x21, 0x4a, 0x3a, 0x6c, 0xe4, 0x69, 0x96, + 0x9e, 0x1d, 0x27, 0xab, 0x74, 0x42, 0x86, 0xd3, + 0xe3, 0xbc, 0xe6, 0x47, 0xf3, 0x10, 0x90, 0xdb, + 0x2d, 0xd2, 0xa9, 0xd5, 0x2a, 0xfd, 0xb9, 0x6b, + 0xb1, 0x6d, 0x57, 0x18, 0xa4, 0x95, 0xbb, 0x3e, + 0x71, 0xd7, 0xa3, 0xac, 0xe7, 0x21, 0x98, 0x93, + 0xb5, 0x03, 0x94, 0xdc, 0xd7, 0x05, 0xb4, 0xfd, + 0xb2, 0xd9, 0x30, 0x86, 0xa2, 0x2f, 0x64, 0xca, + 0xe6, 0x6d, 0x21, 0x64, 0xd9, 0xa0, 0xbe, 0xeb, + 0x57, 0x57, 0x6f, 0x94, 0xbb, 0x4a, 0xa5, 0x1e, + 0x9d, 0x54, 0x9d, 0x57, 0xa5, 0xcc, 0x69, 0xf4, + 0x96, 0x50, 0x7b, 0x29, 0x1a, 0x14, 0x68, 0xd1, + 0xa6, 0xbd, 0x1d, 0xf6, 0x33, 0x73, 0x76, 0x52, + 0x18, 0x71, 0xc2, 0x71, 0x94, 0x24, 0x31, 0x36, + 0xcc, 0xf2, 0x19, 0x39, 0xad, 0x1a, 0x6b, 0xd4, + 0x1a, 0xa5, 0xf9, 0x50, 0xab, 0x55, 0x58, 0xbb, + 0x1f, 0xa6, 0xd2, 0x68, 0x1c, 0x43, 0xad, 0x03, + 0x2c, 0x0a, 0xb9, 0x11, 0x65, 0x23, 0x90, 0x90, + 0x5b, 0x43, 0x67, 0x7b, 0x0d, 0xdc, 0xf5, 0x69, + 0x42, 0x25, 0x75, 0x14, 0x9e, 0x40, 0x92, 0xaf, + 0x00, 0x4f, 0xa5, 0x24, 0x46, 0x36, 0xad, 0x29, + 0xb9, 0x27, 0x32, 0x1d, 0xc3, 0x44, 0xa5, 0xd6, + 0x29, 0xf2, 0x9d, 0x71, 0x5c, 0x37, 0xa3, 0x4d, + 0x39, 0x8e, 0xa3, 0x7a, 0xcd, 0x75, 0x92, 0x46, + 0x55, 0x56, 0x1b, 0x45, 0x55, 0x24, 0x8e, 0x0c, + 0xe7, 0xcf, 0x8e, 0x36, 0x62, 0xdf, 0xb0, 0x21, + 0xf1, 0x8f, 0x76, 0x3d, 0x2c, 0x4d, 0x0b, 0x15, + 0x1f, 0x3e, 0x14, 0x88, 0xa9, 0xce, 0xb8, 0x4a, + 0x6c, 0xea, 0xdd, 0x11, 0xeb, 0x11, 0x5d, 0x4a, + 0x3a, 0xbb, 0xd4, 0x4c, 0xf2, 0xc5, 0xbd, 0x06, + 0x75, 0x52, 0x85, 0x61, 0x3f, 0x45, 0xad, 0xb1, + 0x4c, 0x89, 0x6e, 0x4f, 0x7d, 0xba, 0xf4, 0x52, + 0x9a, 0xe4, 0x62, 0x57, 0x5e, 0xa9, 0x03, 0xc3, + 0xad, 0xa0, 0x4c, 0xa5, 0x14, 0xb6, 0x8f, 0x43, + 0x6d, 0x3b, 0x90, 0xfe, 0xd8, 0x44, 0x6d, 0x4b, + 0x32, 0x44, 0xda, 0x1c, 0x4d, 0x77, 0xb5, 0xca, + 0x79, 0x7c, 0x2a, 0x8a, 0xaf, 0xff, 0x00, 0xa0, + 0xcf, 0x9b, 0x1c, 0x0f, 0x9b, 0xe8, 0xfb, 0xb1, + 0xc0, 0xf9, 0xbe, 0x8f, 0xbb, 0x1b, 0x05, 0x63, + 0x72, 0xfd, 0xd3, 0xcd, 0x96, 0xa6, 0xa8, 0xbf, + 0x41, 0xd5, 0xbf, 0xf3, 0xfd, 0x9e, 0xc0, 0x7f, + 0x7d, 0xfb, 0x2b, 0xfd, 0x72, 0xa1, 0xfd, 0x4b, + 0x52, 0xfc, 0x46, 0x60, 0xda, 0x6a, 0x33, 0x10, + 0x14, 0xf0, 0x91, 0x92, 0x0a, 0x27, 0xfb, 0xd7, + 0x24, 0xc0, 0x98, 0x9a, 0x21, 0x01, 0x09, 0x8a, + 0xf8, 0x08, 0x55, 0x09, 0x17, 0xe4, 0x54, 0xe6, + 0xfc, 0x4a, 0xa8, 0x9e, 0x15, 0x44, 0xe7, 0x44, + 0xe7, 0x5c, 0xb9, 0xd7, 0x99, 0x13, 0xe5, 0x55, + 0xf0, 0x7e, 0x33, 0x90, 0xc3, 0x4b, 0xa5, 0xd7, + 0x9a, 0x6c, 0xb2, 0xcf, 0x23, 0x70, 0x01, 0x72, + 0xf0, 0x67, 0x91, 0x2a, 0x2e, 0x59, 0xf3, 0x67, + 0x8d, 0xf3, 0x3a, 0x48, 0xf7, 0xad, 0xe9, 0x15, + 0xc8, 0x8b, 0x58, 0xe9, 0x15, 0xe6, 0xe6, 0x25, + 0xcf, 0x24, 0x5e, 0x74, 0xe6, 0x5f, 0x1a, 0x78, + 0xff, 0x00, 0x10, 0x18, 0x38, 0x9a, 0x9b, 0x31, + 0x31, 0xf0, 0x6a, 0x02, 0x42, 0x4c, 0xd3, 0xc2, + 0x99, 0xa2, 0xaa, 0x73, 0x60, 0x4c, 0x0f, 0x56, + 0x83, 0x12, 0xd2, 0xba, 0x4b, 0x49, 0x22, 0xe9, + 0x2f, 0x11, 0x65, 0xe0, 0x5f, 0x32, 0xf3, 0xe3, + 0x7a, 0xde, 0x44, 0x5b, 0xc0, 0xc8, 0x15, 0x50, + 0xd7, 0x58, 0xe4, 0x0a, 0x9e, 0x14, 0x25, 0xcf, + 0xbd, 0x54, 0xcd, 0x33, 0x45, 0xc0, 0xca, 0x8c, + 0x4a, 0x82, 0x32, 0x18, 0x22, 0x5e, 0x64, 0x11, + 0x75, 0xb5, 0x55, 0x5f, 0x32, 0x21, 0x66, 0xbf, + 0xe0, 0x3f, 0x0c, 0x1f, 0xf2, 0x8a, 0xce, 0xff, + 0x00, 0x63, 0x54, 0x3f, 0xa6, 0xb7, 0xf8, 0xae, + 0xcb, 0x79, 0xab, 0x9e, 0x8b, 0x22, 0x98, 0x66, + 0x8d, 0x3b, 0xa8, 0x24, 0x44, 0x79, 0x73, 0x54, + 0x6a, 0x53, 0x39, 0xee, 0xc8, 0x91, 0x33, 0xcc, + 0x08, 0x48, 0xda, 0x73, 0x99, 0x57, 0x76, 0xe1, + 0x28, 0xf7, 0xc8, 0x8b, 0x87, 0xb6, 0x69, 0x76, + 0x32, 0xe1, 0x02, 0x52, 0x09, 0xe4, 0x45, 0x54, + 0x17, 0x58, 0x93, 0x08, 0xdb, 0x34, 0x4f, 0xe1, + 0x0e, 0x6f, 0x83, 0x82, 0x8b, 0xf1, 0x23, 0x8d, + 0xb6, 0x5f, 0xc9, 0xc7, 0x73, 0x9b, 0xb3, 0xa0, + 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, 0x9b, + 0xb3, 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, + 0x73, 0x9b, 0xb3, 0xa0, 0xe4, 0x7a, 0x68, 0x5f, + 0x68, 0xc7, 0x73, 0x9b, 0xb3, 0xa0, 0xe4, 0x7a, + 0x68, 0x5f, 0x68, 0xc7, 0x73, 0x9b, 0xb3, 0xa0, + 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, 0x9b, + 0xb3, 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, + 0x73, 0x8b, 0xaf, 0xa0, 0x9f, 0xe7, 0xf0, 0xfe, + 0x56, 0x17, 0x3f, 0xff, 0x00, 0xb8, 0xc7, 0x73, + 0x8b, 0xb3, 0xa0, 0x9f, 0xf4, 0xb0, 0xbe, 0xd1, + 0x8e, 0xe6, 0xf7, 0x5f, 0x83, 0xb0, 0x2f, 0xe5, + 0xe2, 0xde, 0xc2, 0xfb, 0x46, 0x3b, 0x9c, 0x5d, + 0x7d, 0x04, 0xff, 0x00, 0x37, 0x32, 0x7e, 0x56, + 0x17, 0x32, 0x7a, 0xc6, 0x3b, 0x9c, 0x5d, 0x79, + 0x65, 0xd8, 0x27, 0xf2, 0xf1, 0x6f, 0x61, 0x65, + 0xfd, 0x23, 0x1d, 0xce, 0x2e, 0xbc, 0xb2, 0xec, + 0x13, 0xf9, 0x78, 0xb7, 0xb0, 0xb2, 0xfe, 0x91, + 0x8a, 0x55, 0x06, 0xed, 0xa4, 0x51, 0xaa, 0x34, + 0xd8, 0xd6, 0x78, 0x71, 0xb5, 0x10, 0x7e, 0x39, + 0xd6, 0x56, 0x44, 0x34, 0x96, 0xdc, 0x19, 0x22, + 0xd8, 0xbd, 0x10, 0x45, 0x1c, 0xcc, 0x91, 0x74, + 0x9a, 0x89, 0xef, 0xd1, 0x05, 0x5c, 0xfd, 0xcd, + 0x74, 0x22, 0xaf, 0x73, 0x9b, 0xb3, 0xa0, 0xe4, + 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, 0x9b, 0xb3, + 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, + 0x9b, 0xb3, 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, + 0xc7, 0x73, 0x9b, 0xb3, 0xa0, 0xe4, 0x7a, 0x68, + 0x5f, 0x68, 0xc7, 0x73, 0x9b, 0xb3, 0xa0, 0xe4, + 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, 0x9b, 0xb3, + 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, + 0x9b, 0xb3, 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, + 0xc6, 0xcf, 0xf6, 0x79, 0x36, 0x8f, 0x52, 0x0a, + 0xdd, 0x60, 0x02, 0x3b, 0xf1, 0x81, 0xd1, 0x87, + 0x10, 0x5d, 0x6d, 0xd7, 0x01, 0xc7, 0x9b, 0x26, + 0x4d, 0xe7, 0x8d, 0x95, 0x36, 0x93, 0xf2, 0x2e, + 0x38, 0x00, 0x00, 0xe1, 0xfc, 0x35, 0x52, 0xcb, + 0x24, 0x4f, 0xc5, 0x77, 0xec, 0xc6, 0xa8, 0x75, + 0x49, 0x75, 0x0a, 0x23, 0x03, 0x36, 0x2c, 0xd7, + 0x9c, 0x92, 0xb1, 0xd1, 0xe6, 0x5a, 0x7e, 0x33, + 0x8e, 0x2e, 0xb7, 0x47, 0xf6, 0xc1, 0xb4, 0x0e, + 0xb6, 0xae, 0x29, 0x2b, 0x7a, 0x0d, 0x5c, 0x44, + 0x54, 0x05, 0x15, 0x54, 0xd4, 0xbd, 0xce, 0x6e, + 0xce, 0x83, 0x91, 0xe9, 0xa1, 0x7d, 0xa3, 0x1d, + 0xce, 0x6e, 0xce, 0x83, 0x91, 0xe9, 0xa1, 0x7d, + 0xa3, 0x1d, 0xce, 0x2e, 0xcf, 0x0f, 0x60, 0x9f, + 0xcf, 0xfd, 0x2c, 0x2f, 0xb4, 0x63, 0xb9, 0xcd, + 0xd9, 0xd0, 0x72, 0x3d, 0x34, 0x2f, 0xb4, 0x61, + 0x36, 0x71, 0x75, 0xa7, 0x82, 0x84, 0xfa, 0x7c, + 0x8e, 0xc2, 0xfb, 0x46, 0x3b, 0x9c, 0x5d, 0x7e, + 0x0e, 0xc1, 0x3f, 0x97, 0x87, 0xf7, 0x58, 0x5e, + 0x1f, 0x1f, 0xf8, 0xc6, 0x3b, 0x9c, 0x5d, 0x6b, + 0xe1, 0xa1, 0x3e, 0xbf, 0xfe, 0x6c, 0x2f, 0xb4, + 0x63, 0xb9, 0xc5, 0xd9, 0xe1, 0xec, 0x13, 0xf9, + 0xff, 0x00, 0xa5, 0x85, 0xf6, 0x8c, 0x2e, 0xce, + 0x2e, 0xb5, 0xf0, 0xd0, 0x9f, 0x5f, 0x95, 0xd8, + 0x5f, 0x68, 0xc7, 0x73, 0x8b, 0xb3, 0xa0, 0x9f, + 0xf4, 0xb0, 0xbe, 0xd1, 0x85, 0xd9, 0xc5, 0xd6, + 0xbe, 0x1a, 0x13, 0xeb, 0xf2, 0xbb, 0x0b, 0xed, + 0x18, 0xee, 0x71, 0x75, 0xe5, 0x97, 0x60, 0x9f, + 0xcb, 0xc5, 0xbd, 0x85, 0x97, 0xf4, 0x8c, 0x2e, + 0xce, 0x2e, 0xb5, 0xf0, 0xd0, 0x9f, 0x5f, 0x95, + 0xd8, 0x5f, 0x68, 0xc2, 0xec, 0xe2, 0xeb, 0x5f, + 0x0d, 0x09, 0xf5, 0xf9, 0x5d, 0x85, 0xf6, 0x8c, + 0x77, 0x38, 0xba, 0xf9, 0xbf, 0xe0, 0x27, 0xf9, + 0xbc, 0x1f, 0x95, 0x85, 0xcd, 0xf2, 0x7e, 0xd8, + 0xc7, 0x73, 0x7b, 0xaf, 0xa0, 0x9f, 0xf1, 0xfe, + 0xeb, 0x0b, 0xc3, 0xe3, 0xff, 0x00, 0x18, 0xc7, + 0x73, 0x7b, 0xaf, 0xc1, 0xd8, 0x27, 0xf2, 0xff, + 0x00, 0x4b, 0x0b, 0xed, 0x18, 0xa1, 0xd2, 0x2e, + 0x1a, 0x4c, 0x68, 0xcd, 0xc9, 0xd9, 0xdc, 0x0a, + 0xa4, 0xc8, 0x06, 0x45, 0x06, 0xa4, 0xf3, 0xb0, + 0x19, 0x94, 0xc2, 0x6f, 0x09, 0xe0, 0x43, 0x24, + 0xdf, 0x13, 0xca, 0xd3, 0xc6, 0x44, 0x07, 0xad, + 0xa2, 0x40, 0xd2, 0xdf, 0xf0, 0x50, 0xf1, 0x51, + 0xb2, 0x2f, 0x5a, 0xa4, 0xf9, 0x75, 0x19, 0x74, + 0x57, 0x8a, 0x4c, 0xd7, 0xdc, 0x90, 0xf2, 0x8b, + 0x90, 0xc4, 0x35, 0xb8, 0xb9, 0xe9, 0x01, 0xe2, + 0x57, 0x48, 0x02, 0x64, 0x00, 0x8a, 0xaa, 0xa8, + 0x22, 0x99, 0x91, 0x2e, 0x6a, 0xbd, 0xce, 0x6e, + 0xce, 0x83, 0x91, 0xe9, 0xa1, 0x7d, 0xa3, 0x03, + 0xb3, 0x7b, 0xb4, 0x89, 0x07, 0xb0, 0x8f, 0x26, + 0x6b, 0x96, 0x67, 0x22, 0x08, 0x8a, 0x79, 0xd4, + 0x8a, 0x4a, 0x22, 0x27, 0xd3, 0xe2, 0x45, 0x5c, + 0x58, 0x56, 0x82, 0xda, 0x74, 0xf9, 0x09, 0x20, + 0xc1, 0xca, 0x85, 0x44, 0xda, 0x72, 0x5a, 0xb4, + 0xaa, 0xad, 0x36, 0x0c, 0x09, 0xa3, 0x11, 0xc0, + 0x95, 0x07, 0x5e, 0xef, 0x7a, 0xf1, 0x11, 0xe5, + 0xdf, 0x13, 0x8b, 0x97, 0x7a, 0x89, 0xfb, 0x3d, + 0x80, 0xfe, 0xfb, 0xf6, 0x57, 0xfa, 0xe5, 0x43, + 0xfa, 0x96, 0xa5, 0xf8, 0xa6, 0x53, 0x22, 0xed, + 0x07, 0x69, 0x97, 0x0d, 0x12, 0xe3, 0x6d, 0x27, + 0xdb, 0x16, 0x2d, 0x26, 0x80, 0x51, 0xad, 0xf7, + 0x88, 0xfb, 0x1d, 0x50, 0xad, 0xdc, 0x6d, 0x4e, + 0x94, 0x75, 0x4a, 0x94, 0x61, 0x54, 0x6a, 0x7a, + 0xc2, 0x87, 0x14, 0x23, 0x42, 0x62, 0x5e, 0xf5, + 0x98, 0xce, 0x1b, 0x92, 0x5a, 0x69, 0x1e, 0x35, + 0x73, 0x0b, 0x4d, 0x81, 0xb1, 0x98, 0xd7, 0x9d, + 0xc9, 0x11, 0xe7, 0x96, 0xce, 0x90, 0xdd, 0x2d, + 0xfa, 0x55, 0x97, 0x0c, 0x4c, 0xd6, 0x1d, 0x7d, + 0xf7, 0x8a, 0x13, 0xed, 0x52, 0x37, 0xef, 0xab, + 0x71, 0x99, 0xac, 0x49, 0x91, 0x07, 0xf6, 0xa3, + 0x43, 0xba, 0x69, 0xcd, 0xeb, 0xa0, 0x0d, 0xb2, + 0xc8, 0x36, 0x47, 0xb4, 0x9b, 0x86, 0x8e, 0x73, + 0xe1, 0x5d, 0xf6, 0x94, 0x5a, 0x35, 0x51, 0x2d, + 0x1a, 0xd5, 0xd7, 0x45, 0x08, 0x35, 0xe4, 0xaa, + 0xc0, 0xa8, 0xf6, 0x06, 0x2a, 0x48, 0xa8, 0xd1, + 0xe4, 0x4c, 0xec, 0x74, 0x47, 0x22, 0x54, 0x63, + 0x6f, 0x23, 0x93, 0xaa, 0xd4, 0x69, 0x91, 0x49, + 0x87, 0xb7, 0xb1, 0xdf, 0x7f, 0x76, 0x43, 0x8b, + 0xa2, 0xee, 0xbf, 0x2e, 0x3a, 0x66, 0xcd, 0xea, + 0xfd, 0xa7, 0xd2, 0xa9, 0x71, 0x2a, 0x77, 0xa5, + 0xa1, 0x52, 0xa4, 0x36, 0xf5, 0xd4, 0xe9, 0x94, + 0xf3, 0x92, 0xd4, 0xb9, 0x11, 0x22, 0x4f, 0x6d, + 0x9a, 0x29, 0x70, 0x6d, 0xea, 0x01, 0x79, 0xe7, + 0xb2, 0x92, 0x8d, 0x03, 0x91, 0x4d, 0xa6, 0x9f, + 0x79, 0x1f, 0x6e, 0x3d, 0x4f, 0x6a, 0xb5, 0xe8, + 0xcb, 0x73, 0x54, 0xa9, 0x96, 0x5f, 0x65, 0x2d, + 0x6b, 0x26, 0x57, 0x03, 0x72, 0xd5, 0x92, 0xb2, + 0x11, 0xe6, 0x1c, 0x88, 0x60, 0x8f, 0x57, 0xce, + 0x83, 0x4e, 0x38, 0x44, 0x35, 0x28, 0x94, 0x26, + 0x48, 0x5c, 0x91, 0x22, 0x4c, 0xba, 0x7f, 0x11, + 0x93, 0xa3, 0x1c, 0x08, 0xda, 0x71, 0x02, 0xe3, + 0xda, 0xf2, 0xdb, 0x93, 0xe4, 0xd3, 0xdc, 0xa1, + 0x14, 0xd7, 0xaa, 0xd4, 0xca, 0x44, 0xfd, 0x9d, + 0x70, 0x92, 0xcd, 0x46, 0xf4, 0x91, 0x55, 0x90, + 0xc4, 0x25, 0xa6, 0xa2, 0x9c, 0x41, 0x1a, 0x7c, + 0xc8, 0x32, 0xa5, 0x46, 0x7e, 0x50, 0x21, 0x4b, + 0xd3, 0x4c, 0x74, 0x26, 0x2e, 0x92, 0x36, 0xd9, + 0x3b, 0xc6, 0x8f, 0x0a, 0xa7, 0x33, 0x67, 0xd2, + 0x6b, 0x14, 0x5a, 0x54, 0x89, 0xe7, 0x73, 0xc4, + 0x62, 0x6e, 0xb8, 0xac, 0x54, 0x05, 0xb6, 0xfb, + 0x5c, 0xb9, 0x1e, 0x72, 0x20, 0xc9, 0x91, 0x18, + 0x5c, 0x76, 0x1b, 0x72, 0xd7, 0x53, 0x7a, 0xdb, + 0x6c, 0x08, 0xf4, 0xbb, 0xba, 0x07, 0x17, 0x24, + 0xae, 0x52, 0xa5, 0xac, 0x3d, 0xa0, 0xd1, 0x58, + 0x88, 0xe0, 0xd1, 0xab, 0xf5, 0x4d, 0xa1, 0x5c, + 0x93, 0x91, 0xa6, 0x7f, 0x20, 0x92, 0x2c, 0x79, + 0xb5, 0x75, 0x61, 0xa2, 0x6d, 0x7b, 0xd0, 0x59, + 0xd2, 0x5f, 0xb4, 0x77, 0x08, 0xd8, 0x77, 0xed, + 0x52, 0x1d, 0x44, 0x4f, 0xe1, 0x20, 0xff, 0x00, + 0xe8, 0xe4, 0xff, 0x00, 0x52, 0xff, 0x00, 0xfa, + 0x71, 0xb0, 0x7a, 0xa8, 0x5a, 0x16, 0xcd, 0xcd, + 0x0e, 0xa0, 0xee, 0x9a, 0x7b, 0x54, 0x08, 0x9b, + 0x48, 0x86, 0xa4, 0xb9, 0xe9, 0x81, 0x36, 0x1c, + 0xb8, 0x75, 0x80, 0x44, 0xde, 0x2a, 0xa0, 0x33, + 0x52, 0xa0, 0x3c, 0x42, 0x08, 0x23, 0xfe, 0x31, + 0x9a, 0x22, 0x6f, 0x03, 0x3d, 0x96, 0xd6, 0x5e, + 0xb2, 0xed, 0xed, 0xa6, 0x54, 0x27, 0x34, 0x52, + 0xab, 0xb3, 0x2e, 0xaa, 0x52, 0xc5, 0xa6, 0xa2, + 0xe4, 0xfd, 0x4e, 0xe9, 0xb9, 0xe8, 0x74, 0x99, + 0x71, 0xa9, 0x6c, 0x09, 0x22, 0x19, 0x6f, 0x2a, + 0x75, 0x02, 0x13, 0xc8, 0x08, 0xa3, 0xc3, 0x6d, + 0xf9, 0x26, 0x2a, 0xdc, 0x77, 0x17, 0x11, 0x21, + 0x4a, 0xa7, 0x6c, 0x8b, 0x6f, 0x50, 0xea, 0xb3, + 0x3b, 0x23, 0x3d, 0x9b, 0xba, 0xbb, 0xd9, 0x39, + 0xc4, 0x9f, 0xe3, 0x73, 0x4a, 0x05, 0xbc, 0xe4, + 0xc7, 0x90, 0x72, 0x45, 0x46, 0xc9, 0xe2, 0x73, + 0x74, 0x39, 0x66, 0x2d, 0x20, 0x0f, 0x85, 0x31, + 0x62, 0x4b, 0xd8, 0x15, 0x62, 0xb5, 0x4b, 0x89, + 0x69, 0xd2, 0x28, 0x8b, 0x73, 0x47, 0x69, 0x26, + 0xc5, 0x75, 0xab, 0x42, 0xab, 0x4d, 0x75, 0xa7, + 0x61, 0x34, 0x8e, 0x3b, 0x21, 0xa9, 0xd3, 0xa8, + 0xf1, 0x18, 0x07, 0x1b, 0xf8, 0x42, 0xbb, 0xf4, + 0x32, 0x5f, 0x81, 0x99, 0x7f, 0x80, 0xfc, 0x30, + 0x7f, 0xca, 0x2b, 0x3b, 0xfd, 0x8d, 0x50, 0xfe, + 0x9a, 0xdf, 0xf1, 0xbe, 0xc0, 0x7f, 0x7d, 0xfb, + 0x2b, 0xfd, 0x72, 0xa1, 0xfd, 0x4b, 0x52, 0xfc, + 0x55, 0xda, 0x45, 0xd1, 0x6e, 0xde, 0x4f, 0xde, + 0xd6, 0x9d, 0x20, 0x2e, 0x58, 0xf5, 0xda, 0x54, + 0x3a, 0x45, 0xcb, 0x6e, 0x8d, 0x42, 0x1d, 0x26, + 0x69, 0x3d, 0x4a, 0x37, 0xca, 0x91, 0x59, 0xa7, + 0xcb, 0xa8, 0x1b, 0x30, 0x1e, 0x71, 0x96, 0xa5, + 0xc8, 0x87, 0x36, 0x3c, 0xb7, 0x99, 0x2e, 0x1b, + 0x74, 0x71, 0x9c, 0x70, 0xd1, 0x5b, 0x4a, 0xad, + 0x95, 0x7f, 0xdf, 0x10, 0xae, 0xca, 0xc5, 0x58, + 0x99, 0xb6, 0xea, 0x73, 0x5b, 0xb7, 0x82, 0xcf, + 0xb5, 0x9d, 0xa9, 0x0d, 0x42, 0x0d, 0x31, 0x6d, + 0x7a, 0xb7, 0x66, 0xd8, 0x97, 0x5c, 0x91, 0x01, + 0x1c, 0x84, 0xec, 0xfa, 0xa4, 0xd5, 0x75, 0xb2, + 0x76, 0x12, 0x49, 0x28, 0x30, 0xdc, 0x16, 0xb8, + 0x89, 0x08, 0x9b, 0x90, 0xab, 0xd1, 0xef, 0xeb, + 0xe9, 0xe9, 0x55, 0x3a, 0xb5, 0xa6, 0x96, 0xb8, + 0x51, 0xec, 0x6b, 0xc2, 0x95, 0x4a, 0xa4, 0xbd, + 0x5b, 0xa3, 0x55, 0x27, 0x56, 0x2e, 0x1b, 0x9e, + 0x96, 0x30, 0xb3, 0x6e, 0x4c, 0x17, 0xce, 0x14, + 0x5a, 0x7c, 0x76, 0x98, 0x46, 0x5a, 0x76, 0x5c, + 0xa8, 0xae, 0xb8, 0xf4, 0x85, 0x37, 0x5a, 0x6d, + 0x80, 0xd6, 0x35, 0xfb, 0x6e, 0xe7, 0x4b, 0x23, + 0x66, 0x8d, 0xd3, 0x68, 0xab, 0x53, 0xac, 0xd9, + 0xd5, 0x3b, 0x32, 0xa7, 0x50, 0xa2, 0x0d, 0x42, + 0x9d, 0x11, 0xf7, 0x86, 0x91, 0x0b, 0x86, 0x9f, + 0x1d, 0x89, 0xb2, 0xa4, 0x85, 0x35, 0x5e, 0x64, + 0xcd, 0x55, 0x15, 0x65, 0x6e, 0x5c, 0x10, 0x25, + 0x69, 0xc3, 0xef, 0x10, 0xdc, 0xb2, 0xee, 0x9a, + 0x54, 0xab, 0xaa, 0x9d, 0x17, 0x66, 0xd4, 0x2b, + 0xa9, 0x9b, 0x9a, 0xb1, 0x2a, 0xb5, 0x49, 0xae, + 0xd6, 0x2a, 0xd4, 0xe6, 0xe0, 0x51, 0xc6, 0xe0, + 0xd0, 0xb5, 0x0a, 0x65, 0xd3, 0x4c, 0x57, 0xda, + 0xa8, 0x4d, 0x6a, 0x92, 0xfe, 0xfd, 0xd5, 0x4a, + 0x2a, 0x4c, 0x0a, 0x94, 0x57, 0x45, 0x86, 0xdd, + 0x61, 0xcd, 0x4a, 0x37, 0x5d, 0x99, 0x7d, 0x57, + 0x6a, 0xc3, 0x55, 0xa5, 0xc5, 0x66, 0x8d, 0xdc, + 0xda, 0x9d, 0x4e, 0x3d, 0x9e, 0x43, 0x62, 0x44, + 0x16, 0x21, 0x5c, 0x95, 0xa0, 0xdd, 0x39, 0x5a, + 0xde, 0xc6, 0x6e, 0x64, 0x85, 0xa6, 0xd2, 0x65, + 0xd3, 0xe3, 0x25, 0xbb, 0x02, 0x25, 0x42, 0x43, + 0x06, 0xd0, 0x49, 0x29, 0x2f, 0x3a, 0x0d, 0x2b, + 0x99, 0x40, 0x7a, 0x44, 0x98, 0x51, 0x24, 0x4b, + 0x84, 0xe5, 0x3a, 0x53, 0xd1, 0xd9, 0x76, 0x44, + 0x07, 0x9d, 0x8e, 0xfb, 0xb0, 0xdf, 0x30, 0x12, + 0x76, 0x31, 0xbf, 0x15, 0xd7, 0xa3, 0x3c, 0x4c, + 0x9a, 0xab, 0x6a, 0xeb, 0x0e, 0x9b, 0x47, 0xa7, + 0x50, 0x12, 0x8a, 0xa7, 0xe2, 0x7a, 0xc1, 0xb6, + 0xca, 0xb8, 0xe5, 0xd0, 0x91, 0x6a, 0x2b, 0x5d, + 0x52, 0x37, 0xc5, 0xee, 0xd8, 0x6e, 0x1e, 0x13, + 0x7f, 0xc3, 0x2c, 0x64, 0xff, 0x00, 0x82, 0x7b, + 0x2b, 0xd8, 0x6d, 0x3b, 0xae, 0xf7, 0x76, 0xb0, + 0x77, 0x3a, 0xbf, 0x28, 0xa1, 0xbc, 0xef, 0xf0, + 0xee, 0xcc, 0xaf, 0x07, 0x6d, 0xdd, 0x9a, 0x53, + 0x5a, 0x81, 0xc2, 0xbb, 0xd8, 0xd3, 0xb4, 0x6f, + 0xf6, 0xf8, 0xfa, 0x7a, 0x3b, 0x0e, 0xd8, 0x95, + 0x5c, 0xa7, 0xd6, 0x65, 0x10, 0xba, 0xdc, 0xa3, + 0x6a, 0x61, 0xe8, 0xa7, 0xbd, 0x0c, 0x02, 0x1b, + 0x92, 0x4b, 0x4d, 0x4d, 0xe4, 0x50, 0x26, 0xd5, + 0xdd, 0x23, 0xb2, 0x79, 0x75, 0xdb, 0x82, 0xef, + 0x9d, 0x56, 0xa8, 0xdc, 0x96, 0xbb, 0x6b, 0x7a, + 0x05, 0x7e, 0xd9, 0xa8, 0x5b, 0x55, 0x5a, 0x6c, + 0x49, 0x32, 0x5b, 0x3b, 0x5e, 0x0d, 0x11, 0xd7, + 0xc9, 0x56, 0x3d, 0x48, 0xd8, 0x40, 0xd3, 0x32, + 0x38, 0x03, 0x8d, 0x44, 0x7d, 0x05, 0xc7, 0x15, + 0x11, 0x5a, 0x71, 0x33, 0x8b, 0xb2, 0x9b, 0xaa, + 0x9d, 0x69, 0x6d, 0x7e, 0x9e, 0x32, 0xae, 0x6a, + 0xc4, 0xfb, 0x8a, 0xa7, 0x3d, 0xaa, 0x04, 0x2a, + 0xc5, 0x7a, 0x91, 0x29, 0x9a, 0xc4, 0x35, 0x1a, + 0x51, 0xb1, 0x5d, 0x79, 0x47, 0x86, 0x66, 0x3d, + 0x62, 0x61, 0x33, 0x22, 0x34, 0x97, 0xe6, 0xbf, + 0x0c, 0x8a, 0x34, 0x66, 0x00, 0xa1, 0xb5, 0x90, + 0x38, 0xec, 0x40, 0x26, 0xe3, 0x47, 0x07, 0x13, + 0x27, 0x01, 0x86, 0x84, 0xd3, 0x99, 0x55, 0x09, + 0x00, 0x50, 0x93, 0x34, 0xcd, 0x17, 0x9f, 0xe3, + 0x45, 0x54, 0x5f, 0x1f, 0xf8, 0x0f, 0xc3, 0x04, + 0xbf, 0xe3, 0x2d, 0x9e, 0x3e, 0x2a, 0x24, 0xe2, + 0xff, 0x00, 0xe2, 0x9c, 0x29, 0xff, 0x00, 0xf0, + 0xfe, 0x37, 0xd8, 0x0f, 0xef, 0xbf, 0x65, 0x7f, + 0xae, 0x54, 0x3f, 0xa9, 0x6a, 0x5f, 0x89, 0x1c, + 0x6d, 0x4c, 0x9b, 0x43, 0x15, 0x70, 0x10, 0x54, + 0xc1, 0x09, 0x14, 0xc5, 0x0b, 0x3d, 0x2a, 0x43, + 0xe1, 0x44, 0x2c, 0x97, 0x4e, 0x7e, 0x1c, 0x97, + 0x2f, 0x02, 0xe0, 0x5c, 0x6c, 0xd4, 0xc4, 0x0c, + 0x08, 0x9b, 0x2d, 0x2e, 0x20, 0x92, 0x2a, 0x81, + 0x64, 0x85, 0xa4, 0x91, 0x3e, 0x0a, 0xe4, 0xa8, + 0xb9, 0x2f, 0x3e, 0x4a, 0x8b, 0xe0, 0x5f, 0xc4, + 0x84, 0x2a, 0xa4, 0x88, 0x48, 0xaa, 0x2b, 0x91, + 0x22, 0x2e, 0x6a, 0x2a, 0xa8, 0x8a, 0x88, 0xbe, + 0x25, 0xc9, 0x51, 0x79, 0xfe, 0x25, 0x45, 0xf8, + 0xff, 0x00, 0x11, 0x18, 0x06, 0x5a, 0xc8, 0x47, + 0x51, 0x20, 0x0e, 0xa5, 0x44, 0xd4, 0x45, 0xf0, + 0x45, 0x33, 0xf0, 0x92, 0xfc, 0x49, 0xe1, 0x5c, + 0x39, 0x21, 0x86, 0x49, 0xb0, 0x75, 0xe6, 0x9b, + 0x37, 0x97, 0x4b, 0x40, 0xe3, 0x82, 0x04, 0xe9, + 0x66, 0x89, 0xa5, 0xb1, 0x25, 0x45, 0x32, 0xcc, + 0x85, 0x32, 0x1c, 0xd7, 0x32, 0x4f, 0x1a, 0x60, + 0xdf, 0x61, 0xa3, 0x6d, 0xb7, 0x1e, 0x69, 0xb3, + 0x79, 0x72, 0x68, 0x0d, 0xc1, 0x12, 0x71, 0x79, + 0xb9, 0x9b, 0x15, 0x54, 0x53, 0x5e, 0x74, 0xe6, + 0x1c, 0xfc, 0x29, 0xe3, 0xc2, 0xaa, 0x0a, 0x29, + 0x12, 0xa0, 0x88, 0xa2, 0xaa, 0xaa, 0xae, 0x48, + 0x88, 0x9c, 0xea, 0xaa, 0xbf, 0x12, 0x26, 0x1b, + 0x71, 0xb7, 0x40, 0x5c, 0x68, 0xc1, 0xc6, 0xc9, + 0x33, 0x13, 0x02, 0x43, 0x02, 0x4f, 0x18, 0x90, + 0xe6, 0x8a, 0x9f, 0x22, 0xe0, 0x25, 0x46, 0x73, + 0x4e, 0x89, 0x0c, 0x9e, 0xb3, 0x26, 0xc3, 0x4b, + 0xa0, 0x5a, 0x9c, 0x04, 0x55, 0x20, 0x1c, 0x97, + 0x9c, 0xc5, 0x11, 0x54, 0x85, 0x39, 0xd1, 0x11, + 0x55, 0x53, 0x9b, 0x0a, 0xe3, 0x68, 0x62, 0xda, + 0x98, 0xa3, 0x86, 0x84, 0xa0, 0x0a, 0x48, 0x84, + 0x48, 0x39, 0x6a, 0x51, 0x1f, 0x0a, 0xa0, 0xe6, + 0x9a, 0xb2, 0xf0, 0x66, 0x99, 0xf8, 0x7f, 0xc0, + 0xfe, 0x18, 0x1f, 0xe5, 0x45, 0xa3, 0xfe, 0xc1, + 0x97, 0xfd, 0x60, 0x5f, 0xe7, 0x56, 0xf5, 0xb7, + 0x5d, 0xbb, 0x2a, 0xac, 0x51, 0x2d, 0xca, 0x6b, + 0xf5, 0x6a, 0xac, 0x91, 0x70, 0xda, 0x89, 0x1d, + 0x5a, 0x05, 0xdd, 0xb2, 0x3a, 0x9d, 0x75, 0xc7, + 0xa4, 0x38, 0xcc, 0x68, 0xec, 0xb6, 0x99, 0x6b, + 0x7a, 0x43, 0xcd, 0x34, 0x2a, 0x42, 0x2a, 0x7a, + 0x8c, 0x51, 0x79, 0x3a, 0x6d, 0xa3, 0xc8, 0x87, + 0x3e, 0x71, 0x59, 0xff, 0x00, 0xfc, 0xc3, 0x8e, + 0x4e, 0x9b, 0x68, 0xf2, 0x21, 0xcf, 0x9c, 0x56, + 0x87, 0xff, 0x00, 0x30, 0xe2, 0xec, 0xb2, 0x2e, + 0xbb, 0x1a, 0x6b, 0x14, 0xfb, 0xb2, 0x8b, 0x22, + 0x8d, 0x2a, 0x53, 0x2b, 0x22, 0x30, 0xba, 0xf4, + 0x39, 0x4d, 0x48, 0x64, 0x4f, 0x41, 0x9b, 0x12, + 0xe9, 0xf2, 0x65, 0xc4, 0x77, 0x76, 0x6a, 0x88, + 0xe8, 0x03, 0xe4, 0x6d, 0x6a, 0x0d, 0xe0, 0x8a, + 0x38, 0x1a, 0xbf, 0xce, 0x76, 0x03, 0xfb, 0xef, + 0xd9, 0x5f, 0xeb, 0x95, 0x0f, 0xea, 0x5a, 0x97, + 0xe2, 0xb7, 0x7f, 0x7d, 0xcd, 0xa5, 0x2f, 0xff, + 0x00, 0x50, 0x58, 0x1f, 0xf7, 0x2e, 0x4c, 0x0d, + 0xc1, 0x5d, 0xb6, 0xaa, 0x9b, 0x48, 0x95, 0x6f, + 0x41, 0x81, 0x3e, 0xa5, 0x54, 0xda, 0xed, 0xb5, + 0x41, 0x62, 0x35, 0x49, 0x5f, 0x6a, 0x23, 0xbd, + 0x94, 0xb7, 0xe8, 0x71, 0xcf, 0x54, 0x86, 0x09, + 0x0e, 0x3a, 0xb6, 0x44, 0x06, 0x72, 0x37, 0x72, + 0x51, 0x96, 0xf5, 0x9a, 0xc5, 0x7d, 0x74, 0x82, + 0xd9, 0xb7, 0x2d, 0xc1, 0x32, 0xb5, 0x72, 0xda, + 0x97, 0x63, 0x34, 0xae, 0xce, 0x5b, 0xa9, 0x4a, + 0x9a, 0x13, 0xa8, 0x6c, 0xcc, 0x8f, 0x4c, 0xa9, + 0xd2, 0xab, 0x4d, 0x49, 0x28, 0x8f, 0x35, 0x1a, + 0x74, 0x89, 0x72, 0x22, 0xc8, 0x8e, 0xfc, 0x29, + 0x51, 0x65, 0x36, 0x72, 0x9d, 0x12, 0x20, 0x17, + 0x1a, 0x5d, 0x2a, 0xa8, 0x94, 0x8b, 0x86, 0xf4, + 0xa1, 0x57, 0x36, 0x82, 0xcc, 0x5e, 0xd7, 0xaa, + 0x55, 0x2b, 0x87, 0x69, 0x8d, 0x5b, 0xb4, 0x46, + 0x5f, 0x62, 0xa7, 0x1d, 0x98, 0xb5, 0x37, 0xad, + 0xda, 0x64, 0xbe, 0xc8, 0xcf, 0x77, 0x8f, 0x7c, + 0xdc, 0xa4, 0x53, 0x68, 0x31, 0x44, 0xde, 0xa7, + 0xc6, 0x06, 0xe5, 0xc9, 0x9a, 0xcb, 0xbb, 0x99, + 0x6c, 0x32, 0xf3, 0x6d, 0xb7, 0x66, 0xdc, 0xb5, + 0xe9, 0xd5, 0x7b, 0x92, 0xd5, 0xba, 0xd8, 0xa6, + 0x0d, 0x7a, 0xdc, 0xec, 0x6c, 0xae, 0x3a, 0x88, + 0xdc, 0xb6, 0x69, 0x55, 0x5a, 0x55, 0x68, 0x24, + 0xb9, 0x06, 0x4b, 0x11, 0xa6, 0xbd, 0x2a, 0x4c, + 0x49, 0x0c, 0x9c, 0x49, 0x31, 0x26, 0x30, 0xe4, + 0xa9, 0x02, 0xae, 0xb4, 0x8e, 0xb2, 0xe2, 0xb6, + 0xe6, 0x90, 0xda, 0x75, 0x2a, 0xb6, 0xe5, 0xd5, + 0xb3, 0xca, 0xbb, 0xd5, 0xd5, 0x1a, 0x04, 0x6b, + 0xee, 0xd5, 0x89, 0x0e, 0xdd, 0x8f, 0x14, 0x5b, + 0x17, 0x67, 0xbe, 0x55, 0x03, 0x93, 0x53, 0xa9, + 0x4c, 0x23, 0x27, 0x24, 0x9b, 0x60, 0xdb, 0x4c, + 0xc1, 0x8e, 0x00, 0xdb, 0x2c, 0x0a, 0xba, 0xe2, + 0xa1, 0x3a, 0x6a, 0x6b, 0xb5, 0x6b, 0x52, 0xdb, + 0x06, 0x2e, 0x6b, 0x82, 0xbc, 0x0e, 0xdc, 0x37, + 0x15, 0xc7, 0x12, 0x0d, 0xbf, 0xb3, 0xfa, 0x58, + 0xb6, 0x7d, 0x91, 0xa4, 0xd6, 0x02, 0x31, 0x70, + 0x0c, 0x5b, 0xa6, 0xdb, 0xfa, 0xd8, 0x79, 0xea, + 0xbe, 0x75, 0x8a, 0x8d, 0x41, 0xa0, 0x64, 0x98, + 0x8c, 0x0e, 0x8b, 0xea, 0xec, 0x66, 0xd5, 0xb7, + 0x64, 0x5b, 0x2c, 0xdc, 0x90, 0xf6, 0xb5, 0x54, + 0xba, 0x95, 0x6a, 0x37, 0x0d, 0x99, 0x48, 0xa6, + 0xd1, 0xe8, 0x55, 0x03, 0x79, 0xdd, 0xf5, 0x06, + 0x7d, 0x02, 0xcd, 0xa7, 0x57, 0x8e, 0xa9, 0x48, + 0x7c, 0x49, 0xb3, 0x88, 0xfc, 0xca, 0xfc, 0x92, + 0x9d, 0x21, 0xd6, 0xd0, 0x4a, 0x48, 0xb6, 0x91, + 0xdf, 0xde, 0x46, 0x37, 0x5a, 0x39, 0x53, 0x5e, + 0xa9, 0x6c, 0xca, 0x55, 0x42, 0x4e, 0x4b, 0x22, + 0x75, 0x8e, 0xfc, 0xc7, 0xd5, 0x13, 0x99, 0x5e, + 0x93, 0x41, 0x27, 0x9d, 0xc9, 0x3c, 0x4a, 0x66, + 0x59, 0x26, 0x2c, 0x4b, 0x96, 0x65, 0x9f, 0xb2, + 0x6a, 0xf5, 0x05, 0xb4, 0x29, 0x15, 0xaa, 0x12, + 0xd3, 0x21, 0xda, 0xf1, 0xd4, 0xc4, 0x9c, 0x99, + 0xdd, 0x12, 0x3c, 0x3a, 0x85, 0xaa, 0x23, 0xe0, + 0x37, 0x34, 0x54, 0xab, 0x32, 0x18, 0x74, 0x72, + 0x55, 0x16, 0x69, 0xee, 0xe9, 0x5d, 0x2d, 0x2a, + 0x05, 0xb9, 0x0e, 0x6d, 0xa3, 0x16, 0xd4, 0x81, + 0x49, 0xa5, 0xbd, 0x71, 0x4f, 0xa1, 0xed, 0xa2, + 0xf8, 0x83, 0x1e, 0x9c, 0xdc, 0xd8, 0x70, 0x5f, + 0xa8, 0x39, 0x1e, 0xda, 0xa9, 0x45, 0x74, 0x86, + 0x6d, 0x45, 0xc6, 0xa2, 0x34, 0xa2, 0x1b, 0xc9, + 0x2a, 0x4f, 0xba, 0x1a, 0xc5, 0xb5, 0x6c, 0x3f, + 0x28, 0x40, 0x98, 0x2a, 0xc5, 0xd7, 0x59, 0xda, + 0x8d, 0x9f, 0xd9, 0x4b, 0x3d, 0xcb, 0x3a, 0x6b, + 0x36, 0xbd, 0xf0, 0x94, 0xb3, 0xa9, 0xd5, 0xa8, + 0xf5, 0xc6, 0x25, 0x48, 0x75, 0xba, 0x2e, 0x46, + 0xe3, 0x74, 0x39, 0xa6, 0xe3, 0x6c, 0x46, 0x74, + 0x59, 0x57, 0xc0, 0xde, 0x60, 0xdf, 0x07, 0x34, + 0xb0, 0x68, 0xa2, 0x44, 0x36, 0x95, 0xc9, 0xb4, + 0x0a, 0x95, 0xef, 0x53, 0xa0, 0x54, 0xe5, 0x59, + 0xd5, 0x4a, 0x25, 0xbf, 0x0d, 0x12, 0xbb, 0x52, + 0xa0, 0xd1, 0xeb, 0x70, 0x56, 0x3d, 0x72, 0x48, + 0xa1, 0xc5, 0xa1, 0xc7, 0x91, 0x3e, 0xb7, 0x3e, + 0x3b, 0xf2, 0xd9, 0x8c, 0x41, 0x36, 0xa4, 0x80, + 0xc9, 0x8c, 0x46, 0xdd, 0x62, 0x31, 0x90, 0xca, + 0x74, 0xc1, 0x9f, 0xd9, 0xfe, 0x18, 0x1f, 0xe5, + 0x45, 0xa3, 0xfe, 0xc1, 0x97, 0xfd, 0x60, 0x5f, + 0xe7, 0x5f, 0x82, 0x8f, 0xef, 0xa8, 0xef, 0xff, + 0x00, 0x74, 0xab, 0x5f, 0xd3, 0xa8, 0xb8, 0x72, + 0x8d, 0x5c, 0x95, 0x71, 0x55, 0x9d, 0x9a, 0x77, + 0x1b, 0x74, 0xca, 0x83, 0xb5, 0xe8, 0xd1, 0xce, + 0x05, 0xc5, 0x77, 0xc6, 0x5c, 0xe2, 0xb3, 0x0d, + 0xfa, 0x6b, 0x5c, 0x0c, 0x49, 0x8c, 0x40, 0xa3, + 0xc7, 0x32, 0x8e, 0xf9, 0xc5, 0xaa, 0x53, 0x16, + 0x2b, 0xb2, 0xdc, 0x69, 0x69, 0xf2, 0x1e, 0x73, + 0xb2, 0x46, 0xc4, 0x9a, 0x2c, 0x59, 0x90, 0x6b, + 0x74, 0xa8, 0xd3, 0x8a, 0xfa, 0x37, 0x5b, 0x89, + 0x4d, 0x2a, 0x3e, 0x89, 0x75, 0xda, 0x85, 0x1c, + 0xe2, 0x3f, 0x4f, 0x27, 0x2b, 0x9d, 0xb2, 0x4d, + 0xa8, 0x3d, 0x2a, 0x09, 0xce, 0x0a, 0x9b, 0xb2, + 0x89, 0x46, 0xbb, 0x27, 0xb2, 0x8c, 0xc5, 0x6a, + 0x97, 0x1e, 0xdb, 0x44, 0x41, 0x7d, 0x82, 0xfc, + 0x31, 0xbf, 0xf4, 0xb5, 0x83, 0xfe, 0xce, 0xb8, + 0xff, 0x00, 0xa4, 0xd1, 0x7f, 0xce, 0xb6, 0x03, + 0xfb, 0xef, 0xd9, 0x5f, 0xeb, 0x95, 0x0f, 0xea, + 0x5a, 0x97, 0xe2, 0xaf, 0xda, 0x17, 0x1a, 0x5d, + 0x3d, 0xb8, 0x59, 0x95, 0xca, 0x75, 0x2e, 0xa3, + 0x32, 0x94, 0xc5, 0x1a, 0xb5, 0x4f, 0xae, 0x53, + 0x64, 0x54, 0xe9, 0x15, 0x38, 0xd0, 0x9e, 0x93, + 0x22, 0x9f, 0x33, 0x44, 0x39, 0xd4, 0xe9, 0x6c, + 0x54, 0x21, 0x14, 0xa7, 0xda, 0x07, 0x02, 0x42, + 0xb4, 0xe3, 0x0e, 0xe8, 0x20, 0x4d, 0x25, 0xbd, + 0xbb, 0xad, 0x0a, 0x8d, 0x0e, 0xd6, 0xa4, 0xc7, + 0x2a, 0xf6, 0xbb, 0xaa, 0xe6, 0xda, 0xbd, 0xad, + 0x57, 0xa8, 0x5c, 0x4d, 0x41, 0x69, 0xa6, 0x59, + 0xad, 0x4d, 0x9f, 0x1e, 0x2c, 0x67, 0x22, 0x53, + 0x88, 0xcc, 0x7b, 0x1f, 0x4d, 0x6a, 0x2c, 0x46, + 0x18, 0x86, 0xf3, 0xee, 0x13, 0xec, 0xb2, 0x7b, + 0xe7, 0x75, 0x3e, 0x79, 0x59, 0xd6, 0xad, 0x4e, + 0x91, 0x3e, 0xe0, 0xb8, 0x6e, 0x2a, 0x9c, 0x5a, + 0xad, 0xc9, 0x72, 0xb9, 0x00, 0x66, 0x39, 0x4e, + 0x86, 0xec, 0x0a, 0x4c, 0x1a, 0x7d, 0x25, 0x97, + 0x58, 0xa6, 0xd3, 0xe9, 0xb1, 0x64, 0x49, 0x99, + 0x28, 0x40, 0x38, 0x89, 0x32, 0x24, 0x3a, 0xfc, + 0xa7, 0x0d, 0xf7, 0xe4, 0x2e, 0x69, 0xf9, 0x24, + 0x33, 0xa8, 0xec, 0xca, 0xbb, 0x22, 0xa5, 0x71, + 0xce, 0xa7, 0xdc, 0x30, 0x60, 0x71, 0x97, 0x34, + 0x2b, 0xda, 0xdd, 0x7f, 0xb1, 0x8f, 0x3d, 0x36, + 0x99, 0x71, 0xc4, 0xa6, 0xc4, 0xa5, 0x38, 0xc4, + 0xf5, 0x29, 0xbc, 0x2c, 0xea, 0x24, 0xc8, 0x2c, + 0x3d, 0x1d, 0xf8, 0xcd, 0xc7, 0x62, 0x56, 0x52, + 0x54, 0xd2, 0x4a, 0xe8, 0xdd, 0x15, 0x9d, 0x6a, + 0x54, 0xe8, 0xd3, 0xae, 0x0b, 0x82, 0xe2, 0xaa, + 0xc7, 0xab, 0xdc, 0x97, 0x2b, 0xd0, 0xb8, 0xd7, + 0x60, 0x43, 0x3a, 0x7d, 0x2a, 0x0c, 0x0a, 0x53, + 0x4e, 0xb1, 0x4c, 0xa6, 0xd3, 0x62, 0xbd, 0x22, + 0x64, 0x81, 0x69, 0x94, 0x7e, 0x43, 0xcf, 0x3b, + 0x22, 0x53, 0x8e, 0xbe, 0xf3, 0xea, 0xa7, 0x9a, + 0x86, 0xb3, 0xba, 0xed, 0xc7, 0xae, 0x2e, 0xd6, + 0xf7, 0x52, 0x9b, 0x8d, 0xd8, 0x2b, 0xae, 0x8f, + 0x71, 0x39, 0xbc, 0x6c, 0x9c, 0xe2, 0x1a, 0xa6, + 0x24, 0xa4, 0x38, 0xa1, 0xa4, 0x87, 0x76, 0xe3, + 0xbc, 0x42, 0x69, 0x71, 0x75, 0x08, 0xe9, 0x5c, + 0xc5, 0x73, 0xc5, 0x56, 0xcd, 0xbf, 0x5d, 0xbe, + 0x26, 0xde, 0x14, 0xba, 0xd5, 0xa0, 0xe2, 0x24, + 0x16, 0x29, 0x74, 0x28, 0xf5, 0xfa, 0x15, 0x5a, + 0x7b, 0x94, 0x08, 0x28, 0x3a, 0xa7, 0xa4, 0x12, + 0x83, 0x5b, 0xa7, 0x32, 0x32, 0x6a, 0xb2, 0x48, + 0xdc, 0x9d, 0x30, 0x9a, 0x39, 0x2e, 0xb0, 0x11, + 0xa1, 0x8b, 0x81, 0x15, 0x84, 0x69, 0x6b, 0xfb, + 0x36, 0xb9, 0xea, 0x52, 0xeb, 0xc7, 0x4c, 0xba, + 0x20, 0x52, 0xe1, 0xdf, 0x74, 0xca, 0x5d, 0x3e, + 0xfa, 0x8f, 0xd8, 0x77, 0x24, 0x91, 0xb9, 0x0a, + 0x20, 0x53, 0x27, 0x4c, 0xb6, 0x8d, 0xc9, 0xda, + 0x69, 0xc7, 0x53, 0xa4, 0xea, 0xa7, 0x38, 0x13, + 0x82, 0x79, 0x30, 0xda, 0x04, 0x86, 0x9e, 0xe2, + 0x91, 0xb7, 0x59, 0x9f, 0x47, 0x6d, 0xfb, 0x76, + 0x6d, 0x02, 0x1a, 0x8c, 0x56, 0x9e, 0xa3, 0x48, + 0xa4, 0x45, 0x55, 0x15, 0x20, 0x8e, 0xdb, 0x90, + 0x8e, 0x1b, 0x2a, 0xa2, 0x8a, 0x8a, 0x42, 0xd0, + 0xa8, 0xf7, 0xa8, 0xa8, 0xaa, 0x83, 0x96, 0x69, + 0x86, 0x76, 0x53, 0x95, 0xc5, 0x63, 0x56, 0xa4, + 0x54, 0xc5, 0xc8, 0xd6, 0xad, 0x02, 0x99, 0x4e, + 0xa8, 0x53, 0x01, 0x92, 0x06, 0x2b, 0x15, 0x5a, + 0x0c, 0x79, 0x6c, 0xd0, 0x2a, 0xa7, 0xdf, 0xe6, + 0x8b, 0x4c, 0x3a, 0x9d, 0x45, 0xf6, 0x41, 0xdd, + 0xe2, 0x89, 0xac, 0x6c, 0x97, 0xf2, 0x6b, 0x88, + 0x5b, 0x36, 0x97, 0x12, 0xad, 0x02, 0xa4, 0xb5, + 0x48, 0xe6, 0x30, 0xf6, 0x8d, 0x74, 0xdf, 0x04, + 0xd2, 0x46, 0x71, 0x08, 0xe3, 0xdc, 0x34, 0xd9, + 0xd0, 0x1a, 0xa7, 0xa1, 0x6f, 0x55, 0x11, 0xe8, + 0xc5, 0x30, 0x5c, 0x71, 0xfc, 0x94, 0x1c, 0x40, + 0x51, 0x16, 0xc5, 0x55, 0x15, 0x2e, 0x6b, 0x52, + 0xa9, 0x56, 0xaf, 0xd3, 0x2e, 0x0a, 0x55, 0x52, + 0x3d, 0x3a, 0x5d, 0x26, 0xde, 0xba, 0xa9, 0x51, + 0x09, 0xe8, 0xc5, 0x23, 0x44, 0xfa, 0xeb, 0x10, + 0x82, 0x0c, 0xec, 0x91, 0xc0, 0x12, 0x6a, 0x03, + 0xf0, 0xd1, 0xd7, 0x59, 0x54, 0x55, 0x7d, 0x15, + 0x05, 0x08, 0x79, 0xf1, 0xb3, 0xfb, 0x46, 0xf8, + 0xb3, 0xd9, 0xa7, 0x52, 0x25, 0xd5, 0x2c, 0xe9, + 0x54, 0x18, 0xfc, 0x53, 0x95, 0x02, 0x83, 0x44, + 0xac, 0xb1, 0x5f, 0xaa, 0x4e, 0x90, 0x0e, 0xb8, + 0xe5, 0x4a, 0x55, 0x4a, 0x5d, 0x7a, 0x53, 0x0e, + 0xce, 0x95, 0x3c, 0xc2, 0x4c, 0xe7, 0xdd, 0x84, + 0x7b, 0xd0, 0xd6, 0xcb, 0x20, 0xc0, 0xee, 0x77, + 0x3f, 0xb3, 0xfc, 0x30, 0x3f, 0xca, 0x8b, 0x47, + 0xfd, 0x83, 0x2f, 0xfa, 0xc0, 0xbf, 0xce, 0xad, + 0x9b, 0xa6, 0xbf, 0x66, 0xd5, 0x9a, 0xae, 0xdb, + 0x55, 0x27, 0x29, 0x55, 0x56, 0x5a, 0x79, 0x80, + 0x94, 0xdb, 0x51, 0xa4, 0x22, 0xb3, 0x20, 0x74, + 0xbc, 0xcb, 0xb1, 0xa6, 0x33, 0x26, 0x23, 0xed, + 0x1e, 0x42, 0x5b, 0xb7, 0xd8, 0x70, 0x51, 0xc0, + 0x6d, 0xd1, 0x44, 0x71, 0xb0, 0x21, 0xe5, 0x1d, + 0xb6, 0x8f, 0x2d, 0x17, 0xe6, 0xe5, 0xa3, 0xd4, + 0x18, 0xe5, 0x1d, 0xb6, 0x8f, 0x2d, 0x17, 0xe6, + 0xe5, 0xa3, 0xd4, 0x18, 0xbb, 0xef, 0xcb, 0xb6, + 0xfd, 0x95, 0x12, 0x6d, 0xdb, 0x59, 0x72, 0xaf, + 0x22, 0x03, 0x0e, 0x46, 0x86, 0x45, 0x12, 0x9f, + 0x05, 0xb8, 0xec, 0xba, 0x68, 0xe3, 0xa8, 0x11, + 0xe9, 0x91, 0x21, 0x47, 0xd6, 0xe9, 0x88, 0xab, + 0x8e, 0xab, 0x4a, 0xf3, 0x88, 0x0d, 0x89, 0x9a, + 0x8b, 0x4d, 0xa0, 0xff, 0x00, 0x9c, 0xda, 0x37, + 0x45, 0x42, 0xcb, 0xb8, 0xa9, 0x97, 0x3d, 0x29, + 0xb8, 0x8f, 0x54, 0x29, 0x2e, 0x3a, 0xec, 0x66, + 0xe7, 0x36, 0xeb, 0xb1, 0x08, 0x9e, 0x8c, 0xf4, + 0x52, 0xdf, 0x36, 0xc3, 0xf1, 0x9d, 0x24, 0xdd, + 0xbe, 0x6a, 0x3a, 0x1f, 0x6d, 0x75, 0xa0, 0xaa, + 0xaa, 0xa2, 0x28, 0xaf, 0x2b, 0x6d, 0xa5, 0xf4, + 0x55, 0x99, 0xec, 0xca, 0xc7, 0x5f, 0xe3, 0x95, + 0xb6, 0xd2, 0xfa, 0x2a, 0xcc, 0xf6, 0x65, 0x63, + 0xaf, 0xf0, 0xe7, 0xe1, 0x63, 0xb4, 0x67, 0x74, + 0xef, 0x68, 0xd6, 0x4b, 0x9a, 0x0c, 0x5c, 0x0d, + 0x74, 0x9a, 0xb1, 0x68, 0x70, 0x17, 0x30, 0x70, + 0x73, 0xaf, 0xae, 0x93, 0x05, 0xe7, 0x12, 0x4e, + 0x71, 0x5e, 0x74, 0x5c, 0x72, 0xb6, 0xda, 0x5f, + 0x45, 0x59, 0x9e, 0xcc, 0xac, 0x75, 0xfe, 0x39, + 0x5b, 0x6d, 0x2f, 0xa2, 0xac, 0xcf, 0x66, 0x56, + 0x3a, 0xff, 0x00, 0x1c, 0xad, 0xb6, 0x97, 0xd1, + 0x56, 0x67, 0xb3, 0x2b, 0x1d, 0x7f, 0x8e, 0x56, + 0xdb, 0x4b, 0xe8, 0xab, 0x33, 0xd9, 0x95, 0x8e, + 0xbf, 0xc7, 0x2b, 0x6d, 0xa5, 0xf4, 0x55, 0x99, + 0xec, 0xca, 0xc7, 0x5f, 0xe3, 0x95, 0xb6, 0xd2, + 0xfa, 0x2a, 0xcc, 0xf6, 0x65, 0x63, 0xaf, 0xf1, + 0xca, 0xdb, 0x69, 0x7d, 0x15, 0x66, 0x7b, 0x32, + 0xb1, 0xd7, 0xf8, 0xe5, 0x6d, 0xb4, 0xbe, 0x8a, + 0xb3, 0x3d, 0x99, 0x58, 0xeb, 0xfc, 0x72, 0xb6, + 0xda, 0x5f, 0x45, 0x59, 0x9e, 0xcc, 0xac, 0x75, + 0xfe, 0x39, 0x5b, 0x6d, 0x2f, 0xa2, 0xac, 0xcf, + 0x66, 0x56, 0x3a, 0xff, 0x00, 0x1c, 0xad, 0xb6, + 0x97, 0xd1, 0x56, 0x67, 0xb3, 0x2b, 0x1d, 0x7f, + 0x8e, 0x56, 0xdb, 0x4b, 0xe8, 0xab, 0x33, 0xd9, + 0x95, 0x8e, 0xbf, 0xc7, 0x2b, 0x6d, 0xa5, 0xf4, + 0x55, 0x99, 0xec, 0xca, 0xc7, 0x5f, 0xe3, 0x95, + 0xb6, 0xd2, 0xfa, 0x2a, 0xcc, 0xf6, 0x65, 0x63, + 0xaf, 0xf1, 0xca, 0xdb, 0x69, 0x7d, 0x15, 0x66, + 0x7b, 0x32, 0xb1, 0xd7, 0xf8, 0xe5, 0x6d, 0xb4, + 0xbe, 0x8a, 0xb3, 0x3d, 0x99, 0x58, 0xeb, 0xfc, + 0x72, 0xb6, 0xda, 0x5f, 0x45, 0x59, 0x9e, 0xcc, + 0xac, 0x75, 0xfe, 0x39, 0x5b, 0x6d, 0x2f, 0xa2, + 0xac, 0xcf, 0x66, 0x56, 0x3a, 0xff, 0x00, 0x1b, + 0x46, 0xda, 0x75, 0xc1, 0xb4, 0xf9, 0xd4, 0xea, + 0x85, 0xc1, 0x1a, 0x93, 0x19, 0xfa, 0x64, 0x47, + 0x21, 0xb0, 0x34, 0x98, 0xf2, 0xa3, 0xb6, 0x4d, + 0x38, 0xf2, 0xbc, 0x4a, 0xe8, 0xca, 0x9d, 0x38, + 0x88, 0xf5, 0x2e, 0x48, 0xa0, 0x60, 0x3a, 0x7f, + 0x82, 0xab, 0xcf, 0xff, 0x00, 0x5e, 0x8a, 0xb5, + 0xc9, 0x6f, 0xd0, 0x74, 0x25, 0x6a, 0xb3, 0x4d, + 0xa6, 0x13, 0x83, 0xad, 0xb0, 0x9b, 0x2d, 0x96, + 0x0c, 0xc3, 0x3c, 0xb5, 0x88, 0x19, 0x21, 0xa8, + 0xe7, 0x9a, 0x6a, 0x44, 0xcb, 0x34, 0x54, 0xcf, + 0x99, 0x71, 0xdd, 0x2e, 0xc0, 0xf2, 0xbe, 0x81, + 0xed, 0x16, 0x3d, 0xec, 0x77, 0x4b, 0xb0, 0x3c, + 0xaf, 0xa0, 0x7b, 0x45, 0x8f, 0x7b, 0x1d, 0xd2, + 0xec, 0x0f, 0x2b, 0xe8, 0x1e, 0xd1, 0x63, 0xde, + 0xc7, 0x74, 0xbb, 0x03, 0xca, 0xfa, 0x07, 0xb4, + 0x58, 0xf7, 0xb1, 0xdd, 0x2e, 0xc0, 0xf2, 0xbe, + 0x81, 0xed, 0x16, 0x3d, 0xec, 0x77, 0x4b, 0xb0, + 0x3c, 0xaf, 0xa0, 0x7b, 0x45, 0x8f, 0x7b, 0x1d, + 0xd2, 0xec, 0x0f, 0x2b, 0xe8, 0x1e, 0xd1, 0x63, + 0xde, 0xc7, 0x74, 0xbb, 0x03, 0xca, 0xfa, 0x07, + 0xb4, 0x58, 0xf7, 0xb1, 0xdd, 0x2e, 0xc0, 0xf2, + 0xbe, 0x81, 0xed, 0x16, 0x3d, 0xec, 0x77, 0x4b, + 0xb0, 0x3c, 0xaf, 0xa0, 0x7b, 0x45, 0x8f, 0x7b, + 0x1d, 0xd2, 0xec, 0x0f, 0x2b, 0xe8, 0x1e, 0xd1, + 0x63, 0xde, 0xc7, 0x74, 0xbb, 0x03, 0xca, 0xfa, + 0x07, 0xb4, 0x58, 0xf7, 0xb1, 0xdd, 0x2e, 0xc0, + 0xf2, 0xbe, 0x81, 0xed, 0x16, 0x3d, 0xec, 0x77, + 0x4b, 0xb0, 0x3c, 0xaf, 0xa0, 0x7b, 0x45, 0x8f, + 0x7b, 0x1d, 0xd2, 0xec, 0x0f, 0x2b, 0xe8, 0x1e, + 0xd1, 0x63, 0xde, 0xc7, 0x74, 0xbb, 0x03, 0xca, + 0xfa, 0x07, 0xb4, 0x58, 0xf7, 0xb1, 0xdd, 0x2e, + 0xc0, 0xf2, 0xbe, 0x81, 0xed, 0x16, 0x3d, 0xec, + 0x77, 0x4b, 0xb0, 0x3c, 0xaf, 0xa0, 0x7b, 0x45, + 0x8f, 0x7b, 0x1d, 0xd2, 0xec, 0x0f, 0x2b, 0xe8, + 0x1e, 0xd1, 0x63, 0xde, 0xc7, 0x74, 0xbb, 0x03, + 0xca, 0xfa, 0x07, 0xb4, 0x58, 0xf7, 0xb1, 0x49, + 0xbb, 0x2d, 0x9a, 0xeb, 0xaa, 0xc5, 0x1e, 0xbd, + 0x4a, 0xa9, 0x3e, 0x82, 0xa5, 0xb9, 0x89, 0x35, + 0x87, 0x9d, 0xd2, 0x3f, 0x08, 0x91, 0xb1, 0x3d, + 0x6a, 0x89, 0xf1, 0xaa, 0x22, 0xe5, 0xe1, 0x5f, + 0xe2, 0x0a, 0x9d, 0x52, 0x9f, 0x45, 0x83, 0x22, + 0xa7, 0x54, 0x96, 0xd4, 0x28, 0x11, 0x03, 0x5c, + 0x89, 0x2f, 0x2e, 0x40, 0x08, 0xa4, 0x82, 0x3e, + 0x04, 0x52, 0x23, 0x33, 0x21, 0x06, 0xdb, 0x01, + 0x23, 0x70, 0xc8, 0x40, 0x04, 0x89, 0x51, 0x30, + 0xff, 0x00, 0xe1, 0x0d, 0x64, 0x34, 0xe9, 0x03, + 0x50, 0x2e, 0x69, 0x60, 0x8a, 0xb9, 0x3e, 0xc4, + 0x0a, 0x78, 0x34, 0x7c, 0xfe, 0x11, 0x19, 0x75, + 0x68, 0xcf, 0xa2, 0x2f, 0x85, 0x35, 0xb2, 0x2b, + 0x92, 0xf3, 0xa2, 0x2e, 0x69, 0x8e, 0x51, 0x56, + 0x67, 0x43, 0xdd, 0x9e, 0xa5, 0x46, 0xeb, 0xec, + 0x72, 0x8a, 0xb3, 0x3a, 0x1e, 0xec, 0xf5, 0x2a, + 0x37, 0x5f, 0x63, 0x94, 0x55, 0x99, 0xd0, 0xf7, + 0x67, 0xa9, 0x51, 0xba, 0xfb, 0x1c, 0xa2, 0xac, + 0xce, 0x87, 0xbb, 0x3d, 0x4a, 0x8d, 0xd7, 0xd8, + 0xe5, 0x15, 0x66, 0x74, 0x3d, 0xd9, 0xea, 0x54, + 0x6e, 0xbe, 0xc7, 0x28, 0xab, 0x33, 0xa1, 0xee, + 0xcf, 0x52, 0xa3, 0x75, 0xf6, 0x39, 0x45, 0x59, + 0x9d, 0x0f, 0x76, 0x7a, 0x95, 0x1b, 0xaf, 0xb1, + 0xca, 0x2a, 0xcc, 0xe8, 0x7b, 0xb3, 0xd4, 0xa8, + 0xdd, 0x7d, 0x8e, 0x51, 0x56, 0x67, 0x43, 0xdd, + 0x9e, 0xa5, 0x46, 0xeb, 0xec, 0x72, 0x8a, 0xb3, + 0x3a, 0x1e, 0xec, 0xf5, 0x2a, 0x37, 0x5f, 0x63, + 0x94, 0x55, 0x99, 0xd0, 0xf7, 0x67, 0xa9, 0x51, + 0xba, 0xfb, 0x1c, 0xa2, 0xac, 0xce, 0x87, 0xbb, + 0x3d, 0x4a, 0x8d, 0xd7, 0xd8, 0xe5, 0x15, 0x66, + 0x74, 0x3d, 0xd9, 0xea, 0x54, 0x6e, 0xbe, 0xc7, + 0x28, 0xab, 0x33, 0xa1, 0xee, 0xcf, 0x52, 0xa3, + 0x75, 0xf6, 0x39, 0x45, 0x59, 0x9d, 0x0f, 0x76, + 0x7a, 0x95, 0x1b, 0xaf, 0xb1, 0xca, 0x2a, 0xcc, + 0xe8, 0x7b, 0xb3, 0xd4, 0xa8, 0xdd, 0x7d, 0x8e, + 0x51, 0x56, 0x67, 0x43, 0xdd, 0x9e, 0xa5, 0x46, + 0xeb, 0xec, 0x72, 0x8a, 0xb3, 0x3a, 0x1e, 0xec, + 0xf5, 0x2a, 0x37, 0x5f, 0x63, 0x94, 0x55, 0x99, + 0xd0, 0xf7, 0x67, 0xa9, 0x51, 0xba, 0xfb, 0x1c, + 0xa2, 0xac, 0xce, 0x87, 0xbb, 0x3d, 0x4a, 0x8d, + 0xd7, 0xd8, 0xb4, 0x36, 0x93, 0x6b, 0x5e, 0xa4, + 0xe3, 0x14, 0x89, 0x4f, 0x35, 0x3d, 0xa0, 0x57, + 0x0e, 0x9b, 0x50, 0x65, 0x22, 0xcd, 0xdd, 0x26, + 0x59, 0xba, 0xd8, 0x8b, 0x8e, 0xb2, 0xf8, 0x0e, + 0x69, 0xad, 0x63, 0xbe, 0xea, 0xb7, 0xff, 0x00, + 0xac, 0x41, 0x45, 0x15, 0x57, 0x0b, 0x43, 0x66, + 0x7e, 0x1d, 0x00, 0x45, 0xff, 0x00, 0xc2, 0x8a, + 0xb8, 0xac, 0xd4, 0x26, 0x5c, 0x15, 0x49, 0xb5, + 0x8a, 0x83, 0x86, 0xfc, 0xa9, 0xef, 0x9c, 0x87, + 0x08, 0xd7, 0x3d, 0x28, 0x6b, 0x98, 0x34, 0x19, + 0xfc, 0x16, 0xd9, 0x0d, 0x2d, 0x34, 0x09, 0xde, + 0x80, 0x08, 0x88, 0xa6, 0x49, 0x8d, 0xc7, 0x9b, + 0x1b, 0x8f, 0x36, 0x28, 0x76, 0xe5, 0x46, 0xe3, + 0xa9, 0xc6, 0xa4, 0x52, 0x98, 0xdf, 0x4c, 0x92, + 0xa5, 0xa5, 0x08, 0x85, 0xb6, 0x9b, 0x6d, 0xb1, + 0x53, 0x75, 0xe7, 0x9c, 0x2e, 0x66, 0xda, 0x68, + 0x11, 0x48, 0xcb, 0x9d, 0x7c, 0x02, 0x02, 0x46, + 0x42, 0x05, 0x72, 0xec, 0xd6, 0xb5, 0x6c, 0xd3, + 0xc6, 0xaa, 0xf4, 0xba, 0x25, 0x5a, 0x9d, 0xc4, + 0x70, 0xaf, 0xcb, 0xa1, 0x4f, 0x39, 0xcd, 0x43, + 0x90, 0xa8, 0x8a, 0x0d, 0x4b, 0xde, 0xc6, 0x8a, + 0x4d, 0x2b, 0x99, 0xf7, 0x8a, 0x82, 0x60, 0x8b, + 0x90, 0xb8, 0x40, 0x4e, 0x34, 0x87, 0xb9, 0x1e, + 0x6f, 0x3f, 0x83, 0xc1, 0xcf, 0xf2, 0x78, 0xf0, + 0xd4, 0x6d, 0xf3, 0x80, 0xd3, 0x69, 0xa9, 0xc3, + 0x31, 0x6c, 0x45, 0x14, 0x79, 0xcc, 0xc9, 0x04, + 0x53, 0x9d, 0x72, 0x4c, 0xc9, 0x72, 0xe7, 0xc9, + 0x31, 0x5c, 0xa0, 0x4c, 0xb7, 0xaa, 0x72, 0x69, + 0x15, 0x31, 0x69, 0xb9, 0xd0, 0xd2, 0x37, 0x14, + 0x0d, 0x3a, 0x2e, 0x83, 0x47, 0x26, 0x2b, 0x12, + 0xd1, 0xa5, 0x75, 0x32, 0x02, 0x36, 0xc1, 0xf1, + 0x6d, 0xd5, 0x05, 0x26, 0xb7, 0xa2, 0x7b, 0xa7, + 0x1d, 0x6f, 0x4b, 0x85, 0xb9, 0x1e, 0x6f, 0x3f, + 0x83, 0xc1, 0xcf, 0xf2, 0x63, 0x74, 0x1e, 0x6e, + 0x7e, 0x64, 0xe7, 0x4e, 0x75, 0xf1, 0x62, 0x9b, + 0x48, 0x76, 0xab, 0x51, 0x83, 0x4c, 0x8e, 0xad, + 0x83, 0xf3, 0xe5, 0x31, 0x0d, 0x93, 0x7d, 0x48, + 0x59, 0x17, 0x24, 0x38, 0x2d, 0x01, 0x3a, 0x4d, + 0x83, 0xa6, 0x2d, 0xa1, 0x12, 0x29, 0xa8, 0x36, + 0x64, 0x89, 0x9e, 0x40, 0x4b, 0xcd, 0x89, 0x3b, + 0x2a, 0xb8, 0x22, 0xdd, 0x70, 0xac, 0xf7, 0x1f, + 0xa4, 0xad, 0x46, 0x74, 0x33, 0x9c, 0xcc, 0xb1, + 0x91, 0x33, 0xb1, 0x82, 0xc3, 0x4d, 0x4a, 0x75, + 0xc5, 0x76, 0x41, 0x53, 0xc6, 0x42, 0x10, 0x24, + 0x47, 0x01, 0x50, 0x62, 0x1a, 0x23, 0x84, 0xd2, + 0x6a, 0xc8, 0x94, 0x86, 0xbf, 0x6f, 0xc9, 0xb7, + 0x2a, 0xf3, 0xe8, 0xb3, 0xce, 0x33, 0x92, 0xa9, + 0xce, 0x8b, 0x2f, 0xb9, 0x14, 0xdc, 0x38, 0xc4, + 0x44, 0xd3, 0x6f, 0x22, 0xb4, 0x6f, 0x35, 0x1d, + 0xc2, 0x1d, 0x2e, 0x0a, 0x2e, 0xb6, 0x5b, 0x5d, + 0x48, 0xb9, 0x22, 0xa6, 0x4a, 0xbb, 0x94, 0xcb, + 0x3f, 0x8b, 0xc7, 0xf1, 0x7e, 0xbc, 0x3b, 0x6b, + 0xcb, 0x66, 0xdb, 0x8b, 0x74, 0x93, 0xb0, 0xd6, + 0x9d, 0x32, 0xa6, 0xf5, 0x25, 0xa6, 0x85, 0xc7, + 0x56, 0x62, 0x48, 0x61, 0x82, 0x7c, 0xcd, 0xc6, + 0xd5, 0x84, 0x61, 0x18, 0xd0, 0x39, 0x21, 0x8c, + 0x93, 0x3d, 0x5c, 0xca, 0xd2, 0x27, 0x7d, 0x8d, + 0xc8, 0xf3, 0x79, 0xfc, 0x1e, 0x0e, 0x7f, 0x93, + 0xc7, 0x8b, 0x9e, 0xd4, 0x9b, 0x69, 0xd4, 0xbb, + 0x17, 0x52, 0x76, 0x1b, 0xaf, 0xf0, 0xb1, 0xa5, + 0xef, 0x21, 0x38, 0xf3, 0x8c, 0x6e, 0xe5, 0x0a, + 0x93, 0x63, 0xae, 0x44, 0x78, 0xa7, 0xbc, 0x44, + 0x4e, 0xfd, 0x37, 0x5a, 0x51, 0x72, 0xd2, 0x65, + 0x8d, 0xc8, 0xa2, 0x66, 0xbe, 0x0f, 0x1f, 0x36, + 0x58, 0xdc, 0x27, 0x8b, 0x1b, 0x8f, 0x36, 0x37, + 0x1e, 0x6c, 0x44, 0x72, 0x4c, 0x09, 0x4c, 0x4d, + 0x84, 0xf3, 0xb1, 0x66, 0x45, 0x74, 0x1f, 0x8f, + 0x21, 0x95, 0xd2, 0xe3, 0x4f, 0x36, 0x48, 0x40, + 0x62, 0xbe, 0x65, 0x44, 0xe6, 0x5c, 0xc4, 0x93, + 0xbd, 0x24, 0x51, 0x55, 0x4c, 0x5b, 0xd5, 0x07, + 0x6a, 0xd4, 0x0a, 0x25, 0x51, 0xf1, 0x10, 0x7e, + 0xa5, 0x48, 0xa6, 0xcf, 0x78, 0x43, 0x98, 0x05, + 0xd9, 0x70, 0xd9, 0x7d, 0xc4, 0x0f, 0xe4, 0xa1, + 0xb8, 0xa8, 0x3e, 0x6c, 0xbf, 0xcf, 0xff, 0x00, + 0x08, 0x89, 0x0f, 0xf6, 0x36, 0xda, 0x80, 0x06, + 0xa9, 0x1a, 0x4c, 0xca, 0x8c, 0x97, 0xdb, 0x45, + 0x54, 0x47, 0x1d, 0x86, 0xcc, 0x46, 0xe3, 0xa9, + 0x7f, 0xce, 0xdd, 0xa4, 0xc7, 0xd5, 0x11, 0x7c, + 0x0a, 0x59, 0xa7, 0x3a, 0x63, 0x87, 0xc5, 0x8f, + 0x65, 0xc7, 0xba, 0x25, 0x54, 0xdc, 0xa8, 0xcf, + 0x76, 0x9b, 0x47, 0xa2, 0x40, 0x5a, 0x8d, 0x4e, + 0x4c, 0x78, 0xe7, 0x2e, 0x5e, 0xeb, 0x52, 0x88, + 0x37, 0x1a, 0x38, 0x0b, 0x84, 0x46, 0x5a, 0x1d, + 0x32, 0x34, 0x6d, 0xdd, 0x02, 0xde, 0x48, 0xd1, + 0x91, 0x8e, 0x55, 0xbb, 0x0e, 0x96, 0xe8, 0xd2, + 0xa5, 0x58, 0x75, 0x87, 0x6e, 0xa8, 0xd5, 0x37, + 0x24, 0x45, 0x48, 0x4a, 0xd0, 0xb3, 0x58, 0x62, + 0x4c, 0x56, 0xdc, 0x78, 0xd4, 0xa1, 0x28, 0xc7, + 0x90, 0xb1, 0xcd, 0x96, 0x9d, 0x31, 0x71, 0x62, + 0xb7, 0xa3, 0x77, 0xce, 0x46, 0x8e, 0xb4, 0xab, + 0x1a, 0xdb, 0xac, 0x4c, 0x8f, 0xc5, 0xc4, 0xa6, + 0xcc, 0x91, 0x1b, 0x8d, 0x6a, 0x9d, 0xbd, 0x65, + 0x93, 0x31, 0xe3, 0x9e, 0xcb, 0x75, 0x15, 0x32, + 0xe7, 0x57, 0x8f, 0x50, 0xe4, 0x08, 0x8a, 0xbc, + 0xfc, 0xf9, 0x62, 0x9d, 0xb3, 0x7b, 0x92, 0x4d, + 0x7a, 0x93, 0x42, 0xa8, 0x53, 0xa6, 0xd1, 0xdc, + 0xab, 0x38, 0x7a, 0x24, 0x4a, 0x88, 0x64, 0x2d, + 0xb0, 0xca, 0x6a, 0x93, 0x21, 0x03, 0x5b, 0x68, + 0xea, 0x47, 0x0e, 0xf8, 0xdb, 0x47, 0x41, 0x79, + 0xc7, 0x52, 0x8a, 0x12, 0x2e, 0x26, 0x58, 0x17, + 0x08, 0xd7, 0xea, 0xf4, 0x3a, 0x75, 0x1e, 0xa7, + 0x35, 0xca, 0x63, 0xee, 0xe4, 0x83, 0x1d, 0x49, + 0xd5, 0x80, 0xaf, 0x98, 0x42, 0x96, 0xf6, 0x94, + 0x46, 0xc1, 0x25, 0xb4, 0x22, 0xeb, 0x7f, 0x07, + 0x78, 0x9a, 0x94, 0x07, 0x48, 0xae, 0x50, 0x2d, + 0x0b, 0x8a, 0xa8, 0x8f, 0x2d, 0x3e, 0x8b, 0x51, + 0x97, 0xc3, 0xca, 0xe0, 0xa4, 0x23, 0x31, 0x9c, + 0x52, 0x62, 0x5e, 0x59, 0xac, 0x77, 0x87, 0x24, + 0x26, 0x9d, 0x14, 0xe7, 0x21, 0x34, 0x4d, 0x1f, + 0xc2, 0xcb, 0x0f, 0xd9, 0x57, 0x3c, 0x66, 0x26, + 0xca, 0x91, 0x41, 0xaa, 0xb3, 0x1e, 0x9c, 0x6a, + 0xdc, 0xd7, 0x9c, 0x88, 0xe8, 0xb7, 0x1c, 0x91, + 0x00, 0x97, 0x59, 0x2a, 0x65, 0xa5, 0x05, 0xc0, + 0x55, 0x31, 0xcc, 0x11, 0x0b, 0x9c, 0xbc, 0x38, + 0xb1, 0xed, 0x68, 0xf7, 0x4d, 0xcb, 0x02, 0x89, + 0x2d, 0xf7, 0xe2, 0xc7, 0x96, 0x92, 0x54, 0xdf, + 0x8d, 0xa1, 0x5e, 0x0d, 0xcc, 0x77, 0x5e, 0x1d, + 0x28, 0xe8, 0x98, 0x73, 0xa8, 0x22, 0x2e, 0x62, + 0xbc, 0xcb, 0xcd, 0xcf, 0x8a, 0x46, 0xc9, 0x20, + 0x4e, 0xbd, 0x6b, 0xb6, 0xec, 0x8a, 0x8c, 0xf6, + 0xe9, 0x54, 0xb8, 0x70, 0xe4, 0xc5, 0xa8, 0x32, + 0x91, 0x96, 0x44, 0x95, 0xa8, 0xac, 0x5e, 0x08, + 0x5c, 0xd6, 0xd2, 0xb2, 0x9b, 0xd1, 0x72, 0x41, + 0x77, 0xa0, 0x8a, 0xa8, 0xcf, 0x36, 0x5c, 0xf8, + 0x1b, 0x1e, 0xbf, 0x36, 0x45, 0x51, 0x28, 0xd4, + 0x8a, 0x95, 0x4a, 0x1d, 0x36, 0xa1, 0x36, 0x12, + 0xc9, 0x62, 0x39, 0x38, 0x2b, 0xc2, 0xbc, 0xe3, + 0x69, 0x99, 0x0a, 0x20, 0x93, 0x8a, 0x00, 0x84, + 0x62, 0xde, 0x79, 0x2a, 0xe5, 0x92, 0x66, 0x89, + 0x88, 0x36, 0x7d, 0xc5, 0x53, 0x6d, 0xa7, 0x69, + 0xf4, 0x6a, 0x84, 0xc6, 0xdf, 0x7d, 0xf8, 0xcd, + 0x1b, 0x11, 0xcc, 0xc4, 0xa4, 0x46, 0x15, 0x39, + 0x0d, 0x7f, 0x24, 0xd9, 0x14, 0x55, 0x71, 0x0b, + 0x2d, 0x3e, 0x05, 0xe7, 0xe6, 0xc4, 0x4b, 0x4a, + 0xe0, 0x9f, 0x3a, 0x55, 0x32, 0x1d, 0x1a, 0xa3, + 0x22, 0x7c, 0x15, 0x24, 0x99, 0x11, 0xb8, 0xce, + 0x2b, 0xd1, 0x54, 0x4b, 0x42, 0xef, 0xc5, 0x51, + 0x37, 0x7d, 0xf7, 0x30, 0xea, 0x54, 0xd7, 0xe1, + 0x0d, 0x49, 0x86, 0x2d, 0x2b, 0x82, 0x4d, 0x49, + 0xfa, 0x3b, 0x14, 0x7a, 0x83, 0xb5, 0x48, 0xc8, + 0x45, 0x22, 0x08, 0xc7, 0x73, 0x88, 0x64, 0x43, + 0x4e, 0xa2, 0x70, 0x32, 0xef, 0x07, 0xbf, 0x0c, + 0x89, 0x7b, 0xd2, 0xd4, 0x3a, 0x55, 0x75, 0x26, + 0x72, 0x6d, 0x0b, 0x8a, 0x1c, 0xa8, 0x50, 0x65, + 0x51, 0x6a, 0x2c, 0x4c, 0xa9, 0x11, 0x84, 0x08, + 0xae, 0x46, 0x71, 0x1f, 0x94, 0x4d, 0x1a, 0x36, + 0xe2, 0x32, 0xd6, 0x5a, 0xcb, 0x41, 0x2a, 0x6a, + 0x5c, 0xb2, 0x41, 0xef, 0xd5, 0x74, 0x77, 0xd8, + 0x2b, 0x3a, 0xe3, 0x0a, 0x92, 0x51, 0xce, 0x8b, + 0x51, 0x0a, 0xa1, 0x30, 0x52, 0x46, 0x09, 0x47, + 0x34, 0x7c, 0xe3, 0x88, 0xa9, 0x13, 0xc0, 0x2b, + 0xf0, 0xdb, 0x14, 0x42, 0xcc, 0xc5, 0x55, 0x11, + 0x44, 0x85, 0x7b, 0xe1, 0x54, 0x44, 0xb0, 0x2e, + 0xf5, 0x76, 0x3b, 0x09, 0x6d, 0xd6, 0x37, 0xb2, + 0x98, 0x29, 0x2c, 0x07, 0x04, 0xea, 0x29, 0xb2, + 0x1a, 0x35, 0x9f, 0x3a, 0x64, 0x3a, 0x77, 0xad, + 0xe6, 0x26, 0xa2, 0x48, 0xa6, 0x29, 0xa7, 0x35, + 0xc5, 0x3e, 0xd2, 0xb8, 0x2a, 0xaf, 0xca, 0x8b, + 0x4e, 0xa3, 0xd4, 0x66, 0x48, 0x82, 0xba, 0x66, + 0x32, 0xcc, 0x67, 0x08, 0xe2, 0x96, 0xa2, 0x0d, + 0x0f, 0xa2, 0xa2, 0x6e, 0xcd, 0x48, 0x49, 0x10, + 0x0b, 0x22, 0x2d, 0x25, 0x92, 0x2e, 0x92, 0xca, + 0x0d, 0xa9, 0x5f, 0xa9, 0xa1, 0x15, 0x3e, 0x8f, + 0x50, 0x96, 0x81, 0x2f, 0x80, 0x3d, 0xcc, 0x77, + 0x09, 0x5b, 0x9b, 0xbb, 0x57, 0x78, 0x67, 0x07, + 0x24, 0x26, 0xdd, 0x46, 0xc4, 0x8c, 0x84, 0xd0, + 0x74, 0xa2, 0x2e, 0xac, 0xb1, 0x6f, 0x6c, 0xce, + 0xb5, 0x5a, 0x76, 0xe3, 0x61, 0xf8, 0xd3, 0x61, + 0x4a, 0xb7, 0xa9, 0xae, 0xc8, 0x28, 0x4b, 0x14, + 0x96, 0x4c, 0xaa, 0x89, 0xb2, 0x67, 0x02, 0x9e, + 0x88, 0x64, 0x28, 0xd2, 0xc9, 0x54, 0xde, 0xeb, + 0xd2, 0xe6, 0xf1, 0x91, 0x24, 0x6d, 0x11, 0x4c, + 0x5d, 0x13, 0x88, 0x6d, 0x99, 0xb6, 0xe0, 0xa8, + 0x38, 0xd9, 0x10, 0x18, 0x2f, 0x84, 0x4c, 0x15, + 0x44, 0x85, 0x7c, 0xe2, 0x48, 0xa8, 0xbe, 0x7c, + 0x58, 0x87, 0x22, 0x0d, 0xe9, 0x6a, 0xc8, 0x8e, + 0xe1, 0x34, 0xe7, 0x67, 0xe9, 0x4c, 0x11, 0x0a, + 0xaa, 0x66, 0xc4, 0xb9, 0x8c, 0xc5, 0x94, 0xd2, + 0xff, 0x00, 0x21, 0xe8, 0xcf, 0x3a, 0xd1, 0xa7, + 0xc6, 0x26, 0xb8, 0x91, 0xfb, 0x8b, 0xdf, 0xe8, + 0x9c, 0xff, 0x00, 0xb8, 0xb8, 0x08, 0xab, 0xa0, + 0x39, 0xbf, 0x82, 0x3f, 0xcd, 0x8e, 0x19, 0x7c, + 0x58, 0xe1, 0x97, 0xc5, 0x8d, 0x9e, 0x0d, 0x7a, + 0x2d, 0xc8, 0xd4, 0x9b, 0x7e, 0x0c, 0x7a, 0x94, + 0xc6, 0xa1, 0xcb, 0xdf, 0xd3, 0xe4, 0xbc, 0xc3, + 0x2d, 0xcc, 0x80, 0x62, 0x21, 0x29, 0xa4, 0x57, + 0xdd, 0x6b, 0x51, 0xf7, 0xcd, 0x98, 0x83, 0x6a, + 0x6e, 0x66, 0x1a, 0xb7, 0x66, 0xd8, 0xb8, 0x98, + 0x99, 0x16, 0x00, 0xda, 0xf5, 0x0b, 0x8e, 0x8b, + 0x44, 0xb8, 0x2c, 0x59, 0x74, 0x4a, 0xad, 0x2e, + 0x6c, 0xca, 0x43, 0xb2, 0xe6, 0xf6, 0x0e, 0xb0, + 0xea, 0x55, 0x1a, 0xdc, 0x20, 0x47, 0x90, 0x6d, + 0x84, 0x87, 0x62, 0xfe, 0x4d, 0xe6, 0xff, 0x00, + 0x69, 0x47, 0x6e, 0x33, 0x88, 0x8c, 0x36, 0x0e, + 0x37, 0x93, 0xc1, 0x5d, 0x81, 0x16, 0x8e, 0xd5, + 0x7a, 0xb1, 0x1a, 0x1a, 0x4e, 0x8f, 0xb4, 0x1a, + 0xbd, 0xb2, 0x10, 0x62, 0x34, 0x8d, 0xa9, 0xc9, + 0x83, 0x24, 0x5b, 0xa8, 0xd6, 0x23, 0x86, 0x6a, + 0x89, 0x94, 0xc7, 0x77, 0x91, 0x7c, 0x20, 0x9f, + 0xb6, 0x43, 0xc4, 0xa4, 0x97, 0x4b, 0x8f, 0x4a, + 0xa6, 0x05, 0x56, 0x9a, 0x11, 0x34, 0x5b, 0x75, + 0xba, 0x34, 0x96, 0x20, 0xd5, 0x6d, 0xf9, 0x74, + 0xa9, 0xf4, 0x82, 0x09, 0xd1, 0x9a, 0x50, 0x84, + 0xf1, 0x14, 0x76, 0x64, 0xb1, 0xbb, 0x70, 0x23, + 0x38, 0xd2, 0x32, 0x6c, 0x3c, 0xd8, 0xba, 0x4c, + 0xcb, 0x57, 0x59, 0x60, 0x16, 0x42, 0xbe, 0xfd, + 0xe1, 0x78, 0xd4, 0xa5, 0xb6, 0xcc, 0x79, 0x56, + 0xe5, 0x2a, 0x14, 0x7b, 0x6e, 0x73, 0x94, 0x29, + 0x75, 0x62, 0x8d, 0x1e, 0x73, 0x60, 0xec, 0xf9, + 0xac, 0xc0, 0x8c, 0xe0, 0x48, 0xa9, 0x3a, 0x8e, + 0x91, 0xc6, 0x57, 0x22, 0x10, 0x1b, 0x6d, 0x2b, + 0x8c, 0x29, 0x6e, 0xc9, 0xf0, 0x71, 0xd3, 0xa7, + 0x53, 0x6a, 0x77, 0x95, 0x6e, 0x14, 0x06, 0x8e, + 0x43, 0x96, 0x3c, 0x4a, 0x94, 0xf8, 0xf2, 0xa8, + 0xf2, 0x69, 0xb1, 0x66, 0xd5, 0x42, 0x4c, 0xc5, + 0x59, 0xa5, 0x4d, 0x9c, 0x22, 0xe2, 0x37, 0x31, + 0xc1, 0x07, 0x1e, 0x1c, 0xcf, 0x59, 0x01, 0xab, + 0x8e, 0x38, 0xf9, 0x3a, 0x65, 0x12, 0xbc, 0xec, + 0xda, 0xbd, 0x86, 0xd4, 0x8a, 0x55, 0x18, 0x8a, + 0xf6, 0xb7, 0x5d, 0x3b, 0x8e, 0x47, 0x02, 0x1b, + 0xe9, 0x42, 0xcd, 0x3d, 0xf7, 0x19, 0x8e, 0x26, + 0xa4, 0xaa, 0x31, 0xc1, 0xd5, 0x71, 0x77, 0x4e, + 0x6f, 0x53, 0x4b, 0xa4, 0x1c, 0xdc, 0xcb, 0x8b, + 0x6e, 0x22, 0x35, 0x79, 0x51, 0x84, 0x47, 0x20, + 0x6e, 0xe1, 0x84, 0x82, 0x9f, 0x12, 0x08, 0xcf, + 0x04, 0x44, 0xff, 0x00, 0x72, 0x26, 0x26, 0x69, + 0x57, 0xea, 0x97, 0x49, 0x28, 0x9c, 0x9a, 0x2b, + 0x97, 0x25, 0xaa, 0x24, 0xaa, 0x3a, 0x81, 0xfa, + 0x95, 0xd1, 0x13, 0x80, 0x54, 0x4c, 0xb3, 0x45, + 0x08, 0x93, 0x09, 0xac, 0xd3, 0x9f, 0x42, 0xe9, + 0xcf, 0xbf, 0xe7, 0x9a, 0x12, 0x29, 0x35, 0x2d, + 0xa4, 0xdc, 0xf4, 0x4a, 0x5b, 0x15, 0x4b, 0x9a, + 0x35, 0x6e, 0x9d, 0x0e, 0x32, 0xbb, 0x14, 0xe6, + 0xb9, 0x02, 0x03, 0xf0, 0x22, 0xa4, 0x87, 0xd8, + 0x8e, 0xda, 0xef, 0x15, 0x5d, 0x42, 0x30, 0x71, + 0x5a, 0xc8, 0x88, 0x07, 0x23, 0x55, 0x6c, 0x48, + 0x55, 0x8a, 0x54, 0x67, 0xae, 0x3a, 0x7d, 0xc9, + 0x22, 0x8d, 0x11, 0xab, 0xa9, 0xcb, 0x12, 0x65, + 0x7d, 0xca, 0x32, 0x47, 0x44, 0x6d, 0xca, 0xfb, + 0x4f, 0xb0, 0xdb, 0x13, 0x8a, 0x2f, 0x85, 0x25, + 0x38, 0x2f, 0x38, 0x5a, 0x0f, 0x39, 0x08, 0xe6, + 0x92, 0xd7, 0xc4, 0x31, 0xbc, 0x49, 0x33, 0x2a, + 0xb5, 0x6a, 0x45, 0x81, 0x3e, 0xb9, 0x4c, 0x66, + 0x9b, 0x50, 0x7b, 0x68, 0x0c, 0xb9, 0x20, 0x1b, + 0x86, 0x50, 0x78, 0x94, 0x06, 0xdd, 0x68, 0x25, + 0x3b, 0x1d, 0xce, 0xfd, 0x1c, 0x20, 0x04, 0x61, + 0x49, 0xc5, 0x52, 0x30, 0x60, 0x17, 0xe0, 0xe9, + 0xc4, 0xba, 0x3c, 0xd8, 0x74, 0x8d, 0xb5, 0x3d, + 0x2a, 0x13, 0xd1, 0xda, 0x9b, 0x58, 0xd7, 0x0d, + 0xd7, 0x59, 0x26, 0xc1, 0xf0, 0x5a, 0xb4, 0x97, + 0xd0, 0xe3, 0x91, 0x22, 0x23, 0x81, 0xba, 0x7d, + 0xa2, 0xd4, 0xde, 0x63, 0xdf, 0xa2, 0x67, 0x9e, + 0x69, 0x87, 0x21, 0xc6, 0x6e, 0xe4, 0xba, 0x6b, + 0xa8, 0x6c, 0xb5, 0x56, 0xa7, 0x5b, 0xb6, 0xdb, + 0x34, 0xf9, 0x6e, 0x52, 0x24, 0xd7, 0x8a, 0x9e, + 0xdc, 0xa0, 0x94, 0x32, 0x64, 0x33, 0x4a, 0x86, + 0xe3, 0x72, 0x64, 0x1b, 0xc2, 0x1b, 0x85, 0x26, + 0x48, 0x5c, 0x06, 0xd1, 0xc4, 0xd5, 0xb9, 0x71, + 0xf0, 0x38, 0x7d, 0x87, 0xa7, 0x5c, 0x35, 0xfa, + 0x8c, 0x5a, 0x64, 0xb8, 0x33, 0x2a, 0x34, 0xea, + 0x43, 0x8f, 0xd7, 0x59, 0xb5, 0x67, 0x1b, 0x51, + 0x67, 0xbe, 0xe3, 0xa9, 0x30, 0x4e, 0x98, 0xe3, + 0x45, 0x32, 0x18, 0x55, 0x4f, 0x73, 0x31, 0xd3, + 0x46, 0xf7, 0x2f, 0xab, 0x6e, 0xb9, 0x32, 0x5e, + 0xfd, 0x90, 0x71, 0xcd, 0xa9, 0x52, 0x1e, 0x89, + 0x77, 0x4a, 0x71, 0xd6, 0xe9, 0xe8, 0x53, 0xa3, + 0x45, 0x9c, 0xa7, 0x4c, 0x8e, 0xec, 0x36, 0x24, + 0x1b, 0xc0, 0xa8, 0xe4, 0x87, 0x22, 0xba, 0xf4, + 0x82, 0x62, 0x43, 0xce, 0x01, 0x13, 0xc9, 0xbe, + 0x71, 0x1d, 0x2f, 0xcb, 0xa9, 0x6f, 0x1d, 0x71, + 0x13, 0x86, 0x5f, 0x16, 0x38, 0x65, 0xf1, 0x63, + 0x86, 0x5f, 0x16, 0x2c, 0xd4, 0xca, 0xd1, 0xb5, + 0x93, 0xc5, 0x6e, 0xd1, 0x53, 0xf5, 0x53, 0xa3, + 0xa7, 0xf9, 0xfe, 0xdf, 0x19, 0xde, 0xb5, 0x6b, + 0x7f, 0x25, 0xca, 0xcf, 0xd2, 0x34, 0xcf, 0xfc, + 0xb1, 0xc1, 0xf9, 0x97, 0xe9, 0xc6, 0xcd, 0xa0, + 0xd5, 0xd2, 0xa5, 0x50, 0x7e, 0xdf, 0xae, 0x46, + 0xa5, 0xd6, 0xd9, 0x85, 0x9c, 0x4a, 0x74, 0xc8, + 0xe0, 0xec, 0x7a, 0xfb, 0x6a, 0x79, 0xbb, 0x04, + 0xdc, 0x75, 0xf6, 0x81, 0xa2, 0x03, 0x06, 0x4c, + 0x72, 0x07, 0x1d, 0xef, 0xf5, 0x81, 0x32, 0x0d, + 0xba, 0x78, 0xba, 0xa5, 0xc8, 0xa5, 0x37, 0x69, + 0x5c, 0x57, 0x24, 0x0a, 0x54, 0x0b, 0xd2, 0x1d, + 0x76, 0x39, 0x3c, 0x34, 0xb2, 0x6d, 0x5f, 0x95, + 0x41, 0x65, 0x93, 0x09, 0x2e, 0x4e, 0xdc, 0xb8, + 0xea, 0x12, 0x11, 0x20, 0xa3, 0x03, 0xbd, 0x74, + 0x1b, 0xde, 0x2b, 0x6d, 0x69, 0x43, 0x90, 0x09, + 0x56, 0x41, 0xb6, 0x6b, 0xd6, 0xc5, 0x26, 0x89, + 0x22, 0x96, 0x23, 0x3e, 0xe2, 0xab, 0x5d, 0xc6, + 0xb5, 0x17, 0x9e, 0x8f, 0x00, 0x92, 0xa2, 0x2e, + 0xb1, 0x06, 0x33, 0x92, 0x59, 0x66, 0x49, 0x36, + 0x9b, 0x87, 0x65, 0x33, 0x19, 0xdd, 0xcb, 0xa8, + 0x0f, 0x2c, 0x73, 0x54, 0xd2, 0x8a, 0xab, 0x51, + 0x17, 0xe2, 0x4d, 0xb2, 0xe4, 0x4d, 0x95, 0x53, + 0xa2, 0x4c, 0x5b, 0xa4, 0x50, 0xe8, 0x53, 0xab, + 0x8d, 0x56, 0xc0, 0xd9, 0x7e, 0x34, 0xa8, 0xee, + 0xc8, 0x8d, 0x53, 0x33, 0x76, 0xa6, 0xb1, 0x1c, + 0x42, 0x6d, 0xb2, 0x61, 0xf9, 0x0d, 0xc5, 0x52, + 0x90, 0x4c, 0x2c, 0x14, 0xd2, 0xc1, 0x62, 0x9f, + 0x12, 0xb2, 0x09, 0x75, 0x53, 0x7f, 0x6f, 0xc9, + 0xb8, 0x4e, 0xed, 0x1a, 0xbe, 0xe1, 0xab, 0x94, + 0x69, 0x73, 0x8e, 0x82, 0xe9, 0xa2, 0x53, 0x1d, + 0x4a, 0x82, 0x84, 0xf2, 0x3a, 0x64, 0x76, 0xc4, + 0x1b, 0x76, 0x9c, 0x80, 0x22, 0x2d, 0x0a, 0xc5, + 0x56, 0xf9, 0xc6, 0x33, 0xf5, 0xda, 0xbc, 0xe6, + 0x6d, 0xfd, 0xa3, 0x54, 0xa9, 0x4f, 0xb7, 0x4e, + 0x9a, 0xfd, 0xc9, 0x47, 0x65, 0xd9, 0x34, 0x4a, + 0x8b, 0xef, 0x80, 0xba, 0x30, 0xa0, 0x33, 0x24, + 0xa2, 0xd4, 0x52, 0x25, 0x35, 0xe2, 0x53, 0x56, + 0xf4, 0x38, 0xe0, 0xc7, 0x6f, 0xbe, 0x53, 0x14, + 0x37, 0x13, 0xbf, 0x2a, 0xbc, 0xfa, 0x9c, 0x8b, + 0xa6, 0xed, 0xa7, 0xbd, 0x32, 0x49, 0xd3, 0x93, + 0x66, 0x93, 0x5d, 0x18, 0x0a, 0xe1, 0x70, 0x89, + 0x24, 0xe3, 0x30, 0x45, 0x27, 0x86, 0xcf, 0x73, + 0xc4, 0x29, 0x3a, 0xe0, 0xef, 0xf4, 0x6f, 0x74, + 0x96, 0xef, 0x56, 0x8e, 0xf7, 0x1b, 0x27, 0x8a, + 0xa1, 0x7d, 0x51, 0xcb, 0x25, 0xe6, 0x19, 0xde, + 0x3f, 0xd0, 0x5f, 0xc5, 0x10, 0xd9, 0x08, 0x56, + 0x85, 0x4d, 0xa5, 0xfd, 0xb7, 0x70, 0x4f, 0xa0, + 0xd1, 0xa5, 0xa6, 0x94, 0x42, 0x56, 0xed, 0x98, + 0xf5, 0x91, 0x43, 0x52, 0x45, 0xef, 0xb5, 0xee, + 0xc1, 0x0b, 0x99, 0x32, 0x44, 0x1c, 0xfe, 0x24, + 0x1b, 0x4e, 0x92, 0x40, 0x54, 0xc9, 0xad, 0xa4, + 0xca, 0xa8, 0x76, 0xf1, 0x71, 0x3c, 0xe8, 0x9d, + 0x47, 0x71, 0x4d, 0xb6, 0xdd, 0x57, 0xde, 0x8e, + 0x8e, 0xac, 0x50, 0x41, 0x79, 0xe9, 0x32, 0xdb, + 0x2d, 0x0d, 0x32, 0x6f, 0x70, 0xea, 0xec, 0xbd, + 0x5b, 0x83, 0x37, 0x93, 0x7b, 0x54, 0x9b, 0x54, + 0xa2, 0xdb, 0x2e, 0xf6, 0x2e, 0x54, 0xba, 0x6b, + 0x8f, 0x6d, 0x56, 0xb0, 0xdb, 0xa7, 0x19, 0xc7, + 0x18, 0x74, 0x98, 0x49, 0x73, 0x1f, 0xdc, 0x11, + 0x0a, 0x8a, 0x93, 0x2e, 0x13, 0x4d, 0xef, 0x19, + 0x3c, 0xdb, 0x78, 0x13, 0x43, 0xa2, 0x6d, 0x91, + 0x0a, 0xd5, 0x68, 0xc5, 0x32, 0xe2, 0xda, 0x2b, + 0xac, 0x84, 0xba, 0x8b, 0xca, 0x94, 0x00, 0xed, + 0x6e, 0x34, 0xee, 0x02, 0x3d, 0x48, 0x34, 0x30, + 0xe8, 0xcb, 0xa8, 0x10, 0xa2, 0x3c, 0x71, 0xa2, + 0x3a, 0x03, 0xa8, 0xa3, 0x39, 0x1d, 0xf0, 0x68, + 0xe4, 0x07, 0x12, 0xca, 0x48, 0x42, 0xc5, 0x4d, + 0x99, 0xd2, 0xeb, 0x5b, 0x41, 0x81, 0x40, 0x94, + 0x91, 0x6e, 0x3a, 0x9d, 0x2e, 0xd6, 0x7e, 0x9a, + 0xfb, 0x32, 0xf8, 0x67, 0xa4, 0xc4, 0x8f, 0x1f, + 0xf6, 0xe2, 0x41, 0x98, 0xa4, 0x24, 0x0b, 0x91, + 0x26, 0x6f, 0x03, 0xc9, 0xab, 0x58, 0xaa, 0x98, + 0xe9, 0x53, 0xc3, 0x6a, 0xf4, 0x5a, 0xe5, 0x88, + 0xdd, 0x66, 0x6b, 0x72, 0x6b, 0x25, 0x69, 0x57, + 0x29, 0xed, 0x4c, 0x59, 0x81, 0xf9, 0x4a, 0xbb, + 0x85, 0x0d, 0xb1, 0x6f, 0x8f, 0x51, 0x7c, 0x78, + 0x92, 0xd0, 0x71, 0xf8, 0x94, 0x09, 0x0a, 0x72, + 0x11, 0x4b, 0x4b, 0xe4, 0x59, 0x1c, 0x33, 0x9a, + 0xcd, 0xc9, 0x68, 0x42, 0xa8, 0xc5, 0x46, 0x6a, + 0x54, 0xda, 0x55, 0xc6, 0xf2, 0x0c, 0xab, 0x85, + 0xcb, 0x8e, 0xb2, 0x11, 0xdf, 0x8e, 0xda, 0x8b, + 0x75, 0x59, 0x4b, 0x4d, 0x8a, 0xdf, 0x7e, 0xe3, + 0x62, 0x51, 0xc8, 0x66, 0x4b, 0x33, 0x6c, 0x55, + 0x17, 0x4e, 0x59, 0xad, 0x3e, 0xbd, 0x71, 0x39, + 0x68, 0x58, 0x72, 0x4e, 0xb1, 0x52, 0x39, 0x53, + 0xaf, 0xd0, 0x62, 0x6c, 0x85, 0x94, 0xf2, 0xbd, + 0x26, 0x22, 0xcf, 0x74, 0xb8, 0x37, 0x5c, 0xd7, + 0xa9, 0xc8, 0x8b, 0xf0, 0x38, 0x52, 0x52, 0x63, + 0x74, 0x22, 0xce, 0xef, 0x74, 0x02, 0x09, 0x14, + 0x5c, 0x7d, 0xeb, 0xa2, 0x0d, 0x15, 0xa9, 0x0e, + 0xd5, 0xd8, 0xbe, 0xdc, 0xa8, 0x4d, 0x8d, 0x0e, + 0xb8, 0x36, 0xfb, 0xeb, 0x14, 0xd8, 0x8a, 0x2c, + 0x4b, 0x7d, 0xfe, 0x1a, 0x59, 0x4b, 0xa6, 0x8a, + 0xb6, 0x8d, 0xc8, 0x89, 0xba, 0x54, 0x79, 0x45, + 0xc1, 0x56, 0x9d, 0xcd, 0x1b, 0x76, 0xad, 0x56, + 0x9c, 0xc5, 0xbd, 0x7e, 0x54, 0x29, 0x32, 0x06, + 0x9d, 0x22, 0x65, 0xe9, 0x05, 0xb7, 0x24, 0x51, + 0x6a, 0x0f, 0xb8, 0x02, 0xbc, 0x0c, 0x7e, 0x25, + 0x62, 0x54, 0x46, 0x3d, 0x39, 0xf3, 0x17, 0x5e, + 0x67, 0xbe, 0x70, 0x18, 0x67, 0x58, 0x91, 0x87, + 0x7e, 0xd9, 0x6a, 0x32, 0xec, 0xa4, 0xab, 0x92, + 0xe8, 0x8b, 0x02, 0x5b, 0xed, 0xd5, 0x2a, 0xbb, + 0x39, 0xa7, 0x94, 0x54, 0x6a, 0x52, 0xc2, 0x71, + 0xea, 0xaa, 0x32, 0xa0, 0xd4, 0xa0, 0x31, 0x71, + 0x90, 0x09, 0x4d, 0x2b, 0xaa, 0x81, 0x27, 0x31, + 0x28, 0xe2, 0x45, 0xa4, 0xc0, 0x33, 0xc4, 0x9a, + 0x7b, 0xed, 0x49, 0x90, 0xd4, 0x9d, 0x5c, 0x4b, + 0x6f, 0xbc, 0xdc, 0x8d, 0x45, 0xac, 0xb7, 0xe0, + 0xe1, 0x0b, 0xda, 0x8f, 0x35, 0xd6, 0x5b, 0xc4, + 0x2d, 0x47, 0x9a, 0xea, 0x5c, 0xcb, 0x35, 0xcf, + 0x3c, 0x5a, 0x71, 0x34, 0xdd, 0x56, 0xc9, 0x64, + 0xbd, 0xed, 0xc3, 0x44, 0x5f, 0x8f, 0xe2, 0xa9, + 0xc5, 0x5c, 0x38, 0x3a, 0xc4, 0xc3, 0xfe, 0x70, + 0x90, 0xfe, 0xb4, 0x54, 0xc5, 0x4e, 0xdf, 0x93, + 0x48, 0x9d, 0x22, 0x9d, 0x2d, 0x93, 0x6d, 0xe8, + 0xae, 0x13, 0x7d, 0xf2, 0x2a, 0x6b, 0x04, 0x55, + 0x46, 0xdd, 0x0c, 0xfe, 0x13, 0x6e, 0x0a, 0x6a, + 0x03, 0x4e, 0x65, 0x4f, 0x06, 0x38, 0x1f, 0xe4, + 0xae, 0x38, 0x1f, 0xe4, 0xae, 0x22, 0x0c, 0xa8, + 0x12, 0x59, 0x99, 0x05, 0xe7, 0xe2, 0x4a, 0x8e, + 0x5a, 0xd9, 0x90, 0xc1, 0xab, 0x6e, 0xb6, 0x59, + 0x28, 0xae, 0x92, 0x1e, 0x7c, 0x88, 0x54, 0x80, + 0xc7, 0xe0, 0x98, 0x11, 0x01, 0xa1, 0x01, 0x12, + 0x2d, 0x4a, 0xbd, 0x5e, 0xb8, 0xb8, 0x68, 0xd7, + 0x05, 0x5a, 0x5c, 0xa8, 0x2d, 0xc8, 0x07, 0x0d, + 0xb0, 0x6e, 0x33, 0x02, 0x28, 0xab, 0xa4, 0xde, + 0xdd, 0x45, 0x8e, 0xd3, 0x6e, 0xbc, 0x0d, 0xa9, + 0xee, 0x95, 0xd0, 0x71, 0x43, 0x51, 0x20, 0x64, + 0x86, 0x68, 0x57, 0x8d, 0x46, 0x9d, 0x32, 0x3d, + 0x02, 0x8b, 0x41, 0x91, 0x32, 0x4d, 0x2e, 0xdf, + 0x88, 0xad, 0xb5, 0x2e, 0x50, 0x1b, 0x2f, 0x3d, + 0x21, 0xc5, 0x15, 0x53, 0x14, 0x30, 0x69, 0xc1, + 0x46, 0x44, 0x04, 0x07, 0xf2, 0x4c, 0xa0, 0xae, + 0x62, 0xd0, 0xee, 0xc0, 0x0c, 0xaa, 0x57, 0x0d, + 0xcd, 0x57, 0x86, 0xd4, 0x0a, 0x95, 0x5e, 0x64, + 0xa8, 0x8c, 0x93, 0x64, 0x0d, 0x16, 0xe4, 0x33, + 0x26, 0x91, 0x37, 0x66, 0xf3, 0x8c, 0xb4, 0xdb, + 0xd2, 0x4c, 0x32, 0x42, 0x13, 0x92, 0xe3, 0xa4, + 0x8e, 0x7e, 0x57, 0x3d, 0xe7, 0x7d, 0x85, 0xba, + 0xae, 0xc2, 0x9b, 0x16, 0xa2, 0xb5, 0x99, 0x5c, + 0x6c, 0x38, 0xee, 0x44, 0x62, 0x42, 0x35, 0x10, + 0x55, 0x23, 0x3b, 0xa5, 0x5c, 0x61, 0xe0, 0x18, + 0xe8, 0xd4, 0xa6, 0xc8, 0x80, 0x0f, 0x29, 0x60, + 0xfe, 0x4e, 0x80, 0x3a, 0x2a, 0x8e, 0x80, 0x9a, + 0x39, 0x58, 0xaf, 0x3c, 0xed, 0x55, 0xf7, 0x6a, + 0x0f, 0xba, 0xf5, 0x6d, 0x8e, 0x16, 0xa8, 0xe3, + 0x80, 0xc1, 0xac, 0xa8, 0xc9, 0xf0, 0x58, 0xef, + 0x9a, 0x54, 0x8e, 0xd0, 0x67, 0x93, 0x61, 0x15, + 0x18, 0x46, 0xc7, 0x20, 0x6f, 0x48, 0x22, 0x22, + 0x35, 0x59, 0xaf, 0x32, 0xf5, 0x26, 0x43, 0x53, + 0x9c, 0x17, 0xa8, 0x51, 0xca, 0x2d, 0x24, 0xf7, + 0x11, 0x17, 0x83, 0x8e, 0x4d, 0x93, 0x44, 0xd8, + 0xa1, 0x47, 0x51, 0x75, 0x15, 0xb2, 0x51, 0xce, + 0x40, 0xbc, 0x79, 0x2f, 0xc2, 0xcf, 0x9f, 0x0c, + 0x0c, 0x98, 0xd2, 0xda, 0x9c, 0xc1, 0x93, 0x72, + 0xd9, 0x7c, 0x64, 0xb4, 0xf2, 0x08, 0x12, 0x83, + 0xe0, 0x7b, 0xc1, 0x73, 0x41, 0x89, 0x36, 0xaa, + 0x87, 0xdf, 0x69, 0x20, 0x51, 0xf8, 0x94, 0x72, + 0xe6, 0xc1, 0xd6, 0xee, 0x07, 0x1a, 0x98, 0xc1, + 0xd4, 0x1d, 0x56, 0x67, 0xd4, 0x46, 0xad, 0x31, + 0xbd, 0xc4, 0x44, 0x47, 0xea, 0x20, 0xe8, 0x3c, + 0x32, 0x57, 0x28, 0xe8, 0xa0, 0xa8, 0xeb, 0x4d, + 0x9e, 0xe9, 0xb5, 0x06, 0x15, 0x41, 0x33, 0x69, + 0x53, 0x9b, 0x11, 0xeb, 0xd7, 0x1c, 0x5a, 0xac, + 0x9a, 0xdc, 0x6a, 0x9c, 0x96, 0x6a, 0x73, 0x7f, + 0xc6, 0xe4, 0x80, 0x47, 0x41, 0x93, 0xde, 0x20, + 0x26, 0xfa, 0x2e, 0xe7, 0x83, 0x73, 0x48, 0xa2, + 0x68, 0xd5, 0x1d, 0x77, 0x64, 0x9a, 0xc3, 0x49, + 0xf7, 0xd8, 0x5a, 0xb5, 0x74, 0xaa, 0xe9, 0x5e, + 0x2a, 0x94, 0xb5, 0xac, 0x09, 0x6a, 0x19, 0xca, + 0x43, 0xbc, 0x1e, 0x65, 0x1d, 0xd8, 0xb7, 0xa7, + 0x70, 0x31, 0xf4, 0x91, 0x07, 0x0a, 0x8d, 0x24, + 0x6d, 0xd9, 0x13, 0x7b, 0xad, 0x04, 0xa3, 0x8a, + 0x95, 0x7e, 0xe4, 0xac, 0x0b, 0x61, 0x52, 0xaa, + 0xca, 0x94, 0x2c, 0xcc, 0x49, 0xec, 0x66, 0x2c, + 0x34, 0x4c, 0x4b, 0x16, 0xd1, 0xa1, 0x79, 0x87, + 0x23, 0xb2, 0xd3, 0x8c, 0xe8, 0x04, 0xef, 0x1b, + 0x68, 0x85, 0xa0, 0x2c, 0xdc, 0x16, 0xd1, 0xd2, + 0x23, 0x59, 0xd7, 0x35, 0xd3, 0x53, 0x66, 0x54, + 0x69, 0xf5, 0x79, 0x32, 0x63, 0xcd, 0x65, 0xa8, + 0xf2, 0x59, 0x36, 0xa2, 0x23, 0x6e, 0x34, 0xc1, + 0x93, 0xad, 0x8a, 0x08, 0x47, 0x14, 0x68, 0x90, + 0xc9, 0x48, 0x9c, 0x67, 0x76, 0xeb, 0xbd, 0xea, + 0x3c, 0x66, 0x80, 0x08, 0x21, 0x70, 0xdc, 0xad, + 0xd5, 0x3b, 0x34, 0x15, 0x49, 0x01, 0x53, 0xe1, + 0x86, 0x1a, 0xca, 0x06, 0xe3, 0x0e, 0xb8, 0xa0, + 0x99, 0x0b, 0x0e, 0xb0, 0x2c, 0x24, 0x57, 0x9b, + 0x1e, 0x62, 0x44, 0x75, 0x83, 0xc9, 0xc1, 0x07, + 0x7f, 0x74, 0x00, 0x31, 0x8f, 0x70, 0xdc, 0xd1, + 0x2a, 0x52, 0xab, 0x11, 0xea, 0xf3, 0x42, 0xa3, + 0x3b, 0x9a, 0x5c, 0x85, 0x56, 0x9c, 0x49, 0x08, + 0x9c, 0xc0, 0x2e, 0x47, 0x75, 0xb3, 0x8a, 0xa0, + 0xca, 0x2a, 0x8c, 0x70, 0x46, 0x10, 0x22, 0x8a, + 0xe9, 0x8e, 0x8d, 0x0f, 0x36, 0x2a, 0x07, 0x3a, + 0xad, 0x2d, 0xe9, 0xf5, 0x29, 0x0f, 0x4c, 0x98, + 0xf9, 0x6a, 0x75, 0xf7, 0x95, 0x35, 0x2f, 0xc4, + 0x82, 0x22, 0x28, 0x20, 0xdb, 0x60, 0x9d, 0xeb, + 0x6d, 0x34, 0x20, 0xd3, 0x63, 0xde, 0xb6, 0x02, + 0x3c, 0xd8, 0xe0, 0x7f, 0x92, 0xb8, 0xe0, 0x7f, + 0x92, 0xb8, 0x8d, 0x48, 0x91, 0x32, 0x43, 0x31, + 0x22, 0xb0, 0xe3, 0xf2, 0x5f, 0x34, 0x6d, 0x96, + 0x5b, 0x4c, 0xcc, 0xcc, 0xbc, 0x08, 0x9e, 0x24, + 0xf8, 0xc8, 0x97, 0x21, 0x11, 0xcc, 0x89, 0x50, + 0x51, 0x57, 0x14, 0x58, 0x47, 0x4d, 0xa3, 0xd2, + 0x69, 0xce, 0x10, 0x93, 0x90, 0x29, 0xb0, 0x61, + 0xb8, 0x41, 0x9e, 0x92, 0x38, 0xb1, 0x5a, 0x64, + 0xc8, 0x73, 0xe7, 0xd2, 0xa4, 0x0a, 0xa9, 0xe6, + 0xff, 0x00, 0x3f, 0xda, 0x4d, 0xab, 0x22, 0xe5, + 0xa4, 0xc7, 0x38, 0x23, 0xbc, 0x9f, 0x4c, 0x75, + 0xc7, 0x99, 0x63, 0x99, 0x16, 0x43, 0x2f, 0x88, + 0x0c, 0x86, 0x81, 0x55, 0x51, 0x11, 0xdf, 0xc9, + 0xb4, 0xe8, 0x66, 0xb9, 0x1e, 0xed, 0x5b, 0xf8, + 0x46, 0x2a, 0x87, 0x6e, 0x55, 0x5a, 0x25, 0x07, + 0x29, 0x55, 0x10, 0x24, 0xf0, 0xa2, 0xc1, 0x95, + 0xf5, 0x7c, 0xe9, 0xe7, 0x4e, 0x6c, 0x76, 0x02, + 0xa5, 0xd1, 0xb5, 0x0f, 0x52, 0x95, 0xf5, 0x78, + 0xa7, 0xd2, 0x24, 0x46, 0x9b, 0x1d, 0xf9, 0xd6, + 0xfc, 0xea, 0x94, 0x56, 0xcb, 0x37, 0xa1, 0x1b, + 0x33, 0xa3, 0xa4, 0x80, 0x51, 0x54, 0xd1, 0xbf, + 0x69, 0xa5, 0x36, 0xf2, 0x55, 0x42, 0x45, 0x44, + 0x5e, 0x74, 0xc9, 0x51, 0x51, 0x57, 0x17, 0x2a, + 0x55, 0xee, 0x3a, 0xa1, 0xd4, 0x0e, 0x8b, 0x32, + 0x23, 0x68, 0xd3, 0x31, 0xa2, 0xc3, 0x6a, 0x24, + 0xa2, 0x6e, 0x2c, 0x56, 0x07, 0x4b, 0x4d, 0x09, + 0x6e, 0x1b, 0x45, 0xcb, 0x9d, 0x55, 0x45, 0xb6, + 0xc7, 0x35, 0xef, 0x40, 0x53, 0x24, 0x4e, 0xc0, + 0x54, 0xba, 0x36, 0xa1, 0xea, 0x52, 0xbe, 0xaf, + 0x1d, 0x80, 0xa9, 0xf4, 0x6d, 0x43, 0xd4, 0xa5, + 0x7d, 0x5e, 0x3b, 0x5f, 0xa9, 0x74, 0x6d, 0x43, + 0xd4, 0xa5, 0x7d, 0x5e, 0x3b, 0x01, 0x52, 0xe8, + 0xda, 0x87, 0xa9, 0x4a, 0xfa, 0xbc, 0x76, 0x02, + 0xa5, 0xd1, 0xb5, 0x0f, 0x52, 0x95, 0xf5, 0x78, + 0xec, 0x05, 0x4b, 0xa3, 0x6a, 0x1e, 0xa5, 0x2b, + 0xea, 0xf1, 0xd8, 0x0a, 0x97, 0x46, 0xd4, 0x3d, + 0x4a, 0x57, 0xd5, 0xe3, 0xb0, 0x15, 0x2e, 0x8d, + 0xa8, 0x7a, 0x94, 0xaf, 0xab, 0xc7, 0x60, 0x2a, + 0x7d, 0x1b, 0x50, 0xf5, 0x29, 0x5f, 0x57, 0x8a, + 0x1c, 0x55, 0xa6, 0x94, 0x81, 0xaa, 0x5a, 0x0f, + 0x57, 0x23, 0x48, 0x46, 0xbf, 0x26, 0xeb, 0x13, + 0x62, 0x49, 0x61, 0xc6, 0x75, 0xe8, 0x28, 0xf3, + 0x59, 0x60, 0xde, 0x68, 0x0d, 0x1c, 0x54, 0x7d, + 0x94, 0xef, 0x1e, 0xd2, 0xde, 0xae, 0x76, 0xc7, + 0x17, 0x29, 0x54, 0x6b, 0xee, 0xc0, 0x16, 0x2d, + 0xe9, 0x74, 0xba, 0x7d, 0x2e, 0x22, 0x43, 0xa7, + 0xc0, 0x6a, 0x3c, 0xc7, 0xf7, 0x2d, 0xea, 0xd6, + 0xe1, 0x1b, 0xe6, 0xc3, 0x6a, 0xe1, 0xb8, 0x48, + 0x99, 0x96, 0x81, 0x5c, 0x84, 0x75, 0x6a, 0x3d, + 0x46, 0x5d, 0x80, 0xa9, 0x78, 0x7b, 0x1b, 0x50, + 0xcf, 0xc7, 0xc1, 0x4a, 0xfa, 0xbc, 0x76, 0x02, + 0xa5, 0xd1, 0xb5, 0x0f, 0x52, 0x95, 0xf5, 0x78, + 0xec, 0x05, 0x4f, 0xa3, 0x6a, 0x1e, 0xa5, 0x2b, + 0xea, 0xf1, 0xd8, 0x0a, 0x97, 0x46, 0xd4, 0x3d, + 0x4a, 0x57, 0xd5, 0xe3, 0xb0, 0x15, 0x2e, 0x8d, + 0xa8, 0x7a, 0x94, 0xaf, 0xab, 0xc7, 0x6b, 0xf5, + 0x2e, 0x8d, 0xa8, 0x7a, 0x94, 0xaf, 0xab, 0xc5, + 0x8b, 0x62, 0x54, 0xe5, 0xd6, 0xe9, 0xf5, 0x19, + 0x71, 0x24, 0x42, 0x81, 0x4d, 0x94, 0xcc, 0xe2, + 0x72, 0x43, 0x44, 0xc9, 0x3e, 0xf4, 0x57, 0x05, + 0xe8, 0xec, 0xb4, 0xdb, 0xba, 0x4c, 0x90, 0x9d, + 0x00, 0x57, 0x0f, 0x4a, 0x82, 0x34, 0x84, 0x99, + 0xea, 0x31, 0xfc, 0x53, 0x69, 0x74, 0xda, 0x8e, + 0x9e, 0xc8, 0x53, 0xe1, 0x4e, 0xd1, 0x9e, 0x8e, + 0x2e, 0x33, 0x2f, 0xa8, 0x67, 0xe1, 0xd0, 0xae, + 0x01, 0x28, 0x67, 0xf1, 0xe9, 0x54, 0xcf, 0xe3, + 0xc7, 0x6a, 0xb6, 0xd7, 0x40, 0x52, 0x3d, 0x42, + 0x37, 0xb9, 0x8e, 0xd5, 0x6d, 0xae, 0x80, 0xa4, + 0x7a, 0x84, 0x6f, 0x73, 0x1d, 0xaa, 0xdb, 0x5d, + 0x01, 0x48, 0xf5, 0x08, 0xde, 0xe6, 0x3b, 0x55, + 0xb6, 0xba, 0x02, 0x91, 0xea, 0x11, 0xbd, 0xcc, + 0x76, 0xab, 0x6d, 0x74, 0x05, 0x23, 0xd4, 0x23, + 0x7b, 0x98, 0xed, 0x56, 0xda, 0xe8, 0x0a, 0x47, + 0xa8, 0x46, 0xf7, 0x31, 0xda, 0xad, 0xb5, 0xd0, + 0x14, 0x8f, 0x50, 0x8d, 0xee, 0x63, 0xb5, 0x5b, + 0x6b, 0xa0, 0x29, 0x1e, 0xa1, 0x1b, 0xdc, 0xc7, + 0x6a, 0xb6, 0xd7, 0x40, 0x52, 0x3d, 0x42, 0x37, + 0xb9, 0x8e, 0xd5, 0x6d, 0xae, 0x80, 0xa4, 0x7a, + 0x84, 0x6f, 0x73, 0x1d, 0xaa, 0xdb, 0x5d, 0x01, + 0x48, 0xf5, 0x08, 0xde, 0xe6, 0x3b, 0x55, 0xb6, + 0xba, 0x02, 0x91, 0xea, 0x11, 0xbd, 0xcc, 0x76, + 0xab, 0x6d, 0x74, 0x05, 0x23, 0xd4, 0x23, 0x7b, + 0x98, 0xed, 0x56, 0xda, 0xe8, 0x0a, 0x47, 0xa8, + 0x46, 0xf7, 0x31, 0xda, 0xad, 0xb5, 0xd0, 0x14, + 0x8f, 0x50, 0x8d, 0xee, 0x63, 0xb5, 0x5b, 0x6b, + 0xa0, 0x29, 0x1e, 0xa1, 0x1b, 0xdc, 0xc7, 0x6a, + 0xb6, 0xd7, 0x40, 0x52, 0x3d, 0x42, 0x37, 0xb9, + 0x8e, 0xd5, 0x6d, 0xae, 0x80, 0xa4, 0x7a, 0x84, + 0x6f, 0x73, 0x1d, 0xaa, 0xdb, 0x5d, 0x01, 0x48, + 0xf5, 0x08, 0xde, 0xe6, 0x3b, 0x55, 0xb6, 0xba, + 0x02, 0x91, 0xea, 0x11, 0xbd, 0xcc, 0x43, 0xa3, + 0xd2, 0x69, 0xc4, 0x4e, 0x40, 0xa6, 0x40, 0x84, + 0xe1, 0x26, 0x92, 0x72, 0x34, 0x46, 0x19, 0x70, + 0x87, 0xc3, 0xa5, 0x5c, 0x00, 0x43, 0x51, 0xfe, + 0x4e, 0x79, 0x79, 0xbf, 0xfb, 0x3b, 0x97, 0x71, + 0xdb, 0xb0, 0x1d, 0x58, 0xf3, 0xeb, 0xf4, 0x58, + 0x4f, 0x8f, 0xc2, 0x62, 0x5d, 0x56, 0x04, 0x67, + 0x87, 0xcc, 0x4d, 0x3c, 0xf8, 0x18, 0xaf, 0x99, + 0x53, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, + 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, + 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, + 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, + 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, + 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, + 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, + 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, + 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, + 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, + 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, + 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, + 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, + 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, + 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, + 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, + 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, + 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, + 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, + 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, + 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, + 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, + 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, + 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, + 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, + 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, + 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, + 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x11, 0x65, 0xc4, + 0x9c, 0xca, 0x48, 0x85, 0x2a, 0x34, 0xc8, 0xe4, + 0xaa, 0x82, 0xfc, 0x47, 0xda, 0x90, 0xca, 0xaa, + 0x78, 0x51, 0x1d, 0x64, 0x8c, 0x15, 0x53, 0xc5, + 0x9e, 0x7f, 0xc6, 0xfb, 0x62, 0xb8, 0xe7, 0xdb, + 0x76, 0x6b, 0xae, 0xd3, 0x1d, 0x38, 0xf3, 0x6a, + 0x73, 0xa3, 0xd2, 0x1a, 0x94, 0xd1, 0x28, 0xbb, + 0x14, 0x5f, 0x66, 0x54, 0x97, 0xde, 0x64, 0x85, + 0x51, 0x41, 0xdd, 0xc4, 0x37, 0x1a, 0x6d, 0xc4, + 0x54, 0x26, 0xc9, 0xc4, 0x70, 0x7b, 0xf1, 0x1c, + 0x2b, 0x04, 0x4a, 0xa4, 0x4a, 0x44, 0x44, 0xaa, + 0x44, 0x44, 0xaa, 0xa4, 0x44, 0xab, 0x9a, 0x91, + 0x2a, 0xf3, 0xaa, 0xaa, 0xf3, 0xaa, 0xaf, 0x3a, + 0xaf, 0x87, 0x1c, 0x3e, 0x38, 0x7c, 0x70, 0xf8, + 0xe1, 0xf1, 0xc3, 0xe3, 0x87, 0xc4, 0x3a, 0x54, + 0xaa, 0x84, 0xb8, 0xf0, 0x61, 0x30, 0x72, 0x25, + 0xca, 0x74, 0x59, 0x8e, 0xc0, 0x65, 0xad, 0xd7, + 0x4f, 0xe0, 0x80, 0xea, 0x51, 0x1c, 0xd7, 0xce, + 0x48, 0x9e, 0x7c, 0x54, 0xf6, 0x79, 0x78, 0x51, + 0xa1, 0xb9, 0x50, 0xa9, 0xdb, 0xf3, 0xe2, 0x42, + 0x67, 0x4e, 0xfa, 0x41, 0x23, 0x4e, 0x03, 0x5a, + 0xd7, 0x48, 0x93, 0x9b, 0x87, 0x5d, 0x20, 0x0d, + 0x4a, 0x88, 0xae, 0x10, 0xa0, 0x22, 0xaa, 0x21, + 0x12, 0x66, 0x99, 0xf0, 0xf8, 0x93, 0x43, 0xa8, + 0x43, 0x87, 0x4f, 0xa8, 0x49, 0x8a, 0xe3, 0x30, + 0xaa, 0xa9, 0x21, 0x69, 0xd2, 0x09, 0x43, 0x44, + 0xa4, 0x88, 0x60, 0xdc, 0x9d, 0xda, 0x09, 0x29, + 0x26, 0xe4, 0xdc, 0x01, 0x2d, 0x62, 0x3c, 0xe4, + 0x99, 0x67, 0x8e, 0x1f, 0x1c, 0x3e, 0x38, 0x7c, + 0x70, 0xf8, 0xe1, 0xf1, 0xc3, 0xe3, 0x87, 0xc7, + 0x0f, 0x8e, 0x1f, 0x1c, 0x3e, 0x36, 0x59, 0x5f, + 0xa9, 0x5b, 0x97, 0x85, 0x19, 0xb8, 0xaf, 0x39, + 0xc1, 0x56, 0x2a, 0x50, 0xa9, 0x75, 0x18, 0x7a, + 0xcb, 0x87, 0x90, 0xdc, 0xe9, 0x01, 0x11, 0xb7, + 0xc9, 0xbc, 0xf4, 0xef, 0xe2, 0x1b, 0xc8, 0xf3, + 0x2e, 0x65, 0xad, 0x10, 0x4d, 0xbc, 0xf4, 0x38, + 0x62, 0xbf, 0xc6, 0xdb, 0x79, 0x6f, 0x79, 0x68, + 0xd3, 0x11, 0x3e, 0x2b, 0x96, 0x22, 0xff, 0x00, + 0xd9, 0x55, 0x94, 0xff, 0x00, 0xc7, 0x1c, 0x29, + 0x78, 0xbf, 0x9f, 0x1c, 0x29, 0x78, 0xbf, 0x9f, + 0x1c, 0x29, 0x78, 0xbf, 0x9f, 0x1c, 0x29, 0x78, + 0xbf, 0x9f, 0x1c, 0x29, 0x78, 0xbf, 0x9f, 0x1c, + 0x29, 0x78, 0xbf, 0x9f, 0x1c, 0x29, 0x78, 0xbf, + 0x9f, 0x16, 0x1c, 0x75, 0x1b, 0xce, 0xd9, 0x5c, + 0xbc, 0x15, 0x78, 0xbf, 0xf7, 0xb1, 0x6f, 0x54, + 0xeb, 0x53, 0x36, 0x9f, 0x70, 0xd1, 0xa6, 0xd4, + 0x6a, 0x13, 0xa8, 0x53, 0x24, 0xdc, 0xd1, 0x26, + 0x53, 0xa6, 0x4c, 0x91, 0x26, 0x0b, 0x50, 0x47, + 0x8b, 0xd2, 0x8d, 0x30, 0xfb, 0x8e, 0x33, 0x18, + 0x5b, 0xc8, 0x00, 0x77, 0x22, 0xdf, 0x78, 0xbb, + 0xaf, 0x80, 0x5a, 0x71, 0x41, 0xb3, 0x2c, 0xd6, + 0x6d, 0xfa, 0x0b, 0x35, 0xd8, 0xb4, 0xd4, 0x76, + 0xe0, 0xa7, 0xc9, 0x9d, 0x32, 0xbd, 0x36, 0xe2, + 0x8b, 0x4c, 0x99, 0x4b, 0x57, 0x33, 0x18, 0x29, + 0x4f, 0xa7, 0x48, 0x70, 0x38, 0xb6, 0xd3, 0x40, + 0xef, 0x4b, 0x24, 0x00, 0x35, 0x5d, 0x5c, 0x46, + 0xb2, 0x6d, 0xb0, 0x2b, 0x6e, 0x05, 0xab, 0xb3, + 0xc8, 0xb7, 0x05, 0x00, 0xae, 0x25, 0x7e, 0x65, + 0x6e, 0x9b, 0x1c, 0xdb, 0x96, 0x6c, 0x45, 0x88, + 0xcb, 0xb5, 0x48, 0xed, 0xca, 0x98, 0x1b, 0x9d, + 0x5c, 0x5c, 0x83, 0x24, 0x8a, 0xb1, 0x19, 0xd6, + 0xd8, 0x38, 0xcf, 0x10, 0x49, 0x20, 0x17, 0x4e, + 0xf2, 0xe1, 0xb2, 0xa9, 0x14, 0x6a, 0x1d, 0xf4, + 0x8c, 0x47, 0xdf, 0x48, 0xa4, 0xdc, 0xd4, 0xc8, + 0xd4, 0xd9, 0x8e, 0x19, 0x9b, 0xf1, 0xa9, 0xf2, + 0xd8, 0x8e, 0xf9, 0x47, 0x55, 0x42, 0x40, 0x3d, + 0x3b, 0xdd, 0xda, 0x99, 0x82, 0x9a, 0xe5, 0x9a, + 0x96, 0xa5, 0xcf, 0x05, 0x67, 0xdb, 0x31, 0xab, + 0xae, 0xcb, 0x97, 0x49, 0xde, 0xd3, 0x28, 0xb6, + 0x04, 0x2b, 0x82, 0x45, 0x29, 0x97, 0x5d, 0x6f, + 0xb2, 0x15, 0x17, 0x1b, 0xd2, 0x7b, 0xd2, 0x53, + 0x57, 0x40, 0x48, 0x89, 0x4d, 0xc5, 0x15, 0x40, + 0x02, 0x40, 0x52, 0x05, 0x4c, 0xc0, 0xaf, 0x3a, + 0x65, 0xb6, 0xfd, 0x9d, 0x6d, 0xdc, 0x14, 0x1a, + 0x00, 0xd0, 0xde, 0xa9, 0xd4, 0xe7, 0xb5, 0x29, + 0x9e, 0x25, 0xf9, 0x6a, 0x88, 0xc0, 0xba, 0x3b, + 0xa0, 0x79, 0xdd, 0x28, 0x6c, 0xa3, 0x81, 0xa9, + 0xb2, 0x46, 0x1a, 0x5c, 0xb9, 0xb4, 0xf8, 0xf8, + 0x52, 0xf1, 0x7f, 0x3e, 0x38, 0x52, 0xf1, 0x7f, + 0x3e, 0x38, 0x52, 0xf1, 0x7f, 0x3e, 0x38, 0x52, + 0xf1, 0x7f, 0x3e, 0x38, 0x52, 0xf1, 0x7f, 0x3e, + 0x38, 0x52, 0xf1, 0x7f, 0x3e, 0x38, 0x52, 0xf1, + 0x7f, 0x3e, 0x2d, 0x28, 0xca, 0x97, 0x5d, 0xae, + 0xb9, 0x78, 0x2e, 0x3a, 0x1a, 0xfc, 0x7f, 0x15, + 0x52, 0x2a, 0xe1, 0x7f, 0x8d, 0xb6, 0xb3, 0x4a, + 0x7e, 0xa9, 0x6a, 0x67, 0x1c, 0x15, 0xc5, 0xa7, + 0x54, 0x63, 0xd4, 0x5d, 0x01, 0x4c, 0xcb, 0x70, + 0xdc, 0x79, 0x71, 0x5d, 0x24, 0x4f, 0x8f, 0x76, + 0x92, 0xf7, 0x85, 0xe2, 0x00, 0x25, 0xf8, 0xb2, + 0xc7, 0x03, 0xe6, 0xfe, 0xff, 0x00, 0xab, 0x1c, + 0x0f, 0x9b, 0xe8, 0xfb, 0xb1, 0xc0, 0xf9, 0xbe, + 0x8f, 0xbb, 0x1c, 0x0f, 0x9b, 0xe8, 0xfb, 0xb1, + 0xc0, 0xf9, 0xbe, 0x8f, 0xbb, 0x1c, 0x0f, 0x9b, + 0xe8, 0xfb, 0xb1, 0xc0, 0xf9, 0xbe, 0x8f, 0xbb, + 0x14, 0xa3, 0x7a, 0x91, 0x52, 0x85, 0x53, 0x8e, + 0xdb, 0x46, 0xfc, 0x19, 0x01, 0x25, 0xa0, 0x78, + 0x4d, 0x5a, 0x23, 0x6d, 0x73, 0x44, 0x71, 0x1b, + 0x26, 0xcd, 0x47, 0xc7, 0xa4, 0xc5, 0x7c, 0xf8, + 0x9d, 0x7d, 0x55, 0x65, 0xb1, 0x3d, 0xb8, 0xf4, + 0x9b, 0x7e, 0x93, 0x22, 0xa6, 0xdb, 0x8c, 0xce, + 0xa8, 0xd2, 0xe9, 0xa5, 0x1e, 0xa2, 0xfb, 0x2f, + 0x96, 0xa9, 0x0d, 0x9c, 0xa3, 0x7d, 0xd2, 0x24, + 0x7d, 0x79, 0xdc, 0x22, 0x45, 0x35, 0x5e, 0xf9, + 0x09, 0x0f, 0xbe, 0xc5, 0x2e, 0xf3, 0xad, 0xd2, + 0x69, 0x8c, 0x53, 0x58, 0x8f, 0x4c, 0x74, 0xa1, + 0x04, 0x96, 0xe9, 0xb5, 0x19, 0x30, 0xf7, 0xb5, + 0x2a, 0x5b, 0x72, 0xff, 0x00, 0x76, 0x08, 0x32, + 0x35, 0x8a, 0x34, 0x84, 0xb9, 0xaf, 0x7c, 0xd9, + 0xaa, 0xe7, 0xa4, 0x94, 0x80, 0x40, 0x46, 0x97, + 0x7c, 0xd5, 0xe9, 0x74, 0xfa, 0x75, 0x34, 0x69, + 0xb4, 0x59, 0xac, 0x52, 0xcd, 0xd7, 0xa2, 0x95, + 0x42, 0x1b, 0xd2, 0x9e, 0x19, 0x6e, 0x3c, 0xaf, + 0x0c, 0xdd, 0xe2, 0xc9, 0x45, 0x6e, 0x5b, 0x1a, + 0xde, 0x06, 0x9d, 0x63, 0x75, 0xde, 0x3c, 0x7a, + 0xd0, 0xcb, 0x49, 0x0d, 0x3e, 0xee, 0xad, 0xc2, + 0x72, 0xb4, 0x6f, 0x35, 0x4f, 0xaa, 0x25, 0x79, + 0xe4, 0x93, 0x39, 0x9a, 0xa4, 0x31, 0x95, 0x1d, + 0x65, 0x07, 0xee, 0x72, 0x1b, 0x61, 0x09, 0xb6, + 0xc4, 0x9a, 0x4d, 0x22, 0x00, 0x42, 0x6d, 0x20, + 0xb6, 0xde, 0x6d, 0xae, 0x81, 0x54, 0xa3, 0x5c, + 0x75, 0x5a, 0xbd, 0xcb, 0xd9, 0x39, 0x55, 0x0a, + 0x2d, 0x36, 0x6a, 0xd1, 0xbb, 0x18, 0x5d, 0x93, + 0x61, 0xe4, 0xa3, 0xd5, 0x5a, 0x05, 0x4d, 0x71, + 0xea, 0x45, 0xbf, 0xfd, 0xae, 0x4e, 0x89, 0x1b, + 0xfb, 0xc0, 0xc9, 0xa2, 0x75, 0xa0, 0x61, 0x1a, + 0x04, 0x77, 0x1b, 0x41, 0x97, 0x1e, 0x4d, 0x16, + 0x81, 0x48, 0x49, 0x74, 0x59, 0x73, 0x22, 0x4a, + 0x99, 0x2d, 0xe6, 0xed, 0xd0, 0x11, 0xa4, 0x42, + 0x61, 0xc4, 0x56, 0xe3, 0xc6, 0x8d, 0xa3, 0x31, + 0x44, 0x41, 0x25, 0xe6, 0x55, 0xde, 0x66, 0x04, + 0x6e, 0x22, 0x6b, 0x15, 0x2e, 0x07, 0xcd, 0xf4, + 0x7d, 0xd8, 0xe0, 0x7c, 0xdf, 0x47, 0xdd, 0x8e, + 0x07, 0xcd, 0xf4, 0x7d, 0xd8, 0xe0, 0x7c, 0xdf, + 0x47, 0xdd, 0x8e, 0x07, 0xcd, 0xf4, 0x7d, 0xd8, + 0xe0, 0x7c, 0xdf, 0x47, 0xdd, 0x8e, 0x07, 0xcd, + 0xf4, 0x7d, 0xd8, 0xb2, 0xe8, 0x92, 0x27, 0x5d, + 0x34, 0x31, 0x8e, 0xd2, 0x97, 0x0d, 0x52, 0x85, + 0x3d, 0xf2, 0xcb, 0xbd, 0x6a, 0x34, 0x19, 0x2d, + 0x49, 0x79, 0xc2, 0x5c, 0xb2, 0x4e, 0xf5, 0xbd, + 0x01, 0xff, 0x00, 0x39, 0xd3, 0x01, 0xfe, 0x17, + 0xf1, 0xba, 0xa2, 0x2a, 0x64, 0xa9, 0x9a, 0x2f, + 0x32, 0xa2, 0xf3, 0xa2, 0xa7, 0x89, 0x53, 0x0f, + 0x59, 0x36, 0xab, 0xee, 0x13, 0xae, 0x51, 0x62, + 0x6b, 0x35, 0x52, 0x2d, 0xde, 0xf5, 0x91, 0xcd, + 0x7c, 0x39, 0x03, 0x4e, 0x00, 0x0f, 0xc8, 0x22, + 0x89, 0xe2, 0x4c, 0x76, 0x87, 0x69, 0x74, 0x2b, + 0x1e, 0x96, 0x4f, 0xd7, 0xe3, 0xb4, 0x3b, 0x4b, + 0xa1, 0x58, 0xf4, 0xb2, 0x7e, 0xbf, 0x1d, 0xa1, + 0xda, 0x5d, 0x0a, 0xc7, 0xa5, 0x93, 0xf5, 0xf8, + 0xed, 0x0e, 0xd2, 0xe8, 0x56, 0x3d, 0x2c, 0x9f, + 0xaf, 0xc7, 0x68, 0x76, 0x97, 0x42, 0xb1, 0xe9, + 0x64, 0xfd, 0x7e, 0x3b, 0x43, 0xb4, 0xba, 0x15, + 0x8f, 0x4b, 0x27, 0xeb, 0xf1, 0xda, 0x1d, 0xa5, + 0xd0, 0xac, 0x7a, 0x59, 0x3f, 0x5f, 0x8e, 0xd0, + 0xed, 0x2e, 0x85, 0x63, 0xd2, 0xc9, 0xfa, 0xfc, + 0x76, 0x87, 0x69, 0x74, 0x2b, 0x1e, 0x96, 0x4f, + 0xd7, 0xe3, 0xb4, 0x3b, 0x4b, 0xa1, 0x58, 0xf4, + 0xb2, 0x7e, 0xbf, 0x1d, 0xa1, 0xda, 0x5d, 0x0a, + 0xc7, 0xa5, 0x93, 0xf5, 0xf8, 0xed, 0x0e, 0xd2, + 0xe8, 0x56, 0x3d, 0x2c, 0x9f, 0xaf, 0xc7, 0x68, + 0x76, 0x97, 0x42, 0xb1, 0xe9, 0x64, 0xfd, 0x7e, + 0x3b, 0x43, 0xb4, 0xba, 0x15, 0x8f, 0x4b, 0x27, + 0xeb, 0xf1, 0xda, 0x1d, 0xa5, 0xd0, 0xac, 0x7a, + 0x59, 0x3f, 0x5f, 0x8e, 0xd0, 0xed, 0x2e, 0x85, + 0x63, 0xd2, 0xc9, 0xfa, 0xfc, 0x76, 0x87, 0x69, + 0x74, 0x2b, 0x1e, 0x96, 0x4f, 0xd7, 0xe3, 0xb4, + 0x3b, 0x4b, 0xa1, 0x58, 0xf4, 0xb2, 0x7e, 0xbf, + 0x1d, 0xa1, 0xda, 0x5d, 0x0a, 0xc7, 0xa5, 0x93, + 0xf5, 0xf8, 0xed, 0x0e, 0xd2, 0xe8, 0x56, 0x3d, + 0x2c, 0x9f, 0xaf, 0xc5, 0x36, 0x8d, 0x4a, 0xa3, + 0x81, 0x85, 0x32, 0x0c, 0x78, 0x68, 0xe6, 0x5b, + 0xc5, 0x68, 0x7b, 0xf7, 0x32, 0xf0, 0x6b, 0x70, + 0x94, 0x9c, 0x24, 0x1c, 0xd7, 0x4a, 0x29, 0x2a, + 0x26, 0x6b, 0x92, 0x73, 0xaf, 0xfd, 0x47, 0xae, + 0x6b, 0x8a, 0x9f, 0x6a, 0xd1, 0x66, 0xd7, 0x2a, + 0x4a, 0x5c, 0x34, 0x30, 0x1c, 0x9b, 0x6f, 0x25, + 0x7a, 0x43, 0xee, 0x92, 0x36, 0xc4, 0x66, 0x50, + 0x95, 0x11, 0x5d, 0x79, 0xc2, 0x41, 0x4c, 0xd5, + 0x04, 0x07, 0x53, 0x86, 0xa8, 0x00, 0x4a, 0x93, + 0x7f, 0x08, 0x9b, 0xa8, 0xdf, 0x25, 0xa7, 0x50, + 0xed, 0xf8, 0xb1, 0xb3, 0x5d, 0x0d, 0x4d, 0x4a, + 0x8c, 0xf7, 0xf2, 0xcf, 0xbd, 0xd6, 0xfb, 0x13, + 0xa9, 0xcd, 0xaa, 0xe5, 0x96, 0x68, 0x31, 0xd1, + 0x33, 0xf0, 0x2e, 0x58, 0xe5, 0x0d, 0x7c, 0xf4, + 0x65, 0xa9, 0xea, 0x35, 0x7e, 0xbd, 0xc7, 0x28, + 0x6b, 0xe7, 0xa3, 0x2d, 0x4f, 0x51, 0xab, 0xf5, + 0xee, 0x39, 0x43, 0x5f, 0x3d, 0x19, 0x6a, 0x7a, + 0x8d, 0x5f, 0xaf, 0x71, 0xca, 0x1a, 0xf9, 0xe8, + 0xcb, 0x53, 0xd4, 0x6a, 0xfd, 0x7b, 0x8e, 0x50, + 0xd7, 0xcf, 0x46, 0x5a, 0x9e, 0xa3, 0x57, 0xeb, + 0xdc, 0x72, 0x86, 0xbe, 0x7a, 0x32, 0xd4, 0xf5, + 0x1a, 0xbf, 0x5e, 0xe3, 0x94, 0x35, 0xf3, 0xd1, + 0x96, 0xa7, 0xa8, 0xd5, 0xfa, 0xf7, 0x1c, 0xa1, + 0xaf, 0x9e, 0x8c, 0xb5, 0x3d, 0x46, 0xaf, 0xd7, + 0xb8, 0xe5, 0x0d, 0x7c, 0xf4, 0x65, 0xa9, 0xea, + 0x35, 0x7e, 0xbd, 0xc7, 0x28, 0x6b, 0xe7, 0xa3, + 0x2d, 0x4f, 0x51, 0xab, 0xf5, 0xee, 0x39, 0x43, + 0x5f, 0x3d, 0x19, 0x6a, 0x7a, 0x8d, 0x5f, 0xaf, + 0x71, 0xca, 0x1a, 0xf9, 0xe8, 0xcb, 0x53, 0xd4, + 0x6a, 0xfd, 0x7b, 0x8e, 0x50, 0xd7, 0xcf, 0x46, + 0x5a, 0x9e, 0xa3, 0x57, 0xeb, 0xdc, 0x72, 0x86, + 0xbe, 0x7a, 0x32, 0xd4, 0xf5, 0x1a, 0xbf, 0x5e, + 0xe3, 0x94, 0x35, 0xf3, 0xd1, 0x96, 0xa7, 0xa8, + 0xd5, 0xfa, 0xf7, 0x1c, 0xa1, 0xaf, 0x9e, 0x8c, + 0xb5, 0x3d, 0x46, 0xaf, 0xd7, 0xb8, 0xe5, 0x0d, + 0x7c, 0xf4, 0x65, 0xa9, 0xea, 0x35, 0x7e, 0xbd, + 0xc7, 0x28, 0x6b, 0xe7, 0xa3, 0x2d, 0x4f, 0x51, + 0xab, 0xf5, 0xee, 0x39, 0x43, 0x5f, 0x3d, 0x19, + 0x6a, 0x7a, 0x8d, 0x5f, 0xaf, 0x71, 0xca, 0x1a, + 0xf9, 0xe8, 0xcb, 0x53, 0xd4, 0x6a, 0xfd, 0x7b, + 0x8d, 0x9b, 0x6d, 0x79, 0x9b, 0xd6, 0x61, 0xd1, + 0xaa, 0x54, 0xf6, 0xe9, 0x75, 0x84, 0x64, 0xdf, + 0x8f, 0xc3, 0xbc, 0x4f, 0x43, 0x9c, 0xdb, 0x59, + 0x2b, 0xa8, 0xde, 0xf5, 0x11, 0xd6, 0x1f, 0x01, + 0x55, 0x35, 0x64, 0x89, 0xe1, 0x26, 0x80, 0x8c, + 0x5d, 0xcd, 0x14, 0x13, 0x17, 0xfe, 0xdc, 0x3b, + 0x5e, 0xaa, 0x48, 0xa2, 0x5b, 0x94, 0xe8, 0xb5, + 0x19, 0x50, 0x4d, 0x59, 0x9b, 0x3e, 0x79, 0xbb, + 0xc1, 0x37, 0x20, 0x53, 0xbf, 0x8e, 0xc3, 0x11, + 0xcd, 0xa7, 0x9f, 0x26, 0x4f, 0xbc, 0x79, 0xc2, + 0x7d, 0x90, 0x13, 0x12, 0x00, 0x47, 0x13, 0xbf, + 0x4e, 0x50, 0xd7, 0xcf, 0x46, 0x5a, 0x9e, 0xa3, + 0x57, 0xeb, 0xdc, 0x72, 0x86, 0xbe, 0x7a, 0x32, + 0xd4, 0xf5, 0x1a, 0xbf, 0x5e, 0xe3, 0x94, 0x35, + 0xf3, 0xd1, 0x96, 0xa7, 0xa8, 0xd5, 0xfa, 0xf7, + 0x1c, 0xa1, 0xaf, 0x9e, 0x8c, 0xb5, 0x3d, 0x46, + 0xaf, 0xd7, 0xb8, 0xe5, 0x0d, 0x7c, 0xf4, 0x65, + 0xa9, 0xea, 0x35, 0x7e, 0xbd, 0xc7, 0x28, 0x6b, + 0xe7, 0xa3, 0x2d, 0x4f, 0x51, 0xab, 0xf5, 0xee, + 0x39, 0x43, 0x5f, 0x3d, 0x19, 0x6a, 0x7a, 0x8d, + 0x5f, 0xaf, 0x71, 0xca, 0x1a, 0xf9, 0xe8, 0xcb, + 0x53, 0xd4, 0x6a, 0xfd, 0x7b, 0x8e, 0x50, 0xd7, + 0xcf, 0x46, 0x5a, 0x9e, 0xa3, 0x57, 0xeb, 0xdc, + 0x72, 0x86, 0xbe, 0x7a, 0x32, 0xd4, 0xf5, 0x1a, + 0xbf, 0x5e, 0xe3, 0x94, 0x35, 0xf3, 0xd1, 0x96, + 0xa7, 0xa8, 0xd5, 0xfa, 0xf7, 0x1c, 0xa1, 0xaf, + 0x9e, 0x8c, 0xb5, 0x3d, 0x46, 0xaf, 0xd7, 0xb8, + 0xe5, 0x0d, 0x7c, 0xf4, 0x65, 0xa9, 0xea, 0x35, + 0x7e, 0xbd, 0xc7, 0x28, 0x6b, 0xe7, 0xa3, 0x2d, + 0x4f, 0x51, 0xab, 0xf5, 0xee, 0x39, 0x43, 0x5f, + 0x3d, 0x19, 0x6a, 0x7a, 0x8d, 0x5f, 0xaf, 0x71, + 0xca, 0x1a, 0xf9, 0xe8, 0xcb, 0x53, 0xd4, 0x6a, + 0xfd, 0x7b, 0x8e, 0x50, 0xd7, 0xcf, 0x46, 0x5a, + 0x9e, 0xa3, 0x57, 0xeb, 0xdc, 0x72, 0x86, 0xbe, + 0x7a, 0x32, 0xd4, 0xf5, 0x1a, 0xbf, 0x5e, 0xe3, + 0x94, 0x35, 0xf3, 0xd1, 0x96, 0xa7, 0xa8, 0xd5, + 0xfa, 0xf7, 0x1c, 0xa1, 0xaf, 0x9e, 0x8c, 0xb5, + 0x3d, 0x46, 0xaf, 0xd7, 0xb8, 0x6b, 0xf0, 0x87, + 0xbd, 0x05, 0xc1, 0x57, 0xe9, 0x16, 0xc3, 0xad, + 0x22, 0xf7, 0xed, 0xb5, 0x1a, 0xaa, 0xc1, 0x92, + 0x78, 0x85, 0xd2, 0xab, 0x48, 0x10, 0x5f, 0x3a, + 0xb2, 0x7f, 0x26, 0x2c, 0x4b, 0xe2, 0x9f, 0x7d, + 0x52, 0x16, 0xa3, 0x0d, 0xa3, 0x89, 0x22, 0x3b, + 0xa9, 0x1e, 0xa1, 0x01, 0xd3, 0x17, 0x1c, 0x88, + 0xfa, 0x82, 0x18, 0xe9, 0x70, 0x50, 0x77, 0xd1, + 0xdd, 0x15, 0x55, 0x61, 0xed, 0x0d, 0xeb, 0xd2, + 0x68, 0x4d, 0x81, 0x81, 0x8a, 0x7e, 0xca, 0xbf, + 0x5e, 0xa6, 0xdb, 0x54, 0xa9, 0x75, 0x9a, 0xb3, + 0xca, 0xcc, 0x28, 0x82, 0x8a, 0x7a, 0x47, 0x5b, + 0xae, 0x99, 0x92, 0x03, 0x4c, 0xb0, 0xde, 0x68, + 0xae, 0x3c, 0xe9, 0xaa, 0x08, 0x0e, 0x68, 0x9e, + 0x12, 0x25, 0x10, 0x12, 0x24, 0x93, 0xf8, 0x48, + 0xa0, 0xba, 0x49, 0x0e, 0xce, 0x37, 0x98, 0xcd, + 0x74, 0x39, 0x2a, 0xb8, 0x91, 0x5e, 0x24, 0xcf, + 0x99, 0x49, 0x96, 0xa9, 0x53, 0x00, 0x55, 0x53, + 0x9d, 0x51, 0x1f, 0x2c, 0x97, 0x9b, 0x35, 0xc7, + 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, + 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, + 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, 0x4b, + 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, 0x4e, 0x4f, + 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, 0x29, + 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, 0x83, + 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, 0x43, + 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, 0x4b, 0x5f, + 0x39, 0x0f, 0xa8, 0x31, 0xca, 0x4e, 0x4f, 0x91, + 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, 0x29, 0x39, + 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, 0x83, 0x1c, + 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, 0x43, 0xea, + 0x0c, 0x72, 0x93, 0x93, 0xe4, 0x4b, 0x5f, 0x39, + 0x0f, 0xa8, 0x31, 0xca, 0x4e, 0x4f, 0x91, 0x2d, + 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, 0x29, 0x39, 0x3e, + 0x44, 0xb5, 0xf3, 0x90, 0xfa, 0x83, 0x1c, 0xa4, + 0xe4, 0xf9, 0x12, 0xd7, 0xce, 0x43, 0xea, 0x0c, + 0x72, 0x93, 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, + 0xa8, 0x31, 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, + 0xe4, 0x3e, 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, + 0xb5, 0xf3, 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, + 0xf9, 0x12, 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, + 0x93, 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, + 0x31, 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, + 0x3e, 0xa0, 0xc5, 0x85, 0xb5, 0xda, 0x3d, 0xed, + 0x2d, 0x69, 0x47, 0x0d, 0xea, 0x35, 0x5d, 0x41, + 0xc7, 0x58, 0x88, 0xf3, 0xc1, 0x21, 0x89, 0x6d, + 0xb4, 0x9a, 0xdc, 0x48, 0xb2, 0x84, 0x19, 0xd6, + 0xf3, 0x6d, 0xe6, 0xe1, 0xb0, 0x6c, 0xb6, 0x7b, + 0xb0, 0x71, 0xc0, 0xd6, 0x2d, 0x9a, 0x8e, 0x36, + 0xfd, 0xa9, 0x6c, 0xea, 0x70, 0x0a, 0xaa, 0x21, + 0xdc, 0xb0, 0xd0, 0xd1, 0x3c, 0x04, 0x29, 0x4c, + 0xac, 0x1a, 0x21, 0x78, 0xd1, 0x0c, 0x00, 0xbf, + 0xe9, 0x0a, 0x2f, 0xc5, 0x8e, 0x1f, 0xcd, 0xf4, + 0x63, 0x86, 0x55, 0xe6, 0x41, 0xcd, 0x57, 0x99, + 0x11, 0x13, 0x9d, 0x55, 0x7c, 0x08, 0x9f, 0x2a, + 0xe2, 0x54, 0x7d, 0x9e, 0xd9, 0x13, 0x69, 0xb6, + 0x95, 0x66, 0xd5, 0x6a, 0xb4, 0xfb, 0x91, 0x22, + 0x1d, 0xc5, 0x70, 0xbf, 0x29, 0xd1, 0x7e, 0x23, + 0xf3, 0x9b, 0x45, 0x70, 0xa0, 0xb0, 0xd3, 0x46, + 0xee, 0xe6, 0x38, 0x96, 0xa0, 0x08, 0xee, 0xc5, + 0x75, 0xb6, 0xd0, 0x54, 0x77, 0xf2, 0x75, 0xb8, + 0xe5, 0x3a, 0xc0, 0x6e, 0xe0, 0x9d, 0x5e, 0x93, + 0x47, 0xaa, 0x43, 0x81, 0x6a, 0x52, 0xa5, 0x10, + 0x37, 0x5d, 0xb8, 0x1c, 0x48, 0x2c, 0xa3, 0x4e, + 0xae, 0x71, 0x59, 0x75, 0x48, 0x53, 0x37, 0x90, + 0x54, 0x45, 0xc7, 0x09, 0x19, 0x15, 0xcc, 0x1c, + 0x51, 0x6c, 0x9e, 0x16, 0x51, 0xad, 0x94, 0x56, + 0xdd, 0xb8, 0x64, 0x5b, 0xdc, 0x55, 0x34, 0x5d, + 0x0a, 0x3b, 0x95, 0xc8, 0x73, 0xf7, 0xa6, 0x54, + 0xfa, 0x84, 0x11, 0x71, 0xa6, 0xdb, 0x36, 0x1f, + 0x06, 0xcb, 0x4e, 0xf5, 0x5d, 0x4e, 0xf8, 0xc5, + 0x00, 0x10, 0x49, 0x54, 0x95, 0x34, 0xa9, 0x0e, + 0xc5, 0xaa, 0x2e, 0x39, 0x13, 0x75, 0x72, 0xda, + 0xae, 0xc3, 0xa8, 0xb6, 0xa9, 0x4c, 0x9c, 0x15, + 0x0d, 0x4c, 0xd4, 0xa6, 0x21, 0x38, 0x8b, 0x06, + 0x0a, 0x0b, 0x6a, 0x52, 0x5d, 0x10, 0x68, 0xdc, + 0x32, 0x67, 0x58, 0x88, 0x8a, 0xa7, 0x39, 0x09, + 0xa0, 0xd1, 0xf6, 0x4d, 0x53, 0xaa, 0x44, 0x29, + 0x6f, 0x55, 0xa8, 0xb4, 0x91, 0x6e, 0xb5, 0x2a, + 0x82, 0xf0, 0x54, 0x9f, 0x26, 0x54, 0x6a, 0x11, + 0x9d, 0x58, 0xe8, 0xcb, 0x65, 0xbb, 0xd0, 0xfb, + 0x92, 0x24, 0xe4, 0xc4, 0x76, 0x9a, 0x25, 0x71, + 0xc2, 0x5c, 0xd0, 0x7e, 0x25, 0xa9, 0xec, 0x8a, + 0xb7, 0x4c, 0x81, 0x51, 0x96, 0xb3, 0xe8, 0xb3, + 0x25, 0x52, 0xdf, 0x65, 0xb9, 0x94, 0xa8, 0x52, + 0xd1, 0xe9, 0xec, 0xb3, 0x2d, 0xf5, 0x62, 0x14, + 0x87, 0x5b, 0xd0, 0x28, 0xc8, 0xcc, 0xe6, 0x75, + 0x86, 0xde, 0x56, 0xcc, 0x9b, 0x55, 0x5f, 0x08, + 0x18, 0xa5, 0x77, 0x65, 0x35, 0x3a, 0x1d, 0x2e, + 0x6d, 0x40, 0xaa, 0xd4, 0x39, 0xf2, 0x29, 0x49, + 0x14, 0xaa, 0xf4, 0xb8, 0x12, 0xb7, 0xd3, 0xe9, + 0xa3, 0x2f, 0x98, 0x0a, 0x43, 0x6a, 0x03, 0x92, + 0x21, 0x2a, 0x27, 0x3e, 0x9d, 0xe0, 0xea, 0x71, + 0xad, 0x62, 0x2b, 0x8d, 0x9e, 0x52, 0x69, 0x9d, + 0xa9, 0x5c, 0x95, 0x79, 0x16, 0x63, 0x57, 0x95, + 0x46, 0x15, 0x56, 0x0b, 0x11, 0x60, 0x6e, 0x5d, + 0x72, 0x4a, 0xb2, 0xfb, 0x4d, 0xa3, 0xbb, 0xa5, + 0x8f, 0x12, 0x6b, 0xa8, 0x0d, 0xea, 0x27, 0x8d, + 0x06, 0x39, 0x27, 0x32, 0xe6, 0xa2, 0x9d, 0xf2, + 0x5d, 0x16, 0x03, 0x35, 0xc7, 0xac, 0xd7, 0x28, + 0x96, 0xf3, 0x76, 0x85, 0x52, 0xe1, 0x6a, 0xa5, + 0xd9, 0x2a, 0x2c, 0x97, 0x4c, 0x58, 0x80, 0xc5, + 0x39, 0x59, 0x2e, 0xc8, 0x3a, 0x26, 0xd3, 0x6e, + 0x30, 0x28, 0xc9, 0x92, 0xba, 0x1c, 0x2b, 0x0e, + 0x38, 0xaa, 0xd2, 0x2b, 0x08, 0xee, 0xb2, 0x31, + 0xd9, 0x2d, 0x51, 0xda, 0xcd, 0x2e, 0x97, 0x1a, + 0xab, 0x46, 0x99, 0x16, 0xb5, 0x12, 0x6c, 0xaa, + 0x6d, 0x6a, 0x1b, 0xe5, 0x26, 0x99, 0x23, 0x80, + 0x14, 0x59, 0x4c, 0xa3, 0x8c, 0xb6, 0x65, 0xbc, + 0x6d, 0x48, 0x53, 0x99, 0x08, 0x17, 0x56, 0x68, + 0x4a, 0xa2, 0x62, 0x32, 0x2c, 0xf9, 0xb0, 0x6d, + 0x69, 0xd4, 0xe8, 0xf3, 0x6d, 0x2a, 0xa4, 0x23, + 0xba, 0xe9, 0x30, 0x9c, 0xab, 0x43, 0x69, 0xf9, + 0x55, 0x10, 0x9d, 0x39, 0x88, 0x08, 0x8c, 0xc5, + 0xa9, 0x82, 0xee, 0x3b, 0x1c, 0xc6, 0xf4, 0x52, + 0x4b, 0x28, 0xd9, 0x39, 0xbe, 0x47, 0xf2, 0x5c, + 0xfb, 0xd4, 0xab, 0xec, 0x7e, 0xab, 0x4a, 0x89, + 0x56, 0x78, 0x6b, 0x14, 0x1a, 0x84, 0xca, 0x33, + 0x0b, 0x36, 0x6d, 0x26, 0x1c, 0xa5, 0x2a, 0x93, + 0x54, 0xf1, 0xc8, 0x96, 0x69, 0xc6, 0x30, 0x13, + 0x69, 0xbd, 0xca, 0xef, 0x91, 0x1c, 0x41, 0xd4, + 0xda, 0x77, 0x8a, 0x44, 0xa2, 0x2b, 0x50, 0xd9, + 0x58, 0xd7, 0x22, 0xda, 0xef, 0x51, 0x64, 0x50, + 0x29, 0x2f, 0xcb, 0xb4, 0x20, 0x3c, 0x10, 0x24, + 0x48, 0x16, 0x27, 0x57, 0x2a, 0x8d, 0xa4, 0x97, + 0xe7, 0x3c, 0xcb, 0x08, 0x84, 0x66, 0xa2, 0xd3, + 0x90, 0x85, 0xf9, 0x2a, 0x9a, 0x07, 0x78, 0x1a, + 0xb2, 0x10, 0x55, 0xc5, 0xbd, 0xb2, 0xea, 0xb5, + 0x7e, 0x9e, 0x93, 0xf8, 0xea, 0x4d, 0x2b, 0x88, + 0x95, 0x26, 0x05, 0x2a, 0x2d, 0x52, 0x4a, 0x31, + 0x26, 0xaf, 0x36, 0x20, 0xbb, 0xbf, 0x8f, 0x0d, + 0xb4, 0x12, 0xd4, 0xad, 0xb8, 0xd1, 0xb6, 0xbe, + 0x12, 0xcc, 0x1d, 0x3d, 0x1b, 0xa6, 0xf5, 0x93, + 0x7b, 0x32, 0x9a, 0x96, 0xeb, 0xf7, 0x14, 0xea, + 0xb5, 0x22, 0x96, 0xdb, 0x0e, 0x55, 0x63, 0xac, + 0x19, 0xce, 0x9b, 0x73, 0x5c, 0x9b, 0x4a, 0x39, + 0x0d, 0xb9, 0x0a, 0x3a, 0x68, 0x56, 0x9f, 0x92, + 0xf1, 0x45, 0x77, 0x74, 0x0d, 0xb8, 0xbd, 0xea, + 0x6b, 0x5e, 0xf5, 0x09, 0x52, 0xa1, 0xb3, 0x89, + 0x14, 0xfa, 0x74, 0xca, 0x88, 0x56, 0x28, 0xd5, + 0x22, 0xa4, 0x76, 0x24, 0xea, 0xf0, 0xa0, 0xb8, + 0xfb, 0x87, 0x11, 0xba, 0xbe, 0x85, 0x8a, 0x41, + 0x24, 0xa3, 0x8c, 0x39, 0x82, 0x5a, 0xc5, 0x14, + 0xa2, 0x3e, 0xe8, 0xa6, 0x79, 0xe7, 0x8b, 0x97, + 0x66, 0x2c, 0x54, 0x2e, 0xbb, 0x91, 0x69, 0xd2, + 0x68, 0x56, 0xb5, 0x02, 0x94, 0x54, 0xa8, 0xe8, + 0xf5, 0x41, 0xe4, 0x87, 0x09, 0x25, 0xcb, 0xa7, + 0x45, 0x7f, 0x87, 0x67, 0x99, 0x53, 0x59, 0xa9, + 0x93, 0xa7, 0xa9, 0x45, 0x14, 0x8d, 0x10, 0x75, + 0x29, 0x2a, 0x0d, 0x7e, 0xdc, 0x99, 0x6e, 0xd5, + 0xe6, 0x51, 0xe7, 0x6e, 0x8a, 0x44, 0x37, 0x04, + 0x54, 0xd9, 0x5d, 0x4c, 0xba, 0x0e, 0x00, 0xba, + 0xcb, 0xcd, 0x12, 0xa0, 0xaa, 0x83, 0xad, 0x18, + 0x18, 0xea, 0x44, 0x24, 0xd5, 0x91, 0x22, 0x2a, + 0x2e, 0x38, 0x7f, 0x37, 0xd1, 0x8d, 0x91, 0xb4, + 0xa1, 0xb4, 0x6b, 0x69, 0x7c, 0x1f, 0x94, 0xaa, + 0x22, 0xfc, 0x5f, 0xf2, 0x15, 0x53, 0xc3, 0x84, + 0xc5, 0x79, 0x95, 0x3a, 0xe5, 0x68, 0x8b, 0x9d, + 0x4a, 0xaf, 0x52, 0x55, 0x55, 0xf0, 0xaf, 0xed, + 0xd7, 0xf1, 0xc3, 0xe3, 0x87, 0xc7, 0x0f, 0x8e, + 0x1f, 0x1c, 0x3e, 0x38, 0x7c, 0x70, 0xf8, 0xd9, + 0x9d, 0x87, 0x40, 0xb8, 0x20, 0x55, 0x26, 0xdc, + 0x62, 0xa8, 0x0f, 0xca, 0x62, 0x89, 0x42, 0x2e, + 0x22, 0x4c, 0x64, 0xec, 0xbb, 0xcc, 0x3c, 0xfa, + 0xaa, 0x70, 0xee, 0x36, 0x8f, 0x10, 0x8e, 0xe7, + 0x26, 0x9d, 0xd6, 0xdf, 0x87, 0xbc, 0x5c, 0xf1, + 0x48, 0xb1, 0x6b, 0x95, 0xc9, 0xb5, 0x6a, 0x75, + 0x3a, 0x38, 0x3b, 0x32, 0x8c, 0x84, 0xb2, 0xe3, + 0xb8, 0xe6, 0xe9, 0xd5, 0x50, 0x90, 0xb1, 0x48, + 0x1a, 0x45, 0x15, 0x42, 0x71, 0x1d, 0x45, 0xd4, + 0x24, 0x40, 0x22, 0x39, 0x92, 0x92, 0x22, 0x62, + 0xa1, 0xb3, 0x1b, 0xa6, 0x9d, 0x5a, 0xa6, 0x50, + 0x5e, 0x89, 0x1d, 0xc9, 0xd5, 0x80, 0x27, 0x20, + 0x94, 0x79, 0x4d, 0xb9, 0x15, 0xc1, 0x69, 0x08, + 0xa4, 0x6b, 0x7c, 0xb7, 0x7b, 0xbe, 0x19, 0xb0, + 0x57, 0x5e, 0xd4, 0x29, 0xf9, 0x35, 0x45, 0x6f, + 0x78, 0xab, 0x96, 0x2d, 0xbd, 0x9a, 0xa8, 0x5d, + 0x76, 0xec, 0x1b, 0x88, 0x20, 0xd4, 0xe8, 0x95, + 0xb6, 0xea, 0xc4, 0xcc, 0x8a, 0x45, 0x51, 0x64, + 0x44, 0x92, 0x54, 0xf8, 0x52, 0xc8, 0xc0, 0x26, + 0xc2, 0x36, 0x5c, 0x17, 0x23, 0xc9, 0x69, 0xbd, + 0xe0, 0x81, 0x22, 0x66, 0x9b, 0xb2, 0x22, 0xfc, + 0xa0, 0x25, 0x0b, 0x66, 0x17, 0x35, 0xcc, 0xc4, + 0xa9, 0xd4, 0x98, 0x91, 0xc6, 0x0b, 0x52, 0x1d, + 0x61, 0xa7, 0x66, 0xca, 0x48, 0xc9, 0x24, 0xdb, + 0x52, 0xd4, 0xdc, 0x5d, 0x42, 0x6a, 0xee, 0xef, + 0x24, 0x03, 0x32, 0xd0, 0xde, 0xb5, 0xd3, 0xbc, + 0x52, 0x17, 0x34, 0x50, 0xf6, 0x6f, 0x73, 0xdc, + 0x13, 0xaa, 0x54, 0xe8, 0x70, 0x41, 0x87, 0xe8, + 0xe6, 0xac, 0xd4, 0x4a, 0x7b, 0xa9, 0x19, 0x98, + 0xf2, 0x35, 0xa8, 0x24, 0x65, 0x71, 0x05, 0xcd, + 0x6f, 0x16, 0x93, 0x31, 0x46, 0x90, 0xc3, 0x76, + 0x3b, 0xc5, 0x34, 0x13, 0x69, 0x5c, 0xb9, 0x2c, + 0xda, 0xbd, 0xa9, 0x22, 0x2c, 0x4a, 0xcb, 0x6c, + 0x35, 0x22, 0x5c, 0x40, 0x98, 0x0d, 0xb2, 0xf8, + 0xbe, 0xad, 0xb6, 0x44, 0x41, 0xa1, 0xd2, 0x04, + 0xd0, 0x8e, 0x89, 0x09, 0x09, 0x20, 0x13, 0x81, + 0xcd, 0x98, 0xb8, 0x49, 0xcf, 0x8e, 0x1f, 0x1c, + 0x3e, 0x38, 0x7c, 0x70, 0xf8, 0xe1, 0xf1, 0xc3, + 0xe3, 0x87, 0xc7, 0xe0, 0xec, 0x0a, 0xdb, 0xf7, + 0x7a, 0x67, 0xcc, 0xac, 0xd0, 0x57, 0x2f, 0x8b, + 0x34, 0x3a, 0xca, 0x67, 0xf2, 0xe4, 0xbf, 0xb3, + 0xfc, 0x20, 0x75, 0xad, 0xab, 0x48, 0x6c, 0x55, + 0x50, 0x5c, 0xb8, 0x5a, 0x43, 0x4f, 0x88, 0x90, + 0x69, 0xd5, 0x13, 0x44, 0x5f, 0x90, 0x85, 0x0b, + 0xe5, 0x4c, 0x70, 0xdf, 0x27, 0xea, 0xfb, 0xb1, + 0xc3, 0x7c, 0x9f, 0xab, 0xee, 0xc5, 0x2a, 0xc9, + 0xb4, 0xa0, 0xd0, 0xa9, 0x75, 0xcb, 0xe2, 0xb1, + 0x55, 0x87, 0xd9, 0xe2, 0x79, 0x69, 0x34, 0xea, + 0x1b, 0x31, 0x8a, 0x4a, 0x45, 0x60, 0xc4, 0x0e, + 0x74, 0xb7, 0x64, 0xb1, 0x28, 0x37, 0x4a, 0xa4, + 0x9f, 0x92, 0x06, 0x80, 0xc5, 0x0d, 0xb5, 0x43, + 0x74, 0x95, 0xc6, 0x9a, 0xad, 0x58, 0x92, 0x23, + 0x5c, 0xfd, 0xae, 0xdb, 0xcf, 0x0d, 0xc8, 0xb2, + 0x5b, 0x62, 0x4d, 0x3d, 0xc8, 0x5b, 0x92, 0x70, + 0xe3, 0x4a, 0x0d, 0xeb, 0x7c, 0x62, 0x09, 0xee, + 0xa1, 0x38, 0xc8, 0x2a, 0x13, 0xe5, 0x24, 0xd8, + 0x6c, 0x5a, 0x56, 0xe5, 0x16, 0xe9, 0x97, 0x87, + 0x29, 0x56, 0x25, 0xd1, 0x06, 0xaf, 0x0e, 0x85, + 0x2e, 0x8c, 0xfc, 0x7a, 0xad, 0x45, 0x72, 0x83, + 0x18, 0xdc, 0x89, 0xa2, 0x5a, 0xe9, 0xd4, 0xbb, + 0x89, 0x88, 0xfa, 0xc0, 0x3d, 0x09, 0xfb, 0xae, + 0x52, 0xbf, 0x24, 0x59, 0x03, 0xba, 0x0d, 0x50, + 0x55, 0xdd, 0x9d, 0x5d, 0xd1, 0xc6, 0x9c, 0xe4, + 0x9a, 0x14, 0x98, 0xed, 0x55, 0x67, 0x33, 0x4d, + 0x84, 0xe3, 0x87, 0x13, 0x27, 0x26, 0x48, 0x75, + 0x59, 0x65, 0xa3, 0x44, 0x90, 0xa5, 0x19, 0x1d, + 0x34, 0x54, 0x69, 0xd9, 0x48, 0xc3, 0x2e, 0x26, + 0x44, 0x0e, 0xa8, 0x90, 0xaa, 0xdc, 0x3b, 0x23, + 0xb8, 0xa9, 0xd5, 0xd7, 0xa9, 0x34, 0x68, 0x12, + 0x2b, 0x0c, 0xb7, 0x09, 0x99, 0x8c, 0xca, 0xde, + 0x53, 0x99, 0x72, 0x53, 0x48, 0xdc, 0x76, 0xe6, + 0x3e, 0x11, 0x96, 0x52, 0x1b, 0x60, 0xdc, 0xf7, + 0x49, 0x96, 0xd8, 0x2d, 0x4f, 0xe8, 0x41, 0x2c, + 0xdd, 0x04, 0x57, 0x96, 0x16, 0xce, 0x2f, 0x1a, + 0x8c, 0xaa, 0x84, 0x38, 0x54, 0x17, 0xe4, 0x3f, + 0x4a, 0x7c, 0xa2, 0xd4, 0x10, 0x5f, 0xa7, 0x8b, + 0x31, 0xe4, 0x8e, 0x5a, 0xa3, 0xf1, 0x4e, 0x4a, + 0x08, 0x8f, 0xbc, 0x28, 0xa8, 0xa4, 0xd4, 0x67, + 0xde, 0x31, 0x15, 0x42, 0x54, 0x41, 0x54, 0x55, + 0x81, 0x67, 0x30, 0xed, 0xaf, 0x78, 0xd5, 0xaa, + 0x09, 0x3e, 0x2d, 0x56, 0xdb, 0x93, 0x47, 0x8e, + 0xcc, 0x35, 0x46, 0xd9, 0x6d, 0x0e, 0x74, 0xc2, + 0x8d, 0x28, 0x27, 0x30, 0xf4, 0x62, 0x91, 0xbc, + 0x69, 0x07, 0xf2, 0x62, 0xdb, 0xd1, 0xf4, 0x1e, + 0x7b, 0xc4, 0x71, 0x3b, 0xdc, 0x5a, 0xd6, 0x95, + 0x9f, 0x2a, 0xd7, 0xa8, 0xdc, 0x97, 0x5c, 0xba, + 0xfc, 0x76, 0xe2, 0x56, 0x5a, 0xa5, 0xb6, 0x34, + 0x45, 0xa7, 0xf7, 0xc8, 0xf4, 0x56, 0xdf, 0x02, + 0x36, 0xa6, 0x41, 0x90, 0x4a, 0x5a, 0x95, 0xc4, + 0x52, 0x17, 0x44, 0x74, 0xe9, 0x4d, 0xde, 0x79, + 0xaa, 0xdc, 0x9b, 0x3d, 0x61, 0xb7, 0xed, 0xb7, + 0x6c, 0xc7, 0x2a, 0x35, 0xb8, 0x37, 0x5c, 0x77, + 0x5c, 0xa5, 0xc6, 0x96, 0xcb, 0x23, 0x53, 0x69, + 0xd8, 0xda, 0x06, 0x4b, 0x72, 0x49, 0xb0, 0x8f, + 0x1d, 0x5b, 0x05, 0x53, 0x74, 0xa4, 0xab, 0x71, + 0xd8, 0x8e, 0xd0, 0x1a, 0xba, 0x64, 0xd3, 0x4b, + 0x29, 0xce, 0xe7, 0xb7, 0x72, 0x55, 0xce, 0x82, + 0xb4, 0x29, 0x09, 0x57, 0x08, 0x8b, 0x3f, 0x83, + 0x27, 0x21, 0x8e, 0xf2, 0x18, 0xe8, 0xd5, 0x22, + 0x3c, 0x85, 0x90, 0x91, 0x25, 0x02, 0x11, 0xa3, + 0x6b, 0xc3, 0x48, 0x78, 0x91, 0xe4, 0x36, 0x34, + 0xef, 0x9a, 0x74, 0x02, 0x5d, 0x91, 0x3a, 0x05, + 0x05, 0x22, 0x4c, 0xb5, 0xe5, 0xb3, 0x71, 0x95, + 0xcf, 0x16, 0x98, 0x95, 0x35, 0xa9, 0xc1, 0x38, + 0xd9, 0x4d, 0xa7, 0x31, 0x22, 0x2d, 0x18, 0xa2, + 0x37, 0x53, 0x36, 0xc6, 0x53, 0xbb, 0xf6, 0xa5, + 0x71, 0x25, 0x19, 0x00, 0x1b, 0x71, 0x1a, 0x76, + 0x50, 0x12, 0x2b, 0x69, 0x55, 0xd9, 0xed, 0xdd, + 0x45, 0xa7, 0xbb, 0x55, 0xaa, 0x50, 0x65, 0x44, + 0x80, 0xc3, 0xe5, 0x1d, 0xe9, 0x24, 0x71, 0x1d, + 0x16, 0x9d, 0x47, 0x4d, 0x84, 0x57, 0x1b, 0x62, + 0x43, 0xaf, 0x04, 0x73, 0x78, 0x37, 0x6d, 0x4b, + 0x56, 0xd2, 0x23, 0xca, 0x6c, 0xab, 0x2f, 0x98, + 0xc8, 0x61, 0x5c, 0xb8, 0xb6, 0x57, 0x54, 0x8c, + 0x91, 0x65, 0xdb, 0x74, 0xda, 0xa5, 0x4a, 0x98, + 0x96, 0xdd, 0x3a, 0xb1, 0x52, 0x94, 0xfb, 0x90, + 0x89, 0x59, 0x95, 0x24, 0x25, 0x3b, 0x25, 0x98, + 0xa2, 0x21, 0x0d, 0xc9, 0x00, 0xd3, 0x2c, 0xb6, + 0x63, 0x1a, 0x3b, 0x32, 0xe5, 0x02, 0x1a, 0x6b, + 0x23, 0x57, 0x5a, 0x45, 0xa5, 0xd9, 0x17, 0x2d, + 0x6a, 0x04, 0xaa, 0xa5, 0x2a, 0x8d, 0x2a, 0x74, + 0x08, 0x5a, 0xf8, 0x89, 0x0d, 0x6e, 0x51, 0x33, + 0x6c, 0x37, 0x8e, 0x03, 0x0d, 0x38, 0xe0, 0x3f, + 0x31, 0xc0, 0x0e, 0x72, 0x6a, 0x1b, 0x52, 0x1d, + 0x4d, 0x40, 0x3a, 0x35, 0x18, 0x21, 0x46, 0xb0, + 0xae, 0x99, 0x94, 0x8e, 0xcf, 0x46, 0xa3, 0xb8, + 0xf5, 0x1d, 0x18, 0x95, 0x27, 0x8e, 0x49, 0x10, + 0x04, 0x37, 0x30, 0x9c, 0x36, 0x64, 0x96, 0xe8, + 0xe5, 0x0c, 0x8d, 0x4d, 0xb8, 0xd9, 0x8a, 0x35, + 0xb9, 0xdf, 0x3d, 0xa5, 0x55, 0x86, 0xdc, 0x4e, + 0x7c, 0x48, 0xd9, 0xe5, 0xcf, 0x4b, 0x1a, 0x7c, + 0xba, 0xd5, 0x16, 0x54, 0x1a, 0x6c, 0xc9, 0x70, + 0xe3, 0x14, 0x8d, 0xe4, 0x33, 0x36, 0xb8, 0xb3, + 0x04, 0x04, 0x79, 0xa6, 0x9e, 0x7d, 0xe8, 0x6e, + 0x10, 0x96, 0x40, 0x93, 0x18, 0x6b, 0x27, 0x72, + 0x68, 0x87, 0x79, 0xf9, 0x3c, 0x56, 0x36, 0x5d, + 0x58, 0x3b, 0xa6, 0xbd, 0x44, 0xb4, 0xa9, 0xd3, + 0xea, 0xd0, 0xa8, 0xce, 0xc4, 0x6d, 0x64, 0x4a, + 0x7e, 0x9e, 0xd1, 0xa7, 0x13, 0x0a, 0x3c, 0x8d, + 0x2e, 0xc9, 0x7b, 0xb1, 0xd1, 0x1c, 0x77, 0x5b, + 0xa7, 0x93, 0x6c, 0x8a, 0x18, 0xb4, 0x82, 0xa6, + 0x19, 0x77, 0xe5, 0x26, 0x9b, 0x22, 0x14, 0x87, + 0xe2, 0x4b, 0x60, 0xe3, 0x4a, 0x8c, 0xe9, 0xb3, + 0x21, 0x87, 0x83, 0x43, 0xac, 0xba, 0xda, 0xe9, + 0x36, 0xcc, 0x55, 0x39, 0x88, 0x55, 0x32, 0x5c, + 0x70, 0xdf, 0x27, 0xea, 0xfb, 0xb1, 0xb3, 0xe6, + 0xc9, 0xab, 0xde, 0xd5, 0x30, 0x55, 0x15, 0xec, + 0xe5, 0x3d, 0x33, 0x1e, 0x65, 0xd2, 0x6f, 0x88, + 0x12, 0x67, 0xcd, 0xcc, 0x42, 0x4a, 0x2b, 0xe3, + 0x45, 0x54, 0xfc, 0x5b, 0x6d, 0x60, 0x9f, 0xb5, + 0x20, 0x64, 0x2a, 0xa8, 0xdd, 0xc1, 0x11, 0xc3, + 0xcb, 0xf8, 0x23, 0xd8, 0xfa, 0xab, 0x68, 0xab, + 0xe6, 0xd6, 0xe0, 0x8f, 0xca, 0x49, 0x8e, 0x0b, + 0xcd, 0xfd, 0xff, 0x00, 0x56, 0x38, 0x25, 0xf8, + 0xb3, 0x45, 0xf8, 0x95, 0x3c, 0x28, 0xbe, 0x34, + 0xe6, 0xf8, 0xb1, 0x29, 0xdb, 0x16, 0xea, 0x9d, + 0x4e, 0xb9, 0xab, 0xf5, 0x49, 0x34, 0xf9, 0xec, + 0x46, 0x8a, 0xdd, 0x62, 0x86, 0x94, 0xe9, 0x12, + 0x9b, 0xa9, 0x3d, 0x04, 0x13, 0x2e, 0x1a, 0x53, + 0x48, 0xad, 0xb4, 0xc4, 0xac, 0x90, 0x14, 0x5e, + 0x52, 0x25, 0x0e, 0xf4, 0xd5, 0x9f, 0x87, 0x8a, + 0x74, 0xfb, 0x5a, 0xa5, 0x4b, 0xb8, 0xed, 0x99, + 0xa4, 0xf5, 0xb3, 0x4b, 0xa8, 0x56, 0x82, 0xb3, + 0x47, 0x90, 0xcc, 0x77, 0xaa, 0x2d, 0xc4, 0x46, + 0x90, 0x5b, 0x08, 0xd2, 0x9a, 0x42, 0x72, 0x43, + 0x8a, 0xa0, 0xd8, 0x96, 0x42, 0xe6, 0xed, 0x1c, + 0x74, 0x85, 0xb3, 0x65, 0xb6, 0x9b, 0x15, 0xed, + 0x8e, 0x80, 0xcc, 0xd7, 0x61, 0x44, 0x96, 0xf7, + 0x62, 0xe9, 0x56, 0x05, 0x4a, 0xd9, 0xa7, 0x4f, + 0x90, 0xc4, 0x8d, 0xed, 0x46, 0x73, 0xea, 0xc2, + 0x8a, 0xa3, 0x60, 0xd1, 0xb8, 0xc0, 0x3a, 0xa1, + 0xf9, 0x2d, 0xe8, 0xb4, 0xdb, 0x68, 0x8a, 0x8b, + 0xbb, 0x4d, 0x23, 0x88, 0x15, 0x8a, 0x43, 0x11, + 0xf6, 0x5e, 0xdb, 0x93, 0x10, 0x56, 0xdd, 0x9f, + 0x57, 0x7e, 0xac, 0x9b, 0x89, 0x4b, 0xc2, 0x04, + 0xa9, 0x8c, 0x3a, 0xc9, 0x2e, 0x4c, 0x2a, 0x3d, + 0xac, 0x00, 0x97, 0x28, 0xfb, 0xe5, 0x1f, 0x01, + 0x69, 0x55, 0xcb, 0x15, 0x4a, 0xd5, 0x22, 0x44, + 0x08, 0xd1, 0xd9, 0x9b, 0xa8, 0x83, 0x69, 0xf3, + 0x6e, 0x27, 0x03, 0x71, 0x29, 0x13, 0xb1, 0x4e, + 0x4b, 0x90, 0xe3, 0x53, 0x17, 0x53, 0x08, 0x8a, + 0x8a, 0x0e, 0x21, 0x23, 0x3c, 0xf2, 0x53, 0x56, + 0x4a, 0xca, 0x16, 0x68, 0x93, 0x2b, 0xd4, 0x37, + 0xaa, 0x1b, 0x4c, 0x7f, 0x8d, 0x70, 0xd9, 0xb8, + 0x1a, 0xa2, 0x8d, 0x31, 0x59, 0x6a, 0x4b, 0x4f, + 0x4c, 0x48, 0x8a, 0x8b, 0x20, 0x58, 0x37, 0x23, + 0x12, 0x45, 0x74, 0x11, 0x15, 0x1b, 0x72, 0x53, + 0x60, 0x08, 0xe6, 0x92, 0x41, 0x70, 0x51, 0x53, + 0x17, 0x0d, 0xc5, 0x6d, 0xcf, 0xb6, 0xaa, 0x11, + 0x64, 0x56, 0x1c, 0xb9, 0xe5, 0x3f, 0x1d, 0x96, + 0xa8, 0xad, 0xd4, 0xe8, 0x6d, 0xb1, 0x5c, 0xa4, + 0xb9, 0x93, 0x5b, 0xc5, 0x91, 0x57, 0x65, 0xa8, + 0xd1, 0x1f, 0x11, 0x26, 0xb7, 0x86, 0x4c, 0xb2, + 0x2f, 0x9b, 0x84, 0xa8, 0x6e, 0xc9, 0x05, 0xcc, + 0x2d, 0xba, 0xef, 0x60, 0x6c, 0xdb, 0x8a, 0x1c, + 0x3a, 0x93, 0xd4, 0xfa, 0xdc, 0xba, 0x9c, 0x07, + 0xe1, 0x23, 0x02, 0xf8, 0xba, 0x6c, 0x36, 0x8d, + 0x04, 0x85, 0x17, 0xc1, 0xa5, 0x64, 0x13, 0x4a, + 0x1a, 0x28, 0xb8, 0xe0, 0x11, 0x26, 0x79, 0x22, + 0xe6, 0x99, 0xda, 0x97, 0x3b, 0xf1, 0xae, 0x80, + 0xaa, 0xdc, 0x93, 0xa6, 0x4c, 0x6e, 0x4c, 0x09, + 0x34, 0xa7, 0xe6, 0xbf, 0xfb, 0x75, 0xd8, 0x8c, + 0x49, 0x0d, 0x20, 0xe8, 0x32, 0xe8, 0xba, 0x04, + 0xdb, 0x47, 0x91, 0x38, 0xce, 0xe5, 0xd1, 0x30, + 0x27, 0x33, 0x65, 0xd2, 0x25, 0x12, 0x8b, 0x74, + 0xd1, 0x21, 0x56, 0xe8, 0x40, 0x57, 0x13, 0xb5, + 0x18, 0x34, 0xe8, 0x55, 0x92, 0x7a, 0x72, 0x50, + 0xe2, 0xd2, 0x69, 0xed, 0x4a, 0x9d, 0x1f, 0x74, + 0xcb, 0x70, 0x69, 0xf4, 0xda, 0x53, 0x33, 0x41, + 0x4f, 0xc3, 0x20, 0x9e, 0x76, 0x43, 0x4a, 0x7a, + 0x08, 0x32, 0xe7, 0x51, 0xb6, 0xe5, 0xc0, 0x66, + 0xd3, 0x6e, 0x86, 0x6f, 0xe9, 0xa9, 0x3f, 0x7b, + 0xd1, 0x6a, 0x0d, 0x45, 0xdd, 0x3d, 0x99, 0x46, + 0x68, 0xa9, 0xed, 0x93, 0xbb, 0xd4, 0x69, 0x58, + 0x4c, 0x89, 0xb2, 0x4d, 0x24, 0xea, 0x39, 0xde, + 0xe7, 0xa7, 0x2c, 0xb3, 0xb8, 0x5f, 0xb5, 0xe8, + 0x55, 0xdb, 0xd2, 0xae, 0xd5, 0x4a, 0x54, 0x8a, + 0xed, 0x4a, 0x04, 0xca, 0x3a, 0x51, 0x4a, 0x13, + 0xa8, 0x0c, 0xc9, 0x99, 0x1d, 0xa6, 0x5c, 0x94, + 0x53, 0x57, 0x36, 0x1e, 0x8d, 0x90, 0x83, 0xc2, + 0xd6, 0x60, 0x62, 0x39, 0x86, 0x46, 0x59, 0x65, + 0x0a, 0xbd, 0x45, 0x66, 0xe9, 0xb0, 0xaa, 0x0e, + 0x4e, 0xca, 0x0d, 0x0e, 0xd6, 0x8f, 0x4f, 0x9c, + 0xef, 0x0f, 0x2d, 0x52, 0x34, 0xd1, 0x66, 0xa2, + 0x2e, 0x35, 0xbb, 0x48, 0xea, 0xe3, 0x8b, 0x9b, + 0xcc, 0x8a, 0x9b, 0x20, 0xe3, 0x6b, 0x9a, 0x64, + 0xe2, 0xa0, 0xaa, 0xa5, 0x0a, 0xe8, 0xa2, 0x76, + 0x22, 0x14, 0x49, 0x75, 0x97, 0x28, 0x92, 0x28, + 0x75, 0x4a, 0xa4, 0x96, 0xc9, 0xaa, 0x14, 0x4a, + 0xab, 0xd5, 0x28, 0xb2, 0xe4, 0xbd, 0x29, 0x92, + 0xa7, 0xbf, 0x3a, 0x0c, 0xd1, 0xa6, 0xcc, 0x13, + 0xd0, 0x8a, 0xe9, 0xb6, 0xda, 0x67, 0x96, 0xb0, + 0x24, 0x51, 0x38, 0xf7, 0x05, 0x6a, 0x9b, 0x57, + 0xb6, 0x68, 0xf1, 0x49, 0xf7, 0xa4, 0x4b, 0x6e, + 0xe8, 0xab, 0x55, 0x67, 0xc5, 0x71, 0xbd, 0xdc, + 0x9e, 0x12, 0x5c, 0x99, 0x4e, 0x01, 0xb8, 0xeb, + 0x11, 0x23, 0x40, 0x57, 0x9d, 0x69, 0xc4, 0xd5, + 0xc2, 0x88, 0x08, 0x19, 0xf3, 0x34, 0x08, 0x8a, + 0x89, 0x5a, 0xaf, 0xdb, 0x8e, 0x51, 0x2e, 0x8a, + 0x7d, 0x3e, 0xaf, 0x1f, 0x84, 0xa9, 0xb3, 0x48, + 0x5a, 0x35, 0x1a, 0x2d, 0x22, 0x44, 0x06, 0x20, + 0x0c, 0x39, 0x31, 0xde, 0x94, 0x0f, 0xa8, 0x44, + 0x06, 0xdd, 0x9e, 0xfe, 0x4a, 0x86, 0xf9, 0x13, + 0x88, 0x6d, 0xc6, 0x68, 0x16, 0x46, 0x48, 0xd3, + 0x62, 0x37, 0x55, 0x11, 0x6e, 0x7b, 0x8e, 0x74, + 0x5b, 0xa2, 0x5d, 0x29, 0xa9, 0xe7, 0x4a, 0x36, + 0xdd, 0x3a, 0x51, 0x54, 0xe8, 0x75, 0x38, 0xd1, + 0xa0, 0xc7, 0x62, 0x44, 0x59, 0x94, 0xd7, 0x22, + 0x37, 0x52, 0x6e, 0x46, 0xb0, 0x75, 0x95, 0x90, + 0xcc, 0x98, 0xba, 0xe3, 0x9a, 0x88, 0x92, 0x28, + 0x09, 0x1d, 0xe8, 0x54, 0x7a, 0x9d, 0xc5, 0x3a, + 0x5d, 0x06, 0x33, 0x71, 0xa9, 0xc6, 0x8c, 0x88, + 0x23, 0x31, 0xb8, 0x46, 0x5d, 0x75, 0xb6, 0x84, + 0x1e, 0x90, 0xd4, 0x5c, 0xbf, 0x20, 0xdb, 0xc6, + 0x2a, 0x62, 0x0a, 0x82, 0x4b, 0xf0, 0xcc, 0x50, + 0xc8, 0xb1, 0xc1, 0x79, 0xbf, 0xbf, 0xea, 0xc6, + 0xcb, 0xe2, 0x28, 0x5f, 0x96, 0xf9, 0xe4, 0xbd, + 0xe1, 0xd4, 0x95, 0x79, 0xbc, 0x19, 0xd1, 0xaa, + 0x23, 0x9f, 0x83, 0xc6, 0x48, 0x9f, 0xef, 0xc2, + 0x62, 0xb3, 0x09, 0x7b, 0x31, 0x56, 0xef, 0x7f, + 0xe5, 0x3a, 0x87, 0xf4, 0xb7, 0xb1, 0xc1, 0x79, + 0xb1, 0xc1, 0x79, 0xb1, 0xc1, 0x79, 0xb1, 0xc1, + 0x79, 0xb1, 0xc1, 0x79, 0xb1, 0xc1, 0x79, 0xb1, + 0xc1, 0x7f, 0x27, 0x03, 0x5a, 0xb3, 0x2d, 0xca, + 0x25, 0xab, 0x43, 0x95, 0x11, 0xfa, 0xf3, 0xf4, + 0xb0, 0x66, 0xbc, 0xb2, 0x28, 0xb5, 0x30, 0x46, + 0x23, 0x56, 0x5e, 0x71, 0xc7, 0x4f, 0x7a, 0xe4, + 0x59, 0xad, 0x0b, 0xd2, 0x18, 0x35, 0x20, 0x16, + 0x9d, 0xde, 0x6e, 0xd9, 0xdd, 0xa2, 0x8e, 0x47, + 0xcf, 0x39, 0xfa, 0x1c, 0x6a, 0xad, 0xff, 0x00, + 0x54, 0xa6, 0x55, 0xa9, 0xa2, 0xdd, 0xcb, 0x67, + 0xf1, 0x31, 0x81, 0xb9, 0xf1, 0x37, 0xa9, 0x54, + 0x90, 0x06, 0x32, 0x61, 0x20, 0x0b, 0xba, 0xf8, + 0xd7, 0x1c, 0x1e, 0x20, 0xe3, 0xe5, 0xbe, 0xd7, + 0x20, 0x93, 0x47, 0x36, 0x29, 0xae, 0x5b, 0xb2, + 0x23, 0xec, 0xca, 0x3d, 0x5a, 0x74, 0x12, 0x66, + 0x97, 0x0a, 0xb0, 0x2f, 0xb4, 0xe4, 0xc1, 0x40, + 0x85, 0x33, 0x78, 0xa5, 0x4c, 0x0a, 0x96, 0xe9, + 0xd4, 0x76, 0x1c, 0x7d, 0x62, 0xd2, 0x8e, 0xf3, + 0x74, 0x1a, 0x04, 0x10, 0xbf, 0x21, 0xaf, 0x28, + 0x95, 0x2a, 0x5b, 0x13, 0xec, 0x14, 0x93, 0x57, + 0xb6, 0x04, 0xe9, 0x32, 0x6e, 0xa1, 0x9d, 0xd8, + 0xa9, 0x50, 0xe3, 0x52, 0xe9, 0xe1, 0x32, 0x03, + 0xbc, 0x0b, 0x2d, 0x29, 0x1b, 0x79, 0xc7, 0x46, + 0xc9, 0xb8, 0xe1, 0x28, 0xd5, 0xce, 0x22, 0x40, + 0x92, 0x39, 0x21, 0xf9, 0x2a, 0x46, 0x71, 0x63, + 0x51, 0xee, 0x5a, 0x0d, 0xb3, 0x11, 0xcb, 0x9a, + 0x05, 0xbe, 0xfd, 0xab, 0x3e, 0x6b, 0x92, 0x18, + 0x9c, 0xfa, 0x47, 0x49, 0x0d, 0xc8, 0x9e, 0x73, + 0x1b, 0x9d, 0x4e, 0x22, 0x70, 0x45, 0xf9, 0x28, + 0x1d, 0xef, 0x79, 0xa8, 0x91, 0xc2, 0x2c, 0xf7, + 0x62, 0x4d, 0xa3, 0xb3, 0xea, 0x54, 0x2b, 0xcd, + 0xab, 0xde, 0x92, 0x35, 0x68, 0x74, 0x24, 0xa9, + 0x54, 0xa9, 0x73, 0x61, 0xce, 0xa9, 0x97, 0x0b, + 0x16, 0xa5, 0x1e, 0x99, 0x1e, 0x2c, 0x43, 0x47, + 0xdc, 0x35, 0x6f, 0xbe, 0x75, 0x63, 0xa3, 0xed, + 0xb0, 0x49, 0xbf, 0x50, 0x26, 0xcb, 0x74, 0x5b, + 0xb7, 0xb7, 0x7b, 0x52, 0x8a, 0xd9, 0x3f, 0x6a, + 0x23, 0x32, 0x0e, 0x6b, 0x4d, 0xda, 0x94, 0xe6, + 0xdb, 0x98, 0xe2, 0x10, 0x9c, 0xb6, 0xc7, 0x52, + 0x04, 0x93, 0x13, 0xef, 0xc4, 0xdf, 0x1c, 0x9d, + 0x21, 0x3e, 0xf9, 0x14, 0x97, 0x57, 0x3e, 0x38, + 0x2f, 0x36, 0x38, 0x2f, 0x36, 0x38, 0x2f, 0x36, + 0x38, 0x2f, 0x36, 0x38, 0x2f, 0x36, 0x38, 0x2f, + 0x36, 0x38, 0x2f, 0x36, 0x36, 0x10, 0xc2, 0xb2, + 0xfd, 0xd2, 0xb9, 0x78, 0x5a, 0xa2, 0xa7, 0x9b, + 0xe1, 0xd5, 0xbf, 0x67, 0xb7, 0x46, 0x77, 0xd6, + 0xe5, 0x1c, 0x72, 0xcf, 0x2a, 0xf0, 0x2f, 0xfd, + 0x9b, 0x51, 0x4f, 0xfc, 0x71, 0xc0, 0xf9, 0xbe, + 0x8f, 0xbb, 0x1c, 0x0f, 0x9b, 0xe8, 0xfb, 0xb0, + 0x56, 0xd1, 0x6d, 0x06, 0xdc, 0xb5, 0x46, 0x91, + 0x3a, 0x9c, 0xd5, 0x46, 0xdd, 0x86, 0xfd, 0x2a, + 0xa7, 0x06, 0x6b, 0xeb, 0x1d, 0xc6, 0xd9, 0x57, + 0x80, 0x98, 0x96, 0xd8, 0x0b, 0x6e, 0x29, 0x34, + 0x62, 0x3f, 0x0d, 0x01, 0x05, 0xc2, 0x2d, 0x1b, + 0xcd, 0xeb, 0x2e, 0x00, 0xdb, 0x94, 0xba, 0x3d, + 0x12, 0xbf, 0x73, 0x5b, 0xb4, 0x2a, 0xf8, 0xf1, + 0x95, 0x1a, 0x07, 0x63, 0x29, 0x95, 0x97, 0x89, + 0xb6, 0x5b, 0x1a, 0xc9, 0x2b, 0x65, 0x26, 0x34, + 0x69, 0x2c, 0x77, 0xaa, 0x86, 0xef, 0x7a, 0xcb, + 0x82, 0x82, 0xea, 0x18, 0x93, 0x21, 0xbe, 0x70, + 0x05, 0xc7, 0xa2, 0xb0, 0xf5, 0x22, 0x46, 0xce, + 0xed, 0xea, 0xdd, 0x49, 0x9a, 0xa5, 0xc1, 0x0e, + 0xe2, 0x97, 0x50, 0x70, 0xc2, 0x49, 0x4c, 0x3a, + 0x7c, 0x07, 0xa3, 0x48, 0x46, 0xd8, 0x76, 0x4b, + 0xb9, 0x3a, 0xa8, 0xf2, 0xb8, 0x06, 0xde, 0xf5, + 0x07, 0x50, 0x8a, 0xa0, 0xa2, 0xb6, 0xd0, 0x2a, + 0xbb, 0x3a, 0x7c, 0xab, 0x72, 0xff, 0x00, 0x72, + 0x54, 0xf9, 0x2e, 0x93, 0x37, 0x8d, 0x3d, 0xe8, + 0x84, 0x72, 0x1d, 0x25, 0x8b, 0xa2, 0xa0, 0x7c, + 0xf1, 0x55, 0x4d, 0x49, 0x84, 0x11, 0x64, 0x34, + 0xee, 0x54, 0x50, 0x74, 0x22, 0xa6, 0x4b, 0x8a, + 0xc3, 0x13, 0xe2, 0xd5, 0xef, 0xba, 0xd8, 0x4f, + 0x42, 0x8b, 0x55, 0xb2, 0x64, 0xbb, 0x44, 0x75, + 0x89, 0x66, 0x64, 0xc2, 0x31, 0x16, 0x13, 0x6e, + 0x13, 0x49, 0xcc, 0x31, 0x88, 0xde, 0x2d, 0xf3, + 0x7b, 0x82, 0x55, 0x2c, 0xd1, 0xec, 0xc4, 0xf2, + 0xc5, 0x1a, 0x1d, 0x52, 0xe7, 0xb3, 0xa8, 0x34, + 0xfb, 0x7a, 0xba, 0x34, 0xea, 0xa5, 0x1e, 0xa9, + 0x3a, 0x4d, 0x75, 0xb7, 0xaa, 0x0f, 0xc4, 0x92, + 0xfa, 0xc9, 0x94, 0x6f, 0x33, 0x50, 0x71, 0xc0, + 0xd4, 0xec, 0xa1, 0xd0, 0x69, 0xce, 0xe6, 0x60, + 0xa7, 0xa9, 0xad, 0x7a, 0x9a, 0xcb, 0x17, 0x24, + 0x98, 0x35, 0x3a, 0x5e, 0xd4, 0x9f, 0x80, 0xe3, + 0x4f, 0xb4, 0xeb, 0xf6, 0x7b, 0x2b, 0x25, 0xbd, + 0x08, 0x13, 0x64, 0x43, 0x74, 0x19, 0x93, 0x25, + 0xb4, 0x05, 0x50, 0x21, 0x71, 0xd0, 0x5c, 0x8c, + 0x33, 0x43, 0x44, 0xde, 0x22, 0xaa, 0x16, 0x78, + 0xb4, 0xea, 0x6e, 0xdb, 0xbb, 0x3d, 0xac, 0xcb, + 0x62, 0x15, 0x2e, 0x7b, 0xab, 0x73, 0xc5, 0x6f, + 0x86, 0xab, 0x45, 0x29, 0x91, 0x54, 0x5c, 0x82, + 0xde, 0x6e, 0x6e, 0x01, 0xe6, 0x0b, 0x78, 0x3a, + 0x3b, 0xc2, 0xd7, 0x90, 0xf7, 0xdc, 0xcb, 0x9f, + 0x35, 0x9d, 0x77, 0x4a, 0xae, 0xdd, 0x84, 0xe5, + 0x74, 0xa1, 0x46, 0x57, 0x68, 0x13, 0x28, 0xd4, + 0x38, 0x91, 0x89, 0xca, 0x4d, 0x36, 0x2b, 0xaf, + 0x2c, 0x75, 0x48, 0x71, 0xde, 0x03, 0x76, 0x44, + 0x33, 0x9b, 0xb9, 0xd2, 0x32, 0x37, 0xae, 0xc8, + 0x47, 0x51, 0xb6, 0xa3, 0x2e, 0x69, 0x16, 0x3a, + 0x30, 0xfa, 0xc5, 0xaf, 0x53, 0x69, 0xce, 0x37, + 0x0a, 0x24, 0xda, 0x45, 0xa1, 0x70, 0x2e, 0x88, + 0xf5, 0xc9, 0xb5, 0xd9, 0x11, 0x06, 0x41, 0x40, + 0x71, 0x86, 0x65, 0x4f, 0xa8, 0x47, 0x65, 0xf2, + 0x71, 0x55, 0xbd, 0xeb, 0x28, 0xe1, 0xba, 0xe6, + 0xeb, 0x4a, 0xe4, 0x2d, 0x2b, 0x5a, 0xad, 0xf5, + 0x7a, 0x45, 0x9f, 0x44, 0x39, 0x4f, 0xb9, 0x22, + 0x49, 0xed, 0x46, 0x96, 0xf3, 0x8e, 0x3e, 0xe1, + 0x3a, 0xfb, 0x9a, 0x61, 0x44, 0x6d, 0x08, 0xcd, + 0xc5, 0x53, 0x2c, 0x90, 0x50, 0x75, 0x12, 0xf8, + 0x13, 0x2f, 0x8b, 0x15, 0xb8, 0x93, 0x69, 0x5d, + 0xd1, 0xab, 0x15, 0x8a, 0xf4, 0x79, 0xf4, 0x4a, + 0xd4, 0x0a, 0x85, 0x2e, 0x95, 0x01, 0x27, 0x1b, + 0xe5, 0xc7, 0xb9, 0xae, 0x3b, 0x50, 0x86, 0x1f, + 0x38, 0x30, 0xf4, 0x02, 0x43, 0x8a, 0xe2, 0x33, + 0xa8, 0x90, 0x5a, 0x76, 0x43, 0xc8, 0xd8, 0xb6, + 0xe2, 0x8c, 0x69, 0xb2, 0xd2, 0xf9, 0xb3, 0xe1, + 0x24, 0xc7, 0x86, 0x9e, 0x16, 0x18, 0x6b, 0x8c, + 0x2f, 0x9a, 0x46, 0x37, 0x8e, 0x0c, 0xed, 0x44, + 0xeb, 0x48, 0x5b, 0xa3, 0x3d, 0x4c, 0x33, 0x92, + 0x90, 0xea, 0x1d, 0x03, 0x92, 0xe2, 0xd0, 0x7a, + 0x39, 0xdb, 0x96, 0xeb, 0xd0, 0x42, 0x12, 0x95, + 0xb4, 0xed, 0x5b, 0xb2, 0x65, 0x2e, 0xe3, 0xa8, + 0xd1, 0x1b, 0xa6, 0xb8, 0x72, 0x24, 0x3e, 0x52, + 0x24, 0x41, 0x86, 0xc3, 0xf1, 0xea, 0x4c, 0xcb, + 0x68, 0xc9, 0xc4, 0x59, 0x60, 0xad, 0x02, 0x29, + 0x20, 0xf7, 0xc2, 0xe8, 0x85, 0x79, 0xee, 0x22, + 0xd2, 0xb2, 0xd8, 0x6a, 0x6b, 0xb4, 0xea, 0x7d, + 0x42, 0xb9, 0x71, 0x94, 0xc4, 0x89, 0x20, 0xc1, + 0xb0, 0x8a, 0xfd, 0x6d, 0xe5, 0x45, 0x3e, 0x66, + 0xf5, 0x83, 0x2d, 0x3a, 0x64, 0xde, 0xf9, 0xb4, + 0x44, 0xf8, 0x4a, 0x08, 0xbe, 0x0a, 0xe5, 0x34, + 0x22, 0x51, 0x6e, 0xb6, 0x1b, 0x85, 0x1d, 0x86, + 0xde, 0xac, 0x5a, 0xd2, 0xa3, 0xcb, 0x2a, 0xab, + 0x95, 0x7a, 0xad, 0x65, 0xa6, 0x6a, 0xb4, 0xd6, + 0xca, 0xad, 0x35, 0xe7, 0xa4, 0xbe, 0xf3, 0x4c, + 0x23, 0x6d, 0x8b, 0x11, 0xd9, 0x20, 0x6c, 0x59, + 0xdc, 0xc8, 0x21, 0x52, 0x6c, 0xd3, 0x4c, 0x62, + 0x91, 0x22, 0xe5, 0xbc, 0x69, 0xed, 0x0d, 0x2a, + 0xa1, 0x1d, 0xda, 0xd5, 0x36, 0x53, 0xb0, 0x1c, + 0xa9, 0xca, 0xa4, 0xd5, 0x23, 0x07, 0x62, 0x20, + 0xb0, 0xe5, 0x4a, 0x24, 0x88, 0xed, 0xb8, 0x92, + 0x01, 0x11, 0x05, 0xb0, 0x6c, 0x49, 0x82, 0x6d, + 0xf0, 0xcd, 0x64, 0x06, 0xb0, 0x4c, 0x5f, 0xf0, + 0xe1, 0x15, 0xdd, 0x59, 0x28, 0x13, 0x5d, 0xa9, + 0x46, 0x27, 0x99, 0xca, 0x4b, 0xd2, 0x0a, 0x61, + 0xef, 0x06, 0x2b, 0x20, 0xeb, 0x1c, 0x59, 0xea, + 0x39, 0x21, 0x15, 0xc1, 0x58, 0xed, 0xba, 0x66, + 0x67, 0xa1, 0xb1, 0x03, 0x75, 0xd3, 0x02, 0x74, + 0xf8, 0x1f, 0x37, 0xd1, 0xf7, 0x62, 0xc8, 0x87, + 0xa2, 0xf0, 0xb6, 0x8b, 0x2f, 0x83, 0x5a, 0xa7, + 0xaf, 0xea, 0x90, 0x1e, 0x6f, 0xc5, 0x5a, 0xa3, + 0xc4, 0xaf, 0x53, 0x64, 0xd2, 0xe7, 0x0a, 0xab, + 0x12, 0x05, 0x3b, 0xe1, 0xcb, 0x5b, 0x4e, 0x02, + 0xea, 0x69, 0xe6, 0xf3, 0xcd, 0x35, 0xb4, 0x68, + 0x84, 0x99, 0xa6, 0x4b, 0xce, 0x2b, 0xcc, 0xab, + 0x87, 0x36, 0x39, 0x35, 0x0c, 0xb7, 0x55, 0x58, + 0x44, 0xde, 0x7d, 0xe9, 0x38, 0xcb, 0xe0, 0x6a, + 0x9f, 0xca, 0x11, 0xd6, 0x28, 0xbf, 0x21, 0x2f, + 0xcb, 0x8e, 0xe3, 0x95, 0x1e, 0x94, 0xa7, 0xfa, + 0x39, 0x1e, 0xe6, 0x3b, 0x8e, 0x54, 0x7a, 0x52, + 0x9f, 0xe8, 0xe4, 0x7b, 0x98, 0xee, 0x39, 0x51, + 0xe9, 0x4a, 0x7f, 0xa3, 0x91, 0xee, 0x63, 0xb8, + 0xe5, 0x47, 0xa5, 0x29, 0xfe, 0x8e, 0x47, 0xb9, + 0x8e, 0xe3, 0x95, 0x1e, 0x94, 0xa7, 0xfa, 0x39, + 0x1e, 0xe6, 0x3b, 0x8e, 0x54, 0x7a, 0x52, 0x9f, + 0xe8, 0xe4, 0x7b, 0x98, 0xee, 0x39, 0x51, 0xe9, + 0x4a, 0x7f, 0xa3, 0x91, 0xee, 0x63, 0xb8, 0xe5, + 0x47, 0xa5, 0x29, 0xfe, 0x8e, 0x47, 0xb9, 0x8e, + 0xe3, 0x95, 0x1e, 0x94, 0xa7, 0xfa, 0x39, 0x1e, + 0xe6, 0x3b, 0x8e, 0x54, 0x7a, 0x52, 0x9f, 0xe8, + 0xe4, 0x7b, 0x98, 0xee, 0x39, 0x51, 0xe9, 0x4a, + 0x7f, 0xa3, 0x91, 0xee, 0x61, 0x9d, 0x90, 0xd5, + 0x58, 0x79, 0xa7, 0xda, 0xab, 0x53, 0xc5, 0xd6, + 0x1d, 0x6d, 0xe6, 0x8b, 0x74, 0xf9, 0x69, 0x71, + 0xa3, 0x43, 0x02, 0xc8, 0x9b, 0x51, 0x5c, 0x88, + 0x51, 0x72, 0x24, 0x54, 0x5f, 0x02, 0xa2, 0xa6, + 0x27, 0xec, 0xae, 0xb7, 0x53, 0x99, 0x22, 0x7c, + 0xda, 0xcd, 0x3d, 0xe9, 0x72, 0x8f, 0x78, 0xfb, + 0xbb, 0x87, 0x1b, 0xd6, 0x79, 0x20, 0xe7, 0xa1, + 0xa6, 0x81, 0xb1, 0xe6, 0x14, 0xe6, 0x11, 0x44, + 0xc7, 0x71, 0xca, 0x8f, 0x4a, 0x53, 0xfd, 0x1c, + 0x8f, 0x73, 0x1d, 0xc7, 0x2a, 0x3d, 0x29, 0x4f, + 0xf4, 0x72, 0x3d, 0xcc, 0x77, 0x1c, 0xa8, 0xf4, + 0xa5, 0x3f, 0xd1, 0xc8, 0xf7, 0x31, 0xdc, 0x72, + 0xa3, 0xd2, 0x94, 0xff, 0x00, 0x47, 0x23, 0xdc, + 0xc7, 0x71, 0xca, 0x8f, 0x4a, 0x53, 0xfd, 0x1c, + 0x8f, 0x73, 0x1d, 0xc7, 0x2a, 0x3d, 0x29, 0x4f, + 0xf4, 0x72, 0x3d, 0xcc, 0x77, 0x1c, 0xa8, 0xf4, + 0xa5, 0x3f, 0xd1, 0xc8, 0xf7, 0x31, 0x67, 0x6c, + 0xf6, 0x3d, 0xb3, 0x24, 0xaa, 0x32, 0x64, 0x0c, + 0xda, 0x82, 0xb6, 0x4d, 0x32, 0xad, 0xb6, 0xa0, + 0xc4, 0x60, 0x3c, 0xb7, 0x8a, 0x1a, 0xb3, 0x33, + 0x74, 0xd1, 0x34, 0x6b, 0x5d, 0x08, 0x20, 0xa4, + 0x28, 0x2b, 0xab, 0x57, 0xe2, 0xba, 0xf6, 0x5b, + 0x26, 0x7d, 0x4a, 0x4d, 0x4a, 0x88, 0xec, 0x64, + 0x19, 0x8e, 0x13, 0xef, 0x43, 0x90, 0x46, 0xce, + 0xed, 0xf3, 0xe7, 0x70, 0x99, 0x71, 0x05, 0xc4, + 0x20, 0x74, 0xf3, 0x3d, 0x04, 0x81, 0xa0, 0x89, + 0x45, 0x17, 0x46, 0x59, 0x77, 0x28, 0xba, 0x3f, + 0x33, 0x07, 0xd7, 0x47, 0xdc, 0xc7, 0x72, 0x8b, + 0xa3, 0xf3, 0x30, 0x7d, 0x74, 0x7d, 0xcc, 0x77, + 0x28, 0xba, 0x3f, 0x33, 0x07, 0xd7, 0x47, 0xdc, + 0xc7, 0x72, 0x8b, 0xa3, 0xf3, 0x30, 0x7d, 0x74, + 0x7d, 0xcc, 0x77, 0x28, 0xba, 0x3f, 0x33, 0x07, + 0xd7, 0x47, 0xdc, 0xc7, 0x72, 0x8b, 0xa3, 0xf3, + 0x30, 0x7d, 0x74, 0x7d, 0xcc, 0x77, 0x28, 0xba, + 0x3f, 0x33, 0x07, 0xd7, 0x47, 0xdc, 0xc7, 0x72, + 0x8b, 0xa3, 0xf3, 0x30, 0x7d, 0x74, 0x7d, 0xcc, + 0x77, 0x28, 0xba, 0x3f, 0x33, 0x07, 0xd7, 0x47, + 0xdc, 0xc7, 0x72, 0x8b, 0xa3, 0xf3, 0x30, 0x7d, + 0x74, 0x7d, 0xcc, 0x77, 0x28, 0xba, 0x3f, 0x33, + 0x07, 0xd7, 0x47, 0xdc, 0xc7, 0x72, 0x8b, 0xa3, + 0xf3, 0x30, 0x7d, 0x74, 0x7d, 0xcc, 0x50, 0xac, + 0xfb, 0xde, 0x80, 0x32, 0x1a, 0x62, 0x0d, 0xbf, + 0x3a, 0x34, 0x95, 0x17, 0x0e, 0x25, 0x51, 0x46, + 0x5c, 0x61, 0x7c, 0x13, 0x48, 0xc8, 0x6c, 0x51, + 0x59, 0x70, 0x1e, 0x46, 0xd4, 0x9a, 0xcd, 0x1c, + 0xd0, 0x40, 0x6a, 0x86, 0x04, 0xa8, 0xd9, 0x05, + 0x72, 0xc5, 0xbd, 0xee, 0x19, 0xcb, 0x3e, 0xa0, + 0x14, 0xcd, 0xe6, 0xec, 0x19, 0x69, 0xa6, 0x24, + 0x8b, 0x51, 0xe3, 0xb0, 0x19, 0xe9, 0x65, 0x86, + 0xf2, 0x32, 0x40, 0x45, 0x55, 0x5e, 0xfc, 0xdc, + 0x35, 0x55, 0xe7, 0x35, 0xe6, 0xcb, 0xb9, 0x45, + 0xd1, 0xf9, 0x98, 0x3e, 0xba, 0x3e, 0xe6, 0x3b, + 0x94, 0x5d, 0x1f, 0x99, 0x83, 0xeb, 0xa3, 0xee, + 0x63, 0xb9, 0x45, 0xd1, 0xf9, 0x98, 0x3e, 0xba, + 0x3e, 0xe6, 0x3b, 0x94, 0x5d, 0x1f, 0x99, 0x83, + 0xeb, 0xa3, 0xee, 0x63, 0xb9, 0x45, 0xd1, 0xf9, + 0x98, 0x3e, 0xba, 0x3e, 0xe6, 0x3b, 0x94, 0x5d, + 0x1f, 0x99, 0x83, 0xeb, 0xa3, 0xee, 0x60, 0x76, + 0x4f, 0x73, 0x29, 0x22, 0x28, 0x53, 0xc1, 0x17, + 0xc2, 0x45, 0x33, 0x34, 0x4f, 0xf7, 0x0b, 0x64, + 0xab, 0xfe, 0xe4, 0xc5, 0x9b, 0x69, 0x31, 0x69, + 0xd3, 0xdd, 0x61, 0x1c, 0x17, 0xe6, 0xcc, 0x30, + 0x76, 0x6c, 0x81, 0x15, 0x11, 0x25, 0x6c, 0x54, + 0x5a, 0x65, 0xb4, 0x5e, 0x7d, 0xd3, 0x28, 0x47, + 0xa5, 0x57, 0x25, 0x22, 0x33, 0x3c, 0x87, 0x56, + 0x49, 0xfb, 0x2b, 0xc6, 0xdb, 0x0b, 0xa6, 0x8c, + 0xe5, 0x3f, 0x5a, 0x35, 0x21, 0xb7, 0x42, 0x54, + 0x37, 0x4b, 0x3d, 0x03, 0x21, 0xb4, 0x21, 0x44, + 0x73, 0x2c, 0xd7, 0x43, 0x8d, 0x9b, 0x8d, 0x92, + 0xa2, 0x66, 0x3a, 0xb5, 0x22, 0x2e, 0x59, 0x2b, + 0xbb, 0x34, 0xbb, 0x1a, 0x32, 0x0e, 0xc3, 0x93, + 0xa8, 0x8b, 0xcc, 0xe3, 0x32, 0x61, 0x1b, 0x66, + 0x99, 0xe5, 0xa8, 0x7f, 0x6c, 0x21, 0x22, 0x2f, + 0xc4, 0x8e, 0x00, 0x1e, 0x5e, 0x11, 0x4c, 0x77, + 0x39, 0xbb, 0x3a, 0x0e, 0x47, 0xa6, 0x85, 0xf6, + 0x8c, 0x2e, 0xce, 0x2e, 0xb5, 0xf0, 0xd0, 0x9f, + 0x5f, 0x95, 0xd8, 0x5f, 0x68, 0xc7, 0x73, 0x8b, + 0xb3, 0xa0, 0x9f, 0xf4, 0xd0, 0xbe, 0xd1, 0x8e, + 0xe7, 0x17, 0x5e, 0x59, 0x76, 0x09, 0xfc, 0xbc, + 0x5b, 0xd8, 0x59, 0x7f, 0x48, 0xc7, 0x73, 0x8b, + 0xaf, 0xa0, 0x9f, 0xe6, 0xff, 0x00, 0xda, 0xc2, + 0xfb, 0x46, 0x3b, 0x9b, 0xdd, 0x7d, 0x02, 0xff, + 0x00, 0x8f, 0xf7, 0x58, 0x5e, 0x1f, 0x1f, 0xf8, + 0xc6, 0x17, 0x67, 0x17, 0x5a, 0xf8, 0x68, 0x4f, + 0xaf, 0xca, 0xec, 0x2f, 0xb4, 0x63, 0xb9, 0xc5, + 0xd9, 0xd0, 0x4f, 0xf3, 0x7f, 0xed, 0x61, 0x7d, + 0xa3, 0x1d, 0xce, 0x2e, 0xcf, 0x0f, 0x60, 0x9f, + 0xcf, 0xfd, 0x2c, 0x2f, 0xb4, 0x63, 0xb9, 0xc5, + 0xd9, 0xd0, 0x52, 0x3d, 0x34, 0x2f, 0xb4, 0x63, + 0xb9, 0xbd, 0xd7, 0xe0, 0xec, 0x0b, 0xf9, 0x78, + 0xb7, 0xb0, 0xbe, 0xd1, 0x88, 0x16, 0x1d, 0xdb, + 0x06, 0x7c, 0x39, 0xc9, 0x6f, 0xbe, 0xe1, 0x43, + 0x95, 0x1e, 0x4a, 0x02, 0xc8, 0x84, 0x1b, 0xce, + 0x1d, 0xd1, 0x75, 0x01, 0x4f, 0x7e, 0x4a, 0x28, + 0x4a, 0x39, 0x67, 0xa4, 0xb2, 0xcf, 0x3c, 0x97, + 0xc1, 0x8a, 0xb5, 0x91, 0x76, 0xd5, 0x6a, 0x95, + 0x0a, 0x99, 0x5b, 0xaf, 0x32, 0x73, 0xe5, 0xbf, + 0x2c, 0x9a, 0x49, 0x10, 0x9c, 0xdd, 0xab, 0xee, + 0x13, 0x9b, 0xbd, 0xe6, 0xf8, 0x14, 0xd0, 0x73, + 0xcb, 0x56, 0x81, 0xcf, 0x2c, 0xf4, 0xa7, 0x83, + 0x1d, 0xce, 0x2e, 0xbf, 0x07, 0x60, 0x9f, 0xf1, + 0xfe, 0xeb, 0x0b, 0xc3, 0xeb, 0x18, 0xee, 0x71, + 0x75, 0xaf, 0xfc, 0x84, 0xff, 0x00, 0x37, 0x83, + 0xf2, 0xb0, 0xbe, 0xd1, 0x8e, 0xe7, 0x17, 0x67, + 0x41, 0x3f, 0xe9, 0x61, 0x7d, 0xa3, 0x1d, 0xcd, + 0xee, 0xae, 0x81, 0x7b, 0xd2, 0xc2, 0xfb, 0x46, + 0x3b, 0x9b, 0xdd, 0x7e, 0x0e, 0xc0, 0xbf, 0x97, + 0x8b, 0x7b, 0x0b, 0xed, 0x18, 0xee, 0x73, 0x76, + 0x74, 0x1c, 0x8f, 0x4d, 0x0b, 0xed, 0x18, 0xee, + 0x73, 0x76, 0x74, 0x1c, 0x8f, 0x4d, 0x0b, 0xed, + 0x18, 0xb1, 0xb6, 0x6d, 0x3e, 0x0d, 0x52, 0x3d, + 0x62, 0xb6, 0xd8, 0x45, 0x48, 0x25, 0xbe, 0x8b, + 0x0d, 0x1d, 0x69, 0xd7, 0x5c, 0x90, 0x89, 0xf9, + 0x27, 0x1d, 0x26, 0x09, 0xc6, 0xc1, 0xb6, 0x95, + 0x77, 0x88, 0x28, 0xea, 0xb8, 0x4e, 0x08, 0x21, + 0x20, 0x8a, 0x12, 0x17, 0xfe, 0xe5, 0x19, 0x52, + 0xa3, 0x41, 0x8e, 0xec, 0xb9, 0x92, 0x19, 0x8b, + 0x15, 0x80, 0x57, 0x1e, 0x91, 0x21, 0xc0, 0x65, + 0x96, 0x80, 0x7c, 0x24, 0xe3, 0x8e, 0x28, 0x80, + 0x8a, 0x78, 0xd5, 0x53, 0x0e, 0xed, 0x9f, 0x66, + 0x8c, 0xb8, 0x4d, 0x95, 0xcc, 0x24, 0x42, 0xb9, + 0x2a, 0xb3, 0x49, 0xae, 0xc8, 0x6d, 0x7f, 0xe8, + 0xbd, 0x1e, 0x98, 0xeb, 0x46, 0x9e, 0x70, 0x32, + 0x4c, 0x77, 0x6c, 0xd9, 0x97, 0x94, 0x87, 0xec, + 0x2b, 0x8f, 0xaa, 0x31, 0xdd, 0xb3, 0x66, 0x5e, + 0x52, 0x1f, 0xb0, 0xae, 0x3e, 0xa8, 0xc7, 0x76, + 0xcd, 0x99, 0x79, 0x48, 0x7e, 0xc2, 0xb8, 0xfa, + 0xa3, 0x1d, 0xdb, 0x36, 0x65, 0xe5, 0x21, 0xfb, + 0x0a, 0xe3, 0xea, 0x8c, 0x77, 0x6c, 0xd9, 0x97, + 0x94, 0x87, 0xec, 0x2b, 0x8f, 0xaa, 0x31, 0xdd, + 0xb3, 0x66, 0x5e, 0x52, 0x1f, 0xb0, 0xae, 0x3e, + 0xa8, 0xc7, 0x76, 0xcd, 0x99, 0x79, 0x48, 0x7e, + 0xc2, 0xb8, 0xfa, 0xa3, 0x1d, 0xdb, 0x36, 0x65, + 0xe5, 0x21, 0xfb, 0x0a, 0xe3, 0xea, 0x8c, 0x77, + 0x6c, 0xd9, 0x97, 0x94, 0x87, 0xec, 0x2b, 0x8f, + 0xaa, 0x31, 0xdd, 0xb3, 0x66, 0x5e, 0x52, 0x1f, + 0xb0, 0xae, 0x3e, 0xa8, 0xc7, 0x76, 0xcd, 0x99, + 0x79, 0x48, 0x7e, 0xc2, 0xb8, 0xfa, 0xa3, 0x1d, + 0xdb, 0x36, 0x65, 0xe5, 0x21, 0xfb, 0x0a, 0xe3, + 0xea, 0x8c, 0x77, 0x6c, 0xd9, 0x97, 0x94, 0x87, + 0xec, 0x2b, 0x8f, 0xaa, 0x31, 0xdd, 0xb3, 0x66, + 0x5e, 0x52, 0x1f, 0xb0, 0xae, 0x3e, 0xa8, 0xc7, + 0x76, 0xcd, 0x99, 0x79, 0x48, 0x7e, 0xc2, 0xb8, + 0xfa, 0xa3, 0x1d, 0xdb, 0x36, 0x65, 0xe5, 0x21, + 0xfb, 0x0a, 0xe3, 0xea, 0x8c, 0x77, 0x6c, 0xd9, + 0x97, 0x94, 0x87, 0xec, 0x2b, 0x8f, 0xaa, 0x31, + 0xdd, 0xb3, 0x66, 0x5e, 0x52, 0x1f, 0xb0, 0xae, + 0x3e, 0xa8, 0xc7, 0x76, 0xcd, 0x99, 0x79, 0x48, + 0x7e, 0xc2, 0xb8, 0xfa, 0xa3, 0x09, 0xb6, 0xcd, + 0x99, 0x2a, 0xe5, 0xdb, 0x21, 0x73, 0xf8, 0xe8, + 0x77, 0x12, 0x27, 0xfb, 0xd5, 0x69, 0x19, 0x27, + 0xca, 0xbc, 0xd8, 0xa2, 0x5c, 0x14, 0x5b, 0x8e, + 0x27, 0x1d, 0x43, 0xa9, 0x45, 0xa9, 0x45, 0xcf, + 0x49, 0x39, 0x1c, 0xf3, 0x26, 0xcf, 0xc3, 0xa1, + 0xe6, 0x89, 0x05, 0xe6, 0x1c, 0xcb, 0x9f, 0x76, + 0xf3, 0x60, 0x79, 0x73, 0xe5, 0x97, 0xf1, 0xbf, + 0xe1, 0x11, 0x3e, 0x5b, 0x74, 0xfb, 0x6e, 0x92, + 0xd3, 0x84, 0x31, 0x2a, 0x32, 0x2a, 0x72, 0xe5, + 0x80, 0xae, 0x5b, 0xe2, 0xa6, 0x8d, 0x3c, 0x63, + 0x01, 0xff, 0x00, 0xce, 0x01, 0x29, 0xee, 0x39, + 0xa5, 0x79, 0xb7, 0x80, 0xd9, 0x2a, 0x66, 0x03, + 0x96, 0xe3, 0xcd, 0xfd, 0xff, 0x00, 0x56, 0x38, + 0x7f, 0xef, 0x96, 0x38, 0x7f, 0xef, 0x96, 0x2c, + 0xfb, 0x44, 0xee, 0xea, 0xeb, 0x14, 0x40, 0x9a, + 0x14, 0xf2, 0x7d, 0x99, 0x2f, 0x71, 0x4e, 0x47, + 0x59, 0x02, 0x09, 0x1d, 0xa5, 0x75, 0x51, 0x5a, + 0x17, 0x59, 0x55, 0xd4, 0x89, 0x96, 0x7b, 0xc4, + 0xd3, 0xe1, 0xc9, 0x71, 0x5b, 0xd9, 0x83, 0x70, + 0x68, 0xf3, 0x2b, 0x54, 0x1b, 0xae, 0x8d, 0x75, + 0xc7, 0xa5, 0x90, 0x76, 0x59, 0xaa, 0x6a, 0x00, + 0x3f, 0x05, 0x97, 0x17, 0x48, 0x48, 0x51, 0x19, + 0x72, 0xd1, 0xc0, 0x43, 0xe6, 0x75, 0x15, 0x5a, + 0x20, 0x0c, 0xdc, 0x44, 0x30, 0x17, 0x34, 0x76, + 0x2e, 0x66, 0xe1, 0x25, 0x70, 0x92, 0xb8, 0x52, + 0x54, 0x41, 0x93, 0xc3, 0x39, 0xc3, 0x92, 0xa9, + 0x68, 0x44, 0x47, 0xb4, 0xee, 0xd5, 0x54, 0xfb, + 0xd4, 0x44, 0x2e, 0x72, 0xef, 0x7c, 0x38, 0xb8, + 0x2c, 0xaa, 0xb5, 0xb8, 0xfd, 0x2a, 0x34, 0xb6, + 0xd5, 0xe9, 0x15, 0x5a, 0x6c, 0x6a, 0x83, 0x61, + 0x15, 0x87, 0xcd, 0x00, 0xa5, 0x9b, 0xe8, 0xdc, + 0x14, 0x22, 0x6c, 0x55, 0xe9, 0x6d, 0xb4, 0xd0, + 0x38, 0xfb, 0x60, 0x08, 0xad, 0x9b, 0xbb, 0xb4, + 0x43, 0x10, 0x47, 0x9c, 0x7a, 0x03, 0xf1, 0x9c, + 0xdd, 0x49, 0x61, 0xe8, 0xee, 0xa2, 0x21, 0x2b, + 0x6f, 0xb2, 0x4c, 0xb8, 0x82, 0x5f, 0x05, 0x74, + 0x38, 0x82, 0x59, 0x17, 0xc4, 0xb9, 0x64, 0xbf, + 0x16, 0x2d, 0xfd, 0x9a, 0x40, 0xab, 0x5b, 0xb1, + 0x6e, 0x3a, 0xa5, 0xe5, 0x4b, 0xb6, 0xe3, 0xcb, + 0x99, 0x2a, 0x1b, 0x4d, 0xd4, 0xa2, 0x8e, 0x44, + 0xec, 0x53, 0x51, 0x54, 0x17, 0xce, 0x7c, 0x61, + 0x32, 0x24, 0x15, 0x3d, 0x08, 0x19, 0x8a, 0x7c, + 0x6b, 0xe1, 0xc5, 0xcf, 0x62, 0xd4, 0xed, 0xaa, + 0xa7, 0x63, 0xf3, 0x4a, 0xb3, 0x2e, 0xc3, 0x66, + 0xa3, 0x0a, 0xa1, 0x4d, 0x65, 0xc7, 0xa3, 0xca, + 0xa7, 0x48, 0x33, 0x06, 0x64, 0xe4, 0x28, 0x7b, + 0x9c, 0xcc, 0x08, 0x0c, 0x14, 0xcc, 0x44, 0xfe, + 0x03, 0xae, 0x81, 0x03, 0x84, 0x14, 0x89, 0xee, + 0x38, 0xeb, 0x2d, 0xc2, 0x98, 0xe3, 0xac, 0x7e, + 0xee, 0xd0, 0x45, 0x78, 0xdc, 0x67, 0xfd, 0x30, + 0x08, 0x29, 0x37, 0xe0, 0x5f, 0x86, 0x83, 0xcf, + 0x8a, 0x6d, 0x9d, 0x52, 0xaa, 0x50, 0xab, 0x77, + 0x04, 0x74, 0x4e, 0x0e, 0x8a, 0xb1, 0x1b, 0x71, + 0xb4, 0x69, 0xd7, 0x24, 0x4a, 0x7a, 0x5c, 0x86, + 0xda, 0xd0, 0xc0, 0x80, 0x28, 0x68, 0x8e, 0xd1, + 0x1c, 0x89, 0x2e, 0x11, 0xe6, 0xd0, 0x8b, 0x63, + 0xbb, 0x54, 0x75, 0x4d, 0xb5, 0xa7, 0x49, 0x46, + 0x06, 0x52, 0xc7, 0x7d, 0x22, 0x99, 0x28, 0x04, + 0x95, 0x60, 0xd2, 0x39, 0x9a, 0x29, 0x22, 0x80, + 0x3d, 0x96, 0xe8, 0x8d, 0x14, 0x0f, 0x31, 0x42, + 0x55, 0xef, 0x0b, 0x9b, 0xbd, 0x5c, 0x76, 0x36, + 0x52, 0xc7, 0x59, 0x69, 0x1a, 0x42, 0xc4, 0x45, + 0xd2, 0xb2, 0x92, 0x3b, 0x9c, 0x32, 0x16, 0xb4, + 0x6f, 0x4a, 0xbf, 0xa7, 0x74, 0x85, 0xbc, 0x54, + 0x0c, 0xb5, 0x67, 0xad, 0x50, 0x7e, 0x12, 0xe5, + 0x86, 0x76, 0x7c, 0xb0, 0xa4, 0x5a, 0xee, 0x5c, + 0xb2, 0xa4, 0x41, 0xa5, 0xdc, 0x91, 0x24, 0x4d, + 0x57, 0xe9, 0xd4, 0xe9, 0xb5, 0x19, 0x30, 0x19, + 0x18, 0xc4, 0xec, 0x46, 0xde, 0x61, 0x98, 0xae, + 0x38, 0x72, 0xe4, 0x38, 0x89, 0xbc, 0x8e, 0xcb, + 0x4e, 0xee, 0x19, 0xcd, 0xd2, 0x71, 0x51, 0x1c, + 0xdc, 0x8d, 0x2a, 0x43, 0xee, 0xc8, 0x18, 0x51, + 0xe5, 0x4b, 0x06, 0x08, 0xb3, 0x26, 0x63, 0x3a, + 0x64, 0x2d, 0xea, 0x24, 0x03, 0x74, 0x44, 0x15, + 0x5a, 0xd4, 0x83, 0x9e, 0x46, 0x83, 0x92, 0xa2, + 0xa7, 0xc4, 0xb8, 0x6e, 0x9f, 0x21, 0xe1, 0x23, + 0x69, 0x87, 0xdd, 0x01, 0x26, 0xc0, 0x89, 0xb6, + 0x4c, 0xc4, 0x4d, 0xd2, 0xd0, 0xd0, 0x11, 0x0a, + 0x2a, 0x21, 0x38, 0x6a, 0x82, 0xd8, 0xaf, 0x39, + 0x97, 0x7a, 0x28, 0xab, 0x87, 0x60, 0xbc, 0xc3, + 0x84, 0xcb, 0xed, 0x3a, 0xc3, 0xa1, 0x96, 0xb6, + 0x9e, 0x68, 0x9a, 0x70, 0x35, 0x0a, 0x12, 0x6a, + 0x6c, 0xd0, 0x48, 0x73, 0x12, 0x12, 0x4c, 0xd1, + 0x33, 0x15, 0x45, 0xf0, 0x2a, 0x63, 0x87, 0xfe, + 0xf9, 0x63, 0x87, 0xfe, 0xf9, 0x63, 0x87, 0xf3, + 0x7f, 0x7f, 0xd5, 0x8d, 0x88, 0x4c, 0x99, 0x02, + 0xfd, 0x81, 0x11, 0x87, 0x08, 0x63, 0x55, 0xa3, + 0x4f, 0x8b, 0x39, 0x9f, 0xe0, 0x3a, 0x11, 0xe0, + 0x49, 0x9d, 0x1c, 0xd4, 0x7c, 0x1b, 0xc6, 0x9f, + 0x8c, 0x1a, 0x1c, 0xf8, 0x42, 0xd9, 0xbc, 0x08, + 0xba, 0x5c, 0x24, 0x5f, 0xe3, 0x6f, 0xc2, 0x01, + 0x95, 0x74, 0xed, 0x1f, 0xe4, 0x8d, 0xc3, 0xf4, + 0xad, 0x0b, 0xff, 0x00, 0x2c, 0x70, 0x6b, 0xfd, + 0xff, 0x00, 0xff, 0x00, 0x31, 0xc1, 0xf9, 0xb1, + 0xc1, 0xf9, 0xb1, 0xb2, 0x28, 0xda, 0x2f, 0x78, + 0x45, 0x97, 0xff, 0x00, 0x42, 0xa9, 0x27, 0xeb, + 0x8a, 0x49, 0x8b, 0x66, 0xdc, 0xab, 0x5b, 0x94, + 0x9b, 0xf2, 0xa1, 0x5b, 0x83, 0x26, 0x99, 0x12, + 0x55, 0xb3, 0x3a, 0x94, 0xc2, 0x4d, 0x6f, 0x70, + 0xb2, 0xe6, 0xd4, 0x4b, 0x77, 0x14, 0x19, 0x07, + 0x11, 0x09, 0xcd, 0x27, 0xcf, 0xa8, 0x51, 0x50, + 0x33, 0x45, 0x55, 0x4c, 0xf9, 0xb8, 0x59, 0xb1, + 0xa8, 0x35, 0xea, 0x74, 0xc9, 0x55, 0x49, 0xfc, + 0x26, 0xce, 0x11, 0xc1, 0x35, 0x8e, 0xc4, 0x5b, + 0x6a, 0x39, 0xb5, 0x14, 0xe4, 0x42, 0xe0, 0x23, + 0x02, 0x38, 0xd4, 0x9a, 0x8e, 0xb4, 0x22, 0x7e, + 0x6e, 0x4c, 0x92, 0x0c, 0x60, 0x4d, 0x2e, 0xea, + 0xfc, 0x84, 0xee, 0xd9, 0xea, 0x77, 0x1d, 0xbd, + 0x33, 0x8f, 0x7e, 0x3d, 0x32, 0x2d, 0x96, 0x55, + 0x45, 0x90, 0xdd, 0x2e, 0x1c, 0xa3, 0x7e, 0xa7, + 0x22, 0x1b, 0xa3, 0x50, 0x1a, 0x7f, 0xe4, 0x99, + 0x5e, 0xc8, 0x18, 0x94, 0x57, 0x40, 0x1b, 0x7c, + 0x41, 0x9d, 0x02, 0x8d, 0xb6, 0x22, 0xe9, 0x89, + 0xed, 0x4e, 0x3e, 0xfe, 0x9b, 0x61, 0xc9, 0x30, + 0xa8, 0xef, 0xdc, 0xa3, 0xcd, 0x03, 0x3a, 0xc1, + 0x8b, 0xd5, 0x67, 0x1a, 0x07, 0x21, 0x13, 0x05, + 0x51, 0x7b, 0x48, 0x93, 0x92, 0x34, 0xb8, 0x46, + 0x7a, 0xb3, 0xd2, 0x4e, 0x12, 0x6a, 0x25, 0xd4, + 0x67, 0x4f, 0x7a, 0x83, 0x03, 0x66, 0x34, 0x2e, + 0xcf, 0xd0, 0x0a, 0xbf, 0x1d, 0x6b, 0xf5, 0x54, + 0x66, 0x38, 0xd4, 0xa4, 0xd3, 0x77, 0x2e, 0xea, + 0x75, 0x55, 0xd5, 0x72, 0x2a, 0xa1, 0x39, 0x98, + 0xe6, 0x1a, 0x0b, 0xbd, 0xe7, 0xcf, 0xc3, 0x8b, + 0x7e, 0xee, 0x99, 0x52, 0x7a, 0xf3, 0xad, 0x41, + 0x88, 0xc5, 0x24, 0x68, 0xd6, 0x42, 0xc4, 0xa1, + 0xc3, 0x69, 0x05, 0xf6, 0xe0, 0xb5, 0x08, 0xde, + 0x76, 0x32, 0x9e, 0xf1, 0xbd, 0xdb, 0xee, 0x0b, + 0xa7, 0xad, 0x75, 0x34, 0x8d, 0x2a, 0x08, 0x02, + 0xb6, 0xa2, 0x8b, 0xaa, 0x99, 0x3e, 0xf0, 0x5b, + 0x4a, 0x85, 0x53, 0xb3, 0xc5, 0x25, 0x55, 0xaa, + 0xd5, 0xca, 0x94, 0x8b, 0xba, 0x53, 0x50, 0xa1, + 0x48, 0x92, 0xfc, 0xd3, 0x98, 0x7b, 0xa0, 0x98, + 0x0e, 0x36, 0x63, 0x1e, 0x31, 0x47, 0xd1, 0xdf, + 0xb4, 0x0c, 0xee, 0x58, 0xdd, 0x28, 0x38, 0xc2, + 0x1f, 0x3d, 0x41, 0xd9, 0xf1, 0xe1, 0xed, 0x3a, + 0x0d, 0xae, 0x4a, 0x26, 0xdc, 0xea, 0x2b, 0xeb, + 0x1a, 0x04, 0x68, 0xf2, 0x11, 0x89, 0x75, 0x16, + 0x59, 0x6e, 0xe6, 0x56, 0x40, 0xd8, 0x74, 0x88, + 0x4d, 0xa6, 0x5c, 0xdf, 0x6a, 0x42, 0x48, 0xc6, + 0x2e, 0x93, 0x1b, 0x97, 0x11, 0x57, 0x15, 0xcd, + 0xdb, 0x74, 0x1a, 0x95, 0x37, 0x80, 0xab, 0x4c, + 0xb5, 0xbb, 0x4e, 0x8e, 0x91, 0x1b, 0x62, 0x0d, + 0xba, 0xcd, 0x06, 0x27, 0xed, 0x5d, 0x4c, 0x54, + 0x63, 0xd4, 0xa5, 0x54, 0x22, 0x4f, 0x76, 0x63, + 0x6e, 0xe9, 0x25, 0x8c, 0x22, 0x66, 0x24, 0x2d, + 0x39, 0x1a, 0x31, 0x1a, 0x8b, 0x8f, 0x54, 0xfb, + 0x71, 0x01, 0x1a, 0x6d, 0xbb, 0x4f, 0xa6, 0x49, + 0xb2, 0xca, 0xc6, 0x12, 0x6d, 0xa9, 0xad, 0x46, + 0x6a, 0x96, 0xe1, 0x2c, 0x45, 0x57, 0x5c, 0x29, + 0x62, 0x22, 0xef, 0x1b, 0xe0, 0x16, 0x62, 0x9c, + 0x96, 0x22, 0x18, 0x16, 0xf9, 0xe2, 0x69, 0x10, + 0xa5, 0x37, 0x06, 0x5d, 0x76, 0x65, 0x47, 0x64, + 0xcf, 0x3c, 0xe3, 0xae, 0xd3, 0x1c, 0xa5, 0x3f, + 0x22, 0x63, 0xc9, 0x1d, 0x84, 0x60, 0xaa, 0xeb, + 0x41, 0x9c, 0xdb, 0x4a, 0x4f, 0xb6, 0xc8, 0xab, + 0x6e, 0xac, 0x75, 0x90, 0x82, 0xc0, 0x18, 0x36, + 0x43, 0xa8, 0x95, 0xb5, 0x21, 0x42, 0x4a, 0x5a, + 0xdc, 0xf4, 0xeb, 0x5e, 0xdf, 0x2b, 0x0d, 0x81, + 0x27, 0x65, 0x57, 0x6a, 0xdd, 0xb2, 0xb8, 0xcc, + 0x48, 0x92, 0x9e, 0x39, 0x09, 0x51, 0x70, 0x58, + 0x66, 0x76, 0xfc, 0x1d, 0x26, 0x23, 0x70, 0x9a, + 0x53, 0x7c, 0x1b, 0xa3, 0x6d, 0x9d, 0xc9, 0x6f, + 0x9a, 0xd7, 0xdf, 0xd4, 0x25, 0x37, 0x6e, 0xf7, + 0x56, 0xa8, 0x5b, 0xdc, 0x3b, 0x32, 0x18, 0x97, + 0x6d, 0xb8, 0xd1, 0x0b, 0x2c, 0x48, 0x62, 0x1d, + 0x5a, 0x43, 0x8d, 0x35, 0x35, 0xe6, 0x1a, 0x90, + 0xdb, 0xac, 0x2b, 0x91, 0xa5, 0xbe, 0xfb, 0xa0, + 0x86, 0xd9, 0x03, 0x72, 0x75, 0x26, 0x8c, 0x87, + 0x46, 0x36, 0xac, 0x27, 0x50, 0x97, 0x6b, 0x54, + 0x9f, 0x40, 0x59, 0x93, 0xed, 0x3a, 0x6b, 0xf3, + 0x1d, 0x00, 0x16, 0xf7, 0xaf, 0x1a, 0x99, 0xa9, + 0x28, 0x8f, 0x32, 0x64, 0xa6, 0x5a, 0x51, 0x39, + 0x85, 0x17, 0x4a, 0x73, 0x22, 0x26, 0x38, 0x3f, + 0x36, 0x38, 0x3f, 0x36, 0x38, 0x35, 0xf1, 0x7f, + 0x7f, 0xd5, 0x8d, 0x93, 0x46, 0x56, 0xf6, 0x81, + 0x40, 0x3f, 0x17, 0x64, 0xfe, 0x9a, 0x3d, 0x41, + 0x3f, 0x8d, 0xf6, 0xb5, 0x6e, 0x4b, 0xac, 0xd3, + 0xa9, 0xd3, 0xe1, 0xb4, 0x72, 0x0e, 0x90, 0xe4, + 0xbd, 0xf3, 0x2d, 0x8a, 0x9b, 0x9c, 0x34, 0xd1, + 0x8f, 0xbc, 0x74, 0x04, 0x73, 0x52, 0xdd, 0x1c, + 0x46, 0xb5, 0x22, 0x26, 0x7a, 0x08, 0x8b, 0xf8, + 0x2b, 0x9f, 0x06, 0x89, 0xcc, 0xb9, 0x66, 0x9c, + 0xca, 0x9e, 0x25, 0xf1, 0x63, 0x84, 0x4f, 0x36, + 0x38, 0x44, 0xf3, 0x7e, 0xbc, 0x44, 0x29, 0x50, + 0x1e, 0x49, 0x30, 0x65, 0xc8, 0x85, 0x20, 0x50, + 0x84, 0x64, 0x44, 0x90, 0xec, 0x67, 0xc4, 0x49, + 0x32, 0x21, 0x47, 0x59, 0x30, 0x71, 0x10, 0x93, + 0x98, 0x91, 0x0b, 0x22, 0x4e, 0x65, 0xc4, 0xd9, + 0xd5, 0x6a, 0x90, 0x03, 0x75, 0x1a, 0xad, 0x46, + 0xa0, 0xdb, 0x65, 0xad, 0xb0, 0x9d, 0x3e, 0x54, + 0xb0, 0x6c, 0x95, 0x32, 0x52, 0x01, 0x7d, 0xd7, + 0x10, 0x49, 0x53, 0x99, 0x54, 0x51, 0x17, 0x2e, + 0x6c, 0x25, 0x4e, 0xb4, 0x8c, 0x0c, 0x64, 0xac, + 0xd5, 0x12, 0x30, 0x32, 0x51, 0x82, 0x3a, 0x54, + 0xa6, 0x23, 0x01, 0x1d, 0xc1, 0x40, 0x38, 0xe0, + 0xd6, 0xfb, 0x76, 0x2c, 0x18, 0x22, 0x01, 0xb4, + 0x82, 0x80, 0x42, 0x88, 0x24, 0x2a, 0x98, 0x0a, + 0x95, 0x69, 0xb1, 0x8a, 0x2d, 0xd6, 0x6a, 0x8d, + 0x8c, 0x1c, 0xd2, 0x10, 0xb7, 0x52, 0x96, 0x03, + 0x0d, 0x09, 0xb2, 0x64, 0x92, 0x22, 0x0b, 0xc8, + 0x91, 0xd1, 0x5a, 0x22, 0x69, 0x77, 0x3a, 0x33, + 0x6c, 0x94, 0x17, 0xbd, 0x55, 0x4c, 0x4b, 0x91, + 0x50, 0xa8, 0x23, 0x63, 0x3e, 0xa3, 0x36, 0x68, + 0xb4, 0x4e, 0x9b, 0x43, 0x32, 0x63, 0xf2, 0x51, + 0xa3, 0x7c, 0xb5, 0xbe, 0x6d, 0xa3, 0xc6, 0x68, + 0x04, 0xf1, 0xf7, 0xee, 0x90, 0xe4, 0xae, 0x17, + 0x7c, 0x6a, 0xab, 0x82, 0x59, 0x45, 0x15, 0xb8, + 0x25, 0x2e, 0x41, 0x42, 0x65, 0xc2, 0x79, 0xa8, + 0x65, 0x21, 0xc5, 0x8a, 0xd3, 0xa7, 0x9e, 0xb7, + 0x5b, 0x8e, 0xa5, 0xba, 0x07, 0x0f, 0x35, 0xd4, + 0x62, 0x08, 0x45, 0x9a, 0xe6, 0xab, 0x86, 0x16, + 0x54, 0x50, 0x90, 0xdc, 0x69, 0x72, 0x23, 0xb7, + 0x2d, 0xa5, 0x62, 0x50, 0x31, 0x21, 0xc6, 0x42, + 0x4b, 0x05, 0xf0, 0x99, 0x90, 0x2d, 0x90, 0xa3, + 0xcd, 0x2e, 0x6b, 0x9b, 0x6e, 0x21, 0x02, 0xfc, + 0x69, 0x88, 0x52, 0xaa, 0x54, 0xdd, 0xe7, 0x63, + 0xaa, 0x53, 0xa9, 0xfb, 0xec, 0xb7, 0xbc, 0x0c, + 0xd9, 0x11, 0x37, 0xba, 0x73, 0xd3, 0xbc, 0xdc, + 0x38, 0xde, 0xbc, 0xb3, 0x5c, 0xb5, 0x67, 0x96, + 0x7c, 0xd8, 0x89, 0x22, 0xa3, 0x00, 0x9e, 0x28, + 0x35, 0x19, 0xb0, 0x8a, 0x42, 0x69, 0x90, 0x51, + 0x26, 0x3f, 0x18, 0x9f, 0x1e, 0x75, 0xd2, 0xf2, + 0xb2, 0x60, 0xae, 0x8e, 0x6a, 0xab, 0x91, 0xea, + 0x4c, 0xd5, 0x57, 0xe3, 0x5c, 0x2c, 0x8a, 0x89, + 0x42, 0x0a, 0x69, 0x54, 0x66, 0x95, 0x39, 0xb5, + 0xd4, 0xdd, 0x3c, 0xa6, 0x3e, 0xb0, 0x80, 0xb5, + 0x11, 0xe6, 0x11, 0x14, 0xf7, 0x02, 0xba, 0xc8, + 0x8b, 0x31, 0x6d, 0x17, 0x51, 0x12, 0xf8, 0x55, + 0x71, 0xc5, 0xd4, 0xd2, 0x12, 0xd3, 0x46, 0xa7, + 0x3c, 0x69, 0xc5, 0xe1, 0xa7, 0xa4, 0xd9, 0x09, + 0x05, 0x7b, 0xf4, 0x77, 0x9e, 0x26, 0xf3, 0x70, + 0xbf, 0x94, 0x44, 0x73, 0x9c, 0x3e, 0x1a, 0x21, + 0x7c, 0x24, 0xcf, 0x0c, 0x54, 0x6b, 0x31, 0x9a, + 0x8e, 0xc4, 0x6a, 0xcd, 0x52, 0x3b, 0x11, 0x0c, + 0x9c, 0x88, 0xcb, 0x15, 0x19, 0x6c, 0xb5, 0x15, + 0xc3, 0x47, 0x44, 0xce, 0x3b, 0x6d, 0xba, 0x20, + 0xc1, 0x98, 0xbe, 0xf8, 0x91, 0x34, 0x82, 0xa4, + 0x2f, 0x3a, 0x8a, 0xaa, 0x8e, 0x1e, 0x71, 0x25, + 0xd5, 0x20, 0x6f, 0xb8, 0x0a, 0xa5, 0x42, 0x17, + 0x10, 0xb9, 0xc8, 0xe1, 0x27, 0x49, 0x8d, 0xbf, + 0x5e, 0x7e, 0x77, 0xb7, 0x2e, 0x06, 0xf5, 0x7b, + 0xe2, 0xf8, 0x79, 0xf8, 0x57, 0xc6, 0xb8, 0x12, + 0x96, 0xdb, 0x12, 0x22, 0x84, 0xb9, 0x01, 0x1a, + 0x62, 0xb6, 0x52, 0xe3, 0x8c, 0x87, 0x05, 0x89, + 0x44, 0xd1, 0xef, 0x1a, 0x29, 0x2c, 0xa1, 0x6e, + 0xdf, 0x56, 0xdc, 0xef, 0xdb, 0x57, 0x44, 0x94, + 0x0f, 0xbe, 0x1c, 0x97, 0x9f, 0x12, 0x4a, 0x5c, + 0xcd, 0xcf, 0x17, 0x32, 0x44, 0xae, 0x19, 0x91, + 0x8f, 0x1f, 0x89, 0x90, 0xe3, 0xfc, 0x3c, 0x70, + 0xf8, 0x0c, 0x31, 0xbd, 0x22, 0xdd, 0x32, 0x1f, + 0xc1, 0x69, 0xbd, 0x20, 0x3f, 0x10, 0xe3, 0x84, + 0x4f, 0x37, 0xeb, 0xc7, 0x08, 0x9e, 0x6f, 0xd7, + 0x8e, 0x0c, 0x7c, 0xdf, 0x46, 0x36, 0x55, 0x6b, + 0xcc, 0x72, 0xbc, 0xc5, 0x78, 0x9a, 0x26, 0x60, + 0x53, 0x9b, 0x93, 0xa1, 0xe2, 0x15, 0x44, 0x92, + 0xfc, 0x98, 0xee, 0xc5, 0x16, 0x99, 0x55, 0x44, + 0xd6, 0x80, 0x0f, 0x1b, 0xae, 0x18, 0xaa, 0xa0, + 0xa8, 0x80, 0x73, 0xab, 0x9c, 0xdf, 0xc6, 0xe5, + 0x16, 0x29, 0xae, 0xa3, 0x8c, 0xc1, 0x97, 0x8c, + 0x99, 0x6c, 0x97, 0xf5, 0xa8, 0xe7, 0x8e, 0x0a, + 0x1f, 0xe8, 0x91, 0xbd, 0x03, 0x5e, 0xee, 0x38, + 0x28, 0x7f, 0xa2, 0x46, 0xf4, 0x0d, 0x7b, 0xb8, + 0xe0, 0xa1, 0xfe, 0x89, 0x1b, 0xd0, 0x35, 0xee, + 0xe3, 0x82, 0x87, 0xfa, 0x24, 0x6f, 0x40, 0xd7, + 0xbb, 0x8e, 0x0a, 0x1f, 0xe8, 0x91, 0xbd, 0x03, + 0x5e, 0xee, 0x38, 0x28, 0x7f, 0xa2, 0x46, 0xf4, + 0x0d, 0x7b, 0xb8, 0xe0, 0xa1, 0xfe, 0x89, 0x1b, + 0xd0, 0x35, 0xee, 0xe3, 0x82, 0x87, 0xfa, 0x24, + 0x6f, 0x40, 0xd7, 0xbb, 0x8e, 0x0a, 0x1f, 0xe8, + 0x91, 0xbd, 0x03, 0x5e, 0xee, 0x38, 0x28, 0x7f, + 0xa2, 0x46, 0xf4, 0x0d, 0x7b, 0xb8, 0xe0, 0xa1, + 0xfe, 0x89, 0x1b, 0xd0, 0x35, 0xee, 0xe3, 0x82, + 0x87, 0xfa, 0x24, 0x6f, 0x40, 0xd7, 0xbb, 0x8e, + 0x0a, 0x1f, 0xe8, 0x91, 0xbd, 0x03, 0x5e, 0xee, + 0x38, 0x28, 0x7f, 0xa2, 0x46, 0xf4, 0x0d, 0x7b, + 0xb8, 0xe0, 0xa1, 0xfe, 0x89, 0x1b, 0xd0, 0x35, + 0xee, 0xe3, 0x82, 0x87, 0xfa, 0x24, 0x6f, 0x40, + 0xd7, 0xbb, 0x8e, 0x0a, 0x1f, 0xe8, 0x91, 0xbd, + 0x03, 0x5e, 0xee, 0x38, 0x28, 0x7f, 0xa2, 0x46, + 0xf4, 0x0d, 0x7b, 0xb8, 0xe0, 0xa1, 0xfe, 0x89, + 0x1b, 0xd0, 0x35, 0xee, 0xe3, 0x82, 0x87, 0xfa, + 0x24, 0x6f, 0x40, 0xd7, 0xbb, 0x84, 0x44, 0x44, + 0xc9, 0x11, 0x11, 0x3c, 0x49, 0xcc, 0x9f, 0xfb, + 0xba, 0x7f, 0xff, 0xc4, 0x00, 0x61, 0x11, 0x00, + 0x02, 0x01, 0x02, 0x03, 0x02, 0x06, 0x0d, 0x06, + 0x06, 0x0e, 0x08, 0x04, 0x04, 0x07, 0x00, 0x01, + 0x02, 0x03, 0x04, 0x05, 0x00, 0x11, 0x12, 0x13, + 0x21, 0x06, 0x14, 0x16, 0x22, 0x31, 0x54, 0x15, + 0x17, 0x41, 0x51, 0x55, 0x61, 0x92, 0x93, 0x94, + 0xd1, 0xd3, 0xd5, 0xf0, 0x23, 0x32, 0x53, 0x71, + 0x95, 0xd4, 0x07, 0x10, 0x33, 0x42, 0x52, 0xd2, + 0x20, 0x24, 0x40, 0x50, 0x62, 0x72, 0x74, 0x81, + 0xa1, 0xb1, 0xb3, 0xb4, 0xe1, 0xe2, 0x30, 0x34, + 0x36, 0x43, 0x73, 0x82, 0x91, 0xa4, 0x25, 0x64, + 0x80, 0xc1, 0x35, 0x44, 0x83, 0x90, 0x63, 0x65, + 0x70, 0x75, 0xb2, 0xc2, 0xc4, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x02, 0x01, 0x01, 0x3f, 0x01, 0xff, + 0x00, 0xd4, 0x2d, 0x7d, 0xe6, 0xd9, 0x6c, 0xc8, + 0x56, 0xd5, 0xc7, 0x13, 0x91, 0x98, 0x88, 0x67, + 0x24, 0xc4, 0x77, 0x0e, 0xca, 0x30, 0xce, 0x14, + 0xe4, 0x40, 0x66, 0x01, 0x49, 0x04, 0x6a, 0xdd, + 0x83, 0xc3, 0x7b, 0x18, 0xfc, 0xea, 0xa3, 0xe3, + 0x14, 0xe7, 0xff, 0x00, 0x76, 0x07, 0xfa, 0x31, + 0xcb, 0x8b, 0x1f, 0x7e, 0xaf, 0xd1, 0xff, 0x00, + 0xcf, 0x8e, 0x5c, 0x58, 0xfb, 0xf5, 0x7e, 0x8f, + 0xfe, 0x7c, 0x72, 0xe2, 0xc7, 0xdf, 0xab, 0xf4, + 0x7f, 0xf3, 0xe3, 0x97, 0x16, 0x3e, 0xfd, 0x5f, + 0xa3, 0xff, 0x00, 0x9f, 0x1c, 0xb8, 0xb1, 0xf7, + 0xea, 0xfd, 0x1f, 0xfc, 0xf8, 0xe5, 0xc5, 0x8f, + 0xbf, 0x57, 0xe8, 0xff, 0x00, 0xe7, 0xc7, 0x2e, + 0x2c, 0x7d, 0xfa, 0xbf, 0x47, 0xff, 0x00, 0x3e, + 0x39, 0x71, 0x63, 0xef, 0xd5, 0xfa, 0x3f, 0xf9, + 0xf1, 0xcb, 0x8b, 0x1f, 0x7e, 0xaf, 0xd1, 0xff, + 0x00, 0xcf, 0x8e, 0x5c, 0x58, 0xfb, 0xf5, 0x7e, + 0x8f, 0xfe, 0x7c, 0x72, 0xe2, 0xc7, 0xdf, 0xab, + 0xf4, 0x7f, 0xf3, 0xe3, 0x97, 0x16, 0x3e, 0xfd, + 0x5f, 0xa3, 0xff, 0x00, 0x9f, 0x1c, 0xb8, 0xb1, + 0xf7, 0xea, 0xfd, 0x1f, 0xfc, 0xf8, 0xe5, 0xc5, + 0x8f, 0xbf, 0x57, 0xe8, 0xff, 0x00, 0xe7, 0xc7, + 0x2e, 0x2c, 0x7d, 0xfa, 0xbf, 0x47, 0xff, 0x00, + 0x3e, 0x39, 0x71, 0x63, 0xef, 0xd5, 0xfa, 0x3f, + 0xf9, 0xf1, 0xcb, 0x8b, 0x1f, 0x7e, 0xaf, 0xd1, + 0xff, 0x00, 0xcf, 0x8e, 0x5c, 0x58, 0xfb, 0xf5, + 0x7e, 0x8f, 0xfe, 0x7c, 0x51, 0x70, 0x9a, 0xcb, + 0x5c, 0xeb, 0x14, 0x35, 0x8a, 0x92, 0xb1, 0xc9, + 0x63, 0x9d, 0x5a, 0x02, 0xc7, 0x3c, 0x80, 0x56, + 0x70, 0x11, 0x98, 0xfe, 0x6a, 0x87, 0xd6, 0x7b, + 0x8b, 0xfb, 0xf1, 0x78, 0xad, 0x6b, 0x75, 0xb2, + 0xb6, 0xb1, 0x00, 0x32, 0x41, 0x09, 0x31, 0xea, + 0xde, 0xbb, 0x56, 0x22, 0x38, 0xcb, 0x0e, 0xea, + 0x87, 0x65, 0x2c, 0x37, 0x66, 0x01, 0x19, 0x8e, + 0x9c, 0x4d, 0x34, 0xb5, 0x12, 0xbc, 0xd3, 0x3b, + 0x4b, 0x2c, 0x8c, 0x5d, 0xe4, 0x73, 0x9b, 0x33, + 0x1e, 0xe9, 0x3f, 0x19, 0x0d, 0xc3, 0x77, 0xe3, + 0xc8, 0xf7, 0xbf, 0x14, 0x71, 0x49, 0x33, 0xa4, + 0x71, 0x46, 0xf2, 0x49, 0x21, 0xd2, 0x88, 0x8a, + 0x59, 0x9c, 0xf7, 0x95, 0x46, 0x64, 0x9f, 0xab, + 0x15, 0x14, 0x73, 0xd2, 0x84, 0x69, 0x55, 0x0a, + 0x49, 0x98, 0x49, 0x61, 0x9e, 0x0a, 0x98, 0x59, + 0x97, 0xe7, 0x20, 0x9e, 0x9a, 0x49, 0x62, 0xda, + 0x2e, 0x6a, 0x5a, 0x3d, 0x7a, 0xd5, 0x59, 0x19, + 0x94, 0x2b, 0xa9, 0x3f, 0xe9, 0xb8, 0x17, 0x71, + 0x9e, 0xba, 0xdb, 0x24, 0x55, 0x0e, 0xd2, 0x3d, + 0x1c, 0xa2, 0x25, 0x91, 0x8e, 0x6c, 0xd1, 0x32, + 0x86, 0x40, 0xc4, 0xef, 0x25, 0x39, 0xca, 0x09, + 0xdf, 0xa7, 0x48, 0xee, 0x7e, 0x2a, 0x3a, 0x39, + 0xeb, 0xea, 0x61, 0xa4, 0xa6, 0x4d, 0x73, 0xce, + 0xda, 0x51, 0x7a, 0x07, 0x46, 0x65, 0x98, 0xfe, + 0x6a, 0x22, 0x82, 0xce, 0xdd, 0xc5, 0x04, 0xe2, + 0x2f, 0xc1, 0xc1, 0x28, 0x0c, 0xf7, 0x75, 0x8e, + 0x4c, 0x86, 0xa5, 0x8a, 0x8b, 0x6a, 0x80, 0xf7, + 0x40, 0x77, 0xaa, 0x84, 0x9c, 0xbb, 0xfa, 0x06, + 0x78, 0xed, 0x6f, 0x1f, 0x86, 0xdb, 0xec, 0xd5, + 0xf7, 0x86, 0x3b, 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, + 0x35, 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, + 0xbe, 0xcd, 0x5f, 0x78, 0x63, 0xb5, 0xbc, 0x7e, + 0x1b, 0x6f, 0xb3, 0x57, 0xde, 0x18, 0xed, 0x6f, + 0x1f, 0x86, 0xdb, 0xec, 0xd5, 0xf7, 0x86, 0x3b, + 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, 0x35, 0x7d, 0xe1, + 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, + 0x78, 0x63, 0xb5, 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, + 0x57, 0xde, 0x18, 0xed, 0x6f, 0x1f, 0x86, 0xdb, + 0xec, 0xd5, 0xf7, 0x86, 0x3b, 0x5b, 0xc7, 0xe1, + 0xb6, 0xfb, 0x35, 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, + 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, 0x78, 0x63, 0xb5, + 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, 0x57, 0xde, 0x18, + 0xed, 0x6f, 0x1f, 0x86, 0xdb, 0xec, 0xd5, 0xf7, + 0x86, 0x3b, 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, 0x35, + 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, + 0xcd, 0x5f, 0x78, 0x63, 0xb5, 0xbc, 0x7e, 0x1b, + 0x6f, 0xb3, 0x57, 0xde, 0x18, 0xed, 0x6f, 0x1f, + 0x86, 0xdb, 0xec, 0xd5, 0xf7, 0x86, 0x3b, 0x5b, + 0xc7, 0xe1, 0xb6, 0xfb, 0x35, 0x7d, 0xe1, 0x8e, + 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, 0x78, + 0x63, 0xb5, 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, 0x57, + 0xde, 0x18, 0xbf, 0xf0, 0x5a, 0xb2, 0xc4, 0x16, + 0x63, 0x22, 0x55, 0x52, 0x3b, 0x04, 0x13, 0xc6, + 0xa5, 0x0a, 0x39, 0x04, 0x85, 0x96, 0x33, 0x9e, + 0x8d, 0x59, 0x1d, 0x24, 0x33, 0x29, 0xe8, 0xcc, + 0x1d, 0xdf, 0x8a, 0xc7, 0xc0, 0xca, 0xcb, 0xb5, + 0x3a, 0xd6, 0x4d, 0x50, 0x94, 0x34, 0xd2, 0x6f, + 0x84, 0xb4, 0x66, 0x59, 0xa5, 0x50, 0x72, 0xd6, + 0x22, 0xd7, 0x18, 0x54, 0x39, 0x73, 0x4b, 0x38, + 0x2e, 0x37, 0x81, 0xa4, 0x86, 0x3d, 0xad, 0xe3, + 0xf0, 0xdb, 0x7d, 0x9a, 0xbe, 0xf0, 0xc7, 0x6b, + 0x78, 0xfc, 0x36, 0xdf, 0x66, 0xaf, 0xbc, 0x31, + 0xda, 0xde, 0x3f, 0x0d, 0xb7, 0xd9, 0xab, 0xef, + 0x0c, 0x76, 0xb7, 0x8f, 0xc3, 0x6d, 0xf6, 0x6a, + 0xfb, 0xc3, 0x1d, 0xad, 0xe3, 0xf0, 0xdb, 0x7d, + 0x9a, 0xbe, 0xf0, 0xc7, 0x6b, 0x78, 0xfc, 0x36, + 0xdf, 0x66, 0xaf, 0xbc, 0x31, 0xda, 0xde, 0x3f, + 0x0d, 0xb7, 0xd9, 0xab, 0xef, 0x0c, 0x76, 0xb7, + 0x8f, 0xc3, 0x6d, 0xf6, 0x6a, 0xfb, 0xc3, 0x1d, + 0xad, 0xe3, 0xf0, 0xdb, 0x7d, 0x9a, 0xbe, 0xf0, + 0xc7, 0x6b, 0x78, 0xfc, 0x36, 0xdf, 0x66, 0xaf, + 0xbc, 0x31, 0xda, 0xde, 0x3f, 0x0d, 0xb7, 0xd9, + 0xab, 0xef, 0x0c, 0x76, 0xb7, 0x8f, 0xc3, 0x6d, + 0xf6, 0x6a, 0xfb, 0xc3, 0x1d, 0xad, 0xe3, 0xf0, + 0xdb, 0x7d, 0x9a, 0xbe, 0xf0, 0xc7, 0x6b, 0x78, + 0xfc, 0x36, 0xdf, 0x66, 0xaf, 0xbc, 0x31, 0xda, + 0xde, 0x3f, 0x0d, 0xb7, 0xd9, 0xab, 0xef, 0x0c, + 0x76, 0xb7, 0x8f, 0xc3, 0x6d, 0xf6, 0x6a, 0xfb, + 0xc3, 0x1d, 0xad, 0xe3, 0xf0, 0xdb, 0x7d, 0x9a, + 0xbe, 0xf0, 0xc7, 0x6b, 0x78, 0xfc, 0x36, 0xdf, + 0x66, 0xaf, 0xbc, 0x31, 0xda, 0xde, 0x3f, 0x0d, + 0xb7, 0xd9, 0xab, 0xef, 0x0c, 0x76, 0xb7, 0x8f, + 0xc3, 0x6d, 0xf6, 0x6a, 0xfb, 0xc3, 0x0d, 0xf8, + 0x37, 0x5c, 0x8e, 0x8b, 0xd6, 0x6d, 0xdc, 0x0d, + 0x6f, 0xd2, 0xbf, 0xce, 0xc2, 0xb5, 0xc8, 0xf2, + 0x4e, 0x2e, 0xd6, 0x9a, 0xbb, 0x35, 0x59, 0xa4, + 0xab, 0x0b, 0x9e, 0x9d, 0x71, 0xc8, 0x84, 0x98, + 0xe6, 0x8c, 0x92, 0x03, 0xa1, 0x20, 0x1e, 0x90, + 0x43, 0x02, 0x01, 0x56, 0x04, 0x1f, 0xd9, 0xf0, + 0xaf, 0xfd, 0x9f, 0xb9, 0x7f, 0xc3, 0x8b, 0xfb, + 0xcc, 0x3f, 0x8b, 0x83, 0xd3, 0x25, 0xb5, 0x2a, + 0xae, 0xf2, 0x8c, 0xd6, 0x39, 0x69, 0x28, 0x63, + 0x04, 0x6e, 0x7e, 0x33, 0x30, 0x92, 0xaf, 0x2f, + 0xe1, 0x2d, 0x1c, 0x32, 0x0e, 0x8d, 0xdb, 0x55, + 0x38, 0xb6, 0xd1, 0xd5, 0xd2, 0x5d, 0x6f, 0x94, + 0x56, 0xf6, 0x6e, 0x35, 0x1d, 0x1d, 0x42, 0x52, + 0x32, 0x48, 0xa8, 0xc4, 0x1a, 0x8a, 0x76, 0x89, + 0x96, 0x47, 0x65, 0x51, 0x9c, 0x27, 0x3c, 0xcb, + 0x01, 0xfc, 0xf8, 0xaa, 0x37, 0x7a, 0x7a, 0x0b, + 0x84, 0x5c, 0x22, 0x9c, 0x32, 0xcd, 0x4e, 0x9c, + 0x46, 0x09, 0xea, 0x69, 0xea, 0x2a, 0x5a, 0xac, + 0x4c, 0xba, 0x26, 0xa7, 0x58, 0xa4, 0x91, 0xd1, + 0x23, 0x51, 0x20, 0x9e, 0x43, 0xa5, 0x0a, 0x9d, + 0x1c, 0xe6, 0x20, 0x0e, 0x10, 0x01, 0x51, 0x6a, + 0xb7, 0x30, 0x1f, 0x29, 0x6e, 0x86, 0xdf, 0x13, + 0x78, 0xe0, 0xaf, 0xa1, 0x8e, 0x48, 0xb3, 0xdd, + 0xdc, 0x9a, 0x9e, 0x50, 0x37, 0xee, 0xd5, 0xe3, + 0xc5, 0x76, 0xce, 0x1b, 0x7d, 0xae, 0x8b, 0x34, + 0x43, 0x4e, 0xd5, 0x54, 0x21, 0x9d, 0x91, 0x17, + 0x6c, 0x89, 0x43, 0x2d, 0x5c, 0x6e, 0xee, 0x44, + 0x6b, 0xb7, 0x66, 0xaa, 0xa6, 0xcd, 0xd9, 0x50, + 0xed, 0x34, 0x4a, 0x55, 0x19, 0xc8, 0xbc, 0x9c, + 0x92, 0x52, 0xd4, 0xf2, 0xd1, 0x6d, 0xcc, 0x1b, + 0x3a, 0x5a, 0x94, 0x58, 0xaa, 0x98, 0xc3, 0x2d, + 0x59, 0x35, 0x12, 0x44, 0xb1, 0xc3, 0xf2, 0x62, + 0x39, 0x16, 0x18, 0x65, 0x30, 0x44, 0x19, 0x0e, + 0xc1, 0x0c, 0xcf, 0x4f, 0x3c, 0x9f, 0xe9, 0xff, + 0x00, 0x07, 0xdf, 0xea, 0x97, 0x1f, 0xe5, 0x10, + 0xff, 0x00, 0x66, 0x7f, 0x17, 0x00, 0x72, 0xec, + 0xcc, 0xec, 0x46, 0x65, 0x2d, 0xb3, 0x15, 0xf1, + 0x31, 0xa8, 0xa4, 0x42, 0x47, 0xfc, 0x8e, 0xc3, + 0xea, 0x27, 0x1b, 0x5c, 0x6d, 0x71, 0xb5, 0xc6, + 0xd7, 0x1b, 0x5c, 0x6d, 0x71, 0xb5, 0xc0, 0xe1, + 0x15, 0x5f, 0x29, 0x0d, 0xa1, 0xe2, 0xa7, 0xe2, + 0x79, 0xac, 0x6b, 0x28, 0x49, 0x78, 0xc6, 0xd5, + 0xe9, 0x8c, 0xf1, 0x86, 0x63, 0x36, 0xcb, 0x26, + 0x65, 0x61, 0xba, 0x11, 0xb8, 0x77, 0xf7, 0xe2, + 0xcf, 0xc2, 0x49, 0xee, 0x15, 0xf7, 0x28, 0x6a, + 0x05, 0x24, 0x54, 0x54, 0x91, 0xcb, 0x34, 0x13, + 0xae, 0xb4, 0x26, 0x04, 0xa9, 0x31, 0x2c, 0xb3, + 0xcb, 0x24, 0xed, 0x16, 0x9d, 0x9a, 0x97, 0x66, + 0x54, 0x41, 0xdd, 0xdc, 0xbb, 0xb1, 0x0f, 0x08, + 0x2d, 0x35, 0x14, 0xf5, 0x15, 0x50, 0xd6, 0xc7, + 0x24, 0x14, 0x83, 0x3a, 0x96, 0x09, 0x28, 0x68, + 0x97, 0x76, 0x4c, 0x62, 0x68, 0x84, 0xc5, 0x4e, + 0x79, 0x2b, 0xac, 0x6c, 0xac, 0x43, 0x00, 0x49, + 0x56, 0x00, 0x70, 0xa2, 0xc6, 0x76, 0xbf, 0xf8, + 0x94, 0x1f, 0x22, 0x8b, 0x24, 0x9b, 0xa5, 0x1c, + 0xd6, 0xd2, 0x06, 0x8c, 0xe2, 0xf9, 0x56, 0xcd, + 0x80, 0x68, 0xe1, 0xd7, 0x22, 0x1c, 0xc3, 0xa8, + 0xd2, 0xd9, 0x3d, 0xee, 0xdb, 0x1d, 0x1a, 0xdc, + 0x1e, 0xb2, 0x25, 0xa3, 0x93, 0x2d, 0x13, 0xf3, + 0x88, 0x72, 0x4e, 0x5a, 0x56, 0x30, 0x86, 0x52, + 0xfb, 0x8e, 0x71, 0xec, 0xf5, 0xae, 0x4d, 0xa9, + 0x46, 0x93, 0x97, 0x67, 0xad, 0x7c, 0x4f, 0xb2, + 0x1c, 0x72, 0x33, 0x47, 0xac, 0x46, 0x67, 0x0b, + 0x23, 0x05, 0x90, 0x90, 0xa1, 0x1e, 0x31, 0x19, + 0x96, 0x36, 0xde, 0x37, 0x3c, 0x6b, 0x92, 0x90, + 0xc7, 0x25, 0x20, 0xe2, 0x8e, 0xfd, 0x6c, 0xaf, + 0x91, 0xe2, 0xa4, 0xab, 0x59, 0x9e, 0x38, 0xcc, + 0xac, 0x36, 0x73, 0x46, 0x36, 0x4a, 0xda, 0x1a, + 0x40, 0xd2, 0xc5, 0x1a, 0x3a, 0x86, 0xdc, 0x4a, + 0x33, 0x77, 0xfa, 0x37, 0xe2, 0x96, 0xbe, 0x0a, + 0xd8, 0x12, 0xa6, 0x96, 0x4d, 0xac, 0x12, 0x67, + 0xa2, 0x40, 0xae, 0x9a, 0xb4, 0x92, 0xa7, 0x9b, + 0x22, 0x23, 0xf4, 0x83, 0xd2, 0xbb, 0xfb, 0x9b, + 0xb1, 0xb5, 0xc6, 0xd7, 0x1b, 0x5c, 0x6d, 0x71, + 0xb5, 0xc6, 0xd7, 0x1c, 0x2c, 0x60, 0xfc, 0x1e, + 0xb9, 0x02, 0x3a, 0x12, 0x9d, 0x87, 0x88, 0x8a, + 0xba, 0x7c, 0x88, 0xf8, 0xe8, 0xcf, 0xf1, 0x5b, + 0xd8, 0x25, 0x05, 0x12, 0xa8, 0xc8, 0x0a, 0x4a, + 0x60, 0x07, 0xff, 0x00, 0x45, 0x31, 0xb5, 0xc6, + 0xd7, 0x17, 0x4b, 0xb5, 0xe2, 0x3b, 0xa4, 0x16, + 0xdb, 0x54, 0x36, 0xf9, 0x1a, 0x5a, 0x36, 0xaa, + 0x63, 0x5a, 0x27, 0xdd, 0xa2, 0x56, 0x46, 0x01, + 0xa2, 0x9a, 0x31, 0x96, 0x5a, 0x72, 0x05, 0x09, + 0xcf, 0x3d, 0xfd, 0xcc, 0x5a, 0xef, 0xd2, 0xca, + 0x97, 0x14, 0xbb, 0xa5, 0x35, 0x15, 0x45, 0xae, + 0x40, 0xb5, 0x52, 0x44, 0xe7, 0x8a, 0x94, 0x7c, + 0xcc, 0x6e, 0x9a, 0xd9, 0xd9, 0x77, 0x00, 0xba, + 0x4b, 0xb9, 0x66, 0xc8, 0x8c, 0x8b, 0x6c, 0x96, + 0x2e, 0x11, 0x5a, 0x27, 0xa7, 0x9e, 0xae, 0x2a, + 0xd4, 0x78, 0x29, 0x74, 0xf1, 0x86, 0x11, 0xcf, + 0xae, 0x20, 0xc4, 0x2a, 0xb3, 0x42, 0x61, 0x13, + 0xe8, 0x25, 0x80, 0xd6, 0x23, 0x29, 0xf3, 0xb9, + 0xdc, 0xd6, 0xcb, 0xb2, 0x34, 0xbb, 0x61, 0x4f, + 0xb6, 0x5d, 0xb3, 0x53, 0x71, 0xb1, 0x1e, 0x4d, + 0x99, 0xa6, 0x0c, 0x17, 0x6b, 0x9e, 0x9d, 0x39, + 0x66, 0x46, 0xec, 0xf5, 0xff, 0x00, 0x07, 0x0f, + 0xc2, 0x4b, 0x3c, 0x71, 0x53, 0xcf, 0x25, 0x7c, + 0x69, 0x15, 0x56, 0xbe, 0x2e, 0xcd, 0x1c, 0xe0, + 0xc9, 0xa1, 0xcc, 0x6c, 0xda, 0x36, 0x3b, 0x44, + 0x40, 0xe0, 0xae, 0xd2, 0x45, 0x58, 0xce, 0x5b, + 0x98, 0xe2, 0xa6, 0xfd, 0x6b, 0xa4, 0x95, 0x20, + 0xa8, 0xac, 0x48, 0xe5, 0x91, 0x23, 0x92, 0x34, + 0xd1, 0x2c, 0x9b, 0x44, 0x95, 0xb4, 0x46, 0xc8, + 0xd1, 0x44, 0xe8, 0xc1, 0x98, 0x6e, 0xd2, 0xc4, + 0xe5, 0xce, 0x39, 0x2e, 0xfc, 0x70, 0x82, 0xf5, + 0x3d, 0xa6, 0x9a, 0x09, 0x29, 0xe3, 0x85, 0xa4, + 0xa8, 0xa9, 0x4a, 0x7d, 0xad, 0x56, 0xd3, 0x8a, + 0xc1, 0xa8, 0x16, 0xd7, 0x30, 0x8b, 0x29, 0x08, + 0x21, 0x48, 0x19, 0x32, 0xe5, 0xbd, 0xce, 0x7a, + 0x34, 0x35, 0x8a, 0xef, 0x3d, 0xd2, 0x89, 0xa7, + 0xa8, 0x8a, 0x38, 0xe4, 0x8e, 0xa2, 0x68, 0x0b, + 0x53, 0x96, 0x34, 0xd3, 0xec, 0xc8, 0xf9, 0x6a, + 0x72, 0xf9, 0xb6, 0xcc, 0xe7, 0xa7, 0x7b, 0x3e, + 0xf5, 0x27, 0x56, 0xfd, 0x2b, 0x73, 0xbc, 0x57, + 0x47, 0x59, 0x15, 0xb2, 0xd3, 0x4d, 0x0d, 0x45, + 0x6b, 0xc0, 0x6a, 0x65, 0x7a, 0xa6, 0x65, 0xa6, + 0xa7, 0x80, 0x3e, 0x80, 0x5c, 0x46, 0x51, 0xdc, + 0xb9, 0xcd, 0x46, 0x97, 0x5d, 0x27, 0x4e, 0xe7, + 0x04, 0x81, 0x27, 0x09, 0x2e, 0x70, 0x5a, 0xee, + 0x73, 0x54, 0x50, 0xc5, 0x05, 0xca, 0xd9, 0x3d, + 0x3c, 0x2e, 0x19, 0x66, 0x7a, 0x19, 0xb6, 0xf2, + 0xc6, 0xa1, 0xe2, 0x22, 0x45, 0x7f, 0xc9, 0x49, + 0xab, 0x46, 0xdd, 0x88, 0xce, 0x39, 0x09, 0xc9, + 0xf4, 0x0a, 0xbb, 0xf5, 0xb2, 0x80, 0xc4, 0x95, + 0xd5, 0x91, 0x53, 0xcb, 0x32, 0x86, 0x54, 0x22, + 0x47, 0x39, 0x1c, 0x86, 0xa6, 0x11, 0xa4, 0x9b, + 0x34, 0xcf, 0x70, 0x69, 0x34, 0xa9, 0xc8, 0xe4, + 0x4e, 0x96, 0xca, 0xae, 0xf3, 0x6f, 0xa0, 0x86, + 0x3a, 0x8a, 0xba, 0xb8, 0xa2, 0x86, 0x6c, 0xb6, + 0x2f, 0xbe, 0x4d, 0xa8, 0x20, 0x36, 0xa8, 0x96, + 0x15, 0x91, 0xe4, 0x4c, 0x88, 0x25, 0xd1, 0x4a, + 0x00, 0xcb, 0x99, 0x1a, 0x97, 0x3a, 0xbb, 0xf8, + 0x59, 0xec, 0x7c, 0x49, 0xe9, 0xa7, 0xa3, 0xba, + 0x4d, 0x2a, 0xcb, 0x3b, 0x6a, 0x3a, 0x63, 0x8d, + 0x51, 0xb3, 0x8c, 0x87, 0x8c, 0x44, 0xeb, 0xa9, + 0x84, 0xa2, 0x64, 0x63, 0x19, 0x05, 0x5d, 0x15, + 0x95, 0x86, 0x1e, 0xf5, 0x15, 0x55, 0x45, 0xa9, + 0xa8, 0x2e, 0x51, 0x25, 0x3d, 0x45, 0x54, 0xf0, + 0xc9, 0x1b, 0xd2, 0x4f, 0x9d, 0x79, 0x8c, 0x47, + 0xf2, 0x54, 0xf2, 0x49, 0x4b, 0x92, 0x18, 0xc9, + 0x3a, 0xa4, 0xd7, 0x1a, 0x1d, 0x5a, 0x75, 0x92, + 0x08, 0x03, 0x84, 0x96, 0x66, 0x92, 0x28, 0x45, + 0x7c, 0x5b, 0x49, 0xa4, 0x68, 0xa3, 0x42, 0x93, + 0x29, 0x32, 0x2b, 0xec, 0xca, 0xb6, 0xa8, 0x80, + 0x8f, 0x9f, 0xcd, 0x56, 0x90, 0xa2, 0xb9, 0xf9, + 0x85, 0xb1, 0x57, 0x7e, 0xb5, 0xd0, 0x4c, 0x29, + 0xeb, 0x2b, 0x63, 0x82, 0x66, 0x4d, 0x61, 0x18, + 0x48, 0xc7, 0x4e, 0xfd, 0xec, 0x63, 0x8d, 0xd5, + 0x33, 0xc8, 0xe9, 0x0e, 0x54, 0xb7, 0xe6, 0x83, + 0x98, 0xc5, 0x3d, 0x64, 0x35, 0x50, 0xc7, 0x53, + 0x4e, 0xfb, 0x48, 0x26, 0x5d, 0x71, 0xc8, 0x15, + 0x97, 0x52, 0xe6, 0x46, 0x7a, 0x5d, 0x55, 0xc6, + 0xf0, 0x7e, 0x72, 0x83, 0x8d, 0xae, 0x36, 0xb8, + 0xfc, 0x22, 0x10, 0xcb, 0x68, 0x6c, 0xb9, 0xda, + 0xab, 0xd7, 0x3e, 0xee, 0x59, 0x52, 0x1c, 0xbe, + 0xac, 0xfa, 0x3e, 0xb3, 0xdf, 0xfd, 0x9f, 0x0a, + 0xff, 0x00, 0xd9, 0xfb, 0x97, 0xfc, 0x38, 0xbf, + 0xbc, 0xc3, 0xf8, 0x8d, 0xe3, 0x89, 0x5b, 0x6d, + 0xf4, 0x56, 0xe7, 0x85, 0x9b, 0xe5, 0xea, 0xab, + 0xcc, 0xb4, 0x70, 0xce, 0x38, 0xcc, 0xaf, 0xa2, + 0x34, 0x1c, 0x6e, 0x17, 0x1a, 0xa2, 0x81, 0x14, + 0x17, 0x8c, 0x69, 0x21, 0xf2, 0xd6, 0xd9, 0x10, + 0x2a, 0x6e, 0x74, 0x55, 0x29, 0x2d, 0x53, 0x4e, + 0xa2, 0xb2, 0xb2, 0xc5, 0xc5, 0x2a, 0xa2, 0x58, + 0x64, 0x5f, 0xdb, 0xd0, 0xd4, 0x40, 0xa9, 0x96, + 0x98, 0x84, 0x40, 0x4d, 0x4f, 0x18, 0x61, 0xa0, + 0xec, 0xd3, 0x66, 0x41, 0x2a, 0x4a, 0xae, 0x29, + 0x2a, 0xe0, 0x9a, 0xdb, 0x55, 0x6d, 0xad, 0x94, + 0x46, 0x23, 0xce, 0xae, 0xdb, 0x33, 0x2b, 0xbe, + 0xca, 0xa7, 0x30, 0x25, 0xa7, 0xe6, 0x23, 0xb2, + 0xc5, 0x54, 0x9e, 0x20, 0x8b, 0x2a, 0x87, 0x6e, + 0x93, 0x8a, 0x7b, 0xa5, 0xb3, 0x8e, 0x81, 0x55, + 0x2e, 0xaa, 0x27, 0xb5, 0xda, 0xd2, 0x42, 0x22, + 0x94, 0xfe, 0xdb, 0xb7, 0x6c, 0x26, 0x58, 0xb4, + 0xe8, 0xcc, 0xe6, 0xf1, 0xbc, 0x05, 0xb4, 0x98, + 0xf2, 0x90, 0xf3, 0x8a, 0x9c, 0xf1, 0x5d, 0x5f, + 0x1d, 0x55, 0xae, 0x95, 0x0c, 0x99, 0xd5, 0xf6, + 0x46, 0xe3, 0x55, 0x3a, 0x69, 0x71, 0xa4, 0x54, + 0xec, 0x4a, 0xb6, 0xa2, 0xba, 0x0e, 0xa6, 0x57, + 0xdc, 0xac, 0x48, 0xcb, 0x78, 0x1f, 0xb8, 0x3f, + 0x07, 0xdf, 0xea, 0x97, 0x1f, 0xe5, 0x10, 0xff, + 0x00, 0x66, 0x7f, 0x17, 0x02, 0x1b, 0x45, 0xd6, + 0xa4, 0xff, 0x00, 0xf9, 0x74, 0xa3, 0xfe, 0xea, + 0x8f, 0x1b, 0x6f, 0x8c, 0xf1, 0xb6, 0xf8, 0xcf, + 0x1b, 0x6f, 0x8c, 0xf1, 0xb6, 0xf8, 0xcf, 0x1b, + 0x6f, 0x8c, 0xf1, 0xb6, 0xf8, 0xcf, 0x1b, 0x6f, + 0x8c, 0xf1, 0x74, 0x79, 0x23, 0xaf, 0xbd, 0xd6, + 0xc5, 0x9e, 0xd2, 0x8e, 0xa2, 0xcf, 0x52, 0x9d, + 0x3b, 0xf4, 0xc7, 0x34, 0x2c, 0x01, 0xfe, 0x2c, + 0xc7, 0x3c, 0x45, 0x47, 0x3e, 0xc6, 0xbe, 0x96, + 0x05, 0x63, 0x2b, 0x70, 0x7a, 0x81, 0x8a, 0x00, + 0x4b, 0x3b, 0x34, 0xb1, 0xd4, 0x4a, 0x83, 0xba, + 0xce, 0x73, 0x60, 0x17, 0xa4, 0x9e, 0x68, 0xcc, + 0xee, 0xc4, 0x3f, 0x2d, 0x4d, 0x74, 0xaa, 0x8a, + 0x49, 0xe4, 0x54, 0xb4, 0x71, 0x59, 0x09, 0xb7, + 0x53, 0x50, 0x43, 0xab, 0x5c, 0x25, 0x61, 0x1c, + 0x5e, 0x56, 0xda, 0xc8, 0x9a, 0x73, 0xd6, 0x63, + 0xd4, 0xca, 0x01, 0x72, 0x33, 0x5c, 0xe0, 0xa5, + 0xa4, 0x17, 0x7e, 0x0f, 0xa7, 0x15, 0x84, 0xc7, + 0xd8, 0x40, 0xd2, 0x29, 0x89, 0x0a, 0xbc, 0x9a, + 0x1c, 0xeb, 0x90, 0x15, 0xc9, 0xdf, 0x36, 0x27, + 0x53, 0x02, 0x7f, 0xa3, 0x14, 0xdf, 0x23, 0x45, + 0x65, 0xac, 0x9e, 0x9d, 0xaa, 0x28, 0x28, 0xaa, + 0xae, 0x42, 0xa2, 0x21, 0x18, 0x93, 0x66, 0x65, + 0x94, 0x08, 0x65, 0x68, 0xdb, 0x73, 0x28, 0x2b, + 0x97, 0x3b, 0x72, 0x90, 0x07, 0x4b, 0xe2, 0xab, + 0x29, 0xe8, 0x6f, 0x35, 0x90, 0x40, 0xf4, 0xf4, + 0x15, 0xd5, 0xd6, 0xfe, 0x2d, 0x01, 0x4d, 0x9e, + 0xad, 0x93, 0x91, 0x2c, 0xcb, 0x18, 0xe6, 0xaa, + 0xb1, 0x6c, 0xb9, 0xbb, 0x89, 0xcc, 0x67, 0x9a, + 0x63, 0x84, 0xa0, 0xd0, 0x35, 0x3d, 0x6d, 0x0c, + 0x6b, 0x1e, 0xba, 0x6a, 0xab, 0x4b, 0xa4, 0x41, + 0x51, 0x42, 0xd5, 0x2b, 0x18, 0x58, 0x2a, 0x8c, + 0x81, 0x57, 0x69, 0x3e, 0xb6, 0xd3, 0xbf, 0x14, + 0x28, 0x28, 0xa8, 0xe9, 0x69, 0x07, 0xfb, 0x88, + 0x23, 0x8c, 0xf8, 0xd8, 0x28, 0xd6, 0x7f, 0x9d, + 0xf5, 0x1c, 0x6d, 0xbe, 0x33, 0xc6, 0xdb, 0xe3, + 0x3c, 0x6d, 0xbe, 0x33, 0xc6, 0xdb, 0xe3, 0x3c, + 0x6d, 0xbe, 0x33, 0xc6, 0xdb, 0xe3, 0x3c, 0x70, + 0x96, 0x5d, 0x56, 0x2b, 0x88, 0xef, 0xc7, 0x0f, + 0xf7, 0xa8, 0x30, 0x71, 0x47, 0x37, 0xed, 0x4a, + 0x4f, 0xe4, 0xd4, 0xfd, 0xdf, 0xff, 0x00, 0x09, + 0x31, 0xb6, 0xf8, 0xcf, 0x1b, 0x6f, 0x8c, 0xf1, + 0x74, 0xa6, 0x4b, 0x87, 0x08, 0x29, 0x62, 0x92, + 0x6a, 0xaa, 0x75, 0x16, 0xb9, 0x1b, 0x69, 0x49, + 0x28, 0x86, 0x5c, 0xd6, 0x76, 0xe6, 0xeb, 0x29, + 0x27, 0x34, 0xe7, 0xbc, 0x65, 0xde, 0xdf, 0x8b, + 0xa5, 0xa2, 0x1a, 0x3b, 0x50, 0x4a, 0x28, 0xa7, + 0xa9, 0x0b, 0x5f, 0x05, 0x6d, 0x78, 0x91, 0xf6, + 0xd5, 0x35, 0x91, 0xc7, 0xaf, 0x5e, 0xb2, 0x02, + 0x86, 0xd3, 0xaf, 0xe6, 0xa2, 0x28, 0xcb, 0x37, + 0x20, 0xb6, 0xa6, 0x34, 0x9c, 0x5a, 0xef, 0x72, + 0xa9, 0x9e, 0x8a, 0x91, 0xa9, 0xad, 0xef, 0x6b, + 0x92, 0x86, 0xa0, 0x98, 0x84, 0x09, 0x34, 0xd2, + 0x9e, 0x6a, 0x84, 0x4e, 0x61, 0x68, 0xd4, 0x83, + 0xac, 0x1d, 0x59, 0x69, 0xcf, 0x2c, 0xd7, 0x19, + 0xdc, 0x05, 0x3f, 0x64, 0xf2, 0x6e, 0x31, 0x09, + 0xec, 0x00, 0x52, 0x4f, 0xe4, 0x78, 0x9b, 0x53, + 0x19, 0x37, 0x0e, 0xe5, 0x4b, 0x2c, 0x99, 0xf4, + 0x6d, 0x39, 0xbb, 0xf1, 0x76, 0xa7, 0xe2, 0x15, + 0x51, 0x23, 0xb4, 0x89, 0x4c, 0xd6, 0x98, 0x68, + 0x61, 0x74, 0xb7, 0xd3, 0xd7, 0xeb, 0x78, 0xf3, + 0x12, 0x40, 0x04, 0xec, 0x82, 0x09, 0x1d, 0x89, + 0x97, 0x6b, 0x19, 0xd7, 0xcf, 0xdd, 0xdd, 0xca, + 0xd9, 0x4e, 0xa9, 0x78, 0xa3, 0x8e, 0xa2, 0x3d, + 0xa1, 0xa7, 0xe0, 0xec, 0x2a, 0xbc, 0x62, 0x25, + 0xd5, 0x1b, 0x0a, 0x9e, 0x6e, 0x6b, 0x9c, 0x8a, + 0x92, 0xc6, 0x87, 0x47, 0x35, 0xc9, 0x5c, 0xb7, + 0x1c, 0x70, 0x92, 0x75, 0xe3, 0x34, 0x3d, 0x90, + 0x8e, 0xa2, 0x5b, 0x31, 0x59, 0xc4, 0xe9, 0x4f, + 0x9f, 0xfa, 0xd9, 0x53, 0xb1, 0x69, 0x32, 0x65, + 0xcf, 0x48, 0xe7, 0x44, 0x09, 0x03, 0x30, 0xc4, + 0x06, 0xd2, 0x46, 0x38, 0x2f, 0x55, 0x5c, 0xb3, + 0xec, 0x2a, 0x0d, 0x79, 0xa3, 0xe2, 0x87, 0xb1, + 0xa2, 0x54, 0xd1, 0x00, 0xa7, 0x49, 0x89, 0xd6, + 0xfb, 0xc0, 0xda, 0x10, 0x51, 0x23, 0x3c, 0xf3, + 0xa5, 0xb2, 0x07, 0x65, 0xa4, 0x8a, 0xea, 0xb3, + 0x69, 0xbc, 0xf6, 0x52, 0x68, 0x66, 0x92, 0x8a, + 0xa6, 0x84, 0x52, 0x49, 0x24, 0x2b, 0xb4, 0x30, + 0x4d, 0x1c, 0xba, 0xd3, 0x50, 0xcc, 0x64, 0xb2, + 0x0d, 0xc0, 0x66, 0xba, 0x8e, 0x64, 0x66, 0x54, + 0xe2, 0xe7, 0x74, 0xa8, 0xba, 0x58, 0xae, 0x92, + 0xb5, 0x2b, 0x43, 0x49, 0xb6, 0xa5, 0x5a, 0x16, + 0x7d, 0x42, 0x59, 0xa2, 0x15, 0x30, 0xea, 0x76, + 0x43, 0x98, 0xcb, 0x50, 0x39, 0x32, 0x1d, 0x3b, + 0xca, 0x64, 0x4c, 0x6c, 0xed, 0x57, 0x51, 0x4d, + 0x41, 0x71, 0xba, 0x3d, 0xca, 0x85, 0xea, 0x85, + 0xc6, 0x08, 0x05, 0x0c, 0x82, 0x15, 0x98, 0x10, + 0xb0, 0x08, 0x9a, 0x05, 0x2d, 0xf9, 0x26, 0x12, + 0x65, 0x99, 0x4e, 0x7e, 0xe5, 0x6c, 0xb7, 0xae, + 0x68, 0xaf, 0x6b, 0xec, 0x15, 0x55, 0xd6, 0x9a, + 0x4a, 0x8a, 0x58, 0x29, 0x2a, 0x61, 0x74, 0xd9, + 0x09, 0xf8, 0xac, 0x93, 0x4b, 0x24, 0x90, 0xa4, + 0x88, 0xfc, 0xdd, 0x42, 0x37, 0x55, 0x0a, 0xe4, + 0x10, 0x43, 0x01, 0xbe, 0x3c, 0x56, 0x42, 0xb5, + 0xf4, 0xb6, 0x2a, 0x7a, 0x5a, 0x47, 0xb5, 0x47, + 0x53, 0x57, 0x5f, 0xb3, 0x56, 0x2e, 0xe7, 0x4c, + 0xc2, 0x22, 0xb3, 0x66, 0xd9, 0x3e, 0x89, 0x97, + 0x2c, 0xb3, 0xdd, 0xa7, 0x72, 0x67, 0x18, 0x42, + 0x60, 0xaa, 0xda, 0xbf, 0x05, 0x62, 0x68, 0xc4, + 0x52, 0xdb, 0xeb, 0x6a, 0xa8, 0xea, 0x23, 0x55, + 0xd2, 0x12, 0x48, 0x44, 0x4a, 0x5b, 0x48, 0xdc, + 0x36, 0x9f, 0x3d, 0xb2, 0xdc, 0x5c, 0xbe, 0x5b, + 0xb1, 0xb1, 0x87, 0xb0, 0x53, 0xcd, 0xb1, 0x4e, + 0x30, 0x6f, 0x99, 0xed, 0x74, 0x0d, 0xa0, 0x02, + 0xa1, 0x54, 0x00, 0xf9, 0x6a, 0x03, 0x22, 0x77, + 0x67, 0x96, 0xfc, 0xf1, 0x70, 0x9a, 0x0a, 0x6a, + 0xeb, 0xf2, 0x56, 0x50, 0xbd, 0x4c, 0xb7, 0x18, + 0x11, 0xa8, 0x65, 0x10, 0xac, 0x99, 0x2a, 0x53, + 0xb2, 0x9c, 0x98, 0xfe, 0x48, 0x44, 0xc3, 0x36, + 0x65, 0xdf, 0xf2, 0x79, 0xb6, 0x5b, 0xb1, 0xc1, + 0xf9, 0x72, 0xb2, 0xdb, 0x47, 0x7a, 0x9c, 0x77, + 0x7f, 0x86, 0xf8, 0xdb, 0x7c, 0x67, 0x8d, 0xb7, + 0xc6, 0x78, 0xe1, 0xdb, 0xeb, 0x8e, 0xd7, 0xe2, + 0x7a, 0xdf, 0xea, 0xa5, 0xfd, 0x9f, 0x0a, 0xff, + 0x00, 0xd9, 0xfb, 0x97, 0xfc, 0x38, 0xbf, 0xbc, + 0xc3, 0xf8, 0x80, 0x27, 0x70, 0x19, 0xfd, 0x58, + 0x20, 0x8d, 0xc7, 0x77, 0xd7, 0xfb, 0x10, 0xac, + 0x7a, 0x15, 0x8f, 0xd4, 0x09, 0xc6, 0x93, 0xd1, + 0x91, 0xcc, 0xf4, 0x0c, 0xba, 0x7f, 0x11, 0x04, + 0x74, 0x8c, 0xbe, 0xbc, 0x64, 0x47, 0x48, 0xe9, + 0xe8, 0xc6, 0x47, 0x76, 0xe3, 0xbf, 0xa3, 0x77, + 0x4f, 0xd5, 0x8d, 0x0c, 0x3a, 0x55, 0xbf, 0xe8, + 0x7f, 0xd0, 0x7e, 0x0f, 0xbf, 0xd5, 0x2e, 0x3f, + 0xca, 0x21, 0xfe, 0xcc, 0xfe, 0x2b, 0x4d, 0xc1, + 0xad, 0x95, 0xb1, 0xd4, 0x81, 0xa9, 0x72, 0x31, + 0xca, 0x83, 0xa5, 0xa2, 0x7c, 0xb5, 0x01, 0xe3, + 0x04, 0x2b, 0xaf, 0x73, 0x52, 0x8c, 0xf7, 0x61, + 0x38, 0x4b, 0x6a, 0x75, 0x0d, 0xc6, 0xc2, 0x12, + 0x37, 0xab, 0xc5, 0x28, 0x65, 0xf1, 0x1c, 0xa2, + 0x2a, 0x7f, 0xe5, 0x62, 0x3c, 0x78, 0xe5, 0x15, + 0xab, 0xaf, 0x47, 0xe4, 0x4b, 0xec, 0xb1, 0xca, + 0x2b, 0x57, 0x5e, 0x8f, 0xc8, 0x97, 0xd9, 0x63, + 0x94, 0x56, 0xae, 0xbd, 0x1f, 0x91, 0x2f, 0xb2, + 0xc7, 0x28, 0xad, 0x5d, 0x7a, 0x3f, 0x22, 0x5f, + 0x65, 0x8e, 0x51, 0x5a, 0xba, 0xf4, 0x7e, 0x44, + 0xbe, 0xcb, 0x1c, 0xa2, 0xb5, 0x75, 0xe8, 0xfc, + 0x89, 0x7d, 0x96, 0x39, 0x47, 0x6a, 0xeb, 0xc9, + 0xe4, 0x4d, 0xec, 0xb1, 0xca, 0x3b, 0x57, 0x5e, + 0x4f, 0x22, 0x6f, 0x65, 0x8e, 0x51, 0xda, 0xba, + 0xfa, 0x79, 0x13, 0x7b, 0x2c, 0x72, 0x8e, 0xd5, + 0xd7, 0x93, 0xc8, 0x9b, 0xd9, 0x63, 0x94, 0x76, + 0xae, 0xbc, 0x9e, 0x44, 0xde, 0xcb, 0x1c, 0xa3, + 0xb5, 0x75, 0xe4, 0xf2, 0x26, 0xf6, 0x58, 0xaa, + 0xaf, 0xb4, 0xd5, 0xd6, 0x53, 0xd4, 0xcb, 0x78, + 0x3b, 0x1a, 0x66, 0x8e, 0x41, 0x47, 0xb3, 0x9b, + 0x64, 0xd3, 0xc6, 0x58, 0xa4, 0xa4, 0xe9, 0xc8, + 0x74, 0x8c, 0xc6, 0xcc, 0xe7, 0xa7, 0xe7, 0x0c, + 0xf1, 0xca, 0x2b, 0x57, 0x5e, 0x8f, 0xc8, 0x9b, + 0xd9, 0x63, 0x94, 0x56, 0xae, 0xbd, 0x1f, 0x91, + 0x2f, 0xb2, 0xc7, 0x28, 0xad, 0x5d, 0x7a, 0x3f, + 0x22, 0x5f, 0x65, 0x8e, 0x51, 0x5a, 0xba, 0xf4, + 0x7e, 0x44, 0xbe, 0xcb, 0x1c, 0xa2, 0xb5, 0x75, + 0xe8, 0xfc, 0x89, 0x7d, 0x96, 0x39, 0x45, 0x6a, + 0xeb, 0xd1, 0xf9, 0x12, 0xfb, 0x2c, 0x72, 0x8a, + 0xd5, 0xd7, 0xa3, 0xf2, 0x25, 0xf6, 0x58, 0xe1, + 0x07, 0x08, 0x60, 0xac, 0xa6, 0x34, 0x54, 0x64, + 0xc8, 0x92, 0x14, 0x33, 0x4a, 0x50, 0xa2, 0x95, + 0x46, 0x0e, 0x11, 0x03, 0x05, 0x63, 0xcf, 0x55, + 0x24, 0x95, 0x1f, 0x37, 0x21, 0xf8, 0xad, 0x1c, + 0x27, 0xa5, 0x14, 0xb1, 0x53, 0xd6, 0xb9, 0x86, + 0x58, 0x51, 0x63, 0xda, 0x68, 0x67, 0x8e, 0x45, + 0x5e, 0x6a, 0x9e, 0x62, 0xbb, 0x2b, 0x69, 0xcb, + 0x56, 0x60, 0x2e, 0x79, 0x90, 0x77, 0xe4, 0x39, + 0x45, 0x6a, 0xeb, 0xd1, 0xf9, 0x12, 0xfb, 0x2c, + 0x72, 0x8a, 0xd5, 0xd7, 0xa3, 0xf2, 0x25, 0xf6, + 0x58, 0xe5, 0x1d, 0xab, 0xaf, 0x47, 0xe4, 0x4d, + 0xec, 0xb1, 0xca, 0x2b, 0x57, 0x5e, 0x8f, 0xc8, + 0x97, 0xd9, 0x63, 0x94, 0x76, 0xae, 0xbc, 0x9e, + 0x44, 0xde, 0xcb, 0x1c, 0xa3, 0xb5, 0x75, 0xe4, + 0xf2, 0x26, 0xf6, 0x58, 0xe5, 0x1d, 0xab, 0xaf, + 0x27, 0x91, 0x37, 0xb2, 0xc7, 0x28, 0xed, 0x5d, + 0x7a, 0x3f, 0x22, 0x6f, 0x65, 0x8e, 0x51, 0xda, + 0xba, 0xf2, 0x79, 0x13, 0x7b, 0x2c, 0x72, 0x8e, + 0xd5, 0xd7, 0xa3, 0xf2, 0x26, 0xf6, 0x58, 0xe5, + 0x1d, 0xab, 0xaf, 0x27, 0x91, 0x37, 0xb2, 0xc7, + 0x28, 0xed, 0x5d, 0x79, 0x3c, 0x89, 0xbd, 0x96, + 0x39, 0x47, 0x6a, 0xeb, 0xc9, 0xe4, 0x4d, 0xec, + 0xb1, 0xca, 0x3b, 0x57, 0x5e, 0x4f, 0x22, 0x6f, + 0x65, 0x8e, 0x51, 0xda, 0xba, 0xf2, 0x79, 0x13, + 0x7b, 0x2c, 0x72, 0x8e, 0xd5, 0xd7, 0x93, 0xc8, + 0x9b, 0xd9, 0x63, 0x94, 0x76, 0xae, 0xbc, 0x9e, + 0x44, 0xde, 0xcb, 0x15, 0xd5, 0x76, 0xfa, 0xb9, + 0x24, 0x68, 0xb8, 0x45, 0x3d, 0x2c, 0x33, 0x80, + 0x27, 0xa6, 0x44, 0x9d, 0xe2, 0x7e, 0x68, 0x46, + 0xc8, 0x73, 0x02, 0x6b, 0x40, 0x03, 0x0d, 0x2c, + 0x33, 0xcd, 0xbb, 0xb9, 0x62, 0x9e, 0xf7, 0x65, + 0xa5, 0x82, 0x2a, 0x78, 0xab, 0x50, 0x47, 0x0c, + 0x6b, 0x1a, 0x66, 0xb3, 0x13, 0x92, 0x8e, 0x92, + 0x76, 0x5b, 0xc9, 0xe9, 0x3d, 0x03, 0x33, 0xb8, + 0x0c, 0x72, 0x8a, 0xd5, 0xd7, 0xa3, 0xf2, 0x25, + 0xf6, 0x58, 0x3c, 0x23, 0xb5, 0x01, 0x9f, 0x1d, + 0x43, 0xe2, 0x11, 0xcc, 0x4f, 0xfd, 0x36, 0x38, + 0xbf, 0x5d, 0xfb, 0x2b, 0x51, 0x1e, 0xcc, 0x15, + 0xa7, 0xa7, 0x57, 0x58, 0xb5, 0x0c, 0x99, 0x9a, + 0x42, 0xbb, 0x49, 0x08, 0xee, 0x6a, 0xd0, 0x80, + 0x0e, 0xe0, 0x5d, 0xfb, 0xcf, 0xec, 0xf8, 0x57, + 0xfe, 0xcf, 0xdc, 0xbf, 0xe1, 0xc5, 0xfd, 0xe6, + 0x1f, 0xc5, 0x1c, 0xcf, 0x6a, 0xb3, 0x52, 0x54, + 0xd2, 0x1d, 0x95, 0x6d, 0xce, 0x7a, 0xb0, 0xf5, + 0x6b, 0x96, 0xd6, 0x2a, 0x6a, 0x33, 0x1a, 0x08, + 0x21, 0x73, 0xbe, 0x2d, 0xa4, 0x8e, 0x5e, 0x46, + 0x8f, 0x26, 0x70, 0x02, 0x31, 0xd2, 0x32, 0xc6, + 0xda, 0x5e, 0x11, 0x3d, 0xba, 0x8d, 0xd5, 0x7b, + 0x20, 0x86, 0x75, 0x9e, 0xe3, 0x21, 0x03, 0x69, + 0x4a, 0xaa, 0x24, 0x53, 0x51, 0xa5, 0x73, 0x76, + 0xa7, 0x45, 0x97, 0x9e, 0xc7, 0x32, 0x34, 0x82, + 0x4b, 0x31, 0x20, 0x59, 0xe9, 0x2a, 0x04, 0x52, + 0x50, 0x57, 0xbd, 0x44, 0x3c, 0x7e, 0x9a, 0x86, + 0xa4, 0xcb, 0x4b, 0xb0, 0x96, 0x1e, 0x34, 0xfa, + 0x61, 0xa8, 0x58, 0xf6, 0xd2, 0x09, 0x21, 0x7c, + 0x9f, 0x4e, 0x6f, 0x1b, 0xea, 0x5d, 0x2c, 0xab, + 0x98, 0x38, 0xa2, 0xa0, 0xb5, 0xd2, 0x4d, 0x78, + 0x83, 0xb2, 0x13, 0xcc, 0xf0, 0xdb, 0xae, 0x10, + 0xce, 0x56, 0x84, 0x01, 0x10, 0x43, 0x1a, 0xc9, + 0x24, 0x45, 0xaa, 0x7e, 0x50, 0xe4, 0x4a, 0xaa, + 0xf3, 0x35, 0x10, 0xe1, 0x99, 0x57, 0x49, 0x78, + 0x6c, 0x74, 0xaf, 0xc4, 0xa1, 0x9a, 0xe3, 0xb0, + 0xae, 0xb9, 0x26, 0xd2, 0x8e, 0x0e, 0x2e, 0x5e, + 0x30, 0x92, 0x1d, 0x34, 0xa2, 0xaa, 0x61, 0x20, + 0xd8, 0xbd, 0x53, 0x02, 0x11, 0x52, 0x39, 0xb4, + 0x6e, 0x2e, 0x40, 0x61, 0x9d, 0x1d, 0x83, 0x8d, + 0xc4, 0x92, 0x8a, 0x91, 0x1a, 0xc1, 0x35, 0x44, + 0x57, 0x7d, 0x71, 0x8f, 0xfc, 0x39, 0x20, 0x56, + 0x90, 0x4d, 0xba, 0x4c, 0xe5, 0x8e, 0x54, 0x47, + 0x54, 0x39, 0x47, 0x9c, 0xca, 0x63, 0xde, 0x01, + 0x61, 0x6f, 0xa8, 0x92, 0x18, 0xee, 0xc9, 0x4f, + 0x53, 0x3a, 0x44, 0x28, 0x9d, 0xa3, 0xc9, 0xda, + 0x2c, 0xcf, 0x1c, 0xa3, 0x51, 0x21, 0x44, 0x72, + 0x16, 0x43, 0x1e, 0xe3, 0x91, 0x24, 0x0c, 0xd7, + 0x51, 0x18, 0xa6, 0x9e, 0x3d, 0xa5, 0xa6, 0xa5, + 0xa4, 0x1c, 0x62, 0x96, 0x1b, 0x4d, 0x1c, 0x79, + 0xb7, 0x38, 0xa5, 0xce, 0x3a, 0x7d, 0x44, 0x1e, + 0x9f, 0x92, 0x45, 0xb8, 0x6a, 0xcc, 0xee, 0x6a, + 0x85, 0xc7, 0xfb, 0xef, 0xfe, 0xa7, 0xff, 0x00, + 0xdb, 0x1c, 0x28, 0x80, 0xd7, 0xd6, 0xd1, 0xbc, + 0x43, 0x39, 0x4d, 0x54, 0x96, 0x79, 0x3c, 0x72, + 0xc7, 0x24, 0x72, 0x53, 0x9e, 0x8e, 0x96, 0x86, + 0xa9, 0x46, 0x79, 0xfe, 0x67, 0x88, 0xe2, 0xf9, + 0x4e, 0xb7, 0x1a, 0xbb, 0x34, 0x51, 0x10, 0x94, + 0xb1, 0xd0, 0xcf, 0xae, 0x6f, 0xcd, 0x86, 0x86, + 0x8a, 0xa6, 0x74, 0x79, 0xd8, 0x8d, 0xdb, 0xa1, + 0x8b, 0x76, 0xfe, 0x74, 0x85, 0x50, 0x6f, 0x61, + 0x87, 0x91, 0x26, 0xbf, 0xf0, 0x5a, 0x48, 0x23, + 0xd8, 0xc4, 0xd4, 0x14, 0xbb, 0x18, 0xff, 0x00, + 0x42, 0x31, 0x2d, 0x58, 0x8d, 0x73, 0xef, 0xe9, + 0xcb, 0x51, 0xee, 0x9c, 0xce, 0x2e, 0x69, 0xc2, + 0xaa, 0x7a, 0x69, 0x9e, 0xbe, 0xa2, 0xa7, 0x89, + 0xb3, 0x6c, 0xe4, 0x06, 0xe1, 0x04, 0xca, 0xc2, + 0x43, 0x90, 0x43, 0x1c, 0x55, 0x12, 0x31, 0x07, + 0xa0, 0xf3, 0x72, 0xef, 0xff, 0x00, 0xa0, 0xfc, + 0x1f, 0x7f, 0xaa, 0x5c, 0x7f, 0x94, 0x43, 0xfd, + 0x99, 0xfd, 0xf7, 0xe1, 0x5f, 0xfb, 0x3f, 0x72, + 0xff, 0x00, 0x87, 0x17, 0xf7, 0x98, 0x7f, 0x15, + 0x34, 0xf4, 0x55, 0x76, 0xf5, 0xb6, 0xd7, 0x4e, + 0x68, 0xda, 0x9a, 0x79, 0x27, 0xa3, 0xab, 0xd9, + 0x49, 0x3c, 0x61, 0x67, 0x0a, 0x27, 0xa6, 0x95, + 0x22, 0x0d, 0x2a, 0x86, 0x64, 0x59, 0x23, 0x78, + 0xd5, 0x86, 0xbd, 0x41, 0xc0, 0x1b, 0xf1, 0x05, + 0xc6, 0xd5, 0x6d, 0x92, 0x86, 0x9e, 0x00, 0xd5, + 0x90, 0xc6, 0x6a, 0xcd, 0xc2, 0xb9, 0x61, 0xd9, + 0x4b, 0x37, 0x1d, 0x83, 0x8b, 0x32, 0x53, 0x2c, + 0xb9, 0x48, 0xb1, 0x41, 0x1e, 0x44, 0x2c, 0x9a, + 0x36, 0xb2, 0x02, 0x74, 0x27, 0xce, 0x34, 0xf5, + 0x16, 0xbb, 0x62, 0xa4, 0x30, 0x57, 0x9a, 0xd3, + 0x51, 0x73, 0xb7, 0xcf, 0x3c, 0xeb, 0x4d, 0x51, + 0x04, 0x54, 0xf4, 0x94, 0x53, 0x19, 0x37, 0xa4, + 0xaa, 0x24, 0x79, 0x9d, 0x9b, 0x51, 0x58, 0xd1, + 0xd4, 0x2a, 0x64, 0xac, 0x58, 0xe5, 0x8a, 0x5a, + 0xca, 0x2e, 0xc9, 0xde, 0x4c, 0xd5, 0x1b, 0x1a, + 0x7b, 0x84, 0x37, 0x18, 0x62, 0xa9, 0x31, 0x4c, + 0xea, 0xa6, 0xa2, 0x4d, 0x71, 0x3b, 0x46, 0x88, + 0x66, 0xd2, 0xc0, 0x7e, 0x86, 0xa1, 0x98, 0xd4, + 0x06, 0xfc, 0x85, 0xc6, 0x8a, 0x74, 0xa1, 0x95, + 0xef, 0x15, 0x34, 0x2d, 0x45, 0x4e, 0x94, 0xf3, + 0xd2, 0xd3, 0xc1, 0x29, 0x96, 0xa0, 0xd2, 0xe7, + 0xb2, 0x9a, 0x8a, 0x7d, 0x26, 0x28, 0xda, 0x75, + 0xd2, 0xbf, 0xb6, 0x76, 0x66, 0x17, 0x52, 0xc5, + 0x58, 0x65, 0x9d, 0x0d, 0xc2, 0xd9, 0x4d, 0x06, + 0xc2, 0x77, 0x6a, 0x8e, 0xcc, 0xcb, 0x30, 0xbb, + 0xc8, 0xc9, 0x2b, 0x49, 0x47, 0x4e, 0x73, 0x14, + 0xda, 0x5c, 0xc6, 0xbb, 0x6a, 0x88, 0xe6, 0x7e, + 0x37, 0x2c, 0x91, 0x2b, 0x06, 0x28, 0x11, 0x54, + 0xb6, 0x58, 0x91, 0x55, 0x24, 0x75, 0x49, 0x04, + 0xa8, 0xae, 0xc1, 0x25, 0x55, 0x65, 0x59, 0x14, + 0x1d, 0xce, 0x15, 0xc2, 0xba, 0x86, 0x1b, 0xf2, + 0x65, 0x0c, 0x3a, 0x08, 0xfc, 0x4b, 0x74, 0xac, + 0x14, 0xc2, 0x8b, 0x5c, 0x3c, 0x57, 0x20, 0xa5, + 0x78, 0xa5, 0x26, 0xd3, 0x4e, 0xbd, 0x7f, 0x97, + 0xd8, 0x71, 0x8c, 0xf3, 0xee, 0xed, 0x75, 0x77, + 0x33, 0xcb, 0x76, 0x05, 0xe6, 0xde, 0x2b, 0x2f, + 0x33, 0x19, 0x75, 0xae, 0xd8, 0x57, 0xda, 0x8e, + 0xca, 0x52, 0x24, 0xad, 0x4a, 0x69, 0xa9, 0xd3, + 0x35, 0x64, 0x06, 0x31, 0x9c, 0xcb, 0x21, 0x32, + 0x04, 0xdf, 0x0a, 0xef, 0xcf, 0x4e, 0x3b, 0x3a, + 0x94, 0xb4, 0x96, 0xf8, 0xa0, 0x86, 0x8e, 0xb4, + 0xf6, 0x38, 0xd2, 0xd6, 0x45, 0x5b, 0x04, 0xd2, + 0x22, 0x11, 0x5b, 0x25, 0x4a, 0xa8, 0xe7, 0xc2, + 0x1b, 0x3c, 0xe3, 0x72, 0x43, 0x3a, 0xe6, 0x07, + 0x74, 0x61, 0xef, 0x94, 0x33, 0x57, 0xf0, 0x7e, + 0x53, 0x1d, 0x15, 0x3c, 0x54, 0x90, 0xc4, 0xd5, + 0x52, 0x53, 0xd2, 0xd4, 0x23, 0x53, 0xc9, 0x9c, + 0xe1, 0xa9, 0x54, 0x73, 0xd9, 0xa9, 0xe3, 0x0c, + 0xae, 0x8b, 0x1a, 0xc8, 0x35, 0xbb, 0x11, 0x21, + 0xde, 0x03, 0x90, 0x5d, 0x88, 0xe8, 0x2c, 0xc4, + 0x7d, 0x59, 0xff, 0x00, 0xa0, 0xfc, 0x1f, 0xff, + 0x00, 0xa9, 0xdc, 0x0f, 0xfe, 0x66, 0x2f, 0xe8, + 0x8b, 0xfc, 0x7f, 0x7d, 0xf8, 0x57, 0xfe, 0xcf, + 0xdc, 0xbf, 0xe1, 0xc5, 0xfd, 0xe6, 0x1f, 0xc5, + 0x91, 0xcb, 0x3c, 0x8e, 0x47, 0xa0, 0xf7, 0x0e, + 0x5d, 0x38, 0xc8, 0x8c, 0xb3, 0x04, 0x67, 0xbc, + 0x78, 0xc7, 0x8b, 0xf6, 0x19, 0x13, 0xd0, 0x33, + 0xee, 0xff, 0x00, 0x37, 0x7f, 0x01, 0x59, 0x81, + 0x21, 0x49, 0x0b, 0xbd, 0x88, 0x04, 0x80, 0x3c, + 0x7d, 0xee, 0x83, 0xd3, 0x80, 0xac, 0x41, 0x21, + 0x49, 0x0b, 0xd2, 0x40, 0x24, 0x0f, 0xaf, 0xbd, + 0xf8, 0x88, 0x20, 0xe4, 0x41, 0x04, 0x74, 0x82, + 0x32, 0x23, 0xf9, 0xb0, 0x51, 0x87, 0x4a, 0xb0, + 0xc8, 0x66, 0x73, 0x04, 0x64, 0x0e, 0xe0, 0x7e, + 0xaf, 0x1e, 0x32, 0x39, 0x67, 0x91, 0xc8, 0x74, + 0x9e, 0xe0, 0xcf, 0xa3, 0xfd, 0x0f, 0xe0, 0xff, + 0x00, 0xfd, 0x4a, 0xbf, 0xf9, 0x54, 0x7f, 0xd9, + 0x7e, 0xea, 0xab, 0xac, 0xa6, 0xa0, 0x81, 0xaa, + 0x6b, 0x26, 0x58, 0x20, 0x42, 0x03, 0x48, 0xda, + 0x8e, 0xf6, 0x39, 0x2a, 0x85, 0x40, 0xce, 0xcc, + 0x7b, 0x8a, 0xaa, 0x5b, 0xa4, 0xe5, 0x90, 0x38, + 0xe5, 0x7f, 0x07, 0x3c, 0x24, 0x3d, 0x0e, 0xe3, + 0xf7, 0x4c, 0x72, 0xbf, 0x83, 0x9e, 0x12, 0x1e, + 0x87, 0x71, 0xfb, 0xa6, 0x28, 0x2e, 0x54, 0x37, + 0x38, 0xda, 0x5a, 0x0a, 0x95, 0xa8, 0x44, 0x6d, + 0x0e, 0x42, 0xc8, 0x8c, 0x8c, 0x46, 0x60, 0x32, + 0x4a, 0x91, 0xc8, 0xb9, 0x8f, 0x9a, 0x4a, 0xe4, + 0xd9, 0x1c, 0x89, 0xc8, 0xe5, 0xfb, 0xa7, 0x85, + 0x7f, 0xec, 0xfd, 0xcb, 0xfe, 0x1c, 0x5f, 0xde, + 0x61, 0xfc, 0x55, 0x7f, 0xfc, 0x0a, 0xcf, 0xfc, + 0xaa, 0xeb, 0xfd, 0x74, 0x78, 0xe2, 0xb4, 0xb5, + 0x90, 0xd9, 0xd2, 0xae, 0x59, 0x62, 0x86, 0x0b, + 0x05, 0x65, 0x53, 0xbc, 0x3a, 0x5a, 0x45, 0xd8, + 0xd5, 0xd4, 0xb0, 0xe6, 0xb0, 0xc9, 0xb3, 0xde, + 0x02, 0x66, 0x9a, 0x8e, 0x43, 0x5a, 0xf4, 0xe2, + 0xe1, 0x47, 0x4b, 0x1d, 0x3d, 0x1d, 0x75, 0x0b, + 0x4f, 0xc5, 0xaa, 0xf6, 0xf1, 0x98, 0xaa, 0x5a, + 0x37, 0x9a, 0x19, 0xe9, 0x99, 0x04, 0x8a, 0x5e, + 0x24, 0x8d, 0x1d, 0x5d, 0x64, 0x47, 0x42, 0x11, + 0x48, 0x07, 0x26, 0xdf, 0x89, 0xe9, 0x2d, 0xd5, + 0x34, 0xd6, 0x96, 0x7e, 0x37, 0x0c, 0x34, 0x96, + 0x53, 0x57, 0x52, 0xca, 0xd0, 0xbb, 0x3c, 0x2b, + 0x57, 0x3c, 0x7b, 0x28, 0x97, 0x64, 0xa0, 0x54, + 0x4d, 0x54, 0xf9, 0x2c, 0xae, 0x4a, 0x24, 0x6c, + 0xba, 0xa3, 0x66, 0x52, 0x4d, 0xc2, 0x8e, 0x96, + 0x38, 0x28, 0xeb, 0xa8, 0x5a, 0x63, 0x4b, 0x59, + 0xb6, 0x4d, 0x9d, 0x49, 0x8d, 0xa7, 0x82, 0x7a, + 0x62, 0x82, 0x54, 0x67, 0x8d, 0x51, 0x24, 0x56, + 0x0e, 0x92, 0x46, 0xc1, 0x17, 0x9a, 0xda, 0x58, + 0x66, 0x33, 0x36, 0x59, 0xe9, 0x85, 0x0d, 0xda, + 0x05, 0xa6, 0xce, 0xa9, 0xed, 0x75, 0xd2, 0x49, + 0x56, 0xef, 0x99, 0x11, 0x28, 0x88, 0x24, 0x30, + 0xc7, 0x90, 0x08, 0x09, 0x25, 0xa5, 0x72, 0x4b, + 0x31, 0xd2, 0x37, 0x28, 0xcb, 0x16, 0x3a, 0xea, + 0xc2, 0xd4, 0x74, 0x94, 0xa4, 0x52, 0x52, 0x52, + 0x3c, 0x95, 0x77, 0x59, 0xb3, 0x1b, 0x29, 0xe9, + 0xcb, 0xfc, 0xab, 0x55, 0x82, 0xb9, 0x32, 0xad, + 0x3f, 0xed, 0x78, 0xa2, 0x62, 0xc1, 0x9c, 0x8d, + 0x3a, 0x5c, 0xe6, 0xa9, 0x5a, 0xd4, 0x72, 0x58, + 0x60, 0xa1, 0xf9, 0x1a, 0x4b, 0x8c, 0xf3, 0x54, + 0x55, 0x44, 0x15, 0x74, 0xd5, 0x45, 0x55, 0x71, + 0x96, 0x94, 0x41, 0x3a, 0x9c, 0xc3, 0xac, 0x74, + 0x88, 0x22, 0x40, 0x73, 0xd0, 0x4e, 0xb5, 0xc9, + 0xc2, 0xb0, 0x48, 0xd6, 0x1b, 0xca, 0x42, 0x9f, + 0x32, 0x2b, 0x9a, 0xc6, 0xbf, 0xc5, 0x4a, 0xa0, + 0xa3, 0xfa, 0x06, 0x2e, 0x74, 0x71, 0xdc, 0x2f, + 0xd4, 0xb5, 0x47, 0x99, 0x4f, 0x55, 0xb7, 0x92, + 0xb5, 0xb2, 0x20, 0x47, 0xd8, 0x87, 0x92, 0x2a, + 0xe3, 0xde, 0x19, 0xc3, 0x4e, 0x8c, 0xbd, 0xf6, + 0x95, 0x73, 0xde, 0xdb, 0xeb, 0x24, 0x8e, 0xbe, + 0x4a, 0xe9, 0x6a, 0x27, 0x5a, 0x38, 0xaa, 0x78, + 0x39, 0x6c, 0x95, 0xe6, 0x31, 0xc9, 0x22, 0xc4, + 0x1e, 0xb6, 0x17, 0x5c, 0xe3, 0x84, 0x34, 0x8d, + 0x99, 0xc9, 0x39, 0xaa, 0x72, 0x27, 0x51, 0xdc, + 0x0e, 0x38, 0xbd, 0x0d, 0x3d, 0x92, 0xe1, 0xb1, + 0xb8, 0x0b, 0x84, 0x6d, 0x5b, 0x6c, 0xdb, 0x88, + 0x60, 0xa8, 0xa6, 0x64, 0x40, 0x6a, 0x77, 0x06, + 0xaa, 0x88, 0x02, 0xce, 0x0b, 0x69, 0x21, 0x5c, + 0x29, 0x19, 0xb0, 0xde, 0x01, 0xaf, 0xa3, 0xb5, + 0x43, 0x6d, 0x86, 0xaa, 0x14, 0xb8, 0x43, 0x53, + 0x57, 0x27, 0xed, 0x58, 0x6a, 0xaa, 0x29, 0xa5, + 0xd7, 0x4c, 0x9b, 0x9e, 0xa5, 0xd2, 0x2a, 0x68, + 0x9d, 0x51, 0x9f, 0x38, 0xe1, 0xcd, 0x81, 0x72, + 0x19, 0xc0, 0x28, 0x01, 0x6f, 0xd9, 0xfe, 0x0f, + 0xff, 0x00, 0xd4, 0xab, 0xff, 0x00, 0x95, 0x47, + 0xfd, 0x97, 0xee, 0xae, 0x1d, 0x7f, 0xf0, 0x45, + 0xfe, 0x5f, 0x4f, 0xfd, 0x95, 0x4e, 0x05, 0x45, + 0x32, 0x52, 0x40, 0xb1, 0x8a, 0x43, 0x3c, 0x42, + 0x99, 0xdc, 0x4b, 0x49, 0x6f, 0x7f, 0x9e, 0xd2, + 0x2c, 0xc7, 0x6b, 0x24, 0x6d, 0x2d, 0x43, 0x8d, + 0x68, 0x1e, 0x09, 0xf5, 0xac, 0x60, 0xed, 0x51, + 0x46, 0xc4, 0x32, 0x54, 0x3c, 0x72, 0xd3, 0x4e, + 0xf1, 0x0b, 0x60, 0x05, 0xe6, 0x15, 0x19, 0xa5, + 0x2c, 0x55, 0x01, 0xd6, 0x50, 0x29, 0xb8, 0x9c, + 0x71, 0x2a, 0x4a, 0x22, 0x30, 0x84, 0x19, 0xd3, + 0x26, 0xc1, 0x9d, 0xa6, 0x7a, 0xcf, 0xcd, 0x7c, + 0x7e, 0x0f, 0x7f, 0x21, 0x75, 0xff, 0x00, 0x8b, + 0x47, 0xff, 0x00, 0xf0, 0xa8, 0xfd, 0xd5, 0xc2, + 0xbf, 0xf6, 0x7e, 0xe5, 0xff, 0x00, 0x0e, 0x2f, + 0xef, 0x30, 0xfe, 0x2a, 0x5a, 0xfa, 0x3e, 0x25, + 0xd8, 0xfb, 0x8d, 0x34, 0xd3, 0xc3, 0x1c, 0xed, + 0x51, 0x4d, 0x35, 0x34, 0xc9, 0x0d, 0x44, 0x2f, + 0x22, 0xa2, 0x4b, 0x1e, 0x72, 0x45, 0x34, 0x6d, + 0x14, 0x81, 0x11, 0x88, 0x29, 0x98, 0x65, 0xcc, + 0x1d, 0xfb, 0xa8, 0x2e, 0x10, 0xd4, 0xd7, 0x4e, + 0xdc, 0x57, 0x2a, 0x1a, 0x3b, 0x15, 0x75, 0x3c, + 0x54, 0x8d, 0x29, 0x2c, 0xd4, 0xd1, 0xc4, 0xee, + 0xe2, 0x49, 0x80, 0x07, 0x6b, 0x33, 0x3c, 0x8c, + 0xd2, 0x2a, 0x8d, 0x2c, 0xc3, 0x48, 0xc9, 0x46, + 0x2e, 0x15, 0xd0, 0xd4, 0x45, 0x49, 0x49, 0x49, + 0x03, 0xc1, 0x47, 0x46, 0xb2, 0xec, 0xc4, 0xd2, + 0x09, 0x67, 0x92, 0x59, 0xd9, 0x5a, 0x69, 0x66, + 0x75, 0x48, 0xd0, 0x93, 0xa5, 0x11, 0x15, 0x50, + 0x05, 0x54, 0xf1, 0xe4, 0x21, 0xbc, 0xd3, 0x2c, + 0x34, 0x71, 0xcb, 0x49, 0x24, 0xbb, 0x3a, 0x29, + 0x2d, 0xb5, 0x6b, 0xb6, 0x55, 0x8e, 0x6a, 0x37, + 0x9a, 0x49, 0xc3, 0x45, 0xf2, 0x7a, 0xe2, 0xa9, + 0x8e, 0x56, 0x57, 0x57, 0x2c, 0xc9, 0xcc, 0x03, + 0x46, 0xfc, 0xc5, 0xc2, 0xba, 0x1a, 0x88, 0xe9, + 0x29, 0x69, 0x20, 0x7a, 0x7a, 0x3a, 0x35, 0x93, + 0x66, 0xb2, 0xc8, 0x25, 0x9e, 0x49, 0x67, 0x60, + 0xd3, 0x4d, 0x33, 0xaa, 0x46, 0x85, 0x9b, 0x4a, + 0x2a, 0xaa, 0xa0, 0x0a, 0xab, 0xbb, 0xa7, 0x21, + 0x43, 0x56, 0x29, 0x38, 0xe6, 0x68, 0x5f, 0x8d, + 0x50, 0xd4, 0x52, 0x0c, 0x8e, 0x5a, 0x0c, 0xda, + 0x32, 0x73, 0xb8, 0xe6, 0x17, 0x4f, 0x46, 0xec, + 0xfb, 0xf8, 0x82, 0xe1, 0x6b, 0x16, 0xd8, 0xed, + 0xf3, 0xd3, 0x5c, 0x07, 0xca, 0xb4, 0xd5, 0x4f, + 0x4b, 0x55, 0x4f, 0x10, 0xaa, 0x93, 0x3c, 0xa2, + 0xda, 0x89, 0x69, 0xa6, 0x6d, 0x10, 0x26, 0x42, + 0x28, 0xc3, 0x04, 0x0c, 0x5e, 0x4c, 0x8b, 0xb6, + 0xac, 0x52, 0xde, 0x28, 0xa1, 0x4a, 0x51, 0x35, + 0x0c, 0xb3, 0xc9, 0x6b, 0x9a, 0x79, 0x6d, 0x8f, + 0xc6, 0x02, 0x00, 0x24, 0x90, 0xcd, 0x14, 0x75, + 0x80, 0x47, 0x9c, 0xc2, 0x19, 0xf2, 0x98, 0x18, + 0x8c, 0x5a, 0x8e, 0x6a, 0x57, 0x46, 0x6a, 0xd1, + 0x54, 0x15, 0xab, 0x8e, 0xaa, 0x4c, 0xdc, 0xad, + 0x42, 0x54, 0x3f, 0x70, 0xb9, 0x12, 0x09, 0x1b, + 0x7f, 0x70, 0xb6, 0xfc, 0x35, 0xf3, 0xf6, 0xa5, + 0xce, 0x99, 0x20, 0xc9, 0xeb, 0xaa, 0xa6, 0x9a, + 0x29, 0x8b, 0x66, 0xd4, 0xf0, 0x55, 0x3a, 0x35, + 0x54, 0x03, 0x77, 0xfb, 0xe1, 0x0c, 0x2a, 0xc4, + 0x65, 0x98, 0xd7, 0xdf, 0xc4, 0xb7, 0x74, 0x92, + 0x09, 0x61, 0xd8, 0x38, 0x32, 0x5a, 0x28, 0x6d, + 0x80, 0xeb, 0x1b, 0x9e, 0x92, 0x68, 0xa5, 0x32, + 0xe5, 0xa7, 0xe6, 0xb8, 0x8f, 0x20, 0xbd, 0x23, + 0x3e, 0x93, 0x8a, 0x3a, 0xe8, 0x60, 0xa5, 0x9e, + 0x96, 0x78, 0x1a, 0x68, 0xe7, 0xab, 0xa1, 0x9e, + 0x4d, 0x2e, 0x13, 0x38, 0xa9, 0x5a, 0x43, 0x2c, + 0x5d, 0x04, 0xe7, 0x2a, 0xc9, 0xa5, 0x5b, 0xf3, + 0x7a, 0x77, 0xe2, 0xeb, 0x5f, 0x6d, 0xb8, 0x34, + 0xd5, 0x11, 0xc1, 0x70, 0x4a, 0xa7, 0xd0, 0x22, + 0xda, 0xd4, 0xd3, 0x35, 0x2c, 0x31, 0xa1, 0x00, + 0x42, 0x90, 0xa5, 0x2a, 0x38, 0x89, 0x22, 0x05, + 0x22, 0x51, 0x20, 0xc8, 0xe4, 0xcc, 0x5b, 0x9d, + 0xab, 0xf6, 0x7f, 0x83, 0xff, 0x00, 0xf5, 0x2a, + 0xff, 0x00, 0xe5, 0x51, 0xff, 0x00, 0x65, 0xfb, + 0xaa, 0xb6, 0x86, 0x96, 0xe3, 0x03, 0x52, 0xd6, + 0x42, 0x27, 0x81, 0x99, 0x58, 0xa1, 0x67, 0x4e, + 0x72, 0x7c, 0xd6, 0x57, 0x8d, 0x91, 0xd4, 0x8d, + 0xfb, 0xd5, 0x81, 0xc8, 0x95, 0x3b, 0x89, 0x18, + 0xe4, 0x87, 0x07, 0x3c, 0x1d, 0xff, 0x00, 0x79, + 0x5f, 0xf7, 0xac, 0x72, 0x43, 0x83, 0x9e, 0x0e, + 0xff, 0x00, 0xbc, 0xaf, 0xfb, 0xd6, 0x2d, 0xf6, + 0xba, 0x0b, 0x52, 0x49, 0x1d, 0x05, 0x38, 0xa7, + 0x59, 0x58, 0x3c, 0x9f, 0x29, 0x2c, 0x85, 0x99, + 0x46, 0x4b, 0x9b, 0xcd, 0x24, 0x8f, 0x90, 0x04, + 0xe4, 0xba, 0xb4, 0x8c, 0xc9, 0x03, 0x32, 0x73, + 0xfd, 0xd3, 0x5f, 0x45, 0x15, 0xc6, 0x92, 0x6a, + 0x29, 0xcc, 0x8b, 0x14, 0xe1, 0x43, 0x98, 0x8a, + 0xab, 0x8d, 0x2e, 0xae, 0x34, 0x96, 0x57, 0x03, + 0x7a, 0x8e, 0x95, 0x3b, 0xb1, 0xc8, 0x2b, 0x37, + 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, 0xc8, + 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, + 0x70, 0x38, 0x09, 0x68, 0x19, 0xe5, 0x51, 0x72, + 0x19, 0x82, 0x0e, 0x53, 0xc0, 0x33, 0x07, 0xa4, + 0x1f, 0xda, 0xbd, 0x07, 0xba, 0x31, 0xc8, 0x2b, + 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, + 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, + 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, + 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, + 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, + 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, + 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, + 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, + 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, + 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, + 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, + 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, + 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, + 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, + 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, + 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, + 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, + 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, + 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, + 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, + 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, + 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, + 0xdd, 0x71, 0x68, 0xb2, 0xd2, 0x59, 0x63, 0x9a, + 0x2a, 0x47, 0x9d, 0xd6, 0x67, 0x12, 0x36, 0xdd, + 0xd1, 0xc8, 0x21, 0x74, 0xf3, 0x74, 0x47, 0x1e, + 0xec, 0xbb, 0xe0, 0xfd, 0x7f, 0xfa, 0xe8, 0xa4, + 0xb6, 0xdc, 0x2b, 0xf3, 0xe2, 0x54, 0x75, 0x15, + 0x21, 0x4e, 0x4c, 0x61, 0x89, 0xdc, 0x03, 0xde, + 0x2c, 0x06, 0x59, 0xf8, 0xb3, 0xcf, 0x1c, 0x9a, + 0xbf, 0xf8, 0x22, 0xbf, 0xd1, 0xdf, 0xd5, 0x8e, + 0x4d, 0x5f, 0xfc, 0x11, 0x5f, 0xe8, 0xef, 0xea, + 0xc7, 0x26, 0xaf, 0xfe, 0x08, 0xaf, 0xf4, 0x77, + 0xf5, 0x63, 0x93, 0x57, 0xff, 0x00, 0x04, 0x57, + 0xfa, 0x3b, 0xfa, 0xb1, 0xc9, 0xab, 0xff, 0x00, + 0x82, 0x2b, 0xfd, 0x1d, 0xfd, 0x58, 0xe4, 0xd5, + 0xff, 0x00, 0xc1, 0x15, 0xfe, 0x8e, 0xfe, 0xac, + 0x72, 0x6a, 0xff, 0x00, 0xe0, 0x8a, 0xff, 0x00, + 0x47, 0x7f, 0x56, 0x39, 0x35, 0x7f, 0xf0, 0x45, + 0x7f, 0xa3, 0xbf, 0xab, 0x1c, 0x9a, 0xbf, 0xf8, + 0x22, 0xbf, 0xd1, 0xdf, 0xd5, 0x8e, 0x4d, 0x5f, + 0xfc, 0x11, 0x5f, 0xe8, 0xef, 0xea, 0xc7, 0x26, + 0xaf, 0xfe, 0x08, 0xaf, 0xf4, 0x77, 0xf5, 0x63, + 0x93, 0x57, 0xff, 0x00, 0x04, 0x57, 0xfa, 0x3b, + 0xfa, 0xb1, 0xc9, 0xab, 0xff, 0x00, 0x82, 0x2b, + 0xfd, 0x1d, 0xfd, 0x58, 0xe4, 0xd5, 0xff, 0x00, + 0xc1, 0x15, 0xfe, 0x8e, 0xfe, 0xac, 0x72, 0x6a, + 0xff, 0x00, 0xe0, 0x8a, 0xff, 0x00, 0x47, 0x7f, + 0x56, 0x39, 0x35, 0x7f, 0xf0, 0x45, 0x7f, 0xa3, + 0xbf, 0xab, 0x1c, 0x9a, 0xbf, 0xf8, 0x22, 0xbf, + 0xd1, 0xdf, 0xd5, 0x8e, 0x4d, 0x5f, 0xfc, 0x11, + 0x5f, 0xe8, 0xef, 0xea, 0xc7, 0x26, 0xaf, 0xfe, + 0x08, 0xaf, 0xf4, 0x77, 0xf5, 0x63, 0x93, 0x57, + 0xff, 0x00, 0x04, 0x57, 0xfa, 0x3b, 0xfa, 0xb1, + 0x57, 0x69, 0xb9, 0xd0, 0xae, 0xba, 0xca, 0x1a, + 0xaa, 0x64, 0xcf, 0x2d, 0x72, 0xc2, 0xe8, 0x99, + 0x9e, 0x81, 0xa8, 0x8c, 0xb7, 0xf7, 0x37, 0xfe, + 0xf0, 0x53, 0x52, 0xd4, 0x56, 0x4f, 0x1d, 0x35, + 0x2c, 0x4d, 0x34, 0xf2, 0x9c, 0xa3, 0x8d, 0x3e, + 0x73, 0x1c, 0xb3, 0x3d, 0xe0, 0x00, 0x00, 0x96, + 0x62, 0x42, 0xa8, 0x04, 0x92, 0x06, 0x23, 0xfc, + 0x1e, 0xdf, 0x1d, 0x43, 0x34, 0xf6, 0xc8, 0x89, + 0xfc, 0xc9, 0x2a, 0x2a, 0x4b, 0x0f, 0xac, 0xc3, + 0x47, 0x2a, 0x7f, 0xd1, 0xce, 0x3b, 0x5d, 0xde, + 0x7a, 0xe5, 0xa7, 0xcf, 0x56, 0xfb, 0xbf, 0x1d, + 0xae, 0xef, 0x3d, 0x72, 0xd3, 0xe7, 0xab, 0x7d, + 0xdf, 0x8e, 0xd7, 0x77, 0x9e, 0xb9, 0x69, 0xf3, + 0xd5, 0xbe, 0xef, 0xc7, 0x6b, 0xbb, 0xcf, 0x5c, + 0xb4, 0xf9, 0xea, 0xdf, 0x77, 0xe3, 0xb5, 0xdd, + 0xe7, 0xae, 0x5a, 0x7c, 0xf5, 0x6f, 0xbb, 0xf1, + 0xda, 0xee, 0xf3, 0xd7, 0x2d, 0x3e, 0x7a, 0xb7, + 0xdd, 0xf8, 0xed, 0x77, 0x79, 0xeb, 0x96, 0x9f, + 0x3d, 0x5b, 0xee, 0xfc, 0x76, 0xbb, 0xbc, 0xf5, + 0xcb, 0x4f, 0x9e, 0xad, 0xf7, 0x7e, 0x3b, 0x5d, + 0xde, 0x7a, 0xe5, 0xa7, 0xcf, 0x56, 0xfb, 0xbf, + 0x1d, 0xae, 0xef, 0x3d, 0x72, 0xd3, 0xe7, 0xab, + 0x7d, 0xdf, 0x8e, 0xd7, 0x77, 0x9e, 0xb9, 0x69, + 0xf3, 0xd5, 0xbe, 0xef, 0xc7, 0x6b, 0xbb, 0xcf, + 0x5c, 0xb4, 0xf9, 0xea, 0xdf, 0x77, 0xe3, 0xb5, + 0xdd, 0xe7, 0xae, 0x5a, 0x7c, 0xf5, 0x6f, 0xbb, + 0xf1, 0xda, 0xee, 0xf3, 0xd7, 0x2d, 0x3e, 0x7a, + 0xb7, 0xdd, 0xf8, 0xed, 0x77, 0x79, 0xeb, 0x96, + 0x9f, 0x3d, 0x5b, 0xee, 0xfc, 0x76, 0xbb, 0xbc, + 0xf5, 0xcb, 0x4f, 0x9e, 0xad, 0xf7, 0x7e, 0x3b, + 0x5d, 0xde, 0x7a, 0xe5, 0xa7, 0xcf, 0x56, 0xfb, + 0xbf, 0x1d, 0xae, 0xef, 0x3d, 0x72, 0xd3, 0xe7, + 0xab, 0x7d, 0xdf, 0x8e, 0xd7, 0x77, 0x9e, 0xb9, + 0x69, 0xf3, 0xd5, 0xbe, 0xef, 0xc7, 0x6b, 0xbb, + 0xd7, 0x5c, 0xb4, 0xf9, 0xea, 0xdf, 0x77, 0xe2, + 0xef, 0xc1, 0xbb, 0xa5, 0x94, 0x2b, 0xd5, 0xc4, + 0x8d, 0x03, 0x1d, 0x22, 0xa6, 0x9d, 0xcc, 0xb0, + 0xea, 0x3d, 0x0a, 0xc4, 0xaa, 0x3a, 0x31, 0xcb, + 0x76, 0xd1, 0x17, 0x57, 0xe6, 0x93, 0x91, 0xc9, + 0x46, 0x6c, 0xa3, 0xbe, 0x40, 0xff, 0x00, 0xa9, + 0xc5, 0x1d, 0x3c, 0x34, 0x14, 0xb0, 0xd1, 0xd3, + 0xa8, 0x48, 0xa9, 0xe3, 0x58, 0xd4, 0x0c, 0xb7, + 0xe9, 0x1c, 0xe7, 0x3d, 0xf6, 0x76, 0xcd, 0x98, + 0x9d, 0xe5, 0x89, 0x27, 0x1a, 0xfc, 0x7f, 0xd5, + 0x8d, 0x7e, 0x3f, 0xea, 0xc5, 0x75, 0xc6, 0x9a, + 0xdd, 0x4d, 0x25, 0x5d, 0x54, 0x9a, 0x21, 0x8b, + 0x2c, 0xc8, 0x1a, 0x99, 0x99, 0x8e, 0x95, 0x44, + 0x51, 0xbd, 0x99, 0x98, 0xe4, 0x07, 0xf3, 0x92, + 0x14, 0x12, 0x2d, 0xbc, 0x24, 0xa2, 0xb9, 0xd4, + 0x1a, 0x54, 0x8a, 0xb6, 0x92, 0xa3, 0x67, 0xb5, + 0x48, 0xab, 0xa9, 0xd6, 0x06, 0x9a, 0x3e, 0x82, + 0xd1, 0x69, 0x92, 0x50, 0xda, 0x7b, 0xa0, 0x90, + 0x7b, 0xaa, 0x18, 0x06, 0xd3, 0xaf, 0x0d, 0x26, + 0x85, 0x2c, 0xdb, 0x94, 0x02, 0xc4, 0xe5, 0xdc, + 0x03, 0x32, 0x7f, 0xe9, 0x8a, 0x1a, 0xf8, 0x6e, + 0x14, 0xd1, 0xd5, 0xd3, 0x17, 0x68, 0x26, 0x32, + 0x6c, 0x8b, 0x26, 0x82, 0xe2, 0x39, 0x5e, 0x2d, + 0x5a, 0x4e, 0xf0, 0xac, 0x63, 0x2c, 0xb9, 0xe4, + 0xda, 0x48, 0xd4, 0xaa, 0xd9, 0xa8, 0xd7, 0x8d, + 0x47, 0xc7, 0xff, 0x00, 0x4c, 0x54, 0xd5, 0xa5, + 0x2d, 0x3c, 0xf5, 0x32, 0x6a, 0x29, 0x04, 0x4f, + 0x33, 0x84, 0x0a, 0x5c, 0xac, 0x6a, 0x58, 0x85, + 0x0c, 0xca, 0x0b, 0x64, 0x37, 0x66, 0xc0, 0x67, + 0xd2, 0x46, 0x23, 0xe1, 0x55, 0xbe, 0x5b, 0x54, + 0xd7, 0x85, 0x4a, 0xbe, 0x2f, 0x04, 0xcb, 0x03, + 0xc4, 0x63, 0x87, 0x8c, 0x97, 0x66, 0x89, 0x57, + 0x4a, 0x09, 0xcc, 0x64, 0x1d, 0xaa, 0x90, 0x4c, + 0xa3, 0x9a, 0x1b, 0x76, 0xec, 0x8d, 0x05, 0x7c, + 0x77, 0x1a, 0x48, 0x2b, 0x60, 0x59, 0x16, 0x2a, + 0x84, 0x2e, 0x8b, 0x2a, 0xa8, 0x90, 0x00, 0xcc, + 0x9c, 0xe5, 0x47, 0x75, 0x1b, 0xd4, 0x9d, 0xce, + 0xdb, 0xb2, 0xfa, 0xb1, 0xaf, 0xb9, 0xdd, 0xc2, + 0xdc, 0xe1, 0x7b, 0x8c, 0xb6, 0xb0, 0xb3, 0x0a, + 0x88, 0x69, 0x92, 0xad, 0x98, 0xaa, 0x6c, 0x4c, + 0x6e, 0xe2, 0x30, 0x15, 0xb6, 0x9a, 0xf5, 0xe6, + 0x73, 0x20, 0xc6, 0x17, 0x2f, 0xce, 0xcf, 0x76, + 0x35, 0xe2, 0xd9, 0x75, 0x82, 0xed, 0x4d, 0xc6, + 0xa9, 0x96, 0x65, 0x8f, 0x6b, 0x24, 0x3a, 0x66, + 0x58, 0xd5, 0xf5, 0x44, 0x72, 0x63, 0x94, 0x72, + 0x4a, 0x34, 0xf7, 0xb9, 0xd9, 0xf7, 0xc0, 0xc6, + 0xae, 0xe6, 0x35, 0xfc, 0x6e, 0xc6, 0xbf, 0x1f, + 0xf5, 0x63, 0x5f, 0x8f, 0xfa, 0xb1, 0x2a, 0xc5, + 0x3c, 0x52, 0x43, 0x32, 0x2c, 0xb1, 0x4a, 0xa5, + 0x24, 0x8d, 0xc0, 0x2a, 0xe8, 0xc3, 0x22, 0x0f, + 0xf3, 0x7f, 0x38, 0xe9, 0x19, 0x1c, 0x5c, 0x29, + 0xd6, 0x92, 0xbe, 0xb6, 0x95, 0x09, 0x29, 0x4d, + 0x57, 0x53, 0x02, 0x13, 0xd2, 0x52, 0x29, 0x9d, + 0x17, 0x3f, 0x1e, 0x4a, 0x33, 0xf1, 0xfe, 0xef, + 0xfc, 0x1e, 0xc7, 0x1f, 0x19, 0xb9, 0x4e, 0x40, + 0x32, 0x47, 0x0d, 0x3c, 0x68, 0xc7, 0xf3, 0x56, + 0x67, 0x95, 0xa4, 0xcb, 0xbd, 0xab, 0x62, 0x99, + 0xf8, 0x86, 0x58, 0xda, 0x7c, 0x7c, 0x1c, 0x5e, + 0xef, 0x2f, 0x6c, 0x8a, 0x99, 0x69, 0xe0, 0x5a, + 0x9a, 0xca, 0xd9, 0xf8, 0xbd, 0x34, 0x72, 0x48, + 0x22, 0x8b, 0x56, 0x59, 0x96, 0x92, 0x42, 0x40, + 0x00, 0x66, 0xa0, 0x0d, 0x49, 0x99, 0x6f, 0x9c, + 0x00, 0x38, 0xa1, 0xbe, 0xd4, 0xa9, 0xaa, 0x8e, + 0xfb, 0x46, 0xb6, 0xb9, 0x29, 0x96, 0x39, 0x76, + 0xc1, 0x8b, 0xd1, 0xc9, 0x1c, 0xac, 0xa8, 0x32, + 0x98, 0x19, 0x23, 0x12, 0x07, 0x65, 0x05, 0x44, + 0xad, 0x9e, 0xae, 0x80, 0x51, 0xb1, 0x25, 0xc6, + 0x8e, 0x19, 0x36, 0x52, 0xd4, 0xc3, 0x1c, 0x9b, + 0x16, 0xa8, 0xd0, 0xee, 0x01, 0xd8, 0x27, 0xce, + 0x97, 0xa7, 0x72, 0x0c, 0x8e, 0xf3, 0x8a, 0x8e, + 0x11, 0xdb, 0x63, 0xa0, 0xab, 0xae, 0xa7, 0xa8, + 0x82, 0xb1, 0x69, 0x14, 0x6a, 0x8e, 0x29, 0x40, + 0x2d, 0x23, 0xee, 0x8e, 0x3c, 0xf2, 0x6d, 0x3b, + 0x43, 0xb8, 0x1d, 0x27, 0xa0, 0xe5, 0x99, 0x19, + 0x62, 0x1b, 0xf5, 0xbc, 0xd0, 0x52, 0x56, 0xd4, + 0x55, 0xd2, 0xc2, 0xb5, 0x31, 0xaf, 0x4c, 0x99, + 0x2e, 0xdc, 0x20, 0x33, 0x44, 0x99, 0x9d, 0x47, + 0x64, 0xf9, 0xab, 0x74, 0xe9, 0xdc, 0x18, 0xe6, + 0x71, 0x3d, 0xde, 0xdd, 0x4d, 0xa3, 0x8c, 0x56, + 0xd3, 0xc5, 0xb4, 0x8b, 0x6f, 0x1e, 0xb9, 0x00, + 0x0f, 0x16, 0x79, 0x6d, 0x10, 0xe7, 0x93, 0x29, + 0x3d, 0x04, 0x13, 0x9f, 0x73, 0x09, 0x7a, 0xb6, + 0x49, 0x24, 0x31, 0x47, 0x5f, 0x4a, 0xf2, 0x54, + 0x0d, 0x50, 0x22, 0xca, 0xa5, 0xa4, 0x19, 0x90, + 0x34, 0x8c, 0xfa, 0x49, 0x53, 0x90, 0x39, 0x13, + 0x97, 0x46, 0x2f, 0x77, 0x49, 0x2d, 0x76, 0xd9, + 0xeb, 0x62, 0x8e, 0x39, 0x64, 0x8b, 0x67, 0xa5, + 0x24, 0xcf, 0x49, 0xd7, 0x22, 0xa6, 0xfd, 0x2c, + 0x0f, 0x43, 0x6e, 0xdf, 0xd3, 0x8a, 0xbe, 0x16, + 0x4f, 0x05, 0x96, 0x86, 0xe1, 0x1d, 0x3c, 0x0d, + 0x55, 0x53, 0x2c, 0xd1, 0x4b, 0x4e, 0xe6, 0x4d, + 0x9c, 0x7c, 0x5c, 0x4b, 0xb6, 0x2b, 0x93, 0x07, + 0xe6, 0x95, 0x8c, 0x6f, 0x63, 0xf3, 0xf2, 0xef, + 0x60, 0xde, 0xed, 0xf0, 0xc7, 0x4b, 0xc7, 0x2a, + 0xe9, 0xa9, 0xa6, 0xa8, 0xa7, 0x86, 0x6d, 0x9b, + 0xc8, 0x17, 0xf2, 0xa8, 0xad, 0xbb, 0x33, 0x98, + 0x5c, 0xce, 0x40, 0xb6, 0x59, 0xe5, 0xf5, 0xe2, + 0x7b, 0xbd, 0xba, 0x99, 0x99, 0x2a, 0x2b, 0x29, + 0xe1, 0x64, 0x44, 0x91, 0x83, 0xb8, 0x04, 0x47, + 0x21, 0xca, 0x37, 0xf1, 0x87, 0x3f, 0x37, 0x2c, + 0xf3, 0xe9, 0xe8, 0xc4, 0xb7, 0x6b, 0x7c, 0x10, + 0x45, 0x53, 0x35, 0x65, 0x3c, 0x74, 0xf3, 0xe5, + 0xb1, 0x95, 0xa4, 0x5d, 0x12, 0xe6, 0x33, 0xe6, + 0x1c, 0xf9, 0xdb, 0xba, 0x72, 0xe8, 0xee, 0xe5, + 0x87, 0xbb, 0x5b, 0xe3, 0xa6, 0x4a, 0xc9, 0x2a, + 0xe9, 0xd6, 0x96, 0x42, 0x04, 0x73, 0x99, 0x06, + 0xcd, 0xc9, 0xcf, 0x20, 0xa7, 0x3d, 0xe7, 0x71, + 0xdc, 0x37, 0x8c, 0x8e, 0x7d, 0x07, 0x11, 0xdd, + 0xed, 0xd2, 0xc5, 0x34, 0xf1, 0x56, 0x53, 0xbc, + 0x34, 0xc0, 0x19, 0xe5, 0x59, 0x06, 0x88, 0x83, + 0x0d, 0x4b, 0xad, 0xb3, 0xc8, 0x66, 0x3a, 0x3b, + 0xa4, 0xee, 0xe9, 0xdd, 0x81, 0x78, 0xb6, 0xb5, + 0x37, 0x1c, 0x15, 0xb4, 0xe6, 0x94, 0x38, 0x8c, + 0xce, 0x1c, 0x18, 0xc4, 0x84, 0xe4, 0x10, 0x9e, + 0xe3, 0x12, 0x46, 0xe3, 0x97, 0x48, 0x3d, 0x04, + 0x63, 0xb3, 0xf6, 0x7d, 0x32, 0x3f, 0x64, 0xa8, + 0xf4, 0xc4, 0xe2, 0x37, 0x3b, 0x65, 0xe6, 0xbb, + 0x67, 0x92, 0xf4, 0xef, 0xcf, 0x4b, 0x64, 0x57, + 0x31, 0xcd, 0x3b, 0xf1, 0x51, 0x76, 0xb7, 0xd2, + 0xa4, 0x52, 0xd4, 0xd6, 0x53, 0xc3, 0x1c, 0xe3, + 0x38, 0x5d, 0xe4, 0x50, 0x25, 0x19, 0x03, 0x9a, + 0x6f, 0xe7, 0x0c, 0x88, 0x39, 0x8d, 0xc3, 0x31, + 0x99, 0xde, 0x31, 0x3d, 0xd6, 0x82, 0x98, 0x81, + 0x51, 0x57, 0x4f, 0x16, 0x71, 0x6d, 0xd7, 0x5c, + 0x80, 0x6a, 0x87, 0x50, 0x5d, 0xa2, 0x9c, 0xf2, + 0x64, 0x2c, 0x40, 0x04, 0x67, 0x9e, 0x7b, 0xb1, + 0x70, 0xe1, 0x2d, 0x15, 0x12, 0xdb, 0x9d, 0x24, + 0x86, 0x68, 0xae, 0x15, 0x29, 0x18, 0x98, 0x4b, + 0xf2, 0x71, 0x53, 0x87, 0x02, 0xa2, 0xa0, 0xe4, + 0x0e, 0xa1, 0x1f, 0xcd, 0xcb, 0x35, 0xd2, 0xe4, + 0x6a, 0xf9, 0xa5, 0x48, 0x95, 0x58, 0x06, 0x52, + 0x0a, 0xb0, 0x0c, 0xa4, 0x74, 0x10, 0x46, 0x60, + 0x8f, 0xac, 0x62, 0xfa, 0x23, 0x9a, 0xcd, 0x75, + 0x8e, 0x45, 0x0c, 0xbc, 0x42, 0xa9, 0xc0, 0x3b, + 0xf2, 0x78, 0xa1, 0x79, 0x62, 0x6f, 0xad, 0x24, + 0x45, 0x61, 0xde, 0x23, 0x11, 0xfc, 0xf4, 0xfe, + 0x32, 0xff, 0x00, 0x58, 0xc1, 0x94, 0x66, 0x7a, + 0x3a, 0x4e, 0x36, 0xa3, 0xc5, 0x8d, 0xa8, 0xf1, + 0x63, 0x84, 0x06, 0x86, 0x5b, 0x6b, 0x47, 0x5f, + 0x3b, 0xd3, 0x42, 0xd3, 0x43, 0xa2, 0xa2, 0x24, + 0x77, 0x68, 0x67, 0x04, 0xb4, 0x4f, 0xcc, 0x56, + 0xc8, 0x6e, 0x60, 0x4b, 0x64, 0xbb, 0xf2, 0xd4, + 0xac, 0x54, 0xe2, 0x19, 0x6a, 0x0d, 0xce, 0x9e, + 0xdd, 0x5b, 0x5b, 0x6f, 0xbe, 0x43, 0x5b, 0x4b, + 0x55, 0x0c, 0x35, 0x6b, 0x14, 0x3c, 0x76, 0x8d, + 0x38, 0xab, 0x6b, 0x26, 0x48, 0xd5, 0x9a, 0x35, + 0x97, 0x9c, 0x8d, 0xf2, 0xd2, 0x34, 0xab, 0x9b, + 0xb1, 0x53, 0xcc, 0x34, 0x35, 0x12, 0xd5, 0xb5, + 0x05, 0x1c, 0x93, 0x6c, 0x64, 0xe0, 0xfd, 0x25, + 0xc8, 0xcf, 0x2b, 0x16, 0xd3, 0x1c, 0xf1, 0x96, + 0xa7, 0xa4, 0x90, 0xe4, 0x3f, 0xdc, 0xae, 0x99, + 0x3f, 0x3b, 0xf2, 0x67, 0xea, 0x36, 0xb5, 0x58, + 0xaa, 0x4d, 0x2d, 0x4b, 0x4b, 0x9d, 0xc6, 0x8a, + 0xb2, 0x37, 0x9e, 0x96, 0xbe, 0x2a, 0xa8, 0x2a, + 0xc1, 0x82, 0x46, 0xce, 0x64, 0x02, 0x47, 0x8d, + 0xf3, 0x53, 0x22, 0xb6, 0xb5, 0x75, 0x6d, 0x21, + 0xe2, 0xd2, 0xee, 0x71, 0x18, 0x48, 0xed, 0x16, + 0x7a, 0x68, 0x99, 0xe4, 0x8a, 0xe3, 0x55, 0x34, + 0x97, 0x18, 0x56, 0xba, 0x1a, 0x41, 0x24, 0x90, + 0xb1, 0x58, 0x20, 0x7a, 0x89, 0x14, 0xa5, 0x3a, + 0xe9, 0x02, 0x4d, 0x32, 0x82, 0x19, 0xf2, 0x7c, + 0xb5, 0x04, 0x2a, 0xa2, 0xa2, 0xa6, 0x96, 0xcd, + 0x45, 0x34, 0xee, 0xb1, 0xad, 0xee, 0x5a, 0x78, + 0x24, 0x8a, 0xb2, 0x3a, 0x99, 0x61, 0xa5, 0x68, + 0xa2, 0xf9, 0x11, 0x53, 0x01, 0x20, 0xb4, 0x2a, + 0x59, 0x50, 0xee, 0xd2, 0x0a, 0xe9, 0x55, 0x40, + 0xa0, 0x4d, 0x42, 0xb0, 0xd2, 0x5f, 0x9a, 0x3a, + 0xaa, 0xc0, 0x2c, 0xb7, 0x05, 0x16, 0xe8, 0xf6, + 0xe7, 0x44, 0x45, 0xea, 0x11, 0x5e, 0x42, 0x37, + 0x67, 0x21, 0x40, 0xa3, 0x52, 0xe9, 0x39, 0xa8, + 0x6c, 0x5c, 0x66, 0xd5, 0x67, 0xac, 0xcf, 0x79, + 0x6b, 0x7c, 0xd9, 0xf8, 0xc9, 0x81, 0xb3, 0xc4, + 0x39, 0x84, 0xa5, 0xb5, 0x8c, 0xc4, 0x75, 0xab, + 0x6e, 0xba, 0x91, 0xbf, 0x22, 0x94, 0xf6, 0xb9, + 0x76, 0xe3, 0xbd, 0xce, 0x9a, 0x10, 0xdf, 0xc6, + 0x19, 0xf7, 0x31, 0x09, 0x4a, 0xaa, 0x6e, 0x0e, + 0x5b, 0x2b, 0x6a, 0x5e, 0x96, 0xdb, 0x25, 0x15, + 0x44, 0xd2, 0x69, 0x94, 0x42, 0xb3, 0xce, 0x93, + 0xcb, 0xb3, 0x47, 0x91, 0xb9, 0xbc, 0xdc, 0x94, + 0xae, 0xac, 0xc0, 0x27, 0x77, 0x38, 0x83, 0x87, + 0xaa, 0x95, 0x2d, 0xd5, 0x16, 0xd8, 0xeb, 0x25, + 0x7b, 0x52, 0xdf, 0x21, 0xa0, 0x5a, 0xcd, 0xa6, + 0x6c, 0xb6, 0xf6, 0x49, 0x19, 0xe0, 0x12, 0xf4, + 0x18, 0x94, 0xaa, 0x8c, 0xc7, 0xc9, 0xe9, 0xcc, + 0x65, 0xb3, 0x7d, 0x38, 0x8e, 0x1a, 0x5a, 0x4a, + 0xbb, 0xfc, 0x14, 0x35, 0x2f, 0x53, 0x4e, 0x96, + 0x07, 0x58, 0xcb, 0x4c, 0x27, 0xd9, 0x6a, 0x65, + 0x76, 0x89, 0x64, 0x5e, 0x69, 0x50, 0x49, 0x7c, + 0x97, 0x20, 0x0b, 0x91, 0xd3, 0x9e, 0x22, 0xac, + 0x86, 0x6a, 0xbe, 0x05, 0xa4, 0x53, 0x24, 0x8d, + 0x0d, 0x26, 0x99, 0x55, 0x1c, 0x31, 0x46, 0xe2, + 0x91, 0xa6, 0x52, 0x00, 0x4e, 0x96, 0xd4, 0x8c, + 0x32, 0x6d, 0xfb, 0xb3, 0xe8, 0xc8, 0xe1, 0x66, + 0x95, 0xad, 0xb6, 0xca, 0x12, 0x1d, 0xa9, 0x2a, + 0x6e, 0x37, 0x27, 0xa8, 0x89, 0x6a, 0xe3, 0xa1, + 0x15, 0x0d, 0x13, 0x44, 0x63, 0x8d, 0xea, 0xa6, + 0x0d, 0x1a, 0x04, 0x27, 0x5e, 0x4e, 0x0a, 0xb3, + 0x69, 0x39, 0x6b, 0x08, 0xc2, 0x6e, 0x39, 0x51, + 0x6f, 0xa0, 0xa7, 0x96, 0xa6, 0x19, 0xa1, 0xa7, + 0xa8, 0xab, 0x09, 0x42, 0xf7, 0x58, 0x43, 0xcb, + 0x02, 0x2a, 0xec, 0x4a, 0xd4, 0x87, 0xd8, 0xcc, + 0x69, 0x57, 0x5c, 0x2a, 0xba, 0xb5, 0xa6, 0xa5, + 0x58, 0x62, 0xd0, 0xe4, 0x2f, 0x05, 0xea, 0xd2, + 0x5b, 0x4c, 0x4a, 0xa6, 0x72, 0x20, 0x92, 0x58, + 0x32, 0xa9, 0x91, 0x65, 0x78, 0xc2, 0x11, 0xa6, + 0x35, 0x95, 0x12, 0x30, 0xf1, 0xaa, 0x90, 0x13, + 0x98, 0xba, 0x47, 0xc9, 0x8e, 0x6a, 0xae, 0x36, + 0xa3, 0xc5, 0x8d, 0xa8, 0xf1, 0x63, 0x6a, 0x3c, + 0x58, 0xbc, 0x6f, 0xbb, 0xdd, 0x0f, 0x7e, 0xe3, + 0x5b, 0xfd, 0xe2, 0x4f, 0xdd, 0xfc, 0x03, 0x7d, + 0x0d, 0x74, 0xf1, 0xad, 0x1f, 0xf5, 0xd4, 0xe3, + 0x6d, 0xe3, 0xfe, 0x9c, 0x70, 0x92, 0x7a, 0x4e, + 0x2d, 0x4f, 0x1d, 0xc2, 0x8a, 0x4a, 0xaa, 0x27, + 0x9b, 0xe5, 0xaa, 0x61, 0x91, 0x96, 0x4a, 0x06, + 0xcb, 0x24, 0x9c, 0x2a, 0xa3, 0x33, 0x02, 0x0b, + 0x83, 0xbd, 0x57, 0x76, 0x44, 0x39, 0x64, 0x18, + 0xb5, 0xc5, 0x1d, 0x53, 0x5d, 0xad, 0xd6, 0xda, + 0x8a, 0xa9, 0xec, 0xb3, 0x50, 0xb8, 0x43, 0x54, + 0x18, 0x47, 0x15, 0x73, 0xb8, 0x31, 0x2c, 0x3a, + 0xc2, 0x65, 0x90, 0xcf, 0x68, 0x74, 0x2b, 0x36, + 0x5a, 0x9b, 0x3c, 0xa3, 0x38, 0xa5, 0x3d, 0x92, + 0xa1, 0xb9, 0xd5, 0xd6, 0xa5, 0x51, 0x34, 0xf6, + 0xea, 0x4b, 0x48, 0x14, 0xe8, 0x92, 0x4e, 0x0d, + 0x39, 0x59, 0x27, 0x91, 0x63, 0x77, 0x8c, 0x37, + 0x3d, 0x62, 0x79, 0x17, 0x5a, 0xea, 0x4d, 0xa0, + 0xe9, 0xcb, 0x2a, 0x72, 0x92, 0xc3, 0x79, 0x8e, + 0x18, 0xa9, 0xab, 0x61, 0xec, 0x59, 0xca, 0xba, + 0x0a, 0x17, 0xa2, 0x21, 0xd2, 0x48, 0xa4, 0x58, + 0xe5, 0xa6, 0x01, 0x69, 0x84, 0xcb, 0x93, 0x30, + 0x78, 0xe3, 0x69, 0x32, 0x8c, 0x3e, 0xdc, 0xe7, + 0x20, 0xc5, 0x44, 0xb4, 0x67, 0xb1, 0x75, 0x3f, + 0x21, 0x1d, 0xbc, 0x5a, 0x4d, 0x26, 0xb7, 0xb6, + 0x9a, 0xa8, 0x05, 0x7a, 0x8f, 0xdb, 0x29, 0xc5, + 0xf3, 0x80, 0x0a, 0x99, 0x18, 0xb3, 0x2d, 0x46, + 0x64, 0x97, 0x22, 0x5d, 0x5b, 0x8c, 0x89, 0x43, + 0x49, 0x03, 0xd7, 0xf0, 0x76, 0x9a, 0xa9, 0x1a, + 0xa2, 0x14, 0xb6, 0xd6, 0x3a, 0xc7, 0x5b, 0x4e, + 0x88, 0xc5, 0x4c, 0xd3, 0xbc, 0x62, 0x5a, 0x7d, + 0xad, 0x4a, 0x0c, 0xb5, 0x66, 0xaa, 0x5d, 0xb7, + 0x69, 0x25, 0x57, 0xa0, 0x52, 0x41, 0x4b, 0x1d, + 0xae, 0xd3, 0x3a, 0x43, 0x10, 0xa8, 0x3c, 0x25, + 0x85, 0x4c, 0xe1, 0x46, 0xdb, 0x64, 0x24, 0x70, + 0x23, 0xda, 0xfc, 0xfd, 0x9e, 0x4a, 0xa7, 0x46, + 0x7a, 0x73, 0x1a, 0xb2, 0xd5, 0xbf, 0x1c, 0x2b, + 0x93, 0x55, 0x8e, 0xb0, 0x67, 0xdd, 0x83, 0xfb, + 0x78, 0xf1, 0x5a, 0x1c, 0xcd, 0x76, 0xa6, 0x6f, + 0xc8, 0xd0, 0x41, 0x5d, 0x59, 0x0e, 0xfd, 0xda, + 0xae, 0x72, 0x51, 0x1c, 0xb2, 0xee, 0x65, 0xa9, + 0xbf, 0xa7, 0xf9, 0xee, 0xb5, 0x41, 0x85, 0x4c, + 0x2c, 0x61, 0xa5, 0x6e, 0xc1, 0xdb, 0xd5, 0x08, + 0xa7, 0xd7, 0x53, 0x72, 0x40, 0x89, 0x26, 0x9d, + 0xa9, 0x25, 0x52, 0x38, 0x98, 0x66, 0xce, 0x13, + 0x69, 0xa2, 0x1c, 0xb5, 0x80, 0x9c, 0xda, 0x58, + 0x69, 0x6b, 0x6e, 0x6b, 0xc6, 0xa2, 0x8a, 0xa5, + 0x53, 0x82, 0xd4, 0x6c, 0xab, 0x2a, 0xab, 0xae, + 0xb3, 0x0c, 0x29, 0xac, 0x03, 0xd0, 0xea, 0x18, + 0xe9, 0x61, 0x93, 0x23, 0x6f, 0x52, 0x18, 0x03, + 0x8a, 0x5a, 0xc1, 0x0d, 0xbb, 0x83, 0xaa, 0xe6, + 0x2a, 0x74, 0xfd, 0xbe, 0x7b, 0x23, 0x24, 0x3b, + 0x79, 0x29, 0x8e, 0x6e, 0xa6, 0x2a, 0x7c, 0xce, + 0x85, 0x92, 0x55, 0x27, 0x21, 0x2a, 0xc8, 0x85, + 0x82, 0x36, 0xc9, 0xf4, 0x65, 0x8a, 0x67, 0x82, + 0x2a, 0x3e, 0x0f, 0xcf, 0x5f, 0x16, 0xd6, 0xdd, + 0x4d, 0x53, 0x74, 0x4a, 0x94, 0x78, 0xb6, 0x89, + 0x1c, 0xb2, 0x49, 0xf2, 0x3b, 0x78, 0x40, 0x20, + 0xf4, 0x7c, 0xc2, 0x87, 0x2c, 0x8e, 0xe3, 0x9e, + 0x58, 0x6d, 0x32, 0xd1, 0x5f, 0x5a, 0x8e, 0x16, + 0x8e, 0x8f, 0xb2, 0xd4, 0x55, 0x0d, 0x0e, 0xc8, + 0xf3, 0x69, 0x14, 0x4c, 0xc5, 0xb6, 0x19, 0xa1, + 0xd9, 0x8c, 0xc4, 0x9b, 0x3d, 0x51, 0x85, 0x8f, + 0x76, 0x68, 0x06, 0xe9, 0x56, 0x17, 0xb6, 0xdd, + 0xe6, 0xa7, 0x94, 0xbd, 0x35, 0x45, 0x55, 0xb9, + 0x33, 0x8e, 0xde, 0xb6, 0xea, 0x33, 0x22, 0x48, + 0xd9, 0xb5, 0x2c, 0x7c, 0x66, 0x56, 0xdc, 0xac, + 0x44, 0x80, 0xc3, 0x10, 0x0c, 0x7b, 0xb8, 0x9e, + 0x86, 0xdc, 0xb7, 0x7b, 0xec, 0x62, 0x92, 0x9c, + 0x45, 0x05, 0x84, 0xbc, 0x31, 0x88, 0x93, 0x44, + 0x72, 0xec, 0x14, 0x6d, 0x91, 0x72, 0xc9, 0x65, + 0xfc, 0xed, 0xa8, 0xc9, 0xf5, 0x12, 0xf9, 0xea, + 0x25, 0xb1, 0x29, 0x54, 0x4b, 0x64, 0xf5, 0xad, + 0x1a, 0xd2, 0x3d, 0x89, 0x69, 0xe1, 0x92, 0x6a, + 0x23, 0x5e, 0x82, 0x50, 0xf2, 0x97, 0x89, 0x13, + 0x6b, 0x10, 0x86, 0xa4, 0xea, 0xd5, 0x1c, 0xba, + 0x86, 0x8c, 0xd4, 0xea, 0x5f, 0x9c, 0xb4, 0x94, + 0xb0, 0x3d, 0xc2, 0xc5, 0x4f, 0x57, 0x19, 0xa8, + 0x8e, 0x1b, 0x34, 0xec, 0xb1, 0xd6, 0xd3, 0xa2, + 0x93, 0xf2, 0xf2, 0x6c, 0xc4, 0xb4, 0xc6, 0x4a, + 0x84, 0x05, 0x51, 0xf7, 0x29, 0x77, 0xc8, 0x80, + 0x79, 0xac, 0x32, 0x51, 0xc5, 0x62, 0xb7, 0x5b, + 0x25, 0x9e, 0x24, 0x6a, 0x6a, 0x5e, 0x11, 0x54, + 0x09, 0x4b, 0x44, 0x26, 0x54, 0xa5, 0xd5, 0x9b, + 0xc6, 0x41, 0x57, 0x2d, 0x13, 0x69, 0x19, 0xc5, + 0xbc, 0x39, 0x03, 0x30, 0x4e, 0x23, 0xa8, 0x46, + 0x8e, 0x36, 0x8f, 0x2d, 0x9b, 0x22, 0x34, 0x79, + 0x73, 0x46, 0x82, 0xa0, 0xa6, 0x4b, 0xdc, 0x1a, + 0x72, 0xc8, 0x77, 0x3a, 0x31, 0x75, 0x97, 0x3b, + 0x5d, 0xcc, 0x77, 0xed, 0xf5, 0xa3, 0xfe, 0xda, + 0x5c, 0x29, 0xc8, 0xa9, 0xef, 0x10, 0x71, 0x4d, + 0x5f, 0x15, 0x64, 0x11, 0xd4, 0x42, 0xc1, 0x92, + 0x55, 0x0d, 0xb8, 0x8d, 0xc4, 0x8e, 0x72, 0x1e, + 0xf3, 0x29, 0xdc, 0x41, 0xde, 0x31, 0xb5, 0xf8, + 0xdd, 0x8d, 0xaf, 0xc6, 0xec, 0x4b, 0xb2, 0x9e, + 0x37, 0x86, 0x68, 0xd2, 0x58, 0x9c, 0x64, 0xf1, + 0xb8, 0x0c, 0xac, 0x3a, 0x77, 0x83, 0xde, 0x20, + 0x10, 0x7a, 0x41, 0x00, 0x82, 0x08, 0x07, 0x14, + 0xf4, 0x14, 0x16, 0xfd, 0xac, 0x94, 0x14, 0x71, + 0x45, 0x3b, 0x46, 0x54, 0x31, 0x69, 0x1c, 0x9e, + 0xe8, 0x4d, 0x52, 0xc8, 0xec, 0x88, 0xcc, 0x06, + 0xad, 0x05, 0x73, 0xc8, 0x67, 0xd0, 0x32, 0xb3, + 0xd3, 0x54, 0x43, 0x25, 0x7d, 0x6d, 0x7c, 0x70, + 0xc7, 0x55, 0x5f, 0x30, 0x66, 0x86, 0x26, 0x57, + 0x44, 0x8d, 0x73, 0xdc, 0x48, 0x2e, 0xa7, 0x59, + 0x39, 0x9e, 0x73, 0x93, 0xd2, 0xc7, 0x51, 0x65, + 0x14, 0xf6, 0xeb, 0x65, 0x24, 0xaf, 0x3d, 0x35, + 0x1c, 0x51, 0x4a, 0xe1, 0x83, 0x38, 0xd4, 0x77, + 0x37, 0xce, 0x08, 0xae, 0xcc, 0x91, 0x83, 0x9e, + 0x44, 0x46, 0xa8, 0x34, 0xf3, 0x7e, 0x6e, 0xec, + 0x0b, 0x55, 0xa4, 0x43, 0x2d, 0x3f, 0x12, 0x8f, + 0x63, 0x34, 0x8b, 0x2c, 0x91, 0xeb, 0x94, 0x8d, + 0xa2, 0xfc, 0xd7, 0x42, 0x64, 0xd5, 0x11, 0x00, + 0x95, 0xf9, 0x26, 0x4e, 0x69, 0x2a, 0x79, 0xa4, + 0x82, 0xb4, 0x74, 0x08, 0xb4, 0xa8, 0x94, 0xc8, + 0xa9, 0x45, 0x26, 0xd6, 0x95, 0x55, 0x9d, 0x44, + 0x52, 0x7e, 0x9e, 0xe7, 0xce, 0x46, 0x3d, 0x2c, + 0x65, 0xd7, 0xa8, 0xef, 0x6c, 0xce, 0x1a, 0x8a, + 0x85, 0xd2, 0xae, 0x36, 0xa7, 0x05, 0x2b, 0xa4, + 0x12, 0xd5, 0xae, 0xd2, 0x5f, 0x96, 0x90, 0x30, + 0x60, 0xc4, 0x89, 0x33, 0x4e, 0x70, 0x07, 0x28, + 0xca, 0x0f, 0x16, 0x1f, 0x67, 0x24, 0x4d, 0x03, + 0xae, 0xa8, 0x9d, 0x0c, 0x6c, 0x99, 0x91, 0x9a, + 0x11, 0xa4, 0xae, 0x60, 0x86, 0xe8, 0xdd, 0x98, + 0x39, 0xf8, 0xf0, 0x28, 0x68, 0x15, 0xe2, 0x71, + 0x4c, 0xa1, 0xe0, 0xa7, 0x34, 0xb0, 0xb6, 0xd2, + 0x5c, 0xd2, 0x9c, 0xab, 0x21, 0x8c, 0x7c, 0xa6, + 0xfe, 0x6b, 0x30, 0xd4, 0xd9, 0xbe, 0xf3, 0xce, + 0xc4, 0x94, 0x16, 0xe9, 0x69, 0x63, 0xa2, 0x92, + 0x96, 0x37, 0xa6, 0x87, 0xf2, 0x51, 0x96, 0x7c, + 0xe3, 0xdf, 0xab, 0x99, 0x2e, 0xbd, 0xb2, 0xe6, + 0x4e, 0xfc, 0xa4, 0xe7, 0x0e, 0x69, 0xcd, 0x77, + 0x63, 0x8a, 0x50, 0x8a, 0x43, 0x42, 0x29, 0x62, + 0x14, 0x84, 0x64, 0x60, 0xfc, 0xd3, 0xd0, 0x75, + 0x16, 0xcf, 0x59, 0x93, 0x30, 0x0e, 0xd4, 0xb6, + 0xd3, 0x50, 0x0d, 0xab, 0x31, 0x9e, 0x29, 0xad, + 0xf6, 0xea, 0x42, 0xc6, 0x9a, 0x92, 0x38, 0x8b, + 0xc5, 0xb0, 0x7d, 0xee, 0xc1, 0xe2, 0x2d, 0xa8, + 0xa3, 0xac, 0x8e, 0xea, 0xf9, 0x93, 0xbd, 0x98, + 0x17, 0x23, 0x9a, 0x58, 0xa8, 0x03, 0x10, 0x5b, + 0x2d, 0x74, 0xcf, 0x14, 0x90, 0x51, 0xc7, 0x14, + 0x90, 0xbb, 0x49, 0x1b, 0xab, 0xc9, 0xa9, 0x5d, + 0xd4, 0x2b, 0x1c, 0xcc, 0x87, 0x50, 0xc8, 0x64, + 0x15, 0xf5, 0x2a, 0xef, 0xd0, 0x17, 0x33, 0x99, + 0xb7, 0x5b, 0x5a, 0x97, 0x89, 0x35, 0x22, 0x1a, + 0x6d, 0xa1, 0x9b, 0x64, 0x5e, 0x43, 0x94, 0xa4, + 0xe6, 0x5d, 0x5c, 0xbe, 0xd5, 0x18, 0xf4, 0x12, + 0x8e, 0xbc, 0xd2, 0x57, 0xe6, 0xb1, 0x06, 0x4b, + 0x75, 0xb6, 0x5a, 0x68, 0xa9, 0x24, 0xa3, 0x89, + 0xa9, 0xe1, 0xfc, 0x94, 0x7c, 0xe5, 0xd9, 0x9e, + 0xe9, 0x59, 0x11, 0x96, 0x5c, 0xdf, 0xa6, 0x43, + 0xaf, 0x39, 0x4e, 0xf9, 0x35, 0x1c, 0x53, 0xac, + 0x14, 0xb1, 0x24, 0x14, 0xf1, 0xac, 0x30, 0xa0, + 0xc9, 0x51, 0x3a, 0x07, 0x7c, 0x92, 0x73, 0x66, + 0x63, 0xd2, 0xcc, 0xc4, 0xb3, 0x1d, 0xec, 0x49, + 0xc6, 0xd7, 0xe3, 0x76, 0x36, 0xbf, 0x1b, 0xb1, + 0x25, 0x54, 0x70, 0xc6, 0xf2, 0xca, 0xe1, 0x23, + 0x8d, 0x4b, 0x3b, 0xb1, 0x19, 0x00, 0x3e, 0x37, + 0x0e, 0x92, 0x77, 0x0d, 0xf8, 0xac, 0x98, 0x54, + 0xd6, 0x55, 0x54, 0x28, 0x21, 0x67, 0xa9, 0x9e, + 0x65, 0x07, 0xa4, 0x09, 0x65, 0x67, 0x00, 0xf8, + 0xc0, 0x3b, 0xff, 0x00, 0x77, 0xf0, 0x6e, 0xe9, + 0x1d, 0xb6, 0xae, 0x41, 0x39, 0xd3, 0x05, 0x4a, + 0x2a, 0x33, 0xfd, 0x1b, 0xa1, 0x26, 0x36, 0x20, + 0x67, 0xcd, 0xe7, 0x32, 0xb7, 0x7b, 0x50, 0x6e, + 0x80, 0x70, 0xb7, 0x1a, 0x46, 0x19, 0xad, 0x55, + 0x39, 0x1e, 0x29, 0xa3, 0xf5, 0xe3, 0x8f, 0xd2, + 0xf5, 0x98, 0x3c, 0xec, 0x7e, 0xbc, 0x54, 0x55, + 0xc7, 0x24, 0x2e, 0x90, 0x5c, 0x21, 0xa6, 0x95, + 0x87, 0x32, 0x60, 0xd0, 0xc9, 0xb3, 0x39, 0xe7, + 0x9e, 0x86, 0x60, 0xad, 0xde, 0xc8, 0xf7, 0xfb, + 0xf8, 0xb6, 0xf1, 0x3b, 0x75, 0x2a, 0xd3, 0x8a, + 0xd8, 0xa5, 0x6d, 0x6f, 0x24, 0xb3, 0x34, 0xb1, + 0x86, 0x96, 0x59, 0x0e, 0x6c, 0xe4, 0x6a, 0x6f, + 0xa8, 0x66, 0xcc, 0x72, 0xe9, 0x62, 0x71, 0xc7, + 0xa9, 0x7a, 0xcc, 0x1e, 0x76, 0x3f, 0x5e, 0x38, + 0xf5, 0x2f, 0x59, 0xa7, 0xf3, 0xb1, 0xfa, 0xf1, + 0xc7, 0xe9, 0xba, 0xcc, 0x1e, 0x7a, 0x3f, 0x5e, + 0x38, 0xf5, 0x2f, 0x59, 0x83, 0xce, 0xc7, 0xeb, + 0xc7, 0x1e, 0xa5, 0xeb, 0x30, 0x79, 0xd8, 0xfd, + 0x78, 0xe3, 0xd4, 0xbd, 0x66, 0x0f, 0x3b, 0x1f, + 0xaf, 0x1c, 0x7a, 0x97, 0xac, 0xc1, 0xe7, 0x63, + 0xf5, 0xe3, 0x8f, 0xd2, 0xf5, 0x98, 0x3c, 0xec, + 0x7e, 0xbc, 0x71, 0xea, 0x5e, 0xb3, 0x4f, 0xe7, + 0x63, 0xf5, 0xe2, 0xba, 0x41, 0x52, 0x23, 0x34, + 0xb7, 0x74, 0xa2, 0x96, 0x32, 0xdc, 0xe5, 0x68, + 0xa6, 0x8d, 0xd5, 0xf4, 0xe6, 0x24, 0x85, 0xdc, + 0x23, 0x11, 0xa4, 0x68, 0x7e, 0x94, 0xcd, 0xb2, + 0xf9, 0xc7, 0x16, 0xd5, 0xa6, 0xa0, 0x59, 0xcb, + 0xdc, 0x22, 0xaa, 0xa8, 0xaa, 0x97, 0x6d, 0x51, + 0x3b, 0x3c, 0x49, 0xad, 0xb2, 0xc9, 0x40, 0x40, + 0xcc, 0x15, 0x40, 0xcf, 0x76, 0x67, 0xa4, 0xe5, + 0x90, 0xc8, 0x0e, 0x3d, 0x4b, 0xd6, 0x60, 0xf3, + 0xb1, 0xfa, 0xf1, 0xc7, 0xe9, 0xba, 0xcc, 0x1e, + 0x7a, 0x3f, 0x5e, 0x38, 0xf5, 0x2f, 0x59, 0xa7, + 0xf3, 0xb1, 0xfa, 0xf1, 0xc7, 0xe9, 0x7a, 0xcc, + 0x1e, 0x76, 0x3f, 0x5e, 0x38, 0xfd, 0x2f, 0x59, + 0x83, 0xce, 0xc7, 0xeb, 0xc7, 0x1f, 0xa5, 0xeb, + 0x30, 0x79, 0xe8, 0xfd, 0x78, 0xbe, 0xdf, 0x29, + 0x62, 0xa2, 0xa8, 0xa7, 0x86, 0x58, 0xe7, 0x9e, + 0xa6, 0x27, 0x80, 0x2c, 0x6c, 0x1c, 0x22, 0x4a, + 0xa5, 0x1d, 0xd9, 0x97, 0x30, 0x32, 0x42, 0x74, + 0x8c, 0xf3, 0xd5, 0x96, 0xec, 0x81, 0xfc, 0x50, + 0xd5, 0x54, 0xd3, 0x67, 0xc5, 0xea, 0x26, 0x83, + 0x57, 0xce, 0xd9, 0x4a, 0xf1, 0xea, 0xcb, 0xa3, + 0x50, 0x52, 0x33, 0xcb, 0xc7, 0x8e, 0xca, 0xdc, + 0xfa, 0xfd, 0x5f, 0xa4, 0x49, 0xfa, 0xd8, 0xec, + 0xad, 0xcf, 0xaf, 0xd6, 0x7a, 0x44, 0x9f, 0xad, + 0x8e, 0xca, 0xdc, 0xfa, 0xfd, 0x5f, 0xa4, 0x49, + 0xfa, 0xd8, 0xec, 0xad, 0xcf, 0xaf, 0xd5, 0xfa, + 0x44, 0x9f, 0xad, 0x8e, 0xca, 0xdc, 0xfa, 0xfd, + 0x5f, 0xa4, 0x49, 0xfa, 0xd8, 0xec, 0xad, 0xcf, + 0xaf, 0xd5, 0xfa, 0x44, 0x9f, 0xad, 0x8e, 0xca, + 0xdc, 0xfa, 0xfd, 0x5f, 0xa4, 0x49, 0xfa, 0xd8, + 0xec, 0xad, 0xcf, 0xaf, 0xd5, 0xfa, 0x44, 0x9f, + 0xad, 0x8e, 0xca, 0xdc, 0xfa, 0xfd, 0x5f, 0xa4, + 0x49, 0xfa, 0xd8, 0xec, 0xad, 0xcf, 0xaf, 0xd5, + 0xfa, 0x44, 0x9f, 0xad, 0x8e, 0xca, 0xdc, 0xfa, + 0xfd, 0x5f, 0xa4, 0x49, 0xfa, 0xd8, 0xec, 0xad, + 0xcf, 0xaf, 0xd5, 0xfa, 0x44, 0x9f, 0xad, 0x8e, + 0xca, 0xdc, 0xfa, 0xfd, 0x5f, 0xa4, 0x49, 0xfa, + 0xd8, 0xec, 0xad, 0xcf, 0xaf, 0xd5, 0xfa, 0x44, + 0x9f, 0xad, 0x8e, 0xca, 0xdc, 0xfa, 0xfd, 0x5f, + 0xa4, 0x49, 0xfa, 0xd8, 0xec, 0xad, 0xcf, 0xaf, + 0xd5, 0xfa, 0x44, 0x9f, 0xad, 0x8e, 0xca, 0xdc, + 0xfa, 0xfd, 0x5f, 0xa4, 0x49, 0xfa, 0xd8, 0xec, + 0xad, 0xcf, 0xaf, 0xd5, 0xfa, 0x44, 0x9f, 0xad, + 0x8e, 0xca, 0xdc, 0xfa, 0xfd, 0x5f, 0xa4, 0x49, + 0xfa, 0xd8, 0xec, 0xad, 0xcf, 0xaf, 0xd5, 0xfa, + 0x44, 0x9f, 0xad, 0x89, 0xab, 0x2a, 0xea, 0x00, + 0x59, 0xea, 0x67, 0x99, 0x41, 0xcc, 0x2c, 0xb2, + 0xc8, 0xea, 0x0f, 0x7c, 0x2b, 0x31, 0x19, 0xf8, + 0xf2, 0xff, 0x00, 0xf4, 0xee, 0x2b, 0x75, 0xc6, + 0x74, 0x12, 0x41, 0x41, 0x5b, 0x32, 0x1e, 0x87, + 0x86, 0x92, 0x79, 0x10, 0xfd, 0x4c, 0x91, 0x90, + 0x7f, 0xeb, 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, + 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, + 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, + 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, + 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, + 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, + 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, + 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, + 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, + 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, + 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, + 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, + 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, + 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, + 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, + 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, + 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, + 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, + 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, + 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, + 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, + 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, + 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, + 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, + 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, + 0xaf, 0x65, 0x89, 0x61, 0x96, 0x07, 0x31, 0xcd, + 0x14, 0x90, 0xc8, 0x3a, 0x52, 0x54, 0x68, 0xdc, + 0x7f, 0xca, 0xe0, 0x1f, 0xe8, 0xfd, 0xf7, 0xe0, + 0x7d, 0xba, 0x0b, 0x95, 0xe5, 0x52, 0xa9, 0x44, + 0x90, 0x53, 0x41, 0x25, 0x5b, 0xc4, 0xc3, 0x35, + 0x94, 0xa3, 0xc5, 0x1a, 0x23, 0x83, 0xd2, 0x9a, + 0xe6, 0x56, 0x65, 0xfc, 0xe0, 0xba, 0x4e, 0xe2, + 0x71, 0xac, 0x0c, 0x80, 0x20, 0x00, 0x32, 0x00, + 0x74, 0x00, 0x3a, 0x00, 0x1d, 0xc0, 0x3b, 0xd8, + 0xd7, 0xe3, 0xc6, 0xbf, 0x1e, 0x35, 0xf8, 0xf1, + 0xaf, 0xc7, 0x8d, 0x7e, 0x3c, 0x6b, 0xf1, 0xe2, + 0x6a, 0x98, 0xa9, 0xe2, 0x92, 0x79, 0xa4, 0x11, + 0xc5, 0x12, 0x97, 0x91, 0xcf, 0x42, 0x28, 0xe9, + 0x63, 0x90, 0x27, 0x21, 0xe2, 0x18, 0xa5, 0xe1, + 0x05, 0x9e, 0xb2, 0x65, 0xa7, 0xa6, 0xb8, 0x41, + 0x2c, 0xcf, 0x9e, 0x88, 0xc6, 0xa5, 0x66, 0xc8, + 0x66, 0x42, 0xeb, 0x45, 0x0c, 0x72, 0xdf, 0xa4, + 0x1d, 0x47, 0xb8, 0x31, 0xaf, 0xc7, 0x88, 0xeb, + 0x69, 0xe6, 0x9a, 0xa2, 0x9e, 0x39, 0x95, 0xe6, + 0xa5, 0xd9, 0xf1, 0x88, 0xc0, 0x39, 0xc5, 0xb5, + 0x05, 0xa3, 0xd5, 0x98, 0xcb, 0x9e, 0x14, 0x91, + 0x91, 0x3d, 0x18, 0xd7, 0xe3, 0xc6, 0xbf, 0x1e, + 0x35, 0xf8, 0xf1, 0xaf, 0xc7, 0x8d, 0x7e, 0x3c, + 0x6b, 0xf1, 0xe3, 0x5f, 0x8f, 0x1a, 0xfc, 0x78, + 0xd7, 0xe3, 0xc6, 0xbf, 0x1e, 0x38, 0x53, 0x41, + 0x4d, 0x71, 0xb4, 0x56, 0x34, 0xaa, 0xa6, 0x6a, + 0x3a, 0x69, 0xea, 0xa9, 0xa6, 0xc8, 0x6d, 0x23, + 0x68, 0x23, 0x32, 0xb2, 0x06, 0xe9, 0xd1, 0x28, + 0x4d, 0x0e, 0xbd, 0x1b, 0xc3, 0x74, 0xa8, 0x3f, + 0xbe, 0xfc, 0x04, 0x6d, 0x37, 0x6a, 0x9f, 0xff, + 0x00, 0x6d, 0x94, 0x7f, 0xdd, 0x51, 0xe3, 0x6b, + 0xf1, 0xf0, 0x71, 0xb5, 0xf8, 0xf8, 0x38, 0xda, + 0xfc, 0x7c, 0x1c, 0x6d, 0x7e, 0x3e, 0x0e, 0x36, + 0xbf, 0x1f, 0x07, 0x1b, 0x5f, 0x8f, 0x83, 0x8d, + 0xaf, 0xc7, 0xc1, 0xc5, 0xf6, 0x4c, 0xec, 0xd7, + 0x21, 0xff, 0x00, 0x94, 0x97, 0xfa, 0xbe, 0xbc, + 0x5c, 0x29, 0xa8, 0xe1, 0xe0, 0xcd, 0xbe, 0xb2, + 0x0a, 0x7a, 0x78, 0x6b, 0xa1, 0x8e, 0xdb, 0x2c, + 0x35, 0x10, 0xc5, 0x1c, 0x73, 0x34, 0xe7, 0x65, + 0x99, 0x67, 0x8c, 0x2b, 0x4a, 0x5b, 0x32, 0xc7, + 0x59, 0x6e, 0x77, 0x3b, 0xa7, 0x7e, 0x2b, 0xef, + 0x37, 0x87, 0xb8, 0x57, 0x3d, 0x0c, 0xb5, 0x1a, + 0x6d, 0xf5, 0x11, 0xc1, 0x0d, 0x04, 0x36, 0xe9, + 0x6a, 0x62, 0xaa, 0xd3, 0xbe, 0x7e, 0x31, 0x50, + 0x8a, 0xdb, 0x16, 0x39, 0x9d, 0x23, 0x32, 0x4a, + 0xf4, 0x6c, 0xf2, 0x0c, 0xc4, 0x5c, 0xa7, 0xba, + 0xf0, 0x82, 0x5b, 0x7d, 0x78, 0xb7, 0x68, 0x86, + 0x8a, 0xa6, 0x40, 0xd1, 0x2c, 0x92, 0x4a, 0xe9, + 0x4b, 0x21, 0x8a, 0x13, 0xaf, 0x2d, 0x94, 0x63, + 0x39, 0x76, 0xaf, 0x93, 0x10, 0xfb, 0x31, 0xb3, + 0x3b, 0xf4, 0xdb, 0xef, 0x55, 0x75, 0x95, 0xd6, + 0x3d, 0x72, 0x68, 0x8e, 0xae, 0xd9, 0x53, 0x25, + 0x4c, 0x2a, 0x14, 0x24, 0x93, 0xc4, 0xee, 0x82, + 0x40, 0x0e, 0xf1, 0x9e, 0x9d, 0x40, 0x2b, 0x01, + 0xdc, 0x03, 0x2c, 0x0b, 0xc5, 0xce, 0x5a, 0x14, + 0x8a, 0x2a, 0xbd, 0x35, 0x35, 0xb7, 0xe9, 0xa8, + 0x12, 0xa9, 0xd5, 0x5b, 0x8b, 0xd3, 0xab, 0x66, + 0x34, 0x00, 0x34, 0x92, 0x00, 0xc9, 0x73, 0xde, + 0xc0, 0x90, 0x0e, 0x7b, 0xc5, 0x9a, 0xa6, 0xe4, + 0x97, 0x8b, 0x95, 0xbe, 0xba, 0xbc, 0xd7, 0x25, + 0x35, 0x34, 0x0d, 0x13, 0xec, 0xd2, 0x20, 0x76, + 0x85, 0x0e, 0xa2, 0x89, 0x9e, 0x97, 0xd2, 0x72, + 0x61, 0xad, 0x87, 0x8f, 0x1b, 0x5f, 0x8f, 0x83, + 0x8d, 0xaf, 0xc7, 0xc1, 0xc6, 0xd7, 0xe3, 0xe0, + 0xe3, 0x6b, 0xf1, 0xf0, 0x71, 0xb5, 0xf8, 0xf8, + 0x38, 0xda, 0xfc, 0x7c, 0x1c, 0x6d, 0x7e, 0x3e, + 0x0e, 0x2e, 0xd2, 0x7f, 0xe1, 0x57, 0x3f, 0x1d, + 0xba, 0xb4, 0x7f, 0xdb, 0x4b, 0xe3, 0xfd, 0xf7, + 0xe0, 0x9d, 0x54, 0x74, 0xd7, 0x5c, 0xa4, 0x3a, + 0x78, 0xcd, 0x3c, 0x94, 0xea, 0x4f, 0x46, 0xb6, + 0x92, 0x29, 0x14, 0x7f, 0xcd, 0xb2, 0xd2, 0x3f, + 0x84, 0x40, 0xc6, 0xd7, 0xe3, 0xe0, 0xe3, 0x6b, + 0xf1, 0xf0, 0x71, 0xb5, 0xf8, 0xf8, 0x38, 0xda, + 0xfc, 0x7c, 0x1c, 0x6d, 0x7e, 0x3e, 0x0e, 0x36, + 0xbf, 0x1f, 0x07, 0x1b, 0x5f, 0x8f, 0x83, 0x8a, + 0xa4, 0x4a, 0xba, 0x79, 0xa9, 0xa4, 0x66, 0x54, + 0x9e, 0x36, 0x8d, 0x8a, 0x11, 0xa8, 0x06, 0xfd, + 0x1d, 0x41, 0x86, 0x7f, 0x5a, 0x9c, 0x41, 0x61, + 0xa5, 0x89, 0xe0, 0x69, 0x2a, 0xee, 0x15, 0x71, + 0xd3, 0x32, 0xbc, 0x34, 0xf5, 0x55, 0x22, 0x4a, + 0x74, 0x74, 0x19, 0x46, 0xc2, 0x30, 0x8a, 0x06, + 0x81, 0xf3, 0x40, 0xc8, 0x65, 0xbb, 0x2c, 0xb7, + 0x62, 0xaa, 0xcb, 0x45, 0x57, 0x52, 0xf5, 0x0f, + 0x25, 0x4a, 0x09, 0x8c, 0x6d, 0x53, 0x4f, 0x1c, + 0xda, 0x69, 0xaa, 0x9a, 0x2f, 0x98, 0x67, 0x8f, + 0x22, 0x58, 0x8e, 0x8d, 0xcc, 0x3b, 0xe3, 0x22, + 0x49, 0x35, 0x56, 0x1a, 0x4a, 0xa9, 0xea, 0x2a, + 0x0d, 0x4d, 0x6c, 0x2f, 0x54, 0x15, 0x25, 0x14, + 0xf3, 0x24, 0x68, 0x62, 0x54, 0x08, 0x61, 0xd2, + 0x23, 0x3a, 0xa2, 0x7d, 0x28, 0x59, 0x5f, 0x56, + 0xf4, 0x1a, 0x72, 0x19, 0x83, 0x3d, 0x9e, 0x8a, + 0x65, 0xa3, 0x08, 0xf5, 0x14, 0xbc, 0x45, 0x0c, + 0x70, 0x3d, 0x2c, 0xdb, 0x29, 0x36, 0x4d, 0xf3, + 0xa3, 0x67, 0xe7, 0x31, 0x0c, 0x73, 0x24, 0x82, + 0x1b, 0x36, 0x6e, 0x77, 0x38, 0xe2, 0xb6, 0xdb, + 0x4b, 0x47, 0x6d, 0xe2, 0xd1, 0x53, 0xd6, 0xd4, + 0xc3, 0xc7, 0x38, 0xc8, 0xe2, 0xce, 0x9c, 0x72, + 0x95, 0x88, 0x3a, 0x64, 0xa7, 0x1a, 0x3e, 0x50, + 0x21, 0x0a, 0x9a, 0x5b, 0x9c, 0x15, 0xcb, 0xea, + 0x25, 0x71, 0xc1, 0xf8, 0x64, 0x4a, 0xda, 0xfa, + 0xbd, 0x95, 0x6c, 0x50, 0xcb, 0x14, 0x31, 0x23, + 0x5c, 0x09, 0xe3, 0x73, 0x3a, 0xf3, 0xa4, 0x92, + 0x4c, 0xf7, 0xf4, 0x8f, 0xe2, 0xef, 0x01, 0x4e, + 0xe3, 0x96, 0xd7, 0xe3, 0xe0, 0xe3, 0x6b, 0xf1, + 0xf0, 0x71, 0xb5, 0xf8, 0xf8, 0x38, 0xda, 0xfc, + 0x7c, 0x1c, 0x6d, 0x7e, 0x3e, 0x0e, 0x36, 0xbf, + 0x1f, 0x07, 0x1b, 0x5f, 0x8f, 0x83, 0x8b, 0xd5, + 0x64, 0x70, 0x5a, 0xeb, 0x8c, 0x8d, 0x96, 0xd2, + 0x9a, 0x68, 0x10, 0x77, 0x5a, 0x49, 0xe3, 0x68, + 0xd1, 0x40, 0xcf, 0xbe, 0xd9, 0x9e, 0xf2, 0x82, + 0x7b, 0x9f, 0xbf, 0x09, 0x7b, 0xba, 0xc6, 0xa1, + 0x56, 0xb6, 0x6c, 0x86, 0xe1, 0xab, 0x4b, 0x9f, + 0x29, 0xd5, 0x98, 0xff, 0x00, 0x39, 0xc7, 0x67, + 0xae, 0xfd, 0x76, 0x4f, 0x26, 0x2f, 0x67, 0x8e, + 0xcf, 0x5d, 0xfa, 0xec, 0x9e, 0x4c, 0x5e, 0xcf, + 0x1d, 0x9e, 0xbb, 0xf5, 0xd9, 0x3c, 0x98, 0xbd, + 0x9e, 0x3b, 0x3d, 0x77, 0xeb, 0xb2, 0x79, 0x31, + 0x7b, 0x3c, 0x76, 0x7a, 0xef, 0xd7, 0x64, 0xf2, + 0x62, 0xf6, 0x78, 0xec, 0xf5, 0xdf, 0xae, 0xc9, + 0xe4, 0xc5, 0xec, 0xf1, 0xd9, 0xeb, 0xbf, 0x5d, + 0x93, 0xc9, 0x8b, 0xd9, 0xe3, 0xb3, 0xd7, 0x7e, + 0xbb, 0x27, 0x93, 0x17, 0xb3, 0xc7, 0x67, 0xae, + 0xfd, 0x76, 0x4f, 0x26, 0x2f, 0x67, 0x8e, 0xcf, + 0x5d, 0xfa, 0xec, 0x9e, 0x4c, 0x5e, 0xcf, 0x1d, + 0x9e, 0xbb, 0xf5, 0xd9, 0x3c, 0x98, 0xbd, 0x9e, + 0x3b, 0x3d, 0x77, 0xeb, 0xb2, 0x79, 0x31, 0x7b, + 0x3c, 0x76, 0x7a, 0xef, 0xd7, 0x64, 0xf2, 0x62, + 0xf6, 0x78, 0xec, 0xf5, 0xdf, 0xae, 0xc9, 0xe4, + 0xc5, 0xec, 0xf1, 0xd9, 0xeb, 0xbf, 0x5d, 0x93, + 0xc9, 0x8b, 0xd9, 0xe3, 0xb3, 0xd7, 0x7e, 0xbb, + 0x27, 0x93, 0x17, 0xb3, 0xc7, 0x67, 0xae, 0xfd, + 0x76, 0x4f, 0x26, 0x2f, 0x67, 0x8e, 0xcf, 0x5d, + 0xfa, 0xec, 0x9e, 0x4c, 0x5e, 0xcf, 0x1d, 0x9e, + 0xbb, 0xf5, 0xd9, 0x3c, 0x98, 0xbd, 0x9e, 0x3b, + 0x3d, 0x77, 0xeb, 0xb2, 0x79, 0x31, 0x7b, 0x3c, + 0x54, 0xd6, 0xd5, 0x56, 0x10, 0x6a, 0x67, 0x92, + 0x6d, 0x3f, 0x37, 0x51, 0xdc, 0xbd, 0xfc, 0x94, + 0x64, 0xa3, 0x3e, 0xe9, 0x03, 0x33, 0xff, 0x00, + 0xa1, 0xeb, 0x65, 0xba, 0xa2, 0xeb, 0x5b, 0x0d, + 0x0d, 0x30, 0x1b, 0x49, 0x89, 0xe7, 0x37, 0xcc, + 0x8d, 0x14, 0x6a, 0x79, 0x1c, 0x8f, 0xcd, 0x45, + 0x04, 0xf7, 0xc9, 0xc9, 0x47, 0x38, 0x81, 0x88, + 0x7f, 0x07, 0x96, 0xa5, 0x40, 0x2a, 0x2b, 0xab, + 0xe5, 0x93, 0xba, 0xd0, 0x9a, 0x78, 0x13, 0xc7, + 0x92, 0x3c, 0x15, 0x0d, 0xd3, 0xdf, 0x93, 0x1d, + 0xaf, 0xac, 0x7d, 0x66, 0xeb, 0xe7, 0xe9, 0x3e, + 0xe1, 0x8e, 0xd7, 0xd6, 0x3e, 0xb3, 0x75, 0xf3, + 0xf4, 0x9f, 0x70, 0xc7, 0x6b, 0xeb, 0x1f, 0x59, + 0xba, 0xf9, 0xfa, 0x4f, 0xb8, 0x63, 0xb5, 0xf5, + 0x8f, 0xac, 0xdd, 0x7c, 0xfd, 0x27, 0xdc, 0x31, + 0xda, 0xfa, 0xc7, 0xd6, 0x6e, 0xbe, 0x7e, 0x93, + 0xee, 0x18, 0xed, 0x7d, 0x63, 0xeb, 0x37, 0x5f, + 0x3f, 0x49, 0xf7, 0x0c, 0x76, 0xbe, 0xb1, 0xf5, + 0x9b, 0xaf, 0x9f, 0xa4, 0xfb, 0x86, 0x3b, 0x5f, + 0x58, 0xfa, 0xcd, 0xd7, 0xcf, 0xd2, 0x7d, 0xc3, + 0x1d, 0xaf, 0xac, 0x7d, 0x66, 0xeb, 0xe7, 0xe9, + 0x3e, 0xe1, 0x8e, 0xd7, 0xd6, 0x3e, 0xb3, 0x75, + 0xf3, 0xf4, 0x9f, 0x70, 0xc7, 0x6b, 0xeb, 0x1f, + 0x59, 0xba, 0xf9, 0xfa, 0x4f, 0xb8, 0x63, 0xb5, + 0xf5, 0x8f, 0xac, 0xdd, 0x7c, 0xfd, 0x27, 0xdc, + 0x31, 0xda, 0xfa, 0xc7, 0xd6, 0x6e, 0xbe, 0x7e, + 0x93, 0xee, 0x18, 0xed, 0x7d, 0x63, 0xeb, 0x37, + 0x5f, 0x3f, 0x49, 0xf7, 0x0c, 0x76, 0xbe, 0xb1, + 0xf5, 0x9b, 0xaf, 0x9f, 0xa4, 0xfb, 0x86, 0x3b, + 0x5f, 0x58, 0xfa, 0xcd, 0xd7, 0xcf, 0xd2, 0x7d, + 0xc3, 0x1d, 0xaf, 0xac, 0x7d, 0x66, 0xeb, 0xe7, + 0xe9, 0x3e, 0xe1, 0x8e, 0xd7, 0xd6, 0x3e, 0xb3, + 0x75, 0xf3, 0xf4, 0x9f, 0x70, 0xc7, 0x6b, 0xeb, + 0x1f, 0x59, 0xba, 0xf9, 0xfa, 0x4f, 0xb8, 0x63, + 0xb5, 0xf5, 0x8f, 0xac, 0xdd, 0x7c, 0xfd, 0x27, + 0xdc, 0x31, 0xc2, 0x4e, 0x08, 0xb5, 0x96, 0x11, + 0x59, 0x4d, 0x50, 0xd5, 0x54, 0x7a, 0xd5, 0x24, + 0xda, 0x20, 0x49, 0xa0, 0x67, 0xcf, 0x41, 0x6d, + 0x27, 0x43, 0xa3, 0x1e, 0x6e, 0xb0, 0x10, 0x86, + 0x20, 0x15, 0xde, 0x0f, 0xe2, 0xb0, 0x70, 0x23, + 0xb2, 0x14, 0xb1, 0xd6, 0xdc, 0x6a, 0x65, 0xa7, + 0x8a, 0x71, 0xae, 0x18, 0x29, 0xc2, 0xed, 0x9a, + 0x33, 0xd1, 0x23, 0xc9, 0x22, 0xba, 0x20, 0x71, + 0xbd, 0x14, 0x46, 0xe4, 0x82, 0x0b, 0x15, 0xf9, + 0xb8, 0xed, 0x7d, 0x62, 0xeb, 0x37, 0x6f, 0x48, + 0xa3, 0xf7, 0x7e, 0x3b, 0x5f, 0x58, 0xba, 0xcd, + 0xdb, 0xd2, 0x28, 0xfd, 0xdf, 0x8e, 0xd7, 0xd6, + 0x2e, 0xb3, 0x76, 0xf4, 0x8a, 0x3f, 0x77, 0xe3, + 0xb5, 0xf5, 0x8b, 0xac, 0xdd, 0xbd, 0x22, 0x8f, + 0xdd, 0xf8, 0xed, 0x7d, 0x62, 0xeb, 0x37, 0x6f, + 0x48, 0xa3, 0xf7, 0x7e, 0x3b, 0x5f, 0x58, 0xba, + 0xcd, 0xdb, 0xd2, 0x28, 0xfd, 0xdf, 0x8e, 0xd7, + 0xd6, 0x2e, 0xb3, 0x76, 0xf4, 0x8a, 0x3f, 0x77, + 0xe3, 0xb5, 0xf5, 0x8b, 0xac, 0xdd, 0xbd, 0x22, + 0x8f, 0xdd, 0xf8, 0xed, 0x7d, 0x62, 0xeb, 0x37, + 0x6f, 0x48, 0xa3, 0xf7, 0x7e, 0x3b, 0x5f, 0x58, + 0xba, 0xcd, 0xdb, 0xd2, 0x28, 0xfd, 0xdf, 0x8e, + 0xd7, 0xd6, 0x2e, 0xb3, 0x76, 0xf4, 0x8a, 0x3f, + 0x77, 0xe3, 0xb5, 0xf5, 0x8b, 0xac, 0xdd, 0xbd, + 0x22, 0x8f, 0xdd, 0xf8, 0xed, 0x7d, 0x62, 0xeb, + 0x37, 0x6f, 0x48, 0xa3, 0xf7, 0x7e, 0x3b, 0x5f, + 0x58, 0xba, 0xcd, 0xdb, 0xd2, 0x28, 0xfd, 0xdf, + 0x8e, 0xd7, 0xd6, 0x2e, 0xb3, 0x76, 0xf4, 0x8a, + 0x3f, 0x77, 0xe3, 0xb5, 0xf5, 0x8b, 0xac, 0xdd, + 0xbd, 0x22, 0x8f, 0xdd, 0xf8, 0xed, 0x7d, 0x62, + 0xeb, 0x37, 0x6f, 0x48, 0xa3, 0xf7, 0x7e, 0x3b, + 0x5f, 0x58, 0xba, 0xcd, 0xdb, 0xd2, 0x28, 0xfd, + 0xdf, 0x8e, 0xd7, 0xd6, 0x2e, 0xb3, 0x76, 0xf4, + 0x8a, 0x3f, 0x77, 0xe3, 0xb5, 0xf5, 0x8b, 0xac, + 0xdd, 0xbd, 0x22, 0x8f, 0xdd, 0xf8, 0x7f, 0xc1, + 0xed, 0x94, 0xa9, 0xd1, 0x59, 0x74, 0x56, 0xee, + 0x33, 0x49, 0x49, 0x22, 0x8f, 0xad, 0x05, 0x1c, + 0x44, 0xf9, 0x63, 0x17, 0xdb, 0x25, 0x45, 0x8e, + 0xac, 0x53, 0xcc, 0xc2, 0x58, 0xe4, 0x5d, 0xa5, + 0x3d, 0x42, 0x82, 0xab, 0x2a, 0x67, 0x91, 0xcd, + 0x49, 0x3a, 0x24, 0x43, 0xb9, 0xd3, 0x53, 0x69, + 0xcc, 0x10, 0xc4, 0x10, 0x4f, 0xec, 0xa8, 0x28, + 0x6a, 0x6e, 0x55, 0x51, 0x51, 0xd2, 0x26, 0xb9, + 0xa5, 0x27, 0x2c, 0xce, 0x4a, 0xa0, 0x0c, 0xd9, + 0xdd, 0xbf, 0x35, 0x14, 0x0c, 0xc9, 0xfe, 0x60, + 0x09, 0x20, 0x18, 0xff, 0x00, 0x07, 0x19, 0xa0, + 0xdb, 0x5e, 0x02, 0x3f, 0x75, 0x62, 0xa1, 0xda, + 0xa0, 0x3d, 0xdc, 0x9d, 0xaa, 0xe1, 0x27, 0xc8, + 0x18, 0xed, 0x6f, 0x1f, 0x86, 0xdb, 0xec, 0xd5, + 0xf7, 0x86, 0x3b, 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, + 0x35, 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, + 0xbe, 0xcd, 0x5f, 0x78, 0x63, 0xb5, 0xbc, 0x7e, + 0x1b, 0x6f, 0xb3, 0x57, 0xde, 0x18, 0xed, 0x6f, + 0x1f, 0x86, 0xdb, 0xec, 0xd5, 0xf7, 0x86, 0x3b, + 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, 0x35, 0x7d, 0xe1, + 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, + 0x78, 0x63, 0xb5, 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, + 0x57, 0xde, 0x18, 0xed, 0x6f, 0x1f, 0x86, 0xdb, + 0xec, 0xd5, 0xf7, 0x86, 0x3b, 0x5b, 0xc7, 0xe1, + 0xb6, 0xfb, 0x35, 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, + 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, 0x78, 0x63, 0xb5, + 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, 0x57, 0xde, 0x18, + 0xed, 0x6f, 0x1f, 0x86, 0xdb, 0xec, 0xd5, 0xf7, + 0x86, 0x3b, 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, 0x35, + 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, + 0xcd, 0x5f, 0x78, 0x63, 0xb5, 0xbc, 0x7e, 0x1b, + 0x6f, 0xb3, 0x57, 0xde, 0x18, 0xed, 0x6f, 0x1f, + 0x86, 0xdb, 0xec, 0xd5, 0xf7, 0x86, 0x3b, 0x5b, + 0xc7, 0xe1, 0xb6, 0xfb, 0x35, 0x7d, 0xe1, 0x8e, + 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, 0x78, + 0x63, 0xb5, 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, 0x57, + 0xde, 0x18, 0xbf, 0x70, 0x4a, 0xb2, 0xc9, 0x17, + 0x1a, 0x13, 0x25, 0x65, 0x26, 0xa5, 0x57, 0x95, + 0x10, 0xc6, 0xf1, 0x33, 0x1c, 0x97, 0x6b, 0x11, + 0x2f, 0x92, 0x33, 0x64, 0xa1, 0xc3, 0xb0, 0xd4, + 0x42, 0xb6, 0x92, 0xcb, 0x9e, 0x38, 0x03, 0x90, + 0xbc, 0x54, 0x13, 0xd2, 0xb6, 0xd9, 0x8a, 0xf8, + 0x89, 0xa9, 0xa3, 0x5c, 0xc7, 0xfc, 0xa4, 0x8f, + 0xa8, 0x9c, 0x6d, 0x7e, 0x3e, 0x0e, 0x36, 0xbd, + 0xf3, 0x90, 0xee, 0x9e, 0xf0, 0xef, 0xf4, 0xe2, + 0x29, 0x38, 0x41, 0x7b, 0x86, 0xa2, 0xed, 0x47, + 0x75, 0x6a, 0x24, 0x59, 0x65, 0x5b, 0x7d, 0xbd, + 0x22, 0x42, 0x92, 0xa4, 0x0d, 0xcd, 0x13, 0xc8, + 0xce, 0x17, 0x5c, 0x87, 0x73, 0x17, 0x59, 0x55, + 0x9b, 0x30, 0x74, 0x47, 0x92, 0xad, 0x45, 0xfd, + 0xad, 0xf0, 0x50, 0xc7, 0x59, 0x4d, 0x34, 0xf7, + 0x5a, 0xa8, 0x81, 0x6a, 0x1a, 0x05, 0xdb, 0xbe, + 0xa5, 0xdd, 0x2b, 0xae, 0x47, 0xe6, 0x66, 0x09, + 0x55, 0x05, 0xcf, 0x4a, 0xe6, 0xc1, 0x0b, 0xe1, + 0xf8, 0x57, 0x44, 0xb6, 0xf8, 0xee, 0x1b, 0x2a, + 0x92, 0xa6, 0xb1, 0x68, 0x66, 0x83, 0x40, 0x15, + 0x14, 0xf3, 0x95, 0x76, 0x61, 0x22, 0x17, 0x19, + 0xe9, 0x09, 0xd0, 0x0e, 0x6d, 0x98, 0xc8, 0x67, + 0x9e, 0x47, 0x86, 0x94, 0xea, 0xb2, 0xea, 0xb6, + 0xdd, 0x16, 0x6a, 0x76, 0xfd, 0xb3, 0x01, 0xa7, + 0xc9, 0xe9, 0xe1, 0xc9, 0x72, 0x9e, 0x62, 0x5b, + 0x28, 0xd0, 0x96, 0x55, 0x01, 0xf4, 0x92, 0x4f, + 0x78, 0x82, 0x6b, 0x38, 0x59, 0x4d, 0x4b, 0x28, + 0x89, 0x29, 0x6b, 0x6a, 0xcb, 0x51, 0x45, 0x5e, + 0x86, 0x9a, 0x30, 0xe0, 0xd3, 0xc8, 0xbb, 0x4d, + 0x6c, 0x35, 0x67, 0x1a, 0xc7, 0x1f, 0x3e, 0x46, + 0x61, 0xa5, 0x47, 0x77, 0x14, 0xdc, 0x2e, 0xa2, + 0xa9, 0x9e, 0x9a, 0x2d, 0x85, 0x64, 0x31, 0x55, + 0x23, 0xb4, 0x35, 0x53, 0x43, 0xa2, 0x9d, 0xde, + 0x24, 0xd7, 0x34, 0x6a, 0xda, 0x8e, 0xb3, 0x0f, + 0xcd, 0x76, 0x4d, 0x40, 0x36, 0x5d, 0xc6, 0x07, + 0x14, 0x3c, 0x2a, 0xa6, 0xad, 0xaa, 0x86, 0x9c, + 0x52, 0x57, 0x41, 0x1d, 0x51, 0x94, 0x52, 0x55, + 0x4f, 0x16, 0x88, 0x2a, 0x4c, 0x5d, 0x3b, 0x36, + 0xd4, 0x7a, 0x47, 0xd7, 0xa4, 0xe4, 0xad, 0x91, + 0x38, 0xe1, 0x0d, 0x5d, 0x4f, 0x65, 0xad, 0xb4, + 0x91, 0xde, 0x5a, 0xcf, 0x4f, 0x35, 0x2c, 0xef, + 0x2d, 0x46, 0xa4, 0x11, 0xeb, 0x47, 0x6d, 0x3a, + 0xb6, 0x92, 0xc2, 0xa4, 0xb6, 0x5a, 0x06, 0x72, + 0x0e, 0x9d, 0xd9, 0xf4, 0x62, 0xd7, 0x7f, 0x7a, + 0x14, 0xbc, 0xad, 0x6d, 0xc1, 0xae, 0xf4, 0xb6, + 0xf7, 0xa6, 0xe2, 0xd5, 0xb1, 0xa0, 0x2f, 0x51, + 0x25, 0x4e, 0xb1, 0xc5, 0xd4, 0xab, 0x32, 0xb9, + 0xd6, 0xa3, 0x49, 0xda, 0xba, 0xa8, 0xd5, 0xcf, + 0xd1, 0xa4, 0x03, 0xc2, 0xda, 0x55, 0xa3, 0xaa, + 0xaa, 0x92, 0x96, 0xb2, 0x19, 0x68, 0xe5, 0x86, + 0x2a, 0x8a, 0x29, 0xa3, 0x11, 0xd4, 0xc7, 0xc6, + 0x0f, 0xc9, 0x3e, 0x97, 0x60, 0x34, 0xb0, 0x04, + 0xf4, 0x82, 0x32, 0xe8, 0xde, 0x09, 0x8e, 0xf1, + 0x0c, 0xf7, 0x48, 0x2a, 0x24, 0x86, 0xed, 0x4d, + 0x38, 0xb5, 0x55, 0xcc, 0xb4, 0xb3, 0x32, 0x45, + 0x4e, 0x60, 0x86, 0x49, 0x8e, 0xb9, 0x69, 0x8f, + 0x3f, 0x8c, 0x3e, 0x92, 0x63, 0x7d, 0x41, 0x74, + 0x6c, 0xf3, 0x19, 0x6f, 0xc5, 0x27, 0x0b, 0xe9, + 0x6a, 0xa5, 0xa4, 0x43, 0x47, 0x5d, 0x04, 0x35, + 0x8e, 0x21, 0x86, 0xae, 0x68, 0xb2, 0xa6, 0x6a, + 0x83, 0xbb, 0x62, 0x24, 0x0c, 0x43, 0x36, 0xbe, + 0x67, 0x37, 0x3c, 0x9b, 0xa7, 0x21, 0x99, 0x14, + 0xfc, 0x29, 0x34, 0x32, 0xdc, 0xd2, 0xb6, 0x3a, + 0xfa, 0xb4, 0x8a, 0xef, 0x3a, 0x19, 0xe3, 0x8c, + 0xc9, 0x05, 0x0d, 0x2b, 0x6c, 0x92, 0x04, 0x77, + 0xcc, 0x01, 0x9b, 0x2c, 0xc5, 0x23, 0xe9, 0x3a, + 0x4e, 0x5b, 0xce, 0x2e, 0x1c, 0x28, 0xa4, 0xa0, + 0xa8, 0xd8, 0x6c, 0x2a, 0xea, 0xb6, 0x71, 0x47, + 0x3d, 0x54, 0xb4, 0xb1, 0x6d, 0x23, 0xa4, 0x86, + 0x52, 0xba, 0x24, 0x98, 0xe6, 0x32, 0x0c, 0xac, + 0x1b, 0xbd, 0xce, 0x51, 0x9e, 0xa6, 0xc8, 0x37, + 0x09, 0xa1, 0xec, 0x8a, 0x5b, 0xe0, 0xa5, 0xab, + 0xaa, 0x67, 0x5a, 0x59, 0x36, 0xf0, 0x28, 0x68, + 0x56, 0x1a, 0xa1, 0x1b, 0x2c, 0xd2, 0x73, 0xb5, + 0x24, 0x68, 0x25, 0x5d, 0x45, 0x94, 0x6f, 0xdd, + 0xd3, 0x96, 0x29, 0xf8, 0x49, 0x1d, 0x45, 0x44, + 0x34, 0xed, 0x47, 0x59, 0x4c, 0x2a, 0xf8, 0xd0, + 0xa4, 0x9a, 0x75, 0x8d, 0x44, 0xad, 0x49, 0x9e, + 0xd4, 0x18, 0xc4, 0x86, 0x68, 0x48, 0xc8, 0xe4, + 0x25, 0x45, 0x3b, 0xb2, 0xc5, 0xb7, 0x84, 0xcf, + 0x4f, 0x6a, 0xb6, 0x8a, 0x88, 0xeb, 0xae, 0x95, + 0xf5, 0x42, 0xaa, 0x4d, 0x14, 0xe9, 0xb6, 0x9b, + 0x65, 0x15, 0x44, 0xa9, 0xb4, 0x7d, 0xe0, 0xe9, + 0x19, 0x04, 0x19, 0x03, 0xb9, 0x4e, 0x79, 0x01, + 0xbe, 0x82, 0xe5, 0x15, 0xc6, 0x92, 0x1a, 0xc8, + 0x35, 0x08, 0xe6, 0x52, 0x42, 0xbe, 0xe7, 0x56, + 0x56, 0x2a, 0xe8, 0xc3, 0x33, 0xbd, 0x5d, 0x4a, + 0x9c, 0x89, 0x1b, 0xb7, 0x6e, 0xc6, 0xd7, 0xe3, + 0xe0, 0xe3, 0x85, 0xaf, 0xab, 0x83, 0xb7, 0x21, + 0xfc, 0x1a, 0x5f, 0xef, 0xd4, 0xbf, 0x8a, 0x85, + 0xf4, 0xd0, 0xd1, 0x01, 0xbb, 0x2a, 0x4a, 0x6f, + 0xec, 0x53, 0x1b, 0x5f, 0x8f, 0x83, 0x8d, 0xaf, + 0xc7, 0xc1, 0xc6, 0xd7, 0xe3, 0xe0, 0xe3, 0x6b, + 0xf1, 0xf0, 0x71, 0xb5, 0xf8, 0xf8, 0x38, 0xda, + 0xfc, 0x7c, 0x1c, 0x6d, 0x7e, 0x3e, 0x0e, 0x38, + 0x4b, 0x7e, 0xaf, 0xa0, 0x9e, 0x96, 0x1b, 0x71, + 0x19, 0xa4, 0x4f, 0x5b, 0x5c, 0x36, 0x71, 0xc8, + 0x78, 0xa2, 0x3a, 0x27, 0xfb, 0xc5, 0x6d, 0x00, + 0x9d, 0x7c, 0xe4, 0xc9, 0xbc, 0x63, 0x2c, 0x55, + 0xdf, 0x68, 0x68, 0xa1, 0xa4, 0xa8, 0xa8, 0x91, + 0x96, 0x1a, 0xcc, 0xb6, 0x52, 0x28, 0xd4, 0xbb, + 0xe3, 0xda, 0x82, 0xc4, 0x1c, 0xc2, 0xe9, 0xee, + 0x80, 0x49, 0x3b, 0xb2, 0xc4, 0x1c, 0x26, 0xb6, + 0x54, 0x51, 0x55, 0x57, 0xa4, 0xb2, 0x2c, 0x14, + 0x64, 0x09, 0xc3, 0xc6, 0xcb, 0x2a, 0x96, 0xc8, + 0x47, 0x92, 0x02, 0x75, 0x6d, 0x18, 0xe9, 0x4c, + 0x8f, 0xce, 0xf9, 0xda, 0x71, 0x71, 0xe1, 0x26, + 0xab, 0x55, 0xc6, 0x7b, 0x7b, 0x4f, 0x4d, 0x5b, + 0x44, 0xd4, 0x81, 0xe3, 0xab, 0xa6, 0xd9, 0xcd, + 0x10, 0xa8, 0x9a, 0x20, 0x18, 0xc3, 0x38, 0x75, + 0x2b, 0x24, 0x4c, 0xda, 0x49, 0x1f, 0xc2, 0x00, + 0x73, 0x4e, 0x2b, 0xb8, 0x4f, 0x6d, 0xb6, 0xbc, + 0x50, 0xd5, 0x4b, 0x21, 0x99, 0xe3, 0x57, 0x75, + 0x86, 0x33, 0x26, 0xcd, 0x5b, 0x2c, 0x9a, 0x5c, + 0x88, 0x0b, 0xab, 0xa4, 0x28, 0xcd, 0xb4, 0xef, + 0xd3, 0x91, 0x5c, 0xeb, 0xb8, 0x47, 0x6c, 0xa0, + 0x82, 0x9a, 0xa2, 0x59, 0x9a, 0x44, 0xac, 0x1a, + 0xe9, 0xc4, 0x0a, 0x64, 0x79, 0x23, 0xcb, 0x56, + 0xd3, 0x4e, 0x6b, 0xa5, 0x06, 0x60, 0x1d, 0x44, + 0x1d, 0x47, 0x4e, 0x9c, 0xc3, 0x69, 0xb7, 0x5e, + 0x69, 0x2e, 0xb1, 0xcb, 0x2d, 0x1b, 0x3b, 0x47, + 0x14, 0xa6, 0x12, 0xce, 0x86, 0x3d, 0x4c, 0x00, + 0x39, 0xa8, 0x27, 0x3d, 0x24, 0x10, 0x46, 0x61, + 0x4f, 0x7d, 0x46, 0x36, 0xbf, 0x1f, 0x07, 0x1b, + 0x5f, 0x8f, 0x83, 0x8d, 0xaf, 0xc7, 0xc1, 0xc6, + 0xd7, 0xe3, 0xe0, 0xe3, 0x6b, 0xf1, 0xf0, 0x71, + 0xb5, 0xf8, 0xf8, 0x38, 0xda, 0xfc, 0x7c, 0x1c, + 0x7e, 0x10, 0xdb, 0x52, 0x5a, 0x0f, 0x77, 0x5d, + 0x78, 0xfe, 0x6d, 0x34, 0x7e, 0xaf, 0xd9, 0xf0, + 0x03, 0x2e, 0xca, 0xd5, 0xb1, 0x1b, 0xd6, 0xde, + 0xfa, 0x7c, 0x44, 0xd4, 0xd3, 0x8f, 0xea, 0x27, + 0x1b, 0x5c, 0x6d, 0x71, 0x55, 0x7b, 0xbb, 0x4f, + 0x5d, 0x55, 0x43, 0x63, 0xa3, 0xa4, 0x9b, 0x88, + 0x04, 0xe3, 0x75, 0x15, 0xad, 0x20, 0x8f, 0x6b, + 0x20, 0x24, 0x41, 0x12, 0xc6, 0xf1, 0x1d, 0x7b, + 0x8f, 0x38, 0xb9, 0x07, 0x26, 0x04, 0x20, 0x0a, + 0xcd, 0x45, 0x7d, 0x8e, 0x4b, 0x67, 0x64, 0x6e, + 0x08, 0x6d, 0xbb, 0x36, 0x78, 0xaa, 0x16, 0x6d, + 0x41, 0x44, 0x91, 0x36, 0x96, 0xd8, 0xe6, 0xba, + 0xa6, 0x57, 0x6d, 0xc8, 0x23, 0x0e, 0xc5, 0xc3, + 0x44, 0x35, 0x3a, 0x1c, 0x45, 0x7d, 0xb6, 0x4f, + 0x49, 0x35, 0x74, 0x35, 0x91, 0xc9, 0x4b, 0x4f, + 0xf9, 0x79, 0x15, 0x64, 0xce, 0x2d, 0xf9, 0x73, + 0xe1, 0x31, 0x89, 0xc6, 0x7f, 0x9b, 0xf2, 0x5c, + 0xe1, 0xbd, 0x73, 0x00, 0x9c, 0x2f, 0x08, 0xad, + 0x32, 0x1a, 0x85, 0x8e, 0xba, 0x27, 0x6a, 0x58, + 0x1e, 0xa6, 0x65, 0x55, 0x97, 0x9b, 0x0c, 0x6b, + 0xad, 0xd8, 0x1d, 0x9e, 0x52, 0x69, 0x1f, 0x39, + 0x62, 0xd6, 0xeb, 0xd0, 0xca, 0x08, 0x23, 0x16, + 0xfe, 0x17, 0x5b, 0xaa, 0x28, 0x52, 0xae, 0xb2, + 0x78, 0xe9, 0x1d, 0xa6, 0x78, 0x5e, 0x2d, 0x33, + 0xba, 0xc4, 0xda, 0xa4, 0x68, 0x50, 0xc8, 0x21, + 0x21, 0x99, 0xa0, 0x40, 0xec, 0xe3, 0x24, 0xd5, + 0x98, 0xe6, 0x9c, 0x93, 0x13, 0x70, 0x8e, 0xcf, + 0x4f, 0x15, 0x3c, 0xd3, 0x57, 0x47, 0x1c, 0x75, + 0x68, 0x24, 0xa7, 0xce, 0x39, 0xcb, 0xbc, 0x67, + 0xa2, 0x4d, 0x92, 0xc2, 0x65, 0x44, 0x3b, 0xc0, + 0x69, 0x11, 0x14, 0x90, 0x40, 0x39, 0x8c, 0x4f, + 0x78, 0x75, 0xba, 0x59, 0xe9, 0x29, 0xf8, 0xbc, + 0xb4, 0xb7, 0x28, 0xeb, 0x24, 0x79, 0x86, 0x6e, + 0xda, 0x60, 0x84, 0x4b, 0x13, 0x40, 0xe9, 0x20, + 0x8f, 0x4b, 0xe7, 0xce, 0x2c, 0x92, 0x66, 0x3e, + 0x6e, 0x93, 0xbf, 0x17, 0x4b, 0xb5, 0xe2, 0x2b, + 0xa5, 0x3d, 0xba, 0xd5, 0x0d, 0x04, 0x8d, 0x35, + 0x1b, 0x55, 0x31, 0xad, 0x13, 0xee, 0xd1, 0x2b, + 0x21, 0x01, 0xa2, 0x9a, 0x31, 0x96, 0x41, 0x72, + 0x05, 0x49, 0xcf, 0x3d, 0xfd, 0xcc, 0x5b, 0xb8, + 0x42, 0xec, 0x97, 0x25, 0xbc, 0xad, 0x35, 0x14, + 0xf6, 0xa7, 0x55, 0xaa, 0x92, 0x26, 0x63, 0x4c, + 0xcb, 0x26, 0xa3, 0x1b, 0x46, 0x18, 0xc9, 0x26, + 0xa3, 0xb9, 0x44, 0x7a, 0xa4, 0x79, 0x1c, 0x8d, + 0x00, 0x33, 0xec, 0x97, 0x94, 0x36, 0x9e, 0x28, + 0x2b, 0xf8, 0xec, 0x66, 0x90, 0xca, 0x20, 0xdb, + 0x05, 0x94, 0xe9, 0x98, 0xe7, 0x94, 0x72, 0x46, + 0x22, 0xdb, 0x44, 0xd9, 0x0d, 0x5f, 0x29, 0x1a, + 0x0d, 0x1a, 0x5f, 0x3d, 0x0c, 0xac, 0x61, 0xbd, + 0xc1, 0x3d, 0x71, 0x96, 0x1b, 0x9c, 0x2f, 0x6e, + 0x16, 0xc9, 0x6a, 0x78, 0xb7, 0x15, 0x98, 0x49, + 0x9c, 0x35, 0x0f, 0x1c, 0xb5, 0x82, 0x56, 0xa5, + 0x0c, 0x62, 0x5d, 0x9b, 0x45, 0xb2, 0x12, 0x16, + 0x2c, 0xba, 0x96, 0x22, 0x08, 0x63, 0x4b, 0xc2, + 0x1b, 0x4d, 0x6d, 0x42, 0xd2, 0xd2, 0xd7, 0x45, + 0x34, 0xee, 0x82, 0x44, 0x8c, 0x2c, 0x8b, 0xa9, + 0x4a, 0x87, 0xe6, 0xb3, 0xc6, 0xa8, 0x64, 0x08, + 0x75, 0x34, 0x41, 0xb6, 0xa9, 0x93, 0xeb, 0x45, + 0x31, 0xc9, 0xa6, 0xdf, 0xc2, 0xaa, 0x59, 0x0c, + 0xb1, 0x5c, 0xaa, 0x29, 0x69, 0xaa, 0x7b, 0x23, + 0x51, 0x47, 0x4d, 0x12, 0x2c, 0xc3, 0x5c, 0x51, + 0x98, 0xd6, 0x37, 0x94, 0x93, 0x30, 0x8c, 0xbb, + 0xbb, 0x03, 0x24, 0x8f, 0x14, 0x47, 0x23, 0xa4, + 0x0d, 0x0d, 0x8a, 0x9b, 0xdd, 0xb6, 0x8a, 0x78, + 0xa9, 0x6a, 0xab, 0x22, 0x82, 0x79, 0xb2, 0xd9, + 0xc6, 0xfa, 0xba, 0x18, 0xe9, 0x52, 0xec, 0xa8, + 0x52, 0x15, 0x27, 0xa1, 0xa6, 0x68, 0xd4, 0xe4, + 0x4e, 0x79, 0x29, 0x22, 0x4b, 0xf5, 0xae, 0x1a, + 0xbe, 0x21, 0x2d, 0x5a, 0xa5, 0x5e, 0xb8, 0xa3, + 0xd8, 0x98, 0xe6, 0x27, 0x5c, 0xca, 0x1e, 0x31, + 0xa8, 0x44, 0x63, 0xc9, 0x95, 0x81, 0x2d, 0xaf, + 0x42, 0x67, 0xcf, 0x65, 0x38, 0x8f, 0x84, 0x36, + 0xca, 0xa3, 0x51, 0x15, 0x1d, 0x64, 0x53, 0xd4, + 0x43, 0x14, 0xd2, 0x08, 0xf4, 0xca, 0x03, 0x6c, + 0x81, 0xcf, 0x43, 0x34, 0x68, 0x93, 0x28, 0x23, + 0x7e, 0xc5, 0xdb, 0x9b, 0xce, 0x07, 0x4f, 0x3b, + 0x14, 0x9c, 0x28, 0xa4, 0x16, 0xba, 0x0a, 0xdb, + 0xb5, 0x45, 0x3d, 0x2c, 0xd5, 0x8b, 0x2b, 0x08, + 0xe2, 0x8e, 0x76, 0x07, 0x67, 0x34, 0x91, 0xe6, + 0xb1, 0x20, 0xa8, 0x95, 0x57, 0x25, 0x5c, 0xd9, + 0xce, 0x92, 0xd9, 0xe4, 0x7f, 0x34, 0x47, 0x53, + 0x1c, 0xd1, 0xa4, 0xb0, 0xba, 0xc9, 0x14, 0x8a, + 0x1e, 0x39, 0x10, 0x82, 0xae, 0xac, 0x33, 0x0c, + 0x0f, 0x78, 0x8c, 0x6d, 0x71, 0xc2, 0x06, 0x0d, + 0x64, 0xba, 0x82, 0x33, 0x1c, 0x46, 0xa0, 0xef, + 0xef, 0x84, 0x24, 0x7f, 0xd0, 0x80, 0x47, 0x8c, + 0x7e, 0x2e, 0x05, 0x3e, 0x8b, 0xac, 0xfb, 0xf2, + 0x2d, 0x6f, 0x95, 0x47, 0x8c, 0xf1, 0x8a, 0x56, + 0xcb, 0xfe, 0x8a, 0x4f, 0xf3, 0x63, 0x6e, 0x71, + 0xb6, 0x3d, 0xdd, 0xf8, 0x89, 0x2f, 0xb6, 0xb8, + 0x2a, 0x2d, 0xb4, 0x14, 0xb1, 0xd4, 0x40, 0xf2, + 0x4a, 0x69, 0x2b, 0xb8, 0xc2, 0x44, 0xd4, 0xe9, + 0x39, 0xff, 0x00, 0x79, 0x13, 0x10, 0xcc, 0xf1, + 0x74, 0xe6, 0x99, 0x0c, 0xf7, 0x8d, 0x7f, 0x37, + 0x15, 0x14, 0xf7, 0x5a, 0x6a, 0xab, 0x75, 0xca, + 0x10, 0x97, 0x3a, 0x98, 0x28, 0x8d, 0x1d, 0x5c, + 0x6e, 0xe9, 0x4e, 0xd2, 0xeb, 0xcc, 0x99, 0x23, + 0x72, 0x16, 0x35, 0xc8, 0xb6, 0x5b, 0xc6, 0xa2, + 0xaa, 0x0b, 0x07, 0x67, 0x63, 0x8e, 0xc7, 0x5c, + 0x1e, 0x15, 0x9a, 0x58, 0x53, 0x8c, 0xd5, 0x5f, + 0xe9, 0xae, 0x55, 0x10, 0x46, 0xe9, 0xa2, 0x9e, + 0x04, 0x0e, 0x0e, 0x6c, 0x58, 0x2b, 0xb2, 0x67, + 0xce, 0xd2, 0x5d, 0x9b, 0x3d, 0xda, 0x8e, 0x67, + 0x13, 0xd1, 0xd6, 0x3c, 0x9c, 0x27, 0x65, 0x84, + 0x91, 0x71, 0x82, 0x8d, 0x29, 0x79, 0xf1, 0xfc, + 0xa9, 0x8a, 0x17, 0x57, 0x1b, 0xdf, 0x99, 0x93, + 0x30, 0x1f, 0x29, 0xa0, 0x1f, 0x18, 0xdf, 0x8a, + 0x6a, 0x2a, 0xc8, 0xe7, 0x92, 0x47, 0x80, 0x8c, + 0xf8, 0x33, 0x0d, 0xbd, 0x4e, 0xb8, 0x8f, 0xed, + 0xa5, 0x8a, 0x35, 0x78, 0x77, 0x3e, 0x63, 0x7a, + 0x91, 0xaf, 0xf2, 0x67, 0x2f, 0x9e, 0x46, 0x21, + 0xa0, 0xae, 0x48, 0x38, 0x34, 0x9b, 0x00, 0x1e, + 0xde, 0xd5, 0x86, 0xa7, 0x5b, 0x46, 0xc9, 0x16, + 0xd7, 0xf2, 0x65, 0xc2, 0xc8, 0x36, 0xaa, 0x4f, + 0xce, 0x58, 0x98, 0x9d, 0x39, 0x8c, 0xd4, 0xe2, + 0xdf, 0x6e, 0xb9, 0x53, 0xdc, 0xa9, 0xe5, 0x8e, + 0x8c, 0x5b, 0x22, 0x49, 0x1d, 0xab, 0x1a, 0x9a, + 0xb9, 0x9e, 0x8a, 0xad, 0x79, 0xda, 0x76, 0x74, + 0x8e, 0xd2, 0x4a, 0x84, 0x86, 0xd2, 0x03, 0xb9, + 0x40, 0xa3, 0x30, 0xb1, 0x91, 0xbe, 0xe3, 0x42, + 0x6b, 0xef, 0x16, 0xf9, 0xa6, 0xa6, 0x5a, 0x8a, + 0x28, 0xa9, 0xa7, 0x49, 0xb6, 0x9a, 0x0a, 0x07, + 0x62, 0xc6, 0x30, 0x50, 0xb0, 0x76, 0xdf, 0x96, + 0xf5, 0x52, 0x01, 0xe9, 0xc5, 0xd6, 0xd8, 0x92, + 0x5b, 0x0d, 0x2d, 0xba, 0x08, 0xa1, 0x68, 0xe7, + 0x8e, 0xa9, 0x21, 0x8f, 0xe4, 0x56, 0x67, 0x8c, + 0xe6, 0x54, 0xba, 0xe9, 0x21, 0x98, 0x6e, 0x57, + 0xd6, 0xa4, 0x10, 0xbc, 0xf5, 0x03, 0x31, 0x25, + 0xae, 0xba, 0x6a, 0x2a, 0xe6, 0x16, 0xe5, 0xa7, + 0x9e, 0xa2, 0x6a, 0x30, 0x90, 0x9a, 0xd9, 0x6a, + 0xe7, 0x68, 0xa0, 0x93, 0x5b, 0xb4, 0xf5, 0x15, + 0x35, 0x4f, 0x01, 0xcb, 0xfd, 0xd8, 0x45, 0x8d, + 0xb2, 0xcc, 0x1c, 0xfb, 0xb7, 0x18, 0x6a, 0x1e, + 0xea, 0xd5, 0xa2, 0x3c, 0xe9, 0xa3, 0xb2, 0x56, + 0xd3, 0xb4, 0xba, 0x93, 0x74, 0xac, 0x27, 0x21, + 0x74, 0x96, 0x12, 0x1d, 0xcc, 0x37, 0x85, 0xcb, + 0x7f, 0x4f, 0x4e, 0x56, 0xf4, 0xba, 0x57, 0x50, + 0xd9, 0xa9, 0x1a, 0x9a, 0x28, 0xe8, 0x69, 0xa7, + 0x86, 0xaf, 0x8e, 0x89, 0x94, 0x97, 0x8e, 0x29, + 0x19, 0xd6, 0x21, 0x0f, 0xe5, 0x12, 0x4d, 0xe5, + 0x4b, 0x6f, 0x52, 0x72, 0x3b, 0x86, 0x79, 0xcd, + 0x41, 0x5a, 0xf6, 0xbb, 0xed, 0x3a, 0xc1, 0xf2, + 0xd5, 0xb7, 0x49, 0x2a, 0x20, 0x5d, 0xa4, 0x5f, + 0x29, 0x09, 0x7a, 0x72, 0xad, 0xab, 0x5e, 0x95, + 0xf9, 0x8e, 0x74, 0xb9, 0x56, 0xfe, 0x0e, 0x64, + 0x03, 0x5d, 0x6b, 0xae, 0xe3, 0x73, 0x4b, 0x15, + 0x18, 0xad, 0x8e, 0xb6, 0x96, 0x9a, 0x26, 0x0d, + 0x5d, 0x2d, 0x2a, 0x53, 0x49, 0x14, 0x6b, 0x13, + 0x8a, 0x84, 0x86, 0x68, 0x0d, 0x4c, 0x44, 0x6a, + 0xe6, 0x86, 0x6f, 0x11, 0x1b, 0xc4, 0x96, 0xfa, + 0x2a, 0xaa, 0x4b, 0x95, 0x5c, 0xa2, 0x35, 0x8e, + 0x26, 0xb6, 0x52, 0xd2, 0xc1, 0x2a, 0xb6, 0xa8, + 0xf6, 0xb0, 0xc7, 0x12, 0x90, 0xaa, 0xf2, 0xc9, + 0x51, 0xa1, 0x59, 0x77, 0x6d, 0x49, 0x24, 0x2e, + 0xf6, 0x27, 0x14, 0x76, 0xfb, 0x8a, 0xd6, 0xdb, + 0x2a, 0x2a, 0x29, 0x24, 0xda, 0xd3, 0x35, 0x5f, + 0x1c, 0xac, 0x96, 0xae, 0x3a, 0x87, 0x9c, 0xcd, + 0x1c, 0x89, 0x19, 0x40, 0xd2, 0xb3, 0x2c, 0x09, + 0x9e, 0xe4, 0x00, 0x64, 0xd2, 0x3b, 0x08, 0xf7, + 0xb1, 0x26, 0xd5, 0x5d, 0xd8, 0xcb, 0x74, 0x12, + 0xda, 0xe2, 0xaa, 0x68, 0x16, 0xa8, 0x32, 0xad, + 0x57, 0x16, 0xad, 0xa6, 0x92, 0x49, 0xa4, 0x78, + 0xe5, 0x86, 0xa5, 0x65, 0x6a, 0x66, 0x4c, 0x8a, + 0x3e, 0xcd, 0xe3, 0x97, 0x29, 0x00, 0x24, 0x10, + 0x48, 0x5b, 0x30, 0xad, 0xa6, 0xb7, 0xc3, 0x15, + 0x74, 0x8d, 0x25, 0x40, 0xd6, 0x4e, 0xb9, 0x0c, + 0xae, 0xaa, 0xce, 0x59, 0x23, 0x79, 0x7f, 0x3d, + 0x90, 0x1c, 0x89, 0xcc, 0x8e, 0xe0, 0x39, 0x01, + 0x8d, 0xb9, 0xc7, 0x09, 0xe5, 0xd5, 0x62, 0xaf, + 0x04, 0xf4, 0x8a, 0x7f, 0xef, 0x94, 0xe7, 0xff, + 0x00, 0x6f, 0xc5, 0x47, 0x37, 0xed, 0x3a, 0x4d, + 0xff, 0x00, 0xfc, 0xad, 0x3f, 0xf6, 0x49, 0x8d, + 0xbf, 0xd7, 0x8d, 0xbf, 0xd7, 0x8d, 0xbf, 0xd7, + 0x8d, 0xbf, 0xd7, 0x8d, 0xbf, 0xd7, 0x8d, 0xbf, + 0xd7, 0x8d, 0xb7, 0x8c, 0xe0, 0xd1, 0x5e, 0x6e, + 0x35, 0xb7, 0x4a, 0xd8, 0xa5, 0x4a, 0x18, 0xea, + 0x8b, 0xd0, 0xec, 0xeb, 0x69, 0x89, 0x92, 0x4a, + 0x34, 0x55, 0x51, 0xa5, 0x65, 0x85, 0xca, 0x47, + 0x20, 0xc9, 0x8b, 0x2e, 0x5a, 0x9f, 0x33, 0x9e, + 0xec, 0x41, 0x1d, 0x74, 0x94, 0xb6, 0x0a, 0x5a, + 0x9a, 0x4a, 0x92, 0xd6, 0xdb, 0xbe, 0xce, 0x42, + 0xd0, 0x4b, 0xa0, 0xd2, 0xa1, 0x06, 0x39, 0xb3, + 0x2b, 0x96, 0xc0, 0x29, 0xd9, 0x89, 0x3e, 0x66, + 0x48, 0x37, 0xe2, 0xa1, 0x6e, 0x11, 0xc9, 0xc2, + 0x59, 0x29, 0x20, 0x9c, 0x3d, 0x4c, 0xd4, 0x66, + 0x36, 0x58, 0x49, 0x33, 0x45, 0x90, 0x15, 0x2d, + 0x4f, 0xa9, 0x74, 0xcd, 0x26, 0x5a, 0xb3, 0xd3, + 0xa8, 0xe6, 0x4e, 0x5c, 0xfc, 0xb1, 0x35, 0x35, + 0x53, 0xc1, 0x7e, 0xd9, 0xd2, 0x5c, 0xc8, 0xaa, + 0x8e, 0xd4, 0x61, 0xe3, 0x51, 0x4d, 0x25, 0x55, + 0x41, 0x86, 0x74, 0xdb, 0xbb, 0xe4, 0x1b, 0xe5, + 0x35, 0x06, 0x90, 0xc4, 0x32, 0xd9, 0xc6, 0x46, + 0x98, 0xd2, 0x3c, 0x80, 0x95, 0xeb, 0x2d, 0xb5, + 0xd7, 0x39, 0x56, 0xd9, 0x3d, 0x7c, 0x77, 0x48, + 0x21, 0x58, 0xde, 0x04, 0xda, 0x6c, 0xda, 0x38, + 0x04, 0x2d, 0x0d, 0x40, 0x0a, 0x4a, 0x47, 0x9e, + 0xfd, 0xf9, 0x0d, 0x20, 0x65, 0xab, 0x23, 0xa6, + 0x0a, 0x6a, 0xeb, 0x33, 0xd9, 0x2a, 0x8d, 0x24, + 0xd5, 0xdc, 0x5a, 0x9a, 0xaa, 0x19, 0xa1, 0xa6, + 0x1b, 0x59, 0x69, 0xa4, 0xa9, 0x92, 0x59, 0x57, + 0x42, 0xae, 0xad, 0xc8, 0x24, 0xd0, 0xd2, 0x03, + 0xa3, 0x30, 0xc3, 0x50, 0xd4, 0x9a, 0xb8, 0x2f, + 0x2b, 0x04, 0xba, 0x97, 0x8c, 0x42, 0xcd, 0x75, + 0xa8, 0x2d, 0x0a, 0x90, 0x56, 0x26, 0x39, 0x67, + 0x18, 0xd3, 0xcd, 0xc9, 0x0f, 0x34, 0x65, 0xbb, + 0x76, 0xec, 0x6d, 0xfe, 0xbc, 0x6d, 0xfe, 0xbc, + 0x6d, 0xfe, 0xbc, 0x6d, 0xfe, 0xbc, 0x6d, 0xfe, + 0xbc, 0x6d, 0xfe, 0xbc, 0x6d, 0xfe, 0xbc, 0x70, + 0xe9, 0xf5, 0xa5, 0xaf, 0xc4, 0xf5, 0xbf, 0xd5, + 0x4b, 0xfb, 0x3e, 0x03, 0xbe, 0x8b, 0x8d, 0x59, + 0xff, 0x00, 0xc8, 0xb0, 0xff, 0x00, 0xb9, 0xa7, + 0xc6, 0xdb, 0xe3, 0x3c, 0x6d, 0xbe, 0x33, 0xc7, + 0x64, 0x85, 0x82, 0xe3, 0x75, 0x35, 0x70, 0x54, + 0x35, 0x35, 0xc6, 0x64, 0xab, 0xa6, 0x9e, 0x14, + 0xda, 0x2b, 0x3e, 0x96, 0x0f, 0x0b, 0x31, 0x65, + 0xc9, 0x81, 0x3d, 0x19, 0xe6, 0xa0, 0x6a, 0xd3, + 0xa5, 0xd4, 0x9b, 0x8d, 0x4d, 0x65, 0x6d, 0x05, + 0xb2, 0xe1, 0x5d, 0x42, 0x76, 0x34, 0xd5, 0xfc, + 0x66, 0xa6, 0x8d, 0x03, 0x3b, 0x1a, 0x31, 0xa8, + 0x47, 0x2c, 0x91, 0xbe, 0xfd, 0xcb, 0xbd, 0xd4, + 0xe6, 0x84, 0x10, 0xe7, 0x40, 0x62, 0xa9, 0x2b, + 0xa5, 0x5c, 0x7c, 0x21, 0xb8, 0x51, 0x53, 0x3d, + 0x2d, 0xbe, 0x6b, 0x7c, 0x50, 0x28, 0x31, 0x08, + 0x45, 0x44, 0xe9, 0x2c, 0x7a, 0xa4, 0x58, 0xd7, + 0x98, 0x34, 0x64, 0xca, 0xda, 0x73, 0xcb, 0x3d, + 0xfc, 0xe7, 0x38, 0x58, 0x20, 0x8a, 0xe3, 0x60, + 0x58, 0xa0, 0x8d, 0x43, 0xda, 0x2a, 0x12, 0x50, + 0x23, 0x5f, 0x95, 0xce, 0x9c, 0x7e, 0x57, 0x70, + 0x0f, 0x99, 0x73, 0x9e, 0xbc, 0xf3, 0xd5, 0xbf, + 0x14, 0x8f, 0x04, 0xb4, 0x96, 0x3a, 0x26, 0x83, + 0x29, 0x69, 0x6f, 0x71, 0xad, 0x6a, 0xbc, 0x41, + 0x43, 0x99, 0x25, 0x99, 0x94, 0x3f, 0x49, 0x90, + 0x04, 0x1a, 0x1b, 0x58, 0xc8, 0x7c, 0xce, 0x8c, + 0x56, 0x4d, 0x4b, 0x6c, 0xbc, 0x57, 0x4f, 0x70, + 0xa1, 0x35, 0x14, 0xb5, 0x74, 0xb0, 0x47, 0x42, + 0xc9, 0x4e, 0x92, 0xc6, 0x9b, 0x38, 0x95, 0x1e, + 0x05, 0x53, 0x92, 0xc4, 0x73, 0x1f, 0x9b, 0xbc, + 0x0c, 0x9b, 0x2c, 0x9b, 0x16, 0xe8, 0xa7, 0xa6, + 0xaa, 0xe0, 0xba, 0x4e, 0xac, 0x8c, 0x89, 0x78, + 0x71, 0x1b, 0x67, 0xaa, 0x18, 0xe6, 0x42, 0xf1, + 0xc6, 0xd9, 0xef, 0x04, 0x29, 0x1b, 0x8e, 0x45, + 0x73, 0xd3, 0xdc, 0xc5, 0xd6, 0x99, 0x2e, 0x1c, + 0x20, 0xa3, 0x89, 0xe6, 0xaa, 0x81, 0x7b, 0x1b, + 0x2b, 0x6d, 0x29, 0x25, 0x10, 0xcb, 0x9a, 0xce, + 0xdc, 0xdd, 0x65, 0x24, 0x1a, 0x4e, 0x7b, 0xc6, + 0x5b, 0xf7, 0x62, 0xf1, 0x69, 0x8a, 0x86, 0xd4, + 0x16, 0x84, 0x4d, 0x26, 0x9a, 0xf8, 0x6b, 0x2b, + 0x65, 0x97, 0x4d, 0x5d, 0x44, 0xa8, 0x9b, 0x4f, + 0x96, 0x91, 0x08, 0x48, 0xe6, 0x10, 0xeb, 0xcc, + 0xc7, 0xa1, 0x50, 0xae, 0xa7, 0x90, 0x7e, 0x52, + 0x4c, 0x3a, 0x6d, 0x28, 0x6a, 0x6a, 0x15, 0xa6, + 0x96, 0x1a, 0xbb, 0xbd, 0xbf, 0x9d, 0x25, 0x0c, + 0x34, 0x31, 0xca, 0x63, 0x13, 0xab, 0xbc, 0x50, + 0x53, 0xc8, 0xe8, 0x17, 0x9d, 0xa5, 0xf4, 0x85, + 0x5d, 0x59, 0xf4, 0xb6, 0xac, 0xae, 0x1a, 0x23, + 0xbb, 0xd6, 0x88, 0x91, 0x63, 0x88, 0x70, 0x62, + 0xa9, 0x15, 0x51, 0x42, 0xa0, 0xce, 0x69, 0x49, + 0x00, 0x00, 0x14, 0x67, 0x99, 0x39, 0x0c, 0x51, + 0xcb, 0x0d, 0x57, 0x27, 0x69, 0x28, 0xe8, 0x24, + 0x82, 0xb6, 0x8e, 0x7a, 0x7a, 0x9a, 0xa9, 0xf6, + 0x01, 0x06, 0xc1, 0x72, 0x91, 0xa7, 0x33, 0x7c, + 0xe7, 0x49, 0xc1, 0x12, 0xae, 0xbc, 0x86, 0x6c, + 0xb1, 0xa6, 0xa2, 0xca, 0x0c, 0x90, 0x45, 0xd8, + 0x4b, 0xbc, 0xdb, 0x15, 0x35, 0x06, 0xfa, 0x72, + 0x94, 0xa0, 0x32, 0x04, 0x59, 0xe0, 0xc8, 0x2b, + 0x65, 0xa8, 0x2f, 0x3d, 0xf3, 0xc8, 0xe4, 0x73, + 0x38, 0xbb, 0xa4, 0x82, 0xe3, 0x70, 0x49, 0xcc, + 0xc3, 0xb2, 0x4b, 0x49, 0xc5, 0x44, 0x56, 0xea, + 0x7a, 0xd6, 0xa9, 0x55, 0x48, 0xe3, 0x11, 0xc7, + 0x34, 0xce, 0x92, 0x53, 0x3c, 0x4c, 0x02, 0xfc, + 0x89, 0x0c, 0x77, 0x67, 0xb8, 0xa9, 0x34, 0x29, + 0xb3, 0xbb, 0x5e, 0x5d, 0xa1, 0x5a, 0x8a, 0x88, + 0x28, 0xad, 0xc2, 0x1d, 0xac, 0x6a, 0x59, 0xa5, + 0x4a, 0x25, 0xe8, 0xf9, 0xd9, 0x33, 0x32, 0x00, + 0xda, 0x1b, 0xc5, 0x99, 0xc5, 0x15, 0x43, 0x4b, + 0x5b, 0x6a, 0x91, 0xa6, 0x91, 0xd9, 0x29, 0x2e, + 0x91, 0x49, 0x10, 0xa5, 0x5a, 0x4a, 0x5a, 0x36, + 0x6a, 0x5a, 0x82, 0x29, 0x61, 0x44, 0x8d, 0x11, + 0x9c, 0xb1, 0x32, 0x48, 0xe0, 0xb1, 0x7d, 0x71, + 0xe6, 0x03, 0x0d, 0xf2, 0x6c, 0xe3, 0xb6, 0xd9, + 0xe7, 0x6e, 0x35, 0x4f, 0x22, 0xd1, 0xd4, 0xc4, + 0xb3, 0xad, 0x34, 0x75, 0x54, 0xb2, 0xb7, 0x1b, + 0x9d, 0xd6, 0x9a, 0x58, 0xe4, 0x65, 0xd9, 0x9e, + 0x96, 0x2c, 0x44, 0x81, 0x90, 0xee, 0x8c, 0xe4, + 0x71, 0x61, 0x9a, 0x61, 0x69, 0xa3, 0x13, 0xc0, + 0xb4, 0xf2, 0x04, 0x7f, 0x93, 0x44, 0x10, 0xae, + 0x93, 0x2b, 0x94, 0x7d, 0x90, 0xc8, 0x46, 0x65, + 0x53, 0xb4, 0x65, 0x00, 0x0d, 0x4c, 0x4a, 0xaa, + 0x02, 0x14, 0x6d, 0xbe, 0x33, 0xc5, 0xea, 0x5c, + 0xed, 0x17, 0x21, 0xdf, 0xa2, 0xa8, 0xfe, 0xcd, + 0xbf, 0x15, 0x15, 0x64, 0xd4, 0x15, 0x31, 0xd5, + 0x40, 0x79, 0xf1, 0x9e, 0x83, 0xf3, 0x5d, 0x4e, + 0xe6, 0x46, 0xfe, 0x0b, 0x0d, 0xc7, 0xbb, 0xdd, + 0x1b, 0xf0, 0xbc, 0x31, 0x83, 0x21, 0xaa, 0x92, + 0x70, 0xdd, 0xd0, 0xae, 0x84, 0x7f, 0x31, 0x39, + 0x1f, 0xe8, 0xc7, 0x2c, 0x29, 0xba, 0xad, 0x47, + 0x95, 0x1f, 0xaf, 0x1c, 0xb0, 0xa6, 0xea, 0xb5, + 0x1e, 0x54, 0x7e, 0xbc, 0x72, 0xc2, 0x9b, 0xaa, + 0xd4, 0x79, 0x51, 0xfa, 0xf1, 0xcb, 0x0a, 0x6e, + 0xab, 0x51, 0xe5, 0x47, 0xeb, 0xc7, 0x2c, 0x29, + 0xba, 0xad, 0x47, 0x95, 0x1f, 0xaf, 0x1c, 0xb0, + 0xa6, 0xea, 0xb5, 0x1e, 0x54, 0x7e, 0xbc, 0x72, + 0xc2, 0x9b, 0xaa, 0xd4, 0x79, 0x51, 0xfa, 0xf1, + 0xcb, 0x0a, 0x6e, 0xab, 0x51, 0xe5, 0x47, 0xeb, + 0xc7, 0x2c, 0x29, 0xba, 0xad, 0x47, 0x95, 0x1f, + 0xaf, 0x1c, 0xb0, 0xa6, 0xea, 0xb5, 0x1e, 0x54, + 0x7e, 0xbc, 0x72, 0xc2, 0x9b, 0xaa, 0xd4, 0x79, + 0x51, 0xfa, 0xf0, 0xfc, 0x2e, 0xa5, 0x74, 0x74, + 0x6a, 0x5a, 0x82, 0xae, 0xac, 0x8c, 0x35, 0xc6, + 0x33, 0x56, 0x05, 0x58, 0x66, 0x0e, 0x63, 0x30, + 0x4e, 0xf1, 0xbf, 0xbd, 0x88, 0x38, 0x53, 0x43, + 0x4d, 0x0c, 0x70, 0x43, 0x47, 0x50, 0x91, 0x44, + 0x34, 0xa2, 0xeb, 0x56, 0xc8, 0x66, 0x4e, 0x59, + 0xb3, 0x16, 0x3b, 0xcf, 0x74, 0x9c, 0x72, 0xc2, + 0x9b, 0xaa, 0xd4, 0x79, 0x51, 0xfa, 0xf1, 0xcb, + 0x0a, 0x6e, 0xab, 0x51, 0xe5, 0x47, 0xeb, 0xc7, + 0x2c, 0x29, 0xba, 0xad, 0x47, 0x95, 0x1f, 0xaf, + 0x1c, 0xb0, 0xa6, 0xea, 0xb5, 0x1e, 0x54, 0x7e, + 0xbc, 0x72, 0xc2, 0x9b, 0xaa, 0xd4, 0x79, 0x51, + 0xfa, 0xf1, 0xcb, 0x0a, 0x6e, 0xab, 0x51, 0xe5, + 0x47, 0xeb, 0xc7, 0x2c, 0x29, 0xba, 0xad, 0x47, + 0x95, 0x1f, 0xaf, 0x17, 0x8e, 0x10, 0xc9, 0x73, + 0x8c, 0x53, 0x47, 0x19, 0x86, 0x9f, 0x50, 0x77, + 0xd4, 0x73, 0x92, 0x42, 0xbf, 0x34, 0x1c, 0xb7, + 0x04, 0x1d, 0x39, 0x6f, 0xcc, 0xe4, 0x73, 0xdd, + 0x97, 0xe2, 0xb4, 0xf0, 0xa2, 0x28, 0x29, 0xa3, + 0xa6, 0xae, 0x59, 0x09, 0x85, 0x42, 0x24, 0xd1, + 0x80, 0xfa, 0x90, 0x6e, 0x50, 0xea, 0x4a, 0x90, + 0x54, 0x64, 0xb9, 0x8c, 0xf5, 0x01, 0x9f, 0x4f, + 0x4f, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, 0x99, 0xff, + 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, 0x53, 0xf9, + 0x9f, 0xf1, 0xc7, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, + 0x99, 0xff, 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, + 0x53, 0xf9, 0x9f, 0xf1, 0xc7, 0x2a, 0xed, 0x5f, + 0xa5, 0x3f, 0x99, 0xff, 0x00, 0x1c, 0x72, 0xae, + 0xd5, 0xfa, 0x53, 0xf9, 0x9f, 0xf1, 0xc7, 0x2a, + 0xed, 0x5f, 0xa5, 0x3f, 0x99, 0xff, 0x00, 0x1c, + 0x72, 0xae, 0xd5, 0xfa, 0x53, 0xf9, 0x9f, 0xf1, + 0xc7, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, 0x99, 0xff, + 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, 0x53, 0xf9, + 0x9f, 0xf1, 0xc7, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, + 0x99, 0xff, 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, + 0x53, 0xf9, 0x9f, 0xf1, 0xc5, 0x75, 0xe2, 0xc7, + 0x5e, 0x63, 0x67, 0x9e, 0xe1, 0x04, 0xb1, 0x82, + 0xab, 0x35, 0x2e, 0x70, 0xc8, 0x50, 0xef, 0x31, + 0xb1, 0xe7, 0xa9, 0x42, 0xd9, 0x37, 0xcd, 0xcc, + 0x32, 0x8c, 0x98, 0x0d, 0x40, 0xd0, 0xdf, 0x6c, + 0x76, 0xf8, 0x38, 0xbd, 0x39, 0xaa, 0xd3, 0xa8, + 0xbb, 0x3b, 0xc6, 0x5a, 0x49, 0x1d, 0xba, 0x5d, + 0xdb, 0x30, 0x0b, 0x6e, 0xee, 0x2a, 0x8e, 0xf0, + 0xc7, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, 0x99, 0xff, + 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, 0x53, 0xf9, + 0x9f, 0xf1, 0xc7, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, + 0x99, 0xff, 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, + 0x53, 0xf9, 0x9f, 0xf1, 0xc7, 0x2a, 0xed, 0x5f, + 0xa5, 0x3f, 0x99, 0xff, 0x00, 0x1c, 0x72, 0xae, + 0xd5, 0xfa, 0x53, 0xf9, 0x9f, 0xf1, 0xc1, 0xe1, + 0x5d, 0xac, 0x0d, 0xc6, 0xa0, 0xf8, 0x84, 0x3e, + 0xb6, 0x03, 0x17, 0x9b, 0xb3, 0xdd, 0xaa, 0x15, + 0xf4, 0x98, 0xe1, 0x85, 0x4a, 0x43, 0x19, 0x39, + 0x91, 0xa8, 0xe6, 0xce, 0xd9, 0x6e, 0xd4, 0xf9, + 0x0c, 0xf2, 0xe8, 0x0a, 0xa3, 0x33, 0x96, 0x7f, + 0xb3, 0xb3, 0xdc, 0x8d, 0xae, 0xb1, 0x6a, 0x34, + 0x97, 0x8d, 0x95, 0xa2, 0x95, 0x47, 0xce, 0x31, + 0xb6, 0x47, 0x9b, 0x9f, 0x75, 0x58, 0x2b, 0x0e, + 0xfe, 0x59, 0x78, 0xf0, 0x9c, 0x24, 0xb4, 0xba, + 0xe7, 0xc7, 0x02, 0xff, 0x00, 0x05, 0xe3, 0x99, + 0x58, 0x78, 0x8f, 0xc9, 0x11, 0xe4, 0x92, 0x3b, + 0xc7, 0x1c, 0xa2, 0xb4, 0xf5, 0xe4, 0xf2, 0x26, + 0xf6, 0x58, 0xe5, 0x15, 0xab, 0xaf, 0xa7, 0x93, + 0x37, 0xb2, 0xc7, 0x28, 0xad, 0x5d, 0x79, 0x3c, + 0x99, 0xbd, 0x96, 0x39, 0x45, 0x6a, 0xeb, 0xe9, + 0xe4, 0xcd, 0xec, 0xb1, 0xca, 0x2b, 0x57, 0x5e, + 0x4f, 0x26, 0x6f, 0x65, 0x8e, 0x51, 0xda, 0xba, + 0xfa, 0x79, 0x33, 0x7b, 0x2c, 0x72, 0x8a, 0xd5, + 0xd7, 0xd3, 0xc9, 0x9b, 0xd9, 0x63, 0x94, 0x56, + 0xae, 0xbc, 0x9e, 0x4c, 0xde, 0xcb, 0x1c, 0xa2, + 0xb5, 0x75, 0xe4, 0xf2, 0x66, 0xf6, 0x58, 0xe5, + 0x15, 0xab, 0xaf, 0x27, 0x91, 0x37, 0xb2, 0xc7, + 0x28, 0xad, 0x5d, 0x7d, 0x3c, 0x99, 0xbd, 0x96, + 0x27, 0xbe, 0xda, 0x67, 0x82, 0x68, 0x0d, 0xc1, + 0x14, 0x4d, 0x14, 0x91, 0xe7, 0xb3, 0x98, 0xe9, + 0xda, 0x21, 0x5d, 0x59, 0x6c, 0xc6, 0x79, 0x67, + 0x9e, 0x59, 0x8c, 0xfa, 0x33, 0xc5, 0x2d, 0xee, + 0xd3, 0x4b, 0x4b, 0x4f, 0x4a, 0x2e, 0x28, 0xe2, + 0x9e, 0x18, 0xe2, 0x0d, 0xb3, 0x99, 0x75, 0x68, + 0x50, 0xba, 0xb4, 0xe8, 0x6d, 0x39, 0xf7, 0xb3, + 0x3f, 0x59, 0xc7, 0x28, 0xad, 0x5d, 0x7d, 0x3c, + 0x99, 0xbd, 0x96, 0x39, 0x45, 0x6a, 0xeb, 0xe9, + 0xe4, 0xcd, 0xec, 0xb1, 0xca, 0x2b, 0x57, 0x5e, + 0x4f, 0x26, 0x6f, 0x65, 0x8e, 0x51, 0xda, 0xba, + 0xfa, 0x79, 0x33, 0x7b, 0x2c, 0x72, 0x8a, 0xd5, + 0xd7, 0xd3, 0xc9, 0x9b, 0xd9, 0x63, 0x94, 0x56, + 0xae, 0xbc, 0x9e, 0x44, 0xde, 0xcb, 0x1c, 0xa2, + 0xb4, 0xf5, 0xe4, 0xf2, 0x26, 0xf6, 0x58, 0xbe, + 0x70, 0x92, 0x9e, 0x7a, 0x59, 0x28, 0xe8, 0x99, + 0xa5, 0x33, 0x8d, 0x12, 0xcc, 0x55, 0x95, 0x16, + 0x3f, 0xce, 0x54, 0x0e, 0x15, 0x99, 0x9b, 0xe6, + 0xe7, 0xa7, 0x48, 0x52, 0x72, 0xcc, 0xe5, 0x97, + 0xff, 0x00, 0x65, 0x18, 0xa2, 0x96, 0x79, 0x16, + 0x28, 0x63, 0x79, 0x65, 0x73, 0xa5, 0x23, 0x8d, + 0x4b, 0xbb, 0x13, 0xdc, 0x55, 0x50, 0x49, 0x3f, + 0x56, 0x17, 0x81, 0xbc, 0x25, 0x75, 0x0c, 0x2d, + 0x84, 0x03, 0xfa, 0x75, 0x74, 0x11, 0xb7, 0xf3, + 0xa4, 0x95, 0x4a, 0xe3, 0xf9, 0xd4, 0x63, 0x91, + 0x5c, 0x26, 0xf0, 0x68, 0xf4, 0xfb, 0x6f, 0xdf, + 0x31, 0xc8, 0xae, 0x13, 0x78, 0x34, 0x7a, 0x7d, + 0xb7, 0xef, 0x98, 0xe4, 0x57, 0x09, 0xbc, 0x1a, + 0x3d, 0x3e, 0xdb, 0xf7, 0xcc, 0x72, 0x2b, 0x84, + 0xde, 0x0d, 0x1e, 0x9f, 0x6d, 0xfb, 0xe6, 0x39, + 0x15, 0xc2, 0x6f, 0x06, 0x8f, 0x4f, 0xb6, 0xfd, + 0xf3, 0x1c, 0x8a, 0xe1, 0x37, 0x83, 0x47, 0xa7, + 0xdb, 0x7e, 0xf9, 0x8e, 0x45, 0x70, 0x9b, 0xc1, + 0xa3, 0xd3, 0xed, 0xbf, 0x7c, 0xc7, 0x22, 0xb8, + 0x4d, 0xe0, 0xd1, 0xe9, 0xf6, 0xdf, 0xbe, 0x63, + 0x91, 0x5c, 0x26, 0xf0, 0x68, 0xf4, 0xfb, 0x6f, + 0xdf, 0x31, 0xc8, 0xae, 0x13, 0x78, 0x34, 0x7a, + 0x7d, 0xb7, 0xef, 0x98, 0xe4, 0x57, 0x09, 0xbc, + 0x1a, 0x3d, 0x3e, 0xdb, 0xf7, 0xcc, 0x72, 0x2b, + 0x84, 0xde, 0x0d, 0x1e, 0x9f, 0x6d, 0xfb, 0xe6, + 0x39, 0x15, 0xc2, 0x6f, 0x06, 0x8f, 0x4f, 0xb6, + 0xfd, 0xf3, 0x1c, 0x8a, 0xe1, 0x37, 0x83, 0x47, + 0xa7, 0xdb, 0x7e, 0xf9, 0x8e, 0x45, 0x70, 0x9b, + 0xc1, 0xa3, 0xd3, 0xed, 0xbf, 0x7c, 0xc7, 0x22, + 0xb8, 0x4d, 0xe0, 0xd1, 0xe9, 0xf6, 0xdf, 0xbe, + 0x63, 0x91, 0x5c, 0x26, 0xf0, 0x68, 0xf4, 0xfb, + 0x6f, 0xdf, 0x31, 0xc8, 0xae, 0x13, 0x78, 0x34, + 0x7a, 0x7d, 0xb7, 0xef, 0x98, 0xe4, 0x57, 0x09, + 0xbc, 0x1a, 0x3d, 0x3e, 0xdb, 0xf7, 0xcc, 0x72, + 0x2b, 0x84, 0xde, 0x0d, 0x1e, 0x9d, 0x6d, 0xfb, + 0xe6, 0x2b, 0x6d, 0xf5, 0xb6, 0xe9, 0x76, 0x15, + 0xd4, 0xd2, 0xd3, 0x4b, 0x96, 0x61, 0x64, 0x1b, + 0x98, 0x77, 0xd1, 0x86, 0x68, 0xeb, 0xfc, 0x24, + 0x66, 0x1e, 0x3f, 0xdf, 0x7f, 0xc1, 0xec, 0x11, + 0x1a, 0x8b, 0x95, 0x5b, 0x80, 0x65, 0xa7, 0x8e, + 0x9a, 0x28, 0x89, 0xfc, 0xc1, 0x52, 0x6a, 0x0c, + 0x84, 0x77, 0x89, 0x10, 0x2a, 0xe7, 0xfa, 0x25, + 0x87, 0x77, 0x1b, 0x41, 0xdf, 0xfe, 0x9c, 0x6d, + 0x31, 0xb4, 0xc5, 0xde, 0xec, 0xb6, 0x9a, 0x19, + 0x2b, 0x5a, 0x16, 0xa8, 0x08, 0xf1, 0xa6, 0xc9, + 0x64, 0xd9, 0x93, 0xb4, 0x6d, 0x3f, 0x38, 0xa3, + 0xf4, 0x7f, 0x17, 0x7e, 0x28, 0xb8, 0x4e, 0xd3, + 0x56, 0x43, 0x47, 0x5f, 0x6b, 0xad, 0xb5, 0x3d, + 0x50, 0x6e, 0x2a, 0xf5, 0x24, 0x98, 0xe7, 0x75, + 0xde, 0x63, 0xcc, 0xc5, 0x16, 0x96, 0xcb, 0xe6, + 0x9e, 0x70, 0x63, 0xcd, 0xdc, 0x4a, 0xe7, 0xc6, + 0xa1, 0xd6, 0x62, 0xdb, 0x47, 0xb4, 0x1d, 0x31, + 0xed, 0x17, 0x68, 0x37, 0x67, 0xbd, 0x33, 0xd5, + 0xd1, 0xbf, 0xa3, 0xa3, 0x7e, 0x2d, 0xf7, 0xaa, + 0x4b, 0x8a, 0x55, 0x49, 0x13, 0x68, 0x8e, 0x96, + 0xa6, 0x5a, 0x76, 0x32, 0x48, 0x80, 0x91, 0x12, + 0xa6, 0xa9, 0xf2, 0x0c, 0x74, 0x42, 0xce, 0xcc, + 0xa8, 0xc4, 0xf3, 0x82, 0xea, 0xdc, 0x4e, 0x85, + 0x49, 0xe3, 0x91, 0x75, 0x47, 0x22, 0xc8, 0xbd, + 0x1a, 0x91, 0xc3, 0xae, 0x63, 0xa4, 0x66, 0xb9, + 0x8d, 0xd8, 0xaf, 0xe1, 0x2c, 0xf4, 0x97, 0x09, + 0x6d, 0xd4, 0xd6, 0x7a, 0xbb, 0x8c, 0x90, 0xc5, + 0x14, 0xcc, 0xd4, 0xd2, 0xf4, 0x2c, 0xa0, 0x11, + 0x9a, 0x08, 0x24, 0x20, 0x02, 0x72, 0xcf, 0x3d, + 0xe7, 0xbd, 0x8b, 0x65, 0xf2, 0x9a, 0xe5, 0x4b, + 0xc6, 0x37, 0xd2, 0x3a, 0xcc, 0xf4, 0xd3, 0x53, + 0xd4, 0xba, 0xa4, 0x91, 0x54, 0x46, 0x03, 0x3c, + 0x7b, 0xf2, 0xd7, 0xb9, 0x81, 0x07, 0x25, 0x24, + 0x7c, 0xe4, 0x52, 0x0a, 0x83, 0x57, 0x02, 0xaa, + 0xbb, 0x4f, 0x12, 0xa3, 0xfc, 0xc7, 0x69, 0x50, + 0x2b, 0xff, 0x00, 0x11, 0x89, 0xc9, 0xbf, 0x9b, + 0x3c, 0x54, 0xde, 0x29, 0xa9, 0xab, 0xa8, 0xad, + 0xf2, 0x13, 0xb6, 0xad, 0xda, 0xb2, 0xb1, 0x64, + 0x58, 0xe3, 0x48, 0xa3, 0x66, 0xcd, 0xcb, 0x30, + 0x39, 0xc8, 0xc0, 0x47, 0x1a, 0x81, 0xce, 0x25, + 0x8e, 0xae, 0x6e, 0x96, 0xe3, 0x11, 0xeb, 0x31, + 0x6d, 0x13, 0x6a, 0x06, 0xa3, 0x1e, 0xb1, 0xb4, + 0x0b, 0xbb, 0x79, 0x4f, 0x9c, 0x06, 0xf1, 0xbc, + 0x8c, 0xb7, 0x8e, 0xfe, 0x38, 0xcc, 0x5b, 0x4d, + 0x96, 0xd6, 0x3d, 0xa9, 0x19, 0x88, 0xb6, 0x8b, + 0xb4, 0xcb, 0x2c, 0xf3, 0xd1, 0x9e, 0xac, 0xb2, + 0x19, 0xf4, 0x74, 0x6f, 0xe8, 0xc3, 0xdf, 0xc4, + 0xf1, 0xdd, 0x05, 0xb6, 0x24, 0x9e, 0xa6, 0xdb, + 0x2c, 0x70, 0x84, 0xa8, 0xa8, 0x86, 0x9e, 0x39, + 0xdc, 0xc8, 0x16, 0x56, 0x49, 0x1e, 0x55, 0x51, + 0x0c, 0x6b, 0xf3, 0x64, 0x77, 0x5d, 0x6f, 0xcc, + 0x0a, 0x39, 0xba, 0xcd, 0x4c, 0x48, 0xb1, 0x99, + 0xa4, 0x8a, 0x22, 0xe0, 0x6e, 0x79, 0x51, 0x41, + 0x6c, 0x86, 0x61, 0x49, 0x39, 0x36, 0x59, 0xfe, + 0x6e, 0x7d, 0xce, 0xfe, 0x1a, 0x78, 0x90, 0x80, + 0xd2, 0x22, 0x12, 0x18, 0x80, 0xce, 0x14, 0x95, + 0x51, 0x9b, 0x10, 0x0e, 0x59, 0x85, 0x1b, 0xd8, + 0xf4, 0x01, 0xbc, 0xe1, 0x66, 0x47, 0x50, 0xe8, + 0xea, 0xe8, 0x7a, 0x19, 0x1b, 0x52, 0x9c, 0x8e, + 0x47, 0x26, 0x19, 0x83, 0xbc, 0x11, 0xbb, 0xba, + 0x32, 0xc6, 0xd3, 0x1b, 0x4c, 0x6d, 0x07, 0x7f, + 0xfa, 0x71, 0xc3, 0x68, 0x61, 0x9e, 0xc3, 0x51, + 0x33, 0xa8, 0x32, 0xd2, 0x49, 0x04, 0xb0, 0x3f, + 0xe7, 0x29, 0x92, 0x78, 0xa0, 0x90, 0x67, 0xfa, + 0x2d, 0x1c, 0x87, 0x52, 0xf4, 0x12, 0x10, 0xf4, + 0xa8, 0xcb, 0xf7, 0xdb, 0x80, 0x2f, 0xa0, 0x5d, + 0xbc, 0x66, 0xdf, 0xff, 0x00, 0xfb, 0xb1, 0xb6, + 0xf1, 0x8f, 0xe8, 0xc6, 0xdb, 0xc7, 0x8d, 0xb7, + 0x8f, 0x1c, 0x2d, 0x97, 0x3b, 0x24, 0xc3, 0x3f, + 0xf7, 0xd4, 0xdf, 0xda, 0x8c, 0x5c, 0xee, 0x34, + 0xb7, 0x1a, 0xbb, 0x15, 0x3d, 0x14, 0xf1, 0xd4, + 0xcb, 0x15, 0xca, 0x0a, 0xa7, 0x30, 0xb0, 0x7d, + 0x94, 0x34, 0xe3, 0x54, 0xa5, 0xd9, 0x77, 0x2e, + 0x63, 0x76, 0x47, 0xa7, 0xc7, 0x8d, 0xb4, 0x32, + 0x57, 0xd0, 0xd4, 0xc3, 0x15, 0x2c, 0x1b, 0x5e, + 0x11, 0x69, 0x23, 0x68, 0xf2, 0xdc, 0xa4, 0x57, + 0x94, 0x47, 0x36, 0xde, 0x53, 0xa5, 0xa2, 0xa7, + 0xd2, 0x40, 0x48, 0x79, 0xe3, 0x39, 0x1b, 0x7a, + 0xe5, 0xcf, 0x83, 0xb1, 0x94, 0xd6, 0xeb, 0x84, + 0x3b, 0x04, 0x7a, 0x99, 0x6f, 0x22, 0x97, 0x66, + 0xd5, 0x53, 0x44, 0xa9, 0x4d, 0x1c, 0xca, 0x60, + 0x35, 0x1c, 0xe7, 0xfd, 0xae, 0xa4, 0x48, 0xa4, + 0xb2, 0x12, 0xfa, 0x8e, 0xa6, 0x25, 0x14, 0x8e, + 0x0b, 0xc9, 0xb3, 0xa9, 0xbe, 0xc4, 0x1a, 0x9f, + 0x42, 0xd6, 0x42, 0x55, 0x69, 0x17, 0x4d, 0x22, + 0xb3, 0x2c, 0xc2, 0x41, 0x4e, 0x99, 0x90, 0xb1, + 0xe6, 0xa1, 0x46, 0x59, 0x66, 0x14, 0x74, 0x6e, + 0x02, 0xa1, 0x6b, 0xa7, 0xe1, 0x35, 0x77, 0x10, + 0xaf, 0x14, 0x0e, 0x28, 0x29, 0x75, 0xc8, 0x69, + 0xa2, 0xa9, 0xd6, 0x99, 0x2f, 0x37, 0x4c, 0xbb, + 0x97, 0x7e, 0xfd, 0x43, 0x7f, 0x73, 0x17, 0x0b, + 0x4c, 0x34, 0xe9, 0x66, 0xa2, 0x9e, 0x67, 0xab, + 0x35, 0x97, 0xbd, 0xb5, 0x74, 0xcc, 0x4a, 0x34, + 0xef, 0x32, 0xa2, 0xc9, 0x96, 0x96, 0xd4, 0x80, + 0xa8, 0xd2, 0x32, 0x6d, 0x43, 0x32, 0x43, 0x67, + 0xd1, 0x53, 0x05, 0xa3, 0xb2, 0xd5, 0xd4, 0xd7, + 0x73, 0xb2, 0xa4, 0xa4, 0xa1, 0xa6, 0x8e, 0xd3, + 0x13, 0xcd, 0x34, 0x71, 0xa4, 0x22, 0x11, 0xa8, + 0xc2, 0x55, 0x94, 0xc9, 0x20, 0x93, 0x56, 0xe6, + 0x2f, 0xad, 0xf5, 0x66, 0xb2, 0x69, 0xdd, 0x4e, + 0xb4, 0xf2, 0x4d, 0xc1, 0x99, 0xae, 0x63, 0x35, + 0x68, 0x2b, 0x53, 0x69, 0x3c, 0xb2, 0x46, 0x5e, + 0x2a, 0x77, 0x76, 0xb6, 0xeb, 0x22, 0x45, 0x00, + 0x86, 0x75, 0xd1, 0x91, 0x1b, 0x40, 0x54, 0x3e, + 0xb1, 0x8a, 0x1d, 0x46, 0xba, 0x9a, 0xa7, 0x6f, + 0x49, 0x0d, 0xd3, 0xb3, 0x12, 0x6d, 0x4b, 0xcf, + 0x70, 0x7a, 0xf9, 0x7e, 0x57, 0x27, 0xa7, 0x92, + 0x9a, 0x2a, 0x79, 0x60, 0x58, 0x59, 0x73, 0x1b, + 0x42, 0x55, 0x48, 0x2c, 0xb2, 0x4a, 0x00, 0x2a, + 0x94, 0xbd, 0x87, 0x24, 0xd4, 0xdc, 0x27, 0xaa, + 0x8e, 0xf2, 0x2f, 0x84, 0x33, 0xc2, 0xd2, 0x35, + 0x52, 0x8d, 0xaf, 0x35, 0x44, 0x24, 0x95, 0xd8, + 0xf4, 0x97, 0x95, 0x62, 0x79, 0x55, 0x86, 0x84, + 0xd5, 0xba, 0x26, 0x9e, 0x2a, 0x18, 0x69, 0xf8, + 0x56, 0x88, 0xa8, 0x95, 0x2b, 0x54, 0x91, 0xc2, + 0x9b, 0x47, 0x2e, 0x29, 0x38, 0xf4, 0x0c, 0xd9, + 0x23, 0x39, 0xd4, 0xbb, 0x4d, 0x1c, 0xf2, 0xa5, + 0x81, 0xc8, 0x6a, 0xc8, 0xe4, 0x6a, 0x85, 0xb6, + 0xa2, 0xe7, 0x70, 0x17, 0xd7, 0x21, 0x62, 0xa1, + 0xa5, 0xec, 0x6a, 0xbc, 0xb2, 0xc4, 0x8b, 0x1f, + 0x17, 0x52, 0xef, 0x06, 0x82, 0x81, 0xe4, 0xda, + 0xe7, 0xcd, 0x3a, 0xc3, 0x3e, 0xb1, 0xa1, 0xb2, + 0xdd, 0x4f, 0x13, 0x5c, 0x39, 0x2b, 0x05, 0xc3, + 0x68, 0xe8, 0xf1, 0x5c, 0x55, 0x81, 0x77, 0x8d, + 0xe6, 0xa4, 0x8d, 0x59, 0xe1, 0x47, 0x78, 0xd9, + 0x5f, 0x4c, 0x91, 0x46, 0x8a, 0x72, 0x60, 0x5a, + 0x3c, 0xb7, 0xe6, 0x73, 0xc7, 0x05, 0x4a, 0xd3, + 0xc5, 0x74, 0xa6, 0x42, 0x76, 0x30, 0x5d, 0x6a, + 0x52, 0x15, 0x24, 0xb6, 0x94, 0x1a, 0x57, 0x2c, + 0xcf, 0xf1, 0x46, 0x67, 0xba, 0x77, 0xe3, 0x6d, + 0xe3, 0xc6, 0xdb, 0xc7, 0x8d, 0xb7, 0x8c, 0x7f, + 0x46, 0x38, 0x57, 0x26, 0xab, 0x05, 0x78, 0xcc, + 0x6f, 0xe2, 0xdf, 0xdf, 0x29, 0xff, 0x00, 0x7d, + 0xf8, 0x27, 0x71, 0x86, 0x8e, 0xa2, 0xa2, 0x09, + 0x9c, 0x46, 0x2a, 0xd6, 0x2d, 0x0e, 0xc4, 0x2a, + 0xed, 0x21, 0x32, 0x69, 0x52, 0x4e, 0x59, 0x6a, + 0x12, 0xb6, 0x5e, 0x30, 0x07, 0x77, 0x1b, 0x53, + 0xf1, 0x9e, 0x36, 0xa7, 0xe3, 0x3c, 0x6d, 0x4f, + 0xc6, 0x78, 0x94, 0x45, 0x3a, 0x18, 0xe7, 0x86, + 0x39, 0xa3, 0x24, 0x13, 0x1c, 0xb1, 0x89, 0x10, + 0x91, 0xd0, 0x4a, 0x38, 0x2a, 0x48, 0xee, 0x6e, + 0xdd, 0x88, 0x60, 0xa5, 0xa6, 0x25, 0xa9, 0xe9, + 0x29, 0xe9, 0xd9, 0x86, 0x4c, 0x60, 0x82, 0x38, + 0x8b, 0x0e, 0xf1, 0x31, 0xa2, 0x92, 0x3c, 0x47, + 0x1c, 0x56, 0x8b, 0x59, 0x93, 0x89, 0x52, 0xed, + 0x0b, 0x89, 0x0c, 0x9c, 0x5a, 0x2d, 0x66, 0x40, + 0x73, 0x12, 0x17, 0xd1, 0xa8, 0xb8, 0x27, 0x30, + 0xc4, 0xea, 0x07, 0x78, 0x39, 0xe1, 0xa9, 0xa8, + 0xd8, 0xca, 0x5a, 0x8a, 0x95, 0x8c, 0xff, 0x00, + 0x96, 0x2d, 0x4d, 0x11, 0x33, 0x64, 0xc1, 0xc6, + 0xd4, 0x94, 0xf9, 0x4c, 0x9c, 0x06, 0xe7, 0xe7, + 0xce, 0x01, 0xba, 0x46, 0x22, 0x8e, 0x9e, 0x02, + 0xc6, 0x0a, 0x78, 0x61, 0x2e, 0x14, 0x31, 0x86, + 0x24, 0x8c, 0xb0, 0x41, 0x92, 0x06, 0x28, 0xa3, + 0x30, 0x83, 0x72, 0x03, 0xf3, 0x46, 0xe1, 0x90, + 0xc0, 0x11, 0x89, 0x5a, 0x61, 0x14, 0x62, 0x66, + 0x50, 0x8d, 0x30, 0x8c, 0x09, 0x59, 0x47, 0x42, + 0xb4, 0x99, 0x6b, 0x65, 0x1d, 0xc0, 0x4e, 0x43, + 0x0e, 0x23, 0x94, 0xc6, 0xd2, 0x45, 0x1c, 0x8d, + 0x13, 0x6b, 0x89, 0xa4, 0x40, 0xe6, 0x37, 0x1d, + 0x0f, 0x19, 0x60, 0x4a, 0x38, 0xee, 0x32, 0xe4, + 0x7c, 0x78, 0x9a, 0x2a, 0x7a, 0x9d, 0x3c, 0x62, + 0x9a, 0x0a, 0x8d, 0x1f, 0x37, 0x6f, 0x0a, 0x4b, + 0xa7, 0x3e, 0x9d, 0x3b, 0x45, 0x6c, 0xb3, 0xf1, + 0x62, 0x58, 0xa9, 0xe7, 0x08, 0x27, 0xa7, 0x86, + 0x61, 0x1e, 0xf8, 0xc4, 0xb0, 0xa4, 0x81, 0x0f, + 0x7d, 0x35, 0xa9, 0xd2, 0x7f, 0x8b, 0x96, 0x04, + 0x54, 0xe2, 0x63, 0x52, 0x29, 0xe1, 0x15, 0x0d, + 0xb9, 0xa7, 0x10, 0xa0, 0x98, 0x8c, 0x80, 0xc8, + 0xcb, 0xa7, 0x68, 0x77, 0x00, 0x37, 0xb7, 0x40, + 0x03, 0xb9, 0x8d, 0x8d, 0x31, 0x9b, 0x8c, 0x1a, + 0x68, 0x0d, 0x40, 0xe8, 0xa8, 0x30, 0xa6, 0xdf, + 0xa3, 0x4f, 0xe5, 0x74, 0xeb, 0xf9, 0xbc, 0xdf, + 0x9d, 0xd1, 0xbb, 0xa3, 0x0f, 0x4d, 0x47, 0x23, + 0x48, 0xf2, 0x51, 0xd2, 0xc8, 0xf2, 0x80, 0xb2, + 0xbb, 0xd3, 0xc6, 0xef, 0x2a, 0x82, 0xa4, 0x2c, + 0x8c, 0xc8, 0x4b, 0x80, 0x51, 0x08, 0x0c, 0x48, + 0x05, 0x13, 0x2f, 0x9a, 0x32, 0x96, 0x1a, 0x69, + 0xf4, 0x6d, 0xe9, 0x69, 0xe7, 0xd9, 0xfe, 0x4f, + 0x6d, 0x02, 0x4b, 0xa3, 0xf8, 0x9a, 0xd1, 0xb4, + 0xf4, 0x0e, 0x8c, 0xba, 0x06, 0x08, 0x89, 0x9e, + 0x39, 0x4c, 0x31, 0x99, 0x21, 0xd4, 0x22, 0x90, + 0xc6, 0x0c, 0x91, 0x06, 0x1a, 0x58, 0x46, 0xe4, + 0x6a, 0x4d, 0x4b, 0xcd, 0x6d, 0x24, 0x66, 0x37, + 0x1d, 0xd8, 0x8c, 0x45, 0x0e, 0xbd, 0x8c, 0x31, + 0xc5, 0xb4, 0x73, 0x24, 0x9b, 0x38, 0xc2, 0x6d, + 0x24, 0x3d, 0x2e, 0xfa, 0x40, 0xd4, 0xe7, 0xba, + 0xcd, 0x9b, 0x1e, 0xe9, 0xc6, 0xd4, 0xfc, 0x67, + 0x8d, 0xa9, 0xf8, 0xcf, 0x1b, 0x53, 0xf1, 0x9e, + 0x38, 0x53, 0x73, 0x85, 0x68, 0x1e, 0x84, 0x30, + 0x69, 0xea, 0x1a, 0x3c, 0xd1, 0x5b, 0x33, 0x14, + 0x71, 0xc8, 0xb2, 0x96, 0x7e, 0xf6, 0xa2, 0x81, + 0x55, 0x4e, 0x44, 0xe6, 0x4f, 0xe6, 0xfe, 0xfc, + 0x09, 0x65, 0x1b, 0x84, 0x8e, 0x07, 0x89, 0xd8, + 0x7f, 0xef, 0x8d, 0xb4, 0xdf, 0x4b, 0x27, 0x96, + 0xde, 0xbc, 0x6d, 0xa6, 0xfa, 0x59, 0x3c, 0xb6, + 0xf5, 0xe3, 0x6d, 0x37, 0xd2, 0xc9, 0xe5, 0xb7, + 0xaf, 0x1b, 0x69, 0xbe, 0x96, 0x4f, 0x2d, 0xbd, + 0x78, 0xdb, 0x4d, 0xf4, 0xb2, 0x79, 0x6d, 0xeb, + 0xc6, 0xda, 0x6f, 0xa5, 0x93, 0xcb, 0x6f, 0x5e, + 0x36, 0xd3, 0x7d, 0x2c, 0x9e, 0x5b, 0x7a, 0xf1, + 0xb6, 0x9b, 0xe9, 0x64, 0xf2, 0xdb, 0xd7, 0x8d, + 0xb4, 0xdf, 0x4b, 0x27, 0x96, 0xde, 0xbc, 0x6d, + 0xa6, 0xfa, 0x59, 0x3c, 0xb6, 0xf5, 0xe3, 0x6d, + 0x37, 0xd2, 0xc9, 0xe5, 0xb7, 0xaf, 0x1b, 0x69, + 0xbe, 0x96, 0x4f, 0x2d, 0xbd, 0x78, 0xdb, 0x4d, + 0xf4, 0xb2, 0x79, 0x6d, 0xeb, 0xc6, 0xda, 0x6f, + 0xa5, 0x93, 0xcb, 0x6f, 0x5e, 0x36, 0xd3, 0x7d, + 0x2c, 0x9e, 0x5b, 0x7a, 0xf1, 0xb6, 0x9b, 0xe9, + 0x64, 0xf2, 0xdb, 0xd7, 0x8d, 0xb4, 0xdf, 0x4b, + 0x27, 0x96, 0xde, 0xbc, 0x6d, 0xa6, 0xfa, 0x59, + 0x3c, 0xb6, 0xf5, 0xe3, 0x6d, 0x37, 0xd2, 0xc9, + 0xe5, 0xb7, 0xaf, 0x1b, 0x69, 0xbe, 0x96, 0x4f, + 0x2d, 0xbd, 0x7f, 0xfd, 0xba, 0xbf, 0xff, 0xc4, + 0x00, 0x72, 0x10, 0x00, 0x02, 0x02, 0x01, 0x02, + 0x03, 0x02, 0x06, 0x09, 0x0d, 0x08, 0x0d, 0x09, + 0x03, 0x05, 0x11, 0x02, 0x03, 0x01, 0x04, 0x05, + 0x00, 0x11, 0x06, 0x12, 0x13, 0x14, 0x21, 0x15, + 0x22, 0x31, 0x35, 0x36, 0x95, 0x07, 0x23, 0x32, + 0x71, 0x92, 0x94, 0xd3, 0xd4, 0xd5, 0x10, 0x16, + 0x33, 0x34, 0x41, 0x51, 0x74, 0x75, 0x91, 0x93, + 0x96, 0xb3, 0xb4, 0x20, 0x24, 0x42, 0x61, 0xb5, + 0xd2, 0xe1, 0xe3, 0x25, 0x30, 0x40, 0x44, 0x52, + 0x62, 0x72, 0x73, 0x76, 0xa3, 0xd1, 0xe2, 0xe5, + 0x43, 0x81, 0x83, 0xa1, 0xa5, 0xb1, 0xb2, 0xd6, + 0xe4, 0x26, 0x53, 0x63, 0x08, 0x17, 0x45, 0x55, + 0x65, 0x82, 0xa4, 0xc1, 0xc2, 0x46, 0x50, 0x54, + 0x64, 0xa2, 0xb6, 0x60, 0x66, 0x77, 0x85, 0xc3, + 0xc5, 0xf0, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, + 0x00, 0x06, 0x3f, 0x02, 0xd3, 0x12, 0xcc, 0x9a, + 0x45, 0x8a, 0x61, 0xa9, 0x83, 0xc8, 0xfd, 0xc5, + 0x8b, 0x29, 0x03, 0x1e, 0xe5, 0x6d, 0xdc, 0x51, + 0x31, 0xdd, 0xdd, 0xaf, 0x3a, 0x27, 0xe0, 0x3f, + 0xe4, 0x75, 0xe7, 0x44, 0xfc, 0x07, 0xfc, 0x8e, + 0xbc, 0xe8, 0x9f, 0x80, 0xff, 0x00, 0x91, 0xd7, + 0x9d, 0x13, 0xf0, 0x1f, 0xf2, 0x3a, 0xf3, 0xa2, + 0x7e, 0x03, 0xfe, 0x47, 0x5e, 0x74, 0x4f, 0xc0, + 0x7f, 0xc8, 0xeb, 0xce, 0x89, 0xf8, 0x0f, 0xf9, + 0x1d, 0x79, 0xd1, 0x3f, 0x01, 0xff, 0x00, 0x23, + 0xaf, 0x3a, 0x27, 0xe0, 0x3f, 0xe4, 0x75, 0xe7, + 0x44, 0xfc, 0x07, 0xfc, 0x8e, 0xbc, 0xe8, 0x9f, + 0x80, 0xff, 0x00, 0x91, 0xd7, 0x9d, 0x13, 0xf0, + 0x1f, 0xf2, 0x3a, 0xf3, 0xa2, 0x7e, 0x03, 0xfe, + 0x47, 0x5e, 0x74, 0x4f, 0xc0, 0x7f, 0xc8, 0xeb, + 0xce, 0x89, 0xf8, 0x0f, 0xf9, 0x1d, 0x79, 0xd1, + 0x3f, 0x01, 0xff, 0x00, 0x23, 0xaf, 0x3a, 0x27, + 0xe0, 0x3f, 0xe4, 0x75, 0xe7, 0x44, 0xfc, 0x07, + 0xfc, 0x8e, 0xbc, 0xe8, 0x9f, 0x80, 0xff, 0x00, + 0x91, 0xd7, 0x9d, 0x13, 0xf0, 0x1f, 0xf2, 0x3a, + 0xf3, 0xa2, 0x7e, 0x03, 0xfe, 0x47, 0x5e, 0x74, + 0x4f, 0xc0, 0x7f, 0xc8, 0xeb, 0xce, 0x89, 0xf8, + 0x0f, 0xf9, 0x1d, 0x79, 0xd1, 0x3f, 0x01, 0xff, + 0x00, 0x23, 0xaf, 0x3a, 0x27, 0xe0, 0x3f, 0xe4, + 0x75, 0xe7, 0x44, 0xfc, 0x07, 0xfc, 0x8e, 0xbc, + 0xe8, 0x9f, 0x80, 0xff, 0x00, 0x91, 0xd7, 0x9d, + 0x13, 0xf0, 0x1f, 0xf2, 0x3a, 0xf3, 0xa2, 0x7e, + 0x03, 0xfe, 0x47, 0x5e, 0x74, 0x4f, 0xc0, 0x7f, + 0xc8, 0xeb, 0xce, 0x89, 0xf8, 0x0f, 0xf9, 0x1d, + 0x79, 0xd1, 0x3f, 0x01, 0xff, 0x00, 0x23, 0xaf, + 0x3a, 0x27, 0xe0, 0x3f, 0xe4, 0x75, 0xe7, 0x44, + 0xfc, 0x07, 0xfc, 0x8e, 0xbc, 0xe8, 0x9f, 0x80, + 0xff, 0x00, 0x91, 0xd7, 0x9d, 0x13, 0xf0, 0x1f, + 0xf2, 0x3a, 0xf3, 0xa2, 0x7e, 0x03, 0xfe, 0x47, + 0x5e, 0x74, 0x4f, 0xc0, 0x7f, 0xc8, 0xeb, 0xce, + 0x89, 0xf8, 0x0f, 0xf9, 0x1d, 0x79, 0xd1, 0x3f, + 0x01, 0xff, 0x00, 0x23, 0xaf, 0x3a, 0x27, 0xe0, + 0x3f, 0xe4, 0x75, 0xe7, 0x44, 0xfc, 0x07, 0xfc, + 0x8e, 0xbc, 0xe8, 0x9f, 0x80, 0xff, 0x00, 0x91, + 0xd7, 0x9d, 0x13, 0xf0, 0x1f, 0xf2, 0x3a, 0xf3, + 0xa2, 0x7e, 0x03, 0xfe, 0x47, 0x5e, 0x74, 0x4f, + 0xc0, 0x7f, 0xc8, 0xeb, 0xce, 0x89, 0xf8, 0x0f, + 0xf9, 0x1d, 0x79, 0xd1, 0x3f, 0x01, 0xff, 0x00, + 0x23, 0xaf, 0x3a, 0x27, 0xe0, 0x3f, 0xe4, 0x75, + 0xe7, 0x44, 0xfc, 0x07, 0xfc, 0x8e, 0xbc, 0xe8, + 0x9f, 0x80, 0xff, 0x00, 0x91, 0xd7, 0x9d, 0x13, + 0xf0, 0x1f, 0xf2, 0x3a, 0xf3, 0xa2, 0x7e, 0x03, + 0xfe, 0x47, 0x5e, 0x74, 0x4f, 0xc0, 0x7f, 0xc8, + 0xeb, 0xce, 0x89, 0xf8, 0x0f, 0xf9, 0x1d, 0x79, + 0xd1, 0x3f, 0x01, 0xff, 0x00, 0x23, 0xaf, 0x3a, + 0x27, 0xe0, 0x3f, 0xe4, 0x75, 0xe7, 0x44, 0xfc, + 0x07, 0xfc, 0x8e, 0xbc, 0xe8, 0x9f, 0x80, 0xff, + 0x00, 0x91, 0xd7, 0x9d, 0x13, 0xf0, 0x1f, 0xf2, + 0x3a, 0xf3, 0xa2, 0x7e, 0x03, 0xfe, 0x47, 0x5e, + 0x74, 0x4f, 0xc0, 0x7f, 0xc8, 0xeb, 0xce, 0x89, + 0xf8, 0x0f, 0xf9, 0x1d, 0x79, 0xd1, 0x3f, 0x01, + 0xff, 0x00, 0x23, 0xaf, 0x3a, 0x27, 0xe0, 0x3f, + 0xe4, 0x75, 0xe7, 0x44, 0xfc, 0x07, 0xfc, 0x8e, + 0xbc, 0xe8, 0x9f, 0x80, 0xff, 0x00, 0x91, 0xd7, + 0x9d, 0x13, 0xf0, 0x1f, 0xf2, 0x3a, 0xf3, 0xa2, + 0x7e, 0x03, 0xfe, 0x47, 0x5e, 0x74, 0x4f, 0xc0, + 0x7f, 0xc8, 0xeb, 0xce, 0x89, 0xf8, 0x0f, 0xf9, + 0x1d, 0x79, 0xd1, 0x3f, 0x01, 0xff, 0x00, 0x23, + 0xaf, 0x3a, 0x27, 0xe0, 0x3f, 0xe4, 0x74, 0xba, + 0xd5, 0xf2, 0x2a, 0x63, 0xdd, 0x3c, 0xab, 0x5c, + 0x0b, 0xa2, 0x4a, 0x76, 0xdf, 0x6e, 0xf5, 0x44, + 0x79, 0x22, 0x7c, 0xb3, 0x1f, 0x50, 0xa6, 0x3e, + 0xf4, 0xe9, 0xa5, 0xbf, 0xba, 0xca, 0x65, 0x8b, + 0xf2, 0xe4, 0x1f, 0x3a, 0xf2, 0xeb, 0xcb, 0xaf, + 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, + 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2c, 0xeb, + 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, + 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, + 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0x3a, 0xf2, + 0xce, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, + 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, + 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, 0xba, + 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, + 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, + 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, + 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, + 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, + 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, + 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, 0xba, + 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xb0, 0x45, 0xbf, + 0xb9, 0xce, 0x2b, 0xf6, 0x0c, 0x84, 0x68, 0x67, + 0xf8, 0xb4, 0x7e, 0xf4, 0xe8, 0xff, 0x00, 0x19, + 0x65, 0x3f, 0x6f, 0x7f, 0xd4, 0xa9, 0x93, 0x5f, + 0x1f, 0xf1, 0xdf, 0x09, 0xc5, 0x5c, 0x70, 0x63, + 0xfb, 0x07, 0x0b, 0x66, 0x0b, 0x1f, 0x46, 0xc4, + 0x85, 0xab, 0x56, 0x7b, 0x63, 0xd3, 0x11, 0xe3, + 0x5b, 0x2e, 0xd5, 0xd0, 0x26, 0xfd, 0xd4, 0xa1, + 0x03, 0xfc, 0x0d, 0x64, 0x3d, 0x8b, 0x27, 0xd9, + 0x63, 0xd9, 0x42, 0x31, 0x15, 0x38, 0x6d, 0x59, + 0xa0, 0xc8, 0xc7, 0x14, 0x5c, 0xf0, 0x89, 0x3d, + 0x94, 0xa9, 0xd9, 0x95, 0x17, 0xb6, 0x76, 0x6e, + 0x97, 0x35, 0x92, 0x1e, 0xe4, 0xf3, 0xf2, 0xc0, + 0xf8, 0xdb, 0xef, 0x33, 0xec, 0x95, 0x96, 0x57, + 0xb2, 0x17, 0x1e, 0xf1, 0x25, 0x87, 0x70, 0x07, + 0x13, 0x85, 0x68, 0xe2, 0x2c, 0xe3, 0xad, 0x46, + 0x32, 0xc5, 0x6c, 0x4d, 0xcb, 0x69, 0xbf, 0x8e, + 0x20, 0xe4, 0x65, 0x5b, 0xcb, 0x62, 0x86, 0x02, + 0xc2, 0xc8, 0x58, 0x11, 0xde, 0x05, 0x05, 0xb4, + 0xe9, 0xdc, 0x3b, 0xc5, 0xd9, 0xcc, 0xb6, 0x65, + 0x1c, 0x67, 0xc2, 0xb5, 0xb8, 0x9b, 0x86, 0xdf, + 0x98, 0xc8, 0xdd, 0xc8, 0x48, 0xce, 0x36, 0xf5, + 0xda, 0x56, 0x57, 0x50, 0xef, 0x3d, 0xd2, 0xa8, + 0x64, 0x86, 0x45, 0x76, 0x05, 0x73, 0x1d, 0x56, + 0x63, 0x54, 0x52, 0x3b, 0x0c, 0x4c, 0x71, 0x47, + 0x12, 0x89, 0x40, 0xdc, 0xa7, 0x8d, 0x62, 0x71, + 0x51, 0x3b, 0x4f, 0x36, 0x62, 0xfe, 0xd4, 0xb1, + 0x9e, 0x2c, 0xfb, 0xb1, 0x55, 0xb7, 0xae, 0xcb, + 0x43, 0xee, 0xa1, 0x0d, 0xd7, 0xb2, 0x86, 0x33, + 0x8b, 0x73, 0x59, 0x9c, 0xbd, 0xec, 0x35, 0xae, + 0x12, 0xad, 0xd3, 0xcc, 0x65, 0x2f, 0xe4, 0xa6, + 0x83, 0x58, 0xbe, 0x25, 0x9b, 0x4a, 0x4f, 0x6e, + 0x73, 0x7b, 0x39, 0x91, 0x2d, 0x41, 0x66, 0x17, + 0x03, 0xce, 0x68, 0x08, 0x3e, 0x6e, 0x90, 0x6c, + 0x1c, 0x2b, 0xc1, 0xd1, 0xd7, 0xe3, 0xce, 0x26, + 0xa5, 0x7d, 0xb4, 0x20, 0x24, 0x77, 0xc1, 0xe0, + 0xe9, 0x21, 0xcd, 0xcb, 0xf1, 0x25, 0x89, 0x9f, + 0x15, 0x01, 0x5a, 0xba, 0x5e, 0xaa, 0x0c, 0x67, + 0x71, 0xdb, 0x13, 0x35, 0x0b, 0xce, 0x99, 0xa4, + 0xb8, 0x4f, 0x21, 0x95, 0xbf, 0x77, 0x27, 0x7d, + 0xe5, 0x9e, 0xeb, 0xdd, 0xc8, 0xda, 0x7d, 0xdb, + 0x6e, 0xe9, 0xf1, 0x26, 0x5d, 0x4b, 0xea, 0xd9, + 0xb2, 0x6c, 0x73, 0x3a, 0x6a, 0x00, 0x50, 0x73, + 0x1c, 0xf2, 0x2c, 0x04, 0x07, 0x61, 0x18, 0x8d, + 0x71, 0x27, 0x0c, 0x70, 0xa7, 0x12, 0x5d, 0xe0, + 0x9f, 0x63, 0x9e, 0x0a, 0xb5, 0x18, 0xec, 0xc6, + 0x6f, 0x0f, 0x12, 0x19, 0xcc, 0xee, 0x4b, 0x9d, + 0x8b, 0x65, 0x7a, 0xb6, 0xa1, 0x81, 0x35, 0xc4, + 0xd9, 0x5e, 0xd4, 0x56, 0x95, 0x18, 0x85, 0x5a, + 0xcb, 0x0b, 0x76, 0xd5, 0x69, 0xd6, 0x15, 0x54, + 0x2d, 0xe7, 0xfd, 0x8c, 0x3d, 0x92, 0xbd, 0x90, + 0x7e, 0xb9, 0xb1, 0xab, 0x3b, 0xc1, 0x8c, 0xe2, + 0x0c, 0xd0, 0x65, 0xf1, 0xf9, 0xee, 0x88, 0xc9, + 0x36, 0x9b, 0x10, 0x35, 0x2a, 0xaa, 0x2e, 0x58, + 0x5f, 0x37, 0x67, 0x37, 0xa6, 0xd2, 0x1a, 0xe8, + 0x04, 0x12, 0xab, 0xc3, 0x7b, 0x52, 0x6a, 0x71, + 0x77, 0x17, 0x61, 0xef, 0xf0, 0xc5, 0xfa, 0xb8, + 0xdb, 0x96, 0x73, 0xf4, 0x2f, 0xe3, 0xee, 0x52, + 0x6d, 0x79, 0xc5, 0x8b, 0x4a, 0xd5, 0xc4, 0x53, + 0xb2, 0xa0, 0xb3, 0x35, 0x2d, 0xa1, 0x3d, 0xba, + 0xac, 0x40, 0x9f, 0xb5, 0xb6, 0x12, 0x24, 0x66, + 0xb9, 0xd7, 0xb1, 0xd5, 0xec, 0x06, 0x33, 0x39, + 0xc2, 0x3e, 0xc7, 0x17, 0x38, 0xf3, 0x09, 0x42, + 0x96, 0x51, 0xef, 0x66, 0x3b, 0x23, 0xc6, 0x0f, + 0x9b, 0xa8, 0xeb, 0x19, 0x2d, 0x26, 0xb6, 0x78, + 0x10, 0x6a, 0x99, 0xae, 0x2b, 0x89, 0x58, 0xa9, + 0x61, 0x86, 0x53, 0x62, 0xc3, 0x5c, 0x1d, 0x96, + 0x96, 0x7f, 0x35, 0x89, 0xc5, 0x5b, 0xce, 0x65, + 0x31, 0xf8, 0xf7, 0xbb, 0x1b, 0x88, 0xa1, 0x56, + 0xc5, 0xcb, 0x37, 0xef, 0xce, 0xca, 0xa6, 0x80, + 0xad, 0x51, 0x6d, 0xb0, 0xc5, 0xcd, 0x86, 0x2c, + 0xac, 0x74, 0x96, 0x44, 0xba, 0xc2, 0xe6, 0xed, + 0xb0, 0x4e, 0xaa, 0x71, 0x2f, 0x1c, 0x7b, 0x29, + 0xfb, 0x24, 0xe2, 0x78, 0xb7, 0x35, 0x56, 0x32, + 0x1e, 0x0d, 0xc2, 0xe4, 0x67, 0x07, 0x8b, 0xe1, + 0xe2, 0xb2, 0x3d, 0x4a, 0xd4, 0x2c, 0x61, 0x0a, + 0xbf, 0xb7, 0xbe, 0xa8, 0xc8, 0x45, 0xe5, 0x4c, + 0xd1, 0xd8, 0xba, 0x95, 0x06, 0x20, 0xd5, 0xdb, + 0x59, 0xec, 0xa1, 0x4b, 0x8e, 0x2c, 0x86, 0x6f, + 0x29, 0xec, 0x45, 0x6f, 0x2a, 0x9b, 0x39, 0x94, + 0x08, 0xaa, 0x73, 0x58, 0xfc, 0x72, 0x32, 0x0c, + 0x8e, 0xaf, 0x2c, 0x0a, 0xfb, 0x50, 0x9e, 0x2e, + 0xc0, 0xc3, 0xf7, 0x82, 0x7a, 0x5c, 0x8e, 0xa4, + 0x4b, 0x94, 0xc7, 0xbc, 0x7d, 0x90, 0xf8, 0xd3, + 0xd9, 0x27, 0x8d, 0xb0, 0x07, 0x9f, 0x6d, 0x8b, + 0x1c, 0x3b, 0x83, 0xe0, 0xdc, 0xa8, 0xe1, 0x68, + 0x62, 0xb1, 0xa9, 0xb2, 0xd4, 0x21, 0x96, 0x52, + 0x28, 0x62, 0xed, 0xcb, 0x8d, 0x44, 0x4a, 0x4c, + 0x82, 0xcb, 0xb2, 0x40, 0xb5, 0xf6, 0x5a, 0xdb, + 0x52, 0x35, 0xb8, 0xdb, 0xd8, 0xb7, 0x8e, 0x2f, + 0xaf, 0x31, 0xc4, 0x5c, 0x0b, 0x62, 0xa3, 0x29, + 0xe7, 0x61, 0x42, 0x87, 0x66, 0xb0, 0x59, 0x15, + 0x05, 0x8a, 0x56, 0x2d, 0x28, 0x67, 0x6e, 0xd2, + 0x08, 0x7d, 0x46, 0xc9, 0xc4, 0x73, 0x74, 0xee, + 0x02, 0xdc, 0x6c, 0x62, 0xba, 0xac, 0xab, 0x8a, + 0xe1, 0xe4, 0x78, 0x47, 0x8e, 0xf8, 0xb1, 0xac, + 0xc5, 0x70, 0x9e, 0x30, 0x36, 0x22, 0x8b, 0x12, + 0x31, 0xda, 0x72, 0xf6, 0xa3, 0xbe, 0x02, 0x8e, + 0x25, 0x25, 0xda, 0x0c, 0x8f, 0xda, 0xcd, 0xb0, + 0xb0, 0x61, 0x2d, 0x1d, 0xa1, 0xe9, 0xb7, 0x6f, + 0x3b, 0x95, 0xc8, 0x66, 0x32, 0x03, 0xc5, 0xf9, + 0xba, 0xe5, 0x6f, 0x25, 0x7a, 0xcd, 0xf7, 0xf4, + 0xd5, 0x53, 0x11, 0xca, 0x90, 0x75, 0xa6, 0x30, + 0xe1, 0x00, 0x66, 0xc2, 0x5a, 0x86, 0x61, 0x63, + 0x26, 0x72, 0x23, 0x12, 0x53, 0xbf, 0x1e, 0xe6, + 0x32, 0x37, 0x73, 0x59, 0x7f, 0x63, 0xca, 0x9c, + 0x7b, 0x95, 0xe1, 0xac, 0xed, 0x4b, 0x17, 0x6d, + 0xdd, 0xa7, 0x84, 0xad, 0x90, 0xc9, 0xe4, 0x27, + 0x1b, 0x62, 0x85, 0x66, 0xb5, 0xa1, 0x44, 0xe9, + 0xf6, 0x36, 0x9d, 0x70, 0x42, 0xc1, 0x2f, 0xae, + 0x87, 0x63, 0xbd, 0xae, 0x5e, 0x82, 0x0c, 0xa5, + 0xfa, 0x36, 0x60, 0xd6, 0xdc, 0x0d, 0xfb, 0x94, + 0xed, 0xd6, 0x67, 0x71, 0x01, 0xe3, 0x9a, 0xea, + 0xf6, 0x6b, 0xb9, 0x73, 0xf7, 0x62, 0x41, 0xaa, + 0x68, 0x17, 0xf8, 0x24, 0x33, 0xe4, 0x9d, 0x3f, + 0x8b, 0xb8, 0xab, 0x29, 0x92, 0xc9, 0xc6, 0x26, + 0xe7, 0x13, 0xdd, 0xbd, 0x7b, 0x21, 0x71, 0xf9, + 0x0b, 0xc5, 0x53, 0x1f, 0xca, 0xde, 0x90, 0xbe, + 0xe3, 0x58, 0xc2, 0xd8, 0x06, 0x41, 0x0b, 0x96, + 0x72, 0x41, 0x16, 0xd1, 0xb6, 0xf3, 0xa6, 0x71, + 0xc7, 0x19, 0x71, 0x97, 0x10, 0xf0, 0x77, 0x07, + 0xe4, 0x5f, 0x68, 0x38, 0x6b, 0x84, 0xb8, 0x3a, + 0xdf, 0x82, 0x98, 0xea, 0x35, 0xdc, 0x75, 0xe2, + 0xdd, 0xeb, 0xc6, 0x2f, 0x96, 0xaa, 0x5a, 0xa6, + 0x2a, 0x7b, 0x45, 0x7b, 0x0c, 0xbc, 0xc0, 0x65, + 0x94, 0x95, 0x0a, 0xf1, 0x58, 0x0f, 0x13, 0xc5, + 0x1e, 0xc7, 0x5c, 0x43, 0xc6, 0x9c, 0x7d, 0xc3, + 0xc3, 0x7e, 0xb5, 0x3e, 0x21, 0xe0, 0x6c, 0xdb, + 0x5d, 0xc4, 0x37, 0x8e, 0xb3, 0xcf, 0x90, 0x5d, + 0x8a, 0x8a, 0xd5, 0xe0, 0xe0, 0x26, 0x4e, 0x55, + 0x3d, 0x96, 0xaa, 0xac, 0x54, 0x7c, 0xd7, 0xb0, + 0x6c, 0xb7, 0x5c, 0x9c, 0x35, 0xfd, 0x88, 0x69, + 0xe2, 0x33, 0x9c, 0x43, 0xc3, 0x21, 0xc4, 0xdc, + 0x4e, 0xca, 0x17, 0x99, 0x89, 0xbd, 0x77, 0x11, + 0x7e, 0x2b, 0x5e, 0x1c, 0x38, 0x40, 0x58, 0x05, + 0x1a, 0x67, 0xaf, 0x5a, 0x2c, 0x1c, 0x8a, 0x6c, + 0x81, 0x74, 0x5d, 0xcf, 0x12, 0x11, 0x32, 0x71, + 0x33, 0xd1, 0xf6, 0x6b, 0xf6, 0x5e, 0x06, 0xc7, + 0xd8, 0xcd, 0x9c, 0x46, 0xc7, 0x00, 0x9f, 0xf0, + 0x48, 0xd5, 0xcc, 0xae, 0xa0, 0xc4, 0xfb, 0xa0, + 0xea, 0x07, 0x34, 0x77, 0x73, 0x47, 0x97, 0x5c, + 0x69, 0xec, 0x3d, 0xc7, 0x39, 0x6f, 0xae, 0x6c, + 0x87, 0x0a, 0xd6, 0x4e, 0x63, 0x15, 0xc4, 0x52, + 0xbe, 0x47, 0x5b, 0xc4, 0x9b, 0x31, 0x8b, 0xe9, + 0x5b, 0xf2, 0xcf, 0x39, 0xab, 0x2f, 0x8e, 0x78, + 0x03, 0x4d, 0xce, 0x4b, 0x26, 0xea, 0x0e, 0xc5, + 0x91, 0x5a, 0xdb, 0xae, 0x28, 0xcb, 0xe5, 0x3d, + 0x95, 0x7d, 0x93, 0x71, 0x4c, 0xc6, 0xf1, 0x55, + 0xfc, 0x4a, 0x2b, 0xe2, 0xb8, 0x9e, 0xe4, 0x57, + 0xec, 0xeb, 0x5a, 0x5e, 0x33, 0x31, 0x65, 0x8e, + 0x28, 0x28, 0x97, 0xc8, 0x6c, 0x33, 0x03, 0xc8, + 0x23, 0xdd, 0xa2, 0xe3, 0xae, 0x11, 0xf6, 0x48, + 0xe2, 0x0e, 0x34, 0xc3, 0x61, 0x65, 0x4f, 0xcf, + 0xf0, 0xc7, 0x18, 0x34, 0xaf, 0x9b, 0x71, 0x81, + 0x22, 0x0f, 0x72, 0x6d, 0x13, 0x18, 0x2c, 0x01, + 0x82, 0xdd, 0xd0, 0xa5, 0x52, 0xb5, 0x5c, 0x3f, + 0x7c, 0x29, 0xd6, 0x48, 0x08, 0x35, 0xc1, 0x9c, + 0x4d, 0x87, 0xe3, 0x2e, 0x31, 0xe0, 0xfa, 0x4f, + 0xa5, 0x63, 0x20, 0x11, 0xc2, 0xf9, 0x49, 0xc7, + 0x3a, 0xc1, 0xdf, 0x8a, 0xa9, 0xb1, 0x4b, 0x29, + 0x21, 0x1b, 0x3d, 0x98, 0x8b, 0x74, 0x1f, 0x55, + 0x73, 0x1e, 0x28, 0xb4, 0xad, 0x10, 0x6e, 0x2c, + 0x89, 0xd7, 0xb1, 0xff, 0x00, 0xb1, 0xed, 0x6f, + 0x65, 0x8f, 0x65, 0x07, 0x63, 0x78, 0xba, 0x8b, + 0x6d, 0x5d, 0xba, 0xfe, 0x28, 0xb9, 0xdb, 0xab, + 0x10, 0x3b, 0x20, 0xb8, 0x1a, 0xbc, 0x8c, 0x14, + 0x72, 0xed, 0x4c, 0x26, 0x7a, 0xaa, 0x39, 0xdc, + 0x8b, 0xbf, 0xc9, 0xb2, 0xb3, 0x87, 0xec, 0x91, + 0xec, 0x87, 0xc4, 0xd0, 0xaa, 0xf6, 0x91, 0xe0, + 0xae, 0x23, 0xcd, 0x95, 0xec, 0x5b, 0x3b, 0x4a, + 0xa5, 0x5d, 0x66, 0x57, 0x98, 0xf1, 0x9a, 0x8d, + 0xf9, 0xd2, 0x5f, 0xc0, 0x38, 0x89, 0xfe, 0xd6, + 0xc4, 0x72, 0x3c, 0xcd, 0x5c, 0x9c, 0xfd, 0x35, + 0xf3, 0x44, 0x73, 0x84, 0x30, 0x7b, 0xf7, 0xff, + 0x00, 0x04, 0xa3, 0x5f, 0x61, 0xb5, 0xf9, 0x9f, + 0xf7, 0xb5, 0xf6, 0x1b, 0x5f, 0x99, 0xff, 0x00, + 0x7b, 0x5f, 0x61, 0xb5, 0xf9, 0x9f, 0xf7, 0xb5, + 0xf6, 0x1b, 0x5f, 0x99, 0xff, 0x00, 0x7b, 0x5f, + 0x61, 0xb5, 0xf9, 0x9f, 0xf7, 0xb5, 0xf6, 0x1b, + 0x5f, 0x99, 0xff, 0x00, 0x7b, 0x5f, 0x61, 0xb5, + 0xf9, 0x9f, 0xf7, 0xb5, 0xf6, 0x1b, 0x5f, 0x99, + 0xff, 0x00, 0x7b, 0x5f, 0x61, 0xb5, 0xf9, 0x9f, + 0xf7, 0xb5, 0xf6, 0x1b, 0x5f, 0x99, 0xff, 0x00, + 0x7b, 0x5f, 0x61, 0xb5, 0xf9, 0x9f, 0xf7, 0xb5, + 0xf6, 0x1b, 0x5f, 0x99, 0xff, 0x00, 0x7b, 0x5f, + 0x61, 0xb5, 0xf9, 0x9f, 0xf7, 0xb5, 0xf6, 0x1b, + 0x5f, 0x99, 0xff, 0x00, 0x7b, 0x5f, 0x61, 0xb5, + 0xf9, 0x9f, 0xf7, 0xb4, 0xc1, 0x5a, 0x2d, 0x14, + 0xaa, 0x62, 0x19, 0x10, 0x9f, 0x73, 0x33, 0x1b, + 0xc4, 0x4f, 0x8d, 0xf7, 0xb5, 0xf6, 0xad, 0xcf, + 0xcc, 0x7f, 0xbd, 0xaf, 0xb5, 0x6e, 0x7e, 0x63, + 0xfd, 0xed, 0x7d, 0xab, 0x73, 0xf3, 0x1f, 0xef, + 0x6b, 0xed, 0x5b, 0x9f, 0x98, 0xff, 0x00, 0x7b, + 0x5f, 0x6a, 0xdc, 0xfc, 0xc7, 0xfb, 0xda, 0x23, + 0x3a, 0xd7, 0x04, 0x00, 0x64, 0xca, 0x65, 0x1d, + 0xd0, 0x23, 0x1b, 0xcc, 0xcf, 0x8d, 0xf7, 0x23, + 0x42, 0x63, 0x5a, 0xe4, 0x89, 0x8c, 0x10, 0xcc, + 0x23, 0xba, 0x44, 0xa3, 0x78, 0x9f, 0x75, 0xf7, + 0x63, 0x5f, 0x6a, 0xdc, 0xfc, 0xc7, 0xfb, 0xda, + 0xfb, 0x56, 0xe7, 0xe6, 0x3f, 0xde, 0xd7, 0xda, + 0xb7, 0x3f, 0x31, 0xfe, 0xf6, 0xbe, 0xd5, 0xb9, + 0xf9, 0x8f, 0xf7, 0xb5, 0xf6, 0xad, 0xcf, 0xcc, + 0x7f, 0xbd, 0xa5, 0xa6, 0x55, 0x61, 0x64, 0xde, + 0x7e, 0x4e, 0xaa, 0xb9, 0x46, 0x79, 0x06, 0x4c, + 0xbb, 0xf7, 0xff, 0x00, 0x06, 0x35, 0x84, 0xfc, + 0x76, 0xaf, 0xd8, 0x6f, 0xe8, 0x3d, 0xe8, 0xd1, + 0xfb, 0xd3, 0xa3, 0xfc, 0x65, 0x94, 0xfd, 0xbd, + 0xff, 0x00, 0x57, 0x37, 0xfe, 0x81, 0xd5, 0xfe, + 0x48, 0xc5, 0x6b, 0xd9, 0x03, 0xfd, 0x06, 0xe2, + 0xef, 0xff, 0x00, 0x77, 0xb2, 0x3a, 0xf6, 0x06, + 0xf6, 0x59, 0xa8, 0xa2, 0x27, 0x70, 0x36, 0x72, + 0xcd, 0x5c, 0xb7, 0x48, 0x63, 0xa9, 0x63, 0x87, + 0x33, 0x79, 0x6b, 0xa9, 0xbe, 0x89, 0x2f, 0x78, + 0x0e, 0xba, 0x24, 0xbc, 0x44, 0x9e, 0x41, 0xa7, + 0xee, 0x8b, 0x69, 0xf6, 0x2a, 0xf6, 0x39, 0xae, + 0xd0, 0xb7, 0x8b, 0x75, 0xaf, 0xfe, 0x71, 0xf8, + 0x86, 0x03, 0x63, 0x4b, 0xf0, 0x18, 0x78, 0x3f, + 0x03, 0xad, 0xa3, 0x3e, 0x29, 0xd5, 0xcc, 0xdc, + 0xeb, 0xa0, 0xbc, 0x85, 0x0b, 0x88, 0x31, 0xf7, + 0x5a, 0xff, 0x00, 0xe5, 0x47, 0xc5, 0x79, 0xa2, + 0x67, 0x61, 0xc4, 0xf1, 0x36, 0x1a, 0xc3, 0x01, + 0x43, 0xce, 0xfb, 0x2e, 0x65, 0xde, 0x2c, 0x4d, + 0x5a, 0xa9, 0x8f, 0x27, 0x5a, 0xdd, 0xa6, 0xa6, + 0xb8, 0x11, 0xc8, 0xac, 0x09, 0x9d, 0x46, 0x98, + 0x28, 0x4c, 0xe3, 0x8e, 0xfd, 0x90, 0xf8, 0xcb, + 0x8e, 0xb8, 0x45, 0x9e, 0xc8, 0x9c, 0x79, 0x82, + 0xcc, 0x2d, 0x58, 0xcf, 0xae, 0x0c, 0x79, 0xb3, + 0x86, 0xf0, 0x65, 0x8f, 0x78, 0x62, 0x38, 0x5e, + 0x92, 0xa5, 0xfc, 0xe3, 0x60, 0xb6, 0x51, 0x5c, + 0x81, 0x05, 0x99, 0xb7, 0xa1, 0x5a, 0x55, 0xd5, + 0x4b, 0xdb, 0x67, 0x86, 0xf8, 0x6a, 0xbe, 0x6b, + 0x18, 0xde, 0x22, 0xa6, 0x8e, 0x22, 0xb1, 0x6b, + 0x08, 0xbb, 0xa8, 0x3c, 0xa5, 0x64, 0xb3, 0x88, + 0xb2, 0x8c, 0x5b, 0x9f, 0x4a, 0x0f, 0xae, 0xb5, + 0x98, 0x58, 0xae, 0x62, 0x64, 0x11, 0x12, 0x2e, + 0x5c, 0xf9, 0x0e, 0x35, 0xc6, 0xb5, 0x5f, 0xb4, + 0x65, 0xeb, 0xfb, 0x22, 0xe5, 0xfc, 0x26, 0x33, + 0xf6, 0x68, 0x82, 0xc5, 0xe1, 0xd6, 0x89, 0x64, + 0x6d, 0x13, 0x03, 0xda, 0x11, 0x90, 0x10, 0x19, + 0xdf, 0x63, 0x17, 0xf9, 0x37, 0xdb, 0x53, 0x33, + 0xdd, 0x11, 0xdf, 0x33, 0x3e, 0x48, 0x88, 0xfb, + 0xba, 0x3b, 0x18, 0xac, 0x8e, 0x2b, 0x3d, 0x8d, + 0x6f, 0x52, 0xb3, 0x5d, 0x8f, 0xb7, 0x4f, 0x29, + 0x45, 0x93, 0xb7, 0x2b, 0xab, 0x34, 0xeb, 0xb1, + 0xe8, 0x29, 0xe5, 0x2e, 0x57, 0x21, 0x9d, 0xfb, + 0x17, 0x2b, 0x03, 0xbf, 0x5e, 0xc2, 0xd1, 0x11, + 0xb4, 0x47, 0xb2, 0x7e, 0x1e, 0x22, 0x22, 0x36, + 0x88, 0x88, 0x65, 0x48, 0x88, 0x88, 0xf2, 0x44, + 0x44, 0x77, 0x44, 0x47, 0x74, 0x46, 0xa7, 0xdf, + 0x9d, 0x2f, 0x80, 0xb8, 0x0e, 0xa4, 0xf1, 0x2f, + 0xb2, 0x7e, 0x64, 0x7a, 0x14, 0x71, 0x95, 0x76, + 0x72, 0x70, 0x10, 0xf5, 0xf3, 0xf8, 0x4f, 0x32, + 0x51, 0x3d, 0x34, 0xcd, 0x74, 0x4f, 0x6c, 0x0a, + 0xcf, 0x25, 0x88, 0xa6, 0x06, 0xed, 0xe2, 0x4d, + 0x1d, 0xa5, 0xfc, 0x45, 0xc2, 0x99, 0x7b, 0xe7, + 0x7f, 0x3d, 0xc7, 0x75, 0x72, 0x65, 0xc6, 0x19, + 0x91, 0xdc, 0xba, 0xb7, 0xb2, 0xd4, 0xdf, 0x50, + 0x82, 0xaf, 0x3c, 0x6f, 0x28, 0xc7, 0xae, 0xc9, + 0xc2, 0xd8, 0xc8, 0xe7, 0xb3, 0x64, 0xac, 0x5b, + 0x91, 0x54, 0x3c, 0x2b, 0x21, 0x3e, 0xc7, 0x5c, + 0x47, 0xec, 0x59, 0xc5, 0x5c, 0x57, 0xe0, 0x53, + 0xb1, 0x57, 0x87, 0x38, 0x87, 0x84, 0xd0, 0x37, + 0x31, 0xb7, 0xe8, 0x31, 0xe6, 0xfa, 0xea, 0xc8, + 0x5a, 0x91, 0xec, 0xf8, 0xf1, 0x4c, 0xb4, 0x80, + 0x2d, 0x39, 0xb0, 0xc1, 0xaf, 0xd3, 0x4b, 0xa9, + 0xc1, 0xd7, 0x27, 0x3b, 0xd9, 0x73, 0x8b, 0x7d, + 0x90, 0x66, 0xb5, 0x2b, 0x54, 0xf8, 0x11, 0x39, + 0xfe, 0x21, 0xa7, 0x8e, 0x92, 0xb8, 0xac, 0x32, + 0x1e, 0xac, 0x0d, 0xdc, 0x66, 0x1c, 0x5d, 0x00, + 0x3d, 0xaa, 0xd5, 0x0c, 0x30, 0x55, 0xa7, 0xcc, + 0xb1, 0x91, 0xb0, 0xf8, 0x99, 0x03, 0x67, 0xbb, + 0x2e, 0x22, 0xf6, 0x59, 0xe3, 0xde, 0x35, 0xe1, + 0x1a, 0x3c, 0x4f, 0x9c, 0xad, 0x77, 0x17, 0xc2, + 0x9c, 0x39, 0x67, 0x3f, 0x8d, 0xeb, 0xf0, 0x87, + 0x0b, 0x04, 0x35, 0x68, 0xa9, 0xd2, 0x27, 0xee, + 0x9c, 0x9e, 0x4b, 0xdd, 0x5b, 0x2e, 0x51, 0x7c, + 0x81, 0x1c, 0xb3, 0x92, 0x6f, 0x3e, 0xb2, 0xec, + 0xf0, 0xe4, 0xe6, 0xb1, 0x9f, 0x5c, 0x16, 0x38, + 0xb7, 0x88, 0x6f, 0xa3, 0x0b, 0xdb, 0x51, 0xe1, + 0x37, 0x52, 0xec, 0x78, 0xb2, 0xed, 0x6b, 0xa5, + 0xcf, 0xd7, 0x2a, 0xfc, 0xa9, 0x6c, 0xf5, 0x60, + 0x39, 0x36, 0x59, 0xf7, 0xf8, 0xb3, 0xb7, 0xff, + 0x00, 0x29, 0xde, 0x1b, 0xcd, 0xa2, 0x2c, 0xe2, + 0xf3, 0x1c, 0x55, 0x62, 0xa5, 0xa5, 0xf7, 0x73, + 0x44, 0x4e, 0x5f, 0x3a, 0x4b, 0x7a, 0xa6, 0x77, + 0xe4, 0xb1, 0x55, 0xc2, 0xbb, 0x35, 0x9b, 0xe5, + 0x55, 0x85, 0x2d, 0x83, 0xde, 0x31, 0xae, 0x31, + 0xf6, 0x06, 0xe3, 0x7b, 0x5c, 0xf7, 0x71, 0x38, + 0x5c, 0xdd, 0xce, 0x02, 0xc9, 0xba, 0x4a, 0x03, + 0x35, 0x80, 0x2a, 0x17, 0x1f, 0x14, 0xeb, 0x19, + 0xfb, 0xae, 0x92, 0x41, 0xb6, 0xaa, 0x27, 0x79, + 0x9a, 0xf0, 0xac, 0x8e, 0x3b, 0x78, 0xf0, 0x7a, + 0xd5, 0xae, 0x2b, 0x0a, 0x90, 0x52, 0xd8, 0xb5, + 0x97, 0x69, 0x72, 0xc6, 0xf3, 0xd9, 0x93, 0x9b, + 0xc5, 0xba, 0xec, 0xf7, 0x7f, 0x06, 0x29, 0x83, + 0xe4, 0xbe, 0xf0, 0xef, 0x33, 0xdd, 0xaf, 0x63, + 0xa2, 0xa5, 0x21, 0x28, 0xfa, 0xcd, 0xe1, 0xf5, + 0xcf, 0x4f, 0xdc, 0xf6, 0xa4, 0xe3, 0x50, 0x9b, + 0xf1, 0x3b, 0x6d, 0xed, 0x83, 0x90, 0x5d, 0xa1, + 0x74, 0xfd, 0xd6, 0xc1, 0xce, 0x9d, 0x91, 0xcb, + 0x64, 0x29, 0x62, 0xf1, 0xf5, 0xf9, 0x3b, 0x45, + 0xfc, 0x8d, 0xa4, 0x52, 0xa4, 0x8e, 0xab, 0x01, + 0x2b, 0x97, 0xda, 0xb2, 0x6b, 0x42, 0xa0, 0xda, + 0xc0, 0x58, 0xcb, 0x0c, 0x62, 0x4c, 0xc4, 0x7c, + 0xb3, 0xaf, 0x61, 0x9b, 0xbc, 0x3f, 0xd8, 0xb2, + 0x17, 0x4f, 0x8c, 0x1d, 0x63, 0x0d, 0xce, 0xd8, + 0x6e, 0x3a, 0xed, 0x99, 0x8c, 0x2b, 0x28, 0x73, + 0xbd, 0x0e, 0x5c, 0x1d, 0x47, 0xb7, 0xa7, 0xcc, + 0xc4, 0xd8, 0x0e, 0x65, 0x14, 0x90, 0x34, 0x7b, + 0x8b, 0x52, 0x91, 0xe0, 0xef, 0x62, 0xda, 0x44, + 0x71, 0x31, 0x16, 0xa1, 0xf9, 0x02, 0x94, 0xcf, + 0xf8, 0x71, 0x0d, 0xe2, 0x7b, 0x4a, 0x99, 0xfb, + 0x9b, 0x1d, 0x76, 0x8f, 0x7f, 0xb9, 0xd7, 0x11, + 0xf1, 0x9f, 0x1c, 0xe6, 0x6b, 0xe7, 0xb8, 0xf3, + 0x8c, 0x1c, 0x8f, 0x09, 0x59, 0xa8, 0x33, 0x15, + 0x28, 0xd1, 0x49, 0x01, 0x2e, 0x8a, 0x0a, 0x54, + 0x88, 0x2d, 0xc9, 0x69, 0xe7, 0x85, 0x21, 0x55, + 0x90, 0x9a, 0x94, 0xeb, 0x56, 0x1e, 0x44, 0xc9, + 0x9f, 0x1c, 0xff, 0x00, 0xa7, 0xd9, 0x3f, 0xd9, + 0x29, 0x6b, 0x8e, 0x4e, 0xcc, 0xc4, 0x26, 0x38, + 0x47, 0x88, 0x60, 0xa6, 0x7c, 0x9c, 0xc5, 0x8a, + 0xb4, 0x0b, 0xff, 0x00, 0x5a, 0x41, 0xff, 0x00, + 0x3e, 0xb8, 0x6b, 0xad, 0x05, 0x10, 0x76, 0xb3, + 0x66, 0x8d, 0xfe, 0xea, 0x3c, 0x2d, 0x68, 0x62, + 0x47, 0xfc, 0x5e, 0xa8, 0xb6, 0x3d, 0xf8, 0x9d, + 0x7b, 0x09, 0xfe, 0x28, 0xb1, 0xfb, 0x5e, 0x73, + 0xfb, 0x66, 0x4b, 0xfc, 0xaa, 0x9f, 0xb2, 0x2b, + 0x5c, 0x35, 0xc3, 0x14, 0x38, 0x8f, 0x84, 0x42, + 0x97, 0x16, 0x47, 0x11, 0x58, 0xa8, 0xdb, 0x3c, + 0x15, 0x7a, 0xc5, 0x8c, 0x4d, 0x7c, 0x25, 0x60, + 0xb6, 0xba, 0xef, 0x21, 0xe2, 0xc4, 0x0e, 0x49, + 0xae, 0x16, 0x42, 0x8a, 0xc0, 0x8d, 0x18, 0x12, + 0x1e, 0xa7, 0x46, 0x77, 0xe4, 0x8b, 0x58, 0x3c, + 0xb5, 0xa7, 0x36, 0xce, 0x21, 0x98, 0xda, 0x79, + 0xec, 0x8d, 0x60, 0xa0, 0xaa, 0x34, 0x2e, 0xe4, + 0x61, 0x70, 0xa8, 0xec, 0x96, 0x72, 0x61, 0x95, + 0xb2, 0x1b, 0x98, 0xb1, 0xfe, 0x0a, 0xa3, 0x94, + 0x0c, 0x78, 0x1c, 0x45, 0xa7, 0x0f, 0x29, 0x4e, + 0xb2, 0x55, 0x5b, 0x88, 0xe2, 0x77, 0xd7, 0xc4, + 0x71, 0x2d, 0x7e, 0x13, 0xbd, 0x94, 0xa9, 0x8d, + 0xab, 0x63, 0x1e, 0x19, 0xab, 0x80, 0xb3, 0xa5, + 0x59, 0x52, 0x39, 0x18, 0xb7, 0x67, 0xb5, 0xf5, + 0x42, 0x15, 0xd9, 0xea, 0x32, 0x46, 0x64, 0x7a, + 0xc2, 0xb8, 0x62, 0xe4, 0x98, 0x6e, 0xc4, 0x71, + 0x32, 0xf2, 0x08, 0xe2, 0xd4, 0x70, 0x55, 0x9c, + 0x17, 0x83, 0x6b, 0x37, 0x30, 0x8c, 0xed, 0xba, + 0xb3, 0x72, 0xaa, 0xa5, 0x28, 0xc8, 0x32, 0xb3, + 0x52, 0xf4, 0x47, 0x30, 0xba, 0xbd, 0xb6, 0xf2, + 0xef, 0xed, 0x82, 0x1b, 0x16, 0xd9, 0x27, 0x65, + 0x13, 0x96, 0xc5, 0x64, 0xf1, 0x39, 0xaa, 0x5c, + 0x3d, 0x6f, 0x87, 0xb2, 0x15, 0xe9, 0x57, 0xcb, + 0x8e, 0x53, 0x24, 0xa9, 0xb1, 0x41, 0x50, 0x73, + 0x90, 0x9c, 0x47, 0x67, 0xb3, 0x5a, 0x0a, 0xc7, + 0x6f, 0x3c, 0xa8, 0x51, 0x52, 0x46, 0x49, 0xf6, + 0x15, 0xdd, 0xbe, 0x35, 0xd8, 0xfa, 0xb9, 0x9c, + 0x95, 0xbc, 0x9f, 0x11, 0x5b, 0xe1, 0x55, 0xe2, + 0xf1, 0xe8, 0xc6, 0xdb, 0xba, 0x9c, 0xe5, 0x4a, + 0x7d, 0xb8, 0xaa, 0xb5, 0x8a, 0xca, 0x4e, 0x34, + 0xd4, 0xda, 0xfc, 0xa6, 0x9b, 0xb5, 0x32, 0x16, + 0x69, 0x9c, 0x17, 0x37, 0x5c, 0x44, 0x18, 0x41, + 0x8e, 0xc6, 0xe7, 0x70, 0xfc, 0x45, 0x8b, 0x1c, + 0x95, 0xec, 0x7e, 0x32, 0xbe, 0x42, 0xdd, 0x5c, + 0x70, 0x53, 0x2b, 0xf9, 0x18, 0x57, 0x22, 0x52, + 0x1e, 0x15, 0xed, 0xf7, 0x97, 0x5d, 0x8e, 0x04, + 0x5c, 0xbd, 0x8d, 0xa5, 0x77, 0x1f, 0x5d, 0xd3, + 0xca, 0x56, 0xf6, 0xd8, 0xa6, 0xed, 0x8c, 0xd7, + 0x0d, 0xe5, 0xb0, 0xea, 0x0f, 0x64, 0x4f, 0xfe, + 0x6f, 0x31, 0xf2, 0x13, 0x4e, 0xec, 0x58, 0xbe, + 0x6e, 0xec, 0xea, 0x65, 0xa2, 0x1b, 0x81, 0x29, + 0x35, 0xb4, 0x4c, 0xaf, 0x0a, 0xd4, 0x69, 0xae, + 0x06, 0x91, 0xae, 0xdb, 0xa5, 0xd4, 0x28, 0xcd, + 0x8b, 0xea, 0x66, 0x9e, 0xcc, 0x0f, 0x15, 0x62, + 0x78, 0x3e, 0xd2, 0xaa, 0x52, 0x43, 0x58, 0xfc, + 0xbe, 0x65, 0x1d, 0x7a, 0x5d, 0x8c, 0x4a, 0xe2, + 0xfa, 0xd5, 0xe4, 0x76, 0x03, 0x61, 0x4a, 0x8e, + 0x19, 0x30, 0x30, 0xa2, 0x89, 0xdf, 0x47, 0x8e, + 0xcc, 0x23, 0x27, 0x4e, 0xed, 0x2a, 0x94, 0xae, + 0xe6, 0xeb, 0x32, 0x70, 0xb0, 0xfc, 0x0a, 0xb2, + 0x07, 0xb5, 0x70, 0xb8, 0x99, 0xcc, 0xc3, 0x6f, + 0x59, 0xe4, 0xd9, 0xee, 0xad, 0x81, 0x0c, 0xc3, + 0x90, 0x99, 0x83, 0x68, 0x8e, 0xfb, 0x69, 0xb8, + 0x1c, 0x35, 0x5c, 0xbd, 0xd2, 0x4d, 0xeb, 0x78, + 0xe6, 0x64, 0x14, 0x8a, 0x25, 0x55, 0x4f, 0xa4, + 0x02, 0x6e, 0x65, 0x8a, 0x81, 0x91, 0x2c, 0xe5, + 0x4a, 0x33, 0xce, 0x20, 0xac, 0x95, 0xbc, 0x42, + 0x28, 0x34, 0xe6, 0x20, 0x6c, 0x6d, 0xdf, 0xfb, + 0x9c, 0xa7, 0xf9, 0xf5, 0x7e, 0xa6, 0x35, 0x9c, + 0xcb, 0xd4, 0x9a, 0x83, 0x6b, 0x1f, 0x8d, 0xb3, + 0x66, 0xb4, 0xde, 0x31, 0x5d, 0x4e, 0xb8, 0x0f, + 0xb5, 0xf5, 0xa4, 0x98, 0xa1, 0x98, 0xe6, 0x9f, + 0x15, 0x72, 0xd0, 0xea, 0x9f, 0x2a, 0xb9, 0xa3, + 0x9f, 0x7d, 0x71, 0x5d, 0x2c, 0x44, 0xe6, 0xb3, + 0x19, 0x0a, 0x78, 0x7e, 0x1b, 0xbb, 0x89, 0x8b, + 0xd8, 0x2a, 0x78, 0xfe, 0x25, 0x0b, 0x99, 0x9b, + 0x91, 0x4e, 0xf9, 0xaf, 0x0a, 0xda, 0x74, 0x17, + 0x67, 0x11, 0x4d, 0x7b, 0xdc, 0x55, 0xeb, 0x34, + 0xbb, 0x3a, 0x98, 0x16, 0xab, 0x1d, 0xab, 0x62, + 0x89, 0x91, 0xcc, 0xe3, 0x71, 0x8f, 0xca, 0xd8, + 0xe2, 0x6c, 0x71, 0xe3, 0x19, 0x62, 0x9f, 0x13, + 0x2b, 0x01, 0x2d, 0xad, 0x8e, 0xbf, 0x2c, 0xda, + 0xee, 0x37, 0xc0, 0xcb, 0xc7, 0x63, 0x2f, 0x4b, + 0x56, 0x9b, 0x11, 0x5d, 0x56, 0xee, 0x80, 0xf6, + 0x84, 0x1a, 0xde, 0xc4, 0x44, 0x40, 0xb3, 0x87, + 0xf8, 0x69, 0xa1, 0x8c, 0xa5, 0xc4, 0x19, 0x6a, + 0x79, 0xac, 0xa5, 0xcc, 0x91, 0xd7, 0x9b, 0x15, + 0xa9, 0x61, 0xf1, 0x16, 0x2a, 0xd7, 0x06, 0x0e, + 0x35, 0x37, 0x3a, 0x2c, 0xcc, 0xdd, 0x2c, 0x85, + 0x21, 0x2a, 0xc3, 0x90, 0x6e, 0x36, 0xa7, 0xef, + 0x96, 0xc3, 0xec, 0x40, 0x29, 0x07, 0x6d, 0x39, + 0xb6, 0xe3, 0x6d, 0xf4, 0x9c, 0x3d, 0x87, 0x21, + 0x41, 0x4c, 0xa8, 0x76, 0xea, 0x98, 0x41, 0x7e, + 0xfe, 0xc6, 0x99, 0xbc, 0x29, 0xda, 0x43, 0x79, + 0x95, 0xbd, 0x7b, 0x4d, 0x45, 0xa5, 0xf2, 0x3c, + 0x42, 0xb9, 0x73, 0xa6, 0x2e, 0xfe, 0x09, 0x63, + 0xf5, 0x45, 0xaa, 0x7f, 0x82, 0xd7, 0xfd, 0x50, + 0xeb, 0x8d, 0x97, 0x93, 0x56, 0x3b, 0xc1, 0x18, + 0x1e, 0x09, 0x5f, 0x12, 0x62, 0x71, 0xf5, 0x25, + 0x87, 0x60, 0xcd, 0x76, 0xf2, 0x8b, 0x36, 0x64, + 0x2f, 0x1a, 0xd7, 0x3d, 0x4b, 0x81, 0x4d, 0x71, + 0xd9, 0xab, 0xaf, 0xa3, 0x4d, 0x7e, 0x46, 0x3d, + 0xd2, 0x47, 0xae, 0x1f, 0x6b, 0x6c, 0x1f, 0x11, + 0xdb, 0xe2, 0xee, 0x10, 0xcd, 0xe5, 0xeb, 0xe3, + 0xea, 0xe3, 0xaa, 0x2c, 0xe8, 0x67, 0xb1, 0xf8, + 0x65, 0xe6, 0xea, 0xd6, 0xc3, 0x2a, 0xb2, 0xc5, + 0xb6, 0xa8, 0xbd, 0x6f, 0xec, 0x3d, 0x9a, 0xfb, + 0xae, 0xd8, 0x26, 0xa9, 0x56, 0x22, 0xd4, 0x41, + 0xb1, 0x5a, 0xf0, 0x55, 0xc7, 0xe6, 0x4f, 0x8d, + 0x1f, 0xc3, 0x01, 0x96, 0xa9, 0x8d, 0xe2, 0x54, + 0x70, 0xfd, 0x7c, 0x5d, 0xa7, 0x2b, 0xb3, 0x27, + 0x21, 0x66, 0x99, 0x60, 0x2a, 0xa4, 0xd7, 0x15, + 0x2e, 0xd8, 0x05, 0x32, 0x8d, 0xdb, 0x82, 0xc5, + 0x8b, 0xd0, 0x27, 0x11, 0x04, 0x6f, 0x5e, 0x2a, + 0x9d, 0xf4, 0x51, 0xf0, 0xcf, 0x10, 0x71, 0x08, + 0x61, 0x31, 0x16, 0x6c, 0x21, 0x6b, 0x5a, 0x2b, + 0xcd, 0x0b, 0x19, 0x0b, 0x39, 0x0c, 0xa5, 0x0c, + 0x76, 0x42, 0xd2, 0x25, 0x95, 0x95, 0x4a, 0xd0, + 0xd5, 0xa9, 0x4f, 0x23, 0xb5, 0xb2, 0x9a, 0xdd, + 0x76, 0x57, 0xdd, 0xd3, 0x16, 0x51, 0x97, 0xb5, + 0x8c, 0xc9, 0x51, 0xe8, 0xa9, 0xb4, 0x72, 0x15, + 0x6b, 0x16, 0x32, 0xff, 0x00, 0x5b, 0x9a, 0x46, + 0xc5, 0x4b, 0x98, 0xd8, 0x6d, 0xaa, 0xc4, 0xa1, + 0x8e, 0x57, 0x57, 0xbf, 0x5e, 0xca, 0xe6, 0x77, + 0x2a, 0xee, 0xab, 0xcc, 0x22, 0xf2, 0xc6, 0xff, + 0x00, 0x97, 0x6f, 0xf6, 0x53, 0xd6, 0x13, 0xf1, + 0xda, 0xbf, 0x62, 0xbf, 0xa0, 0xf7, 0xa3, 0x47, + 0xef, 0x4e, 0x8f, 0xf1, 0x96, 0x53, 0xf6, 0xf7, + 0xfd, 0x5c, 0xb7, 0x19, 0x16, 0x22, 0xcc, 0x70, + 0xc3, 0xf8, 0x3e, 0xbe, 0x3d, 0x59, 0x9d, 0xd3, + 0xd9, 0x4e, 0xe0, 0xe3, 0x71, 0xca, 0x24, 0x44, + 0x75, 0x7a, 0xdc, 0xf0, 0xd5, 0x30, 0x3e, 0xc5, + 0xb6, 0xe1, 0x3d, 0xfb, 0x6d, 0x33, 0xc6, 0x98, + 0xea, 0x28, 0x2b, 0x37, 0xb2, 0x1c, 0x23, 0xc4, + 0xb4, 0x69, 0x56, 0x5f, 0x2f, 0x52, 0xc5, 0xcb, + 0x98, 0x5b, 0xd5, 0xeb, 0x20, 0x39, 0xe4, 0x47, + 0x9d, 0xcf, 0x60, 0x2c, 0x79, 0x88, 0x47, 0x98, + 0xa3, 0x79, 0x88, 0xef, 0xd2, 0xbd, 0x8e, 0xf8, + 0x96, 0x89, 0xe3, 0x32, 0x77, 0x30, 0x59, 0x7a, + 0x47, 0x5e, 0xd7, 0x21, 0x1d, 0x1c, 0x81, 0xdf, + 0xb7, 0x6f, 0x15, 0x68, 0xfa, 0x46, 0x63, 0x3d, + 0x9e, 0xdc, 0x53, 0xb9, 0xb0, 0x9f, 0x8c, 0x23, + 0xc9, 0x3b, 0x6f, 0x31, 0xac, 0xf7, 0x16, 0x7b, + 0x22, 0xd2, 0x7d, 0x2c, 0xf4, 0xe3, 0x70, 0x3c, + 0x1b, 0x84, 0xad, 0x6a, 0x54, 0x4e, 0x47, 0x0f, + 0xe0, 0x29, 0x24, 0x65, 0xd1, 0xd2, 0x6b, 0xd7, + 0xc9, 0x68, 0xc6, 0x92, 0xc6, 0x44, 0x86, 0x65, + 0xb4, 0xee, 0x1c, 0x8f, 0x2b, 0xc6, 0x75, 0xec, + 0xec, 0xbe, 0x36, 0xe1, 0x9e, 0x7e, 0x1d, 0xe2, + 0xee, 0x26, 0xc3, 0x5d, 0xc6, 0x2f, 0x26, 0x08, + 0x75, 0x3c, 0xc5, 0x6a, 0x57, 0x38, 0x8e, 0xcf, + 0x58, 0x16, 0x0d, 0x32, 0xe5, 0x43, 0x1f, 0x49, + 0xde, 0xd9, 0x01, 0x31, 0x2c, 0x5e, 0xd1, 0xbc, + 0x14, 0x46, 0x6a, 0x31, 0xbe, 0xc7, 0xfc, 0x3d, + 0xe1, 0x19, 0xc4, 0x64, 0xa3, 0x1f, 0xd1, 0xa0, + 0xb1, 0x77, 0x6e, 0x9a, 0x4e, 0x8a, 0x9d, 0x22, + 0x92, 0x88, 0x86, 0x76, 0x8e, 0x9f, 0x4e, 0x66, + 0x62, 0x20, 0xb6, 0xde, 0x75, 0x83, 0xb9, 0x99, + 0xe1, 0x7a, 0xf8, 0x6e, 0x38, 0x25, 0x66, 0x2b, + 0x65, 0xad, 0x35, 0x4a, 0xf0, 0xa1, 0xd6, 0x66, + 0x72, 0xeb, 0x6a, 0xaa, 0xc3, 0x94, 0x6c, 0x12, + 0x02, 0xa4, 0x34, 0xa4, 0x23, 0x9b, 0xb9, 0x62, + 0xb8, 0x9d, 0xa6, 0x36, 0xd6, 0x73, 0x8f, 0x3d, + 0x8b, 0xb1, 0x35, 0xb8, 0xaf, 0x87, 0x38, 0xbc, + 0xa2, 0xcf, 0x13, 0xf0, 0x4b, 0x2d, 0x86, 0x3a, + 0xda, 0xef, 0x07, 0x31, 0x95, 0x9c, 0x75, 0x86, + 0xcc, 0x84, 0xcc, 0xd8, 0x6d, 0x9b, 0x55, 0xda, + 0x0b, 0x6b, 0x11, 0x16, 0xac, 0xd1, 0x2a, 0x2f, + 0x5f, 0x45, 0xda, 0x7f, 0x0c, 0xf0, 0x97, 0xb1, + 0x56, 0x4f, 0x82, 0x1d, 0x94, 0x03, 0xa5, 0x7b, + 0x89, 0xf8, 0x97, 0x22, 0xa5, 0x0e, 0x36, 0xb3, + 0x44, 0x82, 0xc1, 0x50, 0x09, 0xaf, 0x56, 0x7a, + 0xc6, 0x1b, 0xac, 0x2e, 0xae, 0x2d, 0xb1, 0x50, + 0x73, 0x35, 0xea, 0x8b, 0xba, 0x76, 0x53, 0x8c, + 0xe1, 0x4a, 0x4c, 0x8b, 0x27, 0x5f, 0xa9, 0x6f, + 0x25, 0x7b, 0xa7, 0x0b, 0x9c, 0x86, 0x56, 0xdf, + 0x29, 0x5c, 0xb5, 0x23, 0x11, 0xbf, 0x24, 0x72, + 0xae, 0xad, 0x58, 0x3e, 0x66, 0x05, 0x1a, 0xd5, + 0x54, 0x64, 0x64, 0xb9, 0x29, 0xf6, 0x2c, 0x3c, + 0x0e, 0x2e, 0xc6, 0x4c, 0x70, 0x9e, 0xc8, 0x18, + 0xdc, 0xae, 0x56, 0x51, 0x2a, 0x8e, 0xc5, 0x8f, + 0x4b, 0x2b, 0xcb, 0x2d, 0x37, 0xa8, 0xc5, 0xf8, + 0x83, 0x02, 0x5e, 0xe3, 0x98, 0xbb, 0xbc, 0x9a, + 0xce, 0xd9, 0xe0, 0x8c, 0x5b, 0x72, 0xfc, 0x52, + 0x69, 0x0a, 0xd8, 0x7a, 0xc9, 0xe9, 0x6e, 0xa7, + 0xdb, 0x70, 0x20, 0xef, 0xcc, 0x38, 0x81, 0x65, + 0x18, 0xea, 0xe6, 0xdb, 0x80, 0xb2, 0xdc, 0x5a, + 0xe5, 0x29, 0x46, 0x3d, 0x33, 0x3d, 0xad, 0x12, + 0xff, 0x00, 0xf9, 0x3e, 0xe6, 0xf3, 0xbc, 0x4f, + 0x96, 0x6b, 0xac, 0x71, 0x07, 0x16, 0x5e, 0xe2, + 0xfa, 0x21, 0x91, 0xcb, 0x35, 0xcf, 0x97, 0xc8, + 0xec, 0x58, 0x7b, 0x45, 0x56, 0xac, 0x1c, 0xc1, + 0xcd, 0x71, 0xb2, 0xde, 0xab, 0xe2, 0x6c, 0x58, + 0x6b, 0x5b, 0x31, 0x23, 0x9e, 0xad, 0xc5, 0x1c, + 0x05, 0x90, 0xf6, 0x37, 0x62, 0xeb, 0x02, 0x31, + 0xd6, 0x8f, 0x38, 0x8c, 0xb3, 0xac, 0x9d, 0xb5, + 0xd9, 0x06, 0x3e, 0xbc, 0xa6, 0x85, 0x2e, 0xce, + 0xca, 0x12, 0x2a, 0x60, 0xcc, 0xf5, 0x39, 0xc9, + 0x91, 0xb7, 0x2f, 0x27, 0x7b, 0xb8, 0x53, 0x8a, + 0x7d, 0x8e, 0xb8, 0x8f, 0xd9, 0x03, 0x2d, 0x41, + 0xf7, 0x43, 0x0b, 0xc5, 0xb8, 0x7b, 0x95, 0x9f, + 0x47, 0x39, 0x5d, 0xcf, 0x37, 0x55, 0xf0, 0xc5, + 0x86, 0x94, 0xb7, 0x1f, 0xd1, 0xea, 0x4a, 0x7a, + 0xcd, 0x1e, 0xa7, 0x66, 0x04, 0xa8, 0xab, 0x41, + 0xa6, 0x6c, 0xd8, 0xe3, 0x7e, 0x21, 0xf6, 0x4f, + 0x45, 0x0c, 0x87, 0x12, 0xfb, 0x26, 0x5a, 0xea, + 0x67, 0x71, 0x03, 0x3d, 0xa6, 0x85, 0x1c, 0x40, + 0x75, 0x06, 0xb6, 0x1c, 0x8f, 0x98, 0x96, 0xd8, + 0x11, 0x64, 0x84, 0xad, 0x46, 0xd4, 0xa2, 0xba, + 0xaa, 0xa0, 0x1c, 0xc9, 0x03, 0x9d, 0x58, 0xe9, + 0x7b, 0x1f, 0xf0, 0xd7, 0x57, 0xa0, 0xde, 0x96, + 0xd8, 0xf0, 0xdf, 0xa9, 0xd3, 0x2e, 0x4d, 0xbb, + 0xfc, 0xbc, 0xdb, 0x6d, 0xfc, 0x7a, 0x6e, 0x4f, + 0x89, 0xb8, 0x49, 0x38, 0x8e, 0x32, 0x56, 0x7f, + 0x34, 0x15, 0x2e, 0xda, 0x52, 0x27, 0x26, 0x18, + 0x5b, 0x35, 0x28, 0x2d, 0x20, 0xb7, 0xa5, 0xad, + 0x88, 0xac, 0xcf, 0xdf, 0x61, 0x01, 0xcd, 0xbf, + 0xd9, 0x3b, 0xb6, 0x98, 0x99, 0xf6, 0x6d, 0xcb, + 0xe6, 0x31, 0x36, 0x68, 0x63, 0x78, 0x8f, 0x8a, + 0xd9, 0x7b, 0x07, 0x6d, 0xd2, 0x99, 0x56, 0x46, + 0xa4, 0xe4, 0xf3, 0x2d, 0x87, 0x23, 0xa6, 0xd3, + 0x3e, 0x59, 0x53, 0xd2, 0x7e, 0xd8, 0x21, 0x3b, + 0x30, 0x7b, 0xb7, 0xe6, 0x88, 0x4e, 0x5f, 0x87, + 0x79, 0x91, 0xc7, 0x3c, 0x2d, 0x27, 0x73, 0x02, + 0xf4, 0x1c, 0x21, 0xd7, 0x93, 0x3d, 0xf6, 0xb1, + 0x12, 0xf9, 0x20, 0x80, 0x27, 0x6d, 0xd7, 0xa2, + 0xc2, 0x28, 0x85, 0xdc, 0x5c, 0x28, 0x89, 0x69, + 0xb6, 0xf6, 0x0c, 0xf0, 0x7f, 0x1a, 0xe1, 0x9d, + 0x45, 0xb7, 0xae, 0xf1, 0x0a, 0x72, 0x18, 0xcb, + 0x52, 0xbe, 0xa1, 0xd0, 0xc9, 0xc8, 0xaf, 0xca, + 0xa3, 0x68, 0x8f, 0x59, 0x52, 0x7c, 0x93, 0xbe, + 0xe3, 0x3d, 0xfb, 0x6a, 0xdf, 0x0b, 0x54, 0xe1, + 0x16, 0xfb, 0x28, 0x70, 0x08, 0x5b, 0xb1, 0x67, + 0x01, 0x6f, 0x11, 0x71, 0x74, 0xf3, 0x58, 0xa5, + 0xda, 0x61, 0x3d, 0x88, 0x65, 0x16, 0x0d, 0xa6, + 0x90, 0xb1, 0xa6, 0x4c, 0x6d, 0x50, 0x51, 0x24, + 0x2c, 0x95, 0x8b, 0x09, 0xbd, 0xca, 0xee, 0x91, + 0x63, 0xf8, 0x73, 0x29, 0xc2, 0x76, 0x3d, 0x8c, + 0x3d, 0x8e, 0x82, 0xed, 0x6b, 0x99, 0xe3, 0xc9, + 0x5d, 0x5b, 0xf3, 0xb9, 0x91, 0xae, 0xde, 0xa0, + 0x24, 0x2b, 0xc2, 0x94, 0x61, 0xd2, 0x90, 0x83, + 0xaf, 0x55, 0x95, 0x46, 0xb8, 0x5b, 0xe9, 0xdc, + 0xb1, 0x6a, 0xc7, 0x45, 0x2a, 0x57, 0xb0, 0xbd, + 0x5e, 0x12, 0xc1, 0xba, 0xde, 0x33, 0x84, 0x78, + 0xa6, 0xb1, 0xdb, 0x5d, 0x3e, 0x80, 0x2b, 0x13, + 0x87, 0xa9, 0xe0, 0x54, 0xd7, 0x92, 0x16, 0x31, + 0x5b, 0x25, 0x55, 0xea, 0x18, 0x88, 0xae, 0x0b, + 0x61, 0x4c, 0xc4, 0x0f, 0xb9, 0x89, 0xd0, 0xcc, + 0xfd, 0xc2, 0x1f, 0xfb, 0xf5, 0xc4, 0x58, 0x95, + 0x7b, 0x0a, 0xe5, 0xf8, 0x8d, 0x59, 0x5e, 0x24, + 0xbd, 0x99, 0x5d, 0xcf, 0xae, 0x1a, 0x38, 0xae, + 0x40, 0x70, 0xa9, 0x02, 0xae, 0x87, 0x61, 0xc8, + 0xf3, 0xf8, 0xa8, 0x86, 0x75, 0x3a, 0xa1, 0xee, + 0xf9, 0x7a, 0x7d, 0xdb, 0xc8, 0x70, 0xb5, 0xfe, + 0x14, 0xa1, 0xec, 0x5b, 0xc1, 0x97, 0x8e, 0xb1, + 0x67, 0x6c, 0xd8, 0xcc, 0x56, 0xcd, 0xe6, 0x6d, + 0xd4, 0x16, 0x03, 0x4e, 0xba, 0xe6, 0xac, 0xa6, + 0x79, 0x77, 0x18, 0x2e, 0xc7, 0xd8, 0xa8, 0xcb, + 0x0e, 0x21, 0x76, 0xad, 0xca, 0x79, 0xd7, 0x38, + 0xae, 0x1f, 0xc4, 0x22, 0x2b, 0x63, 0x30, 0xf4, + 0x6b, 0xe3, 0xe9, 0x27, 0xcb, 0x30, 0x9a, 0xe1, + 0x01, 0x04, 0xc2, 0xee, 0xea, 0x39, 0xa5, 0xcc, + 0xeb, 0x0d, 0x9f, 0x19, 0xcf, 0x63, 0x1a, 0x5e, + 0x31, 0xce, 0xbd, 0x8a, 0x78, 0xa3, 0x1f, 0x88, + 0xb3, 0x6b, 0x01, 0x83, 0xc6, 0x39, 0x39, 0x6c, + 0xa2, 0xe5, 0x3d, 0x9e, 0x8b, 0x0a, 0xce, 0x5c, + 0xe0, 0x1b, 0x04, 0xd1, 0x6e, 0xfc, 0xaf, 0x4c, + 0xf8, 0x8b, 0x3f, 0xb2, 0x0f, 0xf1, 0xed, 0xfd, + 0xaf, 0x21, 0xce, 0x42, 0x1b, 0x95, 0x5d, 0xb9, + 0xa6, 0x07, 0x7d, 0xaa, 0xab, 0xc9, 0xbf, 0x97, + 0x58, 0x2e, 0x24, 0xb2, 0xc6, 0x78, 0x4f, 0x87, + 0x15, 0x94, 0x56, 0x37, 0xa7, 0x6c, 0x02, 0xb4, + 0x06, 0x61, 0x01, 0x5e, 0xe7, 0x68, 0x47, 0x2c, + 0xf5, 0xa7, 0xa6, 0x11, 0xd1, 0x9e, 0x70, 0xe9, + 0x96, 0xf3, 0xe3, 0x6a, 0xcf, 0x11, 0xbe, 0x2d, + 0xd7, 0xbf, 0x7d, 0xd5, 0x2c, 0x64, 0xd5, 0x4b, + 0x20, 0xa4, 0x53, 0xc9, 0xbe, 0x8e, 0xd0, 0x86, + 0x5b, 0x59, 0x21, 0xb6, 0x00, 0xb9, 0x06, 0x16, + 0xee, 0xc1, 0x6e, 0x8c, 0x59, 0x5c, 0x72, 0xd8, + 0x86, 0x77, 0xef, 0x92, 0x16, 0x1d, 0xd8, 0x8c, + 0xaf, 0x17, 0xe3, 0xf8, 0xe2, 0xd4, 0x2f, 0x24, + 0xb0, 0xfe, 0xce, 0xe2, 0xe1, 0x31, 0x53, 0xa3, + 0xed, 0x13, 0xd2, 0xa1, 0x11, 0x5d, 0x7c, 0xf5, + 0x3c, 0x69, 0x2d, 0xbb, 0x9c, 0x1d, 0xdb, 0x22, + 0xde, 0x1e, 0xf9, 0x53, 0x6e, 0x43, 0xd9, 0x0f, + 0x15, 0xc6, 0xfc, 0x4a, 0xd6, 0xe5, 0x5c, 0x87, + 0x17, 0x61, 0xa2, 0xea, 0x27, 0xe0, 0x46, 0xd4, + 0x4f, 0x56, 0x9d, 0x88, 0x59, 0x28, 0x92, 0x32, + 0xce, 0x5e, 0x71, 0x99, 0x27, 0x72, 0xf8, 0x9a, + 0xc8, 0x54, 0xbf, 0x39, 0x1c, 0x95, 0xac, 0xa6, + 0x62, 0xa6, 0x7e, 0xde, 0x77, 0x21, 0x97, 0xed, + 0x39, 0xf3, 0xcb, 0x50, 0x5c, 0xa2, 0x8d, 0xa8, + 0xba, 0x49, 0xec, 0xf1, 0xd9, 0x2b, 0xcc, 0xd7, + 0x55, 0x6e, 0xc5, 0x34, 0xe5, 0x33, 0x20, 0xea, + 0xed, 0xf2, 0xeb, 0x02, 0xc4, 0x32, 0xf1, 0xbb, + 0x87, 0x73, 0x76, 0x78, 0x82, 0x95, 0x87, 0xe4, + 0x52, 0x4d, 0x76, 0x4a, 0xd5, 0x36, 0x51, 0x61, + 0x5d, 0x80, 0xac, 0xa4, 0xb2, 0xb8, 0xd6, 0x64, + 0x82, 0x6a, 0xd6, 0x4d, 0x34, 0xab, 0x68, 0x91, + 0x8f, 0x75, 0xcd, 0x7b, 0x3b, 0x69, 0x99, 0x68, + 0xbd, 0x90, 0xcc, 0x52, 0xcf, 0x3e, 0x15, 0x97, + 0x4f, 0x44, 0x72, 0xb8, 0xf3, 0x59, 0xd7, 0xb0, + 0x9e, 0xb5, 0x37, 0xd9, 0x50, 0x7b, 0x5c, 0x09, + 0xd5, 0xed, 0x45, 0x53, 0x92, 0x66, 0x16, 0x85, + 0xcf, 0x21, 0x06, 0x5a, 0xbc, 0xdd, 0xce, 0x29, + 0x39, 0x5e, 0x25, 0x0e, 0x30, 0xe9, 0xd7, 0xce, + 0x0a, 0xa3, 0x15, 0xc4, 0xa2, 0xfe, 0xd3, 0x39, + 0x6c, 0x2c, 0xf6, 0x62, 0x3a, 0x56, 0x1a, 0xc9, + 0xf6, 0xd1, 0x69, 0x5b, 0x49, 0x07, 0x8a, 0x2a, + 0x0d, 0xa3, 0x6b, 0x70, 0xcb, 0x59, 0x9b, 0x27, + 0x7b, 0x8a, 0x70, 0xfc, 0x65, 0x6e, 0xc5, 0xac, + 0xdf, 0x68, 0xb3, 0x63, 0x3d, 0x83, 0x1e, 0x5a, + 0x6f, 0x63, 0x98, 0x89, 0x29, 0x49, 0xfb, 0xab, + 0x35, 0xfd, 0xcb, 0x0b, 0xec, 0x44, 0x80, 0x11, + 0x01, 0x7f, 0x11, 0x5d, 0xed, 0x55, 0xf2, 0x77, + 0x17, 0x55, 0x39, 0x13, 0xc7, 0x5f, 0x4d, 0x65, + 0xe4, 0x97, 0x4b, 0xed, 0x68, 0xb7, 0x0c, 0xad, + 0x61, 0x80, 0x4b, 0x1f, 0x6a, 0xea, 0xd0, 0x75, + 0x17, 0x9a, 0xbc, 0x46, 0x34, 0xbb, 0xb6, 0xa3, + 0xc5, 0x4d, 0x3c, 0x95, 0xac, 0x9e, 0x32, 0xf7, + 0x84, 0x71, 0xc1, 0x6f, 0x2f, 0xd7, 0xad, 0x4a, + 0xd6, 0xd1, 0x00, 0x4a, 0x29, 0x4c, 0x64, 0x8d, + 0x2a, 0x81, 0x88, 0x4d, 0x3b, 0x59, 0x3b, 0x14, + 0x94, 0x3b, 0x00, 0x57, 0x85, 0x08, 0x00, 0x7d, + 0x95, 0x5f, 0x9c, 0x1f, 0xf6, 0xeb, 0xec, 0xaa, + 0xfc, 0xe0, 0xff, 0x00, 0xb7, 0x5f, 0x65, 0x57, + 0xe7, 0x07, 0xfd, 0xba, 0xfb, 0x2a, 0xbf, 0x38, + 0x3f, 0xed, 0xd6, 0x4a, 0x4d, 0xab, 0x18, 0x37, + 0x2a, 0x42, 0x48, 0xc4, 0x60, 0xa3, 0xa5, 0x1d, + 0xe3, 0x33, 0x3e, 0x34, 0x7b, 0xda, 0xb5, 0x8b, + 0xc8, 0x9a, 0x5d, 0x4e, 0xe0, 0x40, 0x38, 0x06, + 0xcc, 0x28, 0xfc, 0x52, 0x86, 0x2d, 0x8a, 0x6a, + 0xce, 0x0d, 0x4e, 0x4b, 0x04, 0x1a, 0x96, 0x84, + 0xc1, 0x2d, 0x82, 0x25, 0x1e, 0x4d, 0x5b, 0x6d, + 0xdc, 0xbe, 0x57, 0x21, 0x7a, 0xdd, 0x6a, 0x94, + 0xfc, 0x29, 0x67, 0x30, 0xb5, 0xe4, 0x6a, 0x57, + 0xa1, 0x6e, 0x2f, 0xd4, 0x0a, 0x2d, 0xc7, 0xa6, + 0x8a, 0x6b, 0xf4, 0xee, 0x8c, 0x59, 0x33, 0xec, + 0xe6, 0x76, 0x99, 0xe2, 0xdc, 0x2b, 0x09, 0xf6, + 0xad, 0x5f, 0xba, 0x39, 0x07, 0x5f, 0xc8, 0x64, + 0xe6, 0xbf, 0x6d, 0xc8, 0xe4, 0xee, 0xd7, 0x7d, + 0xb7, 0x2e, 0xa0, 0x98, 0x54, 0xaf, 0x1d, 0x05, + 0x55, 0xaa, 0x8a, 0xd5, 0xa1, 0x8d, 0xe9, 0x26, + 0xbd, 0x65, 0x0f, 0x3b, 0x58, 0xd6, 0x73, 0xb4, + 0xc8, 0xe6, 0x8d, 0xa6, 0xdc, 0x3a, 0x79, 0x0c, + 0x61, 0xb8, 0xf1, 0xf9, 0x3c, 0x75, 0xd5, 0x56, + 0xbf, 0x53, 0xb4, 0x84, 0x2e, 0xca, 0x84, 0xcc, + 0x5c, 0x97, 0x56, 0xb2, 0x30, 0x1d, 0xa2, 0xa5, + 0xb4, 0x58, 0xaa, 0xd2, 0x5a, 0x98, 0x49, 0xea, + 0xa5, 0x46, 0x17, 0x1e, 0xab, 0x65, 0x6a, 0xee, + 0x49, 0x8b, 0x6e, 0x43, 0x23, 0x7e, 0xe2, 0x5f, + 0x76, 0xe1, 0xa1, 0x7d, 0x24, 0x43, 0x49, 0x62, + 0x84, 0x2d, 0x55, 0xd7, 0xb8, 0x22, 0xbd, 0x6a, + 0xf5, 0xeb, 0xaa, 0x24, 0xa4, 0x55, 0xce, 0x66, + 0x45, 0x70, 0x45, 0xe9, 0x22, 0x9a, 0xaf, 0x81, + 0x11, 0x68, 0x4c, 0x94, 0xca, 0x8b, 0x68, 0x88, + 0x89, 0xde, 0x66, 0x7e, 0xe4, 0x6a, 0xa4, 0x13, + 0xd3, 0x05, 0x15, 0x91, 0x13, 0x12, 0xd0, 0x89, + 0x89, 0x85, 0x8e, 0xf1, 0x31, 0x33, 0xbc, 0x4c, + 0x7d, 0xd8, 0xd5, 0xfc, 0xbb, 0x58, 0xb7, 0x59, + 0xc9, 0xe1, 0x55, 0x80, 0xb8, 0xa6, 0xd9, 0x59, + 0xd3, 0x6e, 0x31, 0x4f, 0xb3, 0x62, 0x15, 0xd9, + 0xff, 0x00, 0xc3, 0x32, 0xb6, 0xe1, 0x69, 0xf3, + 0xcf, 0x3a, 0xe6, 0x03, 0x96, 0x36, 0xdf, 0x42, + 0xb7, 0x5c, 0xbb, 0x7d, 0x28, 0xc4, 0x59, 0xc1, + 0x63, 0x95, 0x7b, 0x31, 0xcf, 0x18, 0x7c, 0x55, + 0xb8, 0x11, 0x7d, 0x5c, 0x53, 0x6b, 0xc5, 0x6b, + 0x48, 0x22, 0x5a, 0xd4, 0x98, 0xb8, 0xeb, 0x16, + 0x72, 0x0b, 0x42, 0x96, 0x95, 0xdb, 0x15, 0xc4, + 0xc1, 0x78, 0x50, 0xb2, 0x97, 0x72, 0xb9, 0x18, + 0xa1, 0x18, 0xb4, 0x5d, 0xcc, 0x64, 0x6b, 0xda, + 0x75, 0x4c, 0x77, 0x51, 0x6e, 0x3a, 0x95, 0xba, + 0x08, 0xa8, 0xa0, 0x17, 0xb5, 0x4a, 0x6d, 0xa7, + 0x1a, 0xd9, 0x6e, 0xd1, 0xa5, 0x53, 0x62, 0xc3, + 0x3a, 0x61, 0x10, 0xba, 0xf7, 0x5f, 0x11, 0xd9, + 0xed, 0x26, 0xf5, 0x3b, 0x35, 0x6e, 0x45, 0x7b, + 0x94, 0x6f, 0x56, 0xe6, 0xe8, 0x5c, 0xa7, 0x60, + 0x27, 0x75, 0x3c, 0x20, 0xcc, 0x3c, 0x86, 0xb6, + 0x29, 0x8c, 0x43, 0x96, 0xc4, 0xb1, 0x8b, 0x27, + 0xe5, 0x4b, 0x20, 0xec, 0x96, 0x56, 0xc5, 0x50, + 0xa2, 0x79, 0x2c, 0x9d, 0xca, 0xae, 0xb4, 0x34, + 0x16, 0xce, 0xb8, 0xd2, 0x40, 0xd6, 0x45, 0x3a, + 0x95, 0xab, 0x75, 0xfd, 0xbd, 0x80, 0x8a, 0xab, + 0x27, 0xba, 0x05, 0x8f, 0x36, 0x90, 0x07, 0x2e, + 0x3b, 0xa6, 0xc0, 0x67, 0x29, 0x5a, 0x92, 0xe4, + 0x31, 0x3e, 0x5d, 0xeb, 0x1e, 0xdb, 0xf2, 0xcc, + 0xed, 0xdf, 0xac, 0x27, 0xe3, 0xb5, 0x7e, 0xc5, + 0x7f, 0x41, 0xef, 0x46, 0x8f, 0xde, 0x9d, 0x1f, + 0xe3, 0x2c, 0xa7, 0xed, 0xef, 0xfa, 0xa1, 0x1c, + 0x45, 0x9c, 0xa9, 0x41, 0xec, 0x0e, 0xa2, 0xe8, + 0xc7, 0x52, 0xd6, 0x40, 0xd7, 0x3b, 0xf2, 0xb3, + 0xb1, 0x55, 0x16, 0xbc, 0x14, 0x52, 0x33, 0x02, + 0xe6, 0x8a, 0xd2, 0x45, 0x12, 0x30, 0xcd, 0xe2, + 0x75, 0xb4, 0x5b, 0xcc, 0x9f, 0xf8, 0xc1, 0x88, + 0x3e, 0x5f, 0xff, 0x00, 0x6a, 0xc0, 0xcf, 0x77, + 0xbd, 0xaf, 0xb6, 0x33, 0x7e, 0xa8, 0xff, 0x00, + 0xd5, 0x6b, 0xed, 0x8c, 0xdf, 0xaa, 0x3f, 0xf5, + 0x5a, 0xfb, 0x63, 0x37, 0xea, 0x8f, 0xfd, 0x56, + 0xbe, 0xd8, 0xcd, 0xfa, 0xa3, 0xff, 0x00, 0x55, + 0xaf, 0xb6, 0x33, 0x7e, 0xa8, 0xff, 0x00, 0xd5, + 0x6b, 0xed, 0x8c, 0xdf, 0xaa, 0x3f, 0xf5, 0x5a, + 0xfb, 0x63, 0x37, 0xea, 0x8f, 0xfd, 0x56, 0xbe, + 0xd8, 0xcd, 0xfa, 0xa3, 0xff, 0x00, 0x55, 0xaf, + 0xb6, 0x33, 0x7e, 0xa8, 0xff, 0x00, 0xd5, 0x6b, + 0xed, 0x8c, 0xdf, 0xaa, 0x3f, 0xf5, 0x5a, 0xfb, + 0x63, 0x37, 0xea, 0x8f, 0xfd, 0x56, 0xbe, 0xd8, + 0xcd, 0xfa, 0xa3, 0xff, 0x00, 0x55, 0xaf, 0xb6, + 0x33, 0x7e, 0xa8, 0xff, 0x00, 0xd5, 0x6b, 0xed, + 0x8c, 0xdf, 0xaa, 0x3f, 0xf5, 0x5a, 0xfb, 0x63, + 0x37, 0xea, 0x8f, 0xfd, 0x56, 0xbe, 0xd8, 0xcd, + 0xfa, 0xa3, 0xff, 0x00, 0x55, 0xaf, 0xb6, 0x33, + 0x7e, 0xa8, 0xff, 0x00, 0xd5, 0x6b, 0xed, 0x9c, + 0xdf, 0xaa, 0x27, 0xe7, 0x3a, 0x5d, 0x2c, 0x77, + 0x10, 0xa1, 0x57, 0x5a, 0x5c, 0x89, 0xab, 0x93, + 0x53, 0xb1, 0xa6, 0xf3, 0x99, 0x81, 0x15, 0xa5, + 0x96, 0x44, 0x6b, 0x31, 0xac, 0x29, 0x88, 0x5a, + 0x45, 0xf2, 0xe6, 0x4f, 0x70, 0xae, 0x75, 0xb4, + 0xf7, 0x4f, 0xde, 0xfa, 0x92, 0x66, 0x42, 0x00, + 0x31, 0xb9, 0x11, 0x4c, 0x08, 0x8c, 0x47, 0x96, + 0x66, 0x67, 0xba, 0x22, 0x3e, 0xfc, 0xea, 0x62, + 0x1c, 0x6d, 0xdb, 0xbb, 0xda, 0xd4, 0x73, 0x1f, + 0xf3, 0x49, 0x72, 0x44, 0xfb, 0xf1, 0x3b, 0x4f, + 0xdc, 0x99, 0xd7, 0xf7, 0xcf, 0xe6, 0xa3, 0xe5, + 0x35, 0xfd, 0xf3, 0xf9, 0xa8, 0xf9, 0x4d, 0x7f, + 0x7c, 0xfe, 0x6a, 0x3e, 0x53, 0x5f, 0xdf, 0x3f, + 0x9a, 0x8f, 0x94, 0xd7, 0xf7, 0xcf, 0xe6, 0xa3, + 0xe5, 0x35, 0xfd, 0xf3, 0xf9, 0xa8, 0xf9, 0x4d, + 0x7f, 0x7c, 0xfe, 0x6a, 0x3e, 0x53, 0x5f, 0xdf, + 0x3f, 0x9a, 0x8f, 0x94, 0xd7, 0xf7, 0xcf, 0xe6, + 0xa3, 0xe5, 0x35, 0xfd, 0xf3, 0xf9, 0xa8, 0xf9, + 0x4d, 0x7f, 0x7c, 0xfe, 0x6a, 0x3e, 0x53, 0x5f, + 0xdf, 0x3f, 0x9a, 0x8f, 0x94, 0xd7, 0xf7, 0xcf, + 0xe6, 0xa3, 0xe5, 0x35, 0xfd, 0xf3, 0xf9, 0xa8, + 0xf9, 0x4d, 0x7f, 0x7c, 0xfe, 0x6a, 0x3e, 0x53, + 0x5f, 0xdf, 0x3f, 0x9a, 0x8f, 0x94, 0xd6, 0xe4, + 0xa6, 0x94, 0xfd, 0xf2, 0xae, 0xb9, 0x9f, 0xcb, + 0x27, 0xaf, 0xb0, 0x9f, 0xc5, 0x55, 0xfc, 0xed, + 0x7d, 0x84, 0xfe, 0x2a, 0xaf, 0xe7, 0x6b, 0xec, + 0x27, 0xf1, 0x55, 0x7f, 0x3b, 0x5f, 0x61, 0x3f, + 0x8a, 0xab, 0xf9, 0xda, 0xfb, 0x09, 0xfc, 0x55, + 0x5f, 0xce, 0xd7, 0xd8, 0x4f, 0xe2, 0xaa, 0xfe, + 0x76, 0xbe, 0xc2, 0x7f, 0x15, 0x57, 0xf3, 0xb5, + 0xf6, 0x13, 0xf8, 0xaa, 0xbf, 0x9d, 0xaf, 0xb0, + 0x9f, 0xc5, 0x55, 0xfc, 0xed, 0x7d, 0x84, 0xfe, + 0x2a, 0xaf, 0xe7, 0x6b, 0xec, 0x27, 0xf1, 0x55, + 0x7f, 0x3b, 0x5f, 0x61, 0x3f, 0x8a, 0xab, 0xf9, + 0xda, 0xfb, 0x09, 0xfc, 0x55, 0x5f, 0xce, 0xd7, + 0xd8, 0x4f, 0xe2, 0xaa, 0xfe, 0x76, 0xbe, 0xc2, + 0x7f, 0x15, 0x57, 0xf3, 0xb5, 0xf6, 0x13, 0xf8, + 0xaa, 0xbf, 0x9d, 0xaf, 0xb0, 0x9f, 0xc5, 0x55, + 0xfc, 0xed, 0x7d, 0x84, 0xfe, 0x2a, 0xaf, 0xe7, + 0x6b, 0xec, 0x27, 0xf1, 0x55, 0x7f, 0x3b, 0x5f, + 0x61, 0x3f, 0x8a, 0xab, 0xf9, 0xda, 0xfb, 0x09, + 0xfc, 0x55, 0x5f, 0xce, 0xd7, 0xd8, 0x4f, 0xe2, + 0xaa, 0xfe, 0x76, 0xbe, 0xc2, 0x7f, 0x15, 0x57, + 0xf3, 0xb5, 0xf6, 0x13, 0xf8, 0xaa, 0xbf, 0x9d, + 0xaf, 0xb0, 0x9f, 0xc5, 0x55, 0xfc, 0xed, 0x7d, + 0x84, 0xfe, 0x2a, 0xaf, 0xe7, 0x6b, 0xec, 0x27, + 0xf1, 0x55, 0xff, 0x00, 0x3b, 0x5d, 0x34, 0x92, + 0x3a, 0x9f, 0x71, 0x6c, 0x4c, 0x2c, 0xa7, 0xfc, + 0x9e, 0x70, 0x88, 0x39, 0xfe, 0x20, 0x99, 0x9f, + 0xe2, 0xd6, 0xe2, 0xb0, 0x19, 0xfb, 0xe2, 0x03, + 0x13, 0xf9, 0x62, 0x35, 0x84, 0xfc, 0x76, 0xaf, + 0xd8, 0xaf, 0xe8, 0x3d, 0xe8, 0xd1, 0xfb, 0xd3, + 0xa3, 0xfc, 0x65, 0x94, 0xfd, 0xb9, 0xff, 0x00, + 0x53, 0x88, 0x38, 0x81, 0x20, 0x0c, 0xb3, 0x8c, + 0xc7, 0x31, 0xb5, 0x05, 0x91, 0xcc, 0xae, 0xda, + 0xe3, 0x0a, 0xb4, 0xc9, 0xa3, 0xfc, 0x35, 0x05, + 0x97, 0xa8, 0xd8, 0x1b, 0x8f, 0x38, 0x09, 0x0f, + 0x30, 0x6f, 0xcd, 0x16, 0x72, 0x19, 0x0b, 0x2e, + 0xb9, 0x76, 0xdb, 0x49, 0xf6, 0x6c, 0xbc, 0xe5, + 0x8d, 0x73, 0x4f, 0xca, 0x46, 0x53, 0xf9, 0x22, + 0x3c, 0x82, 0x31, 0x02, 0x31, 0x03, 0x11, 0x1a, + 0xee, 0x8d, 0xfd, 0xed, 0x77, 0x44, 0xcf, 0xbd, + 0xdf, 0xae, 0xf1, 0x98, 0xf7, 0xe2, 0x63, 0x5d, + 0xf1, 0x31, 0xbe, 0x91, 0x52, 0x95, 0x57, 0xdb, + 0xb5, 0x64, 0xe1, 0x75, 0xeb, 0xd7, 0x51, 0xb9, + 0xcf, 0x64, 0xff, 0x00, 0x01, 0x4b, 0x08, 0x92, + 0x32, 0xfe, 0x21, 0x89, 0xfb, 0xfa, 0x43, 0x2e, + 0xae, 0xb1, 0x57, 0xb5, 0xd4, 0x1a, 0xf7, 0x31, + 0xf9, 0x1c, 0x6e, 0x63, 0x1e, 0xd6, 0x27, 0x6e, + 0xb5, 0x71, 0xc8, 0xe2, 0x2d, 0xde, 0xa3, 0xda, + 0x91, 0x06, 0xb3, 0x7d, 0x4e, 0xd1, 0xda, 0x52, + 0xb7, 0x21, 0xac, 0x50, 0xae, 0xc2, 0x48, 0xff, + 0x00, 0xb7, 0x3e, 0xb6, 0x55, 0xcc, 0xb7, 0x67, + 0x01, 0x7c, 0x71, 0xe9, 0xb6, 0xe2, 0x93, 0x73, + 0x68, 0xb9, 0x10, 0xfa, 0xcb, 0x73, 0x0b, 0x72, + 0x61, 0x57, 0x98, 0x6a, 0x84, 0xca, 0x64, 0xba, + 0x3d, 0x21, 0x9f, 0x71, 0xbc, 0xea, 0xe4, 0x32, + 0xc7, 0x64, 0xc4, 0xe2, 0x86, 0x66, 0xdb, 0xfb, + 0xca, 0x24, 0xa0, 0xb9, 0x3e, 0xc7, 0xb8, 0xf5, + 0x9c, 0xc7, 0x47, 0x4a, 0xb2, 0xf7, 0xda, 0x76, + 0x92, 0x89, 0xef, 0x9d, 0x72, 0xa7, 0x09, 0x65, + 0xe1, 0x1d, 0xd0, 0xdb, 0x19, 0x5e, 0x83, 0x4f, + 0xfc, 0x62, 0x5a, 0x6a, 0xb1, 0x63, 0x33, 0xf7, + 0x86, 0x7b, 0xb5, 0xe8, 0xf1, 0x7a, 0xed, 0xbf, + 0x31, 0xd7, 0xa3, 0xc5, 0xeb, 0xb6, 0xfc, 0xc7, + 0x5e, 0x8f, 0x17, 0xae, 0xdb, 0xf3, 0x1d, 0x7a, + 0x3c, 0x5e, 0xbb, 0x6f, 0xcc, 0x75, 0xe8, 0xf1, + 0x7a, 0xed, 0xbf, 0x31, 0xd7, 0xa3, 0xc5, 0xeb, + 0xb6, 0xfc, 0xc7, 0x5e, 0x8f, 0x17, 0xae, 0xdb, + 0xf3, 0x1d, 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, 0xcc, + 0x75, 0xe8, 0xf1, 0x7a, 0xed, 0xbf, 0x31, 0xd7, + 0xa3, 0xc5, 0xeb, 0xb6, 0xfc, 0xc7, 0x5e, 0x8f, + 0x17, 0xae, 0xdb, 0xf3, 0x1d, 0x7a, 0x3c, 0x5e, + 0xbb, 0x6f, 0xcc, 0x75, 0xe8, 0xf1, 0x7a, 0xed, + 0xbf, 0x31, 0xd7, 0xa3, 0xc5, 0xeb, 0xb6, 0xfc, + 0xc7, 0x5e, 0x8f, 0x17, 0xae, 0xdb, 0xf3, 0x1d, + 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, 0xcc, 0x75, 0xe8, + 0xf1, 0x7a, 0xed, 0xbf, 0x31, 0xd7, 0xa3, 0xc5, + 0xeb, 0xb6, 0xfc, 0xc7, 0x5e, 0x8f, 0x17, 0xae, + 0xdb, 0xf3, 0x1d, 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, + 0xcc, 0x74, 0xf3, 0xc5, 0xc3, 0xab, 0x5a, 0xac, + 0xb2, 0x7b, 0xf1, 0xd6, 0x18, 0x2e, 0xe6, 0xae, + 0x1b, 0x73, 0xba, 0x9b, 0xe2, 0x06, 0x59, 0xd2, + 0xee, 0x26, 0xa9, 0x83, 0x07, 0xcb, 0x32, 0x41, + 0x33, 0xb4, 0x04, 0xeb, 0xb3, 0x5d, 0x53, 0xb2, + 0x39, 0x18, 0x88, 0xed, 0x15, 0x93, 0x60, 0x6b, + 0x56, 0xa7, 0x24, 0x30, 0x50, 0x96, 0x3e, 0x01, + 0xa6, 0xdb, 0x21, 0x1f, 0x65, 0x85, 0x8f, 0x4d, + 0x45, 0x24, 0xb9, 0xe7, 0x21, 0xdf, 0x5e, 0x8f, + 0x17, 0xae, 0xdb, 0xf3, 0x1d, 0x7a, 0x3c, 0x5e, + 0xbb, 0x6f, 0xcc, 0x75, 0xe8, 0xf1, 0x7a, 0xed, + 0xbf, 0x31, 0xd7, 0xa3, 0xc5, 0xeb, 0xb6, 0xfc, + 0xc7, 0x5e, 0x8f, 0x17, 0xae, 0xdb, 0xf3, 0x1d, + 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, 0xcc, 0x75, 0xe8, + 0xf1, 0x7a, 0xed, 0xbf, 0x31, 0xd7, 0xa3, 0xc5, + 0xeb, 0xb6, 0xfc, 0xc7, 0x5e, 0x8f, 0x17, 0xae, + 0xdb, 0xf3, 0x1d, 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, + 0xcc, 0x75, 0xe8, 0xf1, 0x7a, 0xed, 0xbf, 0x31, + 0xd7, 0xa3, 0xc5, 0xeb, 0xb6, 0xfc, 0xc7, 0x5e, + 0x8f, 0x17, 0xae, 0xdb, 0xf3, 0x1d, 0x7a, 0x3c, + 0x5e, 0xbb, 0x6f, 0xcc, 0x75, 0xe8, 0xf1, 0x7a, + 0xed, 0xbf, 0x31, 0xd7, 0xa3, 0xc5, 0xeb, 0xb6, + 0xfc, 0xc7, 0x5e, 0x8f, 0x17, 0xae, 0xdb, 0xf3, + 0x1d, 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, 0xcc, 0x75, + 0xe8, 0xf1, 0x7a, 0xed, 0xbf, 0x31, 0xd7, 0xa3, + 0xc5, 0xeb, 0xb6, 0xfc, 0xc7, 0x5e, 0x3e, 0x01, + 0x82, 0x3f, 0x76, 0x43, 0x32, 0x64, 0x51, 0xef, + 0x09, 0x53, 0x18, 0x99, 0xf7, 0xe7, 0x4b, 0xc9, + 0x63, 0x1c, 0x6d, 0xa2, 0xc6, 0xf4, 0x26, 0x1d, + 0xca, 0x36, 0xaa, 0x59, 0x11, 0xe7, 0xe8, 0x58, + 0x80, 0xf1, 0x66, 0x64, 0x3c, 0x75, 0x35, 0x7e, + 0x29, 0x8e, 0xfd, 0xc3, 0xb7, 0x79, 0x25, 0xc5, + 0x26, 0xfa, 0xdc, 0xb1, 0x26, 0x53, 0xe3, 0x31, + 0x45, 0xbf, 0x24, 0xcf, 0xdd, 0x92, 0x1d, 0xa4, + 0x0a, 0x7c, 0xb3, 0xe2, 0x49, 0x4c, 0x91, 0x4e, + 0xb0, 0x9f, 0x8e, 0xd5, 0xfb, 0x15, 0xfd, 0x07, + 0xbd, 0x1a, 0x3f, 0x7a, 0x74, 0x7f, 0x8c, 0xb2, + 0x9f, 0xb7, 0x3f, 0xea, 0x71, 0x7f, 0xe0, 0x54, + 0xbf, 0x95, 0xf1, 0xdf, 0x53, 0x31, 0xc7, 0x57, + 0x16, 0x24, 0xaa, 0xb7, 0x70, 0x5c, 0x39, 0x54, + 0x58, 0x31, 0x30, 0xef, 0x0b, 0x5f, 0x0b, 0x39, + 0xce, 0x9e, 0xff, 0x00, 0xc3, 0x4e, 0x06, 0x8d, + 0xa0, 0x9f, 0x14, 0xb9, 0x7b, 0x6a, 0x8b, 0x6d, + 0x7b, 0x24, 0x70, 0xff, 0x00, 0x0b, 0x31, 0xbe, + 0x18, 0xa9, 0x82, 0xca, 0x27, 0x04, 0xda, 0xd6, + 0x53, 0x5d, 0xa6, 0x05, 0x93, 0xc6, 0x3a, 0x9b, + 0x57, 0x69, 0xed, 0x52, 0x42, 0x4e, 0x89, 0x41, + 0xf5, 0x18, 0xd1, 0x89, 0xde, 0x7b, 0xf7, 0x98, + 0xd7, 0x15, 0x52, 0xf6, 0x57, 0xc8, 0x8b, 0x13, + 0x7f, 0x15, 0x5e, 0x78, 0x6f, 0x1b, 0x93, 0xcb, + 0x62, 0xb2, 0x79, 0x66, 0xe6, 0xd7, 0x90, 0x4f, + 0x67, 0xbd, 0x8a, 0x4d, 0x2b, 0x36, 0xec, 0x56, + 0xaf, 0x55, 0x31, 0x6c, 0x32, 0x36, 0x8a, 0x53, + 0x5c, 0x92, 0xce, 0xcd, 0x32, 0xc6, 0x18, 0x88, + 0xf0, 0xab, 0x00, 0x37, 0xb9, 0xc2, 0x94, 0x78, + 0x5e, 0x8b, 0x66, 0x23, 0xc6, 0x2c, 0x77, 0x13, + 0xf0, 0xdd, 0x4b, 0x74, 0xf9, 0xa7, 0x97, 0xc6, + 0xe9, 0xe4, 0x31, 0x97, 0x56, 0x3b, 0x97, 0x8b, + 0xd5, 0xf2, 0x78, 0xe3, 0x1a, 0xe0, 0xce, 0x1e, + 0x93, 0x45, 0x72, 0xc5, 0x37, 0x35, 0xc3, 0x40, + 0xcb, 0x0e, 0xaf, 0x5d, 0x33, 0x91, 0x45, 0x6e, + 0x1b, 0xbd, 0x9c, 0xac, 0xeb, 0x0f, 0x60, 0x55, + 0x4f, 0x84, 0x98, 0xcc, 0xce, 0x23, 0xa8, 0xf6, + 0x26, 0xb1, 0xf6, 0xb1, 0x45, 0xc3, 0x4d, 0x66, + 0xd8, 0x60, 0xde, 0x27, 0x62, 0xee, 0x70, 0xf7, + 0x84, 0xcb, 0x1d, 0xd9, 0x30, 0x99, 0x74, 0x2a, + 0x9e, 0x69, 0x85, 0x46, 0xf6, 0x6c, 0xcf, 0x29, + 0x6a, 0x92, 0xaa, 0x63, 0xf9, 0x6a, 0x85, 0x6b, + 0x4a, 0xa3, 0x46, 0xe9, 0x63, 0xaa, 0x03, 0x51, + 0x31, 0x8e, 0x41, 0xde, 0x7e, 0x33, 0x23, 0x67, + 0xfb, 0x7f, 0x14, 0x7e, 0x39, 0xa1, 0xfb, 0x0b, + 0x7e, 0xa3, 0x4f, 0x7e, 0xf7, 0xf1, 0x0d, 0x20, + 0x6c, 0xff, 0x00, 0x87, 0x1d, 0x83, 0x20, 0xe8, + 0x82, 0xff, 0x00, 0xa4, 0x08, 0x3f, 0x7f, 0xfb, + 0x40, 0xf1, 0x1a, 0xdf, 0x6f, 0xb7, 0xf2, 0x9b, + 0x89, 0x04, 0xc4, 0xf6, 0x5e, 0x82, 0xae, 0x8d, + 0x56, 0x90, 0x84, 0x57, 0x87, 0x6e, 0x22, 0xc5, + 0xcf, 0x7b, 0xe6, 0x39, 0xa7, 0xef, 0x4e, 0xda, + 0xc2, 0xd8, 0xaa, 0x57, 0xec, 0x64, 0xb2, 0x0e, + 0x45, 0x5b, 0x35, 0x4f, 0xa6, 0xc1, 0x8b, 0x4d, + 0xa6, 0x2f, 0x24, 0xd6, 0x4a, 0x6b, 0x03, 0xf9, + 0xfa, 0xa5, 0x0b, 0x00, 0x23, 0x69, 0x7f, 0x07, + 0x69, 0x2e, 0xfd, 0x53, 0xa1, 0x6b, 0x18, 0xe4, + 0xda, 0xc8, 0x4f, 0x2d, 0x20, 0x26, 0x57, 0x90, + 0xb0, 0x5f, 0x74, 0x06, 0xc0, 0xbc, 0xab, 0x0b, + 0x07, 0xca, 0x4b, 0x37, 0x09, 0x84, 0x48, 0x91, + 0x0c, 0x09, 0x84, 0xca, 0x3f, 0xb0, 0x96, 0xff, + 0x00, 0x7c, 0xb0, 0x94, 0x9d, 0x8a, 0xbc, 0xf8, + 0xe1, 0x07, 0x33, 0xd4, 0xd9, 0xf3, 0xd9, 0xc3, + 0x60, 0x29, 0x17, 0x58, 0xe9, 0x25, 0x91, 0xb4, + 0xac, 0xca, 0x0c, 0x39, 0x99, 0x87, 0x5e, 0x36, + 0xc1, 0x64, 0x95, 0xbf, 0x56, 0xaf, 0x89, 0x12, + 0xb1, 0x88, 0x89, 0xe7, 0x36, 0xc9, 0xc5, 0x71, + 0x54, 0xc4, 0x8f, 0x2b, 0xa5, 0xbd, 0x23, 0xe6, + 0x18, 0x03, 0x29, 0x31, 0xdf, 0xc0, 0xf3, 0x8d, + 0x74, 0x64, 0xba, 0x44, 0xf8, 0xaa, 0x46, 0x81, + 0x93, 0x48, 0xc4, 0x94, 0xb1, 0x6d, 0x27, 0x42, + 0x1a, 0x1d, 0xd3, 0xde, 0xa6, 0x9e, 0xe4, 0x24, + 0x11, 0xb9, 0x8c, 0x8e, 0x94, 0xfc, 0x8e, 0x3c, + 0xeb, 0x2d, 0xce, 0x1a, 0xeb, 0x9e, 0xb5, 0x67, + 0x4f, 0x5c, 0xc3, 0xa8, 0x2a, 0x20, 0xae, 0xf6, + 0xb1, 0x6c, 0x20, 0xf1, 0xa0, 0x5a, 0x21, 0x3f, + 0x73, 0xcb, 0xdd, 0xa6, 0x52, 0xbe, 0xae, 0xcf, + 0x69, 0x3c, 0xbd, 0x54, 0xcb, 0x14, 0xc9, 0x0e, + 0x61, 0x83, 0x1d, 0xc9, 0x2c, 0x62, 0xfd, 0xc9, + 0x44, 0xf7, 0x14, 0xed, 0xe4, 0x9d, 0xa7, 0xbb, + 0xf7, 0x78, 0x90, 0xdf, 0xb8, 0xca, 0xe0, 0x14, + 0x7f, 0x84, 0x33, 0x8e, 0xb7, 0xb8, 0xcf, 0xdf, + 0x8d, 0x63, 0xa2, 0x7b, 0xe2, 0x6f, 0x54, 0x89, + 0xf8, 0xc2, 0xf5, 0x92, 0x92, 0x9d, 0xca, 0x72, + 0x17, 0x37, 0x99, 0x9f, 0xff, 0x00, 0x58, 0x67, + 0xd5, 0xb5, 0x9b, 0xce, 0x59, 0xca, 0xa4, 0x11, + 0x92, 0x0a, 0x03, 0x18, 0xd9, 0xab, 0x3b, 0xf5, + 0x10, 0x2d, 0x19, 0x20, 0x7d, 0x76, 0xce, 0xfb, + 0xf3, 0x6f, 0x30, 0x71, 0x1b, 0x6d, 0xe2, 0xfd, + 0xdd, 0x61, 0x9b, 0xc3, 0xec, 0xb9, 0x92, 0xa9, + 0x9e, 0x49, 0x32, 0x82, 0x9c, 0xa8, 0xed, 0xd0, + 0xc5, 0x72, 0x8b, 0x54, 0xc8, 0x50, 0xac, 0x0f, + 0x69, 0x99, 0x2e, 0x78, 0x5a, 0xc4, 0x06, 0x0b, + 0x9b, 0x98, 0x43, 0xac, 0x75, 0x31, 0xf6, 0x31, + 0x6d, 0x55, 0xbb, 0xdc, 0xfd, 0x91, 0x64, 0xea, + 0xbd, 0x37, 0xca, 0xc4, 0x88, 0xc0, 0x2c, 0xc5, + 0x89, 0xab, 0xd4, 0x11, 0x19, 0x99, 0x51, 0x3a, + 0x19, 0xb7, 0x2f, 0x8b, 0xe3, 0x87, 0x31, 0x5c, + 0xec, 0xc5, 0xd9, 0x86, 0xec, 0x63, 0x89, 0xbc, + 0xc1, 0xb4, 0x5d, 0x91, 0x93, 0x8a, 0xfb, 0x73, + 0xf3, 0xf3, 0x72, 0xc4, 0xcf, 0x37, 0x2f, 0x4f, + 0xee, 0x73, 0xef, 0xdd, 0xab, 0x95, 0x53, 0x89, + 0x73, 0x1f, 0x8f, 0x85, 0xf6, 0xc0, 0x07, 0x55, + 0x98, 0x4c, 0xb5, 0x70, 0xe5, 0x87, 0x53, 0xb4, + 0x74, 0x98, 0xd2, 0x5c, 0xc1, 0xf4, 0x14, 0x6c, + 0x74, 0x44, 0xc7, 0x30, 0x44, 0xce, 0xda, 0x6d, + 0xba, 0x78, 0xd6, 0xba, 0xba, 0x58, 0xe4, 0xb9, + 0x9d, 0x5a, 0xe9, 0xe9, 0x36, 0xba, 0xfa, 0xae, + 0x06, 0x83, 0xde, 0xa6, 0x2e, 0x56, 0x13, 0x1b, + 0xf3, 0x0c, 0x44, 0xcf, 0x88, 0x33, 0x27, 0xe2, + 0xea, 0xd2, 0x6c, 0xba, 0xc8, 0xae, 0x9d, 0x26, + 0x5c, 0x94, 0x51, 0x85, 0x4d, 0xeb, 0x7c, 0xa4, + 0x21, 0xd3, 0xad, 0xd7, 0xdd, 0x51, 0x30, 0x46, + 0x32, 0x52, 0x42, 0x7c, 0xde, 0x2a, 0xe2, 0x06, + 0x59, 0xd4, 0x01, 0xa9, 0x55, 0xee, 0x6a, 0x9b, + 0x52, 0xbd, 0xb8, 0x5d, 0xb8, 0x01, 0xb9, 0x57, + 0xaf, 0x13, 0xfb, 0xde, 0xdc, 0x2f, 0x94, 0x21, + 0xc3, 0xb7, 0x34, 0xf8, 0x8b, 0xee, 0x38, 0x8e, + 0x4e, 0xee, 0x72, 0x7e, 0x77, 0x3d, 0x7a, 0xc5, + 0x3c, 0x5a, 0xed, 0x45, 0x14, 0x2e, 0x90, 0x01, + 0xdc, 0xb9, 0x6a, 0x57, 0xd4, 0x90, 0x54, 0xb2, + 0x18, 0xb0, 0x85, 0x0e, 0xc6, 0x5c, 0xcb, 0x2e, + 0x61, 0x83, 0x8e, 0x65, 0xcc, 0x44, 0xce, 0x12, + 0xb5, 0x3c, 0xab, 0xad, 0x62, 0x33, 0x95, 0xad, + 0xd9, 0x54, 0x89, 0xd7, 0x5e, 0x52, 0xb7, 0x65, + 0x43, 0x8e, 0x56, 0xf1, 0x95, 0x18, 0x7d, 0x99, + 0x52, 0x1d, 0x49, 0xaa, 0x03, 0x32, 0x2e, 0x50, + 0xc7, 0x32, 0xfa, 0x93, 0x61, 0xb8, 0xbc, 0x6b, + 0xed, 0xa2, 0xb1, 0x90, 0x1b, 0x60, 0x92, 0xb1, + 0xe6, 0x8d, 0xe7, 0x90, 0x25, 0xec, 0x54, 0x39, + 0x91, 0x1d, 0xe4, 0x09, 0xe7, 0x38, 0xdc, 0x77, + 0x18, 0xe7, 0x0d, 0xdd, 0x53, 0x1f, 0x8f, 0xb1, + 0x62, 0xc5, 0x6d, 0xfb, 0x4a, 0xfc, 0x54, 0xf6, + 0x79, 0x12, 0x91, 0x90, 0x79, 0xd8, 0x34, 0xad, + 0x2c, 0xe6, 0x12, 0x18, 0x53, 0x0c, 0x58, 0x52, + 0x07, 0x02, 0x33, 0xc8, 0x5b, 0x71, 0x47, 0x84, + 0x55, 0x76, 0xae, 0x47, 0x03, 0x5e, 0xb9, 0xaa, + 0xa0, 0xf2, 0x47, 0x3b, 0x9c, 0x6d, 0x1e, 0x56, + 0x8c, 0xa9, 0xb2, 0xe5, 0x9c, 0x08, 0x12, 0x0a, + 0xb3, 0x04, 0x5a, 0x25, 0x06, 0xb6, 0x30, 0x0c, + 0x27, 0x59, 0xe1, 0xca, 0xe1, 0x9e, 0x76, 0xe9, + 0xd1, 0xad, 0x65, 0x6d, 0x5e, 0x42, 0x9e, 0xd8, + 0xa1, 0x71, 0x37, 0x67, 0xdb, 0x4a, 0xaf, 0x73, + 0x32, 0x1d, 0x03, 0xe2, 0x26, 0x56, 0xe6, 0x47, + 0x2f, 0x34, 0xa8, 0x60, 0xa2, 0x49, 0xf6, 0x67, + 0x11, 0x63, 0xa1, 0x59, 0x21, 0x61, 0xcc, 0x13, + 0xae, 0x71, 0x09, 0x35, 0xf5, 0x84, 0xc2, 0x01, + 0xe4, 0x4e, 0xf6, 0xaf, 0x1c, 0xc5, 0x30, 0xc3, + 0x5c, 0x7d, 0x90, 0x42, 0x74, 0x57, 0x31, 0xb8, + 0xc7, 0xda, 0xac, 0x0c, 0xe9, 0x4b, 0x40, 0x92, + 0x11, 0x2c, 0xee, 0xde, 0x00, 0x5a, 0xd5, 0x9b, + 0x79, 0x79, 0xa3, 0x9c, 0x96, 0x26, 0x21, 0xfc, + 0x39, 0x1d, 0xa7, 0x67, 0xd2, 0xb8, 0xbe, 0x85, + 0xaa, 0xc7, 0xd3, 0x7a, 0xa4, 0xc0, 0xe4, 0x0f, + 0x68, 0x9d, 0xb9, 0x94, 0x66, 0xb9, 0xee, 0x98, + 0xef, 0x12, 0x28, 0xfe, 0x3f, 0xab, 0xc4, 0xe3, + 0xbe, 0xf0, 0x33, 0x83, 0x38, 0x8f, 0xbc, 0x52, + 0xfb, 0xa3, 0xcd, 0x1f, 0x7a, 0x64, 0x7b, 0xa7, + 0xef, 0xc6, 0x9f, 0xf8, 0x13, 0x3f, 0x5f, 0x5b, + 0x58, 0x4f, 0xc7, 0x4a, 0xfd, 0x8a, 0xf6, 0x83, + 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0x3f, 0xc6, 0x59, + 0x4f, 0xdb, 0x9f, 0xf5, 0x38, 0xbf, 0xf0, 0x2a, + 0x5f, 0xca, 0xf8, 0xef, 0xa9, 0xc2, 0xbc, 0x3f, + 0xc2, 0xb6, 0x28, 0x39, 0xdb, 0x64, 0x73, 0x3c, + 0x4c, 0x57, 0x70, 0x38, 0xfc, 0x88, 0x78, 0x5e, + 0xeb, 0xe1, 0x15, 0xab, 0x0c, 0x66, 0xf1, 0xd6, + 0x07, 0xa9, 0x4b, 0x1d, 0x59, 0x60, 0x4f, 0xa6, + 0x3d, 0x33, 0x17, 0xc0, 0x75, 0xd9, 0xca, 0x42, + 0x17, 0x73, 0x4d, 0xc9, 0x20, 0x73, 0xb9, 0xff, + 0x00, 0x63, 0x69, 0xc2, 0x66, 0x69, 0x2e, 0x85, + 0xb4, 0xc7, 0xd7, 0x1e, 0x3f, 0x27, 0x8f, 0x5d, + 0x79, 0x1e, 0x8d, 0x30, 0xa2, 0x01, 0x7f, 0x17, + 0x59, 0x6c, 0x5f, 0x67, 0x28, 0xab, 0x5f, 0xb2, + 0x10, 0x19, 0x28, 0x8d, 0x4a, 0xd6, 0x6b, 0x84, + 0x38, 0x8e, 0xe8, 0xd5, 0x0a, 0x9c, 0xd9, 0xce, + 0x10, 0xbc, 0xe4, 0xd9, 0xb1, 0xd8, 0xb3, 0x11, + 0x20, 0x37, 0x71, 0x5f, 0xbd, 0x91, 0x65, 0xca, + 0xa5, 0x9a, 0xaf, 0xdf, 0x3b, 0x00, 0x57, 0x55, + 0xd5, 0x05, 0x96, 0xcf, 0x8e, 0x73, 0x20, 0xbc, + 0xcd, 0xee, 0xa7, 0x0e, 0xbf, 0x82, 0xb8, 0x35, + 0x16, 0xca, 0x29, 0xdd, 0x67, 0xf6, 0x77, 0x85, + 0x23, 0x1b, 0x79, 0x74, 0xa5, 0x3d, 0x9f, 0xa8, + 0x5d, 0x47, 0xd4, 0xb3, 0x8d, 0x37, 0x42, 0xce, + 0xac, 0xae, 0xd3, 0x27, 0xaa, 0x49, 0x2e, 0x7d, + 0x61, 0xeb, 0xb2, 0xd4, 0x33, 0x39, 0xf5, 0xd9, + 0xc5, 0x59, 0xac, 0x9d, 0x68, 0x55, 0x88, 0xe9, + 0x2f, 0x31, 0xd8, 0x0d, 0x4c, 0xeb, 0x1a, 0xe1, + 0x07, 0x0c, 0x62, 0xdf, 0x10, 0x0b, 0x71, 0xb0, + 0x20, 0x7d, 0xb0, 0x47, 0x71, 0xdf, 0xfb, 0x7f, + 0x14, 0x7e, 0x39, 0xa1, 0xfb, 0x0b, 0x75, 0x1a, + 0x12, 0xfb, 0xfc, 0x4f, 0x4a, 0x3f, 0xec, 0x9c, + 0xb4, 0xff, 0x00, 0xf8, 0x35, 0xe5, 0xd7, 0x97, + 0x5e, 0x5d, 0x79, 0x75, 0xe5, 0xd7, 0x97, 0x5e, + 0x5d, 0x70, 0x56, 0x2e, 0xc9, 0x8c, 0x27, 0x39, + 0x4b, 0x8b, 0x31, 0xed, 0xf7, 0x33, 0xcb, 0xed, + 0xf5, 0x6d, 0x2e, 0x66, 0x26, 0x7c, 0xbc, 0xf5, + 0xa3, 0x97, 0xf8, 0xe7, 0x58, 0x3c, 0x9d, 0xe7, + 0xa9, 0x74, 0xc7, 0x8f, 0xb3, 0xb5, 0x7a, 0xc6, + 0x42, 0x2a, 0x48, 0x26, 0xbd, 0x8a, 0x35, 0x9c, + 0x65, 0xe4, 0x5a, 0x62, 0x40, 0x08, 0x98, 0x5b, + 0x08, 0x0c, 0xf3, 0x94, 0xc0, 0xc4, 0xce, 0xb8, + 0x63, 0x15, 0x69, 0x54, 0x10, 0xeb, 0x7c, 0x53, + 0x37, 0xeb, 0xac, 0x38, 0x82, 0xfe, 0x6a, 0xe7, + 0x47, 0xa5, 0x6c, 0x0a, 0xe1, 0x76, 0xda, 0xc1, + 0xd9, 0xab, 0x3f, 0x9b, 0x96, 0x15, 0x0f, 0xe9, + 0x83, 0x24, 0x81, 0x40, 0x5c, 0xac, 0x91, 0xe3, + 0xcb, 0x3e, 0x11, 0xb3, 0x0e, 0x57, 0x1a, 0x15, + 0x64, 0x98, 0xd9, 0x64, 0x1a, 0xab, 0xf5, 0x95, + 0x1d, 0x24, 0x4f, 0x3f, 0x32, 0xd5, 0xb0, 0xc4, + 0x72, 0xae, 0x60, 0x7b, 0xbf, 0x8e, 0x77, 0xe2, + 0xfc, 0x1d, 0x1c, 0x8a, 0x28, 0x67, 0xb2, 0xb8, + 0xbe, 0x1e, 0x66, 0x35, 0xed, 0x7c, 0xd7, 0xed, + 0x11, 0x5e, 0xb4, 0x9d, 0xba, 0xc1, 0x60, 0x7c, + 0x60, 0x61, 0x09, 0xc1, 0x6c, 0x1b, 0x99, 0x8c, + 0x99, 0x6d, 0xca, 0x99, 0x98, 0xe1, 0x4c, 0x25, + 0xcb, 0xe8, 0xbd, 0x9e, 0xc4, 0xe1, 0xb3, 0xa7, + 0x93, 0xb4, 0xb7, 0x43, 0xe1, 0x3d, 0x65, 0x09, + 0xd4, 0xa8, 0xcb, 0x05, 0xe3, 0xb1, 0x8b, 0x80, + 0x92, 0xd9, 0xb1, 0x07, 0x03, 0xc8, 0x5b, 0x6c, + 0xd8, 0xdf, 0x21, 0x86, 0xcb, 0xd9, 0x26, 0xf4, + 0x2e, 0x63, 0xf8, 0x99, 0x2d, 0xb0, 0x64, 0xd2, + 0x29, 0xc7, 0x31, 0x63, 0x71, 0x66, 0x66, 0x5c, + 0xd3, 0x06, 0xa1, 0xaf, 0xb4, 0x77, 0xc4, 0x04, + 0x37, 0x78, 0x98, 0xd6, 0x47, 0x23, 0x33, 0xf6, + 0xe5, 0xc7, 0xbc, 0x3f, 0x89, 0x44, 0xc9, 0xe8, + 0x8f, 0xff, 0x00, 0x72, 0xae, 0x48, 0xff, 0x00, + 0x9b, 0x5e, 0x5d, 0x79, 0x75, 0xe5, 0xd7, 0x97, + 0x5e, 0x5d, 0x79, 0x75, 0x82, 0x0d, 0xfc, 0xad, + 0xbb, 0xfc, 0x97, 0x7a, 0x75, 0x8d, 0xfc, 0x3e, + 0x9f, 0xed, 0x0b, 0xd6, 0x52, 0x37, 0xf2, 0x64, + 0xaf, 0x47, 0xe4, 0xb4, 0xdd, 0x79, 0x75, 0xe5, + 0xd6, 0x4f, 0x20, 0xaa, 0xd8, 0xdb, 0xac, 0xfa, + 0xe5, 0xae, 0x8e, 0x86, 0x4d, 0x05, 0x66, 0xbf, + 0x2b, 0x28, 0x84, 0xc9, 0xf4, 0x85, 0xc9, 0x9e, + 0x78, 0xe5, 0xf1, 0x4b, 0x9f, 0x68, 0xdc, 0xbb, + 0xb5, 0x25, 0x98, 0xb7, 0x47, 0x18, 0x4e, 0xc2, + 0xdc, 0xc4, 0xe1, 0x49, 0x41, 0xd9, 0x71, 0xf8, + 0xcb, 0x4e, 0x84, 0xf4, 0x61, 0x70, 0x46, 0xc9, + 0x57, 0x56, 0x57, 0x3e, 0xda, 0xd6, 0x99, 0x73, + 0xf2, 0x20, 0x4a, 0x02, 0x56, 0xb1, 0xc7, 0x53, + 0xce, 0x65, 0x13, 0x7f, 0x3c, 0x3c, 0x46, 0x8c, + 0xc5, 0x25, 0x2a, 0xd9, 0x5c, 0x6d, 0x4a, 0x35, + 0x87, 0x66, 0x34, 0x9a, 0xdd, 0x9d, 0x01, 0x61, + 0x90, 0x41, 0x0b, 0x91, 0xe9, 0xcc, 0xc9, 0xf2, + 0xc9, 0x48, 0xb2, 0x20, 0x78, 0x6f, 0xac, 0xae, + 0xc7, 0x6e, 0xbc, 0xf1, 0xd7, 0x52, 0x39, 0x77, + 0x87, 0xf8, 0x51, 0x79, 0x08, 0xaf, 0xbc, 0x94, + 0xc7, 0x8d, 0x8d, 0x59, 0xa7, 0x96, 0x3b, 0xfa, + 0x1e, 0xd9, 0xb0, 0xf7, 0x6a, 0xd3, 0xab, 0x0d, + 0x67, 0x64, 0x53, 0xc4, 0xf6, 0xb2, 0xf7, 0x51, + 0x63, 0x3d, 0x77, 0x07, 0xd0, 0xaf, 0x63, 0x63, + 0xaf, 0x7a, 0x66, 0x9a, 0xdd, 0x37, 0x10, 0xa5, + 0x84, 0x57, 0xec, 0xef, 0x1e, 0x97, 0xb4, 0xcc, + 0x17, 0xdc, 0xdf, 0x2d, 0x76, 0x85, 0x91, 0x48, + 0x5c, 0xe3, 0xeb, 0x80, 0x53, 0x46, 0xcb, 0x25, + 0x4f, 0x54, 0xe3, 0x77, 0x39, 0x06, 0xf2, 0xa1, + 0x8d, 0xae, 0xf6, 0x0f, 0x57, 0xc6, 0x58, 0x09, + 0xef, 0x1b, 0x87, 0x93, 0x59, 0xa1, 0xc0, 0xd9, + 0xc7, 0xd7, 0xe2, 0xe0, 0x6d, 0x33, 0xa8, 0x57, + 0xc8, 0x63, 0x7c, 0x5c, 0x30, 0x7b, 0x58, 0xd7, + 0xe6, 0x06, 0x6d, 0x06, 0x5e, 0xd7, 0x64, 0xc4, + 0x26, 0x60, 0x4d, 0x63, 0x32, 0x1d, 0x40, 0x2d, + 0x76, 0xda, 0x0c, 0xc1, 0x78, 0x58, 0x72, 0x82, + 0x1c, 0x43, 0x15, 0x6c, 0xf5, 0xae, 0xf8, 0x45, + 0x95, 0x07, 0x74, 0x26, 0x36, 0x29, 0x84, 0x0c, + 0x8b, 0x58, 0xf8, 0x9e, 0x8c, 0x43, 0x03, 0x73, + 0x1e, 0xd3, 0xd4, 0x19, 0x9e, 0x1c, 0xa5, 0x76, + 0x95, 0x7c, 0xe6, 0x3b, 0x2e, 0x59, 0x2a, 0xf5, + 0xae, 0x3b, 0xa0, 0x37, 0x69, 0xba, 0xbf, 0x4d, + 0xdd, 0x29, 0x81, 0x29, 0x33, 0x41, 0x6e, 0x67, + 0x30, 0x27, 0x20, 0x1c, 0xb0, 0x5c, 0xa2, 0x63, + 0x3a, 0xe1, 0xac, 0x70, 0xe5, 0x15, 0x77, 0x2b, + 0x34, 0xf2, 0x4c, 0xcd, 0xa9, 0x24, 0xb3, 0xab, + 0x46, 0xcc, 0xe3, 0xee, 0x4a, 0xd0, 0x0d, 0x1e, + 0x53, 0xe6, 0xe9, 0x6d, 0xcc, 0xa7, 0x0f, 0x53, + 0xb8, 0x5d, 0xb8, 0x83, 0xc1, 0x41, 0xc3, 0xc1, + 0xc3, 0xb9, 0xba, 0xd8, 0xe3, 0xc0, 0xde, 0xb9, + 0x39, 0xda, 0xe7, 0x74, 0xea, 0x9a, 0xf9, 0xee, + 0x9d, 0x85, 0xdc, 0x31, 0x0f, 0xb6, 0x16, 0x48, + 0x83, 0x91, 0x86, 0xec, 0xa9, 0xf1, 0xd7, 0x05, + 0xed, 0x67, 0xcb, 0xc6, 0xb8, 0xbe, 0x15, 0xc9, + 0xd5, 0xa9, 0x93, 0x7e, 0x53, 0x1f, 0x65, 0x0d, + 0xed, 0x7d, 0x8f, 0xc2, 0x75, 0xaa, 0x21, 0x08, + 0xba, 0xea, 0xee, 0x56, 0xe7, 0x2b, 0xeb, 0xa5, + 0x8c, 0x26, 0x26, 0x0a, 0x08, 0x4d, 0x66, 0x7b, + 0x0d, 0x88, 0x99, 0xe3, 0x9b, 0x79, 0x3c, 0xad, + 0x7e, 0x27, 0x6e, 0x23, 0x17, 0x84, 0x9b, 0x2d, + 0x4c, 0x29, 0x43, 0xd5, 0xaf, 0x36, 0x45, 0xb4, + 0xb6, 0x0e, 0x75, 0x75, 0xaa, 0x36, 0x0a, 0x0f, + 0x97, 0x72, 0xea, 0x47, 0xb7, 0x40, 0x58, 0x96, + 0x80, 0x7b, 0x25, 0xda, 0x0b, 0x53, 0x6a, 0x9e, + 0x5b, 0x09, 0x8b, 0xcc, 0xe3, 0xac, 0xb1, 0x9c, + 0xe4, 0xea, 0xd7, 0x8a, 0xd3, 0x04, 0x39, 0x8a, + 0x79, 0x8b, 0xa1, 0x3b, 0xa4, 0x37, 0xf1, 0xa1, + 0x22, 0xad, 0xfb, 0xf5, 0x4b, 0x1f, 0xda, 0xcf, + 0xb1, 0x7d, 0x65, 0x73, 0x4d, 0x78, 0x69, 0x74, + 0x24, 0x8b, 0x1e, 0xc6, 0xcc, 0x92, 0xf9, 0xba, + 0x72, 0x7c, 0xc3, 0x13, 0xbc, 0x8f, 0x37, 0x74, + 0x6b, 0x82, 0xed, 0x61, 0xf3, 0x55, 0x68, 0x55, + 0xc1, 0xde, 0x6a, 0x73, 0xd5, 0xce, 0xe1, 0x57, + 0x28, 0x6b, 0x2f, 0x81, 0x86, 0xeb, 0x1e, 0xeb, + 0x05, 0x69, 0x47, 0xc8, 0xa5, 0xb3, 0x61, 0xf6, + 0xf8, 0x85, 0xcc, 0xf8, 0xdb, 0x71, 0x08, 0x6f, + 0xee, 0x6f, 0xcf, 0xea, 0x53, 0xaf, 0x2e, 0xbc, + 0xba, 0xe2, 0xef, 0xf1, 0x63, 0x87, 0xff, 0x00, + 0xeb, 0xb5, 0x90, 0xff, 0x00, 0x66, 0x9f, 0xf8, + 0x13, 0x3f, 0x5f, 0x5b, 0x58, 0x4f, 0xc7, 0x4a, + 0xfd, 0x8a, 0xf6, 0x83, 0xde, 0x8d, 0x1f, 0xbd, + 0x3a, 0x3f, 0xc6, 0x39, 0x4f, 0xdb, 0x9f, 0xf5, + 0x38, 0xbf, 0xf0, 0x2a, 0x5f, 0xca, 0xf8, 0xef, + 0xa9, 0xca, 0x02, 0x44, 0x5f, 0x78, 0x62, 0x66, + 0x7f, 0x24, 0x6a, 0x44, 0xa2, 0x44, 0xa3, 0xcb, + 0x05, 0x1b, 0x4c, 0x7b, 0xf1, 0x3f, 0x53, 0xba, + 0x37, 0xfb, 0xbf, 0xf3, 0x47, 0x96, 0x7f, 0xe6, + 0xfa, 0xbb, 0xad, 0x4c, 0x38, 0xdf, 0x6d, 0xc0, + 0x08, 0xa3, 0x7f, 0xbd, 0xbc, 0x44, 0xf7, 0xea, + 0x07, 0xa6, 0x7c, 0xc5, 0x1b, 0x88, 0xf2, 0x96, + 0xe5, 0x1d, 0xfd, 0xf1, 0x1b, 0x6f, 0x31, 0xdd, + 0x3e, 0x4f, 0xbd, 0x3f, 0x53, 0x63, 0x12, 0x09, + 0xfb, 0xc5, 0x12, 0x33, 0xf9, 0x27, 0x51, 0xcc, + 0x24, 0x3c, 0xd1, 0xb8, 0xef, 0x13, 0x1c, 0xd1, + 0xf7, 0xe3, 0x7f, 0x2c, 0x7f, 0x1c, 0x68, 0x63, + 0x90, 0xb7, 0x3e, 0xf0, 0x8e, 0x59, 0xdc, 0xa3, + 0xef, 0x8c, 0x7d, 0xdf, 0xf9, 0xb5, 0x24, 0x49, + 0x68, 0xc4, 0x79, 0x66, 0x56, 0x71, 0x11, 0xef, + 0xcc, 0xc7, 0xf6, 0x8e, 0x28, 0xfc, 0x73, 0x43, + 0xf6, 0x16, 0xea, 0x35, 0x77, 0x87, 0xac, 0x37, + 0xb3, 0xcd, 0xd6, 0x22, 0xc6, 0x3e, 0xdc, 0xc4, + 0x90, 0x54, 0xca, 0x57, 0xe7, 0x8a, 0xe4, 0xd1, + 0x08, 0x92, 0x94, 0x58, 0x16, 0x1d, 0x67, 0x48, + 0xc1, 0x48, 0x0b, 0x39, 0x86, 0x23, 0xbc, 0xa0, + 0xd5, 0x18, 0x3e, 0xd4, 0x20, 0x66, 0x10, 0xfa, + 0x99, 0x2c, 0x5b, 0x52, 0xce, 0x99, 0x48, 0x14, + 0x8e, 0xf7, 0x41, 0xa1, 0xe3, 0x44, 0xc7, 0x2b, + 0x94, 0xa6, 0x44, 0xc4, 0xc1, 0x04, 0x4c, 0x4e, + 0xbd, 0x1b, 0xb3, 0xf1, 0xcc, 0x67, 0xcf, 0xf5, + 0xe8, 0xdd, 0x9f, 0x8e, 0x63, 0x3e, 0x7f, 0xaf, + 0x46, 0xec, 0xfc, 0x73, 0x19, 0xf3, 0xfd, 0x7a, + 0x37, 0x67, 0xe3, 0x98, 0xcf, 0x9f, 0xeb, 0xd1, + 0xbb, 0x3f, 0x1c, 0xc6, 0x7c, 0xff, 0x00, 0x5e, + 0x8d, 0xd9, 0xf8, 0xe6, 0x33, 0xe7, 0xfa, 0xf4, + 0x6a, 0xc7, 0x7f, 0x97, 0xf7, 0xde, 0x2f, 0xbf, + 0xff, 0x00, 0xbf, 0xb5, 0xe8, 0xd5, 0x8f, 0x8e, + 0x62, 0xfe, 0x7d, 0xad, 0xbe, 0xb6, 0xac, 0x7c, + 0x6f, 0x17, 0xf3, 0xed, 0x7a, 0x35, 0x63, 0xe3, + 0x78, 0xbf, 0x9f, 0x6b, 0x6f, 0xad, 0xab, 0x1b, + 0x7d, 0xee, 0xd7, 0x8b, 0xdb, 0xf6, 0xed, 0x6d, + 0xf5, 0xb5, 0x63, 0x6f, 0xbd, 0xda, 0xf1, 0x7b, + 0x7e, 0xdd, 0xac, 0xae, 0x22, 0xaf, 0x01, 0x2e, + 0x72, 0x39, 0x50, 0xb1, 0x58, 0xf8, 0x82, 0x6f, + 0xe3, 0x22, 0xea, 0x71, 0xf6, 0x81, 0x40, 0xea, + 0x42, 0xb8, 0xb1, 0xb9, 0x47, 0x88, 0x72, 0x0c, + 0x9b, 0x23, 0x01, 0x2d, 0xfb, 0x11, 0x72, 0x44, + 0xcf, 0xa3, 0x76, 0x7e, 0x39, 0x8c, 0xf9, 0xfe, + 0xbd, 0x1b, 0xb3, 0xf1, 0xcc, 0x67, 0xcf, 0xf5, + 0xe8, 0xdd, 0x9f, 0x8e, 0x63, 0x3e, 0x7f, 0xaf, + 0x46, 0xec, 0xfc, 0x73, 0x19, 0xf3, 0xfd, 0x7a, + 0x37, 0x67, 0xe3, 0x98, 0xcf, 0x9f, 0xeb, 0xd1, + 0xbb, 0x3f, 0x1c, 0xc6, 0x7c, 0xff, 0x00, 0x5e, + 0x8d, 0xd9, 0xf8, 0xe6, 0x33, 0xe7, 0xfa, 0x1e, + 0x23, 0xe2, 0x18, 0x52, 0x32, 0x10, 0x9b, 0x68, + 0xc3, 0x63, 0x55, 0x61, 0x76, 0x8c, 0x5e, 0xd5, + 0xcd, 0x4b, 0x17, 0x2d, 0xbe, 0xa9, 0x3a, 0xa8, + 0xc5, 0x74, 0xbd, 0xa0, 0x08, 0x07, 0x99, 0x99, + 0x9e, 0xc5, 0xc9, 0xcb, 0x3c, 0xab, 0x70, 0x7b, + 0xb5, 0x30, 0x18, 0x1f, 0xe5, 0x01, 0x41, 0x0f, + 0xfd, 0x71, 0xa3, 0xcd, 0xf0, 0xc2, 0x93, 0x7a, + 0x9e, 0x64, 0x9f, 0x7b, 0xc1, 0xc5, 0x76, 0xa5, + 0x5b, 0xf4, 0xdb, 0xcf, 0xfb, 0xf4, 0x04, 0x2e, + 0xba, 0xb0, 0x59, 0xac, 0x16, 0x64, 0xa1, 0x4c, + 0x49, 0x93, 0x39, 0x4d, 0x60, 0x4b, 0x92, 0xd8, + 0x8b, 0xd1, 0xbb, 0x3f, 0x1c, 0xc6, 0x7c, 0xff, + 0x00, 0x5e, 0x8d, 0xd9, 0xf8, 0xe6, 0x33, 0xe7, + 0xfa, 0xdf, 0xeb, 0x6e, 0xce, 0xff, 0x00, 0x7f, + 0xb6, 0x62, 0xfe, 0x7d, 0xaf, 0x46, 0xec, 0xfc, + 0x73, 0x19, 0xf3, 0xfd, 0x77, 0x70, 0xd5, 0x88, + 0xf7, 0xad, 0xe2, 0xfe, 0x7d, 0xaf, 0x46, 0xac, + 0x7d, 0xff, 0x00, 0xb6, 0xf1, 0x7f, 0x3e, 0xd7, + 0x7f, 0x0d, 0x58, 0x9f, 0x7e, 0xde, 0x2f, 0xe7, + 0xda, 0xdf, 0xeb, 0x6e, 0xc6, 0xff, 0x00, 0x7f, + 0xb6, 0x62, 0xfe, 0x7d, 0xae, 0xfe, 0x1a, 0xb1, + 0x3e, 0xfd, 0xcc, 0x5f, 0xcf, 0xb5, 0xe8, 0xdd, + 0x9f, 0x8e, 0x62, 0xfe, 0x7d, 0xae, 0xfe, 0x1b, + 0xb1, 0x3e, 0xfd, 0xcc, 0x5f, 0xcf, 0xb5, 0xb7, + 0xd6, 0xd5, 0x8d, 0xbe, 0xf7, 0x6b, 0xc5, 0xed, + 0xfb, 0x76, 0xbb, 0xf8, 0x6a, 0xc4, 0xfb, 0xf6, + 0xf1, 0x7f, 0x3e, 0xd7, 0x7f, 0x0d, 0x58, 0x9f, + 0x7e, 0xe6, 0x2f, 0xe7, 0xda, 0x8f, 0xfd, 0x9a, + 0xb1, 0xdd, 0xe4, 0xfd, 0xf7, 0x8b, 0xee, 0xf7, + 0xbf, 0x7f, 0x6b, 0xd1, 0xab, 0x1f, 0x7f, 0xed, + 0xbc, 0x5f, 0xcf, 0xb5, 0xb7, 0xd6, 0xd5, 0x8d, + 0xbf, 0x0b, 0xc5, 0xfc, 0xfb, 0x55, 0x53, 0x73, + 0xd8, 0xa7, 0x1b, 0x9a, 0xbd, 0x8e, 0x61, 0x1e, + 0x3b, 0x2c, 0xfb, 0xd8, 0x9a, 0xd7, 0x2b, 0xc7, + 0x50, 0x9e, 0xb8, 0x64, 0xc1, 0x58, 0x2b, 0x12, + 0x9b, 0x06, 0x46, 0xb6, 0x43, 0x12, 0x50, 0x1c, + 0xaa, 0xfe, 0x04, 0x1e, 0xae, 0xe5, 0x2e, 0x70, + 0xeb, 0xca, 0xd5, 0xfb, 0x2c, 0xb2, 0xfe, 0x4b, + 0x58, 0xc0, 0x5c, 0x1b, 0x0b, 0x7e, 0x55, 0x8f, + 0x84, 0x27, 0x95, 0x61, 0x1b, 0x02, 0xe2, 0x64, + 0xa6, 0x00, 0x62, 0x24, 0x8a, 0x7b, 0xe7, 0xd1, + 0xbb, 0x3f, 0x1c, 0xc6, 0x7c, 0xff, 0x00, 0x50, + 0x3f, 0x5b, 0xcd, 0x0d, 0xff, 0x00, 0x84, 0xdc, + 0x86, 0x25, 0x6b, 0x18, 0xfb, 0xa4, 0x46, 0x79, + 0x08, 0x88, 0x88, 0x8e, 0xff, 0x00, 0xfb, 0xa2, + 0x67, 0xbb, 0x4c, 0xc7, 0x3d, 0xca, 0xb5, 0x95, + 0xcd, 0x15, 0x3b, 0xf9, 0x27, 0xd6, 0x67, 0x52, + 0xa2, 0xab, 0x20, 0x19, 0x38, 0xfa, 0x95, 0x99, + 0xb4, 0x76, 0x8d, 0xba, 0xee, 0x7b, 0x2c, 0x47, + 0x89, 0x32, 0xc8, 0x85, 0xf3, 0x8f, 0x78, 0xbf, + 0xf0, 0x23, 0xfd, 0x7d, 0x6d, 0x61, 0x3f, 0x1d, + 0x2b, 0xf6, 0x2b, 0xda, 0x0f, 0x7a, 0x34, 0x7e, + 0xf4, 0xe8, 0xff, 0x00, 0x18, 0xe5, 0x3f, 0x6e, + 0x7f, 0xd4, 0xe2, 0xff, 0x00, 0xc0, 0xa9, 0x7f, + 0x2b, 0xe3, 0xbe, 0xa6, 0x0f, 0x2d, 0x81, 0x39, + 0xa5, 0xc4, 0x3c, 0x65, 0x93, 0xcd, 0x8b, 0xf3, + 0x6a, 0x81, 0xed, 0xd4, 0xb1, 0x18, 0x16, 0x54, + 0xac, 0x38, 0xea, 0x0f, 0x98, 0x93, 0xa5, 0xda, + 0xed, 0x58, 0x2b, 0x16, 0xdd, 0x5b, 0xa6, 0xdb, + 0x00, 0x00, 0x86, 0x32, 0x54, 0x30, 0x1a, 0xe1, + 0x4c, 0x0d, 0x95, 0x2b, 0xeb, 0xa9, 0x2c, 0xc8, + 0xa7, 0x25, 0xc5, 0x96, 0xa4, 0x02, 0x2d, 0x61, + 0x14, 0xa1, 0xb6, 0x96, 0x65, 0x3a, 0x29, 0xe7, + 0xb0, 0xdc, 0x5a, 0x13, 0x73, 0xf7, 0xcb, 0x0b, + 0xa8, 0xc0, 0xe9, 0xac, 0x89, 0x8c, 0x69, 0x30, + 0x69, 0x5b, 0xe1, 0x7e, 0x26, 0xb1, 0x95, 0xc7, + 0x7d, 0x73, 0xe2, 0x78, 0x6b, 0x2c, 0x57, 0x30, + 0xd3, 0x8d, 0xbb, 0x43, 0xc3, 0x56, 0x3a, 0x14, + 0x72, 0x88, 0xab, 0xdb, 0xac, 0x85, 0x9a, 0x36, + 0x39, 0x1d, 0x0b, 0x86, 0x3e, 0xad, 0x88, 0x6a, + 0xba, 0x6e, 0x4a, 0xb9, 0xc4, 0xb5, 0xc7, 0xd8, + 0xbf, 0xae, 0x8c, 0x96, 0x42, 0xce, 0x3f, 0x84, + 0xf8, 0xa2, 0x86, 0x4c, 0xd5, 0xc3, 0x6b, 0x11, + 0xa6, 0x15, 0xce, 0xb2, 0x6c, 0xd9, 0xa6, 0x6e, + 0xcb, 0x0f, 0x6a, 0x3e, 0x52, 0x25, 0x29, 0x5b, + 0xd7, 0x96, 0x18, 0x58, 0x16, 0x31, 0x2a, 0xe8, + 0x9b, 0xf8, 0x7f, 0x1f, 0x90, 0xe2, 0xcf, 0x07, + 0x71, 0x1f, 0x16, 0xd7, 0xed, 0x98, 0x0c, 0x6f, + 0x82, 0x89, 0xf5, 0x01, 0x16, 0x8e, 0x55, 0x84, + 0x1c, 0xd5, 0xf1, 0xb6, 0x25, 0x42, 0xce, 0x65, + 0xa2, 0x40, 0x94, 0xd7, 0xad, 0x7b, 0xa1, 0xba, + 0xc9, 0xe6, 0x22, 0xc0, 0x92, 0x45, 0xe0, 0xcc, + 0x8d, 0x44, 0xe3, 0x32, 0x19, 0x4a, 0x7c, 0x77, + 0xda, 0x6b, 0x0e, 0xfc, 0x26, 0x8c, 0x6a, 0x5b, + 0x6e, 0x2f, 0xcc, 0x0d, 0x99, 0x9b, 0xd5, 0x6e, + 0x57, 0xae, 0xf4, 0xd7, 0x29, 0x1a, 0xdc, 0xd9, + 0x05, 0x95, 0x58, 0xe6, 0x81, 0x36, 0x8f, 0x1b, + 0xa3, 0x17, 0x96, 0xc9, 0x22, 0x90, 0xf0, 0xf5, + 0x97, 0x54, 0xe4, 0xb2, 0xea, 0x52, 0x67, 0xe1, + 0xec, 0x0a, 0x97, 0x66, 0x6b, 0xa2, 0xc4, 0x82, + 0xed, 0x9d, 0x68, 0xe5, 0x3e, 0x43, 0x32, 0x10, + 0xe6, 0x5f, 0x50, 0x82, 0x35, 0xc1, 0x19, 0x67, + 0x59, 0x02, 0xca, 0xe1, 0x71, 0xdc, 0x0f, 0x80, + 0xa9, 0x2c, 0x67, 0xb7, 0x4a, 0x38, 0xc2, 0xa6, + 0x2f, 0xac, 0xc1, 0x38, 0xf1, 0x8b, 0xb1, 0xa1, + 0x3c, 0x4f, 0xd6, 0xe7, 0x3f, 0x11, 0x99, 0x45, + 0xcc, 0xcf, 0xf0, 0x75, 0x3f, 0x85, 0xff, 0x00, + 0xfe, 0x6d, 0x70, 0xfd, 0xaa, 0x4b, 0xe6, 0xba, + 0xcc, 0xd5, 0xae, 0x01, 0xb7, 0x03, 0xfc, 0x2b, + 0x95, 0x2d, 0x56, 0xb5, 0x8b, 0x29, 0xf1, 0x22, + 0x24, 0x9b, 0x43, 0x32, 0xa1, 0x93, 0x92, 0x2f, + 0xb0, 0x6d, 0xfc, 0x02, 0xd7, 0xb1, 0xfd, 0x1a, + 0x6c, 0x8a, 0xf8, 0x6a, 0xbc, 0x37, 0x91, 0x8b, + 0x37, 0xe6, 0x3d, 0xa7, 0x1f, 0xc3, 0x9c, 0x3d, + 0x98, 0xc9, 0x56, 0xb1, 0x91, 0x71, 0x44, 0xc8, + 0x47, 0x26, 0x3e, 0x8c, 0x48, 0xee, 0x50, 0x2f, + 0xb4, 0xc4, 0xa0, 0x27, 0x9d, 0xc1, 0x1a, 0xf6, + 0x17, 0xb5, 0x8d, 0xab, 0xd8, 0x69, 0x37, 0x86, + 0x30, 0xfe, 0x0f, 0xa7, 0x13, 0xf6, 0xb5, 0x58, + 0xb9, 0x9c, 0x0a, 0xaa, 0x99, 0xde, 0x7c, 0x78, + 0x50, 0x87, 0x52, 0x77, 0xda, 0x59, 0xcc, 0x5f, + 0x77, 0x59, 0x1b, 0x1c, 0x4d, 0x93, 0xcc, 0x47, + 0x0f, 0xbd, 0x9d, 0x92, 0xca, 0xd9, 0xc5, 0x18, + 0xcb, 0xea, 0x62, 0xed, 0xb2, 0x41, 0x68, 0x65, + 0x3a, 0x79, 0x5b, 0x4e, 0x30, 0x3f, 0x73, 0x31, + 0xd1, 0x90, 0x18, 0xf7, 0x7b, 0x47, 0xf6, 0x8e, + 0x28, 0xfc, 0x73, 0x43, 0xf6, 0x16, 0xea, 0x35, + 0x53, 0xf0, 0x94, 0x7e, 0xb4, 0x75, 0xc4, 0xde, + 0x28, 0xfa, 0x43, 0x9b, 0xfb, 0x91, 0xff, 0x00, + 0xd6, 0x76, 0xb5, 0xee, 0x47, 0xf2, 0x46, 0xbd, + 0xc8, 0xfe, 0x48, 0xd7, 0xb9, 0x1f, 0xc9, 0x1a, + 0xf7, 0x23, 0xf9, 0x23, 0x5e, 0xe4, 0x7f, 0x24, + 0x6b, 0x1a, 0x9c, 0xaa, 0x49, 0xf5, 0xd9, 0x6e, + 0xb2, 0xc6, 0xaa, 0xd6, 0xbe, 0x5b, 0x4d, 0x63, + 0xd6, 0xb1, 0x55, 0x83, 0x3e, 0xe5, 0xd6, 0x88, + 0x29, 0x63, 0xb6, 0x06, 0x1b, 0x04, 0x3a, 0x23, + 0x03, 0x2c, 0xea, 0x05, 0x0a, 0x97, 0x6b, 0x43, + 0xe9, 0x32, 0xf7, 0x23, 0xd0, 0x24, 0x69, 0xea, + 0x26, 0x08, 0xa4, 0x97, 0x0c, 0x49, 0x03, 0x03, + 0x78, 0x8d, 0xa2, 0x40, 0xc4, 0xa3, 0xee, 0x4e, + 0xb8, 0x9d, 0x56, 0x93, 0x2d, 0xc6, 0x50, 0xab, + 0x64, 0xf0, 0xfb, 0x1b, 0x47, 0xaa, 0xcb, 0xd5, + 0x1f, 0x91, 0xc2, 0x1c, 0xb5, 0x66, 0x26, 0x62, + 0x18, 0xd4, 0x3a, 0xd1, 0x6e, 0x52, 0x2c, 0x24, + 0xc0, 0x37, 0x9a, 0x0e, 0x44, 0x95, 0x05, 0xc3, + 0x63, 0x5b, 0x1a, 0x5c, 0x2f, 0x57, 0x26, 0x7c, + 0x49, 0xbe, 0x68, 0x4a, 0x32, 0x07, 0x88, 0x0b, + 0x9f, 0x66, 0xb1, 0x7d, 0x98, 0x66, 0x76, 0x8b, + 0xf2, 0x35, 0x7b, 0x22, 0xe8, 0xc1, 0xcc, 0x3b, + 0x91, 0x1d, 0x36, 0x0c, 0x1c, 0x67, 0xac, 0x86, + 0x04, 0x73, 0xd7, 0x68, 0xf8, 0x23, 0xb2, 0x54, + 0xe5, 0xcb, 0x1c, 0x08, 0xdb, 0xb1, 0x65, 0x76, + 0x99, 0xd1, 0xc3, 0x5c, 0xa3, 0x61, 0x9b, 0x02, + 0xc3, 0xbc, 0x98, 0x40, 0xbd, 0xb7, 0xdb, 0xbe, + 0x77, 0xbf, 0xb6, 0x0d, 0x18, 0xac, 0xb8, 0x67, + 0x30, 0x98, 0xd4, 0xd4, 0xe7, 0xc8, 0xd7, 0x5d, + 0x65, 0xdc, 0xa5, 0x94, 0x7b, 0xfa, 0xc3, 0x97, + 0xbd, 0x69, 0x8b, 0x86, 0x76, 0x74, 0x3d, 0x8c, + 0xb0, 0xd9, 0xe9, 0xac, 0x37, 0x4f, 0x4c, 0x0c, + 0xa0, 0x92, 0xd4, 0x5a, 0xc5, 0xd8, 0xa4, 0xe5, + 0x5e, 0x74, 0xe4, 0x54, 0x57, 0x06, 0xa2, 0x03, + 0x1b, 0x0a, 0x9b, 0xbd, 0x60, 0x7d, 0x04, 0xde, + 0xdd, 0x30, 0xfa, 0xf3, 0xb2, 0x69, 0x3b, 0xab, + 0xd7, 0x0e, 0x87, 0x52, 0x7a, 0x90, 0x19, 0xe6, + 0xdb, 0x76, 0x31, 0x2f, 0xa4, 0xee, 0x1e, 0x75, + 0x4c, 0xa3, 0x2c, 0xd9, 0xec, 0x3d, 0x83, 0x28, + 0xac, 0x83, 0x48, 0x94, 0x09, 0x49, 0xbd, 0xe5, + 0x67, 0xa7, 0x58, 0x45, 0x45, 0x8f, 0x2b, 0x89, + 0x31, 0x31, 0x25, 0x23, 0x95, 0xfb, 0x58, 0xa1, + 0x6d, 0x6b, 0x1b, 0x15, 0x59, 0x2b, 0x67, 0x24, + 0x83, 0x02, 0x7c, 0x92, 0x26, 0xb6, 0x0f, 0x8a, + 0x6a, 0x60, 0x48, 0xb1, 0x67, 0x1e, 0xe8, 0x08, + 0x67, 0xbb, 0xc9, 0xaf, 0x72, 0x3f, 0x92, 0x35, + 0xee, 0x47, 0xf2, 0x46, 0xbd, 0xc8, 0xfe, 0x48, + 0xd7, 0xb9, 0x1f, 0xc9, 0x1a, 0xf7, 0x23, 0xf9, + 0x23, 0x5e, 0xe4, 0x7f, 0x24, 0x6b, 0x84, 0xf6, + 0xff, 0x00, 0x0b, 0x88, 0x7f, 0x96, 0x9f, 0xf5, + 0x38, 0x2f, 0x78, 0x89, 0xf6, 0x8e, 0x21, 0xf2, + 0xfe, 0x1f, 0x53, 0x5e, 0xe4, 0x7f, 0x24, 0x6b, + 0xdc, 0x8f, 0xe4, 0x8d, 0x7b, 0x91, 0xfc, 0x91, + 0xa4, 0xd7, 0xb9, 0x51, 0x76, 0xd1, 0xd9, 0x72, + 0x8f, 0x9a, 0xe4, 0x4f, 0x58, 0xb4, 0xea, 0x62, + 0xae, 0xda, 0x48, 0x91, 0xd4, 0x6d, 0x7b, 0x1c, + 0xbd, 0x74, 0xae, 0x4a, 0x14, 0xe5, 0x91, 0x44, + 0x72, 0xf3, 0x6d, 0x3a, 0xa6, 0xca, 0x58, 0xaa, + 0x18, 0x4b, 0xee, 0xbb, 0x7d, 0x02, 0xbe, 0xd3, + 0x7d, 0x74, 0x2d, 0x56, 0xa5, 0x8c, 0x9c, 0x95, + 0x87, 0x4c, 0xe5, 0xad, 0xe4, 0x9e, 0x96, 0x55, + 0x15, 0xc8, 0x1b, 0x05, 0xe3, 0x58, 0xba, 0xe9, + 0x12, 0x05, 0xc8, 0x93, 0x26, 0x20, 0x2c, 0x62, + 0x58, 0xd7, 0xc5, 0xa3, 0xc7, 0x57, 0x5d, 0xa9, + 0x26, 0xe5, 0xd1, 0x4c, 0xd8, 0xb7, 0x59, 0xc6, + 0xcf, 0x43, 0xa2, 0x49, 0x92, 0x4b, 0xa2, 0xbf, + 0x6b, 0x75, 0x47, 0x5b, 0x24, 0xb1, 0x75, 0x14, + 0xe6, 0x8f, 0x4f, 0x55, 0x8e, 0x3c, 0x18, 0x6f, + 0x6a, 0xa9, 0xde, 0x9c, 0x5b, 0x5e, 0xd1, 0xb6, + 0x38, 0xfb, 0xaf, 0x52, 0x6b, 0xdb, 0xb2, 0x0a, + 0x00, 0x80, 0xae, 0xe9, 0x72, 0x0c, 0x94, 0x9b, + 0x9e, 0x11, 0x0a, 0xaf, 0x5d, 0xae, 0xce, 0xb4, + 0x97, 0x54, 0x58, 0xf3, 0xf0, 0x6a, 0xd9, 0x08, + 0x7e, 0x40, 0x71, 0xc2, 0xe7, 0x76, 0x92, 0xc7, + 0x22, 0xe4, 0xd3, 0x6d, 0xb4, 0x75, 0x14, 0x4a, + 0x3a, 0xeb, 0x70, 0x9f, 0xb5, 0x1d, 0xdf, 0x08, + 0xca, 0x16, 0x76, 0x3b, 0x39, 0x04, 0x75, 0x25, + 0xe9, 0x9f, 0x04, 0x51, 0x71, 0x64, 0x6c, 0x63, + 0x69, 0xd3, 0xed, 0x16, 0x79, 0x6e, 0x5d, 0x47, + 0x2c, 0xb2, 0xae, 0x38, 0x9c, 0x16, 0x59, 0xc8, + 0x32, 0xc5, 0x28, 0x1f, 0x92, 0xb2, 0x85, 0x93, + 0x1a, 0x0b, 0xed, 0x24, 0x7c, 0xdc, 0xb5, 0x6c, + 0x75, 0x31, 0x82, 0xdb, 0xd5, 0x6f, 0x5c, 0xa7, + 0x8f, 0x37, 0x94, 0x64, 0x2c, 0xab, 0x1a, 0x76, + 0x42, 0xe4, 0x02, 0x62, 0xbc, 0xa8, 0x18, 0xae, + 0xc8, 0xe2, 0x11, 0x7b, 0xd3, 0xd7, 0x81, 0xda, + 0xbc, 0xb5, 0x82, 0xc5, 0x86, 0x4f, 0x31, 0x79, + 0x03, 0x65, 0x18, 0xe2, 0xa4, 0x84, 0x51, 0xe7, + 0x24, 0x8d, 0xcb, 0xb7, 0x89, 0xdd, 0x20, 0xb0, + 0xd4, 0xc8, 0x3c, 0x6a, 0x25, 0x35, 0xde, 0xe7, + 0xc5, 0x76, 0x26, 0xc3, 0x76, 0x15, 0x2a, 0xc5, + 0x79, 0x29, 0x68, 0x56, 0xc8, 0x62, 0xeb, 0x56, + 0xc6, 0xfb, 0x65, 0xe5, 0x64, 0xeb, 0x93, 0xad, + 0x1d, 0x0a, 0x63, 0x8f, 0xaa, 0xbb, 0x87, 0x79, + 0x27, 0x62, 0x6f, 0x64, 0x3b, 0x39, 0xd6, 0x22, + 0x96, 0x57, 0x96, 0xe4, 0x2c, 0x43, 0xc0, 0xba, + 0x12, 0x42, 0xd5, 0x21, 0x6f, 0x96, 0x59, 0xc5, + 0xa2, 0x92, 0x2b, 0xd2, 0xb5, 0x39, 0x56, 0xb9, + 0xbe, 0x0f, 0x62, 0xb2, 0x5f, 0x68, 0xf4, 0x7a, + 0x75, 0x59, 0x74, 0xdb, 0x63, 0x95, 0xbf, 0xbd, + 0xfb, 0x14, 0x3d, 0x1d, 0x9e, 0xc9, 0x5a, 0x5a, + 0x05, 0x0c, 0x28, 0x72, 0xb3, 0x78, 0xea, 0xbb, + 0xac, 0xab, 0xad, 0x72, 0x9b, 0x56, 0xba, 0xa4, + 0x7f, 0x5c, 0xb8, 0xac, 0x6d, 0xa9, 0x74, 0xa6, + 0xcf, 0x66, 0x20, 0x9a, 0xd6, 0x9a, 0xba, 0xc7, + 0x5e, 0x20, 0x49, 0x4c, 0xeb, 0xef, 0x2d, 0x85, + 0xb0, 0x4a, 0x52, 0xdc, 0x72, 0x89, 0xbe, 0x10, + 0x7d, 0x2a, 0x2e, 0x65, 0x8e, 0xd7, 0x62, 0xa5, + 0x03, 0x7c, 0x39, 0xa1, 0xd3, 0xaa, 0xea, 0xeb, + 0x11, 0xec, 0xee, 0x10, 0x8b, 0x76, 0x90, 0xe7, + 0x4a, 0xa7, 0xa6, 0x07, 0xcc, 0xbe, 0xa1, 0x29, + 0x19, 0x2c, 0x5f, 0x65, 0xdb, 0x16, 0x85, 0x59, + 0xba, 0x76, 0x2b, 0xf6, 0x9c, 0x8d, 0xec, 0x75, + 0x6b, 0x85, 0x51, 0x23, 0xd8, 0x37, 0xff, 0x00, + 0x97, 0x86, 0xf5, 0x4c, 0x62, 0x9d, 0x5a, 0xcf, + 0xa8, 0x37, 0x6e, 0xae, 0xc1, 0x90, 0x41, 0xdf, + 0xb9, 0x34, 0x2a, 0xf2, 0x5a, 0xb1, 0x4b, 0xb1, + 0x3a, 0xc0, 0x8e, 0x45, 0x96, 0x69, 0xbc, 0x6b, + 0xdc, 0x5a, 0xab, 0x72, 0x4c, 0x1f, 0x65, 0x32, + 0x19, 0x69, 0x75, 0x20, 0x79, 0x67, 0xc4, 0x93, + 0x28, 0x91, 0x8f, 0x72, 0x3f, 0x92, 0x35, 0xee, + 0x47, 0xf2, 0x46, 0xbd, 0xc8, 0xfe, 0x48, 0xd7, + 0xb9, 0x1f, 0xc9, 0x1a, 0xe1, 0xef, 0xf4, 0x63, + 0x87, 0xff, 0x00, 0x93, 0x2b, 0xe9, 0xff, 0x00, + 0x81, 0x1f, 0xeb, 0xeb, 0x6b, 0x09, 0xf8, 0xe9, + 0x5f, 0xb1, 0x5e, 0xd0, 0x7b, 0xd1, 0xa3, 0xf7, + 0xa7, 0x47, 0xf8, 0xc7, 0x27, 0xfb, 0x73, 0xbe, + 0xa7, 0x17, 0xfe, 0x03, 0x4b, 0xf9, 0x63, 0x1d, + 0xf5, 0x13, 0xc2, 0x5c, 0x4b, 0x93, 0x2c, 0x03, + 0xb0, 0xf9, 0x2b, 0x59, 0x3e, 0x1f, 0xce, 0xcd, + 0x1b, 0x59, 0x2a, 0x82, 0xac, 0x90, 0x26, 0x32, + 0x78, 0x9b, 0xd5, 0xa9, 0x03, 0x6e, 0xa8, 0x1a, + 0xca, 0xc9, 0xb5, 0x55, 0xf5, 0x94, 0xd1, 0xeb, + 0xf5, 0x01, 0xe0, 0x03, 0xb3, 0x27, 0x86, 0xb1, + 0x78, 0xc1, 0x6e, 0x7f, 0x1f, 0x51, 0x99, 0xc3, + 0xe2, 0x9e, 0x23, 0x5d, 0x02, 0xa3, 0x73, 0x21, + 0x1c, 0x45, 0x8c, 0xf0, 0x43, 0x6b, 0x61, 0xd1, + 0x76, 0x42, 0xda, 0xe9, 0x63, 0xaa, 0x42, 0xd8, + 0x2b, 0xb7, 0x35, 0xe2, 0xe5, 0xa5, 0xcb, 0x3a, + 0x08, 0x99, 0xea, 0x95, 0x7c, 0x7e, 0x37, 0x89, + 0x67, 0x88, 0x8b, 0x29, 0xc6, 0x1c, 0x2d, 0x92, + 0xc9, 0x64, 0xd5, 0x88, 0xca, 0xe3, 0xa9, 0xe2, + 0xf0, 0x5c, 0x3d, 0x91, 0x2b, 0x7e, 0x3d, 0x7b, + 0x89, 0x0b, 0x76, 0x6f, 0x3d, 0x8d, 0x96, 0xb1, + 0x75, 0xab, 0xd8, 0x58, 0x29, 0x10, 0x2a, 0x61, + 0xb4, 0xb9, 0x67, 0xd9, 0x00, 0xef, 0xe5, 0xa3, + 0x1f, 0x89, 0xe2, 0x9c, 0x77, 0x15, 0xe3, 0xe8, + 0xe5, 0xca, 0x8d, 0xfb, 0x29, 0x51, 0x65, 0x2d, + 0x75, 0xe9, 0x3d, 0xd5, 0x2b, 0xd7, 0x3b, 0xf0, + 0xa6, 0x88, 0xc6, 0xf1, 0x15, 0xba, 0x81, 0x25, + 0x1d, 0x40, 0x0f, 0x1a, 0x47, 0x86, 0xef, 0x58, + 0xe3, 0xec, 0xc7, 0x0d, 0xb7, 0x87, 0xb1, 0x55, + 0xf1, 0x39, 0x3c, 0x36, 0x2f, 0x19, 0x7c, 0xee, + 0xe5, 0x0b, 0x0b, 0xcf, 0x14, 0xb2, 0x1c, 0x39, + 0x91, 0xe8, 0xb2, 0x95, 0x46, 0x64, 0xd3, 0xd1, + 0x5e, 0xf9, 0x69, 0xaa, 0x74, 0x2c, 0x2c, 0x9c, + 0x6a, 0x68, 0x72, 0xc4, 0xce, 0x37, 0x23, 0x61, + 0xb9, 0x5f, 0xaf, 0xfb, 0xd7, 0xc7, 0x8e, 0x6d, + 0x35, 0x17, 0x1b, 0x6f, 0x03, 0x89, 0x2e, 0xa0, + 0x62, 0x7a, 0x6f, 0x3a, 0xa9, 0x8b, 0xf9, 0x3a, + 0xd7, 0x5f, 0xe1, 0xdb, 0xb6, 0x68, 0xa5, 0xc0, + 0xc2, 0x40, 0xa1, 0x4b, 0x26, 0x40, 0x6f, 0x65, + 0x35, 0xad, 0x05, 0xea, 0xea, 0x7b, 0x56, 0x8b, + 0xaa, 0x5b, 0xd2, 0xbb, 0x4a, 0x03, 0x98, 0x5d, + 0x80, 0x55, 0x95, 0xaa, 0xc2, 0x85, 0xa3, 0xb1, + 0xc2, 0xdc, 0xb0, 0x60, 0x6f, 0xca, 0x43, 0x13, + 0x1f, 0x51, 0x7c, 0x3b, 0x36, 0x28, 0xc6, 0x1e, + 0x04, 0x52, 0x4a, 0xf0, 0x1e, 0x0f, 0xb5, 0x74, + 0x7b, 0x44, 0x58, 0x9f, 0xec, 0x9f, 0x83, 0x7c, + 0x2b, 0xcd, 0xd4, 0xf1, 0xb9, 0xfb, 0x67, 0x57, + 0x6f, 0x13, 0x9b, 0x93, 0xc5, 0xd7, 0xb2, 0x05, + 0xf6, 0x5c, 0xed, 0x0b, 0xf0, 0x80, 0xf1, 0x3f, + 0x05, 0x1f, 0x62, 0xbb, 0x2b, 0xb5, 0xc4, 0x35, + 0xf1, 0x17, 0xb1, 0x55, 0xa0, 0x96, 0xca, 0xc2, + 0xca, 0xa1, 0xcd, 0x79, 0x56, 0x88, 0xed, 0x85, + 0x78, 0xe6, 0xc7, 0xab, 0x62, 0x83, 0x85, 0xef, + 0xc2, 0xf4, 0xf1, 0x94, 0x30, 0x1c, 0x44, 0x71, + 0xc2, 0x45, 0x84, 0xe2, 0x0a, 0x5c, 0x41, 0x8c, + 0xc8, 0x59, 0xae, 0x86, 0x0f, 0x11, 0x5b, 0xcb, + 0x2d, 0x31, 0xb3, 0xf1, 0xe0, 0xee, 0x7e, 0x6a, + 0xcf, 0x33, 0x5b, 0x2c, 0xa6, 0x48, 0x02, 0x27, + 0x66, 0x07, 0x77, 0xb1, 0x75, 0xd2, 0xad, 0xc3, + 0xf8, 0xba, 0x58, 0x2c, 0x7d, 0x26, 0x66, 0xed, + 0xe2, 0xb0, 0xb9, 0x4a, 0xec, 0xc5, 0x5a, 0x89, + 0xc9, 0x0b, 0x70, 0xca, 0x89, 0xed, 0x0d, 0x76, + 0x2a, 0xa8, 0xb5, 0x2f, 0xae, 0x9a, 0x8a, 0xb4, + 0x22, 0xfb, 0x0e, 0x38, 0xb4, 0xcd, 0xc8, 0x16, + 0xf3, 0x0e, 0xf0, 0x27, 0x30, 0x86, 0x76, 0xdb, + 0x71, 0x93, 0x99, 0x8e, 0xe9, 0xda, 0x63, 0xbb, + 0xee, 0x4c, 0x47, 0xf6, 0x8e, 0x27, 0x2f, 0xbf, + 0x9b, 0xa5, 0x1f, 0x92, 0x83, 0x27, 0xff, 0x00, + 0xc6, 0xd4, 0x6a, 0xa7, 0xe1, 0x28, 0xfd, 0x68, + 0xeb, 0x89, 0xbf, 0xd2, 0x1c, 0xdf, 0xf2, 0x9d, + 0xaf, 0xdd, 0x63, 0x2f, 0x3f, 0x9e, 0x53, 0x52, + 0xf5, 0x5b, 0x2d, 0xe9, 0xc4, 0x13, 0x3a, 0x69, + 0x68, 0x99, 0x72, 0x0c, 0x90, 0xc4, 0x96, 0xd1, + 0xdd, 0x12, 0x43, 0xbc, 0xfd, 0xd8, 0xd5, 0x4c, + 0x83, 0xfa, 0x9d, 0x04, 0x5a, 0x97, 0x1c, 0x2c, + 0x60, 0x99, 0xc9, 0xe3, 0x7b, 0x91, 0x92, 0x18, + 0x99, 0xef, 0xf2, 0x73, 0x47, 0xbf, 0xac, 0x28, + 0x18, 0x58, 0x86, 0xd4, 0xc7, 0xe4, 0xaa, 0xe4, + 0x8c, 0x40, 0x3f, 0x7c, 0x37, 0xc1, 0xb6, 0x71, + 0x58, 0x69, 0x0f, 0x6d, 0x8e, 0x71, 0xad, 0x4d, + 0x80, 0xb3, 0x22, 0xe5, 0x91, 0xe7, 0x6f, 0x2c, + 0x17, 0xdd, 0xa9, 0x96, 0x07, 0x5b, 0x2b, 0x15, + 0xb8, 0x7a, 0xb6, 0x28, 0xa8, 0xcd, 0x20, 0x11, + 0x6d, 0x85, 0x61, 0xbc, 0x18, 0xc8, 0x2b, 0x5d, + 0xae, 0x7f, 0x7a, 0xc9, 0xcc, 0x9c, 0xfb, 0x47, + 0x31, 0xaa, 0x39, 0x79, 0x20, 0xa7, 0xbb, 0x3b, + 0x8f, 0x64, 0x1c, 0xbb, 0x22, 0x78, 0x72, 0xaf, + 0xb0, 0x8c, 0xae, 0x3b, 0x05, 0x9b, 0x0d, 0x77, + 0x52, 0x64, 0xa2, 0x47, 0xc5, 0x68, 0xf4, 0xf6, + 0x13, 0xe6, 0x9d, 0xf7, 0xe5, 0xfb, 0xac, 0xab, + 0x7d, 0x0c, 0x74, 0x1e, 0x6b, 0x1b, 0x7e, 0x04, + 0x50, 0x97, 0xa8, 0x17, 0x52, 0x96, 0x55, 0x12, + 0xd9, 0x53, 0x8e, 0x16, 0xe6, 0x22, 0xc5, 0xca, + 0xef, 0x5d, 0x73, 0x1e, 0x93, 0xfa, 0x66, 0x26, + 0x61, 0xf7, 0x71, 0x2a, 0x8c, 0xc6, 0x7f, 0xb7, + 0xd0, 0x6e, 0x65, 0x93, 0x93, 0x04, 0x20, 0x20, + 0x67, 0x20, 0x9a, 0x20, 0x80, 0xec, 0xa7, 0x61, + 0xbd, 0x7a, 0x7b, 0x55, 0x34, 0xdb, 0xab, 0x26, + 0x9e, 0xa4, 0x36, 0x4f, 0x98, 0xa3, 0x75, 0x16, + 0x66, 0xaa, 0x56, 0x5d, 0xab, 0x22, 0xce, 0x1e, + 0x61, 0x58, 0x5d, 0x2a, 0xd4, 0x53, 0x72, 0xc6, + 0x35, 0x59, 0x21, 0xbd, 0x6d, 0x95, 0x6b, 0x1f, + 0x4a, 0xa9, 0x34, 0xad, 0xaa, 0x16, 0x0a, 0x02, + 0x86, 0x40, 0x13, 0x0f, 0xa6, 0x53, 0xb6, 0xae, + 0xdf, 0xad, 0xd4, 0x84, 0x58, 0x9a, 0xfc, 0x9d, + 0x51, 0x81, 0x67, 0xb5, 0xd4, 0x42, 0x4b, 0x98, + 0x44, 0x8e, 0x23, 0xc7, 0x59, 0x6d, 0xb1, 0x4f, + 0x76, 0xd3, 0xfc, 0x5f, 0xbb, 0xe1, 0x4f, 0xf2, + 0xb8, 0x87, 0xf9, 0x69, 0xff, 0x00, 0x53, 0x82, + 0xff, 0x00, 0xcc, 0x71, 0x0f, 0xed, 0xf5, 0x3f, + 0x70, 0xbb, 0xce, 0x97, 0x40, 0xae, 0xae, 0x4d, + 0x50, 0x48, 0xfb, 0x28, 0xb6, 0xd6, 0x32, 0xdd, + 0x44, 0x10, 0xf8, 0xe1, 0xb7, 0x2b, 0x9c, 0xb9, + 0x22, 0x82, 0xdc, 0x46, 0x24, 0x87, 0x79, 0x88, + 0x89, 0xed, 0x79, 0x2b, 0x16, 0xed, 0x47, 0x82, + 0xf3, 0x34, 0x84, 0x8d, 0x87, 0x65, 0x82, 0x77, + 0xf1, 0x37, 0x69, 0x26, 0x23, 0xac, 0xce, 0xe5, + 0xf5, 0xec, 0x04, 0xb3, 0x62, 0xee, 0x1e, 0x62, + 0x81, 0x29, 0x8e, 0x59, 0xc4, 0xad, 0x99, 0x0c, + 0xcd, 0x06, 0xe2, 0x71, 0xd6, 0x28, 0x4d, 0x6c, + 0x67, 0x48, 0x06, 0xe4, 0xc3, 0x6c, 0xbe, 0x93, + 0xd7, 0x71, 0x8c, 0x2e, 0xc6, 0x5b, 0xd9, 0xe9, + 0xdc, 0xde, 0xb3, 0xf7, 0x04, 0xee, 0xad, 0xa5, + 0x91, 0x0b, 0xa9, 0x99, 0xb8, 0xbb, 0x8e, 0xbe, + 0xaa, 0x98, 0x5a, 0xdd, 0x92, 0x03, 0x91, 0x15, + 0xad, 0xe3, 0x06, 0x9d, 0x53, 0xc9, 0xae, 0xc0, + 0x5a, 0x19, 0x74, 0x76, 0x3a, 0x7c, 0xc9, 0xa4, + 0x68, 0x10, 0x9b, 0x16, 0x24, 0x5a, 0x52, 0x0a, + 0x83, 0x3b, 0x75, 0x8d, 0xf7, 0xee, 0x55, 0x7a, + 0x2f, 0xf4, 0xf1, 0x17, 0xe9, 0xd2, 0xb0, 0xaa, + 0xd9, 0x0b, 0x16, 0x9a, 0xea, 0xf7, 0xb1, 0xd9, + 0x09, 0x98, 0xb1, 0x8d, 0x4a, 0xa5, 0xb1, 0x6c, + 0xeb, 0x20, 0x24, 0xce, 0xc2, 0xe5, 0x6c, 0x6b, + 0x84, 0xc5, 0x8b, 0xaf, 0x76, 0xc1, 0x5f, 0x50, + 0x63, 0x33, 0x57, 0xef, 0xd5, 0x52, 0xeb, 0x28, + 0x8a, 0xed, 0x4b, 0x56, 0x97, 0x78, 0x12, 0xc3, + 0xed, 0x23, 0xd9, 0x6c, 0x43, 0xc0, 0xc0, 0x99, + 0xed, 0xe1, 0x0a, 0x60, 0xcc, 0x44, 0xca, 0xf6, + 0x3c, 0x05, 0xb6, 0x83, 0xe3, 0xc1, 0xf8, 0xfc, + 0xda, 0x2e, 0x40, 0x2c, 0x3e, 0xcf, 0x92, 0xb3, + 0x99, 0x7a, 0xba, 0x1e, 0xd9, 0x1c, 0xeb, 0x88, + 0xc8, 0x27, 0x9e, 0x4b, 0xa7, 0x23, 0xb1, 0xec, + 0x25, 0xcb, 0x1c, 0xd7, 0xf1, 0x77, 0xba, 0xb1, + 0x4f, 0x21, 0xd9, 0x5b, 0x0f, 0x40, 0x8b, 0x1d, + 0x52, 0xed, 0x22, 0x67, 0x67, 0x7c, 0x28, 0x8d, + 0x62, 0xe4, 0x92, 0xac, 0x59, 0x45, 0x84, 0xf3, + 0x81, 0x4c, 0x34, 0x1a, 0xb3, 0x82, 0x4f, 0x29, + 0xd2, 0xa7, 0x4e, 0xee, 0x5a, 0xba, 0xeb, 0x95, + 0xeb, 0x87, 0x96, 0xaa, 0xb4, 0xa6, 0xcf, 0x84, + 0x6d, 0x56, 0x0a, 0xca, 0xfd, 0xe6, 0x4c, 0x64, + 0x33, 0x1e, 0x94, 0x84, 0xa5, 0xe8, 0x2b, 0x2b, + 0x65, 0xa8, 0x7b, 0x67, 0x9c, 0x06, 0x05, 0x65, + 0x6a, 0x8b, 0xe5, 0xb5, 0xa2, 0xcf, 0x81, 0xed, + 0x3b, 0x2b, 0x53, 0x19, 0x55, 0x13, 0x6f, 0x27, + 0x8f, 0x1b, 0xa9, 0xb0, 0xe6, 0xe2, 0xeb, 0xbe, + 0xba, 0x14, 0x2f, 0xad, 0x7f, 0xa6, 0x12, 0xb6, + 0x7d, 0x92, 0xa2, 0xd8, 0xc5, 0xfb, 0x71, 0x74, + 0xc5, 0x55, 0xea, 0x5c, 0xab, 0x59, 0x44, 0x30, + 0x8a, 0xe3, 0x11, 0x63, 0xa6, 0xa0, 0xe2, 0x2c, + 0x56, 0x4e, 0x37, 0x6b, 0x6c, 0xf3, 0x99, 0x9d, + 0x5a, 0x4e, 0x33, 0xde, 0x76, 0x8b, 0x07, 0x0a, + 0x0f, 0x6a, 0xd8, 0xc6, 0xb9, 0x75, 0xb2, 0x55, + 0x54, 0x14, 0xb2, 0x88, 0xb7, 0x42, 0xa5, 0x4a, + 0xfb, 0x5d, 0xbb, 0x76, 0x6e, 0x8a, 0xef, 0x3e, + 0xdf, 0x69, 0x59, 0x30, 0x7a, 0x76, 0x13, 0x26, + 0x96, 0x2c, 0xe4, 0x3b, 0x38, 0x24, 0x26, 0x57, + 0xe3, 0x6a, 0xaa, 0xec, 0xbb, 0x21, 0x58, 0x6b, + 0x32, 0x95, 0xaf, 0x6a, 0xa4, 0x96, 0x49, 0x4f, + 0x82, 0x71, 0x78, 0xec, 0x85, 0x4d, 0xfb, 0x62, + 0xe7, 0x9a, 0x19, 0x8a, 0x5b, 0x2a, 0x5a, 0xf7, + 0x32, 0x0f, 0x28, 0x62, 0x40, 0x97, 0x1c, 0xca, + 0x70, 0xac, 0xd4, 0xd9, 0xc8, 0x66, 0x6e, 0x35, + 0x65, 0x03, 0xc8, 0x01, 0x90, 0xb6, 0x2f, 0x42, + 0xc4, 0xe2, 0x7d, 0xb0, 0x81, 0x71, 0xca, 0xc2, + 0xe4, 0x0f, 0x1b, 0xbe, 0x37, 0xdf, 0xf7, 0x3c, + 0x3d, 0xfe, 0x8c, 0x70, 0xff, 0x00, 0xf2, 0x65, + 0x7d, 0x3f, 0xf0, 0x33, 0xfd, 0x7d, 0x6d, 0x61, + 0x3f, 0x1d, 0x2b, 0xf6, 0x2b, 0xda, 0x0f, 0x7a, + 0x34, 0x7e, 0xf4, 0xe8, 0xff, 0x00, 0x18, 0xe4, + 0xff, 0x00, 0x6e, 0x77, 0xd4, 0xe2, 0xff, 0x00, + 0xc0, 0x69, 0x7f, 0x2c, 0x63, 0xbe, 0xa0, 0x9c, + 0x89, 0x40, 0x14, 0xcc, 0x09, 0xcc, 0x4f, 0x29, + 0x48, 0xed, 0xcd, 0x02, 0x5e, 0x49, 0x91, 0xde, + 0x37, 0xdb, 0xc9, 0xbc, 0x6f, 0xa1, 0x92, 0x12, + 0x18, 0x38, 0xe6, 0x09, 0x91, 0x98, 0x83, 0x1d, + 0xf6, 0xdc, 0x66, 0x7d, 0xd4, 0x6f, 0x13, 0x1b, + 0xc7, 0xdd, 0x8d, 0xbe, 0xa4, 0x4c, 0xc4, 0xc4, + 0x17, 0x78, 0xce, 0xde, 0x58, 0xdf, 0x6e, 0xef, + 0xbf, 0xdf, 0x13, 0x1e, 0xfc, 0x7d, 0x49, 0xe5, + 0x19, 0x2d, 0xa2, 0x4a, 0x76, 0x89, 0x9d, 0x86, + 0x3c, 0xa5, 0x3b, 0x79, 0x22, 0x3e, 0xec, 0xf9, + 0x23, 0x46, 0x4b, 0x53, 0x18, 0x2a, 0x8e, 0x66, + 0x10, 0x01, 0x10, 0xae, 0x3b, 0xe7, 0x73, 0x98, + 0x89, 0x81, 0x8d, 0xa2, 0x67, 0x72, 0xdb, 0xc9, + 0x3f, 0x7b, 0x46, 0x60, 0xa6, 0x18, 0x2e, 0x37, + 0x61, 0x00, 0x11, 0x0a, 0xe3, 0xbf, 0xbc, 0xe6, + 0x23, 0x61, 0x8e, 0xe9, 0xf2, 0xed, 0xe4, 0x9d, + 0x44, 0x44, 0x4c, 0xcc, 0xce, 0xd1, 0x11, 0xdf, + 0x33, 0x33, 0xe4, 0x88, 0x8f, 0xbf, 0xa9, 0x06, + 0x01, 0x01, 0x8f, 0x71, 0x01, 0x8c, 0x89, 0x44, + 0xff, 0x00, 0x18, 0xce, 0xd3, 0x1a, 0x9e, 0x74, + 0xb4, 0x79, 0x46, 0x0c, 0xb9, 0x96, 0x71, 0xca, + 0x05, 0x3b, 0x09, 0xce, 0xf1, 0xdc, 0x25, 0x33, + 0x11, 0x05, 0x3d, 0xd3, 0x3d, 0xd1, 0xa9, 0x38, + 0x12, 0x90, 0x19, 0x88, 0x23, 0xda, 0x79, 0x46, + 0x4b, 0xdc, 0xc4, 0x97, 0x92, 0x26, 0x76, 0x9d, + 0xb7, 0xf2, 0xed, 0xfd, 0xa7, 0x89, 0xbf, 0x1e, + 0xd4, 0xfe, 0x4f, 0x9d, 0x46, 0xaa, 0x7e, 0x12, + 0x8f, 0xd6, 0x8e, 0xb3, 0xa8, 0xfa, 0xd2, 0xe0, + 0x9b, 0x1d, 0x0c, 0xd6, 0x55, 0x3d, 0xa2, 0xd6, + 0x0d, 0xcd, 0xb4, 0xfe, 0x95, 0xf7, 0x87, 0x5a, + 0xcb, 0x63, 0x20, 0x10, 0xcb, 0x0d, 0xe5, 0xea, + 0x39, 0x90, 0x03, 0x06, 0xc2, 0x22, 0xe5, 0x1d, + 0xf6, 0xd7, 0xa1, 0x9c, 0x05, 0xea, 0x07, 0xfd, + 0x27, 0xaf, 0x43, 0x38, 0x0b, 0xd4, 0x0f, 0xfa, + 0x4f, 0x5e, 0x86, 0x70, 0x17, 0xa8, 0x1f, 0xf4, + 0x9e, 0xbd, 0x0c, 0xe0, 0x2f, 0x50, 0x3f, 0xe9, + 0x3d, 0x0b, 0xe3, 0x85, 0x7d, 0x8c, 0xe9, 0x25, + 0xb6, 0xe3, 0x1f, 0x54, 0xef, 0xe1, 0xae, 0x24, + 0x6e, 0x5f, 0x90, 0x16, 0x76, 0x54, 0x12, 0xed, + 0xbe, 0x04, 0x84, 0x0d, 0x52, 0xc7, 0xda, 0x9a, + 0xd4, 0xd3, 0xd6, 0x4c, 0x36, 0xc8, 0x4b, 0x07, + 0x41, 0x6a, 0xf7, 0x0e, 0x7b, 0x18, 0xe3, 0x3a, + 0x96, 0x6f, 0x54, 0x5d, 0x7b, 0xbc, 0x3f, 0x9a, + 0x2b, 0x26, 0xec, 0x71, 0x28, 0x2d, 0x8f, 0x25, + 0x0e, 0xdc, 0xb5, 0xf2, 0x31, 0xc0, 0xb8, 0x97, + 0x35, 0x7c, 0xe7, 0xcd, 0xb7, 0x8a, 0x32, 0x5a, + 0x9b, 0x7f, 0x5a, 0x7e, 0xc6, 0xa0, 0xce, 0xc6, + 0xdc, 0x92, 0xf1, 0xec, 0xc3, 0x5b, 0x1c, 0x83, + 0xb1, 0xc9, 0x39, 0x06, 0xdd, 0x52, 0xe2, 0xe4, + 0xd6, 0xe9, 0x8f, 0x2b, 0x4a, 0x14, 0xdb, 0x4b, + 0xb6, 0xc4, 0xa5, 0x96, 0x15, 0x59, 0x95, 0xfa, + 0x6d, 0x62, 0x2d, 0x0f, 0x02, 0xf0, 0x21, 0x22, + 0xcd, 0xb3, 0xa0, 0x82, 0x1c, 0x09, 0x91, 0x36, + 0xda, 0xc1, 0x2c, 0x24, 0x0a, 0xa3, 0x2b, 0x2e, + 0xe6, 0xe4, 0xb0, 0x99, 0x89, 0xe9, 0xf2, 0x1c, + 0x9f, 0x28, 0x11, 0x14, 0x14, 0x43, 0x21, 0x9c, + 0x0f, 0xec, 0x64, 0x99, 0x55, 0xc3, 0xc7, 0x97, + 0x68, 0x1c, 0x3d, 0x6d, 0xee, 0xad, 0x69, 0x6b, + 0x2a, 0xab, 0xb4, 0x71, 0x3a, 0xba, 0xee, 0x58, + 0xd8, 0x57, 0x50, 0x51, 0xd4, 0xe4, 0x32, 0xe9, + 0x16, 0xcd, 0x13, 0x01, 0x8c, 0x70, 0x70, 0x1f, + 0x04, 0x4d, 0xe9, 0x7f, 0x66, 0xec, 0x9f, 0x5b, + 0x96, 0x21, 0xfd, 0x78, 0x2e, 0x59, 0x54, 0x84, + 0xe4, 0xa2, 0x44, 0x86, 0x62, 0x79, 0xb9, 0xb6, + 0xe5, 0xda, 0x64, 0xb6, 0x88, 0x99, 0xd5, 0x5a, + 0xc1, 0xc0, 0x9e, 0xc7, 0x4d, 0x3b, 0xa3, 0x64, + 0xaa, 0xb5, 0x14, 0xa8, 0xd8, 0xa2, 0xde, 0xc6, + 0x0c, 0x6d, 0xb8, 0xf0, 0x9a, 0x38, 0x81, 0x98, + 0xd0, 0x65, 0x55, 0xa8, 0x8e, 0xc2, 0x99, 0x6c, + 0x1a, 0x91, 0xe4, 0x96, 0x00, 0xc3, 0x55, 0xce, + 0x36, 0xdb, 0xc1, 0x5e, 0xc6, 0xec, 0xaa, 0x4d, + 0xe8, 0x76, 0x8a, 0x34, 0xe9, 0x65, 0x12, 0x2e, + 0xe4, 0xea, 0x42, 0x9a, 0xcc, 0x5e, 0x7e, 0xe0, + 0xa1, 0x84, 0x1b, 0x90, 0x0b, 0xa5, 0x72, 0xc1, + 0x82, 0x90, 0xe6, 0xe5, 0x2d, 0xb1, 0x94, 0x99, + 0xec, 0x7f, 0xc0, 0x81, 0x6b, 0x32, 0xaa, 0xae, + 0xc6, 0xa8, 0xb0, 0xb1, 0x1d, 0xa5, 0x77, 0x59, + 0x2a, 0xad, 0x3c, 0xfe, 0x19, 0xe9, 0xa2, 0x58, + 0xc8, 0xe5, 0x90, 0xb2, 0x69, 0x35, 0x79, 0x5c, + 0x2b, 0x19, 0x89, 0x9b, 0x18, 0x94, 0xfb, 0x1f, + 0xf0, 0x29, 0xe4, 0x6a, 0x76, 0xa9, 0xb3, 0x5b, + 0xc0, 0x9c, 0xb2, 0x98, 0xa5, 0xbf, 0x6a, 0x92, + 0x69, 0xe6, 0x05, 0x1b, 0x2b, 0x96, 0x7b, 0xe1, + 0xb3, 0xcf, 0x3b, 0x0a, 0xb9, 0xc8, 0x86, 0x27, + 0xd0, 0xce, 0x02, 0xfd, 0x1f, 0x7f, 0xd2, 0x7a, + 0xf4, 0x33, 0x80, 0xbd, 0x40, 0xff, 0x00, 0xa4, + 0xf5, 0xe8, 0x67, 0x01, 0x7a, 0x81, 0xff, 0x00, + 0x49, 0xeb, 0xd0, 0xce, 0x02, 0xf5, 0x03, 0xfe, + 0x93, 0xd7, 0xa1, 0x9c, 0x05, 0xea, 0x07, 0xfd, + 0x27, 0xaf, 0x43, 0x38, 0x0b, 0xd4, 0x0f, 0xfa, + 0x4f, 0x5c, 0x33, 0x6e, 0x29, 0x63, 0xf1, 0xdd, + 0x59, 0xce, 0x47, 0x63, 0xc5, 0xd7, 0x9a, 0xb4, + 0x55, 0xd3, 0xca, 0x1a, 0xb7, 0x4a, 0x09, 0xae, + 0x90, 0x96, 0x72, 0x75, 0x5b, 0xed, 0x85, 0xcc, + 0xe3, 0x33, 0xee, 0xe6, 0xda, 0x35, 0xc2, 0xed, + 0xb7, 0x89, 0xe1, 0xcc, 0x8a, 0x98, 0x19, 0xaf, + 0x6d, 0xce, 0xe3, 0x9b, 0x7c, 0x91, 0xc9, 0x76, + 0xb6, 0xc3, 0x57, 0xa5, 0x65, 0x04, 0x3d, 0x5e, + 0xa7, 0xb6, 0x8c, 0x0b, 0x24, 0xfa, 0x6b, 0x98, + 0xdb, 0x92, 0x77, 0xf4, 0x6f, 0x80, 0x3f, 0x45, + 0xb2, 0x9f, 0x3a, 0xd7, 0xa3, 0x7c, 0x01, 0xfa, + 0x2d, 0x94, 0xf9, 0xd6, 0x93, 0x5f, 0x13, 0xc1, + 0xfe, 0xc7, 0xf6, 0xdc, 0xfb, 0x0b, 0xaa, 0xa0, + 0x8c, 0x0b, 0x91, 0x32, 0xf7, 0x14, 0x0a, 0x80, + 0xa6, 0xce, 0x4d, 0x30, 0xbe, 0x72, 0x9e, 0xe3, + 0x6c, 0x82, 0xfc, 0xb3, 0x27, 0x11, 0x13, 0xb4, + 0x3d, 0xfc, 0x13, 0xec, 0x6e, 0x68, 0x96, 0xca, + 0x3a, 0xd4, 0xa9, 0x53, 0xca, 0x28, 0x1f, 0x11, + 0xcd, 0xd1, 0x73, 0x31, 0x79, 0xfb, 0x80, 0x86, + 0xc8, 0xee, 0x42, 0xb7, 0xca, 0xcc, 0xc4, 0x4a, + 0x42, 0x0a, 0x00, 0xb6, 0x91, 0x5f, 0x04, 0x70, + 0x23, 0x0a, 0x01, 0x8c, 0x98, 0x0e, 0x1d, 0xb2, + 0x73, 0x0b, 0x48, 0x13, 0x5a, 0xc9, 0x81, 0xc9, + 0x4e, 0xc0, 0xa5, 0x81, 0x31, 0x85, 0xe4, 0x00, + 0x12, 0x22, 0x98, 0x88, 0x99, 0xd1, 0x2d, 0xbc, + 0x11, 0xc0, 0x8b, 0x60, 0x14, 0x89, 0xac, 0xf8, + 0x76, 0xc8, 0x18, 0x14, 0x79, 0x44, 0x84, 0xb2, + 0x51, 0x23, 0x31, 0xf7, 0x62, 0x63, 0x78, 0xd7, + 0xa1, 0x9c, 0x03, 0xfa, 0x3e, 0xff, 0x00, 0xa4, + 0xf4, 0x0a, 0x5f, 0x05, 0x70, 0x09, 0x31, 0xa6, + 0x2b, 0x01, 0xf0, 0x03, 0xa3, 0x98, 0xce, 0x60, + 0x46, 0x37, 0x2c, 0xa4, 0x44, 0x6f, 0x33, 0x11, + 0xbc, 0xcc, 0x47, 0xdf, 0x9d, 0x35, 0xb6, 0x78, + 0x1f, 0xd8, 0xde, 0x57, 0x5d, 0xd1, 0x5a, 0xcc, + 0xd3, 0xa7, 0x47, 0x25, 0xd9, 0x5e, 0x52, 0x70, + 0x2a, 0xb6, 0x38, 0xce, 0x21, 0xb6, 0x75, 0x08, + 0xc9, 0x6c, 0x10, 0xed, 0x22, 0xae, 0x73, 0x03, + 0x01, 0xdc, 0x86, 0x63, 0x5e, 0x86, 0x70, 0x0f, + 0xe8, 0xfb, 0xfe, 0x93, 0xd5, 0xb6, 0x57, 0xe0, + 0x6e, 0x01, 0x60, 0x50, 0xab, 0x37, 0x6d, 0xcf, + 0x80, 0xc8, 0x3a, 0x35, 0x45, 0xc9, 0x44, 0xb7, + 0x66, 0x65, 0x86, 0x59, 0xed, 0xb6, 0x12, 0x1c, + 0x8a, 0x83, 0x67, 0x8f, 0xcd, 0xc9, 0xca, 0x25, + 0x23, 0xe8, 0x67, 0x00, 0xfe, 0x8f, 0xbf, 0xe9, + 0x3d, 0x22, 0x95, 0x3e, 0x07, 0xe0, 0x17, 0x5a, + 0xb4, 0xd1, 0x4a, 0x15, 0xe0, 0x23, 0x5f, 0x51, + 0x87, 0x3b, 0x08, 0xf3, 0xb7, 0x2c, 0xb5, 0x8e, + 0xf3, 0xf7, 0x4c, 0xc4, 0x7e, 0xfc, 0xe9, 0x74, + 0xeb, 0x70, 0x3f, 0x00, 0xb2, 0xcb, 0x99, 0xd2, + 0x5a, 0xbc, 0x04, 0x61, 0xcc, 0xcf, 0xf0, 0x79, + 0xd9, 0x96, 0x05, 0xc7, 0x93, 0xca, 0x47, 0x11, + 0xfc, 0x7a, 0xb1, 0x65, 0x3c, 0x0f, 0xec, 0x7d, + 0x35, 0xea, 0x32, 0xaa, 0xad, 0x39, 0x98, 0x81, + 0xae, 0xb4, 0x1d, 0xd6, 0x12, 0xab, 0x75, 0x0a, + 0xc6, 0x69, 0x51, 0x02, 0xc6, 0x01, 0x41, 0x37, + 0xec, 0x49, 0x88, 0xe7, 0x79, 0xac, 0x3c, 0x6d, + 0x55, 0x65, 0x8e, 0x07, 0xe0, 0x00, 0x0b, 0xa9, + 0x2b, 0x15, 0x4a, 0x30, 0x92, 0xc8, 0x72, 0x45, + 0xed, 0xad, 0x2c, 0x8e, 0x96, 0x5c, 0xf6, 0x8e, + 0xb2, 0x1a, 0x1e, 0x3f, 0x2c, 0xcf, 0x2f, 0x38, + 0xc4, 0x81, 0x09, 0x17, 0xa1, 0x9c, 0x03, 0xfa, + 0x3e, 0xff, 0x00, 0xa4, 0xf5, 0xe8, 0x67, 0x00, + 0xfe, 0x8f, 0xbf, 0xe9, 0x3d, 0x7a, 0x19, 0xc0, + 0x3f, 0xa3, 0xef, 0xfa, 0x4f, 0x40, 0x65, 0xc1, + 0x1c, 0x08, 0x20, 0xc8, 0x99, 0x59, 0x4f, 0x0e, + 0xd9, 0x81, 0x64, 0x09, 0x48, 0x94, 0x84, 0xce, + 0x4b, 0x62, 0x81, 0x28, 0x91, 0x9d, 0xb7, 0xd8, + 0xa2, 0x63, 0xcb, 0xaf, 0x43, 0x38, 0x07, 0xf4, + 0x7d, 0xff, 0x00, 0x49, 0xeb, 0x0d, 0x63, 0xa2, + 0x8a, 0xdd, 0x7e, 0x1f, 0xc2, 0xbb, 0xb3, 0xd5, + 0x5c, 0xaa, 0xaa, 0x3a, 0x94, 0x12, 0x7d, 0x1a, + 0xca, 0x92, 0x39, 0x5a, 0x15, 0xbf, 0x22, 0x57, + 0x26, 0x5c, 0x8b, 0x81, 0x1e, 0x69, 0xdb, 0x7d, + 0x3f, 0xf0, 0x33, 0xfd, 0x7d, 0x6d, 0x61, 0x3f, + 0x1d, 0x2b, 0xf6, 0x2b, 0xda, 0x0f, 0x7a, 0x34, + 0x7e, 0xf4, 0xe8, 0xff, 0x00, 0x18, 0xe4, 0xff, + 0x00, 0x6e, 0x77, 0xd4, 0xe2, 0xff, 0x00, 0xc0, + 0x69, 0xff, 0x00, 0x2c, 0x63, 0xbe, 0xa7, 0x00, + 0x7e, 0x3b, 0xe3, 0x6f, 0xfc, 0x58, 0x1d, 0x70, + 0x15, 0x7c, 0xe5, 0xcb, 0x94, 0xa8, 0x63, 0xbd, + 0x8c, 0x33, 0xf9, 0x97, 0x3e, 0x84, 0x25, 0x96, + 0x57, 0xe0, 0xec, 0xde, 0x5d, 0xc3, 0xb2, 0x1c, + 0x32, 0x2f, 0xe7, 0x88, 0x31, 0x14, 0x73, 0xd7, + 0x96, 0xb3, 0x94, 0x7b, 0x42, 0x63, 0x72, 0xd7, + 0x0f, 0xf1, 0x27, 0x0d, 0x33, 0x25, 0xe0, 0x7c, + 0xec, 0xe4, 0xaa, 0x1d, 0x3c, 0xc3, 0x2a, 0xbf, + 0x21, 0x8f, 0xc9, 0x62, 0x58, 0x81, 0xb2, 0x96, + 0x58, 0xa6, 0x9a, 0xa8, 0xb0, 0x87, 0xa6, 0xd5, + 0x7b, 0x15, 0xd8, 0x15, 0x95, 0x22, 0x24, 0x40, + 0xc8, 0xe6, 0x88, 0x99, 0xe0, 0x77, 0x58, 0xf0, + 0xe6, 0x3e, 0x86, 0x0f, 0xd8, 0xf9, 0x99, 0xdc, + 0xbb, 0x54, 0xec, 0x7b, 0xdb, 0x63, 0x1e, 0xbc, + 0xee, 0x42, 0xb7, 0x61, 0xa6, 0xbe, 0xc6, 0x91, + 0x0c, 0xa5, 0xfc, 0xd5, 0x92, 0x15, 0x5d, 0x79, + 0x1d, 0x64, 0x54, 0x6a, 0xfa, 0xb5, 0x9c, 0xc5, + 0x19, 0xb3, 0x01, 0xc4, 0x9c, 0x36, 0xec, 0x84, + 0xe1, 0x73, 0xdd, 0xbe, 0xb7, 0x63, 0xcb, 0x9d, + 0x66, 0xe4, 0xb1, 0xb9, 0x2c, 0x49, 0xa0, 0x2e, + 0x57, 0x75, 0x8a, 0x8a, 0xaf, 0x5e, 0xd2, 0x5c, + 0x16, 0x51, 0x66, 0xab, 0x82, 0xb2, 0x66, 0x16, + 0xce, 0x9b, 0x42, 0x0c, 0x39, 0x8f, 0x8e, 0x71, + 0x8a, 0xc3, 0xef, 0x9a, 0x7f, 0x06, 0xf1, 0x25, + 0x9b, 0x59, 0xd7, 0xd8, 0x93, 0x25, 0xd2, 0x48, + 0xd2, 0x1a, 0xf8, 0xfa, 0x15, 0x60, 0x04, 0x10, + 0x26, 0x46, 0xc6, 0xdc, 0x79, 0x91, 0xb5, 0xd3, + 0xd3, 0x08, 0x98, 0x50, 0xf2, 0xc7, 0x0f, 0xe1, + 0x30, 0xa6, 0xbc, 0x1e, 0x0b, 0x05, 0x66, 0xde, + 0x6f, 0x8d, 0xb2, 0x32, 0x63, 0xd8, 0x72, 0x78, + 0xa3, 0xb0, 0x3d, 0xb1, 0xd9, 0xe1, 0x34, 0xf2, + 0x39, 0x4a, 0xc6, 0x7f, 0x62, 0xa8, 0xd1, 0x61, + 0x38, 0x5c, 0xf3, 0x5c, 0xa6, 0x16, 0xf3, 0xea, + 0x2f, 0xd8, 0xcf, 0x1d, 0xc3, 0x7f, 0xbc, 0x70, + 0x7c, 0x57, 0x93, 0xbf, 0x95, 0xcc, 0xd1, 0x15, + 0x2f, 0xa5, 0x99, 0xa5, 0x9b, 0xe2, 0xab, 0xd8, + 0x50, 0xc7, 0x64, 0xd4, 0x50, 0x63, 0x65, 0x35, + 0x70, 0x88, 0x1a, 0x68, 0x5b, 0x39, 0xa2, 0xb9, + 0x1c, 0xb9, 0x3c, 0x8f, 0x15, 0xb0, 0x6b, 0xd1, + 0x46, 0xf0, 0x9a, 0x7c, 0x60, 0x9a, 0xa9, 0xdf, + 0xcb, 0x0a, 0x46, 0x68, 0x54, 0xbe, 0xff, 0x00, + 0xbf, 0x02, 0x31, 0xdf, 0xac, 0x36, 0x64, 0xe6, + 0x13, 0x89, 0xcc, 0xc6, 0x46, 0xd7, 0x11, 0x3a, + 0x04, 0x84, 0x2a, 0xfd, 0x62, 0xbe, 0xd5, 0x1e, + 0x23, 0x29, 0xfe, 0x08, 0x73, 0xd0, 0xc5, 0x21, + 0xab, 0x2d, 0xf6, 0x26, 0xdd, 0x5e, 0xf1, 0xcc, + 0x71, 0x27, 0xc4, 0xb7, 0x72, 0x79, 0x15, 0x60, + 0xa9, 0xe6, 0x3d, 0x89, 0x78, 0x3a, 0xe3, 0xef, + 0xb2, 0xa5, 0xab, 0x89, 0xa4, 0x0f, 0xe2, 0x0a, + 0x36, 0x17, 0x13, 0x52, 0x88, 0x36, 0xcb, 0x22, + 0x4b, 0xa6, 0x88, 0x84, 0xac, 0xb9, 0x24, 0xfa, + 0x85, 0xe2, 0x09, 0x4e, 0xb8, 0xa3, 0xc1, 0xdc, + 0x52, 0x1c, 0x53, 0x51, 0xbc, 0x45, 0xc1, 0xf3, + 0x91, 0x1c, 0x7e, 0x33, 0x29, 0x87, 0x75, 0x64, + 0xac, 0xf2, 0xbb, 0x88, 0x33, 0x33, 0x50, 0x16, + 0x6e, 0x7a, 0xc9, 0x90, 0x92, 0x05, 0x38, 0x52, + 0x41, 0xbb, 0x86, 0x60, 0x84, 0x4b, 0x1f, 0x9a, + 0xc7, 0xd6, 0xe2, 0xac, 0x76, 0x5f, 0x37, 0x6a, + 0x67, 0x0d, 0x43, 0x33, 0x95, 0xc4, 0x5c, 0x87, + 0xe1, 0xeb, 0xcc, 0x85, 0x9c, 0xbb, 0x91, 0x4b, + 0x11, 0x49, 0xe9, 0xac, 0xd7, 0xc1, 0x54, 0xa1, + 0xcc, 0xd1, 0x9b, 0x2c, 0x5b, 0x9e, 0x23, 0x35, + 0xd6, 0x24, 0xdf, 0xdd, 0xf1, 0x2f, 0xe3, 0xda, + 0x9f, 0xc9, 0xf3, 0xa8, 0xd5, 0x4f, 0xc2, 0x51, + 0xfa, 0xd1, 0xd7, 0x12, 0xff, 0x00, 0xa4, 0x19, + 0xaf, 0xe5, 0x3b, 0x3f, 0xb9, 0x2c, 0xee, 0x54, + 0x8b, 0xc0, 0xb8, 0x6b, 0x2b, 0x64, 0x57, 0xe7, + 0xdb, 0xc2, 0x79, 0x49, 0xe5, 0x62, 0x31, 0x95, + 0xe2, 0x67, 0x68, 0x97, 0x42, 0x81, 0x97, 0xdc, + 0x31, 0x3d, 0x0a, 0x61, 0xb9, 0x78, 0xc6, 0x88, + 0x2e, 0x1e, 0xc7, 0x65, 0xb1, 0x18, 0xf9, 0xc7, + 0xe5, 0xd9, 0x9a, 0xb0, 0xcb, 0xbd, 0x3a, 0xef, + 0xb0, 0xc5, 0x5e, 0xbf, 0x6d, 0xf7, 0x2e, 0xd6, + 0xb3, 0x1c, 0xcf, 0xc4, 0x96, 0x29, 0xc0, 0x45, + 0x20, 0x0c, 0x49, 0x30, 0x2b, 0x8c, 0xde, 0x07, + 0xd6, 0x25, 0x86, 0x95, 0x56, 0x68, 0x6d, 0xb7, + 0x07, 0x2b, 0x26, 0xac, 0xd4, 0xbe, 0xd4, 0x36, + 0x1d, 0x8e, 0xc3, 0x41, 0xae, 0x05, 0x3d, 0x68, + 0xc7, 0xc6, 0x3e, 0x5b, 0x5b, 0xb1, 0x34, 0x0e, + 0xac, 0xdc, 0xed, 0x66, 0xc2, 0x8b, 0xa3, 0x3c, + 0x88, 0x8a, 0x41, 0x64, 0xd9, 0x5a, 0xfd, 0xdc, + 0xfe, 0x66, 0x86, 0x27, 0x27, 0x1c, 0x9d, 0x2c, + 0x45, 0xdb, 0x78, 0x7c, 0x5a, 0x97, 0x7d, 0x82, + 0x5d, 0xfc, 0xc2, 0xd9, 0x52, 0x45, 0xa3, 0xca, + 0x55, 0x81, 0xcd, 0xb4, 0x05, 0x0c, 0x50, 0x4e, + 0xab, 0x56, 0xcd, 0x50, 0xb6, 0xfb, 0x15, 0xf8, + 0xb7, 0x2e, 0x96, 0x25, 0x57, 0x86, 0x94, 0x83, + 0x95, 0x4b, 0x11, 0x0e, 0x16, 0xf5, 0x28, 0xdb, + 0x37, 0x41, 0xcc, 0x77, 0x72, 0x4a, 0x0b, 0x6e, + 0xf8, 0x3f, 0x1a, 0x26, 0x2e, 0xba, 0x82, 0x93, + 0x90, 0xc8, 0x26, 0xde, 0x46, 0xcf, 0x67, 0x30, + 0x10, 0x4d, 0x84, 0x76, 0x67, 0xb2, 0xed, 0x72, + 0x41, 0xbe, 0x0b, 0xed, 0x12, 0x7a, 0x8d, 0x0b, + 0x71, 0x58, 0xee, 0x91, 0x4c, 0x9b, 0xb9, 0x77, + 0xc7, 0xe4, 0x71, 0x5d, 0xbf, 0x1f, 0x8d, 0x97, + 0x71, 0x02, 0x2d, 0x61, 0x2c, 0x59, 0xed, 0x69, + 0xaf, 0x70, 0xb8, 0x66, 0xf3, 0x0e, 0xc6, 0x31, + 0xc5, 0xd3, 0x27, 0x07, 0x66, 0x81, 0x41, 0x0d, + 0x90, 0x9b, 0x0a, 0xe9, 0xa7, 0xab, 0x61, 0x82, + 0xd1, 0x80, 0xc5, 0xd7, 0xc3, 0x9b, 0xec, 0xd4, + 0xcc, 0xf1, 0x05, 0x4a, 0xb9, 0x53, 0xb2, 0x20, + 0x16, 0x31, 0xb6, 0x2b, 0x03, 0x7b, 0x3a, 0xe5, + 0x4a, 0x22, 0x5c, 0xd7, 0x6d, 0x4b, 0x36, 0x6e, + 0x76, 0xbe, 0xaf, 0x2c, 0xc2, 0x49, 0x3c, 0x8b, + 0x24, 0xb6, 0x4b, 0x13, 0x7a, 0x93, 0xdb, 0x66, + 0x31, 0x3c, 0x6b, 0x54, 0x06, 0x5b, 0x58, 0x6b, + 0x95, 0x6c, 0x6e, 0x55, 0xea, 0xec, 0x88, 0x0e, + 0x4b, 0x36, 0x3a, 0xa9, 0x43, 0xa8, 0x14, 0x0b, + 0x67, 0xa7, 0xb1, 0x58, 0x11, 0xe5, 0xf1, 0xe3, + 0x48, 0xcd, 0x07, 0x97, 0x8a, 0x50, 0xa5, 0xcf, + 0x2c, 0xf7, 0x75, 0x6a, 0x52, 0xc8, 0x78, 0x68, + 0x3d, 0x65, 0x8c, 0xae, 0xc2, 0xff, 0x00, 0x38, + 0x3f, 0xc1, 0x2e, 0xf8, 0xfd, 0xd7, 0x0a, 0x7f, + 0x95, 0xc4, 0x1f, 0xcb, 0x2f, 0xfa, 0x9c, 0x1b, + 0xfe, 0x7f, 0x33, 0xfb, 0x4a, 0x35, 0x8c, 0x5d, + 0x40, 0xc0, 0x9e, 0x46, 0x92, 0xf0, 0xcf, 0x78, + 0xdd, 0xc1, 0x70, 0xb3, 0xe3, 0xf7, 0xcb, 0x6d, + 0x27, 0x20, 0xce, 0xd9, 0x6a, 0xab, 0xae, 0xe5, + 0x5e, 0x10, 0xe4, 0x85, 0x8c, 0x76, 0x46, 0x2c, + 0xae, 0xb0, 0x33, 0xb6, 0xa1, 0x41, 0xd8, 0x01, + 0xa8, 0xc8, 0xd8, 0xa4, 0x3c, 0x1c, 0x2b, 0x3b, + 0x39, 0x01, 0xca, 0x73, 0x56, 0xc3, 0x51, 0xca, + 0x8d, 0x94, 0xdd, 0x00, 0xc3, 0xf8, 0x06, 0xa5, + 0x15, 0x57, 0xba, 0x35, 0x0f, 0x1c, 0xba, 0xe3, + 0x05, 0x87, 0x47, 0x83, 0x9b, 0x61, 0x99, 0x17, + 0xe7, 0xe6, 0x79, 0x92, 0xe8, 0xa3, 0xf8, 0xf7, + 0x0b, 0xfb, 0x41, 0x69, 0x94, 0xf1, 0xf4, 0x88, + 0x17, 0x3c, 0x55, 0x8a, 0x8b, 0x75, 0xef, 0xdf, + 0xed, 0x03, 0x7f, 0xa8, 0x39, 0x08, 0x15, 0xc5, + 0xaa, 0xb4, 0xa9, 0x95, 0x55, 0x25, 0x61, 0x60, + 0x9a, 0x0b, 0xad, 0x62, 0xc1, 0x83, 0x64, 0xc1, + 0xbc, 0xca, 0x00, 0x2b, 0x19, 0x5a, 0x68, 0xa4, + 0x67, 0x35, 0x78, 0xba, 0x9c, 0x5b, 0x8e, 0x1c, + 0xc5, 0x63, 0xab, 0xb1, 0x55, 0xf0, 0xeb, 0xb2, + 0x15, 0xc6, 0xa0, 0x2d, 0xc9, 0xb0, 0x09, 0x67, + 0x95, 0xd6, 0x42, 0x6c, 0x38, 0x4d, 0xb5, 0xec, + 0x49, 0xab, 0x99, 0x7a, 0x2b, 0x36, 0xaa, 0xa6, + 0xd3, 0xb2, 0x9c, 0x4f, 0x99, 0xa3, 0x69, 0x35, + 0xf8, 0x76, 0x8d, 0xf7, 0x59, 0x45, 0x47, 0xa1, + 0x2a, 0xc7, 0xd6, 0x95, 0xbe, 0x9b, 0x29, 0x5d, + 0x6a, 0xde, 0x56, 0x3b, 0x65, 0x40, 0x1c, 0x9d, + 0x96, 0xb5, 0x4d, 0x65, 0xa2, 0x85, 0x04, 0x4f, + 0x0f, 0x61, 0xa3, 0x11, 0x8f, 0xe5, 0xce, 0x63, + 0x73, 0x2a, 0xf0, 0x85, 0x8a, 0x41, 0xe1, 0x71, + 0xbc, 0xdc, 0x9e, 0x72, 0x86, 0x20, 0xe5, 0xf3, + 0xcf, 0xd2, 0x62, 0x1a, 0xaa, 0xa0, 0x7c, 0xbe, + 0x34, 0xf7, 0x41, 0xb3, 0x95, 0x2b, 0xd9, 0x28, + 0xaf, 0x6f, 0x1d, 0x52, 0x71, 0x0f, 0xc5, 0x63, + 0x4a, 0x97, 0x4a, 0xff, 0x00, 0x6c, 0xbd, 0x6e, + 0xa4, 0x56, 0x1b, 0xf6, 0xba, 0x95, 0xb1, 0xed, + 0xa0, 0x66, 0xeb, 0xc5, 0x67, 0xc7, 0xb3, 0x7d, + 0x2c, 0xe9, 0xac, 0x46, 0x62, 0x20, 0x57, 0xcd, + 0xc6, 0x54, 0x71, 0xd5, 0x1c, 0x97, 0x96, 0x52, + 0x91, 0x5b, 0x9b, 0x57, 0xc5, 0xeb, 0xbe, 0x3f, + 0x5c, 0x41, 0x58, 0x29, 0x24, 0xd5, 0x4a, 0xa7, + 0x83, 0xba, 0xb6, 0x6c, 0x85, 0x8e, 0x69, 0x8b, + 0xac, 0x21, 0x47, 0x4c, 0x48, 0x79, 0x4a, 0x59, + 0xdf, 0x52, 0xab, 0x02, 0x9f, 0x16, 0x57, 0xc7, + 0x47, 0x64, 0xc4, 0x27, 0x12, 0x8e, 0x89, 0x54, + 0xca, 0x34, 0xb1, 0x5d, 0xa2, 0xbc, 0x85, 0xdc, + 0x90, 0x31, 0xd4, 0xea, 0x2a, 0x2d, 0x64, 0xb6, + 0xbd, 0x1c, 0xf0, 0x53, 0x2b, 0x6b, 0xdb, 0x13, + 0x94, 0x7e, 0x62, 0x95, 0x5c, 0x4e, 0x3e, 0xce, + 0x12, 0xfd, 0x5b, 0x17, 0xf1, 0xc9, 0xad, 0x4c, + 0x6c, 0x29, 0x59, 0xcc, 0x01, 0x12, 0xbb, 0x05, + 0x40, 0x58, 0x26, 0x6b, 0x75, 0xa1, 0x13, 0x7b, + 0xa5, 0xcc, 0xc0, 0x67, 0xb6, 0x1b, 0x99, 0x58, + 0xa7, 0x57, 0xed, 0xde, 0xc7, 0x51, 0xab, 0x78, + 0xb8, 0x95, 0x98, 0x86, 0x53, 0x4e, 0x02, 0xae, + 0x52, 0xa5, 0x7a, 0xf5, 0x92, 0xa2, 0x56, 0x3e, + 0xb5, 0x56, 0x58, 0xae, 0x15, 0xca, 0xf4, 0x14, + 0xc8, 0xe4, 0x16, 0x25, 0x91, 0xb5, 0x0a, 0xea, + 0x26, 0xda, 0xcc, 0x9c, 0x6e, 0xe1, 0xc0, 0xc5, + 0xe2, 0xc6, 0x57, 0x90, 0xe2, 0x1c, 0xa0, 0x3a, + 0x32, 0x74, 0x45, 0x99, 0x4a, 0x83, 0x56, 0xf7, + 0x67, 0xaf, 0x47, 0xa8, 0xce, 0xab, 0xf1, 0xf6, + 0x31, 0xa8, 0xe5, 0xb2, 0xce, 0xcc, 0xe5, 0xb0, + 0xd8, 0xcd, 0xee, 0x93, 0x93, 0xed, 0x5a, 0xc5, + 0xef, 0xdf, 0x1e, 0x12, 0x8d, 0xe2, 0x27, 0x69, + 0x98, 0xe6, 0x2d, 0xf6, 0x9d, 0xa7, 0x6f, 0x7f, + 0x69, 0xdb, 0xef, 0x4e, 0xb2, 0x88, 0x46, 0x3e, + 0xc2, 0xd4, 0xcc, 0xef, 0x07, 0x2e, 0xd2, 0xef, + 0x5f, 0x46, 0x45, 0x4f, 0x53, 0x32, 0xcf, 0x1e, + 0x9f, 0x4c, 0x31, 0x94, 0x20, 0x47, 0x6e, 0x68, + 0x38, 0x39, 0x74, 0x1c, 0x16, 0xdb, 0x0e, 0xd3, + 0xcd, 0xc3, 0x78, 0x9b, 0x18, 0xea, 0x45, 0x4a, + 0xc6, 0x0b, 0x3a, 0x47, 0x68, 0xea, 0xac, 0xac, + 0xab, 0xa1, 0x90, 0xce, 0x31, 0x4d, 0xad, 0x73, + 0x97, 0xb4, 0x54, 0x0a, 0x06, 0x90, 0x3e, 0x4a, + 0xec, 0x5a, 0x99, 0x04, 0x63, 0x64, 0x5a, 0x05, + 0x10, 0x36, 0x31, 0x81, 0x50, 0xec, 0x0a, 0xb8, + 0x72, 0x86, 0x41, 0x4d, 0xab, 0x83, 0x49, 0xd9, + 0x0b, 0x6f, 0xa5, 0x56, 0xd7, 0x85, 0xdd, 0x9c, + 0x0b, 0xbd, 0xa4, 0xe8, 0x32, 0xc5, 0x83, 0x43, + 0x92, 0xd5, 0x96, 0x39, 0x4a, 0x21, 0x5a, 0xab, + 0x43, 0xd4, 0x0f, 0x9e, 0x36, 0x65, 0x5c, 0x07, + 0x0f, 0x28, 0xf0, 0x79, 0x8c, 0x56, 0x3b, 0x1b, + 0xbe, 0x29, 0x0e, 0x15, 0x2d, 0xed, 0xcb, 0x76, + 0x86, 0xb1, 0x4f, 0xea, 0x26, 0xc3, 0x1b, 0xc9, + 0xee, 0x5a, 0xa2, 0x42, 0xc7, 0xa2, 0x20, 0xa8, + 0xec, 0xb5, 0x7a, 0x56, 0x49, 0x74, 0x28, 0xa9, + 0x37, 0xf8, 0x8a, 0x8d, 0x4a, 0x49, 0x2c, 0x52, + 0x33, 0x8c, 0x68, 0xb3, 0x1f, 0x52, 0xed, 0xac, + 0x65, 0x6a, 0xb9, 0x18, 0x9a, 0x98, 0xfa, 0x9d, + 0x6b, 0xe1, 0xfb, 0xec, 0x0c, 0xaf, 0xcc, 0x12, + 0xd2, 0x88, 0x14, 0x57, 0x69, 0x15, 0xd5, 0x35, + 0x35, 0x81, 0x3c, 0x3b, 0x4f, 0x31, 0xe0, 0xc5, + 0x96, 0x22, 0x8e, 0x40, 0xd0, 0x31, 0xc5, 0xf6, + 0xb1, 0x82, 0xf7, 0xa5, 0xf2, 0x83, 0xc8, 0xae, + 0xa5, 0x42, 0x8f, 0x12, 0xf3, 0xac, 0x57, 0xeb, + 0x34, 0x6e, 0xbd, 0x6d, 0x77, 0x79, 0xa5, 0x94, + 0xea, 0xbe, 0xa0, 0xd8, 0xa3, 0x52, 0xc3, 0x41, + 0xb4, 0x7c, 0x1a, 0xa6, 0xbd, 0xa1, 0xb9, 0xda, + 0xa7, 0x4f, 0xaf, 0x60, 0x53, 0x4e, 0xd4, 0x72, + 0xb9, 0x20, 0xa3, 0x84, 0x0f, 0x31, 0x45, 0x70, + 0x5a, 0x20, 0x00, 0x78, 0x7b, 0xfd, 0x19, 0xc0, + 0x7f, 0x26, 0xa3, 0x4e, 0xfc, 0x0c, 0xff, 0x00, + 0x5f, 0x5f, 0x58, 0x5f, 0xc7, 0x4a, 0xfd, 0x8a, + 0xf6, 0x83, 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0x3f, + 0xc6, 0x39, 0x3f, 0xdb, 0x9d, 0xf5, 0x38, 0xc3, + 0xf0, 0x1a, 0x7f, 0xcb, 0x18, 0xef, 0xa9, 0xf5, + 0xaf, 0xc5, 0x78, 0x7b, 0xf9, 0x1a, 0x15, 0x72, + 0x4e, 0xcb, 0x62, 0x2f, 0x61, 0xf2, 0x08, 0xc7, + 0xe5, 0x31, 0xef, 0xb6, 0xa4, 0x22, 0xf5, 0x5e, + 0x6b, 0x74, 0xef, 0x55, 0x75, 0x1b, 0x63, 0x59, + 0x2c, 0x20, 0x24, 0x75, 0x01, 0xcb, 0xe6, 0x12, + 0x9e, 0x68, 0xe9, 0xe4, 0x9d, 0x18, 0x5e, 0x4e, + 0x1b, 0xe1, 0xff, 0x00, 0x63, 0x4e, 0x22, 0xc5, + 0xd2, 0xc1, 0x32, 0xdb, 0x18, 0xd6, 0xe2, 0x2a, + 0x53, 0x7d, 0x8b, 0x01, 0x6a, 0xf8, 0x80, 0xcf, + 0x6d, 0xbe, 0xdb, 0x16, 0x9c, 0xeb, 0x4a, 0x50, + 0x42, 0x5a, 0xd1, 0xe9, 0x2f, 0x95, 0x21, 0xac, + 0x26, 0x0f, 0x05, 0x8e, 0xb1, 0x8d, 0xc0, 0x60, + 0x17, 0x72, 0x6a, 0x85, 0xfb, 0x4b, 0xbb, 0x92, + 0xb9, 0x7b, 0x26, 0xd5, 0xbb, 0x21, 0x7a, 0xfd, + 0x84, 0x22, 0xad, 0x72, 0x33, 0xe8, 0x57, 0x42, + 0x16, 0x9a, 0xcb, 0x05, 0x25, 0x11, 0xb7, 0xd9, + 0x24, 0x43, 0x03, 0x4e, 0xee, 0x0a, 0xe5, 0xde, + 0xcb, 0xc3, 0xf6, 0xf8, 0x47, 0x3a, 0x9f, 0x08, + 0x29, 0x55, 0x32, 0x18, 0x1b, 0x37, 0xec, 0xe4, + 0x81, 0xd4, 0xa2, 0x2a, 0xf6, 0x8a, 0x79, 0x7a, + 0xb7, 0x1c, 0xa7, 0xa5, 0xe6, 0xe7, 0x56, 0xdd, + 0x10, 0x1d, 0x08, 0xe6, 0xea, 0x46, 0x13, 0x09, + 0x82, 0xc6, 0xbf, 0x17, 0x80, 0xe1, 0xf5, 0x5b, + 0xec, 0x8b, 0xbb, 0x68, 0x6e, 0xe4, 0xad, 0xdd, + 0xc9, 0x31, 0x6e, 0xc8, 0x5f, 0xbf, 0x65, 0x48, + 0xaa, 0x82, 0x63, 0x65, 0x28, 0x52, 0x94, 0x9a, + 0xeb, 0x5a, 0x54, 0x98, 0xe5, 0xee, 0x3e, 0x40, + 0xcf, 0xf5, 0x2b, 0x9d, 0x8f, 0x0c, 0xf0, 0xd6, + 0x53, 0x02, 0x1c, 0x86, 0x21, 0xd0, 0x66, 0x42, + 0x6b, 0xf2, 0xd8, 0x3d, 0xc4, 0xb9, 0xc1, 0x7d, + 0x19, 0xe6, 0x08, 0xd8, 0x8b, 0x7e, 0xe2, 0x8d, + 0x54, 0xe1, 0x7c, 0x8e, 0x23, 0x8a, 0x42, 0x7b, + 0x63, 0x72, 0x39, 0x97, 0xe1, 0x73, 0x38, 0xca, + 0x41, 0x9a, 0xb9, 0xcd, 0xcb, 0x4e, 0x6d, 0x8d, + 0xcc, 0x45, 0xe6, 0x95, 0x7c, 0x75, 0x71, 0x10, + 0xa7, 0x56, 0x18, 0x08, 0x5b, 0x8d, 0xf6, 0xa5, + 0x65, 0x61, 0xbd, 0x48, 0xc3, 0x06, 0x43, 0x87, + 0x2e, 0xe4, 0x6d, 0x70, 0x6e, 0x43, 0x23, 0x77, + 0x83, 0x5f, 0xe1, 0x50, 0x40, 0x82, 0xed, 0xd9, + 0x3c, 0x85, 0x4a, 0xbc, 0x40, 0x01, 0x53, 0x7b, + 0xc1, 0x8f, 0xc9, 0xf2, 0xde, 0x59, 0x54, 0x2a, + 0x70, 0xd3, 0x93, 0x43, 0x15, 0xd9, 0xa4, 0xd4, + 0xda, 0x99, 0xab, 0x50, 0x56, 0x18, 0xac, 0xaa, + 0x32, 0x96, 0x22, 0x26, 0x04, 0x9e, 0x61, 0x6c, + 0x6d, 0xb6, 0x20, 0xb6, 0x98, 0x12, 0x61, 0x41, + 0x77, 0xed, 0x31, 0x13, 0x3e, 0x4d, 0x71, 0x86, + 0x25, 0x38, 0xe9, 0x0b, 0x1c, 0x49, 0x9a, 0xc8, + 0x5e, 0xa3, 0x90, 0x26, 0xc1, 0x3b, 0x17, 0x8d, + 0xcd, 0x3e, 0xb3, 0x73, 0x58, 0xd1, 0xf1, 0x76, + 0x98, 0xc8, 0x06, 0x3e, 0x8a, 0x9a, 0x4b, 0xe4, + 0x89, 0x08, 0x7e, 0xfe, 0xee, 0x35, 0x76, 0x8c, + 0x63, 0x9e, 0x25, 0x6b, 0x80, 0xf8, 0x73, 0x83, + 0xe1, 0x92, 0xf5, 0xcc, 0x03, 0xf0, 0x79, 0x0a, + 0x77, 0x59, 0x76, 0x63, 0xa7, 0xbc, 0xaa, 0xc0, + 0xd6, 0x90, 0x04, 0xef, 0xce, 0x12, 0x51, 0x32, + 0x65, 0xb6, 0xda, 0xc8, 0xe1, 0x32, 0x58, 0xe7, + 0x5f, 0xab, 0x93, 0xce, 0x70, 0xde, 0x4a, 0xcc, + 0x2a, 0xc0, 0xa3, 0x9a, 0x96, 0x19, 0xd6, 0xca, + 0xe5, 0x3d, 0xf9, 0x08, 0xa1, 0x97, 0x13, 0x6a, + 0x56, 0xb6, 0xc4, 0xec, 0xa9, 0x8e, 0x69, 0x12, + 0xd5, 0xec, 0xa5, 0x5c, 0x77, 0x15, 0x57, 0xcd, + 0x3f, 0xb3, 0xae, 0x94, 0x5c, 0xcb, 0xe2, 0x5d, + 0x85, 0xc7, 0x54, 0x41, 0xac, 0x02, 0x85, 0x7a, + 0x15, 0xb0, 0xb5, 0xde, 0xba, 0x75, 0xa9, 0x89, + 0x22, 0x9a, 0x57, 0x6c, 0x7a, 0x65, 0xc8, 0xd6, + 0x93, 0xa7, 0xa9, 0xd5, 0xfd, 0xdf, 0x12, 0xfe, + 0x3d, 0xa9, 0xfc, 0x9f, 0x3a, 0x8d, 0x54, 0xfc, + 0x25, 0x1f, 0xad, 0x1d, 0x67, 0x98, 0xfe, 0x34, + 0xab, 0x55, 0xcc, 0xcd, 0x65, 0x4d, 0xd5, 0x8b, + 0x01, 0x9d, 0x71, 0x56, 0x69, 0x5f, 0xb0, 0x4c, + 0x44, 0xb5, 0x55, 0xe5, 0x4d, 0x94, 0x9c, 0xca, + 0xe5, 0x8a, 0x99, 0x59, 0xc8, 0xf3, 0x04, 0xc8, + 0xcc, 0x6b, 0xd3, 0xba, 0x9f, 0xa3, 0x9c, 0x43, + 0xf3, 0x5d, 0x7a, 0x77, 0x53, 0xf4, 0x73, 0x88, + 0x7e, 0x6b, 0xaf, 0x4e, 0xea, 0x7e, 0x8e, 0x71, + 0x0f, 0xcd, 0x75, 0xe9, 0xdd, 0x4f, 0xd1, 0xce, + 0x21, 0xf9, 0xb6, 0xa6, 0xad, 0x1f, 0x64, 0xf3, + 0x45, 0x38, 0x69, 0x34, 0x54, 0x18, 0x3e, 0x25, + 0x42, 0xfa, 0x85, 0x11, 0x04, 0xd9, 0x48, 0x2c, + 0x96, 0x2c, 0x28, 0x88, 0x82, 0x98, 0x92, 0x9d, + 0xa2, 0x23, 0x9b, 0x4f, 0xae, 0x1e, 0xc9, 0xbb, + 0x57, 0xb4, 0x4c, 0x3b, 0x29, 0x1c, 0x37, 0x13, + 0xc2, 0x9e, 0x6e, 0xdb, 0xaa, 0x4c, 0x08, 0x47, + 0x29, 0xcb, 0x79, 0x47, 0xa9, 0xbc, 0x78, 0xfb, + 0x47, 0x36, 0xfb, 0x6a, 0x68, 0x0f, 0xb2, 0x44, + 0x45, 0x22, 0x9d, 0xca, 0xa4, 0x60, 0xf8, 0x9b, + 0xb3, 0xcc, 0xef, 0x05, 0xde, 0xae, 0x87, 0x27, + 0xba, 0x11, 0x2f, 0x27, 0xba, 0x88, 0x9f, 0x2e, + 0x86, 0xb7, 0xff, 0x00, 0x38, 0x28, 0xec, 0xe0, + 0xd3, 0x78, 0x23, 0xeb, 0x7f, 0x88, 0xfa, 0x42, + 0xf6, 0x08, 0x03, 0x1c, 0x2b, 0xec, 0xfc, 0xb0, + 0xc3, 0x05, 0x2c, 0x48, 0xe2, 0x39, 0xa4, 0x40, + 0x22, 0x67, 0x61, 0x8d, 0x1e, 0xde, 0xca, 0x8e, + 0xf6, 0xc6, 0x75, 0x8f, 0xfb, 0x13, 0xc5, 0x3e, + 0x3b, 0x7a, 0x6b, 0x4f, 0x54, 0xbd, 0xa7, 0xbd, + 0x9d, 0x24, 0xa9, 0x7c, 0xfe, 0xeb, 0x91, 0x60, + 0x3b, 0xec, 0x31, 0xae, 0xd2, 0x3e, 0xc8, 0x49, + 0x1b, 0x30, 0xce, 0xac, 0x3e, 0x30, 0x1c, 0x49, + 0x0e, 0xea, 0xef, 0xcd, 0xd4, 0xea, 0xf6, 0x7e, + 0x7e, 0x7d, 0xfb, 0xf9, 0xb7, 0xdf, 0x7f, 0xbb, + 0xa0, 0xb0, 0xdf, 0x64, 0xd2, 0x63, 0xd4, 0x2e, + 0x05, 0xb4, 0xb0, 0xdc, 0x4f, 0x2c, 0x01, 0xb0, + 0x04, 0xb7, 0x88, 0x17, 0x43, 0x71, 0x87, 0x2c, + 0xcc, 0x1b, 0xb7, 0xd9, 0x00, 0xa4, 0x4b, 0x78, + 0x9d, 0x34, 0x28, 0xfb, 0x25, 0x76, 0x31, 0x76, + 0xdd, 0x61, 0xad, 0x84, 0xe2, 0x64, 0xc3, 0x76, + 0x13, 0x08, 0xe7, 0x85, 0xa0, 0x60, 0xb6, 0x06, + 0xb0, 0x23, 0x7f, 0xe0, 0xb0, 0xc7, 0xc8, 0x53, + 0xa2, 0xec, 0x7e, 0xc8, 0xc1, 0x57, 0xa9, 0x29, + 0x93, 0xec, 0xf8, 0x2e, 0x25, 0x4f, 0x3c, 0xd7, + 0x70, 0xd8, 0xaf, 0x25, 0xc9, 0x5e, 0x37, 0x94, + 0xbc, 0x01, 0xca, 0x99, 0xf7, 0x0c, 0x11, 0x31, + 0xd8, 0xa2, 0x27, 0x55, 0xf9, 0x3d, 0x92, 0x60, + 0x3b, 0x21, 0x58, 0x3a, 0xbc, 0xb8, 0x4e, 0x26, + 0x8e, 0xce, 0x76, 0xfe, 0xda, 0x24, 0xec, 0x8f, + 0x6b, 0x2b, 0x1f, 0xf2, 0xd2, 0x1b, 0x4b, 0x3f, + 0x87, 0xbe, 0xbd, 0x3b, 0xa7, 0xfa, 0x39, 0xc4, + 0x3f, 0x35, 0xd7, 0xa7, 0x75, 0x3f, 0x47, 0x38, + 0x87, 0xe6, 0xba, 0xf4, 0xee, 0xa7, 0xe8, 0xe7, + 0x10, 0xfc, 0xd7, 0x5e, 0x9d, 0xd4, 0xfd, 0x1c, + 0xe2, 0x1f, 0x9a, 0xeb, 0xd3, 0xba, 0x9f, 0xa3, + 0x9c, 0x43, 0xf3, 0x5d, 0x7a, 0x77, 0x53, 0xf4, + 0x73, 0x88, 0x7e, 0x6b, 0xae, 0x19, 0x4d, 0x1c, + 0x80, 0x65, 0x2a, 0x8c, 0xe7, 0x3a, 0x77, 0x97, + 0x5a, 0xcd, 0x31, 0x77, 0x36, 0x55, 0x84, 0x71, + 0x15, 0xed, 0x88, 0x3c, 0x3a, 0x4c, 0x92, 0x4c, + 0xf3, 0x8c, 0x73, 0xc8, 0x73, 0x87, 0x88, 0x43, + 0x3f, 0x50, 0x30, 0x97, 0x58, 0x84, 0x5a, 0xa5, + 0x61, 0x96, 0xf1, 0x6f, 0xb6, 0x46, 0xba, 0xa5, + 0xd5, 0x81, 0xeb, 0xd3, 0x7b, 0x95, 0xb1, 0xd7, + 0x86, 0x10, 0x0b, 0x55, 0x63, 0xbe, 0x20, 0xb9, + 0xc0, 0xfc, 0x52, 0x81, 0x9e, 0x5f, 0xad, 0x88, + 0x3f, 0xbc, 0x4b, 0xcd, 0x55, 0x30, 0x28, 0xfb, + 0xf0, 0x51, 0x96, 0xfb, 0xbf, 0xc7, 0xb1, 0x7d, + 0xf8, 0x8d, 0x7a, 0x2c, 0x5e, 0xb7, 0xaf, 0xf4, + 0xb6, 0xa1, 0xb8, 0xbc, 0x13, 0x69, 0x34, 0x5c, + 0xb7, 0x8b, 0x53, 0x94, 0xa3, 0xd5, 0x07, 0x2b, + 0xbd, 0x4c, 0x06, 0x96, 0x48, 0x98, 0x04, 0xb9, + 0xef, 0x0e, 0x52, 0x8e, 0x59, 0xf1, 0xa3, 0xbf, + 0xbf, 0x49, 0x37, 0xd7, 0xc8, 0xb8, 0xab, 0xb6, + 0x1e, 0x82, 0x3c, 0xc5, 0x12, 0x94, 0xba, 0x3c, + 0x8e, 0x5c, 0xce, 0x47, 0xc4, 0x64, 0x6d, 0x1b, + 0x1c, 0x78, 0xd1, 0xf7, 0xf4, 0x06, 0x43, 0x96, + 0x93, 0x5c, 0x9c, 0xac, 0xa7, 0x37, 0x4f, 0x70, + 0x96, 0xac, 0xd4, 0xc9, 0x1f, 0xec, 0x97, 0x8b, + 0x2c, 0x53, 0x58, 0xb3, 0xdb, 0xdd, 0x83, 0x0c, + 0x4b, 0x78, 0x29, 0xd3, 0x4b, 0x93, 0x2b, 0xcc, + 0xf8, 0x88, 0x71, 0x78, 0x6e, 0x9e, 0xed, 0xe5, + 0x09, 0x58, 0xf3, 0xcf, 0x84, 0xb7, 0x2d, 0x97, + 0x32, 0x11, 0x33, 0xdf, 0xcb, 0xe2, 0xf9, 0x35, + 0x8d, 0xb1, 0x73, 0x0f, 0x72, 0xc2, 0x31, 0x65, + 0x07, 0x59, 0x03, 0x94, 0xc5, 0xf8, 0x9d, 0x37, + 0x9d, 0xb0, 0x4a, 0xe4, 0xef, 0xcc, 0x25, 0x27, + 0x68, 0xcd, 0x8d, 0xe4, 0x8d, 0xf7, 0x63, 0x0c, + 0x63, 0x9c, 0xb4, 0x76, 0xcb, 0x10, 0xde, 0xb9, + 0xb8, 0xac, 0x4b, 0x23, 0x21, 0x8c, 0x82, 0xea, + 0x91, 0xf5, 0x39, 0xe0, 0xbb, 0x7e, 0xf0, 0x5c, + 0xfd, 0xf1, 0x3e, 0x5d, 0xf5, 0xc9, 0x72, 0xbe, + 0x46, 0xc8, 0xf5, 0x21, 0xdc, 0xae, 0xcc, 0x51, + 0x64, 0x75, 0x87, 0x7e, 0x56, 0xec, 0x59, 0x19, + 0xf6, 0xc1, 0xde, 0x76, 0x3f, 0x75, 0x1b, 0xce, + 0xd3, 0xdf, 0xae, 0x4b, 0x0a, 0xca, 0x38, 0x7a, + 0xab, 0x7f, 0x2b, 0x73, 0x54, 0x8e, 0x3a, 0xea, + 0x92, 0x95, 0x3b, 0x69, 0xc9, 0x6d, 0xd5, 0x5c, + 0x99, 0x48, 0x33, 0xdd, 0x8c, 0x94, 0xed, 0x3d, + 0xfa, 0x61, 0x3e, 0xae, 0x41, 0xd2, 0xea, 0xd3, + 0x4d, 0xb2, 0xcc, 0xbd, 0x12, 0xea, 0x54, 0x96, + 0xc3, 0xe6, 0xb1, 0xef, 0x91, 0xf1, 0x91, 0x2e, + 0x11, 0x6c, 0xaa, 0x7c, 0x49, 0x60, 0xc1, 0xcc, + 0x73, 0x46, 0xfa, 0x37, 0x2d, 0x59, 0x30, 0x6b, + 0x01, 0x0a, 0x63, 0x07, 0x35, 0x4a, 0x0c, 0xd7, + 0x54, 0x3a, 0x75, 0x84, 0x8b, 0xc2, 0x3b, 0xcc, + 0x20, 0x3c, 0x44, 0xef, 0xf6, 0x31, 0xee, 0x0d, + 0xa3, 0x45, 0xd8, 0x6b, 0xe4, 0x6a, 0x73, 0x9c, + 0xb4, 0xbb, 0x3e, 0x62, 0x8a, 0x79, 0x99, 0x31, + 0xb4, 0xb2, 0x79, 0x32, 0x31, 0xe3, 0x94, 0x77, + 0x11, 0x79, 0x66, 0x3b, 0xa6, 0x74, 0x16, 0x11, + 0x8a, 0x7a, 0x5e, 0xb2, 0xe7, 0x07, 0x2f, 0x23, + 0x8d, 0x06, 0x81, 0xff, 0x00, 0x84, 0x26, 0x37, + 0xe0, 0xa0, 0xbf, 0x8e, 0x27, 0x7d, 0x1c, 0x55, + 0xc7, 0xdb, 0xaf, 0x0c, 0x65, 0x77, 0x1c, 0x27, + 0x29, 0x8f, 0x5c, 0x1b, 0x6a, 0x9c, 0xb6, 0xb3, + 0x4b, 0x93, 0x21, 0x1b, 0x9d, 0x76, 0x4c, 0x9a, + 0x4a, 0x7b, 0xd6, 0x73, 0x24, 0x3b, 0x4e, 0xbb, + 0x14, 0xd7, 0xc9, 0x4d, 0x3e, 0x53, 0x0e, 0xcd, + 0x39, 0x9a, 0x3d, 0x0e, 0x46, 0x32, 0x5a, 0x61, + 0xd3, 0xf0, 0x8f, 0x2f, 0x29, 0xb4, 0xa5, 0x86, + 0x3b, 0x6c, 0x47, 0x32, 0x53, 0xbc, 0xea, 0x31, + 0xe5, 0x52, 0xfc, 0xd1, 0x88, 0x88, 0x8a, 0x93, + 0x97, 0xa1, 0xd9, 0xe2, 0x04, 0xfa, 0x82, 0x3d, + 0x1f, 0x08, 0x72, 0x72, 0x8b, 0x26, 0x4e, 0x07, + 0x6d, 0xa0, 0xbc, 0x68, 0x8d, 0xf5, 0x6e, 0x1d, + 0x42, 0xe3, 0x62, 0xfb, 0x82, 0xc5, 0xe8, 0x66, + 0x57, 0x1e, 0x7d, 0xad, 0xea, 0x96, 0x4a, 0xdd, + 0x67, 0x9b, 0x21, 0x3d, 0x66, 0x2e, 0x5a, 0xc9, + 0x03, 0x67, 0x31, 0x0f, 0x50, 0xf6, 0x9f, 0x1a, + 0x74, 0xf9, 0x05, 0x64, 0xc2, 0x6c, 0x90, 0x15, + 0x89, 0x1c, 0xd5, 0x28, 0x97, 0x12, 0xd5, 0xd0, + 0x59, 0x32, 0x7c, 0x23, 0xe3, 0x10, 0x27, 0xda, + 0x84, 0xa7, 0xbc, 0x57, 0xe2, 0x44, 0xf2, 0xf7, + 0x6a, 0x19, 0xd2, 0xca, 0x75, 0x21, 0xb6, 0x1d, + 0x07, 0xe1, 0xaa, 0x5c, 0xdd, 0x5b, 0x5f, 0x6c, + 0xb3, 0x7f, 0x08, 0xef, 0xcf, 0x63, 0xfe, 0x5a, + 0x7f, 0xe5, 0x3f, 0x87, 0xbe, 0xbb, 0x5f, 0x13, + 0xba, 0x31, 0xb5, 0x48, 0xc4, 0xad, 0xdd, 0xb7, + 0x7e, 0xad, 0xcb, 0xd6, 0x04, 0x76, 0x89, 0x55, + 0x54, 0xa2, 0xc5, 0xa7, 0x32, 0xc4, 0x84, 0x72, + 0xaf, 0xab, 0x00, 0xa0, 0x8f, 0x1b, 0x79, 0x81, + 0xe5, 0x9f, 0xde, 0xea, 0xe8, 0x55, 0x4a, 0x93, + 0x56, 0xa2, 0x37, 0xdf, 0xa3, 0x52, 0xaa, 0x81, + 0x15, 0xd7, 0xf7, 0x7b, 0xe1, 0x60, 0x3b, 0xf7, + 0xcf, 0x8d, 0xbf, 0x7c, 0xe9, 0xdf, 0x81, 0x9f, + 0xeb, 0xeb, 0xeb, 0x0b, 0xf8, 0xe9, 0x5f, 0xb1, + 0x5e, 0xd0, 0x7b, 0xd1, 0xa3, 0xf7, 0xa7, 0x47, + 0xf8, 0xc7, 0x27, 0xfb, 0x73, 0xbe, 0xa7, 0x14, + 0x1e, 0x61, 0x17, 0x6c, 0xe3, 0x62, 0x9d, 0x5e, + 0xd4, 0x9c, 0x75, 0x84, 0xd4, 0xba, 0x63, 0xe1, + 0x4a, 0x1c, 0x9d, 0x0b, 0x16, 0x2b, 0xdb, 0x4a, + 0xe6, 0x1b, 0xc8, 0x45, 0x27, 0x5d, 0x91, 0x21, + 0x04, 0x31, 0x11, 0x33, 0x05, 0x1e, 0x60, 0xe3, + 0xcf, 0xd2, 0x6c, 0x0f, 0xfe, 0x59, 0xd7, 0x98, + 0x38, 0xf3, 0xf4, 0x9b, 0x03, 0xff, 0x00, 0x96, + 0x74, 0x5d, 0x3c, 0x27, 0x1f, 0x87, 0x38, 0x12, + 0xcb, 0x93, 0x8a, 0x30, 0x63, 0xcc, 0x07, 0x1b, + 0x18, 0x16, 0xdc, 0x33, 0xde, 0x05, 0x1d, 0xc4, + 0x33, 0xdd, 0x31, 0xe5, 0xd7, 0x98, 0x38, 0xf3, + 0xf4, 0x9b, 0x03, 0xff, 0x00, 0x96, 0x75, 0xd5, + 0xaf, 0xc2, 0x5e, 0xc9, 0x0f, 0x5c, 0xcc, 0xc4, + 0x31, 0x39, 0xcc, 0x43, 0x42, 0x66, 0x3b, 0xa6, + 0x20, 0xc3, 0x85, 0x48, 0x77, 0x89, 0xee, 0x9e, + 0xfe, 0xe9, 0xd1, 0xf4, 0xb8, 0x47, 0xd9, 0x25, + 0x9d, 0x33, 0x95, 0xb3, 0xa7, 0x9b, 0xc4, 0x9f, + 0x4d, 0x83, 0xb6, 0xeb, 0x3e, 0x5e, 0x15, 0x9e, + 0x53, 0x8d, 0xe3, 0x71, 0x2d, 0x8a, 0x37, 0x8e, + 0xed, 0x32, 0x4b, 0x86, 0xfd, 0x90, 0x46, 0x14, + 0x70, 0xb6, 0xcc, 0xf1, 0x16, 0x12, 0x21, 0x4c, + 0x9e, 0x6d, 0x96, 0xcd, 0xf8, 0x5f, 0xc4, 0x39, + 0xe5, 0x2d, 0x84, 0xb6, 0x29, 0xe5, 0x2e, 0xee, + 0xe9, 0xd0, 0x19, 0x70, 0xef, 0x1f, 0x88, 0x36, + 0x0a, 0x54, 0x65, 0xc4, 0x78, 0x38, 0x16, 0x40, + 0x97, 0x29, 0x4a, 0xca, 0x78, 0x63, 0x63, 0x81, + 0x2f, 0x14, 0xa4, 0x77, 0xd8, 0xbb, 0xa7, 0xbf, + 0x5e, 0x60, 0xe3, 0xcf, 0xd2, 0x6c, 0x0f, 0xfe, + 0x59, 0xd7, 0x98, 0x38, 0xf3, 0xf4, 0x9b, 0x03, + 0xff, 0x00, 0x96, 0x75, 0xe6, 0x0e, 0x3c, 0xfd, + 0x26, 0xc0, 0xff, 0x00, 0xe5, 0x9d, 0x79, 0x83, + 0x8f, 0x3f, 0x49, 0xb0, 0x3f, 0xf9, 0x67, 0x56, + 0x70, 0x8d, 0xc5, 0x71, 0xc5, 0xb3, 0xaf, 0x5b, + 0x15, 0x66, 0x5e, 0xbe, 0x22, 0xc1, 0xa8, 0x4a, + 0x32, 0x98, 0x9a, 0x39, 0x61, 0x1e, 0x42, 0xe1, + 0xb2, 0x98, 0x95, 0x0d, 0xe8, 0x49, 0x4e, 0xfe, + 0x31, 0x2e, 0x4a, 0x36, 0x89, 0xda, 0x3c, 0xc1, + 0xc7, 0x9f, 0xa4, 0xd8, 0x1f, 0xfc, 0xb3, 0xaf, + 0x30, 0x71, 0xe7, 0xe9, 0x36, 0x07, 0xff, 0x00, + 0x2c, 0xea, 0x05, 0xfc, 0x37, 0xec, 0x80, 0x92, + 0x20, 0x86, 0x08, 0xb7, 0x88, 0xb0, 0x8b, 0x92, + 0x59, 0x7b, 0x93, 0x88, 0x3e, 0x17, 0x89, 0x90, + 0x2d, 0xa7, 0x62, 0x8e, 0xe9, 0xda, 0x76, 0x9d, + 0x74, 0xc3, 0x84, 0xbd, 0x92, 0x0c, 0xe0, 0x05, + 0x92, 0x03, 0x9c, 0xc4, 0x91, 0xf4, 0xcf, 0x7e, + 0x46, 0x72, 0xc7, 0x0a, 0xef, 0xc8, 0x7b, 0x4f, + 0x29, 0xed, 0xca, 0x5b, 0x4e, 0xd3, 0xa6, 0x29, + 0x9c, 0x2f, 0xec, 0x88, 0x0c, 0x52, 0xfa, 0xcd, + 0x59, 0xe7, 0xf0, 0xc2, 0x6a, 0x57, 0x77, 0xb6, + 0xb0, 0x27, 0x85, 0xa0, 0x81, 0x7d, 0xf1, 0xe3, + 0x94, 0x40, 0xf7, 0xc7, 0x7e, 0xba, 0xbf, 0x5b, + 0xbc, 0x7f, 0xd2, 0xe6, 0xe9, 0xf5, 0x3e, 0xb9, + 0x30, 0x7d, 0x3e, 0x79, 0x8e, 0x68, 0x0e, 0x7f, + 0xad, 0x8e, 0x5e, 0x79, 0x18, 0x99, 0xe5, 0xdf, + 0x7d, 0xa2, 0x67, 0x5e, 0x60, 0xe3, 0xcf, 0xd2, + 0x6c, 0x0f, 0xfe, 0x59, 0xd7, 0x98, 0x38, 0xf3, + 0xf4, 0x9b, 0x03, 0xff, 0x00, 0x96, 0x75, 0x9f, + 0x9e, 0x1b, 0xa5, 0x9a, 0xa4, 0x81, 0xcd, 0x56, + 0x8b, 0x23, 0x9a, 0xc8, 0x52, 0xc8, 0x34, 0xdb, + 0xd8, 0x26, 0x44, 0x92, 0x74, 0xb1, 0xd8, 0xe1, + 0x5a, 0xf9, 0x3b, 0xa4, 0x4c, 0x18, 0x52, 0x5d, + 0xfc, 0xf1, 0x1d, 0xda, 0x8d, 0x54, 0xfc, 0x25, + 0x1f, 0xad, 0x1d, 0x71, 0x37, 0xfa, 0x43, 0x9b, + 0xfe, 0x53, 0xb5, 0xfb, 0x9b, 0x27, 0x05, 0x5c, + 0x0e, 0x8e, 0x32, 0xfd, 0xf5, 0x36, 0xdc, 0xc4, + 0x56, 0x43, 0x92, 0xb8, 0x15, 0xd9, 0x6f, 0x8a, + 0xce, 0xea, 0xa4, 0xce, 0xd2, 0x30, 0x2b, 0x6b, + 0x24, 0xd4, 0x30, 0xa5, 0x31, 0x9c, 0xa0, 0x54, + 0x1b, 0x79, 0xb4, 0xae, 0xf5, 0x68, 0x8c, 0xd6, + 0xca, 0xd2, 0xeb, 0xff, 0x00, 0x64, 0xeb, 0x8b, + 0xdc, 0x1d, 0x6b, 0x05, 0x65, 0x68, 0xb2, 0x56, + 0x50, 0xc8, 0x3a, 0x87, 0xda, 0x6a, 0x55, 0x7c, + 0x0a, 0x02, 0x0c, 0x0f, 0xc5, 0x69, 0xe4, 0xac, + 0xc6, 0x3a, 0xa3, 0x19, 0x9b, 0xbf, 0x6a, 0xa6, + 0x3e, 0x3a, 0x15, 0xd9, 0x47, 0x09, 0x45, 0x50, + 0x86, 0x17, 0x22, 0x76, 0x20, 0x56, 0x5a, 0xd8, + 0x30, 0x0e, 0xb6, 0xe2, 0xb9, 0xa7, 0x4a, 0x65, + 0xea, 0xe6, 0x6b, 0xa2, 0x53, 0xc5, 0x8a, 0x65, + 0x4c, 0x00, 0x52, 0xa3, 0x10, 0x58, 0x95, 0xe2, + 0x11, 0xc3, 0xf1, 0x93, 0xa8, 0xd8, 0xb9, 0x55, + 0x60, 0x56, 0x47, 0x08, 0x3e, 0x13, 0x4d, 0x58, + 0x43, 0x1e, 0x16, 0xa7, 0x37, 0xca, 0x8e, 0xa1, + 0xa2, 0x3e, 0xdb, 0x94, 0x6a, 0x2d, 0x52, 0x57, + 0x0f, 0xf6, 0xb2, 0xe2, 0x0b, 0x35, 0xdb, 0x63, + 0x36, 0x1c, 0x2d, 0xbc, 0xd6, 0x1c, 0x6d, 0x46, + 0x02, 0x52, 0xce, 0x26, 0x8e, 0x4d, 0x85, 0xa6, + 0x67, 0x21, 0x56, 0x79, 0xe3, 0x9a, 0x48, 0xe3, + 0x96, 0x74, 0xcb, 0x4a, 0x4f, 0x09, 0x46, 0x46, + 0x78, 0x8e, 0xcd, 0x6b, 0x36, 0x2d, 0x2b, 0x81, + 0x46, 0xa4, 0xd7, 0x0c, 0x5d, 0x16, 0x2d, 0x34, + 0x59, 0x7c, 0x63, 0x15, 0x2b, 0x16, 0x11, 0x1c, + 0x8e, 0x2a, 0x76, 0xe6, 0x22, 0x33, 0xef, 0x22, + 0x9d, 0x1d, 0xaa, 0x58, 0x9c, 0x45, 0xec, 0x94, + 0xf1, 0x1d, 0xaa, 0xd6, 0xdb, 0x57, 0x03, 0xc3, + 0x99, 0x74, 0x0d, 0x70, 0xc6, 0x50, 0x62, 0x96, + 0x8e, 0x8d, 0x0b, 0x78, 0xe4, 0xd7, 0xea, 0x99, + 0x96, 0xf4, 0x79, 0x14, 0x46, 0x47, 0x32, 0x52, + 0x52, 0x5a, 0xb2, 0x7c, 0x35, 0x86, 0xc7, 0x5e, + 0xb1, 0x3c, 0x48, 0xea, 0xd6, 0x7b, 0x36, 0x13, + 0x1d, 0x9f, 0x5a, 0x66, 0x30, 0xf8, 0xc6, 0xbe, + 0xa5, 0x32, 0xbd, 0x4b, 0x23, 0xc9, 0x4d, 0x59, + 0x26, 0x5b, 0x1a, 0xf0, 0x89, 0xe4, 0xdb, 0xc5, + 0x09, 0x21, 0xdb, 0x59, 0x7c, 0xca, 0x2a, 0xe3, + 0xce, 0xcd, 0x76, 0xe1, 0x71, 0xa1, 0x52, 0x10, + 0x8b, 0x38, 0xba, 0x99, 0x7b, 0xb4, 0x1c, 0xfc, + 0xc3, 0x06, 0xa1, 0x43, 0x68, 0x38, 0x6b, 0x36, + 0xab, 0x92, 0x8a, 0xc6, 0x2f, 0xa4, 0xa6, 0xb0, + 0xe4, 0x56, 0x5d, 0x04, 0xed, 0x43, 0x3d, 0x92, + 0xc7, 0x51, 0x94, 0x1a, 0xb3, 0x94, 0x72, 0xf5, + 0x62, 0xa2, 0x42, 0x94, 0xb2, 0x82, 0x71, 0xcd, + 0x8c, 0x9d, 0x6a, 0x80, 0x30, 0x8a, 0xad, 0xec, + 0x99, 0x1d, 0xe4, 0x2b, 0x2d, 0x2a, 0x0b, 0x15, + 0xfa, 0xa8, 0x5a, 0xfa, 0x93, 0x1a, 0xe2, 0xd8, + 0xbf, 0x5d, 0x2e, 0xc8, 0xa5, 0xed, 0xa7, 0x45, + 0xcc, 0x00, 0x33, 0xae, 0x18, 0x8c, 0x85, 0x05, + 0x5e, 0xb2, 0x89, 0x9d, 0xc8, 0x3b, 0x49, 0x64, + 0x2b, 0xa8, 0x5a, 0x3b, 0x6e, 0x00, 0xf0, 0xdf, + 0xcb, 0x13, 0xfb, 0x9e, 0x14, 0xff, 0x00, 0x2b, + 0x88, 0x7f, 0x96, 0x9f, 0xfd, 0xd2, 0xef, 0xc0, + 0xcf, 0xf5, 0xf5, 0xf5, 0x85, 0xfc, 0x74, 0xaf, + 0xd8, 0xaf, 0x68, 0x3d, 0xe8, 0xd1, 0xfb, 0xd3, + 0xa3, 0xfc, 0x63, 0x93, 0xfd, 0xb9, 0xdf, 0x53, + 0x8c, 0x3f, 0x00, 0xa7, 0xfc, 0xb1, 0x8e, 0xfd, + 0xcf, 0x02, 0xef, 0xec, 0x9b, 0x90, 0xf6, 0x3c, + 0xe7, 0xbb, 0xc6, 0x7b, 0x2e, 0x95, 0x2e, 0x25, + 0xb7, 0x19, 0x6e, 0x5c, 0xb5, 0x4f, 0x1d, 0x9f, + 0x5b, 0xf3, 0xca, 0xbe, 0xc5, 0xcd, 0xb0, 0xf6, + 0xae, 0xf2, 0xed, 0x65, 0xd1, 0xf2, 0x37, 0x56, + 0x9f, 0x8c, 0xf6, 0x48, 0xa1, 0xc3, 0x56, 0x99, + 0xec, 0x8d, 0x99, 0x65, 0xac, 0xe6, 0x77, 0x89, + 0xf2, 0x5c, 0x38, 0x59, 0xd1, 0x2c, 0x26, 0x2b, + 0x63, 0xeb, 0x8a, 0xdf, 0x6a, 0xcb, 0x99, 0x3b, + 0x5a, 0x34, 0xda, 0xd9, 0x81, 0x13, 0xb9, 0xcf, + 0x3c, 0x4e, 0xb8, 0xe1, 0xd4, 0xaf, 0xa3, 0x2d, + 0x21, 0x99, 0xf6, 0x39, 0xad, 0x7f, 0x2f, 0x58, + 0x48, 0x11, 0x98, 0xca, 0x52, 0xc0, 0xe6, 0xea, + 0xe4, 0xb2, 0x8b, 0x82, 0x81, 0x93, 0x0b, 0x57, + 0x16, 0xd9, 0x8b, 0x1c, 0xb1, 0xda, 0xf6, 0xed, + 0x7d, 0xe4, 0xf9, 0x99, 0xf6, 0x2b, 0x1d, 0xfb, + 0xe3, 0x11, 0xc5, 0x73, 0xb7, 0xde, 0x82, 0xe2, + 0xcb, 0xbb, 0x4e, 0xdf, 0x78, 0xb6, 0x9d, 0xbe, + 0xfe, 0xd3, 0xfb, 0x89, 0xf7, 0xa7, 0x59, 0x3f, + 0xc5, 0x7c, 0x23, 0xff, 0x00, 0xee, 0x76, 0x03, + 0xea, 0x17, 0xbd, 0x3f, 0xf7, 0x6b, 0x83, 0xd4, + 0x71, 0xdd, 0x8a, 0x7e, 0x0f, 0x86, 0xf2, 0xac, + 0x81, 0xfb, 0x1e, 0x1d, 0xdc, 0x31, 0x86, 0xe2, + 0x85, 0xd8, 0x64, 0xf7, 0x0e, 0xca, 0x43, 0xf8, + 0x80, 0xb7, 0x29, 0x89, 0xe9, 0xd6, 0x2f, 0xbd, + 0xbe, 0xb8, 0x87, 0x29, 0x8a, 0xe2, 0x1a, 0x3c, + 0x1f, 0x6f, 0x25, 0xec, 0x79, 0xec, 0x75, 0x72, + 0xb6, 0x66, 0xfe, 0x5d, 0xf8, 0x1a, 0x54, 0x12, + 0xde, 0x22, 0xc9, 0x1c, 0x57, 0x2c, 0x95, 0x65, + 0xb1, 0xa8, 0xea, 0xd6, 0x9e, 0xc6, 0xa1, 0x10, + 0xf6, 0xe2, 0x31, 0x49, 0x6d, 0x07, 0x33, 0xac, + 0xd6, 0x32, 0xdf, 0x13, 0xd0, 0xe3, 0x1e, 0x21, + 0xc6, 0xfb, 0x14, 0xf1, 0xa8, 0xe5, 0xb3, 0xf8, + 0xdb, 0x6e, 0xc9, 0x57, 0x62, 0x6d, 0xe5, 0x31, + 0x36, 0xa8, 0x63, 0xa3, 0x30, 0xf0, 0x5b, 0x32, + 0xe5, 0x45, 0x3d, 0x53, 0x37, 0x90, 0xcc, 0xd6, + 0x87, 0xf6, 0x29, 0xe5, 0xec, 0xfc, 0x83, 0x6a, + 0x3e, 0xff, 0x00, 0x1f, 0x51, 0x98, 0x8f, 0xbf, + 0xcb, 0xc3, 0xd9, 0x0d, 0xe6, 0x3d, 0xee, 0x68, + 0xdf, 0xef, 0x6f, 0x1f, 0x7f, 0xea, 0xf1, 0x47, + 0xfa, 0x41, 0x53, 0xf9, 0x37, 0x51, 0xaa, 0x9f, + 0x84, 0xa3, 0xf5, 0xa3, 0xae, 0x24, 0x21, 0xa5, + 0x70, 0x84, 0xb8, 0x83, 0x34, 0x42, 0x43, 0x59, + 0xd2, 0x24, 0x33, 0x92, 0xb3, 0x30, 0x43, 0x30, + 0x1b, 0x4c, 0x4c, 0x77, 0xc4, 0xc7, 0x74, 0xc6, + 0xbe, 0xd0, 0xbb, 0xf1, 0x47, 0xfc, 0x9e, 0xbe, + 0xd0, 0xbb, 0xf1, 0x47, 0xfc, 0x9e, 0xbe, 0xd0, + 0xbb, 0xf1, 0x47, 0xfc, 0x9e, 0xbe, 0xd0, 0xbb, + 0xf1, 0x47, 0xfc, 0x9e, 0x8c, 0xd9, 0x8b, 0xbe, + 0xea, 0xf6, 0x2b, 0xd8, 0xa7, 0x69, 0x42, 0x87, + 0xac, 0xce, 0xbd, 0xa5, 0xca, 0xd9, 0xc8, 0x7d, + 0x12, 0x81, 0x60, 0x78, 0xad, 0x5f, 0x30, 0x90, + 0xf5, 0x00, 0x79, 0xa3, 0x6d, 0xf5, 0x42, 0xad, + 0x5c, 0x5e, 0x49, 0x55, 0x31, 0xd5, 0x89, 0x09, + 0xeb, 0xa1, 0xac, 0x7b, 0x09, 0xaf, 0x65, 0x97, + 0xb5, 0xb2, 0x09, 0x00, 0x8e, 0x66, 0x33, 0x94, + 0x00, 0x63, 0x60, 0x00, 0x1e, 0xf9, 0x29, 0x29, + 0x9e, 0x26, 0x1b, 0x18, 0x4c, 0x89, 0xd0, 0xcf, + 0xb4, 0x6e, 0x26, 0xbf, 0x23, 0xba, 0xb8, 0xfc, + 0x95, 0x79, 0x8e, 0xc7, 0x6c, 0x19, 0xd0, 0xe5, + 0x2e, 0x50, 0xea, 0x57, 0xb0, 0x30, 0x21, 0xd6, + 0x43, 0x39, 0x77, 0x8e, 0x41, 0xd6, 0x73, 0x23, + 0x53, 0x0b, 0x9a, 0x0b, 0x79, 0xb5, 0xb9, 0x24, + 0x36, 0x17, 0xcd, 0x5e, 0xb0, 0x59, 0x35, 0x13, + 0xa4, 0x3a, 0x75, 0x84, 0xda, 0x7c, 0xaa, 0xe4, + 0x5f, 0x34, 0x8c, 0x0f, 0x3f, 0x3c, 0xef, 0x23, + 0x11, 0xa1, 0xc4, 0xde, 0xc5, 0x66, 0xbd, 0xaf, + 0x2a, 0xec, 0x90, 0x3e, 0xa2, 0x76, 0xdf, 0xad, + 0x51, 0x15, 0x7a, 0x44, 0x0e, 0x44, 0xf9, 0x3a, + 0x3c, 0xfc, 0xd0, 0x5f, 0xc2, 0xdb, 0x6e, 0xed, + 0xf5, 0xe0, 0x93, 0xc4, 0xf1, 0x0f, 0x45, 0x79, + 0x56, 0xe4, 0x92, 0xe0, 0x50, 0x75, 0x67, 0xad, + 0x4a, 0xbd, 0x52, 0x53, 0x46, 0x6b, 0x72, 0xf7, + 0x4a, 0x24, 0xe0, 0x86, 0x7c, 0x85, 0x11, 0x31, + 0xdd, 0xbc, 0xaf, 0x11, 0x5b, 0x13, 0x95, 0xe9, + 0xab, 0x2e, 0xfc, 0x90, 0xba, 0xc2, 0x08, 0x8e, + 0x45, 0xf4, 0x6a, 0xd5, 0xe9, 0x48, 0x2d, 0x11, + 0x1c, 0xc2, 0x48, 0x93, 0xe7, 0x89, 0xda, 0x44, + 0xa2, 0x39, 0x77, 0x8d, 0xe6, 0xae, 0x39, 0x58, + 0xec, 0x8a, 0xac, 0x54, 0xcd, 0x3b, 0x2e, 0xbb, + 0x60, 0x97, 0x8c, 0x84, 0x9d, 0x4a, 0xb5, 0xd6, + 0x2b, 0x88, 0x54, 0x18, 0x31, 0x47, 0x5b, 0xab, + 0x0c, 0x83, 0xfb, 0xb1, 0x11, 0x11, 0x31, 0xbe, + 0xaf, 0x15, 0x8c, 0x06, 0x45, 0x75, 0xb2, 0xeb, + 0xa2, 0xfc, 0x92, 0xab, 0xa8, 0x80, 0xa3, 0x37, + 0x4c, 0x0c, 0x67, 0x29, 0x4f, 0xf7, 0xb7, 0x20, + 0x43, 0xe5, 0xaf, 0xea, 0xd6, 0x38, 0x91, 0x28, + 0xb4, 0xef, 0x1f, 0x98, 0x54, 0x41, 0xd8, 0x2a, + 0xe1, 0x72, 0x41, 0x8f, 0x0c, 0x66, 0x52, 0xa2, + 0x81, 0x8b, 0x69, 0x3d, 0x97, 0x72, 0xc2, 0xa1, + 0xb3, 0x90, 0xb2, 0x70, 0x88, 0x02, 0x9e, 0x54, + 0x21, 0x40, 0x95, 0x88, 0x8a, 0xd0, 0x80, 0x18, + 0x29, 0x39, 0x61, 0x95, 0xae, 0x6c, 0x2d, 0xf0, + 0x9b, 0x18, 0x2a, 0xd8, 0xa9, 0xf6, 0xa7, 0x4f, + 0xef, 0xb1, 0xbb, 0x5e, 0xfd, 0xcb, 0xe7, 0xed, + 0x11, 0xcd, 0x36, 0xde, 0xb6, 0x4c, 0x87, 0x74, + 0x8f, 0x30, 0x44, 0x99, 0x74, 0xfb, 0xfe, 0xd0, + 0xbb, 0xf1, 0x47, 0xfc, 0x9e, 0xbe, 0xd0, 0xbb, + 0xf1, 0x47, 0xfc, 0x9e, 0xbe, 0xd0, 0xbb, 0xf1, + 0x47, 0xfc, 0x9e, 0xbe, 0xd0, 0xbb, 0xf1, 0x47, + 0xfc, 0x9e, 0xbe, 0xd0, 0xbb, 0xf1, 0x47, 0xfc, + 0x9e, 0xb8, 0x55, 0x6d, 0x59, 0xa9, 0x90, 0x5c, + 0x41, 0xb8, 0x30, 0x08, 0x0e, 0x37, 0xcc, 0xba, + 0x63, 0x71, 0x28, 0x89, 0x8d, 0xe2, 0x62, 0x63, + 0xbb, 0xbe, 0x27, 0x7f, 0xee, 0x97, 0x7e, 0x06, + 0x7f, 0xaf, 0xaf, 0xac, 0x2f, 0xe3, 0xa5, 0x7e, + 0xc5, 0x7b, 0x41, 0xef, 0x46, 0x8f, 0xde, 0x9d, + 0x1f, 0xe3, 0x1c, 0x9f, 0xed, 0xce, 0xfa, 0x9c, + 0x55, 0x8f, 0xc6, 0x53, 0xb3, 0x7e, 0xf5, 0x9a, + 0x55, 0x46, 0xbd, 0x4a, 0x89, 0x3b, 0x16, 0x1c, + 0x43, 0x94, 0xa0, 0xc2, 0x85, 0x25, 0x70, 0x46, + 0x72, 0x2b, 0x02, 0x39, 0xe5, 0x89, 0xd8, 0x46, + 0x67, 0xc9, 0x1a, 0xf4, 0x27, 0x8a, 0x3d, 0x49, + 0x90, 0xf9, 0x0d, 0x7a, 0x13, 0xc5, 0x1e, 0xa4, + 0xc8, 0x7c, 0x86, 0xbd, 0x09, 0xe2, 0x8f, 0x52, + 0x64, 0x3e, 0x43, 0x5e, 0x84, 0xf1, 0x47, 0xa9, + 0x32, 0x1f, 0x21, 0xae, 0x1d, 0xc0, 0x17, 0x00, + 0xf1, 0x22, 0xd5, 0xc3, 0xad, 0xce, 0x31, 0x56, + 0x07, 0x0f, 0x92, 0x96, 0x59, 0xf0, 0xe5, 0xaa, + 0xd6, 0x99, 0x0c, 0x09, 0xad, 0xca, 0xbe, 0x84, + 0xd6, 0x81, 0x0e, 0x59, 0x9e, 0x78, 0x29, 0x92, + 0xdb, 0x6d, 0x57, 0xe1, 0x8f, 0xac, 0x1e, 0x24, + 0xe8, 0xd7, 0xcf, 0x5a, 0xcf, 0x45, 0xbf, 0x03, + 0xe4, 0xba, 0xa4, 0xdb, 0x38, 0xfa, 0xb8, 0xf9, + 0xaf, 0x2b, 0xec, 0xfc, 0x90, 0xb1, 0x1a, 0xb0, + 0xc8, 0x3d, 0xf9, 0xa4, 0x8a, 0x63, 0x6d, 0xa3, + 0x59, 0x3a, 0x37, 0xfd, 0x8c, 0x33, 0x7c, 0x43, + 0x85, 0xcc, 0x2e, 0xb0, 0xdf, 0xc4, 0xdd, 0xc5, + 0xe6, 0xea, 0x41, 0x3a, 0x93, 0xba, 0xf4, 0xad, + 0xd6, 0xbd, 0x40, 0x55, 0x6e, 0xa5, 0x9a, 0xe6, + 0x4c, 0x0e, 0x74, 0x9c, 0x75, 0x10, 0xf7, 0xa0, + 0xfd, 0xad, 0xa7, 0xbd, 0x22, 0x1f, 0x63, 0x9c, + 0xe6, 0x1f, 0x1b, 0x89, 0xc7, 0xaf, 0x15, 0x87, + 0xc4, 0x50, 0xc3, 0x65, 0xce, 0xb5, 0x0a, 0x2b, + 0x73, 0xac, 0x72, 0xf5, 0x6c, 0x83, 0x1f, 0x66, + 0xcb, 0xac, 0x58, 0x73, 0xad, 0x5b, 0x71, 0x75, + 0x6c, 0x30, 0xb7, 0x2f, 0x72, 0x31, 0x1e, 0x84, + 0xf1, 0x47, 0xa9, 0x32, 0x1f, 0x21, 0xaf, 0x42, + 0x78, 0xa3, 0xd4, 0x99, 0x0f, 0x90, 0xd7, 0xa1, + 0x3c, 0x51, 0xea, 0x4c, 0x87, 0xc8, 0x6a, 0x7f, + 0xf6, 0x27, 0x8a, 0x3c, 0x93, 0xff, 0x00, 0xd0, + 0x99, 0x0f, 0x90, 0xd6, 0x42, 0xe6, 0x3f, 0x85, + 0x38, 0x82, 0xed, 0x56, 0x63, 0xb8, 0x61, 0x61, + 0x62, 0xb6, 0x26, 0xeb, 0x92, 0x47, 0x5b, 0x85, + 0x70, 0x95, 0xac, 0x00, 0xb1, 0x69, 0x91, 0x92, + 0x4d, 0x84, 0xb5, 0x0d, 0x8d, 0xf7, 0x06, 0xac, + 0xc0, 0xb6, 0x21, 0x98, 0xd7, 0xa1, 0x3c, 0x51, + 0xea, 0x4c, 0x87, 0xc8, 0x6a, 0x63, 0xeb, 0x27, + 0x8a, 0x3b, 0xff, 0x00, 0xfb, 0x13, 0x21, 0xf2, + 0x1a, 0xe2, 0x93, 0x0f, 0x63, 0xac, 0xea, 0xa7, + 0x89, 0xf1, 0x38, 0x9c, 0x5c, 0xcf, 0x81, 0xf2, + 0x6c, 0x3c, 0x64, 0xe2, 0xf0, 0xeb, 0xc0, 0x9d, + 0xda, 0x47, 0x35, 0x60, 0xbb, 0x45, 0xdc, 0x5f, + 0x6c, 0xaa, 0xdf, 0x73, 0xc8, 0x17, 0x9b, 0x03, + 0x33, 0x03, 0xb1, 0x59, 0xc2, 0x4f, 0xb1, 0xcf, + 0x10, 0x02, 0xec, 0xf0, 0xdf, 0x0b, 0xf0, 0xdc, + 0xbe, 0x31, 0x59, 0x49, 0x31, 0x4f, 0x0b, 0xe4, + 0x19, 0x90, 0x4d, 0xa8, 0x0e, 0xcb, 0xcb, 0x2c, + 0xb6, 0x4c, 0xe9, 0xb5, 0x7b, 0xf2, 0xac, 0x63, + 0x70, 0x99, 0x9d, 0x0e, 0x49, 0x3c, 0x01, 0x9f, + 0xbc, 0xa3, 0xad, 0x6f, 0x1f, 0x90, 0xc7, 0x5d, + 0xc1, 0x64, 0xca, 0x9e, 0x4b, 0x19, 0x90, 0x4c, + 0xd7, 0xbb, 0x46, 0xcf, 0x22, 0x84, 0xe0, 0x1a, + 0xb9, 0xe6, 0x13, 0x02, 0x82, 0x53, 0x81, 0x4d, + 0x8e, 0x6e, 0x4e, 0x52, 0xa3, 0x86, 0xc4, 0x7b, + 0x14, 0xe6, 0x78, 0x67, 0x09, 0x46, 0xc5, 0x8b, + 0xdd, 0x82, 0x96, 0x3f, 0x88, 0x32, 0x0c, 0xb3, + 0x91, 0xb2, 0x00, 0xa6, 0x5b, 0xb7, 0x7f, 0x27, + 0xd6, 0xb2, 0xe9, 0x14, 0x29, 0x69, 0xae, 0xa9, + 0x9e, 0x4a, 0xe3, 0xd4, 0xe4, 0xfb, 0x2c, 0xc4, + 0x7a, 0x13, 0xc5, 0x1e, 0xa4, 0xc8, 0x7c, 0x86, + 0xbd, 0x09, 0xe2, 0x8f, 0x52, 0x64, 0x3e, 0x43, + 0x5c, 0x42, 0x9c, 0xee, 0x23, 0x23, 0x88, 0x6d, + 0x8c, 0xe5, 0x56, 0xa1, 0x79, 0x1a, 0x8f, 0xa6, + 0x6e, 0x58, 0xe3, 0xf9, 0x25, 0x8b, 0x17, 0x80, + 0x49, 0x84, 0x17, 0x8b, 0x25, 0x1d, 0xdb, 0xf7, + 0x6a, 0x35, 0x53, 0xf0, 0x94, 0x7e, 0xb4, 0x75, + 0xc4, 0x28, 0x47, 0x10, 0x66, 0xd2, 0x94, 0x67, + 0x72, 0xe9, 0x4a, 0x55, 0x94, 0xba, 0xb5, 0x29, + 0x4a, 0xc8, 0x58, 0x05, 0xa9, 0x60, 0x2f, 0x81, + 0x05, 0xac, 0x22, 0x04, 0x00, 0x62, 0x04, 0x46, + 0x22, 0x22, 0x36, 0x8d, 0x7a, 0x4b, 0x9e, 0xf5, + 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, 0xef, + 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, 0xf5, + 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, 0xef, + 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, 0xf5, + 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, 0xef, + 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, 0xf5, + 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, 0xef, + 0x5b, 0xdf, 0xf9, 0xc6, 0xb2, 0x98, 0xb4, 0x71, + 0xdf, 0x12, 0xbf, 0x25, 0x8a, 0x55, 0xc6, 0xb1, + 0x4e, 0x3b, 0x95, 0xaa, 0xd8, 0xec, 0x0b, 0x97, + 0xd9, 0x04, 0x5b, 0x1c, 0xe5, 0xa3, 0xe6, 0x84, + 0x0b, 0x18, 0xae, 0xad, 0x45, 0x8b, 0x39, 0x39, + 0x37, 0x02, 0x21, 0xde, 0x95, 0x5b, 0x5c, 0x71, + 0x9a, 0xa7, 0x93, 0xc9, 0x29, 0x2e, 0xa7, 0x54, + 0xef, 0x64, 0x4e, 0xa8, 0x0d, 0xb8, 0x19, 0xa2, + 0x39, 0x1b, 0xfd, 0xbc, 0x3b, 0x13, 0x2e, 0x41, + 0x09, 0x2a, 0x17, 0x52, 0xda, 0x96, 0xb6, 0xa1, + 0x96, 0x9c, 0x88, 0x63, 0x3a, 0x28, 0xcd, 0xbb, + 0x8a, 0xb3, 0xb1, 0x27, 0x92, 0xb1, 0x8c, 0xb5, + 0x42, 0x72, 0x59, 0x11, 0x7d, 0x26, 0xa4, 0xec, + 0xae, 0x09, 0xa7, 0xda, 0xa4, 0x48, 0x58, 0xca, + 0x76, 0x17, 0xb7, 0x28, 0xf2, 0x98, 0x6d, 0xb9, + 0x6f, 0xac, 0x68, 0x3b, 0x8b, 0x33, 0x6d, 0x66, + 0x43, 0x17, 0x5b, 0x27, 0x22, 0x19, 0x4c, 0x88, + 0x76, 0x6e, 0xd0, 0x4d, 0x1e, 0xcc, 0x7b, 0xda, + 0x2e, 0x66, 0x2f, 0xa5, 0xe3, 0x94, 0x72, 0xf7, + 0x97, 0x2f, 0x2f, 0x8b, 0xbc, 0xfa, 0x4b, 0x9e, + 0xf5, 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, + 0xef, 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, + 0xf5, 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, + 0xef, 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, + 0xf5, 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, + 0xef, 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, + 0xf5, 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, + 0xef, 0x5b, 0xdf, 0xf9, 0x7d, 0x70, 0xbd, 0xab, + 0xd6, 0xac, 0x5c, 0xb4, 0xc2, 0xcf, 0x75, 0x2c, + 0x5a, 0x73, 0x2c, 0x3c, 0xfa, 0x79, 0x76, 0xac, + 0x39, 0xda, 0xd2, 0x23, 0x2e, 0x45, 0x80, 0x80, + 0xef, 0x3e, 0x28, 0x08, 0x8c, 0x77, 0x44, 0x7f, + 0x74, 0xbb, 0xf0, 0x33, 0xfd, 0x7d, 0x7d, 0x61, + 0x7f, 0x1d, 0x2b, 0xf6, 0x2b, 0xda, 0x0f, 0x7a, + 0x34, 0x7e, 0xf4, 0xe9, 0x9f, 0x8c, 0x72, 0x7f, + 0xb7, 0x3b, 0xea, 0x71, 0x81, 0xac, 0x88, 0x0c, + 0x71, 0x8a, 0xe5, 0x20, 0x29, 0x12, 0x8f, 0xec, + 0x8d, 0x2f, 0x21, 0x46, 0xd3, 0x1a, 0xfb, 0x76, + 0xdf, 0xc6, 0x5d, 0xfc, 0xfd, 0x71, 0x86, 0x5e, + 0xae, 0x5e, 0xf4, 0x64, 0x78, 0x68, 0x31, 0xce, + 0xa9, 0x8d, 0x87, 0x1c, 0xf8, 0x51, 0x76, 0x07, + 0x20, 0xfb, 0xcb, 0x5e, 0xed, 0xea, 0x4d, 0x9a, + 0xf4, 0xf1, 0xed, 0xb2, 0x95, 0x28, 0x4c, 0x9a, + 0x2b, 0x60, 0xed, 0xbe, 0xda, 0xa3, 0x97, 0x56, + 0x77, 0x29, 0x39, 0x3c, 0x8f, 0x0d, 0x71, 0x37, + 0x10, 0x56, 0xa1, 0xd4, 0x9e, 0x8b, 0x3e, 0xb6, + 0x33, 0x2a, 0xab, 0x72, 0xb8, 0xb3, 0xa9, 0xd4, + 0x9d, 0xf1, 0x3d, 0xaf, 0x21, 0x1d, 0xdc, 0xd2, + 0xda, 0xfd, 0x28, 0x8e, 0x52, 0xde, 0x31, 0x2d, + 0xbd, 0x9d, 0xca, 0xd1, 0xf0, 0xdf, 0x14, 0x47, + 0x0e, 0xe3, 0xe1, 0x07, 0x2c, 0xea, 0x85, 0x6c, + 0x53, 0xb2, 0x59, 0x5b, 0x7e, 0xd8, 0xd8, 0xdf, + 0xb2, 0x73, 0xe3, 0x90, 0x3b, 0x47, 0x24, 0x9d, + 0xa2, 0x89, 0x2d, 0xc7, 0x68, 0xc2, 0x59, 0xe3, + 0x2e, 0x30, 0xce, 0xe2, 0xaf, 0x71, 0x32, 0x02, + 0xee, 0x36, 0x9e, 0x26, 0x99, 0x64, 0x43, 0x19, + 0x8a, 0x6b, 0xdd, 0x56, 0xbe, 0x5f, 0x3c, 0xd6, + 0xdc, 0x41, 0x45, 0x7b, 0x2d, 0x4b, 0x1a, 0xba, + 0x98, 0xd5, 0xdb, 0xbd, 0x15, 0x13, 0x2c, 0x95, + 0x49, 0xb9, 0x6b, 0x1c, 0x86, 0x2d, 0xb9, 0x46, + 0x59, 0x3a, 0x16, 0xdd, 0x56, 0x6c, 0x55, 0xba, + 0xd6, 0xd6, 0xb1, 0xd2, 0x39, 0x11, 0x7a, 0x18, + 0x2c, 0x98, 0x25, 0x38, 0x76, 0x60, 0x4e, 0xf3, + 0xe2, 0x94, 0x77, 0xeb, 0x8f, 0x71, 0xa5, 0x97, + 0xc9, 0x1e, 0x3e, 0x7d, 0x8c, 0x38, 0xde, 0xcf, + 0x63, 0x3b, 0x8f, 0x3a, 0xd1, 0x62, 0xb6, 0x33, + 0xf7, 0xbb, 0xc1, 0x46, 0x72, 0x2b, 0x72, 0xba, + 0x8c, 0xe4, 0x60, 0x40, 0x9c, 0x73, 0x94, 0x6f, + 0xb4, 0xeb, 0xed, 0xdb, 0x7f, 0x19, 0x77, 0xf3, + 0xf5, 0xc3, 0xb8, 0x8b, 0x97, 0xb2, 0x31, 0x53, + 0x29, 0x9b, 0xc5, 0xe3, 0xec, 0xca, 0x2e, 0x30, + 0x1d, 0x15, 0xee, 0x5d, 0x4d, 0x77, 0x74, 0x4c, + 0xba, 0x82, 0x0c, 0xe4, 0x64, 0xf2, 0x11, 0x2c, + 0xe2, 0x0b, 0x69, 0x90, 0x28, 0xee, 0xd5, 0xe5, + 0xa7, 0x86, 0xbd, 0x91, 0xea, 0xcd, 0x4b, 0x90, + 0x8f, 0x08, 0x5e, 0xe2, 0x18, 0xec, 0x52, 0xb4, + 0xdd, 0x15, 0x34, 0xa6, 0x3e, 0xb6, 0xd1, 0x11, + 0xda, 0x52, 0x26, 0x15, 0xe7, 0xaf, 0xb0, 0x35, + 0xaa, 0x3f, 0x6e, 0x81, 0xe4, 0x3c, 0x67, 0x10, + 0x55, 0xa5, 0xc6, 0xe2, 0xfc, 0xe3, 0xf3, 0xd4, + 0x6a, 0x29, 0xdc, 0x5b, 0x51, 0x8b, 0xa7, 0x67, + 0x12, 0x35, 0x45, 0x76, 0x1f, 0xcb, 0x80, 0x5c, + 0xd9, 0x4b, 0x19, 0x70, 0x08, 0x92, 0x12, 0x82, + 0xe5, 0x59, 0x0f, 0x57, 0x73, 0x82, 0x1e, 0x11, + 0x5f, 0x0e, 0xe4, 0x33, 0x16, 0xa3, 0x3f, 0x46, + 0x8d, 0x5b, 0x4b, 0xb5, 0x74, 0x9c, 0xd5, 0x71, + 0x13, 0xeb, 0xe3, 0xae, 0x9a, 0x13, 0xd2, 0x04, + 0x7b, 0x43, 0x6a, 0x66, 0x71, 0xac, 0xae, 0xb9, + 0x83, 0x3d, 0xe5, 0x91, 0x2c, 0x2f, 0x24, 0x63, + 0xf1, 0xf8, 0x3c, 0xae, 0x56, 0xd5, 0x3b, 0x38, + 0x0a, 0x39, 0x06, 0x3e, 0xd5, 0xe9, 0x6c, 0xb2, + 0xdb, 0x6c, 0xdf, 0xad, 0x60, 0xd3, 0x2a, 0x14, + 0x88, 0xd6, 0x29, 0xa9, 0x04, 0x90, 0x98, 0x32, + 0x88, 0x9f, 0x19, 0x85, 0xbf, 0x77, 0xdb, 0xb6, + 0xfe, 0x32, 0xef, 0xe7, 0xeb, 0x89, 0x1b, 0x4f, + 0x2b, 0x91, 0xaa, 0xd6, 0xf1, 0x9f, 0x0d, 0x55, + 0x63, 0x6b, 0xdd, 0xb2, 0x96, 0x1d, 0x63, 0xc3, + 0xf1, 0x13, 0x8d, 0x04, 0xc5, 0xb0, 0x4a, 0x52, + 0x6d, 0x4a, 0x58, 0x4b, 0xdf, 0x94, 0x89, 0x41, + 0x33, 0x1e, 0x2c, 0x6b, 0x07, 0x96, 0xe2, 0xce, + 0x36, 0xe2, 0xec, 0x64, 0xf1, 0x3d, 0xbb, 0xf5, + 0xf1, 0x3e, 0x0a, 0x51, 0x5d, 0xa7, 0x4d, 0x18, + 0xeb, 0x43, 0x45, 0xf7, 0x32, 0xf6, 0x2d, 0x64, + 0xaa, 0x14, 0x0c, 0x59, 0x93, 0x39, 0xad, 0x44, + 0x2c, 0x58, 0x0a, 0x8a, 0xeb, 0x4c, 0x4c, 0xb8, + 0x06, 0x38, 0x5c, 0x2a, 0x71, 0x76, 0x4a, 0xec, + 0xe6, 0xf8, 0x93, 0x2b, 0xc3, 0x97, 0xac, 0xd5, + 0xbf, 0x61, 0xd4, 0xd0, 0xdc, 0x6d, 0xda, 0x80, + 0x16, 0xe8, 0x34, 0x5f, 0xfb, 0xe6, 0xad, 0x8c, + 0x6d, 0xd4, 0xde, 0x13, 0x99, 0xe5, 0xf2, 0xc4, + 0x16, 0xd1, 0x3b, 0x71, 0x8d, 0x27, 0x71, 0x6e, + 0x73, 0xc1, 0xdc, 0x3a, 0x18, 0xa3, 0xc7, 0x5d, + 0x5d, 0xa7, 0x91, 0xe5, 0x23, 0x88, 0x72, 0x78, + 0xca, 0xb8, 0x22, 0x98, 0xed, 0x12, 0x00, 0x16, + 0xa8, 0xe4, 0x7b, 0x6b, 0x24, 0x26, 0x79, 0x7a, + 0x73, 0x1d, 0xd1, 0xcd, 0xb7, 0x10, 0x70, 0xe7, + 0x0f, 0x71, 0xc7, 0x1a, 0xcf, 0x13, 0xe0, 0xbc, + 0x2f, 0x21, 0x57, 0x38, 0xb5, 0x23, 0x1b, 0x98, + 0x3c, 0x17, 0x5c, 0xaf, 0xd3, 0xc7, 0xdb, 0xa1, + 0x96, 0xb2, 0xf1, 0xb4, 0x69, 0xae, 0xeb, 0x15, + 0x26, 0xd5, 0x65, 0x03, 0x56, 0x92, 0x02, 0x81, + 0x61, 0x44, 0x0e, 0x3e, 0xf7, 0x13, 0xf1, 0x47, + 0x1a, 0x55, 0x8c, 0xb5, 0x9b, 0xb5, 0xe8, 0xaf, + 0x06, 0x4b, 0xb8, 0x7b, 0x54, 0x3a, 0x2b, 0x87, + 0xbe, 0x32, 0x19, 0x2a, 0x22, 0x29, 0x36, 0xd8, + 0x7a, 0xf9, 0x96, 0xc6, 0x17, 0x3d, 0x7d, 0xba, + 0x7e, 0x59, 0xd5, 0xbc, 0x26, 0x13, 0x8a, 0x78, + 0xda, 0xf6, 0x4b, 0x17, 0x90, 0xb1, 0x4b, 0x24, + 0x59, 0x52, 0x4d, 0x5a, 0x3e, 0xd3, 0x1b, 0x41, + 0xd1, 0x6d, 0x4c, 0xa5, 0x87, 0xb7, 0x73, 0xff, + 0x00, 0xdf, 0xd7, 0x47, 0x89, 0xdf, 0xe5, 0xee, + 0xd7, 0x12, 0x95, 0xcb, 0x76, 0x6d, 0x90, 0x67, + 0xaa, 0x08, 0x15, 0x97, 0xb5, 0xe4, 0x23, 0xe0, + 0xed, 0xf6, 0x19, 0x69, 0x14, 0xc4, 0x6f, 0xdf, + 0xb4, 0x7d, 0xdd, 0x46, 0xaa, 0x7e, 0x12, 0x8f, + 0xd6, 0x8e, 0xb8, 0x9b, 0xfd, 0x21, 0xcd, 0xff, + 0x00, 0x29, 0xda, 0xfe, 0xd3, 0xc6, 0x54, 0x6a, + 0xa2, 0x8d, 0x0c, 0xab, 0x42, 0xe9, 0x63, 0xb2, + 0xd5, 0xdf, 0x64, 0xa6, 0xfa, 0xd4, 0x3c, 0xd7, + 0xb1, 0xed, 0xed, 0x97, 0x6c, 0xd3, 0x5b, 0x32, + 0x35, 0x60, 0xc5, 0x56, 0x28, 0x2e, 0x99, 0xf3, + 0x0c, 0xd5, 0x8f, 0x6a, 0xb4, 0x63, 0xaa, 0x79, + 0x4a, 0xee, 0x4a, 0xf1, 0xcf, 0xab, 0x8c, 0x1b, + 0x97, 0x18, 0xe0, 0x15, 0x62, 0xa6, 0x8d, 0x3a, + 0xd5, 0xae, 0x8d, 0xbf, 0x1b, 0x9d, 0x64, 0x9e, + 0x81, 0x35, 0x0b, 0xe5, 0xea, 0x5a, 0x53, 0x11, + 0xd0, 0x12, 0x36, 0xc0, 0xe8, 0x53, 0x61, 0xe2, + 0x8c, 0x76, 0x65, 0x9c, 0x43, 0x91, 0x38, 0x61, + 0x80, 0x9a, 0x57, 0x53, 0x88, 0x83, 0x28, 0x12, + 0x63, 0x33, 0xe2, 0xd9, 0x66, 0x38, 0x6e, 0x2d, + 0x21, 0xee, 0x88, 0xdf, 0xc8, 0x1b, 0xef, 0xdf, + 0x85, 0xba, 0x72, 0x1d, 0x5b, 0x38, 0xa6, 0xb9, + 0xa0, 0xb9, 0x8d, 0x92, 0x6e, 0xcd, 0x65, 0x9b, + 0xd1, 0xda, 0x3d, 0xc7, 0x20, 0x98, 0xc0, 0x8c, + 0xed, 0xb0, 0x72, 0xfd, 0xcf, 0xed, 0x3c, 0x29, + 0xfe, 0x57, 0x10, 0xff, 0x00, 0x2d, 0x3f, 0xfb, + 0xa5, 0xdf, 0x81, 0x9f, 0xeb, 0xeb, 0xeb, 0x0b, + 0xf8, 0xe5, 0x5f, 0xb1, 0x5e, 0xd0, 0x7b, 0xd1, + 0xa3, 0xf7, 0xa7, 0x4c, 0xfc, 0x63, 0x93, 0xfd, + 0xb9, 0xdf, 0x53, 0x8c, 0xa0, 0x06, 0x4a, 0x63, + 0x12, 0x27, 0xb4, 0x77, 0xf8, 0xab, 0xbd, 0x4d, + 0x86, 0x5e, 0xf0, 0x00, 0x91, 0x14, 0xfd, 0xc1, + 0x89, 0x9f, 0xa9, 0xc4, 0xb9, 0x3a, 0x16, 0x97, + 0x5f, 0x29, 0x47, 0x8a, 0x38, 0x1a, 0xfd, 0x11, + 0x93, 0x1e, 0x76, 0x4d, 0x49, 0xcf, 0x93, 0x23, + 0xa3, 0xcd, 0x04, 0xea, 0xf3, 0x05, 0x0a, 0xb4, + 0x11, 0x12, 0x04, 0x97, 0x4a, 0xd9, 0xe2, 0xb3, + 0xbf, 0xd8, 0x9f, 0x3f, 0xc3, 0xf2, 0xb3, 0xc5, + 0x07, 0xd7, 0x16, 0x4e, 0xde, 0x29, 0x6c, 0x03, + 0x3a, 0x54, 0xb3, 0xb9, 0x9e, 0xb6, 0x5b, 0x06, + 0xd1, 0x19, 0x89, 0x0e, 0x9d, 0x6b, 0x97, 0xa8, + 0x23, 0x9c, 0x57, 0xcc, 0x02, 0x0c, 0x11, 0xdb, + 0x5c, 0x03, 0xc3, 0x14, 0x32, 0x55, 0x2c, 0xe1, + 0x78, 0x51, 0xb6, 0x23, 0xc2, 0x20, 0xf5, 0xf6, + 0x3b, 0x16, 0xf3, 0x1d, 0xbf, 0x29, 0x66, 0xe4, + 0xbc, 0x8a, 0x03, 0x9b, 0xb3, 0x3f, 0x1b, 0x8f, + 0x61, 0x14, 0xc7, 0x8f, 0x43, 0x96, 0x3b, 0xb6, + 0x8d, 0x70, 0x96, 0x5b, 0x11, 0x94, 0xc2, 0x20, + 0x31, 0xb8, 0x1c, 0x67, 0x0e, 0xf1, 0x32, 0x72, + 0x79, 0x5a, 0x78, 0xc7, 0xe0, 0x0f, 0x14, 0xcb, + 0x21, 0xe1, 0x47, 0x22, 0xe3, 0x54, 0xcb, 0x78, + 0xbb, 0x14, 0x24, 0x2d, 0xa8, 0xf1, 0xdd, 0xb2, + 0xcc, 0x9a, 0xec, 0xa7, 0xb3, 0xf5, 0x43, 0x97, + 0x59, 0x25, 0x60, 0x59, 0x61, 0xd8, 0x65, 0x5b, + 0x72, 0xb1, 0xce, 0xb5, 0x23, 0x2f, 0x7d, 0x55, + 0x97, 0x22, 0xde, 0xce, 0x50, 0x5c, 0x7b, 0x7e, + 0xdd, 0x58, 0x8e, 0x41, 0xe5, 0x13, 0x81, 0x9e, + 0xf8, 0xd7, 0x1e, 0x7f, 0xfd, 0x2a, 0xe3, 0xef, + 0xe4, 0xc0, 0xfa, 0x9c, 0x29, 0x72, 0xdb, 0xd5, + 0x56, 0xa5, 0x4e, 0x23, 0xc2, 0xd9, 0xb3, 0x65, + 0xc7, 0x0b, 0x4d, 0x74, 0x27, 0x23, 0x5d, 0x8d, + 0x73, 0x58, 0x5e, 0x28, 0x2d, 0x40, 0x32, 0x66, + 0x73, 0xdc, 0x23, 0x13, 0x33, 0xac, 0xe3, 0xec, + 0xfb, 0x31, 0xf0, 0xdf, 0x11, 0x62, 0x4d, 0xec, + 0xb0, 0x3c, 0x3b, 0x5b, 0x8f, 0x33, 0x79, 0x4b, + 0x36, 0xd1, 0x37, 0x85, 0xb5, 0x6b, 0xa7, 0x13, + 0x62, 0x90, 0xd3, 0x73, 0x2b, 0xcf, 0x49, 0xb0, + 0xae, 0xaf, 0x22, 0x7a, 0x1c, 0xeb, 0x2f, 0x6a, + 0x19, 0xd7, 0x07, 0xe3, 0xd5, 0x69, 0x0c, 0xbd, + 0x4f, 0x31, 0xc5, 0xae, 0xb7, 0x50, 0x58, 0x33, + 0x62, 0xba, 0xad, 0x96, 0x2b, 0xb2, 0xb1, 0xca, + 0x89, 0xe6, 0x00, 0xb1, 0xd2, 0x67, 0x48, 0x8a, + 0x22, 0x0f, 0x90, 0xb6, 0xf2, 0x4e, 0xb3, 0xb7, + 0x1d, 0x93, 0xa7, 0x60, 0xb8, 0x7a, 0x9f, 0x09, + 0x71, 0x27, 0x0c, 0x00, 0x34, 0x5a, 0xbc, 0x87, + 0x10, 0x54, 0xe0, 0x7a, 0x78, 0x26, 0x51, 0x44, + 0x89, 0xf2, 0x93, 0x6b, 0x65, 0xe3, 0x19, 0x6a, + 0xe0, 0x8c, 0x11, 0x00, 0x62, 0x1d, 0x05, 0x11, + 0xc8, 0x5c, 0xbc, 0x1d, 0x35, 0xed, 0xaa, 0xe1, + 0xd5, 0xe0, 0x4c, 0x15, 0x2b, 0xc4, 0xb6, 0x0b, + 0x09, 0x39, 0x04, 0xbf, 0x24, 0x76, 0x2b, 0xd8, + 0xe5, 0x99, 0xe4, 0xb2, 0x1d, 0x50, 0x26, 0xac, + 0xbc, 0x61, 0xe7, 0x89, 0x98, 0xef, 0xfa, 0x9c, + 0x41, 0xfe, 0x9d, 0x70, 0xc7, 0xf2, 0x1f, 0x13, + 0xea, 0xa4, 0x60, 0x72, 0xbc, 0x2b, 0xc4, 0x1c, + 0x3d, 0x92, 0x7b, 0x47, 0x8a, 0x38, 0x43, 0x8a, + 0xec, 0x62, 0x11, 0x47, 0x12, 0xf0, 0x7f, 0x2c, + 0x3e, 0xc5, 0x4c, 0xc5, 0xd4, 0xbe, 0x41, 0xd5, + 0x81, 0x39, 0x0a, 0xf9, 0x2c, 0x19, 0x83, 0x49, + 0x89, 0x00, 0xb1, 0x5d, 0x8c, 0xa4, 0x03, 0x3e, + 0xc8, 0x33, 0x8b, 0xba, 0x8f, 0x07, 0xf0, 0x96, + 0x5b, 0x31, 0x9b, 0xe1, 0x20, 0x6b, 0xca, 0x66, + 0xd8, 0xe5, 0x71, 0x39, 0x5e, 0x1c, 0xa7, 0xd8, + 0xc9, 0xdc, 0xad, 0x7c, 0x85, 0xa6, 0xe2, 0x6d, + 0x09, 0xf2, 0xf5, 0xe4, 0x2b, 0xad, 0xc7, 0x00, + 0x5e, 0x4e, 0x0a, 0x70, 0xd8, 0x47, 0x85, 0x72, + 0x59, 0x9e, 0x1f, 0xc4, 0xe6, 0x07, 0x9c, 0x3a, + 0xe1, 0x5b, 0x82, 0x1d, 0x7d, 0x14, 0x19, 0x63, + 0xba, 0x26, 0x14, 0xdc, 0x7e, 0x57, 0x15, 0xca, + 0x6c, 0x99, 0xe6, 0x2a, 0x3e, 0xee, 0x7a, 0x67, + 0xb7, 0x14, 0xf1, 0xfe, 0x66, 0xd6, 0x22, 0xbe, + 0x0e, 0xbd, 0xde, 0x2c, 0xc8, 0x62, 0xfa, 0x39, + 0xbc, 0x3e, 0x42, 0xe6, 0x6e, 0xd6, 0x54, 0x32, + 0x55, 0xf1, 0x14, 0x69, 0xd0, 0xc7, 0xde, 0xb3, + 0x6c, 0x19, 0x60, 0xae, 0x05, 0x97, 0x15, 0xa5, + 0x57, 0x04, 0x55, 0x4b, 0xa5, 0xa4, 0x05, 0x1b, + 0x46, 0x03, 0x12, 0xb6, 0x81, 0xa7, 0x05, 0x8b, + 0xc3, 0xd4, 0x61, 0x2c, 0xe0, 0x93, 0xe1, 0x0b, + 0x93, 0xe1, 0x9c, 0xc4, 0x89, 0x44, 0xcc, 0x7b, + 0x5e, 0x4b, 0x25, 0x62, 0xac, 0xcf, 0xde, 0xaa, + 0x31, 0x3b, 0x72, 0xeb, 0x8b, 0xdc, 0x96, 0x2d, + 0xca, 0x66, 0x76, 0xe9, 0x2d, 0xaa, 0x31, 0x62, + 0xd8, 0x32, 0x7d, 0xc4, 0x06, 0x13, 0x22, 0x43, + 0x3f, 0x72, 0x46, 0x66, 0x35, 0xc4, 0xf3, 0xb4, + 0xed, 0x3c, 0x41, 0x53, 0x69, 0xfb, 0x93, 0xb6, + 0x37, 0xbf, 0x6f, 0x7b, 0xee, 0xea, 0x35, 0x56, + 0x7f, 0xfd, 0x65, 0x1f, 0xac, 0x1d, 0x67, 0xc2, + 0xce, 0x1b, 0x36, 0xdb, 0x11, 0x9a, 0xc9, 0xf6, + 0x86, 0xab, 0x39, 0x55, 0x4a, 0x63, 0xe6, 0xeb, + 0xa5, 0xa6, 0xb5, 0x16, 0x1d, 0xa4, 0xb5, 0x91, + 0xc9, 0x48, 0x2e, 0x58, 0xc9, 0x01, 0xd8, 0x64, + 0xcb, 0x6d, 0xe7, 0xcc, 0x59, 0xff, 0x00, 0xd2, + 0x0a, 0x7f, 0x41, 0xeb, 0xcc, 0x59, 0xff, 0x00, + 0xd2, 0x0a, 0x7f, 0x41, 0xeb, 0xcc, 0x59, 0xff, + 0x00, 0xd2, 0x0a, 0x7f, 0x41, 0xeb, 0xcc, 0x59, + 0xff, 0x00, 0xd2, 0x0a, 0x7f, 0x41, 0xeb, 0xcc, + 0x59, 0xff, 0x00, 0xd2, 0x0a, 0x7f, 0x41, 0xe9, + 0xc7, 0x4b, 0x85, 0xb8, 0x9a, 0xc8, 0x57, 0xe9, + 0xc3, 0xcd, 0x59, 0xda, 0x92, 0x0a, 0x97, 0x73, + 0xf4, 0xa1, 0x85, 0xe0, 0x3d, 0x86, 0x59, 0xd3, + 0x3e, 0x48, 0x99, 0xf1, 0xb9, 0x0b, 0x6f, 0x24, + 0xea, 0xd2, 0x23, 0x84, 0xb8, 0xaa, 0x5d, 0x4a, + 0xbc, 0xdc, 0xb6, 0xb8, 0xcc, 0xd7, 0x93, 0xaf, + 0x54, 0x60, 0x0a, 0x6c, 0xb6, 0x3c, 0x05, 0xe2, + 0xa3, 0x95, 0x80, 0x5d, 0x5f, 0x71, 0xb1, 0x8c, + 0xef, 0xb4, 0xe9, 0xd7, 0x43, 0x86, 0x78, 0x94, + 0xa9, 0xd6, 0x62, 0xd4, 0xfb, 0x23, 0x9c, 0xab, + 0x28, 0x4b, 0x1d, 0xbf, 0x49, 0x6c, 0x67, 0x80, + 0xb9, 0x44, 0x99, 0xb7, 0x8a, 0x33, 0x3b, 0xce, + 0xab, 0x95, 0x8e, 0x19, 0xe2, 0x54, 0x85, 0xb4, + 0xc5, 0x8a, 0xc4, 0xdc, 0xe5, 0x50, 0x17, 0xa2, + 0x48, 0x82, 0x1c, 0xad, 0xf0, 0x5e, 0x3a, 0xe4, + 0xc0, 0x86, 0x0a, 0x3b, 0xb7, 0x19, 0xd0, 0xc5, + 0x3e, 0x17, 0xe2, 0x5b, 0x12, 0x4f, 0x55, 0x58, + 0x20, 0xce, 0xd3, 0xe4, 0x87, 0xb8, 0x1a, 0xc5, + 0xac, 0x99, 0x38, 0x38, 0x00, 0x99, 0x5a, 0x5c, + 0xd9, 0x93, 0x28, 0x11, 0x52, 0x98, 0xc2, 0x98, + 0x00, 0x22, 0x84, 0x55, 0x8e, 0x1b, 0xcd, 0x30, + 0xec, 0xa4, 0xec, 0xa5, 0xa9, 0xe2, 0xcc, 0x2b, + 0xe9, 0x1d, 0x74, 0xf3, 0xf5, 0x9f, 0xe1, 0x04, + 0xe3, 0x0e, 0x84, 0x26, 0xbf, 0x4c, 0xe2, 0xc3, + 0x0a, 0xcc, 0x05, 0x79, 0x02, 0x87, 0x48, 0x4c, + 0x68, 0x17, 0x6b, 0x87, 0xb3, 0x83, 0x2d, 0x50, + 0xd8, 0x49, 0xab, 0x89, 0xf1, 0x76, 0x90, 0xf4, + 0x9c, 0x94, 0x0b, 0x51, 0x66, 0xae, 0x21, 0xd5, + 0xdc, 0x1c, 0xc2, 0x41, 0xcc, 0xa6, 0x14, 0x41, + 0x81, 0x04, 0xec, 0x42, 0x51, 0x02, 0x8a, 0xbc, + 0x39, 0xc4, 0x96, 0x1c, 0x50, 0x64, 0x2a, 0x56, + 0x76, 0xa9, 0x9c, 0xc2, 0x96, 0x4d, 0x64, 0xc0, + 0xc6, 0x0b, 0x7d, 0x81, 0x60, 0x46, 0x5f, 0x78, + 0x46, 0x67, 0xc9, 0x1a, 0x61, 0x2b, 0x87, 0xb8, + 0x89, 0x82, 0x95, 0xf5, 0x5b, 0x23, 0x9e, 0xa9, + 0x30, 0xb5, 0x73, 0x08, 0x75, 0x0f, 0x6c, 0x1f, + 0x70, 0xf3, 0x18, 0x0e, 0xfe, 0x4d, 0xca, 0x35, + 0xe6, 0x2c, 0xff, 0x00, 0xe9, 0x05, 0x3f, 0xa0, + 0xf5, 0xe6, 0x2c, 0xff, 0x00, 0xe9, 0x05, 0x3f, + 0xa0, 0xf5, 0xe6, 0x2c, 0xff, 0x00, 0xe9, 0x05, + 0x3f, 0xa0, 0xf5, 0xe6, 0x2c, 0xff, 0x00, 0xe9, + 0x05, 0x3f, 0xa0, 0xf5, 0xe6, 0x2c, 0xff, 0x00, + 0xe9, 0x05, 0x3f, 0xa0, 0xf5, 0xe6, 0x2c, 0xff, + 0x00, 0xe9, 0x05, 0x3f, 0xa0, 0xf5, 0xc3, 0x05, + 0x8d, 0x45, 0x8a, 0xb4, 0xe6, 0x73, 0xbd, 0x24, + 0xda, 0xb0, 0x16, 0xde, 0x13, 0x19, 0x56, 0x43, + 0x39, 0xde, 0xb4, 0x56, 0x13, 0xe6, 0x6f, 0x39, + 0x8e, 0xc9, 0x1e, 0x50, 0x91, 0x09, 0xe6, 0x91, + 0xe6, 0x9f, 0xee, 0x87, 0x7e, 0x06, 0x7f, 0xaf, + 0xaf, 0xac, 0x2f, 0xe3, 0x95, 0x7e, 0xc5, 0x7b, + 0x41, 0xef, 0x46, 0x8f, 0xde, 0x9d, 0x33, 0xf1, + 0x8e, 0x4f, 0xf6, 0xd7, 0x7d, 0x46, 0x29, 0xcb, + 0x53, 0xd0, 0xe5, 0x31, 0x0f, 0x43, 0x80, 0x58, + 0x97, 0xa1, 0xa3, 0x2b, 0x6a, 0x5c, 0xb2, 0xdc, + 0x58, 0xa6, 0x04, 0xc8, 0x18, 0x14, 0x48, 0x90, + 0xcc, 0xc4, 0xc6, 0x9a, 0xe0, 0xaf, 0x9c, 0xa4, + 0x2c, 0x2e, 0x68, 0xab, 0x53, 0x2c, 0x3d, 0x99, + 0x3b, 0xff, 0x00, 0x05, 0x3d, 0xaa, 0x95, 0xa7, + 0xc0, 0x7d, 0xe8, 0x63, 0xd9, 0x31, 0xe4, 0xdf, + 0x6d, 0x79, 0x78, 0x97, 0xd6, 0xd5, 0x3e, 0x8b, + 0xd7, 0x97, 0x89, 0x7d, 0x6d, 0x53, 0xe8, 0xbd, + 0x79, 0x78, 0x93, 0xd6, 0xd5, 0x3e, 0x8b, 0xd7, + 0x97, 0x89, 0x3d, 0x6d, 0x53, 0xe8, 0xbd, 0x7b, + 0xae, 0x25, 0xf5, 0xb5, 0x4f, 0xa2, 0xf5, 0x94, + 0x3a, 0x3e, 0x1e, 0x99, 0xcb, 0xe0, 0xb2, 0xbc, + 0x3d, 0x6b, 0xaf, 0x92, 0xac, 0xcd, 0xa8, 0x66, + 0x13, 0x08, 0xb7, 0x2a, 0xe5, 0xc7, 0x07, 0x25, + 0x88, 0x08, 0xf6, 0xa6, 0x4f, 0x30, 0x81, 0x77, + 0xca, 0xcf, 0xc9, 0xaf, 0x75, 0xc4, 0xbe, 0xb6, + 0xa9, 0xf4, 0x5e, 0xbd, 0xd7, 0x12, 0xfa, 0xda, + 0xa7, 0xd1, 0x7a, 0xf7, 0x5c, 0x4b, 0xeb, 0x6a, + 0x9f, 0x45, 0xeb, 0xdd, 0x71, 0x2f, 0xad, 0xaa, + 0x7d, 0x17, 0xaf, 0x75, 0xc4, 0xbe, 0xb6, 0xa9, + 0xf4, 0x5e, 0xbd, 0xd7, 0x12, 0xfa, 0xda, 0xa7, + 0xd1, 0x7a, 0xf7, 0x5c, 0x4b, 0xeb, 0x6a, 0x9f, + 0x45, 0xea, 0xdf, 0x0f, 0x0f, 0x87, 0xbb, 0x05, + 0xcc, 0xa5, 0x2c, 0xbb, 0x66, 0x72, 0x55, 0xbb, + 0x47, 0x6a, 0xa1, 0x5a, 0xed, 0x44, 0x40, 0x33, + 0xc1, 0xdc, 0xb0, 0xae, 0x95, 0xf7, 0xf3, 0x84, + 0xae, 0x64, 0x8b, 0x92, 0x60, 0x86, 0x06, 0x60, + 0xbc, 0xbc, 0x49, 0xeb, 0x5a, 0x9f, 0x45, 0xeb, + 0xcb, 0xc4, 0xbe, 0xb6, 0xa9, 0xf4, 0x5e, 0xbc, + 0xbc, 0x4b, 0xeb, 0x6a, 0x9f, 0x45, 0xeb, 0xcb, + 0xc4, 0x9e, 0xb5, 0xa9, 0xf4, 0x5e, 0xbc, 0xbc, + 0x4b, 0xeb, 0x6a, 0x9f, 0x45, 0xeb, 0xcb, 0xc4, + 0x9e, 0xf7, 0x85, 0xaa, 0xfe, 0x4f, 0x35, 0xe9, + 0x18, 0x6c, 0x0d, 0x10, 0xc7, 0xe3, 0xab, 0xc9, + 0x9c, 0x28, 0x48, 0xda, 0xc7, 0x3d, 0x9b, 0x75, + 0x6c, 0xd9, 0x7b, 0x26, 0x59, 0x62, 0xc3, 0x36, + 0x8e, 0x66, 0x1c, 0xf7, 0x08, 0x8a, 0xd7, 0x00, + 0xa0, 0x00, 0x18, 0xd5, 0x5f, 0xc2, 0x13, 0xfa, + 0xc1, 0xd7, 0x12, 0xef, 0xff, 0x00, 0xd7, 0xd9, + 0x6f, 0xdb, 0x9f, 0xb7, 0xfd, 0x5e, 0x5f, 0xe3, + 0xfd, 0xd7, 0x12, 0xfe, 0x31, 0xe1, 0xaf, 0xff, + 0x00, 0xdc, 0x6a, 0x83, 0xed, 0xed, 0xd3, 0x3e, + 0x13, 0x3a, 0x97, 0xb7, 0xdb, 0x79, 0xc6, 0x59, + 0xe2, 0xd4, 0xd2, 0x99, 0x3f, 0xbf, 0x03, 0x55, + 0xce, 0xe4, 0xe7, 0x9f, 0x70, 0x03, 0x1d, 0xc3, + 0x11, 0xac, 0x8f, 0x09, 0x8f, 0xdb, 0x7e, 0x11, + 0xc5, 0x75, 0x23, 0x6f, 0x2d, 0xcb, 0xf9, 0xe6, + 0xe3, 0x94, 0x73, 0xb4, 0x73, 0x10, 0x45, 0x5a, + 0x35, 0x98, 0x3b, 0xf9, 0x05, 0x87, 0x31, 0xb4, + 0x14, 0xea, 0xc9, 0x63, 0xef, 0xd4, 0xbe, 0x1c, + 0x2f, 0x95, 0x4d, 0x14, 0x45, 0x61, 0xc8, 0x8b, + 0x6b, 0x60, 0xec, 0x56, 0x0a, 0x29, 0x1b, 0x3d, + 0xb7, 0x1f, 0x4d, 0x4c, 0x31, 0xbf, 0x8d, 0xe7, + 0xe6, 0xa6, 0xdb, 0x69, 0x82, 0xb8, 0xc9, 0xea, + 0xec, 0x40, 0x4c, 0xe1, 0xaa, 0x74, 0x54, 0xd6, + 0x9d, 0x95, 0xe6, 0xb2, 0xac, 0x04, 0xc4, 0x91, + 0xb1, 0xd1, 0x60, 0xab, 0x34, 0xa4, 0x47, 0xbc, + 0xbb, 0x3d, 0x2c, 0x70, 0xff, 0x00, 0x92, 0x12, + 0xd9, 0xee, 0xe6, 0x2d, 0xf8, 0x52, 0xbf, 0x0e, + 0xf6, 0xd1, 0xed, 0x45, 0x9b, 0xc4, 0x95, 0x46, + 0xb8, 0x61, 0x85, 0x63, 0xab, 0x56, 0xd5, 0xe7, + 0xb2, 0xd2, 0xa1, 0x2b, 0x2c, 0x73, 0x51, 0x65, + 0x1d, 0x58, 0x68, 0x02, 0xab, 0x0d, 0x66, 0x75, + 0x39, 0xfc, 0x66, 0x4e, 0x2f, 0x0d, 0x41, 0xe0, + 0xea, 0xb8, 0x9a, 0xeb, 0xc5, 0x78, 0x47, 0xbf, + 0xa5, 0x6e, 0xc3, 0x6e, 0x35, 0xf7, 0x2d, 0xaf, + 0x79, 0xfb, 0x52, 0x2c, 0x59, 0x60, 0xd7, 0xf2, + 0x73, 0x21, 0x62, 0xc9, 0xf7, 0x7a, 0xb3, 0x52, + 0xae, 0x0c, 0xd2, 0xac, 0x25, 0xfc, 0xad, 0x12, + 0xbe, 0xbb, 0x36, 0xe6, 0x5a, 0x80, 0xc5, 0xe5, + 0xeb, 0xf2, 0x64, 0xa2, 0xc1, 0xd8, 0x44, 0x5a, + 0xba, 0x55, 0x49, 0xd5, 0xd9, 0x50, 0x29, 0xad, + 0x7b, 0x3c, 0x7b, 0x3b, 0x87, 0x93, 0xa5, 0xc2, + 0x56, 0x11, 0x45, 0x54, 0x17, 0xc4, 0x2c, 0xcf, + 0x61, 0xb2, 0x15, 0x2b, 0x36, 0xdb, 0x6b, 0xf6, + 0x6d, 0x86, 0xa8, 0xb0, 0x26, 0xed, 0x8b, 0x6f, + 0x16, 0xc2, 0xae, 0xee, 0x73, 0xd6, 0xe4, 0xe7, + 0xae, 0xb6, 0x80, 0x2a, 0x79, 0xb5, 0x1f, 0xba, + 0xe1, 0x4f, 0xf2, 0xb8, 0x87, 0xf9, 0x69, 0xff, + 0x00, 0xdd, 0x2e, 0xfc, 0x10, 0xff, 0x00, 0x5f, + 0x5f, 0x58, 0x5f, 0xc7, 0x2a, 0xfd, 0x8e, 0xf6, + 0x83, 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0x67, 0xe3, + 0x1c, 0x9f, 0xed, 0xae, 0xfe, 0xe9, 0x8d, 0x09, + 0x8f, 0x94, 0x0a, 0x0a, 0x3d, 0xf1, 0x9d, 0xe3, + 0x57, 0x33, 0x78, 0x0a, 0xe5, 0x93, 0xa9, 0x94, + 0x69, 0x5d, 0x75, 0x7a, 0xf2, 0x07, 0x7a, 0x85, + 0xb7, 0xcc, 0x95, 0x84, 0xbe, 0xb6, 0xfd, 0x52, + 0x5c, 0xbb, 0x9c, 0xd2, 0xf5, 0x89, 0x2c, 0x84, + 0xb9, 0x77, 0x89, 0x88, 0xe6, 0xf4, 0x73, 0x2d, + 0xf1, 0x36, 0x7f, 0xb3, 0x5e, 0x8e, 0x65, 0xbe, + 0x26, 0xcf, 0xf6, 0x6b, 0xd1, 0xcc, 0xb7, 0xc4, + 0xd9, 0xfe, 0xcd, 0x7a, 0x39, 0x96, 0xf8, 0x9b, + 0x3f, 0xd9, 0xaf, 0x47, 0x32, 0xdf, 0x13, 0x67, + 0xfb, 0x35, 0x65, 0x15, 0xb8, 0x7a, 0xec, 0xa2, + 0xdc, 0xa0, 0xac, 0xa2, 0xe6, 0x06, 0x8e, 0x4d, + 0x2c, 0x2a, 0xdd, 0x5e, 0x81, 0xf4, 0xb2, 0x74, + 0xae, 0x2c, 0x4d, 0x5d, 0x66, 0xf2, 0x92, 0xc4, + 0x4b, 0xc7, 0x9d, 0xe6, 0x7b, 0xb6, 0xb6, 0x6d, + 0xc3, 0x66, 0x0a, 0x6f, 0x56, 0x0a, 0x56, 0x63, + 0xc1, 0xc0, 0x0b, 0x9a, 0x6a, 0x34, 0xb1, 0x55, + 0x52, 0x90, 0x48, 0xaa, 0xa5, 0x74, 0x95, 0x74, + 0xf4, 0x55, 0x4c, 0x10, 0x0a, 0x15, 0xc2, 0xd7, + 0x02, 0xbd, 0xc2, 0x5f, 0x78, 0x71, 0xb9, 0x9e, + 0xd7, 0x67, 0xb2, 0x4b, 0xde, 0x58, 0xc4, 0x30, + 0x99, 0x34, 0x43, 0x92, 0xa1, 0x6c, 0xca, 0xc4, + 0x02, 0x49, 0x19, 0xee, 0x20, 0x11, 0x22, 0x2f, + 0x1d, 0x92, 0x67, 0xe3, 0x6a, 0xda, 0xab, 0xe0, + 0xb2, 0xeb, 0x5d, 0xea, 0xfd, 0x96, 0xd8, 0x76, + 0x1e, 0x78, 0x72, 0x3a, 0xaa, 0x7c, 0x04, 0xf5, + 0x16, 0x7c, 0xbb, 0x39, 0x2b, 0x38, 0x62, 0xf9, + 0x1a, 0x32, 0x3d, 0xc7, 0x10, 0x45, 0x13, 0x8f, + 0x52, 0xb0, 0x19, 0xfa, 0xf9, 0x2c, 0x3e, 0x45, + 0xd6, 0xb1, 0xb6, 0x93, 0x4e, 0x76, 0x1a, 0xf6, + 0xc4, 0x0a, 0xc2, 0x98, 0x53, 0x30, 0x62, 0x49, + 0xb2, 0x80, 0x6d, 0x71, 0x80, 0x6a, 0x9a, 0x36, + 0xae, 0x03, 0xa0, 0x63, 0x97, 0x9e, 0x2d, 0x2f, + 0x0b, 0x78, 0x18, 0x35, 0x1d, 0x40, 0x14, 0x3c, + 0x3f, 0x8d, 0x8a, 0x4b, 0xa7, 0x63, 0x7e, 0xd1, + 0x5d, 0x78, 0xcf, 0x07, 0xf8, 0x35, 0x60, 0xfe, + 0x62, 0xeb, 0xf2, 0x54, 0x19, 0x6c, 0x99, 0xcb, + 0x24, 0xa4, 0xcb, 0x71, 0x37, 0x70, 0xcd, 0x90, + 0x90, 0x1e, 0x48, 0x8a, 0x58, 0x0a, 0x38, 0xb0, + 0xdb, 0x7d, 0xfc, 0x75, 0x63, 0x29, 0x53, 0x53, + 0x0b, 0xff, 0x00, 0x88, 0xc0, 0x26, 0x6d, 0xe2, + 0xf3, 0x72, 0xc4, 0x46, 0x92, 0x7e, 0x0b, 0xcb, + 0xc1, 0xa2, 0x58, 0x70, 0x63, 0x89, 0xac, 0x06, + 0xe6, 0xb6, 0xac, 0xd1, 0x37, 0xdd, 0x20, 0xa8, + 0x25, 0x91, 0xb5, 0xd9, 0x08, 0xab, 0x85, 0xbc, + 0x84, 0xda, 0xb2, 0xa5, 0x99, 0xf4, 0x9a, 0x12, + 0x67, 0x32, 0xbe, 0x7c, 0x06, 0x6c, 0xbc, 0x1d, + 0x5b, 0x27, 0x18, 0x75, 0x85, 0x08, 0xda, 0xb5, + 0xdc, 0xa2, 0xe1, 0x0e, 0xb0, 0x4d, 0xf1, 0x1b, + 0xe2, 0x06, 0xef, 0x0d, 0xfa, 0xfb, 0x3d, 0x4a, + 0x11, 0x00, 0x02, 0x32, 0xd7, 0xa3, 0x99, 0x6f, + 0x89, 0xb3, 0xfd, 0x9a, 0xf4, 0x73, 0x2d, 0xf1, + 0x36, 0x7f, 0xb3, 0x5e, 0x8e, 0x65, 0xbe, 0x26, + 0xcf, 0xf6, 0x6b, 0xd1, 0xcc, 0xb7, 0xc4, 0xd9, + 0xfe, 0xcd, 0x7a, 0x39, 0x96, 0xf8, 0x9b, 0x3f, + 0xd9, 0xa8, 0x0f, 0x00, 0xdf, 0x4e, 0xfe, 0x56, + 0x5a, 0x5c, 0x55, 0x40, 0x47, 0xf8, 0x4c, 0x7b, + 0xc8, 0x16, 0x03, 0x1f, 0x76, 0x48, 0xb5, 0x88, + 0xc1, 0x29, 0xc3, 0x67, 0xc1, 0x48, 0x7f, 0x5a, + 0xca, 0xf7, 0xe9, 0x3a, 0xe5, 0xdb, 0x07, 0x6e, + 0xd7, 0x42, 0x67, 0xbc, 0x90, 0xb6, 0x1f, 0x4d, + 0x67, 0x31, 0x1c, 0xfc, 0xb2, 0x51, 0x1c, 0xb3, + 0x13, 0x3a, 0x17, 0x5a, 0xb1, 0x4f, 0x1e, 0xb6, + 0x0f, 0x3a, 0xbb, 0x7d, 0x90, 0xae, 0x4e, 0x0e, + 0xf8, 0xe7, 0x5a, 0xe7, 0x99, 0xbc, 0x9d, 0xdd, + 0xc7, 0x20, 0x20, 0x5f, 0xc0, 0x92, 0xd7, 0x9f, + 0x30, 0x5f, 0x1f, 0xfe, 0xab, 0x5e, 0x7c, 0xc1, + 0x7c, 0x7f, 0xfa, 0xad, 0x79, 0xf3, 0x05, 0xf1, + 0xff, 0x00, 0xea, 0xb5, 0xe7, 0xcc, 0x17, 0xc7, + 0xff, 0x00, 0xaa, 0xd7, 0x9f, 0x30, 0x5f, 0x1f, + 0xfe, 0xab, 0x5e, 0x7c, 0xc1, 0x7c, 0x7f, 0xfa, + 0xad, 0x79, 0xf3, 0x05, 0xf1, 0xff, 0x00, 0xea, + 0xb5, 0xe7, 0xcc, 0x17, 0xc7, 0xff, 0x00, 0xaa, + 0xd7, 0x9f, 0x30, 0x5f, 0x1f, 0xfe, 0xab, 0x5e, + 0x7c, 0xc1, 0x7c, 0x7f, 0xfa, 0xad, 0x79, 0xf3, + 0x05, 0xf1, 0xff, 0x00, 0xea, 0xb5, 0xe7, 0xcc, + 0x17, 0xc7, 0xff, 0x00, 0xaa, 0xd7, 0x9f, 0x30, + 0x5f, 0x1f, 0xfe, 0xab, 0x5e, 0x7c, 0xc1, 0x7c, + 0x7f, 0xfa, 0xad, 0x79, 0xf3, 0x05, 0xf1, 0xff, + 0x00, 0xea, 0xb5, 0xe7, 0xcc, 0x17, 0xc7, 0xff, + 0x00, 0xaa, 0xd7, 0x9f, 0x30, 0x5f, 0x1f, 0xfe, + 0xab, 0x5e, 0x7c, 0xc1, 0x7c, 0x7f, 0xfa, 0xad, + 0x79, 0xf3, 0x05, 0xf1, 0xff, 0x00, 0xea, 0xb5, + 0xe7, 0xcc, 0x17, 0xc7, 0xff, 0x00, 0xaa, 0xd4, + 0xcd, 0x2b, 0x78, 0xfc, 0x89, 0x0c, 0x49, 0x12, + 0xa8, 0xdb, 0x07, 0x3e, 0x06, 0x3c, 0xa5, 0x09, + 0xd8, 0x0c, 0xe2, 0x3f, 0xf8, 0x70, 0x65, 0xf7, + 0x76, 0xdb, 0xbf, 0xea, 0x3b, 0xf0, 0x43, 0xfd, + 0x7d, 0x7d, 0x61, 0x7f, 0x1c, 0xab, 0xf6, 0x3b, + 0xba, 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xe9, 0xdf, + 0x8c, 0xb2, 0x7f, 0xb6, 0x37, 0xfb, 0xa6, 0x34, + 0xd6, 0x1b, 0x57, 0x5a, 0xa5, 0x61, 0x83, 0xb7, + 0x6d, 0xd3, 0xb2, 0xab, 0xac, 0xa7, 0x94, 0x77, + 0xdb, 0xc6, 0x36, 0x30, 0xbc, 0x55, 0x28, 0x22, + 0x4d, 0x87, 0xdd, 0xdd, 0x1c, 0xc4, 0x3c, 0xbd, + 0xa3, 0x32, 0xed, 0xbf, 0xe5, 0x15, 0x46, 0xa0, + 0x81, 0x4f, 0xdf, 0x11, 0x75, 0xe0, 0x64, 0x44, + 0xf9, 0x62, 0x0a, 0x37, 0xdb, 0xcb, 0xdf, 0xaf, + 0x77, 0x9d, 0xf8, 0x9e, 0x3f, 0xe9, 0x1d, 0x7b, + 0xbc, 0xef, 0xc4, 0xf1, 0xff, 0x00, 0x48, 0xeb, + 0xdd, 0xe7, 0x7e, 0x27, 0x8f, 0xfa, 0x47, 0x5e, + 0xef, 0x3b, 0xf1, 0x3c, 0x7f, 0xd2, 0x3a, 0xf7, + 0x79, 0xdf, 0x89, 0xe3, 0xfe, 0x91, 0xd7, 0xbb, + 0xce, 0xfc, 0x4f, 0x1f, 0xf4, 0x8e, 0xbd, 0xde, + 0x77, 0xe2, 0x78, 0xff, 0x00, 0xa4, 0x75, 0xee, + 0xf3, 0xbf, 0x13, 0xc7, 0xfd, 0x23, 0xaf, 0x77, + 0x9d, 0xf8, 0x9e, 0x3f, 0xe9, 0x1d, 0x7b, 0xbc, + 0xef, 0xc4, 0xf1, 0xff, 0x00, 0x48, 0xeb, 0xdd, + 0xe7, 0x7e, 0x27, 0x8f, 0xfa, 0x47, 0x5e, 0xef, + 0x3b, 0xf1, 0x3c, 0x7f, 0xd2, 0x3a, 0xf7, 0x79, + 0xdf, 0x89, 0xe3, 0xfe, 0x91, 0xd7, 0xbb, 0xce, + 0xfc, 0x4f, 0x1f, 0xf4, 0x8e, 0xbd, 0xde, 0x77, + 0xe2, 0x78, 0xff, 0x00, 0xa4, 0x75, 0xee, 0xf3, + 0xbf, 0x13, 0xc7, 0xfd, 0x23, 0xaf, 0x77, 0x9d, + 0xf8, 0x9e, 0x3f, 0xe9, 0x1d, 0x7b, 0xbc, 0xef, + 0xc4, 0xf1, 0xff, 0x00, 0x48, 0xeb, 0xdd, 0xe7, + 0x7e, 0x27, 0x8f, 0xfa, 0x47, 0x5e, 0xef, 0x3b, + 0xf1, 0x3c, 0x7f, 0xd2, 0x3a, 0x63, 0x30, 0xf7, + 0x0e, 0xc3, 0x12, 0x12, 0xc7, 0x51, 0xb4, 0x9e, + 0xcf, 0x74, 0x54, 0x31, 0x1c, 0xcd, 0x54, 0x09, + 0xb1, 0x56, 0x44, 0x7b, 0xe4, 0xe1, 0x47, 0xce, + 0x11, 0xb7, 0x8a, 0x5b, 0xea, 0xa2, 0x9b, 0x1c, + 0xcb, 0xe7, 0x23, 0x31, 0xfb, 0x87, 0x09, 0x59, + 0xbb, 0x90, 0xbf, 0xc5, 0x3e, 0x9f, 0x29, 0x7f, + 0x8b, 0x33, 0xe4, 0xf2, 0xe9, 0xf7, 0x6c, 0x32, + 0x49, 0xb6, 0x58, 0x4c, 0x9d, 0xfe, 0xe4, 0x17, + 0xb9, 0x01, 0xfb, 0xc0, 0x03, 0xb0, 0x08, 0xc7, + 0x70, 0x8c, 0x44, 0x46, 0xbc, 0xba, 0xf2, 0xe9, + 0x54, 0x28, 0x87, 0x56, 0xc3, 0xb9, 0xb9, 0x62, + 0x66, 0x04, 0x04, 0x42, 0x39, 0x8d, 0x8c, 0x39, + 0xee, 0x00, 0x01, 0x8d, 0xca, 0x7f, 0xe6, 0x18, + 0x92, 0x98, 0x19, 0x8b, 0xcc, 0xb1, 0x8e, 0xbd, + 0x4f, 0xab, 0xd0, 0x6d, 0x8c, 0x65, 0xa9, 0xb2, + 0x15, 0xdb, 0x3e, 0xe4, 0x1f, 0xce, 0x94, 0xc8, + 0x49, 0xff, 0x00, 0x07, 0x68, 0x28, 0xdf, 0xb8, + 0xa4, 0x64, 0x82, 0x0b, 0xdd, 0x79, 0x7c, 0x9f, + 0xc7, 0xa1, 0x00, 0x98, 0x92, 0x29, 0x81, 0x88, + 0xde, 0x3c, 0xa5, 0x3b, 0x44, 0x7e, 0x5d, 0x3a, + 0x85, 0xde, 0x40, 0xb3, 0x5f, 0xa5, 0xd6, 0x10, + 0x38, 0x31, 0x59, 0x39, 0x2b, 0x7c, 0x04, 0x9c, + 0x78, 0xb2, 0x42, 0x2d, 0x81, 0x3e, 0x5d, 0xc3, + 0x9e, 0x27, 0x90, 0x8c, 0x76, 0x39, 0xf7, 0x51, + 0xaf, 0x77, 0x1f, 0x96, 0x35, 0x5a, 0x9a, 0x88, + 0x21, 0xb6, 0x9e, 0xaa, 0xeb, 0x96, 0x4c, 0xc2, + 0xe0, 0xda, 0x70, 0x03, 0x27, 0x22, 0x26, 0x50, + 0x3b, 0xcf, 0x7e, 0xc0, 0x53, 0xb7, 0x92, 0x27, + 0x55, 0xf8, 0x7c, 0xdb, 0x47, 0xb6, 0x59, 0xae, + 0x56, 0x56, 0xe8, 0x6b, 0xfb, 0x1c, 0x28, 0x01, + 0xc6, 0x5c, 0xed, 0x9a, 0xb0, 0xd8, 0x91, 0xe8, + 0x10, 0xce, 0xc8, 0x2f, 0x1a, 0x42, 0x37, 0xef, + 0x99, 0x8b, 0x58, 0xeb, 0x4c, 0x51, 0x3e, 0xa1, + 0xc2, 0xda, 0x49, 0x22, 0x24, 0xc9, 0x48, 0x09, + 0xf8, 0x84, 0xc0, 0x51, 0x4c, 0x6c, 0x71, 0xee, + 0x80, 0x7b, 0xf7, 0xf7, 0xf5, 0xbf, 0x37, 0x76, + 0x91, 0x9b, 0x96, 0xa3, 0xb1, 0xd8, 0xb8, 0xca, + 0x20, 0x30, 0x67, 0xd7, 0x87, 0x2d, 0x72, 0xd2, + 0x22, 0x1e, 0x9c, 0x2a, 0x17, 0xcb, 0x1d, 0xc5, + 0x0e, 0x92, 0xdf, 0xf8, 0x11, 0xe5, 0xd7, 0xba, + 0xfe, 0x9d, 0x76, 0x2b, 0x8d, 0xae, 0x4d, 0xe8, + 0x26, 0xc7, 0x35, 0x73, 0x61, 0x2f, 0x91, 0xf1, + 0xb8, 0x47, 0x33, 0x54, 0x92, 0xe6, 0xff, 0x00, + 0x0a, 0x39, 0x36, 0xfb, 0xd3, 0x3a, 0xdf, 0x9a, + 0x35, 0xe5, 0xd7, 0x97, 0x5e, 0x5d, 0x2d, 0xe8, + 0x69, 0x29, 0xca, 0x31, 0x62, 0xd8, 0x13, 0xb1, + 0x01, 0x8c, 0xee, 0x33, 0x1f, 0xf3, 0xff, 0x00, + 0xcd, 0x3e, 0x49, 0xee, 0xd5, 0x6b, 0x9c, 0xa2, + 0x05, 0x91, 0xc7, 0xe3, 0xf2, 0x0d, 0x00, 0x8d, + 0x80, 0x5d, 0x6e, 0xa2, 0x9c, 0xee, 0x5f, 0xe2, + 0x26, 0x49, 0x17, 0xdf, 0xdc, 0xa7, 0x4e, 0xfc, + 0x10, 0xff, 0x00, 0x5d, 0x5f, 0x58, 0x5f, 0xc7, + 0x2a, 0xfd, 0x8e, 0xee, 0x83, 0xde, 0x8d, 0x1f, + 0xbd, 0x3a, 0x77, 0xe3, 0x2c, 0x97, 0xed, 0x8d, + 0xfe, 0xe9, 0x8d, 0x63, 0xd3, 0x05, 0xb0, 0x58, + 0xcb, 0x5f, 0x63, 0x63, 0xfc, 0x39, 0xab, 0x53, + 0x1f, 0x09, 0xdf, 0xef, 0xc0, 0x76, 0xa6, 0xcc, + 0x47, 0xdf, 0x2d, 0xf5, 0xe5, 0xd5, 0xd3, 0xb5, + 0x68, 0xea, 0x63, 0xf1, 0x95, 0x7b, 0x65, 0xd7, + 0x29, 0x52, 0xf7, 0xf4, 0xf7, 0x98, 0x10, 0x4a, + 0x84, 0x4a, 0x64, 0xa7, 0x94, 0xca, 0x4b, 0x90, + 0xf9, 0x60, 0x3d, 0xc1, 0x49, 0x46, 0xa8, 0xbb, + 0x85, 0xf2, 0x25, 0x9d, 0x55, 0xe3, 0x72, 0x22, + 0xb7, 0x24, 0x2f, 0x22, 0xa7, 0x20, 0x09, 0x85, + 0xcd, 0x5a, 0x61, 0x4d, 0x95, 0x12, 0xc0, 0xca, + 0x0a, 0x50, 0x3b, 0x72, 0xf9, 0x4b, 0x9c, 0x37, + 0xed, 0x15, 0xe9, 0xd9, 0x72, 0x7b, 0x48, 0x53, + 0xea, 0x2d, 0x64, 0x51, 0xda, 0x99, 0xb7, 0x22, + 0x3b, 0xbb, 0xe5, 0x85, 0xbc, 0x78, 0xb1, 0xaa, + 0x18, 0xbb, 0x55, 0x2d, 0x63, 0xce, 0xf9, 0x17, + 0x23, 0x5f, 0x5c, 0xa6, 0x05, 0x4b, 0x8d, 0xdc, + 0xd8, 0x1d, 0xc7, 0x9f, 0xa4, 0x3d, 0xe4, 0x3c, + 0xe3, 0x3d, 0xf1, 0xbc, 0xc4, 0x4c, 0x4e, 0xb2, + 0x18, 0xca, 0x98, 0xfb, 0xd6, 0x59, 0x49, 0x87, + 0xdc, 0x29, 0x99, 0x3e, 0xcd, 0x2c, 0x21, 0xac, + 0xf3, 0xe5, 0x8e, 0x51, 0xed, 0x01, 0x10, 0x61, + 0xe4, 0xe6, 0xef, 0xe5, 0x8d, 0xa2, 0x76, 0x67, + 0x64, 0xc7, 0x5c, 0xb1, 0xd1, 0x7f, 0x66, 0x77, + 0x4d, 0x27, 0x32, 0xab, 0x1b, 0x6f, 0xd1, 0x60, + 0xed, 0xb8, 0x1c, 0x47, 0x96, 0x0a, 0x23, 0x97, + 0xee, 0xed, 0xab, 0x2f, 0x6e, 0x2e, 0xfa, 0xd3, + 0x4c, 0xb9, 0x6c, 0xb0, 0xab, 0xb2, 0x01, 0x33, + 0xb0, 0xcc, 0xf3, 0x4e, 0xde, 0x48, 0x83, 0x19, + 0x92, 0x8d, 0xc6, 0x37, 0xef, 0x9d, 0x55, 0xc6, + 0x39, 0xcc, 0x4a, 0xec, 0x75, 0xb9, 0x98, 0xae, + 0x5e, 0x78, 0xe9, 0xa4, 0xd9, 0xdd, 0xcf, 0x04, + 0x3f, 0xc1, 0xda, 0x7b, 0xbc, 0x9a, 0xc9, 0xe1, + 0xdb, 0x72, 0xc8, 0x52, 0xa4, 0x8a, 0xee, 0x4d, + 0xa0, 0x85, 0x75, 0x5b, 0xdb, 0x25, 0x1d, 0x9a, + 0x0b, 0x70, 0x95, 0xc7, 0x50, 0x4d, 0xb3, 0xdc, + 0x31, 0xf6, 0x3f, 0x7f, 0x57, 0xa3, 0x1d, 0x42, + 0xed, 0xda, 0xf4, 0xed, 0xd8, 0xad, 0x2e, 0x52, + 0x64, 0xa3, 0xda, 0x18, 0x63, 0xdf, 0x31, 0x1b, + 0x49, 0xf2, 0x8e, 0xe5, 0x01, 0xe4, 0x99, 0xf2, + 0x77, 0xc6, 0x96, 0xca, 0x98, 0xeb, 0x96, 0x01, + 0xad, 0x62, 0x40, 0x94, 0xa2, 0x28, 0x96, 0xa6, + 0x39, 0x9a, 0xbf, 0xe2, 0x25, 0xc7, 0xba, 0xdf, + 0x6d, 0xbc, 0x9e, 0x5d, 0x3e, 0x95, 0x7c, 0x7d, + 0xc7, 0x5b, 0xab, 0xbc, 0x59, 0xae, 0x09, 0x3e, + 0xa2, 0x39, 0x67, 0x96, 0x7a, 0xb1, 0xb7, 0x89, + 0xdf, 0xe4, 0xdf, 0xdd, 0x7f, 0x07, 0x7d, 0x37, + 0x1c, 0xac, 0x7d, 0xb3, 0xbc, 0x98, 0x29, 0x6d, + 0x51, 0x49, 0x75, 0x97, 0x03, 0xb6, 0xf2, 0x63, + 0xb7, 0x8a, 0x3e, 0x30, 0xf7, 0xcf, 0x74, 0xef, + 0x1b, 0x6f, 0xbc, 0x6a, 0xad, 0x57, 0xe3, 0xae, + 0x2a, 0xcd, 0xd9, 0x21, 0xa8, 0x82, 0x49, 0xc3, + 0x5f, 0x20, 0x5c, 0x87, 0xd3, 0x0d, 0xb9, 0xa7, + 0x96, 0x7d, 0xd7, 0x76, 0xd1, 0x1e, 0x37, 0xb9, + 0xef, 0xd7, 0x83, 0x8b, 0x1d, 0x70, 0x6f, 0x4a, + 0xa5, 0xf1, 0x56, 0x54, 0x50, 0xd2, 0x4c, 0x47, + 0x34, 0xb0, 0x47, 0xf8, 0x41, 0x11, 0x13, 0xb9, + 0x0e, 0xf1, 0xdd, 0x31, 0xe5, 0x89, 0x8d, 0x29, + 0x5e, 0x07, 0xc8, 0xf3, 0xbd, 0x44, 0xe5, 0x0f, + 0x66, 0x67, 0x8c, 0xb1, 0xe5, 0xe6, 0x2f, 0x27, + 0x76, 0xdc, 0xe1, 0xbc, 0x16, 0xd3, 0xe3, 0x47, + 0x76, 0x9e, 0x8a, 0x78, 0xfb, 0x96, 0x1d, 0x57, + 0xba, 0xca, 0xd6, 0x93, 0x92, 0x44, 0xef, 0x23, + 0xca, 0xd8, 0xdb, 0xc4, 0x2d, 0xc4, 0xa2, 0x06, + 0x7c, 0x69, 0xe5, 0x2d, 0xa3, 0xba, 0x75, 0x33, + 0x52, 0x85, 0xbb, 0x1c, 0xb6, 0x3b, 0x21, 0x74, + 0xd2, 0x53, 0xcb, 0x67, 0x96, 0x4f, 0xa2, 0x71, + 0xb6, 0xe2, 0xc8, 0x08, 0x92, 0x98, 0x2d, 0xb6, + 0x88, 0xef, 0xdb, 0x59, 0x85, 0x1a, 0x6c, 0xd7, + 0x7e, 0x22, 0x99, 0xb4, 0xab, 0x4a, 0x27, 0xac, + 0xeb, 0x64, 0xb9, 0x2a, 0xb5, 0x22, 0x0a, 0x63, + 0x92, 0x5d, 0xee, 0xe0, 0xb6, 0x2e, 0x65, 0xc4, + 0xf2, 0x7b, 0xa8, 0x38, 0x20, 0x2d, 0xc4, 0x80, + 0xa4, 0x48, 0x67, 0xcb, 0x04, 0x33, 0xb1, 0x44, + 0xff, 0x00, 0x1c, 0x4f, 0x76, 0xb0, 0x84, 0xb3, + 0x91, 0x22, 0xca, 0x51, 0x4c, 0xed, 0x3e, 0x55, + 0xd8, 0xb0, 0xb4, 0x38, 0x27, 0xf8, 0x98, 0xa6, + 0x18, 0x17, 0xf1, 0x16, 0xb9, 0x46, 0x36, 0x10, + 0x75, 0xf1, 0x18, 0x8f, 0x24, 0x40, 0xa2, 0xcc, + 0x44, 0x7e, 0x4d, 0x0f, 0x7f, 0xf0, 0x63, 0xfe, + 0xed, 0x79, 0x75, 0xe5, 0xd0, 0x1e, 0x12, 0xa2, + 0x72, 0x16, 0x97, 0x56, 0xc9, 0x36, 0x93, 0xda, + 0xa5, 0x0d, 0x9a, 0x73, 0x02, 0x0f, 0x5c, 0x4b, + 0x98, 0xbe, 0x62, 0xf1, 0x80, 0xc4, 0x43, 0x98, + 0xfc, 0x5d, 0xf9, 0x08, 0x20, 0xe3, 0x57, 0xf3, + 0xf8, 0xdc, 0x4e, 0x6f, 0x84, 0x6c, 0x61, 0xf2, + 0x18, 0xfb, 0x36, 0xb1, 0xcf, 0x7d, 0xa8, 0xc5, + 0xe4, 0x99, 0xe1, 0x05, 0xc2, 0xa1, 0x6a, 0x7c, + 0xae, 0x1c, 0xc4, 0x6e, 0xb6, 0x8f, 0xef, 0x54, + 0x82, 0x0f, 0x65, 0x04, 0x18, 0xfb, 0x68, 0xe4, + 0xf2, 0x89, 0xaf, 0xda, 0xd1, 0xc6, 0x99, 0x2c, + 0x08, 0x50, 0xae, 0xbe, 0x49, 0x3b, 0x15, 0x2c, + 0x00, 0x5e, 0xc9, 0x24, 0x3b, 0xff, 0x00, 0xbe, + 0x0f, 0x9e, 0xbc, 0x7b, 0x88, 0xdd, 0xe3, 0xf7, + 0x3b, 0xe3, 0xc2, 0x54, 0x61, 0x3c, 0xb8, 0x2c, + 0xae, 0x2d, 0xa3, 0x53, 0x23, 0x85, 0xb5, 0x8d, + 0xb9, 0x8e, 0x2e, 0xd8, 0x85, 0x48, 0xd5, 0x61, + 0xca, 0x55, 0x61, 0x5c, 0xac, 0x04, 0x98, 0x42, + 0xcd, 0x2d, 0x08, 0x64, 0xaa, 0xcc, 0xb1, 0x6a, + 0x09, 0xe2, 0x9b, 0x56, 0x00, 0x10, 0xfc, 0x0e, + 0x3e, 0xa2, 0xf0, 0xb6, 0x8f, 0x11, 0x6b, 0x24, + 0x4a, 0x45, 0xb0, 0x16, 0x5b, 0xb6, 0xaa, 0x55, + 0xc8, 0x5d, 0x7c, 0xe1, 0x84, 0x68, 0x93, 0xab, + 0x30, 0x4b, 0x0e, 0x65, 0x4c, 0xf2, 0xcb, 0x44, + 0xb8, 0xa3, 0x29, 0x5e, 0xa8, 0x93, 0xa3, 0x84, + 0x6b, 0xe4, 0xad, 0xa6, 0xce, 0x32, 0xc6, 0x3d, + 0x16, 0x6f, 0x43, 0xec, 0xfe, 0xfa, 0x9a, 0x37, + 0x04, 0x4e, 0x17, 0x64, 0x80, 0x4d, 0x91, 0xe3, + 0x73, 0x48, 0x9f, 0x39, 0x9b, 0x64, 0xca, 0x78, + 0x2d, 0x2d, 0xa3, 0x8d, 0x22, 0xe2, 0xfc, 0x23, + 0x19, 0x98, 0x6f, 0x65, 0x1e, 0xab, 0xc5, 0x54, + 0x9c, 0xc5, 0xa8, 0x4a, 0x66, 0x66, 0x12, 0x27, + 0xcf, 0x3c, 0x87, 0xd4, 0x8e, 0x53, 0x91, 0xd6, + 0x2d, 0x63, 0xdd, 0x11, 0x9b, 0xaa, 0x11, 0x1f, + 0x7a, 0x22, 0xe0, 0xc4, 0x46, 0xb2, 0x5c, 0x42, + 0x45, 0x04, 0xcc, 0x43, 0xf3, 0x9c, 0x39, 0xbe, + 0xf1, 0xb8, 0x58, 0xb9, 0xc4, 0x15, 0x46, 0x9f, + 0x77, 0x97, 0x71, 0xaf, 0x6a, 0x57, 0xbf, 0xf8, + 0x33, 0xb7, 0xf0, 0xb5, 0xc7, 0x79, 0xcc, 0x4d, + 0x05, 0xe4, 0x73, 0x94, 0xf2, 0xf4, 0x6a, 0x2a, + 0x26, 0xb9, 0xdb, 0x65, 0x4a, 0x8f, 0xa7, 0x5f, + 0xaa, 0xd5, 0x20, 0x3c, 0x79, 0xe7, 0xe6, 0x21, + 0x39, 0x5e, 0xd3, 0x23, 0x1e, 0x36, 0xe0, 0x25, + 0x1a, 0xa5, 0x98, 0x76, 0x31, 0x0a, 0xe2, 0x26, + 0x70, 0x75, 0xac, 0xd9, 0xe2, 0x7a, 0x5b, 0x41, + 0xe5, 0x94, 0xe4, 0xad, 0x56, 0x4a, 0xbf, 0x96, + 0x1e, 0x70, 0xd3, 0x9e, 0x43, 0xdd, 0xd0, 0x7b, + 0x4e, 0xfd, 0x65, 0x73, 0xeb, 0x83, 0x2e, 0xe5, + 0xa8, 0x06, 0x3e, 0xe5, 0xae, 0x33, 0x5c, 0x34, + 0x22, 0xa9, 0x53, 0xeb, 0xc4, 0x03, 0x16, 0x36, + 0x18, 0x86, 0x78, 0xf0, 0x44, 0x21, 0x0a, 0xdc, + 0xfb, 0xc8, 0x54, 0x33, 0xee, 0x76, 0xd7, 0xb2, + 0xab, 0xec, 0xd5, 0x72, 0x14, 0x79, 0x3d, 0xeb, + 0x31, 0xaa, 0x20, 0x07, 0x04, 0xe4, 0x5e, 0xce, + 0x64, 0x11, 0x44, 0x43, 0x03, 0xa6, 0xe5, 0x17, + 0x30, 0x6e, 0x3e, 0x34, 0x46, 0xfb, 0xf7, 0x6b, + 0x88, 0xb2, 0x70, 0x60, 0xbc, 0x86, 0x3b, 0x09, + 0x81, 0x8a, 0xaf, 0x2c, 0x6d, 0x8c, 0xc1, 0xd3, + 0x5d, 0xa0, 0xb1, 0x0e, 0x7a, 0xf1, 0xd5, 0x08, + 0x6c, 0x3c, 0x99, 0x01, 0xd2, 0x99, 0x54, 0xc1, + 0x00, 0x41, 0xf7, 0xf4, 0xc9, 0xa2, 0x59, 0x8b, + 0x69, 0xa3, 0x72, 0xab, 0xed, 0xd1, 0xc6, 0x1b, + 0x72, 0xea, 0xe1, 0xcb, 0xa6, 0xba, 0xd6, 0xdc, + 0x67, 0x16, 0x04, 0xe8, 0x12, 0xa6, 0xdd, 0x51, + 0xc8, 0x17, 0x4a, 0xc9, 0x1f, 0x24, 0xa9, 0xbc, + 0x8c, 0x2b, 0x36, 0x61, 0xaa, 0x12, 0x37, 0xf5, + 0x62, 0x9c, 0x15, 0xba, 0xf5, 0xee, 0x73, 0x51, + 0x53, 0x2b, 0xa9, 0xdd, 0x51, 0x98, 0x27, 0x15, + 0x76, 0x31, 0xc4, 0x97, 0x30, 0xc4, 0xa5, 0xb1, + 0xd4, 0x38, 0x39, 0xf6, 0xd9, 0x9e, 0x76, 0x14, + 0x47, 0x97, 0x5e, 0x5d, 0x79, 0x75, 0x82, 0x2f, + 0xbf, 0xc3, 0x98, 0x29, 0xfc, 0xb8, 0xe4, 0x69, + 0xdf, 0x82, 0x1f, 0xeb, 0xab, 0xeb, 0x0b, 0xf8, + 0xe5, 0x5f, 0xb1, 0xdd, 0xd0, 0x7b, 0xd1, 0xa3, + 0xf7, 0xa7, 0x4e, 0xfc, 0x65, 0x92, 0xfd, 0xb1, + 0xbf, 0xdd, 0x31, 0xac, 0x1f, 0xf8, 0xd9, 0x2c, + 0xd7, 0xfd, 0x55, 0xb0, 0xbf, 0xed, 0xfa, 0x97, + 0x8b, 0x09, 0x98, 0xad, 0x8f, 0xcc, 0x26, 0x9f, + 0x35, 0x4c, 0x7d, 0xb5, 0x09, 0xa7, 0x36, 0x1c, + 0xdb, 0xb6, 0x9f, 0x51, 0x8e, 0x58, 0x2c, 0x80, + 0x85, 0x44, 0x3e, 0x23, 0x19, 0xe3, 0x73, 0x8c, + 0xac, 0x16, 0xc3, 0xd7, 0x0d, 0x66, 0xb8, 0x86, + 0xa6, 0x3a, 0x8f, 0x15, 0xa3, 0x32, 0x99, 0x6a, + 0xb1, 0xe6, 0xb2, 0x75, 0x8c, 0x2a, 0x96, 0x63, + 0x61, 0xb6, 0xe1, 0x46, 0xc8, 0x9d, 0xca, 0x22, + 0x13, 0x1d, 0x46, 0x08, 0xc9, 0xf4, 0xd7, 0xb7, + 0x33, 0x82, 0x38, 0x73, 0x15, 0x8b, 0xb3, 0x8d, + 0x8f, 0x08, 0xe6, 0x72, 0x3c, 0x49, 0x25, 0x7d, + 0xed, 0x45, 0x22, 0x0b, 0xb0, 0xc5, 0x51, 0x41, + 0xd9, 0x52, 0x6c, 0x12, 0xf7, 0x53, 0x2c, 0x29, + 0x0d, 0xe9, 0x32, 0x05, 0xb2, 0x92, 0xf7, 0x3b, + 0xcc, 0xf0, 0x93, 0x6f, 0x58, 0xbb, 0x86, 0xb8, + 0xde, 0x23, 0x15, 0xce, 0x1a, 0xe6, 0x61, 0x39, + 0x58, 0x35, 0x39, 0x16, 0x12, 0xcb, 0x15, 0xf2, + 0x12, 0x67, 0x7e, 0x6a, 0x9e, 0xeb, 0x59, 0x29, + 0xcd, 0x5a, 0x39, 0xdf, 0x29, 0x9a, 0x91, 0xb2, + 0x4b, 0x5c, 0x49, 0x8d, 0xda, 0xd5, 0x8c, 0xfc, + 0x71, 0x20, 0x64, 0xbb, 0x32, 0xf3, 0xe1, 0x8e, + 0xb6, 0x78, 0x46, 0x94, 0x78, 0x3d, 0xf1, 0x72, + 0x42, 0xec, 0x95, 0x04, 0x84, 0x08, 0x32, 0x97, + 0x2c, 0x6c, 0x11, 0x28, 0x90, 0xef, 0x14, 0x3b, + 0x8e, 0xf2, 0x58, 0xf7, 0x2a, 0x9d, 0x8f, 0xae, + 0x0c, 0x55, 0x66, 0x58, 0xc4, 0xde, 0x75, 0x85, + 0x8b, 0x3b, 0x2d, 0x35, 0xd8, 0x9a, 0xd7, 0xfb, + 0x2d, 0x06, 0x14, 0xcc, 0x8f, 0x21, 0x98, 0xa0, + 0x3b, 0xe4, 0xc6, 0x08, 0xe3, 0xc7, 0x9e, 0x27, + 0xc7, 0xb2, 0xd3, 0xca, 0x9a, 0xbd, 0x8f, 0xad, + 0xda, 0x8a, 0x92, 0x65, 0xd9, 0xe1, 0xd3, 0x5d, + 0x25, 0x2f, 0xe8, 0xfd, 0x8e, 0x1d, 0xcc, 0xc2, + 0x8e, 0xaf, 0x2f, 0x3e, 0xd3, 0xc9, 0xcd, 0xcb, + 0xdd, 0xac, 0x50, 0x7d, 0xf8, 0xb7, 0xff, 0x00, + 0x55, 0x37, 0x4e, 0xb8, 0x53, 0x22, 0xb9, 0xfd, + 0xf1, 0x9f, 0xbf, 0x89, 0xc4, 0xbe, 0x39, 0x7b, + 0xf6, 0xc0, 0xa3, 0x2d, 0x12, 0x5b, 0xef, 0xdf, + 0xcd, 0xd1, 0x18, 0x9e, 0xe8, 0xda, 0x22, 0x37, + 0xfe, 0x2c, 0x7d, 0xb5, 0x45, 0x9c, 0x90, 0x4f, + 0x18, 0x67, 0x7a, 0xfb, 0xde, 0x84, 0xd0, 0xc0, + 0x32, 0x1c, 0xd4, 0x41, 0x1a, 0x06, 0x21, 0xac, + 0xb1, 0x68, 0x4a, 0x01, 0x4a, 0x26, 0xf4, 0x65, + 0x96, 0xb9, 0xba, 0x24, 0x4d, 0x8e, 0xa3, 0x0a, + 0x8d, 0x8b, 0x14, 0x8d, 0xbe, 0xc9, 0x59, 0x5a, + 0x86, 0x69, 0x33, 0x53, 0x25, 0x61, 0x66, 0xd3, + 0x7a, 0x53, 0x31, 0xb4, 0xca, 0xce, 0x54, 0x3c, + 0xeb, 0x2d, 0xc5, 0xa3, 0x1c, 0xa6, 0x24, 0x13, + 0x31, 0x3c, 0x79, 0xd0, 0x0b, 0x19, 0x0b, 0x0a, + 0xf0, 0x20, 0xf8, 0x01, 0x17, 0x3b, 0x1a, 0xef, + 0x01, 0x82, 0x99, 0x16, 0xee, 0x4f, 0xd9, 0x4a, + 0xbd, 0x66, 0x40, 0xf3, 0x92, 0x0d, 0x2d, 0x15, + 0x93, 0x47, 0xae, 0xae, 0xb4, 0x16, 0xb8, 0xdb, + 0x1d, 0x84, 0xb0, 0x29, 0xcf, 0xdc, 0xc7, 0x70, + 0xe5, 0x9c, 0x71, 0xae, 0xd4, 0x21, 0xb6, 0x6a, + 0xad, 0x1f, 0xbe, 0xbb, 0x15, 0xa2, 0x21, 0xdb, + 0xdd, 0x47, 0xb6, 0x8b, 0x63, 0x7e, 0x68, 0x99, + 0x21, 0xe5, 0x92, 0xd7, 0x06, 0x23, 0x2d, 0x6d, + 0x4e, 0xca, 0xbf, 0x86, 0xb2, 0xf5, 0x15, 0x63, + 0xb5, 0x87, 0x2b, 0x32, 0xbc, 0xd5, 0x56, 0x2a, + 0xed, 0xbc, 0xad, 0x1e, 0xd1, 0x33, 0x05, 0x5f, + 0xaf, 0x00, 0xf9, 0x37, 0xef, 0x30, 0x2e, 0x22, + 0xf1, 0xb8, 0x63, 0x1f, 0x7e, 0xb8, 0x23, 0x23, + 0x53, 0x19, 0x9e, 0x7f, 0x4d, 0xd9, 0xc3, 0xce, + 0xe5, 0x41, 0x06, 0x80, 0x21, 0x1c, 0x93, 0xbb, + 0x05, 0x75, 0xc7, 0x39, 0x84, 0x4a, 0x24, 0x6d, + 0x5a, 0x23, 0x08, 0x9d, 0xf9, 0x76, 0xdf, 0x5c, + 0x17, 0x70, 0xb2, 0x57, 0x49, 0xf9, 0x0e, 0x35, + 0x0a, 0x96, 0x5d, 0x2f, 0x64, 0xb1, 0xe8, 0x9b, + 0x8c, 0xfd, 0xec, 0xc3, 0xdf, 0x73, 0xaf, 0x3e, + 0xe7, 0xa1, 0x3b, 0xab, 0xa7, 0x10, 0xae, 0x4e, + 0x41, 0x81, 0x8e, 0x23, 0xa3, 0x88, 0x5b, 0x5f, + 0x95, 0xab, 0xc6, 0x27, 0x6a, 0xe5, 0x6a, 0xd9, + 0x81, 0xc2, 0x3b, 0xb2, 0x92, 0xab, 0x42, 0x6d, + 0x35, 0xbd, 0x9e, 0xcc, 0xd9, 0xa0, 0x32, 0x3c, + 0x8f, 0xad, 0x0b, 0x9e, 0xa4, 0x89, 0x8f, 0x4d, + 0x9b, 0xc0, 0x33, 0x8c, 0xf2, 0x18, 0xe7, 0x85, + 0x36, 0xb7, 0x8b, 0x69, 0xd7, 0x37, 0xe2, 0xae, + 0xb5, 0xab, 0x89, 0xec, 0x69, 0x97, 0xf6, 0x5b, + 0xf0, 0x8a, 0x2d, 0x31, 0x36, 0xaf, 0xbd, 0x82, + 0x95, 0x73, 0x41, 0x10, 0xf8, 0xe1, 0x3c, 0xc5, + 0xc4, 0x14, 0xa9, 0x58, 0x68, 0xe4, 0xaf, 0xf0, + 0x1d, 0x17, 0xd5, 0x00, 0xb3, 0xd9, 0x4d, 0xd9, + 0x09, 0x5f, 0x2a, 0xde, 0x05, 0xce, 0xa1, 0x07, + 0x84, 0x9c, 0xc0, 0xbf, 0x71, 0x94, 0xc1, 0x4e, + 0xc4, 0x03, 0xbe, 0x9e, 0xab, 0x1c, 0xdd, 0xa1, + 0x4e, 0x6a, 0xdf, 0xcc, 0x5c, 0xe5, 0xd6, 0x03, + 0x21, 0x6f, 0x31, 0x6f, 0x3c, 0xd3, 0xcf, 0x05, + 0xb9, 0x6f, 0x3c, 0xd3, 0xdf, 0xbc, 0xeb, 0x87, + 0x87, 0xfc, 0x2c, 0xee, 0x22, 0x3f, 0x2e, 0x42, + 0xbc, 0x6a, 0x5a, 0xd9, 0xe5, 0x5f, 0x6c, 0xb2, + 0xb3, 0x2f, 0xb8, 0x10, 0xe9, 0x6a, 0x79, 0xe7, + 0xfc, 0x50, 0xea, 0x73, 0x17, 0xf8, 0xb1, 0x3e, + 0x5d, 0x5b, 0xc4, 0xdf, 0x03, 0x4d, 0x9a, 0x6c, + 0x25, 0xec, 0x51, 0x31, 0xd4, 0x5c, 0x4c, 0xc2, + 0x9e, 0xb9, 0xf2, 0x1a, 0x5c, 0x11, 0x06, 0xb6, + 0x0e, 0xe2, 0x51, 0x3d, 0xd3, 0xaf, 0x75, 0xaf, + 0x75, 0xa5, 0x5c, 0xa5, 0x69, 0xd5, 0x6d, 0x20, + 0xb9, 0xd3, 0x61, 0x07, 0x2b, 0x6a, 0xcb, 0x69, + 0x19, 0xe5, 0x21, 0xef, 0xd8, 0x86, 0x64, 0x0c, + 0x7d, 0xc9, 0x81, 0x10, 0x1c, 0x48, 0x94, 0xc4, + 0xd5, 0xad, 0xc4, 0x39, 0xab, 0x56, 0x68, 0x2e, + 0xc0, 0x1b, 0x00, 0x17, 0x59, 0x10, 0x03, 0x33, + 0xca, 0xc7, 0x42, 0x6a, 0xd7, 0x4a, 0xdc, 0xe5, + 0xae, 0x4f, 0xa5, 0x2d, 0x06, 0x48, 0x6e, 0x50, + 0x1b, 0x73, 0x94, 0x17, 0x0f, 0xe0, 0xf8, 0x6e, + 0xed, 0xdb, 0x98, 0xae, 0x1e, 0xa5, 0x2b, 0x0b, + 0xf6, 0xd6, 0xca, 0xee, 0xb1, 0x69, 0xb2, 0x33, + 0x24, 0x22, 0xc0, 0x4b, 0x86, 0x10, 0x00, 0x20, + 0x3b, 0xa5, 0x31, 0x05, 0xb8, 0xa8, 0x65, 0x40, + 0x06, 0x4a, 0xa1, 0x92, 0xcd, 0x5a, 0xb5, 0x51, + 0x32, 0x04, 0x0a, 0x2e, 0x88, 0x6e, 0x4a, 0x88, + 0xe9, 0x9b, 0x9a, 0x95, 0x2d, 0xd6, 0x4c, 0x36, + 0x82, 0x13, 0xb2, 0xc6, 0x97, 0x53, 0xdb, 0x37, + 0xea, 0x78, 0xda, 0xab, 0x91, 0x9c, 0xe5, 0x8e, + 0xdb, 0x4e, 0xb9, 0xd4, 0x43, 0xe1, 0x55, 0x06, + 0x62, 0xb3, 0x79, 0x79, 0xd2, 0xe0, 0x1a, 0xd0, + 0xab, 0x40, 0x44, 0x20, 0x7b, 0x5b, 0x07, 0xec, + 0xd0, 0x06, 0x8e, 0xcd, 0x11, 0x38, 0xca, 0xbd, + 0xb9, 0x47, 0x35, 0xb9, 0xb4, 0x76, 0x5c, 0xa1, + 0xb0, 0x10, 0x73, 0x6a, 0xbf, 0xdc, 0x47, 0x8c, + 0xa9, 0x8a, 0xeb, 0x1d, 0xf6, 0x58, 0x55, 0x84, + 0x42, 0xc7, 0xc5, 0x5f, 0x28, 0xc4, 0x46, 0xb1, + 0x36, 0x15, 0x92, 0x21, 0x76, 0x0a, 0xb9, 0x55, + 0xc4, 0x9f, 0x42, 0xa4, 0xf6, 0x3a, 0xe4, 0xb9, + 0x51, 0x2e, 0x20, 0xab, 0xc8, 0xbb, 0x75, 0x94, + 0x8f, 0x35, 0x91, 0x71, 0xf7, 0xef, 0xcd, 0xbf, + 0x7e, 0x97, 0x79, 0x2f, 0xe4, 0xb4, 0x97, 0x8d, + 0x95, 0xbb, 0x94, 0x0b, 0x95, 0xe0, 0x7d, 0x41, + 0x67, 0x21, 0x09, 0x2e, 0x76, 0x3f, 0x1b, 0x94, + 0x82, 0x43, 0xef, 0x8e, 0xdd, 0xda, 0xb8, 0x83, + 0xca, 0x1c, 0xa6, 0xfe, 0x44, 0x72, 0xd7, 0x03, + 0xa1, 0x52, 0x21, 0xd9, 0x10, 0x68, 0x38, 0x6c, + 0xce, 0xd5, 0xe2, 0x42, 0x61, 0xaa, 0x59, 0xf4, + 0x97, 0x20, 0x89, 0x90, 0x8d, 0xd5, 0x31, 0xdd, + 0xab, 0x39, 0xba, 0xf9, 0x77, 0xa7, 0x27, 0x77, + 0xed, 0xbb, 0x20, 0x15, 0xe0, 0x6c, 0xf8, 0x90, + 0x11, 0xd6, 0xab, 0xd1, 0xec, 0x67, 0xca, 0x31, + 0x1c, 0x9b, 0xd7, 0xf6, 0xb2, 0xf1, 0xc3, 0x94, + 0xfc, 0x6d, 0x46, 0x7a, 0x72, 0xd6, 0xa7, 0x30, + 0x25, 0xce, 0x37, 0xa4, 0x87, 0x9c, 0x7b, 0xa4, + 0x7a, 0x62, 0xbe, 0x4e, 0x80, 0xd7, 0xe5, 0x22, + 0x0e, 0xcb, 0x0a, 0x8a, 0xdd, 0x32, 0x25, 0xf4, + 0xb9, 0x26, 0x47, 0x4b, 0x0c, 0x96, 0x62, 0xc5, + 0x98, 0x4d, 0xc8, 0xbe, 0x9f, 0x15, 0x0a, 0x24, + 0xdb, 0x15, 0xc2, 0x85, 0xc9, 0x65, 0x74, 0xa9, + 0x89, 0xe5, 0x08, 0xf1, 0x16, 0xb2, 0x15, 0x01, + 0x6e, 0xc1, 0x5c, 0x30, 0x88, 0xe6, 0xd5, 0x7b, + 0xf9, 0xa7, 0xd9, 0x45, 0xd4, 0xaa, 0xbd, 0x94, + 0x9a, 0xaa, 0x42, 0xd8, 0x94, 0x19, 0x31, 0x63, + 0x02, 0xba, 0xe1, 0xd2, 0x98, 0x32, 0x92, 0x26, + 0x27, 0xa6, 0xd6, 0xf8, 0xb0, 0xd3, 0x38, 0x00, + 0x81, 0xf0, 0xd0, 0x66, 0x1e, 0x19, 0x3e, 0xcc, + 0x34, 0xe6, 0xc8, 0x2a, 0xa8, 0xf3, 0xd5, 0x08, + 0xd8, 0x50, 0xda, 0xe3, 0x5e, 0x2a, 0xb9, 0x63, + 0xdc, 0x51, 0x0d, 0x41, 0xec, 0xc1, 0x06, 0xfd, + 0x90, 0x00, 0xa2, 0xd6, 0x62, 0xbe, 0x6e, 0xd8, + 0x64, 0x6e, 0xf7, 0x5b, 0xb1, 0x3d, 0x26, 0x43, + 0xe2, 0x3d, 0xc0, 0xb2, 0xbb, 0x54, 0x75, 0x64, + 0x53, 0x13, 0x31, 0x5c, 0x3a, 0x10, 0x35, 0x87, + 0xc5, 0xaf, 0x0a, 0x1e, 0xed, 0x3a, 0xfe, 0x46, + 0xe3, 0x6d, 0xdc, 0x7c, 0xf3, 0x35, 0xed, 0x98, + 0xe6, 0x9f, 0xbd, 0x02, 0x23, 0x02, 0x0b, 0x58, + 0xc7, 0x70, 0x29, 0x42, 0x0a, 0x58, 0xf8, 0xa0, + 0x02, 0x3d, 0xda, 0xf7, 0x5a, 0xf7, 0x5a, 0xaf, + 0x46, 0x8a, 0x99, 0x6a, 0xe5, 0xa6, 0x0a, 0x6b, + 0xd7, 0x54, 0x73, 0x31, 0x8c, 0x2f, 0x24, 0x44, + 0x7d, 0xc8, 0xfb, 0xa4, 0x53, 0xb0, 0x80, 0xc4, + 0x99, 0xcc, 0x0c, 0x4c, 0xea, 0x8e, 0x38, 0x8c, + 0x58, 0xcc, 0x56, 0x2b, 0x19, 0x8b, 0x7b, 0x03, + 0xdc, 0x1d, 0x8a, 0x34, 0x93, 0x5e, 0xc4, 0x87, + 0xdd, 0xe5, 0xeb, 0x01, 0x8f, 0x7f, 0x7f, 0x76, + 0x9d, 0xf8, 0x21, 0xfe, 0xba, 0xbe, 0xb0, 0xbf, + 0x8e, 0x55, 0xfb, 0x1d, 0xdd, 0x07, 0xbd, 0x1a, + 0x3f, 0x7a, 0x74, 0xef, 0xc6, 0x59, 0x2f, 0xdb, + 0x1b, 0xfd, 0xd5, 0x15, 0x31, 0xbb, 0x16, 0x67, + 0x19, 0x75, 0xb7, 0xe9, 0xd5, 0x22, 0x10, 0xf0, + 0x85, 0x7b, 0x29, 0x42, 0x6e, 0x55, 0x41, 0x1c, + 0x88, 0xf6, 0xa0, 0xec, 0xc9, 0xb0, 0xa0, 0x99, + 0xf6, 0xe8, 0x03, 0x58, 0xc4, 0x94, 0xee, 0x32, + 0xb7, 0x60, 0xf3, 0x4b, 0x38, 0xf2, 0x89, 0x62, + 0xef, 0x47, 0xf1, 0x7f, 0xee, 0x3b, 0xe3, 0xf8, + 0xe3, 0x78, 0x9f, 0xb9, 0xaf, 0x33, 0xe5, 0xfd, + 0x59, 0x77, 0xe4, 0x35, 0x5a, 0xce, 0x47, 0x85, + 0xf2, 0xd9, 0x5a, 0x6a, 0x3d, 0xec, 0x63, 0xca, + 0xae, 0x4a, 0xac, 0x59, 0x0e, 0x59, 0x8e, 0x4e, + 0xd0, 0xaa, 0xe4, 0xc5, 0x77, 0xcc, 0x14, 0x14, + 0x09, 0x77, 0xc6, 0xd3, 0x13, 0x13, 0x3a, 0x66, + 0x4e, 0x78, 0x77, 0x27, 0x41, 0x3d, 0x14, 0x55, + 0xa7, 0x45, 0x38, 0xfb, 0xc6, 0xba, 0x95, 0x2b, + 0x8f, 0x2a, 0x92, 0x25, 0xd9, 0x57, 0x05, 0xb7, + 0x7c, 0x94, 0x8a, 0x94, 0x3b, 0xcf, 0x8a, 0xb0, + 0x1d, 0x86, 0x3c, 0xd1, 0x98, 0xf5, 0x6d, 0xef, + 0x90, 0xd7, 0x9a, 0x33, 0x1e, 0xad, 0xbd, 0xf2, + 0x1a, 0xf3, 0x3e, 0x5f, 0xd5, 0x97, 0x7e, 0x43, + 0x5e, 0x68, 0xcc, 0x7a, 0xb6, 0xf7, 0xc8, 0x6b, + 0xcc, 0xf9, 0x7f, 0x56, 0x5d, 0xf9, 0x0d, 0x79, + 0xa3, 0x31, 0xea, 0xdb, 0xdf, 0x21, 0xaf, 0x34, + 0x66, 0x3d, 0x5b, 0x7b, 0xe4, 0x35, 0xe6, 0x8c, + 0xc7, 0xab, 0x6e, 0xfc, 0x86, 0xbc, 0xd1, 0x98, + 0xf5, 0x6d, 0xef, 0x90, 0xd5, 0xa1, 0xcc, 0x70, + 0x35, 0xde, 0x21, 0xa9, 0x64, 0x55, 0xed, 0x4d, + 0xab, 0x92, 0xa3, 0x6a, 0xbb, 0x51, 0x27, 0xc8, + 0x75, 0xaf, 0xa2, 0xa3, 0x1c, 0xa0, 0x38, 0x64, + 0xc5, 0x84, 0x44, 0x72, 0x3f, 0x95, 0x5c, 0xdd, + 0xea, 0x1d, 0x63, 0xe2, 0xaf, 0x0a, 0x64, 0xb0, + 0xf8, 0xdc, 0x4d, 0x28, 0xa5, 0x8e, 0xc7, 0x2a, + 0x9e, 0x46, 0xcf, 0x45, 0x7c, 0xdc, 0xec, 0x33, + 0xb0, 0x75, 0x57, 0x2d, 0x63, 0x0b, 0x6d, 0xcb, + 0xa6, 0x3e, 0x28, 0x8f, 0x37, 0x31, 0xf3, 0x30, + 0xbc, 0xd1, 0x98, 0xf5, 0x6d, 0xef, 0x90, 0xd7, + 0x9a, 0x33, 0x1e, 0xad, 0xbb, 0xf2, 0x1a, 0xf3, + 0x46, 0x63, 0xd5, 0xb7, 0xbe, 0x43, 0x5e, 0x67, + 0xcb, 0xfa, 0xb2, 0xef, 0xc8, 0x6b, 0xcd, 0x19, + 0x8f, 0x56, 0xde, 0xf9, 0x0d, 0x79, 0x9f, 0x2f, + 0xea, 0xcb, 0xbf, 0x21, 0xaa, 0x39, 0xdc, 0xbd, + 0x3b, 0x78, 0xbc, 0x3e, 0x1e, 0xca, 0xb2, 0x12, + 0xcb, 0xa9, 0x2a, 0xae, 0xbd, 0x6a, 0xa1, 0x45, + 0x8a, 0x94, 0xa9, 0xa6, 0xc7, 0x4d, 0x8e, 0x27, + 0x39, 0x61, 0x2c, 0x38, 0x1e, 0x98, 0xa0, 0x4f, + 0x73, 0x1d, 0xc6, 0x74, 0xc6, 0xcf, 0x95, 0x86, + 0x67, 0x3e, 0xf9, 0x94, 0x94, 0xff, 0x00, 0xdf, + 0xae, 0x13, 0x13, 0xc6, 0xe1, 0x72, 0x91, 0x61, + 0x19, 0x98, 0x9f, 0x0d, 0x62, 0xab, 0x64, 0xc9, + 0x51, 0x56, 0xe5, 0x75, 0xa6, 0x2b, 0xb2, 0xc4, + 0x49, 0xa0, 0x44, 0x19, 0x21, 0xca, 0xb2, 0x88, + 0xe5, 0x81, 0x8d, 0xb6, 0x18, 0xd7, 0xa2, 0xdc, + 0x15, 0xfa, 0x35, 0x4f, 0xfd, 0xba, 0xc7, 0x0b, + 0x38, 0x77, 0x85, 0x23, 0x25, 0x9b, 0xab, 0x98, + 0xb5, 0x8d, 0xe9, 0x70, 0xd6, 0x37, 0xb1, 0x22, + 0x31, 0x1d, 0xa3, 0xda, 0xaf, 0x41, 0x09, 0x39, + 0x93, 0x70, 0xa9, 0xd9, 0x0e, 0x74, 0x31, 0x51, + 0x48, 0x7a, 0x0d, 0x30, 0xb5, 0xd4, 0x35, 0xae, + 0x19, 0xf5, 0x8f, 0xc2, 0xdc, 0x93, 0x47, 0xc2, + 0x70, 0x5f, 0x5a, 0x55, 0xf9, 0x7c, 0x1f, 0xcd, + 0xc9, 0xdb, 0x77, 0xdb, 0x6e, 0xcd, 0x05, 0xdd, + 0x2d, 0xf7, 0x11, 0xe5, 0xdf, 0x6e, 0xfd, 0x7f, + 0x64, 0x78, 0x73, 0x86, 0x25, 0x8c, 0xb3, 0x5e, + 0xba, 0x6b, 0xd1, 0xe1, 0x9c, 0x70, 0x18, 0xad, + 0xbc, 0xdd, 0x5b, 0x86, 0xd7, 0xa5, 0xea, 0x64, + 0x26, 0x79, 0x04, 0x29, 0x0f, 0x49, 0x96, 0x08, + 0xe7, 0xf7, 0xca, 0x04, 0x37, 0x2f, 0x06, 0xe4, + 0x30, 0x7c, 0x26, 0xeb, 0xad, 0xcd, 0x3f, 0x0c, + 0xb1, 0xc6, 0xf0, 0xde, 0x32, 0x3b, 0x37, 0x48, + 0xc1, 0x23, 0x90, 0x7a, 0x9e, 0xb6, 0x95, 0x95, + 0x3d, 0xed, 0x88, 0x55, 0x55, 0x36, 0xb1, 0xc8, + 0xa5, 0xd3, 0xda, 0x79, 0xb9, 0x23, 0x4e, 0xc4, + 0x4f, 0x0e, 0xf0, 0x52, 0x9a, 0x95, 0xe5, 0x4e, + 0x58, 0x3c, 0x29, 0x51, 0xfc, 0xc7, 0x8b, 0xa7, + 0x6a, 0xd4, 0xac, 0x57, 0xd5, 0x5c, 0xcf, 0x5e, + 0x6a, 0xf4, 0x86, 0x79, 0xbc, 0x4e, 0x78, 0x3e, + 0x56, 0x72, 0xf2, 0x14, 0xe3, 0x67, 0x82, 0x78, + 0x71, 0x39, 0x02, 0x84, 0x74, 0xaa, 0x97, 0x04, + 0xa3, 0x78, 0x2b, 0x0f, 0x52, 0x80, 0xae, 0xf5, + 0x0d, 0x2d, 0xa5, 0x56, 0x45, 0x9c, 0xd1, 0x6b, + 0xa3, 0x62, 0x24, 0xfa, 0x6b, 0xe9, 0xc0, 0xb3, + 0xaa, 0xb9, 0xc4, 0xe5, 0x78, 0x7b, 0x86, 0x71, + 0xb6, 0x7b, 0x52, 0xe9, 0x04, 0x27, 0x81, 0xb1, + 0xf7, 0x26, 0x1e, 0xc6, 0xf4, 0xbf, 0x7c, 0x2e, + 0xd6, 0x4f, 0x12, 0xc4, 0x2e, 0x37, 0x13, 0x82, + 0x18, 0x71, 0x90, 0xcf, 0xd8, 0xa3, 0xbb, 0x99, + 0xc9, 0xc7, 0x70, 0xee, 0x07, 0x20, 0xc4, 0x59, + 0x8a, 0x85, 0xd4, 0xf6, 0x3e, 0xc6, 0xd5, 0x54, + 0xbb, 0x99, 0xc3, 0xc9, 0x0c, 0xad, 0x9a, 0xc9, + 0x97, 0x39, 0x74, 0xb7, 0xae, 0x12, 0xa8, 0x37, + 0xc7, 0x57, 0xb9, 0x7d, 0x2f, 0x1d, 0xb2, 0xde, + 0x02, 0xe1, 0xd5, 0x42, 0x14, 0x36, 0x1f, 0x2c, + 0xe0, 0xa8, 0x08, 0x4a, 0x0b, 0x9b, 0x95, 0xee, + 0x92, 0x5c, 0x74, 0x92, 0x5c, 0x87, 0xca, 0xd3, + 0xe5, 0x09, 0xe5, 0x2d, 0x8b, 0xc5, 0x9d, 0x45, + 0xd9, 0xe0, 0xce, 0x14, 0x8a, 0x52, 0xce, 0x8c, + 0x5c, 0xfa, 0xd2, 0x47, 0x64, 0x97, 0x77, 0xfb, + 0x54, 0x59, 0xe5, 0xe8, 0xcb, 0x7b, 0xa7, 0xda, + 0xe0, 0xf9, 0xfb, 0xa7, 0xbb, 0xbb, 0x5d, 0x9e, + 0xcf, 0x09, 0xf0, 0x96, 0x34, 0x7a, 0x24, 0xee, + 0xad, 0xae, 0x0f, 0x40, 0xef, 0x11, 0x69, 0x34, + 0x06, 0x00, 0x1a, 0x48, 0xea, 0x4c, 0xde, 0xb0, + 0xaa, 0xc5, 0xca, 0x5e, 0xd6, 0x72, 0x5b, 0xc4, + 0x90, 0x48, 0x6a, 0xdd, 0x2a, 0x54, 0xb8, 0x52, + 0x5d, 0x8e, 0xb6, 0x84, 0x5f, 0xed, 0xde, 0xc7, + 0xf8, 0xea, 0x82, 0x35, 0x9b, 0x92, 0x56, 0x29, + 0x97, 0x29, 0xcd, 0x7c, 0xe6, 0x43, 0xb4, 0xf6, + 0x7b, 0x56, 0x2b, 0xc9, 0xa1, 0xfd, 0x84, 0x89, + 0x0d, 0x96, 0x03, 0x24, 0x82, 0x57, 0xac, 0xd6, + 0x4c, 0xb8, 0x7b, 0x82, 0x56, 0x78, 0x6b, 0x30, + 0x82, 0xa4, 0x5c, 0x29, 0x53, 0xa9, 0x60, 0x57, + 0x61, 0x15, 0xae, 0xb8, 0x59, 0xd4, 0x88, 0x5c, + 0x52, 0x3b, 0x75, 0x3a, 0x81, 0x20, 0x7c, 0xd0, + 0xe9, 0xf1, 0x83, 0x93, 0xc6, 0xbd, 0x94, 0xf0, + 0x3f, 0x04, 0x31, 0xf8, 0xe4, 0xe2, 0x1d, 0x6b, + 0x1d, 0xf5, 0x9d, 0x50, 0x0c, 0x23, 0x27, 0x5a, + 0x95, 0x96, 0x8c, 0x3f, 0xb5, 0x1e, 0xf3, 0x46, + 0x32, 0x15, 0x61, 0x9e, 0xd3, 0x1d, 0x4e, 0x62, + 0x2f, 0x6a, 0xe4, 0xe5, 0xd7, 0x0d, 0xda, 0x2c, + 0x1f, 0x03, 0x8c, 0xf1, 0x0b, 0x6d, 0xc7, 0x4b, + 0xeb, 0x4e, 0x9f, 0xef, 0x14, 0x55, 0x62, 0x87, + 0xb4, 0x30, 0xfa, 0xf1, 0x0d, 0xea, 0xa9, 0x84, + 0xf8, 0x5f, 0x2a, 0x79, 0x40, 0x47, 0xc7, 0x9e, + 0xa6, 0xe3, 0x52, 0xbd, 0xbc, 0x67, 0x04, 0x53, + 0xc9, 0x64, 0x2b, 0x0d, 0xaa, 0x75, 0x8f, 0x83, + 0xa8, 0xcd, 0x21, 0x53, 0xc2, 0x59, 0x4a, 0x32, + 0x59, 0x23, 0xbc, 0x9e, 0xc0, 0xcb, 0xc1, 0xca, + 0x69, 0xe4, 0xa5, 0x75, 0x4b, 0x5b, 0x90, 0xcb, + 0x4e, 0x40, 0x99, 0xf4, 0xa9, 0x33, 0x25, 0x8b, + 0xe0, 0xac, 0x73, 0x32, 0x92, 0x5d, 0x80, 0x07, + 0x83, 0x29, 0xdb, 0x54, 0x2c, 0x5a, 0x75, 0xbb, + 0x56, 0x49, 0xfd, 0xb2, 0xb4, 0xd2, 0xa6, 0x56, + 0x40, 0x96, 0x2c, 0xac, 0x9c, 0x93, 0xf9, 0x56, + 0xe7, 0x15, 0x51, 0x01, 0x5f, 0x5a, 0xab, 0xb2, + 0xb8, 0xde, 0x14, 0xa8, 0xcb, 0x77, 0x2f, 0x53, + 0x88, 0xa3, 0xc0, 0x98, 0x9c, 0xa5, 0x65, 0x76, + 0x07, 0xae, 0xbb, 0x5c, 0xcb, 0x7e, 0x1d, 0xa5, + 0xce, 0xa9, 0x26, 0x73, 0x89, 0x55, 0xaf, 0x67, + 0x99, 0x51, 0x26, 0xb9, 0x66, 0xe3, 0x13, 0x77, + 0x1d, 0x67, 0x85, 0xf8, 0x1e, 0x5f, 0x46, 0xd3, + 0xaa, 0x3a, 0x57, 0xc3, 0x75, 0x09, 0x64, 0x68, + 0x64, 0xae, 0x49, 0x73, 0x3c, 0xb3, 0x20, 0x5b, + 0x73, 0x04, 0x90, 0x89, 0x72, 0xcc, 0x73, 0x08, + 0xcf, 0x76, 0xb1, 0x55, 0xb1, 0xf8, 0xfc, 0x06, + 0x1a, 0x2e, 0x65, 0x71, 0x75, 0xad, 0x3b, 0x0d, + 0x84, 0xa5, 0x42, 0xd3, 0xeb, 0x36, 0xfd, 0x78, + 0x65, 0x73, 0xb4, 0x03, 0x2e, 0xe8, 0xb0, 0x77, + 0x12, 0x08, 0x28, 0xde, 0x26, 0x63, 0x59, 0x2f, + 0xc3, 0xee, 0x7e, 0xd0, 0xcd, 0x3b, 0xf0, 0x43, + 0xfd, 0x75, 0x7d, 0x61, 0xbf, 0x1c, 0x2b, 0xf6, + 0x3b, 0xba, 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xe9, + 0xdf, 0x8c, 0xb2, 0x5f, 0xb6, 0x37, 0xfb, 0xaa, + 0xa7, 0xe1, 0x28, 0xfd, 0x68, 0xeb, 0x88, 0x52, + 0x9e, 0x21, 0xce, 0xa5, 0x29, 0xce, 0xe5, 0xd4, + 0x94, 0xab, 0x31, 0x91, 0x5a, 0x94, 0xa5, 0xe4, + 0x2c, 0x02, 0xd4, 0xa5, 0x85, 0x98, 0x05, 0xad, + 0x61, 0x10, 0x20, 0x01, 0x10, 0x20, 0x31, 0x02, + 0x31, 0x11, 0x1a, 0xf4, 0x97, 0x88, 0x7d, 0x77, + 0x93, 0xf9, 0xd6, 0xbd, 0x25, 0xe2, 0x1f, 0x5d, + 0xe4, 0xfe, 0x75, 0xaf, 0x49, 0x78, 0x87, 0xd7, + 0x79, 0x3f, 0x9d, 0x6b, 0xd2, 0x5e, 0x21, 0xf5, + 0xde, 0x4f, 0xe7, 0x5a, 0xf4, 0x97, 0x88, 0x7d, + 0x77, 0x93, 0xf9, 0xd6, 0xb1, 0x6a, 0xbb, 0x96, + 0xcd, 0xe4, 0x02, 0xcd, 0xca, 0xf5, 0xc1, 0x56, + 0x73, 0x99, 0x32, 0xac, 0x12, 0xd7, 0x08, 0x9b, + 0x1d, 0x5e, 0x5f, 0x23, 0x6b, 0x65, 0xf3, 0x42, + 0xd4, 0x64, 0x2a, 0x86, 0x4c, 0x31, 0x82, 0xd8, + 0x1e, 0x9c, 0xe3, 0x1b, 0x6f, 0x88, 0x73, 0x4e, + 0xaa, 0x19, 0x0a, 0xdd, 0xa9, 0x36, 0x32, 0xf9, + 0x07, 0x28, 0xeb, 0x4b, 0x84, 0x5f, 0x06, 0xa3, + 0xb2, 0x42, 0x71, 0xd2, 0x92, 0x9d, 0xa4, 0x67, + 0xbe, 0x37, 0xfb, 0x9a, 0xcd, 0x61, 0xcf, 0x39, + 0x9c, 0x6e, 0x5e, 0x6d, 0x65, 0xed, 0xd4, 0xb1, + 0x39, 0x5c, 0x8c, 0xda, 0x1a, 0xf8, 0x1b, 0xf5, + 0x68, 0xad, 0x49, 0x3e, 0xd3, 0x2c, 0x15, 0xdc, + 0x0f, 0x0a, 0xb5, 0xa0, 0x33, 0xca, 0xc9, 0x4a, + 0x66, 0x77, 0x95, 0xc6, 0xd2, 0xa8, 0xe3, 0x4c, + 0xbe, 0x36, 0x86, 0x38, 0xf2, 0x34, 0x5a, 0x6a, + 0x65, 0xd3, 0x64, 0x33, 0x87, 0x71, 0x58, 0x9e, + 0xdf, 0x65, 0x8c, 0xaf, 0x75, 0x16, 0x2e, 0x36, + 0xe3, 0x9a, 0xde, 0x55, 0x30, 0xb9, 0x45, 0xe2, + 0x47, 0x05, 0xbd, 0xa6, 0x98, 0xf5, 0xeb, 0xf1, + 0x57, 0x18, 0xbe, 0x5b, 0x4a, 0xce, 0x52, 0x9b, + 0x22, 0x33, 0xc3, 0x8c, 0x75, 0x04, 0x43, 0x58, + 0xbe, 0xd3, 0x93, 0xf0, 0x91, 0x0d, 0x3c, 0x85, + 0x8a, 0xc9, 0x27, 0x05, 0x38, 0xaf, 0x65, 0x20, + 0x44, 0xb4, 0x32, 0xfc, 0x34, 0xfc, 0x5c, 0xce, + 0x48, 0xf8, 0x87, 0x3a, 0xc2, 0x13, 0xa1, 0x8b, + 0xab, 0xd4, 0xcc, 0x64, 0x4f, 0x91, 0xd7, 0xe6, + 0xc5, 0x86, 0xbc, 0x39, 0xac, 0x14, 0x0b, 0x17, + 0x5a, 0x8b, 0x00, 0x0f, 0xca, 0x12, 0xfe, 0x61, + 0xf1, 0xa2, 0x35, 0x63, 0x25, 0x8b, 0xcb, 0xbb, + 0x2d, 0x81, 0x57, 0x83, 0xdb, 0x4f, 0xb3, 0x64, + 0xdc, 0x8c, 0x9e, 0x11, 0x8b, 0x72, 0xbc, 0x4c, + 0xda, 0xb7, 0x8c, 0x8d, 0xe5, 0xba, 0x21, 0x95, + 0x6d, 0xf6, 0xc6, 0x59, 0xc7, 0xd9, 0x3b, 0x29, + 0x35, 0xd8, 0x13, 0x81, 0x54, 0x71, 0x4a, 0x87, + 0x37, 0x99, 0x32, 0xcc, 0x5a, 0xbb, 0xf5, 0xbb, + 0x3e, 0x14, 0xc8, 0x73, 0x57, 0x46, 0x3f, 0x1f, + 0xf5, 0xc4, 0x7d, 0x8e, 0x3b, 0x47, 0xb5, 0x75, + 0x55, 0x6a, 0x85, 0x21, 0xe9, 0x6d, 0xb8, 0x49, + 0x2b, 0xc5, 0x89, 0xdb, 0x57, 0x31, 0xc1, 0x9b, + 0xcc, 0x29, 0xf8, 0x8c, 0x16, 0x0b, 0x23, 0xd7, + 0x1c, 0x9d, 0xe5, 0x59, 0x3b, 0x0c, 0xe8, 0x76, + 0xf0, 0x7b, 0x41, 0xc2, 0xd7, 0x75, 0x3c, 0x2a, + 0x31, 0x30, 0xe3, 0x2e, 0x5e, 0xc6, 0x9e, 0x5d, + 0xa7, 0x7d, 0xfd, 0x25, 0xe2, 0x1f, 0x5d, 0xe4, + 0xfe, 0x75, 0xaf, 0x49, 0x78, 0x87, 0xd7, 0x79, + 0x3f, 0x9d, 0x6b, 0xd2, 0x5e, 0x21, 0xf5, 0xde, + 0x4f, 0xe7, 0x5a, 0xf4, 0x97, 0x88, 0x7d, 0x77, + 0x93, 0xf9, 0xd6, 0xbd, 0x25, 0xe2, 0x1f, 0x5d, + 0xe4, 0xfe, 0x75, 0xaf, 0x49, 0x78, 0x87, 0xd7, + 0x79, 0x3f, 0x9d, 0x6b, 0x85, 0xec, 0xdd, 0xb5, + 0x66, 0xe5, 0x96, 0x16, 0x7b, 0xa9, 0x62, 0xdb, + 0xdb, 0x65, 0xe7, 0xc9, 0x96, 0x6a, 0xc3, 0x9d, + 0xce, 0x23, 0x61, 0x72, 0x2c, 0x44, 0x07, 0x98, + 0xa7, 0x94, 0x04, 0x46, 0x36, 0x18, 0x88, 0xfa, + 0x9c, 0x17, 0xfe, 0x63, 0x88, 0x7f, 0x6f, 0xa9, + 0xf5, 0x30, 0x6a, 0x0b, 0x34, 0x97, 0x82, 0xec, + 0x39, 0x55, 0xf1, 0x27, 0x5e, 0xd2, 0x42, 0xfa, + 0xac, 0x59, 0x6d, 0x98, 0xb6, 0x15, 0xf9, 0x99, + 0xe1, 0x1a, 0xe1, 0x66, 0xa0, 0xe3, 0xbb, 0x32, + 0xb1, 0x3d, 0x3a, 0xf9, 0x02, 0xdd, 0x79, 0x00, + 0x7c, 0x43, 0xc0, 0x7e, 0xb5, 0x22, 0xae, 0x47, + 0xa3, 0x2b, 0xed, 0x3d, 0xa6, 0x72, 0x1e, 0x3f, + 0x85, 0x3b, 0x48, 0xb7, 0xa5, 0xd2, 0x85, 0xf4, + 0x7c, 0x09, 0xb4, 0x75, 0xa6, 0x8f, 0x2f, 0x3c, + 0xdd, 0xfd, 0xf1, 0xcf, 0x0e, 0xfd, 0xf1, 0x01, + 0x92, 0xc7, 0x5c, 0xa0, 0x19, 0x2a, 0x77, 0x6b, + 0x8c, 0x54, 0xc8, 0x2b, 0x1f, 0xc9, 0x08, 0x3f, + 0x1e, 0x2f, 0xad, 0x99, 0x22, 0x94, 0x7b, 0x43, + 0x55, 0x00, 0x7d, 0x35, 0x45, 0x8a, 0xfc, 0xcb, + 0x6a, 0x5b, 0x1b, 0xcf, 0x2e, 0x67, 0x89, 0x71, + 0x3d, 0x8a, 0xc5, 0xb2, 0xca, 0xdb, 0x47, 0x0e, + 0x53, 0x9b, 0x75, 0x2b, 0xae, 0x8c, 0xef, 0x26, + 0x79, 0xa6, 0x26, 0xcd, 0x85, 0x1f, 0x22, 0x39, + 0xf9, 0x71, 0x4a, 0x98, 0xef, 0x77, 0xb7, 0x9c, + 0x6c, 0x81, 0x82, 0xaf, 0x20, 0x6e, 0xa1, 0x92, + 0x8a, 0x39, 0xd5, 0xb7, 0x23, 0x77, 0x2b, 0x52, + 0x69, 0x76, 0xb6, 0x61, 0x72, 0x2a, 0x59, 0xae, + 0x22, 0x8d, 0x69, 0x44, 0x95, 0xa2, 0x0e, 0x42, + 0x3b, 0xf6, 0x77, 0x99, 0x81, 0x89, 0x22, 0x28, + 0x2d, 0x55, 0xa7, 0x91, 0xbb, 0x56, 0x2f, 0x54, + 0xa6, 0x04, 0xc9, 0x9b, 0xa8, 0x7f, 0x46, 0xab, + 0x78, 0xbb, 0x05, 0x69, 0x15, 0x7a, 0xc0, 0xc3, + 0x03, 0x60, 0x0a, 0xae, 0x5d, 0x94, 0x2d, 0x8c, + 0x94, 0xa5, 0x92, 0x65, 0x01, 0xb9, 0xc0, 0xa3, + 0xac, 0x6a, 0x11, 0x5e, 0x71, 0x44, 0x6c, 0x87, + 0x28, 0xd3, 0x01, 0xdb, 0x44, 0xf9, 0xfa, 0xe0, + 0x64, 0x99, 0x0e, 0x4f, 0x1b, 0x9e, 0x0e, 0x47, + 0x6f, 0xbb, 0xab, 0xec, 0x2b, 0x55, 0xd5, 0xff, + 0x00, 0xb6, 0x58, 0x6b, 0x2b, 0x23, 0x7a, 0x82, + 0x25, 0x4a, 0x3c, 0xcc, 0x93, 0xc7, 0x98, 0xa3, + 0x75, 0x2f, 0x9d, 0x7c, 0xcc, 0x8f, 0x10, 0x79, + 0xc3, 0x79, 0x8e, 0x68, 0xdf, 0x85, 0x45, 0xb9, + 0x01, 0x88, 0x5d, 0x8e, 0x2a, 0x27, 0x8b, 0x2d, + 0xc4, 0x0a, 0xbb, 0x5a, 0x24, 0x77, 0x74, 0x11, + 0xf8, 0x91, 0x67, 0x98, 0xa3, 0xc7, 0xda, 0x1d, + 0xcc, 0x51, 0xe3, 0x6f, 0x3a, 0x6d, 0xba, 0x31, + 0x89, 0xf0, 0x7b, 0x38, 0x46, 0x96, 0x37, 0x9a, + 0xce, 0x52, 0xcc, 0x33, 0x68, 0xa5, 0x5e, 0xbb, + 0xb1, 0x81, 0x88, 0x55, 0x83, 0xfe, 0xc8, 0x2b, + 0x22, 0x2d, 0xb4, 0x9e, 0x6a, 0xa3, 0x5b, 0xac, + 0x31, 0x90, 0x63, 0xf7, 0x29, 0x69, 0x65, 0x5a, + 0x79, 0x28, 0xb0, 0xbb, 0x1c, 0x4f, 0x88, 0xa5, + 0x5e, 0x66, 0xd8, 0x35, 0x2a, 0xc5, 0x51, 0x77, + 0x6a, 0x6c, 0xab, 0xdb, 0x08, 0x17, 0x5b, 0xaa, + 0xac, 0x76, 0xcc, 0x5f, 0x2a, 0x8b, 0xa2, 0x7b, + 0x94, 0x94, 0x16, 0xb3, 0x08, 0xa0, 0xaa, 0x35, + 0x15, 0x67, 0x26, 0xc6, 0x39, 0xf4, 0x45, 0x9d, + 0x5b, 0xa3, 0x56, 0xf3, 0x2c, 0x56, 0xe7, 0xb0, + 0xc7, 0xbf, 0xda, 0x7a, 0xd0, 0x16, 0x64, 0x6b, + 0xf4, 0x96, 0xd6, 0x02, 0x8c, 0xb9, 0xa0, 0x02, + 0x22, 0x85, 0x20, 0xb7, 0x5f, 0xc1, 0x99, 0xf4, + 0x64, 0xec, 0x64, 0x99, 0x0f, 0x5f, 0x46, 0xb1, + 0xf1, 0x5c, 0x73, 0x1a, 0xdc, 0xee, 0x68, 0x15, + 0x1d, 0x29, 0x5d, 0x43, 0x68, 0x94, 0x8c, 0xa8, + 0xd7, 0xe3, 0x47, 0xdc, 0xd6, 0x46, 0x19, 0x6a, + 0xba, 0x93, 0x9b, 0xe2, 0x7c, 0xa5, 0x0f, 0x6d, + 0x70, 0x00, 0xaf, 0x1d, 0x73, 0x0c, 0x74, 0x28, + 0xbd, 0xb0, 0xc2, 0xdc, 0x2a, 0xd6, 0x21, 0xa6, + 0x7d, 0x42, 0xf1, 0x02, 0x51, 0x1d, 0xf1, 0x23, + 0xae, 0xb2, 0x2c, 0xa6, 0x15, 0x8a, 0x9e, 0x25, + 0xaf, 0x41, 0x5d, 0x44, 0xc3, 0xa6, 0xaa, 0xf1, + 0xf8, 0x5c, 0x16, 0x26, 0x7a, 0x52, 0x5c, 0xd2, + 0x4e, 0x1e, 0x5b, 0x13, 0xca, 0x33, 0x27, 0xd3, + 0xb2, 0xc8, 0xde, 0x16, 0xc9, 0x1c, 0x76, 0x51, + 0x96, 0xeb, 0xa3, 0x18, 0xcc, 0x76, 0x2d, 0x59, + 0x43, 0x8b, 0x55, 0x86, 0xd5, 0x12, 0xc6, 0x50, + 0x4d, 0x2b, 0x8a, 0x1a, 0xcd, 0x3e, 0xb3, 0x1a, + 0xce, 0xcb, 0xd4, 0xa5, 0xca, 0x96, 0x0b, 0xa1, + 0xe9, 0x8f, 0x2f, 0x3c, 0x46, 0x09, 0x95, 0xec, + 0xd4, 0x52, 0xea, 0x53, 0x8c, 0x65, 0xfe, 0xd3, + 0x72, 0xb2, 0x19, 0x4a, 0x11, 0x72, 0xc3, 0x22, + 0xcb, 0x01, 0xa6, 0x0c, 0x6a, 0x8e, 0xa3, 0xc5, + 0x90, 0x48, 0x5b, 0x37, 0x68, 0x31, 0x42, 0x1c, + 0xd0, 0x23, 0x38, 0x81, 0xc7, 0x26, 0x95, 0xf0, + 0xaf, 0x92, 0xcd, 0xb2, 0xa1, 0xe4, 0x82, 0x5d, + 0x6d, 0x28, 0x1b, 0x75, 0xe6, 0x93, 0x5f, 0x5d, + 0x2e, 0x4a, 0x44, 0x9c, 0x02, 0x2d, 0x25, 0xb9, + 0x06, 0xb2, 0x28, 0x91, 0x81, 0x90, 0x82, 0x89, + 0x75, 0xab, 0x2c, 0x27, 0x58, 0xb2, 0xd6, 0x3d, + 0xed, 0x3f, 0x74, 0xd7, 0x34, 0xa4, 0xd8, 0x65, + 0xf7, 0x37, 0x22, 0x99, 0x9e, 0xed, 0xa3, 0xef, + 0x44, 0x46, 0xb0, 0x1f, 0x8f, 0x31, 0x1f, 0xca, + 0x35, 0xb5, 0x92, 0xfc, 0x3e, 0xe7, 0xed, 0x0c, + 0xd3, 0xbf, 0x04, 0x3f, 0xd7, 0x57, 0xd6, 0x1b, + 0xf1, 0xc2, 0xbf, 0x63, 0xbb, 0xa0, 0xf7, 0xa3, + 0x47, 0xef, 0x4e, 0x9d, 0xf8, 0xcb, 0x25, 0xfb, + 0x63, 0x7f, 0xba, 0x92, 0xd9, 0x8d, 0xe1, 0x4d, + 0x5b, 0x26, 0x23, 0xcb, 0x30, 0x07, 0x05, 0xb4, + 0x7e, 0x4d, 0x66, 0xfa, 0xb1, 0xe2, 0x5d, 0xc8, + 0x5a, 0xc9, 0xd5, 0x6f, 0xfc, 0x9d, 0x8a, 0x99, + 0x17, 0x1d, 0xb4, 0xb5, 0x45, 0xde, 0x2c, 0x0d, + 0x9b, 0xc9, 0xcc, 0x33, 0xb7, 0x38, 0x14, 0x77, + 0x4c, 0x6d, 0xfb, 0xac, 0x7e, 0x4b, 0xa5, 0xd7, + 0xec, 0x36, 0xd3, 0x6b, 0xa3, 0xd4, 0xe9, 0x75, + 0x7a, 0x27, 0x05, 0xc9, 0xd4, 0xe4, 0x6f, 0x27, + 0x36, 0xdb, 0x73, 0x74, 0xcf, 0x6f, 0xf0, 0x67, + 0x47, 0x8f, 0x0c, 0x85, 0xe0, 0xa0, 0xc2, 0x93, + 0x3a, 0x23, 0x72, 0xc0, 0xd2, 0x32, 0x99, 0x82, + 0xe6, 0x2a, 0xb0, 0xc8, 0x41, 0x17, 0x34, 0x41, + 0x73, 0x4a, 0xf7, 0xde, 0x22, 0x7c, 0xb1, 0x1a, + 0xc7, 0x67, 0x99, 0x40, 0x4e, 0x29, 0x56, 0x4d, + 0x77, 0x52, 0xed, 0x3d, 0xd7, 0x36, 0x51, 0x8d, + 0xb6, 0x13, 0xe5, 0x13, 0xd3, 0x9b, 0x8f, 0x6b, + 0x6c, 0x4c, 0x74, 0x59, 0xd3, 0x93, 0xe4, 0xdc, + 0xf6, 0xe7, 0x97, 0x56, 0x75, 0x5e, 0xab, 0xac, + 0x3b, 0x88, 0x1e, 0xdb, 0x1d, 0xa3, 0x93, 0x76, + 0x67, 0x93, 0x51, 0x67, 0x3d, 0x2e, 0x81, 0xfd, + 0x80, 0xea, 0xcb, 0x3e, 0xc9, 0xed, 0xbd, 0x5e, + 0x5f, 0x6a, 0xe4, 0xe6, 0x34, 0xc5, 0xbc, 0x54, + 0xd8, 0xc8, 0x56, 0xc7, 0x78, 0x31, 0x36, 0xbb, + 0x74, 0xae, 0xa7, 0x4c, 0x79, 0x86, 0xbd, 0x96, + 0xd1, 0x0a, 0xbd, 0x56, 0x5b, 0xaa, 0xa2, 0xe4, + 0x59, 0x0d, 0xf5, 0xa0, 0xa5, 0x6a, 0x26, 0xd7, + 0x67, 0x29, 0xc3, 0x33, 0x38, 0xe2, 0x25, 0x89, + 0xf5, 0x71, 0xd9, 0x6a, 0xbd, 0x59, 0x08, 0x83, + 0x6d, 0x02, 0x7d, 0x77, 0x26, 0x3a, 0x9d, 0xc6, + 0x4c, 0xad, 0x78, 0x99, 0x0b, 0xfe, 0x1f, 0x42, + 0x46, 0x22, 0x77, 0xda, 0x72, 0x4d, 0xa3, 0x89, + 0xec, 0x16, 0xf2, 0xd5, 0xca, 0xb5, 0xae, 0x4b, + 0x80, 0x78, 0xc4, 0xad, 0xac, 0x5b, 0x6c, 0x78, + 0x3f, 0x1c, 0x34, 0x52, 0x75, 0x7a, 0x86, 0xa1, + 0x85, 0x83, 0x2f, 0x59, 0x55, 0x70, 0x93, 0x15, + 0x04, 0x7b, 0x59, 0x2b, 0x86, 0xad, 0x76, 0x58, + 0x88, 0xe1, 0xe4, 0x56, 0x51, 0x2b, 0xaf, 0xbf, + 0x6f, 0x95, 0x32, 0x3b, 0x4b, 0x0c, 0xe5, 0x5e, + 0xd3, 0xda, 0xea, 0x82, 0xaa, 0x10, 0xf2, 0xbb, + 0xa6, 0x0a, 0x82, 0x89, 0x2d, 0xf9, 0x75, 0xc5, + 0x39, 0x66, 0x74, 0xd2, 0xcc, 0xb9, 0xae, 0x95, + 0x6a, 0x9d, 0x58, 0x36, 0x00, 0xbe, 0xda, 0xee, + 0x16, 0xde, 0xe4, 0x89, 0x55, 0x2b, 0x53, 0x5a, + 0x65, 0xd2, 0xa0, 0x03, 0x36, 0x86, 0xd1, 0x05, + 0x32, 0x23, 0xfb, 0xae, 0x17, 0xa1, 0x64, 0x09, + 0x56, 0x97, 0x5f, 0x23, 0x71, 0x8a, 0x28, 0xd8, + 0x81, 0x59, 0x2c, 0x8b, 0xac, 0xd5, 0xe7, 0x8f, + 0xb8, 0x44, 0x99, 0x83, 0xe5, 0x9f, 0x1a, 0x22, + 0x47, 0x78, 0xef, 0x8f, 0xa9, 0xc3, 0x1f, 0x5d, + 0x19, 0x5c, 0x9e, 0x34, 0xc1, 0x79, 0x9e, 0xc5, + 0x18, 0xea, 0xdd, 0xa2, 0x1c, 0x05, 0x79, 0x5d, + 0xa2, 0x5d, 0xfb, 0xca, 0xd7, 0x24, 0x84, 0xc2, + 0x79, 0x3b, 0xc3, 0x78, 0x22, 0xf7, 0x5b, 0x78, + 0xbe, 0x94, 0xf1, 0x2f, 0xab, 0xbf, 0xe0, 0xfa, + 0xf4, 0xa7, 0x89, 0x7d, 0x5d, 0xff, 0x00, 0x07, + 0xd7, 0xa5, 0x3c, 0x4b, 0xea, 0xef, 0xf8, 0x3e, + 0xbd, 0x29, 0xe2, 0x5f, 0x57, 0x7f, 0xc1, 0xf5, + 0xe9, 0x4f, 0x12, 0xfa, 0xbb, 0xfe, 0x0f, 0xaf, + 0x4a, 0x78, 0x97, 0xd5, 0xdf, 0xf0, 0x7d, 0x7a, + 0x53, 0xc4, 0xbe, 0xae, 0xff, 0x00, 0x83, 0xeb, + 0xd2, 0x9e, 0x25, 0xf5, 0x77, 0xfc, 0x1f, 0x5e, + 0x94, 0xf1, 0x2f, 0xab, 0xbf, 0xe0, 0xfa, 0xf4, + 0xa7, 0x89, 0x7d, 0x5d, 0xff, 0x00, 0x07, 0xd7, + 0xa5, 0x3c, 0x4b, 0xea, 0xef, 0xf8, 0x3e, 0xbd, + 0x29, 0xe2, 0x5f, 0x57, 0x7f, 0xc1, 0xf5, 0xe9, + 0x4f, 0x12, 0xfa, 0xbb, 0xfe, 0x0f, 0xaf, 0x4a, + 0x78, 0x97, 0xd5, 0xdf, 0xf0, 0x7d, 0x7a, 0x53, + 0xc4, 0xbe, 0xae, 0xff, 0x00, 0x83, 0xeb, 0xd2, + 0x9e, 0x25, 0xf5, 0x77, 0xfc, 0x1f, 0x5e, 0x94, + 0xf1, 0x2f, 0xab, 0xbf, 0xe0, 0xfa, 0xf4, 0xa7, + 0x89, 0x7d, 0x5d, 0xff, 0x00, 0x07, 0xd7, 0xa5, + 0x3c, 0x4b, 0xea, 0xef, 0xf8, 0x3e, 0xbd, 0x29, + 0xe2, 0x5f, 0x57, 0x7f, 0xc1, 0xf5, 0x8a, 0x2a, + 0x9c, 0x4b, 0xc4, 0x4d, 0xb6, 0x39, 0x3c, 0x79, + 0x55, 0x53, 0x68, 0x72, 0xa9, 0xb6, 0x62, 0xda, + 0x66, 0xba, 0xd8, 0x5e, 0x09, 0x0e, 0x55, 0x9b, + 0xb9, 0x04, 0xcb, 0x9c, 0x36, 0x19, 0x99, 0xe6, + 0x1f, 0x2e, 0xb2, 0x5f, 0x87, 0xdc, 0xfd, 0xa1, + 0x9a, 0x77, 0xe0, 0x87, 0xfa, 0xe4, 0x6b, 0x0d, + 0xf8, 0xe1, 0x5f, 0xb1, 0xdd, 0xd0, 0x7b, 0xd1, + 0xa3, 0xf7, 0xa7, 0x4f, 0xfc, 0x65, 0x92, 0xfd, + 0xad, 0x9f, 0xdd, 0x42, 0x00, 0x32, 0x46, 0x53, + 0x02, 0x22, 0x31, 0x24, 0x44, 0x53, 0xdd, 0x02, + 0x31, 0x1d, 0xf3, 0x33, 0x3d, 0xd1, 0x11, 0xdf, + 0x3a, 0x5d, 0x4c, 0x8a, 0x30, 0xb6, 0x56, 0x9d, + 0xfa, 0x35, 0xb3, 0x47, 0x84, 0xb1, 0x35, 0xf7, + 0xdb, 0x7e, 0x9a, 0xef, 0x36, 0x5a, 0x9f, 0xb9, + 0xb8, 0xc7, 0x2c, 0x7f, 0x8b, 0xaf, 0x34, 0x70, + 0x47, 0xc5, 0xf8, 0x5b, 0xe5, 0x35, 0xe6, 0x8e, + 0x08, 0xf8, 0xbf, 0x0b, 0x7c, 0xa6, 0xbc, 0xd1, + 0xc1, 0x1f, 0x17, 0xe1, 0x6f, 0x94, 0xd7, 0x9a, + 0x38, 0x23, 0xe2, 0xfc, 0x2d, 0xf2, 0x9a, 0xf3, + 0x47, 0x04, 0x7c, 0x5f, 0x85, 0xbe, 0x53, 0x5e, + 0x68, 0xe0, 0x8f, 0x8b, 0xf0, 0xb7, 0xca, 0x6b, + 0xcd, 0x1c, 0x11, 0xf1, 0x7e, 0x16, 0xf9, 0x4d, + 0x79, 0xa3, 0x82, 0x3e, 0x2f, 0xc2, 0xdf, 0x29, + 0xaf, 0x34, 0x70, 0x47, 0xc5, 0xf8, 0x5b, 0xe5, + 0x35, 0xe6, 0x8e, 0x08, 0xf8, 0xbf, 0x0b, 0x7c, + 0xa6, 0xbc, 0xd1, 0xc1, 0x1f, 0x17, 0xe1, 0x6f, + 0x94, 0xd7, 0x9a, 0x38, 0x23, 0xe2, 0xfc, 0x2d, + 0xf2, 0x9a, 0xf3, 0x47, 0x04, 0x7c, 0x5f, 0x85, + 0xbe, 0x53, 0x5e, 0x68, 0xe0, 0x8f, 0x8b, 0xf0, + 0xb7, 0xca, 0x6b, 0xcd, 0x1c, 0x11, 0xf1, 0x7e, + 0x16, 0xf9, 0x4d, 0x79, 0xa3, 0x82, 0x3e, 0x2f, + 0xc2, 0xdf, 0x29, 0xaf, 0x34, 0x70, 0x47, 0xc5, + 0xf8, 0x5b, 0xe5, 0x35, 0xe6, 0x8e, 0x08, 0xf8, + 0xbf, 0x0b, 0x7c, 0xa6, 0xbc, 0xd1, 0xc1, 0x1f, + 0x17, 0xe1, 0x6f, 0x94, 0xd0, 0xb1, 0x38, 0xee, + 0x0c, 0x43, 0x42, 0x79, 0x96, 0xe4, 0xab, 0x85, + 0x81, 0xab, 0x28, 0xf2, 0x12, 0xcf, 0x9f, 0xc5, + 0x28, 0xfb, 0x93, 0xa9, 0xbb, 0x6e, 0x25, 0xd0, + 0xf2, 0xef, 0xb4, 0x0d, 0x55, 0xa5, 0x11, 0x77, + 0x77, 0x4b, 0xab, 0x9b, 0x56, 0x33, 0xb6, 0xd0, + 0x21, 0xcd, 0x1d, 0xd1, 0xb0, 0xc6, 0xc3, 0xdd, + 0xae, 0x0b, 0xff, 0x00, 0x31, 0xc4, 0x3f, 0xb7, + 0xd4, 0xfe, 0xd5, 0x8b, 0x1a, 0x87, 0xc3, 0x75, + 0x92, 0x7c, 0x35, 0x85, 0x7b, 0x14, 0xfc, 0x7e, + 0x02, 0x6e, 0xb1, 0xce, 0xc7, 0x01, 0xbd, 0xa4, + 0x76, 0x71, 0xec, 0xb6, 0x6d, 0x79, 0xee, 0x50, + 0xc9, 0x6f, 0x39, 0x14, 0xf3, 0x0c, 0xc4, 0xeb, + 0x0d, 0x16, 0x6b, 0xe0, 0x13, 0x81, 0x3e, 0x18, + 0xc5, 0xbf, 0x21, 0x2d, 0xad, 0x80, 0x5d, 0xc3, + 0x96, 0xe1, 0xf9, 0xec, 0x34, 0x19, 0x0b, 0x8c, + 0xe4, 0xdd, 0x6b, 0xa6, 0x09, 0x06, 0xb2, 0xe7, + 0x3b, 0x12, 0x13, 0xbc, 0x84, 0x96, 0xb1, 0x83, + 0x5d, 0x2a, 0x48, 0x9f, 0x0d, 0x70, 0xe3, 0xcc, + 0x54, 0xb0, 0x54, 0x1b, 0x9d, 0x8a, 0xae, 0xc7, + 0x38, 0xe0, 0x22, 0x20, 0x9a, 0xd3, 0x99, 0x36, + 0xb2, 0x7c, 0x76, 0x1c, 0xc9, 0x14, 0xcc, 0xff, + 0x00, 0x69, 0xc0, 0x7e, 0x3c, 0xc4, 0x7f, 0x28, + 0xd6, 0xd6, 0x4b, 0xf0, 0xfb, 0x9f, 0xb4, 0x33, + 0x4e, 0xfc, 0x10, 0xff, 0x00, 0x5c, 0x8d, 0x61, + 0xbf, 0x1c, 0x2b, 0xf6, 0x3b, 0xba, 0x0f, 0x7a, + 0x34, 0x7e, 0xf4, 0xe9, 0xff, 0x00, 0x8c, 0xf2, + 0x5f, 0xb5, 0xb3, 0xfb, 0xaa, 0xee, 0x49, 0x1e, + 0x2d, 0xc7, 0x5b, 0xaf, 0x8a, 0xac, 0xe8, 0xf7, + 0x75, 0x61, 0xe9, 0xb0, 0xfb, 0x0d, 0x54, 0xef, + 0xe2, 0xb4, 0xd2, 0x89, 0x50, 0x9c, 0x78, 0xcb, + 0x82, 0x2e, 0x59, 0xf1, 0xa7, 0x5b, 0xcc, 0xef, + 0x33, 0xdf, 0x33, 0x3d, 0xf3, 0x33, 0x3e, 0x59, + 0x9f, 0xe3, 0xfd, 0xda, 0xab, 0x56, 0x5c, 0xb5, + 0xef, 0x38, 0x5a, 0x94, 0x3b, 0x73, 0x19, 0x97, + 0x90, 0x63, 0x7d, 0xa3, 0x79, 0xfe, 0x39, 0xd1, + 0xda, 0xbb, 0x8a, 0xb4, 0x8a, 0xeb, 0xdb, 0xa8, + 0xd9, 0x80, 0x31, 0x0d, 0xe7, 0x68, 0x93, 0xe9, + 0x99, 0xc8, 0x8e, 0xfd, 0xdc, 0xd3, 0x1c, 0xb1, + 0xdd, 0xbc, 0xf7, 0xfd, 0x4a, 0xb6, 0xdc, 0x92, + 0x5d, 0x7b, 0xbd, 0x5e, 0xc8, 0xd9, 0xe5, 0xe5, + 0x7f, 0x40, 0x84, 0x5d, 0xc9, 0xb4, 0xcc, 0xfb, + 0x59, 0x10, 0xc4, 0xf3, 0x44, 0x79, 0x7b, 0xbf, + 0xb5, 0xd4, 0xa7, 0xbc, 0x9d, 0x3c, 0xad, 0x84, + 0xe3, 0xae, 0xd6, 0x92, 0x2e, 0x9b, 0x57, 0x6d, + 0x91, 0x5e, 0x0f, 0x68, 0xdb, 0x66, 0xa2, 0x59, + 0x0c, 0x53, 0x23, 0xc7, 0x19, 0x8d, 0xa2, 0x7b, + 0xe7, 0x4e, 0x56, 0xfb, 0xf4, 0xda, 0xc5, 0xef, + 0xf7, 0xf9, 0x0a, 0x47, 0x7f, 0xfa, 0xb5, 0xc2, + 0x65, 0x87, 0xc6, 0xbe, 0xf8, 0xd5, 0x56, 0x70, + 0x6c, 0x4a, 0x65, 0x51, 0xd2, 0x97, 0x5e, 0x44, + 0xaa, 0x0b, 0xa8, 0xc0, 0xf7, 0x7d, 0x26, 0x6d, + 0xb6, 0xfe, 0xe6, 0x77, 0xd7, 0xa3, 0xb7, 0x7e, + 0x15, 0x5f, 0x9c, 0x6b, 0xd1, 0xdb, 0xbf, 0x0a, + 0xaf, 0xce, 0x35, 0xe8, 0xed, 0xdf, 0x85, 0x57, + 0xe7, 0x1a, 0xf4, 0x76, 0xef, 0xc2, 0xab, 0xf3, + 0x8d, 0x7a, 0x3b, 0x77, 0xe1, 0x55, 0xf9, 0xc6, + 0xbd, 0x1d, 0xbb, 0xf0, 0xaa, 0xfc, 0xe3, 0x5e, + 0x8e, 0xdd, 0xf8, 0x55, 0x7e, 0x71, 0xaf, 0x47, + 0x6e, 0xfc, 0x2a, 0xbf, 0x38, 0xd7, 0xa3, 0xb7, + 0x7e, 0x15, 0x5f, 0x9c, 0x6a, 0x99, 0x5b, 0xe0, + 0x9e, 0x22, 0xed, 0x15, 0x31, 0x74, 0x31, 0xb2, + 0x75, 0x73, 0xf8, 0x84, 0xa1, 0x9d, 0x82, 0xb0, + 0xd7, 0x07, 0x74, 0x1d, 0x84, 0xb4, 0xc0, 0xea, + 0x72, 0xf3, 0x92, 0xfb, 0x51, 0xed, 0xe4, 0x83, + 0xfb, 0xba, 0xa8, 0xcf, 0xad, 0x7b, 0xc8, 0xec, + 0xb8, 0xbc, 0x6e, 0x37, 0x97, 0xaf, 0x55, 0xbc, + 0xfe, 0x0f, 0xaa, 0x35, 0xba, 0xdb, 0xf3, 0xab, + 0x97, 0xad, 0xcb, 0xcf, 0xd3, 0xda, 0x7a, 0x7b, + 0xf2, 0xf3, 0x9f, 0xba, 0xd5, 0x47, 0x7d, 0x6b, + 0x5d, 0x47, 0x65, 0xc5, 0x62, 0xf1, 0x9c, 0xbd, + 0x7a, 0xad, 0xe7, 0xf0, 0x6d, 0x35, 0xd4, 0xeb, + 0xef, 0xce, 0xbe, 0x5e, 0xb7, 0x4f, 0xa9, 0xd2, + 0xd8, 0xba, 0x7b, 0xf2, 0xf5, 0x19, 0xb7, 0x34, + 0xfa, 0x3b, 0x77, 0xe1, 0x55, 0xf9, 0xc6, 0xbd, + 0x1d, 0xbb, 0xf0, 0xaa, 0xfc, 0xe3, 0x5e, 0x8e, + 0xdd, 0xf8, 0x55, 0x7e, 0x71, 0xaf, 0x47, 0x6e, + 0xfc, 0x2a, 0xbf, 0x38, 0xd7, 0xa3, 0xb7, 0x7e, + 0x15, 0x5f, 0x9c, 0x6b, 0xd1, 0xdb, 0xbf, 0x0a, + 0xaf, 0xce, 0x35, 0xe8, 0xed, 0xdf, 0x85, 0x57, + 0xe7, 0x1a, 0xf4, 0x76, 0xef, 0xc2, 0xab, 0xf3, + 0x8d, 0x61, 0xac, 0x3f, 0x03, 0x71, 0x69, 0xaf, + 0x96, 0xc6, 0x3d, 0xcc, 0x92, 0xad, 0xb2, 0xd4, + 0x9b, 0xa8, 0x63, 0x4e, 0x76, 0x7c, 0xce, 0xc0, + 0x03, 0x25, 0x3b, 0x44, 0xce, 0xd1, 0xdd, 0x1a, + 0xc9, 0x7e, 0x1f, 0x73, 0xf6, 0x86, 0x69, 0xbf, + 0x82, 0x9f, 0xeb, 0x91, 0xac, 0x37, 0xe3, 0x85, + 0x7e, 0xc7, 0x77, 0x41, 0xef, 0x46, 0x8f, 0xde, + 0x9d, 0x3f, 0xf1, 0x9e, 0x4b, 0xf6, 0xa3, 0xfe, + 0xea, 0x89, 0xff, 0x00, 0xf9, 0x96, 0x94, 0x7f, + 0xd9, 0x59, 0x49, 0xff, 0x00, 0xf0, 0x6b, 0xcb, + 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, + 0x2e, 0xbc, 0xba, 0xc1, 0x0e, 0xfe, 0x5c, 0x95, + 0x78, 0xff, 0x00, 0xaf, 0x59, 0xac, 0x3d, 0x9b, + 0xb6, 0xed, 0x62, 0xdc, 0xfc, 0xf5, 0x6b, 0x35, + 0x2c, 0x59, 0x6b, 0xaa, 0xae, 0xa2, 0xfb, 0x47, + 0xb8, 0x5b, 0x48, 0xd6, 0x91, 0x5e, 0xc2, 0x31, + 0xd3, 0x80, 0xf1, 0x7c, 0x4f, 0x73, 0x3b, 0x6b, + 0x0c, 0x39, 0x70, 0xa0, 0x07, 0x9b, 0xa4, 0xeb, + 0x96, 0x32, 0xf7, 0x33, 0xb5, 0x71, 0xf6, 0x28, + 0x73, 0xef, 0x15, 0x3b, 0x1d, 0x27, 0xb0, 0x26, + 0xc8, 0x47, 0x2c, 0x41, 0x96, 0xd0, 0x22, 0x5b, + 0xef, 0xd6, 0xe6, 0x20, 0x0e, 0x0a, 0x5e, 0x63, + 0x16, 0x59, 0xae, 0xd5, 0x6b, 0x29, 0x41, 0x06, + 0xbb, 0x24, 0xa4, 0x21, 0x65, 0x90, 0x4a, 0xec, + 0x59, 0x1e, 0x9e, 0xfd, 0xa5, 0xc5, 0x3d, 0x9e, + 0x6b, 0x2b, 0x98, 0x44, 0xd7, 0xd6, 0x98, 0x70, + 0xf7, 0x73, 0x71, 0x7f, 0x4d, 0x7d, 0x46, 0xe2, + 0xb3, 0xf8, 0xfa, 0xd4, 0xec, 0x19, 0x11, 0x35, + 0x35, 0x2d, 0x25, 0x2e, 0x94, 0xcc, 0xc4, 0xf2, + 0xce, 0xdd, 0x4e, 0x49, 0x23, 0x19, 0x29, 0xf2, + 0xcc, 0xef, 0xa7, 0x58, 0xb3, 0x47, 0x9e, 0x8e, + 0x2b, 0x83, 0x2a, 0xe7, 0x1d, 0x8f, 0x5b, 0x0c, + 0x3b, 0x65, 0xa3, 0x0e, 0x59, 0xea, 0x14, 0x94, + 0x98, 0x8c, 0xcc, 0xc9, 0x1c, 0x8f, 0x8a, 0x13, + 0x03, 0x33, 0x1b, 0x78, 0xb3, 0x81, 0xce, 0x62, + 0x71, 0x51, 0x8a, 0x3c, 0x8d, 0xfb, 0x8a, 0x72, + 0xfa, 0xed, 0xb1, 0x31, 0xd0, 0x86, 0x0c, 0x80, + 0xb4, 0xf9, 0x60, 0xd5, 0xce, 0x1c, 0xc1, 0x3d, + 0x25, 0xce, 0xdd, 0xdb, 0x6b, 0xcb, 0xaf, 0x2e, + 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, + 0xba, 0xc0, 0x46, 0xfe, 0x5c, 0xde, 0x26, 0x3f, + 0x2d, 0xfa, 0xfa, 0xb7, 0xf8, 0x4b, 0xff, 0x00, + 0x5a, 0x5a, 0xe0, 0xbd, 0xe3, 0xfe, 0x43, 0x88, + 0x7f, 0x6f, 0xa9, 0xaf, 0x24, 0x7e, 0x4d, 0x79, + 0x23, 0xf2, 0x6b, 0xc9, 0x1f, 0x93, 0x5e, 0x48, + 0xfc, 0x9a, 0xf2, 0x47, 0xe4, 0xd3, 0xab, 0xc8, + 0x3d, 0xb1, 0x5a, 0x85, 0xbc, 0x87, 0x64, 0xa2, + 0x21, 0x37, 0xef, 0xf6, 0x41, 0x89, 0xec, 0x54, + 0x79, 0xd6, 0xd1, 0xed, 0x0e, 0x92, 0xdf, 0x9b, + 0xa3, 0x62, 0x54, 0x90, 0x6b, 0x46, 0xbd, 0x82, + 0x08, 0x49, 0xf6, 0xdc, 0x4f, 0x5c, 0xeb, 0x2a, + 0xb0, 0xbb, 0x25, 0x56, 0xdc, 0xa9, 0x97, 0x30, + 0xcd, 0xed, 0x51, 0x47, 0xa5, 0x65, 0xe0, 0x9a, + 0x8b, 0xb6, 0xb7, 0x3e, 0x56, 0x68, 0x7a, 0x6a, + 0x22, 0x44, 0x5e, 0x09, 0x7a, 0x16, 0xc5, 0xc9, + 0xb1, 0xa4, 0x58, 0xe2, 0x1e, 0x8c, 0x19, 0x10, + 0x11, 0xd6, 0x16, 0x94, 0x2a, 0xb8, 0x5a, 0x74, + 0xa5, 0x24, 0xe8, 0x75, 0x9e, 0xcf, 0x5c, 0xc5, + 0xb6, 0x7b, 0x38, 0x37, 0xb3, 0x06, 0xfd, 0xa3, + 0xa7, 0xca, 0x5b, 0x56, 0xa6, 0x15, 0x66, 0xed, + 0x8b, 0x53, 0x53, 0xa4, 0xfa, 0xb6, 0x2a, 0x3a, + 0xb9, 0x9d, 0xac, 0x6d, 0x6c, 0x81, 0xd5, 0xe8, + 0x2f, 0x9d, 0xab, 0x65, 0x68, 0x79, 0x49, 0x5a, + 0x7b, 0xd6, 0xa6, 0x57, 0x08, 0xb3, 0x09, 0x5a, + 0x4a, 0x19, 0x39, 0x26, 0xba, 0xbb, 0xbb, 0x7d, + 0x77, 0x60, 0xc3, 0x1e, 0x84, 0x4d, 0x77, 0xa2, + 0xf0, 0x65, 0xdf, 0x65, 0x30, 0x6b, 0x6a, 0x7a, + 0xcb, 0xb5, 0x1c, 0xc8, 0x80, 0x51, 0xd6, 0xb1, + 0xc9, 0x0d, 0xea, 0x2d, 0x9b, 0x98, 0xc8, 0x8c, + 0xa6, 0xea, 0x48, 0xa1, 0x0e, 0x95, 0xd9, 0x4d, + 0x77, 0xa0, 0x19, 0x3d, 0x32, 0xd9, 0x80, 0xab, + 0x50, 0xab, 0xa8, 0x12, 0xee, 0x98, 0x86, 0xf4, + 0xac, 0x2e, 0x27, 0xbf, 0x94, 0xe3, 0xbb, 0x58, + 0x75, 0xd0, 0xc6, 0xe6, 0xdf, 0x6b, 0x2f, 0x8f, + 0x1c, 0x82, 0xd6, 0x79, 0xac, 0x6c, 0xc2, 0xa3, + 0xb4, 0x5b, 0x49, 0xa3, 0x68, 0xe1, 0xc4, 0xf5, + 0x67, 0x92, 0xa4, 0xb2, 0x1d, 0xd4, 0x54, 0x47, + 0x36, 0xdd, 0x12, 0xe5, 0xf1, 0x85, 0xde, 0x0d, + 0x98, 0x51, 0x21, 0x16, 0xb9, 0xc9, 0xd4, 0xc7, + 0x92, 0x9d, 0xa5, 0xf5, 0x51, 0x75, 0xf0, 0x4f, + 0x19, 0xaf, 0x49, 0x81, 0xfd, 0xfa, 0xf8, 0x55, + 0x51, 0x28, 0x95, 0x9b, 0x45, 0xa3, 0x21, 0x16, + 0x6b, 0x46, 0x35, 0x82, 0xfa, 0x6e, 0x0a, 0xd6, + 0x01, 0xb2, 0x84, 0x40, 0xd9, 0x6e, 0xf2, 0x9a, + 0xe0, 0xc7, 0xb1, 0x6b, 0x7d, 0x8b, 0x03, 0x12, + 0x75, 0x91, 0x5c, 0xda, 0xdb, 0x2b, 0xf6, 0xda, + 0xe2, 0xc5, 0xf8, 0xda, 0x6e, 0x4c, 0xb1, 0xed, + 0x1a, 0x09, 0x6c, 0xa1, 0xb6, 0x0e, 0x00, 0x20, + 0x1c, 0x2c, 0x85, 0x1a, 0xb9, 0x08, 0xa1, 0xb2, + 0xc5, 0xb0, 0x84, 0x5a, 0x30, 0xb9, 0x95, 0x6f, + 0x12, 0xce, 0x51, 0xef, 0xd7, 0x92, 0x3f, 0x26, + 0xbc, 0x91, 0xf9, 0x35, 0xe4, 0x8f, 0xc9, 0xaf, + 0x24, 0x7e, 0x4d, 0x79, 0x23, 0xf2, 0x6b, 0x01, + 0xdd, 0x1e, 0x7c, 0xc4, 0x7d, 0xcf, 0xfe, 0xd1, + 0xad, 0xac, 0x97, 0xe1, 0xf7, 0x3f, 0x68, 0x66, + 0x9b, 0xf8, 0x29, 0xfe, 0xb9, 0x1a, 0xc3, 0x7e, + 0x38, 0x57, 0xec, 0x77, 0x74, 0x1e, 0xf4, 0x68, + 0xfd, 0xe9, 0xd3, 0xff, 0x00, 0x19, 0xe4, 0xbf, + 0x6a, 0x3f, 0xee, 0xac, 0x80, 0xd5, 0x19, 0x63, + 0x71, 0x59, 0x3a, 0x59, 0x97, 0x2c, 0x7d, 0xd9, + 0x51, 0x0a, 0xd7, 0x29, 0x58, 0x60, 0x0f, 0xba, + 0x28, 0xaf, 0x36, 0x96, 0xd7, 0x6d, 0x1e, 0x28, + 0x77, 0xff, 0x00, 0x16, 0xbc, 0xba, 0xf2, 0xeb, + 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, + 0xaa, 0x59, 0x34, 0x0a, 0x98, 0xea, 0x36, 0x02, + 0xc2, 0xd6, 0xfe, 0x79, 0x49, 0x1a, 0xfc, 0x90, + 0xc8, 0x59, 0xac, 0xe4, 0x7e, 0xff, 0x00, 0x29, + 0x8c, 0xff, 0x00, 0x1e, 0xaf, 0xae, 0xbe, 0x27, + 0x87, 0x71, 0x36, 0x32, 0x6b, 0x62, 0xae, 0xe4, + 0x71, 0x78, 0xe2, 0xaf, 0x91, 0x7a, 0x9f, 0x3c, + 0xd6, 0x00, 0xec, 0xb2, 0xc3, 0xa6, 0x7a, 0xf3, + 0xde, 0xc2, 0x98, 0x93, 0xdf, 0xc6, 0x82, 0x83, + 0xf1, 0xb4, 0x9c, 0x6a, 0x11, 0x8b, 0x71, 0x53, + 0x0b, 0x2b, 0xc6, 0xe4, 0xad, 0x53, 0xea, 0xe4, + 0xb1, 0x8b, 0xb7, 0xf6, 0x60, 0xa5, 0x63, 0xaa, + 0x22, 0xb8, 0x99, 0xde, 0x7c, 0x65, 0x1c, 0xf7, + 0xf2, 0x94, 0x90, 0x08, 0x08, 0xe3, 0xb1, 0xc3, + 0x8e, 0xc1, 0xdd, 0x46, 0x30, 0x9a, 0xea, 0xc5, + 0x90, 0xa8, 0xeb, 0x2e, 0xed, 0x6c, 0x74, 0xb8, + 0x2e, 0xf5, 0x26, 0xd0, 0xc8, 0x5a, 0x47, 0x3b, + 0x41, 0x4c, 0x47, 0x4b, 0xc4, 0x71, 0xf5, 0x20, + 0xcb, 0x94, 0x87, 0x32, 0x6e, 0x5e, 0x3b, 0x2b, + 0x19, 0xd6, 0xc5, 0x9b, 0xa9, 0xca, 0xd3, 0x1b, + 0x35, 0xfb, 0x50, 0x7d, 0x8e, 0xc2, 0x93, 0x04, + 0xb5, 0x89, 0x2e, 0x39, 0x44, 0x00, 0xa0, 0xd3, + 0x02, 0xb5, 0xfb, 0x5c, 0xf2, 0x0e, 0xbc, 0x21, + 0x6b, 0x2b, 0x80, 0xc4, 0x5d, 0x9c, 0x2f, 0x83, + 0x7f, 0xb3, 0x09, 0x68, 0xe1, 0x32, 0xc0, 0xb9, + 0x8e, 0x7a, 0xf9, 0x36, 0x76, 0x8f, 0xde, 0xa4, + 0xe0, 0x26, 0x58, 0xea, 0x86, 0xca, 0x37, 0x24, + 0x2b, 0x8a, 0x82, 0x1b, 0xae, 0x1e, 0xc3, 0x8e, + 0x4b, 0x01, 0x7f, 0x21, 0x5a, 0xd5, 0xdb, 0x96, + 0x43, 0x86, 0x39, 0x67, 0x0d, 0x46, 0xb9, 0xc4, + 0xae, 0xad, 0x6a, 0xf2, 0x1b, 0x8f, 0x90, 0xbd, + 0xcc, 0xcf, 0x57, 0xc4, 0x23, 0x60, 0xc7, 0x38, + 0x49, 0x79, 0x75, 0xe5, 0xd7, 0x97, 0x5e, 0x5d, + 0x79, 0x75, 0xe5, 0xd7, 0x97, 0x58, 0x25, 0xd7, + 0x1d, 0xc6, 0xa6, 0x46, 0xa6, 0x4a, 0xdb, 0x26, + 0x76, 0x5d, 0x7a, 0x38, 0xeb, 0x0a, 0xb5, 0x69, + 0xed, 0x39, 0xee, 0x01, 0x85, 0xaf, 0x94, 0x66, + 0x7b, 0xa5, 0xa6, 0xb0, 0xfe, 0x16, 0x9e, 0xc1, + 0xf7, 0x2c, 0x73, 0x4c, 0x7d, 0xe2, 0x39, 0x28, + 0xff, 0x00, 0xaa, 0x75, 0xc1, 0x7f, 0xe6, 0x38, + 0x87, 0xf6, 0xfa, 0x9f, 0xba, 0x67, 0x5b, 0x20, + 0xec, 0x55, 0x95, 0xa7, 0xab, 0x8b, 0xbc, 0xb2, + 0x30, 0x5a, 0x72, 0x4a, 0x6a, 0x89, 0x5d, 0xa5, + 0x89, 0x5b, 0x2c, 0x25, 0x44, 0xb8, 0x74, 0x03, + 0xd1, 0xca, 0x69, 0xb1, 0xd1, 0x32, 0x9e, 0x9f, + 0x3e, 0xb1, 0x55, 0x32, 0x96, 0x95, 0x90, 0xb7, + 0x91, 0xc6, 0xe4, 0xf1, 0x9c, 0x43, 0x92, 0xac, + 0x1d, 0xce, 0xad, 0x31, 0x16, 0xb1, 0x64, 0xe3, + 0x85, 0x26, 0x2d, 0xd9, 0xc7, 0x95, 0x34, 0xb1, + 0x96, 0xa4, 0x67, 0x92, 0xbc, 0x02, 0x48, 0xe7, + 0xa3, 0x3c, 0xae, 0x7e, 0x4a, 0xe5, 0x16, 0x21, + 0xd6, 0xf3, 0x76, 0x4d, 0x4c, 0x55, 0xba, 0xb9, + 0xac, 0x54, 0xdd, 0x83, 0x21, 0x2c, 0x2d, 0xea, + 0x46, 0x25, 0x63, 0xb6, 0x78, 0x81, 0xd1, 0x76, + 0xc8, 0x51, 0xf5, 0x01, 0x89, 0x85, 0x9c, 0xba, + 0x42, 0x23, 0x20, 0x9f, 0xec, 0x85, 0x22, 0xab, + 0xcf, 0x02, 0xee, 0x7c, 0x79, 0xd8, 0xe0, 0xba, + 0x58, 0x4e, 0xa5, 0x98, 0xe9, 0x78, 0xbd, 0x3b, + 0xc9, 0x62, 0x1b, 0xd3, 0xea, 0xec, 0x82, 0x26, + 0x8c, 0x14, 0x79, 0x6c, 0x57, 0x66, 0x42, 0x72, + 0x2e, 0x60, 0xe2, 0x15, 0x60, 0x39, 0x9c, 0xd4, + 0x57, 0x53, 0x6e, 0x64, 0xe6, 0xfc, 0x60, 0x8a, + 0x56, 0xa9, 0x43, 0x6a, 0x52, 0xb4, 0x2d, 0x37, + 0x79, 0x3b, 0x7b, 0x9c, 0x75, 0xe4, 0xbd, 0xd4, + 0x59, 0x42, 0x2c, 0x05, 0xb4, 0x29, 0xcc, 0x04, + 0xd9, 0x5f, 0x37, 0x23, 0xd5, 0x05, 0xed, 0x6d, + 0x18, 0x38, 0x13, 0x8e, 0x71, 0xda, 0x66, 0x08, + 0x60, 0x86, 0x77, 0x89, 0xf2, 0x6b, 0x84, 0x5a, + 0x56, 0x42, 0x17, 0x8f, 0xc2, 0x95, 0x6b, 0x85, + 0xb1, 0xec, 0x87, 0xf5, 0xf2, 0xc5, 0xd3, 0x2f, + 0x13, 0x79, 0x9e, 0x57, 0xa6, 0x7c, 0x4e, 0x68, + 0xf1, 0xe3, 0xbf, 0xcb, 0xb6, 0x68, 0x46, 0xd8, + 0x94, 0xbf, 0x82, 0xf8, 0x5b, 0x17, 0x5a, 0x36, + 0x67, 0x8f, 0x6e, 0x94, 0xe0, 0xca, 0xe5, 0x51, + 0xf1, 0x3b, 0xa5, 0x25, 0x5e, 0xd4, 0x97, 0x36, + 0xc1, 0x3c, 0x85, 0xca, 0x45, 0xb8, 0xef, 0xd9, + 0xd1, 0x73, 0x12, 0x04, 0x9b, 0x98, 0x9b, 0x1d, + 0x6c, 0x9d, 0x67, 0x35, 0x26, 0x9f, 0xad, 0xdc, + 0x45, 0x17, 0xb6, 0xbf, 0x2a, 0xb9, 0xba, 0xf4, + 0x2c, 0xd1, 0x6a, 0xcd, 0x33, 0xb4, 0xba, 0x0e, + 0x25, 0x33, 0x31, 0x1a, 0xab, 0x31, 0x6e, 0x2d, + 0x3f, 0xc2, 0x79, 0xeb, 0x4f, 0x2e, 0xcf, 0xd9, + 0x39, 0xbb, 0x6d, 0xa4, 0x1a, 0xec, 0xcd, 0x51, + 0x26, 0x2a, 0xb9, 0x5a, 0x10, 0xea, 0x4a, 0x96, + 0xd6, 0xf4, 0xfd, 0xc4, 0x99, 0x6d, 0x13, 0x3f, + 0xb9, 0xc0, 0x7e, 0x3c, 0xc4, 0x7f, 0x28, 0xd6, + 0xd6, 0x4b, 0xf0, 0xfb, 0x9f, 0xb4, 0x33, 0x4d, + 0xfc, 0x14, 0xff, 0x00, 0x5c, 0x8d, 0x61, 0xbf, + 0x1c, 0x2b, 0xf6, 0x3b, 0xba, 0x0f, 0x7a, 0x34, + 0x7e, 0xf4, 0xe9, 0xff, 0x00, 0x8c, 0xf2, 0x5f, + 0xb5, 0x33, 0xfb, 0xaa, 0xb1, 0xa8, 0xa4, 0x66, + 0x5a, 0x01, 0x3f, 0x78, 0x81, 0x85, 0x00, 0x60, + 0x51, 0x3d, 0xc4, 0x26, 0x33, 0x30, 0x43, 0x31, + 0x31, 0x31, 0xac, 0xdd, 0x5f, 0xac, 0xbe, 0x15, + 0x31, 0xa9, 0x97, 0xc9, 0xd4, 0x03, 0xe8, 0x65, + 0x90, 0x44, 0x15, 0xae, 0xb9, 0x20, 0x46, 0xba, + 0x79, 0x7a, 0xd5, 0xe0, 0xe4, 0x02, 0x39, 0xba, + 0x49, 0x58, 0x6f, 0xbf, 0x28, 0x0c, 0x77, 0x6b, + 0xd0, 0x9e, 0x16, 0xfc, 0x99, 0xff, 0x00, 0xa7, + 0xb5, 0xe8, 0x4f, 0x0b, 0x7e, 0x4c, 0xff, 0x00, + 0xd3, 0xda, 0xf4, 0x27, 0x85, 0xbf, 0x26, 0x7f, + 0xe9, 0xed, 0x7a, 0x13, 0xc2, 0xdf, 0x93, 0x3f, + 0xf4, 0xf6, 0xbc, 0x29, 0x63, 0x86, 0xb8, 0x2e, + 0x95, 0x7e, 0xdc, 0x58, 0xf0, 0x87, 0x27, 0x8b, + 0x5a, 0xc3, 0x78, 0x57, 0x0b, 0x25, 0x30, 0x35, + 0x32, 0x8f, 0x88, 0x0e, 0x99, 0xc7, 0x79, 0x14, + 0x4f, 0x36, 0xf1, 0xb7, 0xdd, 0xd4, 0x21, 0x9c, + 0x1d, 0xc1, 0xef, 0x16, 0x22, 0xbd, 0xa4, 0x58, + 0x47, 0xd7, 0x17, 0x46, 0xc5, 0x6b, 0x4a, 0x17, + 0x21, 0xa1, 0xd4, 0xcd, 0xad, 0xa3, 0xcc, 0x05, + 0xde, 0x0d, 0x5a, 0xd8, 0x05, 0x12, 0x24, 0x31, + 0x31, 0xaf, 0x42, 0xb8, 0x57, 0xfe, 0xdf, 0xfa, + 0x7b, 0x58, 0xfb, 0x67, 0xc1, 0x9c, 0x23, 0x21, + 0x91, 0x4b, 0x9e, 0xa1, 0x1f, 0xae, 0x2e, 0x60, + 0x14, 0x59, 0x6d, 0x52, 0x86, 0xef, 0x9c, 0x88, + 0xde, 0x4d, 0x52, 0x51, 0xc9, 0x27, 0x1c, 0xb3, + 0x1b, 0xcc, 0x4e, 0xf1, 0x1d, 0x0b, 0x3c, 0x17, + 0xc2, 0x41, 0x68, 0x79, 0x25, 0xb5, 0xa3, 0xeb, + 0x86, 0x4d, 0x40, 0xda, 0xe9, 0xb0, 0x93, 0x23, + 0x8c, 0xe7, 0x46, 0x7a, 0x80, 0xed, 0xb9, 0x41, + 0x84, 0x60, 0x40, 0x5c, 0xf0, 0x3e, 0x2c, 0x97, + 0xa1, 0x5c, 0x2b, 0xff, 0x00, 0x6f, 0xfd, 0x3d, + 0xaf, 0x42, 0xb8, 0x57, 0xfe, 0xdf, 0xfa, 0x7b, + 0x55, 0xb1, 0xe8, 0xe0, 0xce, 0x11, 0x5b, 0x6c, + 0x91, 0x88, 0x1b, 0xbe, 0xb8, 0xa1, 0x63, 0xc8, + 0xa6, 0x3a, 0x79, 0xb9, 0x33, 0x66, 0x5e, 0xe5, + 0x73, 0x11, 0xb0, 0xcf, 0x7e, 0xdf, 0x73, 0xbf, + 0x45, 0x95, 0xf0, 0x1f, 0x03, 0x82, 0x16, 0xfa, + 0xf5, 0x5a, 0x05, 0x5b, 0x8d, 0x65, 0xa1, 0x66, + 0xca, 0x1d, 0x61, 0x6a, 0xd8, 0x6f, 0x10, 0x96, + 0xc2, 0x86, 0xc1, 0x30, 0x0c, 0x97, 0x05, 0x11, + 0xe3, 0x4c, 0x4c, 0x4e, 0x97, 0xc4, 0x13, 0xc1, + 0x9c, 0x1f, 0xd9, 0x59, 0x72, 0x6a, 0xc2, 0x37, + 0xe2, 0x2e, 0xd5, 0x03, 0xe3, 0x8c, 0x5b, 0x20, + 0xf0, 0xdf, 0x4e, 0x2b, 0x13, 0xd4, 0xca, 0xd0, + 0x5d, 0x4e, 0x7e, 0xb0, 0xfb, 0x8e, 0x59, 0x82, + 0x9a, 0x75, 0x9b, 0xc3, 0x3c, 0x0f, 0x57, 0x21, + 0x91, 0x14, 0x9d, 0x2c, 0x7b, 0xfe, 0xba, 0x7a, + 0xac, 0x8b, 0x50, 0x33, 0x4a, 0x18, 0xe5, 0xe5, + 0x59, 0x52, 0xb1, 0x5c, 0xe6, 0x1e, 0x80, 0xd8, + 0x7a, 0xe7, 0x63, 0x59, 0xb7, 0xa6, 0x06, 0x33, + 0xa2, 0x59, 0xf0, 0x3f, 0x0b, 0x81, 0x81, 0x10, + 0x18, 0x10, 0xf1, 0x04, 0x10, 0x18, 0x4f, 0x29, + 0x09, 0x47, 0x87, 0xbb, 0xa4, 0x4a, 0x26, 0x26, + 0x3e, 0xfe, 0xbd, 0x09, 0xe1, 0x6f, 0xc9, 0x9f, + 0xfa, 0x7b, 0x5e, 0x84, 0xf0, 0xb7, 0xe4, 0xcf, + 0xfd, 0x3d, 0xaf, 0x42, 0x78, 0x5b, 0xf2, 0x67, + 0xfe, 0x9e, 0xd7, 0xa1, 0x3c, 0x2d, 0xf9, 0x33, + 0xff, 0x00, 0x4f, 0x6b, 0x38, 0x14, 0xf1, 0x18, + 0x9c, 0x20, 0x2e, 0xde, 0x25, 0x47, 0x18, 0x94, + 0x3d, 0x47, 0x65, 0x76, 0x17, 0x93, 0x33, 0x1b, + 0x4f, 0xb5, 0x66, 0xdd, 0x97, 0x0f, 0x35, 0x75, + 0xf2, 0x04, 0xba, 0x16, 0x3e, 0x36, 0xc3, 0xe3, + 0x9e, 0xfa, 0xe1, 0x41, 0x76, 0x17, 0x11, 0x96, + 0xea, 0xaf, 0x39, 0xca, 0x59, 0x35, 0xdd, 0x39, + 0x47, 0x25, 0xda, 0xdb, 0xc2, 0x7b, 0x2d, 0xda, + 0x91, 0x10, 0xce, 0xa7, 0xb6, 0x73, 0xc1, 0xfb, + 0x80, 0xe5, 0xe5, 0xf1, 0xb9, 0xbd, 0x0e, 0xe1, + 0x3f, 0xcc, 0x66, 0x3e, 0x99, 0xd7, 0xa1, 0xdc, + 0x27, 0xf9, 0x8c, 0xc7, 0xd3, 0x3a, 0xf4, 0x3b, + 0x84, 0xff, 0x00, 0x31, 0x98, 0xfa, 0x67, 0x56, + 0x9f, 0x7b, 0x87, 0x78, 0x4e, 0x95, 0x7a, 0xa0, + 0xb9, 0xd9, 0x54, 0x72, 0x76, 0xef, 0x59, 0x63, + 0x99, 0xc8, 0x0b, 0xa9, 0x49, 0x9c, 0x4b, 0x44, + 0x5d, 0xc9, 0xe3, 0x32, 0xc3, 0x0a, 0xca, 0xc1, + 0x0a, 0x1d, 0xfc, 0x63, 0x25, 0xac, 0xce, 0xbc, + 0x70, 0x87, 0x0a, 0xda, 0x57, 0x25, 0x37, 0x22, + 0xd0, 0x52, 0xcd, 0x80, 0xb9, 0x39, 0x0a, 0xab, + 0xb9, 0x4e, 0x48, 0x3c, 0x34, 0x5d, 0x27, 0x31, + 0x0c, 0x8d, 0xd1, 0x26, 0x52, 0x26, 0x2c, 0x11, + 0x26, 0x40, 0xf3, 0xcd, 0xaa, 0xe1, 0xc2, 0x1c, + 0x20, 0x97, 0x55, 0xa3, 0x7e, 0xf4, 0xad, 0xf5, + 0xf3, 0x82, 0x4d, 0x8c, 0x72, 0x0a, 0xc3, 0xeb, + 0xae, 0x23, 0x2c, 0x53, 0xda, 0x3a, 0x2b, 0x69, + 0x08, 0xb3, 0x90, 0x7d, 0xac, 0xa0, 0x8c, 0x67, + 0x6d, 0xf1, 0xb9, 0x2a, 0xbc, 0x27, 0xc1, 0xc2, + 0x3c, 0x42, 0xcb, 0x58, 0xa4, 0x88, 0x56, 0xcc, + 0x95, 0x91, 0x03, 0x64, 0xd3, 0x3e, 0x7d, 0xf2, + 0x73, 0xd0, 0x0b, 0x73, 0x16, 0x14, 0xb3, 0x41, + 0xf5, 0x58, 0xb5, 0xd8, 0x0f, 0x71, 0x33, 0x05, + 0x6a, 0xa1, 0x70, 0x9f, 0x07, 0xb6, 0x6a, 0xd8, + 0x75, 0x79, 0x6a, 0x91, 0x9a, 0xe9, 0xb2, 0x52, + 0xc2, 0x5c, 0x9a, 0xf9, 0xf2, 0xe0, 0x7c, 0x85, + 0xcb, 0xb8, 0xf3, 0x00, 0x96, 0xdb, 0x6e, 0x31, + 0x3d, 0xda, 0xec, 0xf6, 0xb8, 0x2f, 0x84, 0x96, + 0xee, 0x8d, 0x57, 0xf2, 0x74, 0xb2, 0xc5, 0xb2, + 0xee, 0x55, 0x4d, 0xc4, 0x77, 0x8e, 0x6a, 0x63, + 0x79, 0x43, 0xd6, 0x53, 0x1b, 0xf8, 0xb3, 0x3c, + 0xb3, 0xdf, 0x1a, 0xc5, 0xda, 0x67, 0x09, 0x70, + 0x71, 0x06, 0x56, 0xab, 0x6d, 0xa0, 0x41, 0x39, + 0xae, 0x75, 0x82, 0xae, 0x58, 0xa5, 0x22, 0xde, + 0x6c, 0xb8, 0xc7, 0x3c, 0xb2, 0xb1, 0x94, 0x72, + 0x49, 0xc7, 0x24, 0x8e, 0xf3, 0x05, 0xb8, 0xc6, + 0x48, 0x93, 0xc2, 0x5c, 0x1c, 0x1e, 0x0c, 0xc6, + 0x58, 0xca, 0xbb, 0xaa, 0x9c, 0xde, 0xe6, 0x9a, + 0xec, 0x4a, 0xc9, 0x6a, 0xe4, 0xcb, 0x1f, 0xb6, + 0xcc, 0xbc, 0x79, 0x79, 0xf9, 0x03, 0x68, 0x9d, + 0xce, 0x3b, 0xb7, 0xf4, 0x3b, 0x84, 0xff, 0x00, + 0x31, 0x98, 0xfa, 0x67, 0x5e, 0x87, 0x70, 0x9f, + 0xe6, 0x33, 0x1f, 0x4d, 0x68, 0x32, 0x5e, 0x09, + 0xe0, 0x49, 0x43, 0x1e, 0xda, 0xa0, 0x31, 0x8f, + 0xe2, 0xee, 0xa4, 0xd8, 0x4a, 0x54, 0xe3, 0x5e, + 0xd3, 0x66, 0x06, 0x3c, 0x57, 0x06, 0xc7, 0x25, + 0xc9, 0xbe, 0xfd, 0xfd, 0xda, 0x31, 0x0e, 0x13, + 0xe1, 0x16, 0x88, 0x94, 0xc0, 0xb4, 0x6b, 0x66, + 0xc4, 0x59, 0x11, 0xe4, 0x31, 0x16, 0x65, 0xc1, + 0x91, 0x05, 0xe5, 0x88, 0x30, 0x12, 0xfb, 0xf1, + 0x1a, 0xf4, 0x3f, 0x84, 0xff, 0x00, 0x31, 0x98, + 0xfa, 0x6b, 0x5e, 0x87, 0x70, 0x9f, 0xe6, 0x33, + 0x1f, 0x4d, 0x6b, 0xd0, 0xee, 0x13, 0xfc, 0xc6, + 0x63, 0xe9, 0x9d, 0x7a, 0x1d, 0xc2, 0x7f, 0x98, + 0xcc, 0x7d, 0x33, 0xaf, 0x43, 0xb8, 0x4f, 0xf3, + 0x19, 0x8f, 0xa6, 0x75, 0x88, 0x01, 0xe1, 0x2e, + 0x17, 0x49, 0x1e, 0x57, 0x1c, 0x22, 0xe5, 0x23, + 0x2d, 0x0d, 0x51, 0x15, 0xc4, 0xc4, 0x35, 0x72, + 0x79, 0x73, 0x1e, 0xa2, 0xe6, 0x79, 0xc3, 0x98, + 0x08, 0x79, 0xa2, 0x39, 0x84, 0xa3, 0xbb, 0x59, + 0x2f, 0xc3, 0xee, 0x7e, 0xd0, 0xcd, 0x37, 0xf0, + 0x53, 0xfd, 0x72, 0x35, 0x86, 0xfc, 0x70, 0xaf, + 0xd8, 0xee, 0xe8, 0x3d, 0xe8, 0xd1, 0xfb, 0xd3, + 0xab, 0x1f, 0x8c, 0xf2, 0x3f, 0xb5, 0x1f, 0xf7, + 0x55, 0x6f, 0xc2, 0x13, 0xfa, 0xc1, 0xd7, 0x12, + 0xc1, 0x46, 0xd3, 0xf5, 0xc1, 0x99, 0x2e, 0xff, + 0x00, 0xbc, 0x79, 0x1b, 0x06, 0x33, 0xff, 0x00, + 0x38, 0xcc, 0x4c, 0x7f, 0x14, 0xfe, 0xe6, 0xb9, + 0x64, 0x31, 0xab, 0xc9, 0x56, 0x9e, 0x2b, 0x6c, + 0x35, 0x44, 0xfb, 0x95, 0xda, 0x2b, 0x8c, 0x5d, + 0x59, 0x6c, 0xd6, 0x65, 0x4b, 0x55, 0xb6, 0x79, + 0x06, 0xf0, 0x32, 0xf8, 0x72, 0xa2, 0x76, 0xf6, + 0xbf, 0xbb, 0xac, 0xc1, 0x63, 0x43, 0x29, 0x92, + 0xb6, 0xff, 0x00, 0xad, 0xfb, 0x18, 0x22, 0xe1, + 0xdb, 0x61, 0x89, 0xcb, 0xcf, 0x09, 0xcd, 0x7b, + 0x2b, 0x4c, 0x53, 0x28, 0xc6, 0x65, 0x19, 0x2a, + 0xa8, 0xfe, 0xcb, 0x5b, 0x2e, 0xaa, 0xe8, 0x06, + 0x4b, 0x42, 0x1b, 0x69, 0xdd, 0x21, 0x30, 0x2b, + 0x77, 0x31, 0xb5, 0xed, 0xa8, 0xcf, 0x89, 0x6a, + 0xa6, 0xfd, 0x5c, 0x0e, 0x5e, 0xaa, 0x69, 0xe3, + 0x66, 0x9d, 0x24, 0x75, 0x6e, 0xf1, 0x16, 0x66, + 0x8e, 0x39, 0x27, 0x63, 0x17, 0x61, 0xa4, 0xf6, + 0x76, 0x44, 0xc6, 0x2b, 0x19, 0x16, 0x13, 0x90, + 0x98, 0xb5, 0xd6, 0x95, 0x84, 0x25, 0x4f, 0x6d, + 0xba, 0x1d, 0x9a, 0xc7, 0x11, 0x45, 0x10, 0xc7, + 0x50, 0xaf, 0x60, 0x47, 0x93, 0x89, 0x32, 0x92, + 0xb0, 0x9e, 0xa6, 0x47, 0x1b, 0xd9, 0x16, 0xb8, + 0x85, 0x74, 0x89, 0x30, 0xfd, 0xa3, 0x7d, 0x96, + 0x3c, 0x83, 0xcf, 0x17, 0xc9, 0xf6, 0xfa, 0x93, + 0x4b, 0x88, 0xac, 0x50, 0xb2, 0xe3, 0x71, 0x4f, + 0x49, 0x9c, 0x31, 0xc3, 0x52, 0x16, 0x6a, 0x35, + 0x93, 0xbf, 0x2c, 0x34, 0x98, 0xd5, 0x35, 0x53, + 0xb0, 0xd8, 0x82, 0x60, 0xcf, 0x56, 0x26, 0x74, + 0xc4, 0x64, 0x6d, 0x58, 0xb1, 0x48, 0xf8, 0x33, + 0x1d, 0x76, 0xda, 0x98, 0xc3, 0x64, 0x39, 0xe3, + 0x76, 0x97, 0x3d, 0xe6, 0xc6, 0xfb, 0xba, 0xff, + 0x00, 0x4e, 0x39, 0x22, 0xe9, 0xf3, 0x5b, 0xe4, + 0x81, 0x5f, 0x57, 0x92, 0x20, 0x75, 0x99, 0x12, + 0xc6, 0xdf, 0x8c, 0x59, 0xdf, 0xaf, 0x18, 0x3b, + 0x77, 0xb3, 0x55, 0x9f, 0x8b, 0x84, 0x75, 0x25, + 0x88, 0x67, 0x0a, 0x50, 0x0c, 0x1d, 0x49, 0xec, + 0xac, 0xa2, 0x22, 0x36, 0x82, 0xa5, 0xf6, 0xa5, + 0x0b, 0x25, 0x45, 0xb3, 0x6d, 0x81, 0x02, 0x9c, + 0x77, 0x10, 0x47, 0x2b, 0x31, 0xd5, 0x1f, 0x93, + 0x1c, 0x93, 0x03, 0x9e, 0x7c, 0x17, 0x15, 0xb1, + 0xe4, 0x60, 0xcb, 0xf3, 0xcb, 0x00, 0x95, 0xdc, + 0x87, 0xf2, 0xd2, 0x2e, 0x69, 0xed, 0x0d, 0x5b, + 0x10, 0x3e, 0xdd, 0x10, 0x13, 0x90, 0x8f, 0xbb, + 0xf5, 0xc7, 0x87, 0xfe, 0x4d, 0xcb, 0x6a, 0xcf, + 0x06, 0x05, 0x7b, 0x63, 0x91, 0x0e, 0x1b, 0x1c, + 0x50, 0x1c, 0xdf, 0x41, 0x52, 0x3c, 0xad, 0x01, + 0xf0, 0xe1, 0x20, 0x28, 0x78, 0x2c, 0x5c, 0x36, + 0x59, 0x90, 0xed, 0x35, 0x61, 0xf3, 0x93, 0x28, + 0xf6, 0xc9, 0xd9, 0x7b, 0x14, 0x0c, 0x57, 0xc9, + 0xd6, 0xc4, 0x86, 0x63, 0x0b, 0x76, 0xae, 0x38, + 0x6c, 0x59, 0x33, 0xb6, 0xba, 0x38, 0x81, 0xaf, + 0x4e, 0xa0, 0x64, 0x23, 0x21, 0x6e, 0x8d, 0xba, + 0x4b, 0xc6, 0xb2, 0x82, 0xd6, 0xd9, 0xdb, 0x22, + 0xd5, 0xac, 0x91, 0xc8, 0xf0, 0x53, 0x40, 0xd7, + 0x3a, 0xc8, 0x2a, 0x9c, 0xc1, 0x53, 0x55, 0xeb, + 0x6b, 0xa8, 0x42, 0x7d, 0x41, 0x2a, 0xc1, 0x61, + 0x83, 0x5e, 0x45, 0x9b, 0xcf, 0x50, 0x65, 0x50, + 0x33, 0x07, 0xbc, 0xf3, 0xc7, 0x8d, 0xbc, 0xef, + 0xfb, 0x9e, 0x21, 0xfe, 0x3c, 0x8e, 0x0a, 0x3f, + 0xe7, 0xe8, 0x66, 0xbe, 0xa7, 0x07, 0x97, 0xf0, + 0x60, 0x73, 0xe1, 0x33, 0xf7, 0x8a, 0x6d, 0xd2, + 0x28, 0x8f, 0x7f, 0x68, 0xdf, 0xf7, 0x16, 0x6c, + 0x36, 0xbd, 0xcb, 0x38, 0xdc, 0x4a, 0x86, 0xd5, + 0xe4, 0x63, 0xab, 0xba, 0xd5, 0xeb, 0x9c, 0xc5, + 0xca, 0x8a, 0x14, 0xd2, 0x80, 0x61, 0xf5, 0x6d, + 0xb3, 0xc5, 0x36, 0xcc, 0x72, 0x56, 0x44, 0x36, + 0xc1, 0xcf, 0x89, 0x10, 0x59, 0x9b, 0x7c, 0x47, + 0x8e, 0xc9, 0x0d, 0x9b, 0xec, 0xc7, 0x08, 0xe0, + 0x5b, 0x56, 0x2a, 0xd6, 0xa5, 0x5d, 0x24, 0xb2, + 0xaf, 0x74, 0x53, 0x7d, 0x64, 0x63, 0x6f, 0x17, + 0x51, 0x2b, 0x5e, 0x26, 0x3b, 0x3c, 0x41, 0xf3, + 0xc9, 0xb1, 0xdc, 0xb3, 0x3a, 0xab, 0x6f, 0xb4, + 0x58, 0xb2, 0xa7, 0xe4, 0xd8, 0xb3, 0xb3, 0x6f, + 0x68, 0xb5, 0x66, 0xb5, 0xf2, 0x65, 0x57, 0x32, + 0xcc, 0x73, 0x98, 0xc3, 0x9c, 0x8b, 0x07, 0x2d, + 0xf1, 0xca, 0x20, 0xca, 0x7b, 0xe7, 0x59, 0x4c, + 0x41, 0xb2, 0x3b, 0x37, 0x07, 0x57, 0xc6, 0xe4, + 0x2b, 0x16, 0xfb, 0x0c, 0x9f, 0x09, 0xa9, 0x8b, + 0xc8, 0xed, 0xdd, 0x3f, 0x6d, 0xdc, 0xb9, 0x61, + 0xe5, 0xb7, 0x97, 0x7d, 0xfb, 0xe6, 0x22, 0x75, + 0x85, 0xe4, 0xf0, 0x85, 0xaa, 0x59, 0x0a, 0x99, + 0x97, 0x5d, 0x6a, 0xad, 0x85, 0x3e, 0x1d, 0xae, + 0xeb, 0x07, 0x71, 0x13, 0x43, 0x25, 0x59, 0x55, + 0xa0, 0xb2, 0xf9, 0xb6, 0x4c, 0x2f, 0xb3, 0x8d, + 0xdb, 0xa2, 0x42, 0x16, 0x2a, 0x05, 0x7a, 0x36, + 0x2b, 0xa3, 0xa9, 0xa4, 0x33, 0x0e, 0xec, 0x89, + 0x5b, 0x71, 0x70, 0xe3, 0x19, 0x60, 0x4e, 0xc1, + 0xef, 0x89, 0x2e, 0x1e, 0xc7, 0xf2, 0x3c, 0xd9, + 0x3c, 0xdb, 0xe0, 0xe3, 0x25, 0x19, 0x29, 0xc9, + 0x99, 0x7e, 0xf0, 0xed, 0x7c, 0xdd, 0xb7, 0xdb, + 0x4b, 0xbf, 0x85, 0x71, 0x71, 0x70, 0x59, 0x8f, + 0xb5, 0x85, 0xe2, 0x99, 0xb3, 0x5e, 0xae, 0xeb, + 0xc6, 0xdf, 0x9e, 0xdb, 0xc4, 0x7b, 0x32, 0x6b, + 0xc0, 0xac, 0x1a, 0x8d, 0xd6, 0x0c, 0xaa, 0x2d, + 0x5f, 0xb4, 0x78, 0xa4, 0xa0, 0x51, 0xeb, 0x36, + 0x69, 0xed, 0x1f, 0x59, 0x9f, 0x58, 0xa8, 0x1a, + 0x70, 0x1f, 0x68, 0xc3, 0xe2, 0xbe, 0x3f, 0xb6, + 0x82, 0x22, 0x3d, 0xaf, 0xc2, 0xd1, 0x72, 0x32, + 0x93, 0x90, 0xe4, 0xfd, 0xf7, 0xcf, 0xb9, 0x5b, + 0xf1, 0x09, 0x13, 0x39, 0x82, 0xe2, 0x09, 0x1f, + 0xad, 0x12, 0xb9, 0x8a, 0xfa, 0xd9, 0xed, 0x32, + 0x33, 0x8d, 0x94, 0x78, 0x62, 0x8c, 0xd5, 0xf0, + 0x27, 0xf7, 0xbf, 0x66, 0x1c, 0x1f, 0x68, 0xf0, + 0xb7, 0x63, 0xee, 0x10, 0xf1, 0x72, 0x1e, 0xdf, + 0xdd, 0xa2, 0xf0, 0xfc, 0xdc, 0xe7, 0xfa, 0xed, + 0x29, 0xa9, 0xdb, 0x66, 0x64, 0xba, 0x1e, 0x0e, + 0xb5, 0xdf, 0x57, 0x9b, 0xff, 0x00, 0xa3, 0xe4, + 0xbe, 0xd4, 0x94, 0xfe, 0xf3, 0x91, 0xe6, 0xec, + 0x9e, 0x26, 0xfa, 0xc6, 0x7f, 0xa4, 0xb7, 0x7f, + 0x63, 0xc6, 0xea, 0xbd, 0x54, 0xbd, 0x81, 0x5e, + 0xc7, 0x10, 0x71, 0xa9, 0xd9, 0x4c, 0x4f, 0xb4, + 0xdb, 0xdb, 0xdc, 0x85, 0xb5, 0x4e, 0xeb, 0xb4, + 0xa5, 0xcc, 0x49, 0x02, 0x9e, 0x2c, 0x58, 0x99, + 0x19, 0x40, 0xee, 0x53, 0x3a, 0xaf, 0x6d, 0xfe, + 0x11, 0xc9, 0x67, 0xdb, 0xc3, 0x97, 0x87, 0x1c, + 0xca, 0xb7, 0xba, 0x19, 0xd7, 0xca, 0x78, 0x83, + 0xdb, 0xc7, 0x1f, 0x7d, 0xd4, 0xf2, 0x4d, 0x9b, + 0xaa, 0xa1, 0xd6, 0xe8, 0xc0, 0xd6, 0x75, 0x9e, + 0xcb, 0x16, 0x13, 0x56, 0x55, 0xbf, 0x30, 0xf1, + 0x11, 0xa9, 0x4f, 0xc5, 0xe4, 0x08, 0xb8, 0x4e, + 0xa6, 0x43, 0xab, 0x7d, 0x19, 0x1c, 0x93, 0x25, + 0xf5, 0xf8, 0x82, 0x5d, 0x39, 0x2b, 0x0a, 0xc7, + 0xd0, 0x15, 0xe4, 0x9c, 0x82, 0x14, 0x5f, 0x09, + 0xae, 0x36, 0x76, 0xe7, 0x5d, 0xa2, 0x93, 0x6b, + 0xe2, 0x7e, 0xae, 0x0c, 0x63, 0xbe, 0x67, 0x33, + 0x8b, 0x88, 0xf8, 0xfa, 0x35, 0x92, 0xfc, 0x3e, + 0xe7, 0xed, 0x0c, 0xd3, 0x7f, 0x05, 0x3f, 0xd7, + 0x23, 0x58, 0x6f, 0xc6, 0xea, 0xfd, 0x92, 0xee, + 0x83, 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0xb1, 0xf8, + 0xcf, 0x23, 0xfb, 0x49, 0xff, 0x00, 0x75, 0xc6, + 0x4c, 0x6f, 0x06, 0x2b, 0x31, 0x20, 0xb5, 0xde, + 0xed, 0x15, 0xdc, 0xca, 0x39, 0x19, 0x58, 0xf4, + 0xc6, 0xd4, 0x15, 0x35, 0xb5, 0xd5, 0xed, 0x72, + 0x08, 0xc3, 0xe2, 0x50, 0x6a, 0x6f, 0x8a, 0x43, + 0xd3, 0x98, 0x2e, 0x6f, 0x3f, 0xe1, 0x7f, 0x37, + 0x99, 0xfa, 0x2b, 0x5e, 0x7f, 0xc2, 0xfe, 0x6f, + 0x33, 0xf4, 0x56, 0xbc, 0xff, 0x00, 0x85, 0xfc, + 0xde, 0x67, 0xe8, 0xad, 0x79, 0xff, 0x00, 0x0b, + 0xf9, 0xbc, 0xcf, 0xd1, 0x5a, 0xf3, 0xf6, 0x17, + 0xf3, 0x79, 0x8f, 0xa2, 0xb5, 0xe7, 0xdc, 0x27, + 0xe6, 0xb3, 0x1f, 0x45, 0x6b, 0xcf, 0xd8, 0x4e, + 0xef, 0x27, 0xb5, 0xe6, 0x3e, 0x8a, 0xd7, 0x76, + 0x7b, 0x0b, 0xf9, 0xbc, 0xc7, 0xd1, 0x5a, 0xf3, + 0xee, 0x13, 0xf3, 0x59, 0x8f, 0xa2, 0xb5, 0xe7, + 0xec, 0x2f, 0xe6, 0xf3, 0x1f, 0x45, 0x6b, 0xcf, + 0xd8, 0x4f, 0xcd, 0xe6, 0x3e, 0x8a, 0xd7, 0x9f, + 0xb0, 0x9f, 0x9b, 0xcc, 0x7d, 0x15, 0xaf, 0x3f, + 0x61, 0x7f, 0x37, 0x98, 0xfa, 0x2b, 0x5b, 0x78, + 0x7b, 0x0b, 0xb7, 0xde, 0xe9, 0xe6, 0x36, 0xfe, + 0x4a, 0xd6, 0xfe, 0x1e, 0xc2, 0x7e, 0x6f, 0x31, + 0xf4, 0x56, 0xbc, 0xff, 0x00, 0x85, 0xfc, 0xde, + 0x67, 0xe8, 0xad, 0x79, 0xff, 0x00, 0x0b, 0xf9, + 0xbc, 0xcf, 0xd1, 0x5a, 0xf3, 0xfe, 0x17, 0xf3, + 0x79, 0x9f, 0xa2, 0xb5, 0xe7, 0xfc, 0x2f, 0xe6, + 0xf3, 0x3f, 0x45, 0x6a, 0x3a, 0x9c, 0x43, 0x87, + 0x00, 0xdf, 0xc6, 0x21, 0x4e, 0x60, 0xca, 0x23, + 0xee, 0xf2, 0x84, 0xe3, 0x42, 0x0a, 0x7e, 0xf4, + 0x49, 0x8c, 0x4f, 0xf8, 0x51, 0xa4, 0x61, 0xf1, + 0x5d, 0x53, 0xae, 0xb6, 0x9d, 0x9b, 0x57, 0x1e, + 0x22, 0x0f, 0xc8, 0xdd, 0x28, 0xe9, 0xf6, 0x83, + 0x01, 0xdf, 0xa2, 0xa5, 0xaf, 0xda, 0xeb, 0x23, + 0x9a, 0x7a, 0x6b, 0x99, 0xe7, 0x92, 0x64, 0x91, + 0x4e, 0x8f, 0x0f, 0x94, 0x97, 0x29, 0x3d, 0x68, + 0xb3, 0x4a, 0xea, 0x00, 0x18, 0xec, 0x7d, 0xbd, + 0xba, 0x66, 0xce, 0x99, 0x72, 0xf5, 0xeb, 0x38, + 0x39, 0x62, 0xca, 0x39, 0xc4, 0xa6, 0x02, 0x25, + 0x52, 0x2d, 0xf1, 0xb5, 0x3c, 0x9c, 0x43, 0x87, + 0x31, 0xfb, 0x85, 0x29, 0xcc, 0x04, 0xcc, 0x7d, + 0xcd, 0xc7, 0xc1, 0x87, 0xb4, 0xff, 0x00, 0x17, + 0x31, 0x7b, 0xf3, 0xaf, 0x3f, 0xe1, 0x7f, 0x37, + 0x99, 0xfa, 0x2b, 0x5e, 0x7f, 0xc2, 0xfe, 0x6f, + 0x33, 0xf4, 0x56, 0xbb, 0xf3, 0xd8, 0x49, 0xf7, + 0xd7, 0x98, 0xfa, 0x2b, 0x5d, 0xd9, 0xec, 0x2c, + 0x7f, 0xd1, 0xe6, 0x3e, 0x8a, 0xd7, 0x9f, 0xf0, + 0xbf, 0x9b, 0xcc, 0xfd, 0x15, 0xaf, 0x3f, 0x61, + 0x7b, 0xbf, 0xf8, 0x79, 0x8f, 0xa2, 0xb5, 0xe7, + 0xdc, 0x27, 0xe6, 0xb3, 0x1f, 0x45, 0x6b, 0xcf, + 0xb8, 0x4f, 0xbf, 0xf6, 0x2c, 0xc7, 0x97, 0xd5, + 0x5a, 0xf3, 0xf6, 0x17, 0xf3, 0x79, 0x8f, 0xa2, + 0xb5, 0xbf, 0x87, 0x70, 0x9b, 0xfd, 0xfe, 0x96, + 0x63, 0x7f, 0xe4, 0xad, 0x2a, 0xc0, 0x67, 0x30, + 0x32, 0x6a, 0x60, 0x36, 0x21, 0x95, 0xf2, 0xad, + 0x59, 0x48, 0x14, 0x14, 0x43, 0x16, 0x78, 0x89, + 0x06, 0x04, 0xed, 0xe3, 0x01, 0xc4, 0x89, 0x47, + 0x74, 0xc6, 0xda, 0x8a, 0xca, 0xc8, 0x70, 0xb6, + 0x36, 0xaf, 0x6b, 0x75, 0xe3, 0xaf, 0x8f, 0x4f, + 0x11, 0xc2, 0xd9, 0x6d, 0xc3, 0x00, 0x4d, 0x2e, + 0xd7, 0x56, 0xd9, 0x8f, 0x2a, 0xc7, 0xa6, 0xa4, + 0xa8, 0xd6, 0x85, 0x0e, 0xfc, 0x8a, 0x89, 0x22, + 0x99, 0xf3, 0xf6, 0x17, 0xf3, 0x79, 0x8f, 0xa2, + 0xb5, 0xe7, 0xec, 0x27, 0xe6, 0xf3, 0x1f, 0x45, + 0x6b, 0xcf, 0xd8, 0x4f, 0xcd, 0xe6, 0x3e, 0x8a, + 0xd7, 0x9f, 0xb0, 0xbd, 0xdf, 0xfc, 0x3c, 0xc7, + 0xd1, 0x5a, 0xf3, 0xfe, 0x17, 0xf3, 0x79, 0x9f, + 0xa2, 0xb5, 0xe7, 0xfc, 0x2f, 0xe6, 0xf3, 0x3f, + 0x45, 0x6b, 0xcf, 0xf8, 0x5f, 0xcd, 0xe6, 0x7e, + 0x8a, 0xd0, 0x65, 0x6c, 0x5f, 0x5e, 0x5b, 0x26, + 0x8d, 0xe6, 0x85, 0x7a, 0xa8, 0x7a, 0xe8, 0xd5, + 0x76, 0xdb, 0x45, 0xbb, 0x0c, 0xb8, 0xa5, 0x36, + 0xc3, 0x15, 0xbf, 0x32, 0x12, 0xb4, 0x82, 0xc4, + 0xc6, 0x08, 0xcc, 0xbb, 0xa0, 0x64, 0x8a, 0x66, + 0x66, 0x67, 0x79, 0x99, 0xef, 0x99, 0x99, 0xf2, + 0xcc, 0xcf, 0xdd, 0x99, 0xd3, 0x7f, 0x05, 0x3f, + 0xd6, 0xa3, 0x58, 0x6f, 0xc6, 0xea, 0xfd, 0x92, + 0xe6, 0x83, 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0xb1, + 0xf8, 0xcf, 0x23, 0xfb, 0x49, 0xfd, 0x4e, 0x53, + 0x99, 0x36, 0x7f, 0xee, 0xd7, 0xb4, 0x90, 0xfd, + 0xdd, 0xcb, 0x79, 0x88, 0x1f, 0x7a, 0x67, 0x9a, + 0x77, 0xde, 0x23, 0x6e, 0xfd, 0x7d, 0xa9, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, + 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, + 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, + 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, + 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, + 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xff, 0x00, 0xdf, 0x1f, 0xd4, + 0xff, 0x00, 0xf9, 0xc1, 0xbf, 0x82, 0x9f, 0xeb, + 0x51, 0xac, 0x37, 0xe3, 0x75, 0x7e, 0xc9, 0x73, + 0x41, 0xef, 0x46, 0x8f, 0xde, 0x9d, 0x59, 0xfc, + 0x69, 0x91, 0xfd, 0xa4, 0xb4, 0xd7, 0x6d, 0xbc, + 0x8c, 0x78, 0xb1, 0xfe, 0x39, 0x4c, 0x08, 0xef, + 0xe4, 0xee, 0x89, 0x9d, 0xcb, 0xbf, 0xdc, 0xc4, + 0xed, 0xa2, 0x32, 0x9d, 0xc8, 0xa6, 0x48, 0xa7, + 0xef, 0xcc, 0xf7, 0xcc, 0xff, 0x00, 0x74, 0x5a, + 0xbf, 0x7d, 0x84, 0xba, 0x34, 0x05, 0x64, 0xe8, + 0x5e, 0xdd, 0x67, 0xb1, 0xc5, 0x20, 0x8a, 0xc9, + 0xdf, 0xbb, 0x9d, 0xc5, 0x13, 0xe3, 0x4f, 0x70, + 0x08, 0x91, 0x4f, 0xdf, 0xd4, 0xc5, 0x5c, 0x0e, + 0x28, 0x15, 0xbc, 0xed, 0x16, 0xe6, 0xe5, 0xc6, + 0xff, 0x00, 0xce, 0xde, 0xd4, 0x8f, 0xb9, 0xf7, + 0x20, 0x36, 0xdf, 0xc9, 0xaf, 0x32, 0xe0, 0x3e, + 0x2b, 0x73, 0xe9, 0x0d, 0x79, 0x97, 0x01, 0xf1, + 0x5b, 0x9f, 0x48, 0x6b, 0xcc, 0xb8, 0x0f, 0x8a, + 0xdc, 0xfa, 0x43, 0x5e, 0x65, 0xc0, 0x7c, 0x56, + 0xe7, 0xd2, 0x1a, 0xf3, 0x2e, 0x03, 0xe2, 0xb7, + 0x3e, 0x90, 0xd7, 0x99, 0x70, 0x1f, 0x15, 0xb9, + 0xf4, 0x86, 0xbc, 0xcb, 0x80, 0xf8, 0xad, 0xcf, + 0xa4, 0x35, 0xe6, 0x5c, 0x07, 0xc5, 0x6e, 0x7d, + 0x21, 0xaf, 0x32, 0xe0, 0x3e, 0x2b, 0x73, 0xe9, + 0x0d, 0x79, 0x97, 0x01, 0xf1, 0x5b, 0x9f, 0x48, + 0x6b, 0xcc, 0xb8, 0x0f, 0x8a, 0xdc, 0xfa, 0x43, + 0x5e, 0x65, 0xc0, 0x7c, 0x56, 0xe7, 0xd2, 0x1a, + 0xf3, 0x2e, 0x03, 0xe2, 0xb7, 0x3e, 0x90, 0xd7, + 0x99, 0x70, 0x1f, 0x15, 0xb9, 0xf4, 0x86, 0xbc, + 0xcb, 0x80, 0xf8, 0xad, 0xcf, 0xa4, 0x35, 0xe6, + 0x5c, 0x07, 0xc5, 0x6e, 0x7d, 0x21, 0xaf, 0x32, + 0xe0, 0x3e, 0x2b, 0x73, 0xe9, 0x0d, 0x79, 0x97, + 0x01, 0xf1, 0x5b, 0x9f, 0x48, 0x6b, 0xcc, 0xb8, + 0x0f, 0x8a, 0xdc, 0xfa, 0x43, 0x5e, 0x65, 0xc0, + 0x7c, 0x56, 0xe7, 0xd2, 0x1a, 0x72, 0xab, 0xd4, + 0xf0, 0x76, 0x4d, 0x0a, 0x6d, 0xa1, 0x4a, 0xda, + 0xc7, 0xd6, 0xbc, 0x95, 0x47, 0x3b, 0x85, 0x50, + 0xdd, 0xd8, 0x9b, 0x0b, 0x1d, 0xcc, 0x17, 0x12, + 0x60, 0x62, 0x24, 0x3e, 0x5d, 0xb9, 0x20, 0x46, + 0x24, 0x88, 0xa6, 0x22, 0x22, 0x23, 0x79, 0x99, + 0x9e, 0xe8, 0x88, 0x88, 0xf2, 0xcc, 0xfd, 0xc8, + 0xd1, 0x51, 0x5d, 0x35, 0x64, 0xf2, 0x09, 0xf1, + 0x6e, 0x58, 0xb2, 0xc6, 0xc5, 0x34, 0xbb, 0x6f, + 0x1e, 0xbd, 0x74, 0xa0, 0xd6, 0x4e, 0xe9, 0x17, + 0x88, 0xc7, 0x1b, 0x07, 0x73, 0x19, 0xe4, 0x8d, + 0xa7, 0xbb, 0xcc, 0xd8, 0x2f, 0xcc, 0xe4, 0x3e, + 0x92, 0xd7, 0x99, 0xb0, 0x5f, 0x99, 0xc8, 0x7d, + 0x25, 0xaf, 0x33, 0x60, 0xbf, 0x33, 0x90, 0xfa, + 0x4b, 0x5e, 0x66, 0xc1, 0x7e, 0x67, 0x21, 0xf4, + 0x96, 0xbc, 0xcd, 0x82, 0xfc, 0xce, 0x43, 0xe9, + 0x2d, 0x79, 0x9b, 0x05, 0xf9, 0x9c, 0x87, 0xd2, + 0x5a, 0xf3, 0x36, 0x0b, 0xf3, 0x39, 0x0f, 0xa4, + 0xb5, 0xe6, 0x6c, 0x17, 0xe6, 0x72, 0x1f, 0x49, + 0x6b, 0xcc, 0xd8, 0x2f, 0xcc, 0xe4, 0x3e, 0x92, + 0xd7, 0x99, 0xb0, 0x5f, 0x99, 0xc8, 0x7d, 0x25, + 0xaf, 0x33, 0x60, 0xbf, 0x33, 0x90, 0xfa, 0x4b, + 0x5e, 0x66, 0xc1, 0x7e, 0x67, 0x21, 0xf4, 0x96, + 0xbc, 0xcd, 0x82, 0xfc, 0xce, 0x43, 0xe9, 0x2d, + 0x79, 0x9b, 0x05, 0xf9, 0x9c, 0x87, 0xd2, 0x5a, + 0xf3, 0x36, 0x0b, 0xf3, 0x39, 0x0f, 0xa4, 0xb5, + 0xe6, 0x6c, 0x17, 0xe6, 0x72, 0x1f, 0x49, 0x6b, + 0xcc, 0xd8, 0x2f, 0xcc, 0xe4, 0x3e, 0x92, 0xd7, + 0x99, 0xb0, 0x5f, 0x99, 0xc8, 0x7d, 0x25, 0xaf, + 0x33, 0x60, 0xbf, 0x33, 0x90, 0xfa, 0x4b, 0x5e, + 0x66, 0xc1, 0x7e, 0x67, 0x21, 0xf4, 0x96, 0xbd, + 0xb3, 0x09, 0x85, 0x20, 0xfb, 0xb0, 0x03, 0x7d, + 0x47, 0xb7, 0xf8, 0xac, 0xed, 0xcc, 0xe5, 0x9f, + 0xe3, 0xe5, 0x9d, 0xb5, 0x19, 0x4c, 0x64, 0x1a, + 0xd3, 0x0e, 0xec, 0xf6, 0xe9, 0xb0, 0xba, 0x8c, + 0xa4, 0xf2, 0x1e, 0x70, 0xd9, 0xbe, 0x56, 0xd6, + 0x68, 0xc4, 0xf4, 0x98, 0x70, 0x25, 0xb8, 0xf2, + 0x97, 0x8d, 0xdd, 0x0d, 0xfc, 0x18, 0xff, 0x00, + 0x5a, 0x9d, 0x61, 0xbf, 0x1b, 0xab, 0xf6, 0x4b, + 0x9a, 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xea, 0xcf, + 0xe3, 0x4c, 0x8f, 0xed, 0x25, 0xa9, 0xfe, 0x36, + 0x2f, 0xfe, 0xfd, 0xf4, 0xfb, 0x56, 0xdd, 0xd9, + 0xa8, 0xd3, 0x11, 0x3b, 0x2e, 0xdb, 0x9c, 0xfd, + 0xb2, 0x79, 0x54, 0x94, 0xaf, 0x78, 0xe7, 0x7b, + 0xcb, 0x78, 0x08, 0x99, 0x81, 0x88, 0x83, 0x32, + 0x9d, 0x83, 0x69, 0xe5, 0x56, 0x0e, 0xc3, 0x82, + 0x3b, 0xa1, 0x8f, 0xcb, 0x4a, 0x98, 0x7f, 0xe3, + 0x10, 0x2a, 0xa1, 0xae, 0x26, 0x7e, 0xec, 0x0c, + 0xed, 0x1a, 0xf4, 0x78, 0xbd, 0x76, 0xdf, 0x98, + 0xeb, 0xd1, 0xe2, 0xf5, 0xdb, 0x7e, 0x63, 0xaf, + 0x47, 0x8b, 0xd7, 0x6d, 0xf9, 0x8e, 0xbd, 0x1e, + 0x2f, 0x5d, 0xb7, 0xe6, 0x3a, 0xf4, 0x78, 0xbd, + 0x76, 0xdf, 0x98, 0xeb, 0xd1, 0xe2, 0xf5, 0xdb, + 0x7e, 0x63, 0xaf, 0x47, 0x8b, 0xd7, 0x6d, 0xf9, + 0x8e, 0xbd, 0x1e, 0x2f, 0x5d, 0xb7, 0xe6, 0x3a, + 0xf4, 0x78, 0xbd, 0x76, 0xdf, 0x98, 0xeb, 0xd1, + 0xe2, 0xf5, 0xdb, 0x7e, 0x63, 0xaf, 0x47, 0x8b, + 0xd7, 0x6d, 0xf9, 0x8e, 0xbd, 0x1e, 0x2f, 0x5d, + 0xb7, 0xe6, 0x3a, 0xf4, 0x78, 0xbd, 0x76, 0xdf, + 0x98, 0xeb, 0xd1, 0xe2, 0xf5, 0xdb, 0x7e, 0x63, + 0xaf, 0x47, 0x8b, 0xd7, 0x6d, 0xf9, 0x8e, 0xbd, + 0x1e, 0x2f, 0x5d, 0xb7, 0xe6, 0x3a, 0xf4, 0x78, + 0xbd, 0x76, 0xdf, 0x98, 0xeb, 0xd1, 0xe2, 0xf5, + 0xdb, 0x7e, 0x63, 0xaf, 0x47, 0x8b, 0xd7, 0x6d, + 0xf9, 0x8e, 0xbd, 0x1e, 0x2f, 0x5d, 0xb7, 0xe6, + 0x3a, 0x60, 0x63, 0x85, 0xd4, 0xaf, 0xad, 0x4c, + 0x74, 0x63, 0xde, 0xc8, 0xb2, 0x16, 0x96, 0xa1, + 0xe6, 0x3e, 0xc8, 0xf1, 0x10, 0x3e, 0xb0, 0x04, + 0x19, 0xca, 0x18, 0x13, 0x2c, 0x8d, 0xe5, 0x73, + 0x10, 0x13, 0xf5, 0x37, 0x89, 0xdb, 0x9f, 0x88, + 0xaa, 0x01, 0x7f, 0x8c, 0x31, 0x8d, 0xbe, 0x71, + 0x13, 0xfc, 0x50, 0x43, 0x05, 0xef, 0xc6, 0xfa, + 0xf2, 0xeb, 0x68, 0xef, 0x99, 0xf2, 0x47, 0xdf, + 0x9f, 0xb9, 0x1a, 0xa7, 0xc3, 0xf9, 0x3c, 0x30, + 0xe4, 0x5a, 0x68, 0xac, 0x59, 0x7c, 0xb3, 0x1e, + 0x70, 0xca, 0xec, 0xb4, 0x3b, 0x9c, 0xd6, 0x48, + 0x01, 0x1f, 0x4d, 0x23, 0x3b, 0xc0, 0xa8, 0xd2, + 0x62, 0x1b, 0x4c, 0x75, 0x5d, 0xb9, 0x16, 0x55, + 0xf8, 0xdb, 0xf5, 0xaa, 0xe0, 0x28, 0x3e, 0x44, + 0x72, 0xd9, 0x76, 0x45, 0x45, 0x72, 0x1c, 0xee, + 0x85, 0x9c, 0xcf, 0xfc, 0xa6, 0xd2, 0x30, 0x45, + 0x30, 0xb8, 0xef, 0x02, 0x98, 0x09, 0x64, 0x2e, + 0x1b, 0x86, 0xed, 0x14, 0xe1, 0x91, 0x8d, 0x3c, + 0xad, 0x6b, 0x5d, 0x42, 0x9a, 0x77, 0x2a, 0x41, + 0xac, 0x00, 0xd2, 0xd1, 0x09, 0xdb, 0x9e, 0x59, + 0xe5, 0x28, 0xe5, 0x1d, 0xa6, 0x66, 0x76, 0xdb, + 0x7a, 0xfd, 0x3c, 0xe6, 0x05, 0x95, 0xae, 0x8c, + 0xc5, 0x1b, 0x43, 0x77, 0x75, 0x5d, 0xb3, 0x12, + 0x7b, 0xd5, 0xab, 0xb0, 0xcc, 0xbd, 0x90, 0x2b, + 0x23, 0x29, 0x57, 0x34, 0x44, 0x44, 0xfd, 0xd8, + 0x28, 0x19, 0xb0, 0xcc, 0x8e, 0x37, 0x1e, 0x21, + 0x94, 0xb1, 0x88, 0x64, 0x5d, 0x71, 0x2b, 0x96, + 0xea, 0x19, 0xd1, 0xe9, 0x04, 0xf2, 0xf2, 0xb4, + 0xdc, 0xff, 0x00, 0x6a, 0x4a, 0xc2, 0x79, 0xce, + 0x7c, 0x91, 0xf7, 0x35, 0x75, 0xf3, 0x73, 0x1b, + 0x61, 0xf8, 0xf6, 0xa8, 0x6c, 0xd0, 0xad, 0x67, + 0xa9, 0x6d, 0x4b, 0xb0, 0xde, 0x95, 0x57, 0x30, + 0x36, 0x8e, 0x9c, 0x59, 0xf7, 0x6a, 0x16, 0xf2, + 0x11, 0x06, 0xff, 0x00, 0x74, 0x4a, 0x22, 0xd5, + 0xb2, 0xc8, 0xe2, 0xed, 0x37, 0x1f, 0x15, 0xe7, + 0x25, 0x42, 0xa5, 0x9e, 0xa5, 0xba, 0x31, 0x63, + 0xdc, 0xcb, 0x83, 0x96, 0x36, 0x8d, 0xfe, 0xff, + 0x00, 0x2f, 0x3c, 0x6e, 0x61, 0xcc, 0x31, 0x3a, + 0xcc, 0xe4, 0x4f, 0x87, 0xa3, 0x88, 0xed, 0xd5, + 0xbf, 0x55, 0x28, 0xa8, 0x20, 0xc3, 0x74, 0x83, + 0x40, 0x39, 0xf9, 0x3a, 0x28, 0xb2, 0xce, 0x50, + 0xde, 0x58, 0x5b, 0x28, 0xbc, 0x9d, 0xf3, 0x11, + 0xdf, 0xae, 0x1b, 0x9c, 0x6e, 0x26, 0x38, 0x7e, + 0xfe, 0x65, 0x77, 0x66, 0xe6, 0x31, 0xec, 0x28, + 0x0a, 0x89, 0xa5, 0xd3, 0x9e, 0xd6, 0xc8, 0x21, + 0x03, 0x54, 0x42, 0xca, 0x79, 0xc7, 0xa0, 0xb3, + 0x29, 0x90, 0x8e, 0x94, 0x1f, 0x34, 0x95, 0x0a, + 0x08, 0xc8, 0x63, 0x6c, 0xa3, 0x27, 0x5e, 0xcb, + 0xe9, 0x64, 0xeb, 0x38, 0x9f, 0x45, 0xdd, 0x8e, + 0x22, 0x6c, 0x2e, 0x18, 0xa1, 0x29, 0xe7, 0x09, + 0x91, 0x8e, 0xe8, 0x91, 0x9d, 0xfb, 0xa7, 0xb8, + 0xa0, 0x6c, 0xd5, 0x4d, 0xbc, 0x05, 0xea, 0xd3, + 0x9e, 0xc7, 0xd4, 0x3b, 0xf5, 0x85, 0xaf, 0xb4, + 0x36, 0xad, 0xaa, 0xae, 0xcb, 0x45, 0xd1, 0x9e, + 0x97, 0x64, 0x57, 0x52, 0x21, 0xc1, 0x01, 0x25, + 0xd4, 0x86, 0xed, 0xdf, 0xdd, 0xac, 0x83, 0x23, + 0x25, 0x8a, 0xb7, 0x67, 0x18, 0x99, 0xb5, 0x6b, + 0x1f, 0x5a, 0xcf, 0x35, 0xe5, 0xd3, 0x8f, 0x1a, + 0x6c, 0x92, 0x08, 0x60, 0x80, 0x3a, 0x7e, 0xdb, + 0xe3, 0xf2, 0xee, 0x1e, 0xe7, 0x9a, 0x76, 0x89, + 0xc1, 0xb3, 0x1a, 0xfc, 0x55, 0x06, 0xd9, 0xe1, + 0xea, 0xae, 0x0a, 0x8e, 0x7c, 0x2a, 0xd6, 0x52, + 0xf0, 0xc3, 0x9b, 0x68, 0xd2, 0x98, 0xdc, 0x8f, + 0x94, 0x0a, 0xb4, 0x35, 0xde, 0xe4, 0x79, 0xe3, + 0x7d, 0xa2, 0x26, 0x75, 0x16, 0xfb, 0x5e, 0x3e, + 0x87, 0x5e, 0xc3, 0xaa, 0x63, 0xd1, 0x7e, 0xc7, + 0x45, 0xf9, 0x1b, 0x55, 0xe0, 0xfa, 0xa9, 0xac, + 0x3b, 0x16, 0xf2, 0x04, 0xb2, 0x0f, 0xbb, 0x3e, + 0x29, 0x97, 0x2f, 0x20, 0x73, 0x4b, 0x73, 0x36, + 0xb2, 0x38, 0xfa, 0x00, 0xa3, 0xbe, 0x99, 0xab, + 0x69, 0xa4, 0x16, 0x4e, 0xd6, 0x3c, 0x9c, 0x27, + 0x55, 0x31, 0xcb, 0xc8, 0xd7, 0x32, 0x50, 0x7d, + 0x31, 0x03, 0x9e, 0xe8, 0xe6, 0x9f, 0x17, 0x79, + 0x8b, 0x57, 0x07, 0x27, 0x8d, 0xbb, 0x38, 0xef, + 0x07, 0x96, 0x46, 0xb5, 0x53, 0x69, 0x95, 0x70, + 0xc8, 0xf2, 0xcd, 0x72, 0x17, 0x4a, 0x86, 0xb5, + 0x81, 0x9e, 0x68, 0xde, 0x6b, 0xb5, 0x91, 0xdf, + 0xac, 0xd7, 0x64, 0xb1, 0x8b, 0xc1, 0xe2, 0xb1, + 0xe5, 0x41, 0x3d, 0x5b, 0xae, 0x8a, 0xd5, 0xbb, + 0x45, 0x9a, 0x68, 0x6f, 0x45, 0x7f, 0x73, 0x9c, + 0xb9, 0xa4, 0xe7, 0x79, 0x8e, 0xf2, 0x8d, 0xb7, + 0x99, 0xee, 0xb3, 0x8d, 0xb7, 0x21, 0xd6, 0xac, + 0x51, 0x12, 0x4b, 0x9d, 0xd6, 0x62, 0x63, 0x0c, + 0x5b, 0x02, 0x67, 0x69, 0xe5, 0x62, 0xc8, 0x4e, + 0x37, 0x88, 0x9e, 0xfd, 0xa6, 0x37, 0xd7, 0x97, + 0x58, 0x81, 0xdf, 0xdd, 0x78, 0x42, 0x27, 0xf8, + 0xe3, 0xc1, 0x57, 0xa7, 0xff, 0x00, 0xc1, 0xac, + 0x77, 0xe1, 0xf5, 0x3f, 0x68, 0x5e, 0xb2, 0x5b, + 0xcf, 0x7f, 0x6f, 0xb9, 0xfb, 0x4b, 0x35, 0xe5, + 0xd7, 0x97, 0x5e, 0x5d, 0x79, 0x75, 0xe5, 0xd7, + 0x97, 0x5e, 0x5d, 0x5d, 0xb5, 0x96, 0xee, 0x06, + 0xd8, 0x56, 0x2f, 0x16, 0x5d, 0x56, 0xa6, 0x27, + 0x22, 0xc5, 0x31, 0xbd, 0xdd, 0x23, 0x1e, 0xa1, + 0x44, 0x74, 0xfc, 0x43, 0xe6, 0x1f, 0xe2, 0x9d, + 0xf5, 0x90, 0xa7, 0x49, 0x42, 0xcb, 0x38, 0xc8, + 0x2e, 0xd2, 0x93, 0x3e, 0x43, 0xdc, 0x5d, 0xd0, + 0x91, 0x08, 0xda, 0x62, 0x4e, 0x19, 0x1d, 0xf1, + 0x32, 0x31, 0x11, 0xbc, 0xc9, 0x6d, 0x1a, 0xa3, + 0x89, 0x6d, 0x75, 0x15, 0xac, 0x90, 0x91, 0x54, + 0x95, 0x3c, 0x09, 0x07, 0x0b, 0xe6, 0x97, 0x6e, + 0xd9, 0xe5, 0xe4, 0xe8, 0x80, 0xf3, 0xb3, 0x9a, + 0x3d, 0xc6, 0xd2, 0x1c, 0xfe, 0x4d, 0x61, 0xaa, + 0xe5, 0xa2, 0xad, 0xdc, 0x6e, 0x54, 0x32, 0x12, + 0xa7, 0xe3, 0xef, 0x75, 0xab, 0xbe, 0x69, 0xd6, + 0xb1, 0x26, 0x03, 0x66, 0xb1, 0x2c, 0xa0, 0xd2, + 0xe5, 0x8f, 0x3c, 0x0c, 0xed, 0xbf, 0x8b, 0x33, + 0x3e, 0x38, 0xc3, 0xed, 0x63, 0xd0, 0xa8, 0xaa, + 0xb7, 0x1a, 0x96, 0xcb, 0x2f, 0x84, 0xc3, 0xc8, + 0x26, 0x79, 0x81, 0x1b, 0xc1, 0x4b, 0x39, 0x36, + 0xe5, 0x22, 0x9e, 0x50, 0xe6, 0xf1, 0x79, 0xf7, + 0x83, 0xe5, 0xbd, 0x4e, 0xb5, 0x51, 0x53, 0x71, + 0xa5, 0xd3, 0xbb, 0x36, 0xd9, 0x09, 0x5a, 0x5d, + 0xcd, 0xcb, 0xd1, 0x93, 0xd8, 0xf9, 0x99, 0x3b, + 0x11, 0x47, 0x24, 0x10, 0xf2, 0x47, 0x3f, 0x34, + 0x41, 0x07, 0x3a, 0x2b, 0xe4, 0xc5, 0x4b, 0x75, + 0x8a, 0xe3, 0x64, 0x41, 0x6d, 0x86, 0xf2, 0x81, + 0x4c, 0x8f, 0x2b, 0x24, 0x63, 0x96, 0x0e, 0x0a, + 0x26, 0x26, 0x06, 0x4c, 0x7e, 0xf1, 0x4c, 0x77, + 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, + 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xe2, 0x98, 0xdf, + 0xba, 0x3c, 0x05, 0x3f, 0xf3, 0xf6, 0x9b, 0xb1, + 0xa6, 0xfe, 0x0c, 0x7f, 0xad, 0x4e, 0xb0, 0xdf, + 0x8d, 0xd5, 0xfb, 0x25, 0xcd, 0x07, 0xbd, 0x1a, + 0x3f, 0x7a, 0x75, 0x67, 0xf1, 0xa6, 0x47, 0xf6, + 0x92, 0xd7, 0xfd, 0x2a, 0xff, 0x00, 0xfc, 0x3a, + 0x56, 0xdd, 0xdd, 0x4e, 0x22, 0x10, 0x3f, 0xf1, + 0xa0, 0x71, 0xae, 0x31, 0x89, 0xf7, 0x8b, 0xbe, + 0x3e, 0xad, 0x0c, 0xa7, 0x13, 0xe4, 0xaf, 0x56, + 0xf0, 0xb4, 0xb3, 0xb0, 0x53, 0xc6, 0x82, 0x89, + 0xdd, 0x05, 0x14, 0x09, 0x5a, 0x79, 0xb9, 0x6e, + 0x1e, 0x9e, 0xf3, 0x1e, 0x20, 0x80, 0x94, 0x73, + 0x04, 0xc1, 0x1c, 0xc9, 0x80, 0x46, 0x1b, 0x10, + 0xc8, 0xcd, 0x13, 0xc1, 0x4f, 0xa8, 0x55, 0x64, + 0x08, 0xc9, 0x2f, 0x1e, 0x71, 0xed, 0x31, 0x07, + 0xc9, 0x58, 0x80, 0x7b, 0xdb, 0x2e, 0x25, 0x04, + 0x2e, 0x41, 0xe5, 0xc8, 0xb6, 0x0e, 0xab, 0x62, + 0xac, 0x63, 0x5c, 0xab, 0xf7, 0x3e, 0xd5, 0x49, + 0x1a, 0x39, 0x6c, 0x77, 0x73, 0x7b, 0x55, 0x98, + 0x74, 0xd5, 0x2e, 0x58, 0xf7, 0x7b, 0x3f, 0xda, + 0xe7, 0xc5, 0x3e, 0x52, 0x9d, 0xb5, 0x4c, 0xdd, + 0x8b, 0x7a, 0x97, 0x7e, 0xd2, 0xe9, 0x55, 0x32, + 0x24, 0x6c, 0x76, 0x1c, 0x7d, 0x35, 0x81, 0x47, + 0x5b, 0x74, 0xf5, 0x0a, 0x3d, 0xac, 0xdf, 0x0a, + 0x59, 0xf9, 0x44, 0xe4, 0x66, 0x27, 0x4c, 0xc7, + 0xe3, 0xaa, 0xbb, 0x20, 0x03, 0x59, 0x76, 0x56, + 0xee, 0xa5, 0x45, 0x93, 0xd7, 0x02, 0x90, 0xb0, + 0xd1, 0x4c, 0xd8, 0x82, 0x01, 0x0b, 0x4c, 0x95, + 0x8a, 0xe7, 0x76, 0xf2, 0xed, 0x3e, 0x38, 0xee, + 0xcd, 0x5c, 0xad, 0x57, 0x14, 0xe7, 0x37, 0x1e, + 0xd9, 0x45, 0xbd, 0x9d, 0x56, 0x16, 0x97, 0x0f, + 0xba, 0x4f, 0x5c, 0xec, 0x0d, 0x76, 0xb6, 0x37, + 0x89, 0x90, 0x4b, 0x58, 0x51, 0x13, 0x13, 0x31, + 0xb4, 0xc6, 0xb8, 0x8f, 0x21, 0x6f, 0xb5, 0x57, + 0xbd, 0x84, 0x76, 0x3d, 0x23, 0x5e, 0x79, 0x56, + 0x30, 0x56, 0xac, 0xca, 0x5c, 0x36, 0x54, 0xc5, + 0x4b, 0xb9, 0xc2, 0x23, 0xc5, 0x81, 0x62, 0xb9, + 0x4b, 0xdd, 0x41, 0x79, 0x35, 0x73, 0x35, 0x9c, + 0xb3, 0x95, 0x4a, 0xeb, 0xe4, 0x42, 0x88, 0xc6, + 0x36, 0x6b, 0x4e, 0xfd, 0x44, 0x0b, 0x46, 0x48, + 0x1f, 0x5d, 0xb3, 0xbe, 0xf2, 0x5b, 0xcc, 0x1c, + 0x46, 0xdb, 0x78, 0xbf, 0x77, 0x58, 0x53, 0xe1, + 0xc3, 0xb9, 0x94, 0xad, 0xc4, 0x0a, 0x33, 0xa0, + 0x97, 0xac, 0x06, 0xe8, 0x9a, 0x39, 0x61, 0xc0, + 0xe9, 0x18, 0x52, 0xb9, 0x07, 0x72, 0x61, 0x3a, + 0x41, 0x4a, 0x4a, 0xc4, 0xa5, 0x85, 0x2b, 0x5f, + 0x5c, 0xcb, 0x13, 0x38, 0xb7, 0xc6, 0x44, 0x6b, + 0xcd, 0xbe, 0xcd, 0x2c, 0xaf, 0x1c, 0xd5, 0xa3, + 0x97, 0x77, 0x29, 0xd2, 0xee, 0xce, 0xf1, 0x89, + 0x28, 0x0f, 0x68, 0x6b, 0x27, 0xa9, 0xcc, 0xad, + 0xba, 0x80, 0x62, 0x3d, 0x0b, 0x38, 0x5b, 0x0a, + 0xcb, 0xce, 0x6d, 0x14, 0x62, 0xdc, 0xde, 0xaa, + 0x49, 0xfd, 0xf3, 0x4d, 0x4e, 0x46, 0x3a, 0x50, + 0x17, 0x48, 0x45, 0xe7, 0xd5, 0x07, 0xf5, 0x89, + 0x50, 0x22, 0x07, 0x00, 0x6f, 0x19, 0x89, 0x08, + 0x3b, 0xf7, 0xb1, 0x56, 0x2b, 0xd4, 0x53, 0x65, + 0x2c, 0x71, 0x12, 0x4e, 0x00, 0xe1, 0x92, 0xad, + 0xcc, 0x54, 0xe3, 0x60, 0xa8, 0x98, 0x3c, 0xa1, + 0x62, 0x43, 0xb3, 0xb3, 0x99, 0x7d, 0x36, 0x94, + 0x39, 0x52, 0x68, 0xb1, 0x87, 0xa7, 0x7a, 0xf5, + 0x2f, 0x03, 0x53, 0xc8, 0xdc, 0x7b, 0x0e, 0xbc, + 0xf4, 0xdc, 0xf1, 0x73, 0x1c, 0xb4, 0xc4, 0x45, + 0x72, 0x74, 0x02, 0xd6, 0x25, 0x09, 0x4a, 0xec, + 0x3c, 0x79, 0xa3, 0x9a, 0x67, 0x9c, 0x34, 0xfb, + 0xf8, 0xfc, 0x6d, 0x8b, 0x55, 0x2b, 0x73, 0x75, + 0x5c, 0xbe, 0x4f, 0x28, 0x0f, 0x39, 0x0a, 0x80, + 0xd8, 0x2d, 0xb0, 0x62, 0x3d, 0xf2, 0x15, 0x81, + 0xa7, 0x1b, 0x8c, 0x72, 0xee, 0x43, 0x13, 0xe1, + 0x64, 0x63, 0x98, 0xcc, 0x77, 0x49, 0xee, 0xed, + 0x50, 0xea, 0xd0, 0x3d, 0x3a, 0xc6, 0x4b, 0x74, + 0xf2, 0x13, 0xe1, 0xdc, 0xc2, 0x62, 0x43, 0x0b, + 0xe9, 0xf5, 0x19, 0xb4, 0xf4, 0xc4, 0xe3, 0xbf, + 0x55, 0x2c, 0x64, 0xf1, 0xb6, 0x2a, 0xd3, 0xb3, + 0x62, 0xba, 0x65, 0xdc, 0xe8, 0x22, 0x0e, 0xd0, + 0x43, 0xcb, 0x0c, 0x05, 0xb5, 0xac, 0xac, 0x73, + 0x13, 0xe2, 0xc5, 0x95, 0x07, 0x8f, 0xe2, 0x4c, + 0x73, 0xf8, 0xba, 0xcb, 0x63, 0x30, 0x14, 0xed, + 0xe4, 0x2b, 0xe3, 0x0e, 0xb8, 0x13, 0x9c, 0xda, + 0xa1, 0x31, 0xd6, 0xac, 0xa7, 0x6c, 0x6e, 0x64, + 0xd3, 0x41, 0x1e, 0xe6, 0x5b, 0x02, 0xe3, 0x9a, + 0x03, 0x69, 0x21, 0xfe, 0x14, 0xb6, 0xbd, 0x85, + 0x9a, 0x5e, 0x93, 0x25, 0xb5, 0x4c, 0x89, 0x13, + 0x5b, 0x02, 0x76, 0x20, 0x21, 0x9f, 0x24, 0xc4, + 0xfd, 0x4c, 0x1c, 0x44, 0xed, 0xcd, 0x93, 0xaa, + 0x3d, 0xdf, 0x78, 0x9b, 0x02, 0x51, 0xef, 0x4c, + 0x4c, 0xc4, 0xff, 0x00, 0x14, 0xfd, 0x48, 0x38, + 0xfe, 0x07, 0x13, 0xd2, 0x93, 0xff, 0x00, 0x14, + 0x0b, 0x17, 0x93, 0x08, 0x29, 0xfe, 0x29, 0x39, + 0x11, 0xf7, 0xe7, 0x5e, 0x5d, 0x77, 0x16, 0xd3, + 0xf7, 0x27, 0xef, 0x7f, 0x1e, 0xb1, 0xfc, 0x45, + 0x9c, 0xcc, 0xd8, 0xc7, 0x5d, 0x4d, 0x7a, 0xe1, + 0x96, 0xc1, 0xf8, 0x3a, 0xc5, 0x91, 0xc8, 0x3a, + 0x90, 0x7f, 0x7b, 0x5a, 0x54, 0x4a, 0xd6, 0x9b, + 0x3b, 0x40, 0x72, 0xba, 0x64, 0xa4, 0x7c, 0x53, + 0x95, 0x7b, 0xbd, 0x71, 0x07, 0x0f, 0xde, 0x73, + 0x78, 0x6b, 0x1f, 0x77, 0x2e, 0x39, 0x5c, 0x45, + 0x95, 0xa1, 0xd9, 0x05, 0xd6, 0x15, 0x6c, 0x03, + 0x5a, 0xca, 0x80, 0x99, 0x60, 0xe6, 0x40, 0x20, + 0xbc, 0x53, 0xe9, 0xc1, 0xb2, 0x60, 0x09, 0x40, + 0xa0, 0x19, 0x7d, 0x2a, 0xb7, 0xd9, 0xe0, 0xcc, + 0x67, 0x03, 0x64, 0x70, 0x18, 0xfb, 0xf6, 0x11, + 0x63, 0xa9, 0x91, 0xc8, 0x36, 0x53, 0x21, 0x22, + 0xb0, 0x51, 0xb1, 0x20, 0xd9, 0x19, 0xe9, 0x75, + 0x85, 0x40, 0xb8, 0x89, 0x82, 0xe9, 0xc7, 0x2c, + 0x6b, 0xd8, 0xd4, 0x19, 0x7c, 0x44, 0xb0, 0xb7, + 0xb2, 0xce, 0xcc, 0x47, 0x46, 0xd4, 0xf6, 0x35, + 0xbe, 0xda, 0x58, 0x82, 0x2d, 0x93, 0x30, 0xee, + 0x75, 0x89, 0x16, 0xd5, 0xba, 0xd2, 0x3e, 0x42, + 0xe5, 0x99, 0xdb, 0x55, 0xd2, 0x9c, 0x88, 0x99, + 0x0f, 0xb2, 0x45, 0xcc, 0xd3, 0x07, 0xa3, 0x6e, + 0x3f, 0xb1, 0x0c, 0xb4, 0xf3, 0x55, 0xcf, 0x19, + 0x11, 0x13, 0x12, 0x07, 0x05, 0xd1, 0xef, 0xb3, + 0x1c, 0xdd, 0xe9, 0x89, 0xde, 0x23, 0xd9, 0x19, + 0xd1, 0x90, 0x93, 0x4e, 0x65, 0x78, 0x78, 0xc5, + 0x4a, 0x97, 0x65, 0x6d, 0xb9, 0x15, 0xa6, 0x26, + 0xc8, 0xa0, 0x99, 0x5a, 0x62, 0xab, 0x02, 0x37, + 0x80, 0x3b, 0x40, 0xb0, 0xe7, 0xd8, 0xa2, 0x19, + 0x11, 0x3a, 0xbe, 0x86, 0x67, 0x0f, 0x88, 0xed, + 0x39, 0x09, 0x5e, 0x21, 0x39, 0x0c, 0x2c, 0x23, + 0x35, 0x8b, 0x66, 0xcb, 0xe7, 0x9b, 0x39, 0x55, + 0x2e, 0xbd, 0x47, 0x80, 0x92, 0xf9, 0xcc, 0x92, + 0xa8, 0x71, 0x19, 0x6c, 0x4c, 0xb0, 0x33, 0xb8, + 0xe7, 0xeb, 0x57, 0xc9, 0x9d, 0x2c, 0xdd, 0x9c, + 0x95, 0x16, 0xd1, 0x14, 0x8b, 0xe1, 0xa6, 0x80, + 0x85, 0x8d, 0x82, 0x17, 0x02, 0xe5, 0x21, 0xe2, + 0xf3, 0x44, 0x8b, 0x18, 0x05, 0x31, 0xbe, 0xd1, + 0x3d, 0xdb, 0x86, 0x43, 0x88, 0xaf, 0x59, 0xb2, + 0x9b, 0x14, 0xdf, 0x8d, 0x75, 0xc6, 0xfe, 0xfb, + 0x65, 0x45, 0x58, 0x1d, 0x81, 0xa2, 0x96, 0x43, + 0x04, 0xd6, 0xa3, 0xd8, 0x98, 0xae, 0x93, 0x20, + 0x82, 0x4f, 0xda, 0x59, 0x33, 0xcb, 0x38, 0x65, + 0x17, 0x12, 0x1e, 0x42, 0x8d, 0x1a, 0x79, 0x62, + 0xb1, 0x7f, 0xc0, 0xa8, 0xc5, 0xd0, 0x5d, 0xab, + 0x88, 0xe9, 0xa1, 0x54, 0xa8, 0x50, 0xc6, 0x2e, + 0xf0, 0x49, 0x7f, 0x7c, 0x13, 0x98, 0xf5, 0x73, + 0xf2, 0x90, 0x6d, 0xdf, 0xca, 0xbc, 0x39, 0xda, + 0x88, 0xca, 0xbf, 0x8d, 0x30, 0xf6, 0x93, 0x53, + 0xa6, 0xe9, 0x93, 0xaa, 0x27, 0x41, 0x64, 0xde, + 0xac, 0x2f, 0xb3, 0xc6, 0xc6, 0x27, 0x1c, 0x84, + 0xd8, 0x67, 0x8b, 0xdc, 0x3b, 0x4c, 0x6f, 0xc6, + 0x39, 0x00, 0xcb, 0x59, 0x7e, 0x72, 0xe5, 0x3b, + 0x78, 0x98, 0xc2, 0x15, 0x36, 0x88, 0xa2, 0xcd, + 0xa4, 0x29, 0x47, 0x68, 0xae, 0x4e, 0xf5, 0xdb, + 0x5b, 0x68, 0x16, 0x8a, 0xf7, 0x03, 0x11, 0xdc, + 0x36, 0x22, 0xdb, 0x6e, 0x07, 0xb8, 0xcc, 0x90, + 0xc5, 0x1c, 0x57, 0x0c, 0xd7, 0xa7, 0x91, 0x77, + 0x42, 0xdc, 0xc5, 0x6b, 0xc2, 0xab, 0xe2, 0xc4, + 0xf4, 0xe1, 0x12, 0xd6, 0x4e, 0xec, 0x40, 0xcb, + 0x12, 0x0c, 0x54, 0xef, 0x1e, 0x3c, 0xc0, 0xcc, + 0xc5, 0x6a, 0xd7, 0x33, 0x85, 0x84, 0xb1, 0x86, + 0xc9, 0x64, 0x9e, 0x12, 0xbc, 0x2d, 0x7c, 0x9b, + 0x72, 0x75, 0x6c, 0xbd, 0xb6, 0x51, 0x34, 0x1d, + 0x6e, 0x9d, 0xc1, 0xc7, 0x5b, 0x12, 0xe4, 0x89, + 0x63, 0x01, 0x71, 0xbe, 0xdc, 0xc0, 0x51, 0x30, + 0x48, 0xc4, 0xa3, 0xb5, 0x31, 0xf7, 0x03, 0x89, + 0x32, 0x99, 0x1b, 0xd5, 0x18, 0x1c, 0x96, 0x22, + 0x9d, 0x9b, 0x16, 0x4d, 0x66, 0xc6, 0xa6, 0xad, + 0x7a, 0x12, 0xe6, 0xa8, 0xc7, 0x9a, 0x2a, 0xc4, + 0x08, 0x19, 0xf7, 0x28, 0x22, 0x26, 0x23, 0x89, + 0x69, 0xe3, 0xf3, 0x75, 0xe5, 0x19, 0x05, 0x62, + 0xa7, 0x0d, 0x89, 0xaf, 0x8a, 0xb5, 0x45, 0x54, + 0xa2, 0xad, 0x8a, 0xec, 0xb4, 0xb7, 0x94, 0x54, + 0x05, 0xb2, 0xeb, 0xa3, 0x7e, 0x67, 0x49, 0x18, + 0x92, 0xeb, 0xac, 0x66, 0xc7, 0x72, 0xc0, 0x78, + 0x82, 0xd5, 0x7e, 0x2a, 0xb1, 0x8c, 0x4d, 0xb3, + 0xc6, 0x1a, 0x5c, 0x78, 0xa3, 0xc9, 0x61, 0x72, + 0x35, 0xd1, 0x4e, 0xba, 0xac, 0x55, 0xb5, 0x8e, + 0x3a, 0x8a, 0xc9, 0x2e, 0xc7, 0x50, 0x5a, 0xae, + 0xba, 0x9f, 0x5a, 0x09, 0x05, 0x30, 0x25, 0x12, + 0x22, 0x47, 0x76, 0xce, 0x09, 0x60, 0x9c, 0x71, + 0x74, 0x44, 0x3a, 0x68, 0xec, 0xaa, 0x6b, 0x16, + 0xa1, 0x07, 0x3d, 0x55, 0xbc, 0xa9, 0x5b, 0x8e, + 0x24, 0x84, 0x26, 0x04, 0xb6, 0xf1, 0x8c, 0x60, + 0xc8, 0xb5, 0xe5, 0xd6, 0x0c, 0x77, 0xfb, 0xb9, + 0x39, 0x9f, 0xe2, 0x88, 0xc3, 0x64, 0x7b, 0xe7, + 0xef, 0x47, 0xf1, 0xeb, 0x1b, 0xf8, 0x7d, 0x3f, + 0xda, 0x17, 0xac, 0xa8, 0xef, 0xe4, 0xc9, 0x5f, + 0x8e, 0xff, 0x00, 0xe2, 0xb4, 0xdd, 0x79, 0x75, + 0xe5, 0xd7, 0x97, 0x5e, 0x5d, 0x79, 0x75, 0xe5, + 0xd7, 0x97, 0x5c, 0x35, 0x88, 0xb4, 0xa7, 0x67, + 0x6c, 0x50, 0x52, 0x73, 0x47, 0x63, 0x0b, 0x92, + 0x5f, 0x42, 0xb6, 0x59, 0xc6, 0xc6, 0x18, 0xb5, + 0x95, 0xae, 0x2c, 0x5b, 0x61, 0x05, 0xcc, 0x10, + 0xa6, 0x73, 0xf4, 0xd5, 0xc9, 0xcc, 0x31, 0xcf, + 0xdf, 0xc6, 0xf9, 0x1c, 0x76, 0x6b, 0x17, 0xd2, + 0xcf, 0x70, 0x8f, 0x6c, 0xa6, 0x01, 0x91, 0xa7, + 0xd5, 0x8c, 0x9b, 0x84, 0x86, 0xc5, 0x18, 0x5c, + 0x3a, 0x4f, 0xb7, 0x11, 0x8f, 0x5c, 0xab, 0x6d, + 0xd7, 0xe6, 0x7c, 0xf8, 0x9d, 0xda, 0xf6, 0x38, + 0x46, 0x53, 0x27, 0x43, 0xa7, 0x52, 0x9e, 0x5e, + 0x2c, 0x83, 0x2e, 0x84, 0x05, 0x2b, 0x70, 0xc9, + 0x9c, 0x68, 0x64, 0xfa, 0x6d, 0xea, 0xd2, 0x44, + 0x9c, 0x2f, 0x6e, 0xaf, 0x4c, 0x39, 0x20, 0x79, + 0xbd, 0xa3, 0x9e, 0x63, 0x81, 0xc6, 0xce, 0x73, + 0x85, 0xe0, 0xe8, 0x58, 0xe2, 0x60, 0xc8, 0x78, + 0x32, 0xf5, 0x24, 0x63, 0x31, 0xe3, 0x62, 0x8b, + 0x0a, 0x8a, 0x80, 0x89, 0x81, 0xbd, 0x7e, 0x49, + 0x5d, 0x75, 0xda, 0x39, 0x38, 0xb1, 0x60, 0x64, + 0x4a, 0xc3, 0xac, 0x49, 0x11, 0x70, 0xfd, 0x73, + 0xe2, 0x9c, 0x6e, 0x02, 0xc7, 0x0d, 0x5e, 0xb6, + 0x56, 0x91, 0x90, 0xb0, 0x35, 0xbb, 0x42, 0xdd, + 0x74, 0xed, 0x2e, 0xe6, 0x38, 0x8d, 0x82, 0x2f, + 0xb1, 0xc9, 0x1c, 0xbb, 0x07, 0x31, 0x43, 0x0a, + 0x79, 0xba, 0x70, 0x4b, 0xea, 0xf1, 0x96, 0x30, + 0x33, 0x54, 0x70, 0x51, 0x73, 0x21, 0x8e, 0xb7, + 0x46, 0xf6, 0x50, 0xfb, 0x25, 0x4c, 0x8d, 0x7c, + 0x7a, 0x6b, 0xd5, 0x67, 0x55, 0x8c, 0x95, 0xf8, + 0xed, 0x94, 0xf5, 0xd7, 0x5c, 0xbd, 0xbe, 0x40, + 0x96, 0x5d, 0x22, 0xe9, 0xbb, 0xa7, 0xc2, 0xd0, + 0x9b, 0x53, 0x71, 0x53, 0xc2, 0xf8, 0xf9, 0x55, + 0xb3, 0x12, 0x12, 0xb4, 0xbe, 0xfe, 0x4b, 0x24, + 0x27, 0xe3, 0x89, 0x3c, 0x76, 0x6c, 0x89, 0xf8, + 0xd1, 0xcd, 0xb1, 0x77, 0xeb, 0xcb, 0xaf, 0x2e, + 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, + 0xba, 0xe2, 0xff, 0x00, 0xbb, 0xcb, 0x1c, 0x3d, + 0xff, 0x00, 0xed, 0x59, 0xc8, 0xff, 0x00, 0xdf, + 0xcb, 0x3f, 0x93, 0x4d, 0xfc, 0x18, 0xff, 0x00, + 0x5a, 0x9d, 0x61, 0xbf, 0x1b, 0xaf, 0xf6, 0x4b, + 0x9a, 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xea, 0xcf, + 0xe3, 0x3c, 0x8f, 0xed, 0x25, 0xaf, 0xfa, 0x50, + 0xff, 0x00, 0xf1, 0xb5, 0x4c, 0xbe, 0xff, 0x00, + 0x14, 0x44, 0x7f, 0xd9, 0x16, 0x27, 0x5e, 0x5d, + 0x79, 0x75, 0xc3, 0x9e, 0x06, 0xbf, 0x8e, 0x0c, + 0x8e, 0x0e, 0xb3, 0xb1, 0xb9, 0x4a, 0x37, 0x2c, + 0x74, 0x18, 0xb5, 0xf5, 0x00, 0x91, 0x6d, 0x60, + 0x20, 0xc9, 0x25, 0x18, 0xc7, 0xbb, 0x81, 0xe5, + 0x32, 0x9e, 0x4e, 0xa7, 0x51, 0x4c, 0x01, 0xe2, + 0x1e, 0x1c, 0xc3, 0xe7, 0xd5, 0x36, 0xee, 0xe1, + 0x7c, 0x1f, 0x8d, 0xcb, 0x39, 0x8b, 0x52, 0x7c, + 0x30, 0x5c, 0x93, 0x62, 0xad, 0x7b, 0x09, 0x9e, + 0x59, 0xe6, 0x67, 0x88, 0xa6, 0x0c, 0x0b, 0x79, + 0xc4, 0x94, 0x10, 0xd3, 0x08, 0x36, 0xf0, 0x1f, + 0x0e, 0xe6, 0x72, 0x55, 0xf2, 0x1c, 0x40, 0xac, + 0xf5, 0x9b, 0x8d, 0xe9, 0xd9, 0x9b, 0x45, 0x42, + 0x8b, 0x6b, 0xbf, 0xa4, 0xa6, 0xbd, 0x9b, 0x33, + 0xdb, 0xb9, 0x80, 0xd7, 0xd4, 0x81, 0x92, 0x88, + 0x9e, 0x58, 0x90, 0x50, 0xcc, 0xf1, 0xd3, 0xec, + 0x5d, 0x71, 0x95, 0x4e, 0x2c, 0xa3, 0x35, 0xc8, + 0x9e, 0x73, 0x35, 0xf6, 0xbe, 0x71, 0xbd, 0x7d, + 0xca, 0x65, 0x51, 0x02, 0xa1, 0xdb, 0xa5, 0xb6, + 0xdc, 0xbb, 0xc6, 0xb8, 0xd3, 0x2e, 0x37, 0x80, + 0xaa, 0x5f, 0xe0, 0xdb, 0x36, 0xb0, 0xad, 0x45, + 0xa2, 0x39, 0x58, 0xd7, 0xad, 0x4c, 0x1a, 0x4b, + 0x8e, 0xe1, 0x41, 0x13, 0x4e, 0x18, 0xbe, 0x89, + 0x4c, 0x96, 0xf0, 0xde, 0xe2, 0xd6, 0x1a, 0xa7, + 0x0f, 0xe6, 0xd3, 0x4b, 0x27, 0x8a, 0xc8, 0xdc, + 0x76, 0x6d, 0x4f, 0xbc, 0xda, 0xd6, 0x19, 0xda, + 0x2c, 0x13, 0x53, 0x78, 0x88, 0x39, 0x99, 0x64, + 0x39, 0x4a, 0x3b, 0xcf, 0xc4, 0x93, 0xe6, 0x57, + 0x37, 0x32, 0xf6, 0xd7, 0xb2, 0x55, 0x9a, 0x0f, + 0x53, 0xd2, 0x0f, 0xe1, 0x54, 0x76, 0x95, 0x48, + 0x74, 0xed, 0xbd, 0x2d, 0x14, 0xd9, 0xb0, 0xae, + 0x49, 0xe5, 0x21, 0x36, 0x01, 0x6c, 0x41, 0x32, + 0x27, 0x11, 0xcf, 0x13, 0xe3, 0x6b, 0x2d, 0x90, + 0x55, 0x6c, 0x75, 0xd6, 0x47, 0x11, 0xd6, 0x47, + 0x43, 0x24, 0x89, 0xb3, 0x5f, 0x66, 0x52, 0x09, + 0xe7, 0xe9, 0x0b, 0x92, 0x5c, 0xf1, 0xcb, 0xe2, + 0x97, 0x3e, 0xd1, 0xdf, 0xdd, 0x3a, 0x9f, 0x0c, + 0xb2, 0x95, 0x62, 0x7e, 0x1a, 0xd6, 0x2f, 0x0d, + 0x59, 0x26, 0x78, 0xca, 0x09, 0x7b, 0x7a, 0x32, + 0x35, 0x12, 0xe1, 0x36, 0xba, 0xa9, 0xdc, 0xe9, + 0x72, 0x8b, 0xfa, 0x8c, 0x77, 0x57, 0x91, 0x55, + 0xfb, 0xfb, 0x3a, 0x35, 0x47, 0x16, 0xc8, 0xa3, + 0x56, 0xee, 0x33, 0x85, 0x73, 0x8d, 0x25, 0x56, + 0xcd, 0x5a, 0xcd, 0x3a, 0xa4, 0x34, 0xa9, 0x1a, + 0x55, 0x6a, 0xe5, 0xda, 0xe9, 0x6c, 0xb2, 0x79, + 0x7a, 0xaa, 0x86, 0x13, 0x19, 0xd2, 0xe5, 0x2d, + 0x85, 0x72, 0xbe, 0x6c, 0x33, 0xde, 0xf2, 0x73, + 0xdb, 0xec, 0x93, 0x8d, 0x13, 0x36, 0xb2, 0x58, + 0xd3, 0xfd, 0xe7, 0x5a, 0x22, 0x48, 0x8a, 0x64, + 0xcb, 0xba, 0x22, 0x37, 0x9f, 0xbd, 0xb6, 0xb8, + 0xf7, 0x31, 0x96, 0xce, 0x54, 0xb9, 0x86, 0xc9, + 0x54, 0xbd, 0x8d, 0xc5, 0xd3, 0x1b, 0xb2, 0xe6, + 0x16, 0x40, 0xb9, 0x90, 0xba, 0x31, 0x57, 0xbc, + 0x52, 0xfa, 0x46, 0x27, 0x59, 0xa2, 0xad, 0xc8, + 0x45, 0x4d, 0x7b, 0xa1, 0x62, 0xb6, 0x48, 0xf0, + 0xa6, 0x3f, 0xb5, 0x9c, 0x52, 0x9e, 0x08, 0x07, + 0x1a, 0x21, 0xd3, 0x08, 0x26, 0x1d, 0x2b, 0xb2, + 0x44, 0xc5, 0xf3, 0x74, 0xc8, 0xf7, 0x42, 0xb6, + 0x92, 0x8e, 0x68, 0xe5, 0x8d, 0xb5, 0x84, 0xb3, + 0x4b, 0xb0, 0x14, 0xf0, 0xfb, 0x32, 0x7e, 0x16, + 0x2b, 0x7c, 0x41, 0x77, 0x10, 0x38, 0xd3, 0x97, + 0x3d, 0xdd, 0xa1, 0xf5, 0x2b, 0x21, 0xe9, 0xbe, + 0x9b, 0x2a, 0x99, 0x64, 0x4d, 0x98, 0xe9, 0x84, + 0x73, 0x40, 0xf8, 0xc0, 0xd1, 0x0e, 0x0e, 0x80, + 0xba, 0x54, 0x68, 0xe4, 0xb3, 0x3c, 0x41, 0xda, + 0x66, 0xbb, 0xc8, 0x40, 0x2b, 0x1e, 0x61, 0x91, + 0xcc, 0x5e, 0xe3, 0x98, 0x14, 0xa6, 0x11, 0x07, + 0x54, 0x36, 0xfe, 0x14, 0x8c, 0x6b, 0x89, 0x96, + 0x35, 0x6b, 0xa1, 0x65, 0x95, 0xe1, 0xb7, 0xd6, + 0xb3, 0x39, 0x49, 0xca, 0x64, 0xb2, 0xc9, 0x8c, + 0x9d, 0x05, 0x96, 0x52, 0xd1, 0x9d, 0x87, 0x35, + 0x48, 0xe4, 0x88, 0x4a, 0x54, 0x40, 0x02, 0xbe, + 0x93, 0xe6, 0x24, 0x80, 0xa3, 0x97, 0x8b, 0x31, + 0xc9, 0xf0, 0x5d, 0xf5, 0x78, 0x5b, 0x1e, 0xf6, + 0xd1, 0x66, 0x49, 0xf8, 0xcc, 0x95, 0x65, 0xce, + 0x2e, 0x92, 0xcf, 0x21, 0x55, 0xc9, 0x5b, 0x22, + 0xc0, 0x77, 0xc2, 0xc4, 0x20, 0x93, 0x2b, 0x78, + 0xf7, 0xbc, 0x79, 0xc3, 0x59, 0x78, 0xa1, 0x7c, + 0xb2, 0x15, 0xfa, 0xaa, 0xda, 0xc3, 0x1f, 0x36, + 0x8b, 0xa9, 0x15, 0xd4, 0x2d, 0x47, 0x6a, 0x29, + 0x92, 0xb0, 0x35, 0x99, 0x04, 0x80, 0x61, 0x11, + 0x97, 0x2a, 0xe0, 0x49, 0x8c, 0x21, 0x96, 0x17, + 0x97, 0x5c, 0x3a, 0x3b, 0xfb, 0xac, 0xc5, 0x08, + 0xff, 0x00, 0xef, 0x80, 0xfa, 0x96, 0xf0, 0x79, + 0x10, 0x33, 0xa3, 0x97, 0x85, 0x21, 0x92, 0xae, + 0x58, 0x7d, 0x6b, 0x00, 0xce, 0x6a, 0x97, 0x50, + 0x45, 0x13, 0xed, 0xb5, 0x9b, 0x3c, 0xd0, 0x33, + 0xe2, 0x18, 0x91, 0x09, 0xc4, 0xf7, 0x6a, 0xe5, + 0x22, 0xe3, 0xac, 0x58, 0x9d, 0x3b, 0x56, 0x2a, + 0x34, 0x5f, 0x87, 0xcf, 0x43, 0x45, 0xb5, 0x9c, + 0x69, 0x68, 0x9f, 0x67, 0xa7, 0x61, 0x3b, 0xc1, + 0x84, 0xc6, 0xeb, 0x73, 0x02, 0x7c, 0xb0, 0x53, + 0x1a, 0xf4, 0xf3, 0x0b, 0xea, 0x9e, 0x24, 0xfa, + 0x33, 0x5e, 0x9e, 0x61, 0x7d, 0x53, 0xc4, 0x9f, + 0x46, 0x6b, 0xd3, 0xcc, 0x2f, 0xaa, 0x78, 0x93, + 0xe8, 0xcd, 0x7a, 0x79, 0x85, 0xf5, 0x4f, 0x12, + 0x7d, 0x19, 0xaf, 0x4f, 0x30, 0xbe, 0xa9, 0xe2, + 0x4f, 0xa3, 0x35, 0xe9, 0xe6, 0x17, 0xd5, 0x3c, + 0x49, 0xf4, 0x66, 0xb6, 0x8e, 0x3b, 0xc3, 0x7a, + 0xa7, 0x89, 0x3e, 0x8c, 0xd6, 0xd3, 0xc7, 0x78, + 0x68, 0x9f, 0xbd, 0x38, 0x8e, 0x24, 0x89, 0xfe, + 0x4c, 0xd7, 0xa7, 0x98, 0x5f, 0x54, 0xf1, 0x27, + 0xd1, 0x9a, 0xf4, 0xf3, 0x0b, 0xea, 0x9e, 0x24, + 0xfa, 0x33, 0x5e, 0x9e, 0x61, 0x7d, 0x53, 0xc4, + 0x9f, 0x46, 0x69, 0x36, 0x13, 0xc7, 0xd8, 0x51, + 0x75, 0x77, 0x29, 0xea, 0x2f, 0x04, 0x71, 0x09, + 0x72, 0xb5, 0x27, 0x0c, 0x59, 0x72, 0x96, 0x2e, + 0x44, 0xb6, 0x31, 0x89, 0xe5, 0x28, 0x91, 0x9f, + 0x21, 0x44, 0xc6, 0xac, 0xe4, 0xf2, 0x1e, 0xc8, + 0x58, 0x47, 0xdd, 0xb8, 0xce, 0xad, 0x86, 0xc6, + 0x17, 0x3c, 0xae, 0x73, 0xe5, 0x81, 0xdf, 0xa6, + 0x9c, 0x4a, 0xd4, 0x3d, 0xc3, 0x1d, 0xc0, 0x03, + 0x1f, 0x77, 0xcb, 0xaf, 0x4f, 0x30, 0xbe, 0xa9, + 0xe2, 0x4f, 0xa3, 0x35, 0xe9, 0xe6, 0x17, 0xd5, + 0x3c, 0x49, 0xf4, 0x66, 0xbd, 0x3c, 0xc2, 0xfa, + 0xa7, 0x89, 0x3e, 0x8c, 0xd7, 0xa7, 0x98, 0x5f, + 0x54, 0xf1, 0x27, 0xd1, 0x9a, 0xf4, 0xf3, 0x0b, + 0xea, 0x9e, 0x24, 0xfa, 0x33, 0x5e, 0x9e, 0x61, + 0x7d, 0x53, 0xc4, 0x9f, 0x46, 0x6b, 0xd3, 0xcc, + 0x2f, 0xaa, 0x78, 0x93, 0xe8, 0xcd, 0x2f, 0x88, + 0x2b, 0xe5, 0x23, 0x39, 0x77, 0x2e, 0x8b, 0xd4, + 0xa8, 0x5b, 0x4d, 0x77, 0xd3, 0xa7, 0x45, 0x0b, + 0x6f, 0x65, 0xbe, 0x6a, 0x5d, 0xa1, 0x0b, 0x6c, + 0xb4, 0xc2, 0x83, 0x40, 0x34, 0xc1, 0x02, 0xb5, + 0xf3, 0x90, 0x89, 0x6e, 0x25, 0x20, 0xc0, 0x9e, + 0x53, 0x59, 0x09, 0x81, 0x7d, 0xe2, 0x19, 0xdc, + 0x67, 0xfe, 0x69, 0x8d, 0x0f, 0x10, 0xe3, 0x33, + 0x38, 0x2c, 0x4c, 0x66, 0xc9, 0xf6, 0x59, 0x8b, + 0xcd, 0xe4, 0x91, 0x8b, 0x98, 0xb4, 0xa2, 0xe4, + 0xba, 0xcc, 0x7b, 0x5a, 0x45, 0x0f, 0xae, 0x76, + 0x3c, 0x7e, 0x42, 0x85, 0xca, 0x25, 0xb0, 0x33, + 0x3c, 0x92, 0x1b, 0x79, 0xfb, 0x82, 0x7f, 0x4b, + 0xb1, 0x5f, 0x29, 0xaf, 0x3f, 0x70, 0x4f, 0xe9, + 0x76, 0x2b, 0xe5, 0x35, 0xe7, 0xee, 0x09, 0xfd, + 0x2e, 0xc5, 0x7c, 0xa6, 0xbc, 0xfd, 0xc1, 0x3f, + 0xa5, 0xd8, 0xaf, 0x94, 0xd7, 0x9f, 0xb8, 0x27, + 0xf4, 0xbb, 0x15, 0xf2, 0x9a, 0xf3, 0xf7, 0x04, + 0xfe, 0x97, 0x62, 0xbe, 0x53, 0x5e, 0x7e, 0xe0, + 0x9f, 0xd2, 0xec, 0x57, 0xca, 0x6b, 0xcf, 0xdc, + 0x13, 0xfa, 0x5d, 0x8a, 0xf9, 0x4d, 0x79, 0xfb, + 0x82, 0x7f, 0x4b, 0xb1, 0x5f, 0x29, 0xaf, 0x3f, + 0x70, 0x4f, 0xe9, 0x76, 0x2b, 0xe5, 0x35, 0xe7, + 0xee, 0x09, 0xfd, 0x2e, 0xc5, 0x7c, 0xa6, 0xbc, + 0xfd, 0xc1, 0x3f, 0xa5, 0xd8, 0xaf, 0x94, 0xd5, + 0x95, 0x57, 0xc9, 0x7b, 0x19, 0xe4, 0xaa, 0x5a, + 0x91, 0x63, 0x28, 0xe6, 0xb3, 0xf8, 0xab, 0xd5, + 0x46, 0xc2, 0xe3, 0x94, 0x2d, 0x28, 0x46, 0xd5, + 0x76, 0xae, 0xc4, 0x2a, 0x4d, 0x3b, 0x8b, 0xba, + 0x66, 0xb6, 0x14, 0x31, 0x66, 0x42, 0xa2, 0x5c, + 0xe4, 0xb2, 0x79, 0xfe, 0x03, 0x86, 0xf4, 0x81, + 0x09, 0x45, 0x5e, 0x29, 0xc5, 0xa2, 0xa5, 0x5a, + 0xeb, 0xdf, 0x91, 0x15, 0xd5, 0x2f, 0x61, 0x0a, + 0xc6, 0x64, 0xa7, 0xdb, 0x18, 0xd6, 0x4c, 0xcf, + 0x8c, 0x73, 0xdd, 0xb7, 0x9f, 0xb8, 0x27, 0xf4, + 0xbb, 0x15, 0xf2, 0x9a, 0xf3, 0xf7, 0x04, 0xfe, + 0x97, 0x62, 0xbe, 0x53, 0x5e, 0x7e, 0xe0, 0x9f, + 0xd2, 0xec, 0x57, 0xca, 0x6b, 0xcf, 0xdc, 0x13, + 0xfa, 0x5d, 0x8a, 0xf9, 0x4d, 0x79, 0xfb, 0x82, + 0x7f, 0x4b, 0xb1, 0x5f, 0x29, 0xaf, 0x3f, 0x70, + 0x4f, 0xe9, 0x76, 0x2b, 0xe5, 0x35, 0x10, 0x5c, + 0x43, 0xc0, 0xea, 0x1f, 0xba, 0x65, 0xc5, 0xb8, + 0xd9, 0x11, 0x8f, 0xbf, 0x30, 0x04, 0x45, 0xf9, + 0x23, 0x4d, 0xc0, 0x83, 0xa2, 0xd6, 0x42, 0xc3, + 0xd5, 0x6b, 0x35, 0x76, 0x02, 0x40, 0x18, 0xd5, + 0xaf, 0xf7, 0xa5, 0x3a, 0xd0, 0x45, 0x25, 0xd9, + 0xaa, 0x8b, 0x58, 0x5c, 0xe4, 0x22, 0x4c, 0x6b, + 0x24, 0xf6, 0x08, 0xe6, 0x19, 0x6f, 0xe0, 0xc5, + 0xfa, 0xd4, 0xeb, 0x0d, 0xf8, 0xdd, 0x7f, 0xb2, + 0x5c, 0xd0, 0x7b, 0xd1, 0xa3, 0xf7, 0xa7, 0x56, + 0x7f, 0x19, 0xe4, 0x7f, 0x69, 0x2d, 0x7f, 0xd2, + 0x87, 0xff, 0x00, 0x8d, 0xac, 0xae, 0x2a, 0xdd, + 0xc4, 0xe3, 0x85, 0x1d, 0x9f, 0x2b, 0x52, 0xfd, + 0x99, 0x91, 0xad, 0x56, 0xe2, 0xdc, 0xba, 0x31, + 0x16, 0x64, 0x46, 0x64, 0x6b, 0xd9, 0x1b, 0x90, + 0x96, 0xb6, 0x7b, 0xab, 0xed, 0x0d, 0x9f, 0x16, + 0x0f, 0x5b, 0x2f, 0x09, 0x16, 0xd7, 0x3d, 0xeb, + 0xb3, 0x4f, 0x29, 0x89, 0xb1, 0x5d, 0xc1, 0xbf, + 0x73, 0x16, 0x71, 0x7a, 0x0b, 0x94, 0xbc, 0xa3, + 0xd4, 0x05, 0x9e, 0xdb, 0x4c, 0x84, 0x6b, 0xd1, + 0xcb, 0x3f, 0x1c, 0xc6, 0x7c, 0xff, 0x00, 0x5d, + 0xfc, 0x35, 0x62, 0x7d, 0xfb, 0x98, 0xbf, 0x9f, + 0x6b, 0xd1, 0xbb, 0x1f, 0x1c, 0xc5, 0xfc, 0xff, + 0x00, 0x5b, 0x7d, 0x6d, 0x58, 0xdb, 0xef, 0x76, + 0xbc, 0x5e, 0xdf, 0xb7, 0x6b, 0xd1, 0xbb, 0x1d, + 0xde, 0x4f, 0xdf, 0x98, 0xbf, 0x9f, 0x6b, 0xd1, + 0xa7, 0xfd, 0xff, 0x00, 0xb6, 0xf1, 0x7f, 0x3e, + 0xd7, 0x7f, 0x0d, 0x58, 0x9f, 0x7e, 0xe6, 0x2f, + 0xe7, 0xda, 0xf4, 0x6e, 0xc7, 0xc7, 0x31, 0x7f, + 0x3f, 0xd6, 0xff, 0x00, 0x5b, 0x76, 0x37, 0xfb, + 0xfd, 0xb3, 0x17, 0xf3, 0xfd, 0x7a, 0x37, 0x67, + 0xe3, 0x98, 0xbf, 0x9f, 0xeb, 0x6f, 0xad, 0xab, + 0x1b, 0x7d, 0xee, 0xd7, 0x8b, 0xf9, 0xf6, 0xa8, + 0x64, 0x63, 0x85, 0xec, 0x3a, 0x68, 0xdc, 0xad, + 0x6f, 0xa7, 0x37, 0xf1, 0x61, 0xd5, 0xec, 0xce, + 0x07, 0x74, 0xa5, 0x9d, 0xb0, 0xf9, 0x20, 0xf9, + 0x39, 0x79, 0xb9, 0x4b, 0x97, 0x7d, 0xf9, 0x67, + 0xc9, 0xac, 0x9e, 0x5e, 0x78, 0x51, 0xf5, 0x8b, + 0x25, 0x76, 0xcd, 0xc9, 0x44, 0x64, 0x31, 0x6d, + 0xe8, 0xf6, 0x86, 0x93, 0x7a, 0x5d, 0x5e, 0xd6, + 0xb9, 0x64, 0x07, 0x37, 0x2f, 0x37, 0x4c, 0x39, + 0xb6, 0xdf, 0x96, 0x3c, 0x9a, 0xf4, 0x6a, 0xc7, + 0xc6, 0xf1, 0x7f, 0x3e, 0xd7, 0xa3, 0x76, 0x3e, + 0x39, 0x8b, 0xf9, 0xf6, 0xb7, 0xfa, 0xdb, 0xb1, + 0xf1, 0xcc, 0x5f, 0xcf, 0xf5, 0xe8, 0xd3, 0xfe, + 0x37, 0x8b, 0xf9, 0xf6, 0xb6, 0xfa, 0xda, 0x7e, + 0xdf, 0x7b, 0xb5, 0xe2, 0xfe, 0x7d, 0xaf, 0x47, + 0x2c, 0xfc, 0x73, 0x17, 0xf3, 0xfd, 0x7a, 0x39, + 0x67, 0xe3, 0x98, 0xcf, 0x9f, 0xea, 0xbf, 0x10, + 0xf1, 0x40, 0xaa, 0xa3, 0x29, 0xf3, 0x3b, 0x15, + 0x88, 0x0b, 0x28, 0xb5, 0x66, 0xcd, 0xd8, 0xf1, + 0x53, 0x62, 0xc1, 0xd4, 0x63, 0xeb, 0xa6, 0xa5, + 0x62, 0x99, 0x6e, 0xdd, 0x69, 0x69, 0xb5, 0x60, + 0x12, 0x31, 0xb1, 0x01, 0x6a, 0xa7, 0xe1, 0x28, + 0xfd, 0x68, 0xeb, 0x89, 0xbf, 0xd2, 0x1c, 0xdf, + 0xf2, 0x9d, 0xaf, 0xdd, 0x99, 0x6f, 0xd3, 0xe9, + 0x63, 0x72, 0x8c, 0x8b, 0x93, 0xee, 0x71, 0xc5, + 0x14, 0x5d, 0x01, 0x7c, 0xe7, 0xdd, 0x0c, 0x56, + 0x64, 0x89, 0x44, 0xa6, 0x0e, 0xcf, 0x37, 0x2f, + 0x65, 0x53, 0x6c, 0x74, 0xd6, 0x58, 0x5a, 0x0d, + 0xb8, 0xe6, 0xd8, 0xb5, 0xc3, 0x7c, 0xeb, 0xce, + 0x2c, 0x25, 0xf5, 0x2e, 0x59, 0xae, 0xdb, 0x53, + 0x16, 0x6e, 0x31, 0xdd, 0x3b, 0x61, 0x46, 0xb2, + 0x97, 0xe0, 0xf7, 0xd8, 0xb2, 0xa5, 0x5a, 0x5b, + 0x2b, 0x8c, 0x9a, 0x61, 0x7b, 0x73, 0x50, 0xc4, + 0x8f, 0x68, 0x72, 0xea, 0x67, 0x31, 0x55, 0x5d, + 0xdb, 0xab, 0x8a, 0x65, 0xec, 0x8b, 0x55, 0xc6, + 0xc1, 0xc2, 0x26, 0x4a, 0x26, 0x9b, 0xcf, 0x98, + 0xea, 0xf3, 0xef, 0xd5, 0xa8, 0x6b, 0x22, 0xdf, + 0x9b, 0xbf, 0x8d, 0x37, 0x58, 0x7b, 0x55, 0x1b, + 0x92, 0xaf, 0x10, 0x7d, 0xaa, 0x63, 0x3d, 0x8f, + 0x08, 0x95, 0xf7, 0x78, 0x93, 0x01, 0x32, 0x31, + 0x23, 0xb7, 0x8b, 0x32, 0x3e, 0x49, 0xd5, 0x65, + 0x1e, 0x2d, 0xd5, 0x5d, 0x80, 0xf0, 0x63, 0xca, + 0xf4, 0xd2, 0x62, 0x97, 0x7c, 0x33, 0xaa, 0x96, + 0x5f, 0x57, 0x6a, 0x95, 0xc0, 0x58, 0x3a, 0x16, + 0xfb, 0x1a, 0xf6, 0xe7, 0x3e, 0x9c, 0x13, 0x60, + 0x76, 0x8d, 0xe2, 0x38, 0xb1, 0xf7, 0xbb, 0x13, + 0x38, 0x79, 0x51, 0x7a, 0x9a, 0x13, 0x5e, 0xc6, + 0x2e, 0xe4, 0xd6, 0xbd, 0x60, 0x0b, 0xc1, 0x0a, + 0xec, 0xb8, 0xf6, 0xba, 0xde, 0x31, 0xc3, 0x60, + 0x21, 0xb1, 0x36, 0xd7, 0x4e, 0x05, 0x69, 0x6a, + 0xca, 0x66, 0x4a, 0x12, 0xcc, 0x53, 0x09, 0xfe, + 0xd9, 0x6b, 0x2b, 0x9d, 0xab, 0x61, 0x9d, 0x35, + 0x41, 0xba, 0xba, 0xaa, 0xe2, 0x3a, 0x69, 0x33, + 0x80, 0xe6, 0x90, 0x0e, 0xbb, 0xb9, 0x23, 0x7f, + 0x17, 0xa8, 0x7b, 0x79, 0x7f, 0xb4, 0x70, 0xa7, + 0xf9, 0x5c, 0x43, 0xfc, 0xb4, 0xff, 0x00, 0xa9, + 0xc1, 0x9f, 0xe6, 0x38, 0x83, 0xf6, 0xfa, 0x9f, + 0xb8, 0xa7, 0x49, 0xcd, 0xba, 0x59, 0x1c, 0x8d, + 0x9b, 0x08, 0x08, 0xaa, 0x60, 0xb4, 0xe3, 0x14, + 0xa4, 0x41, 0xaa, 0xed, 0xc0, 0x75, 0x36, 0x45, + 0xe5, 0x31, 0x92, 0x64, 0xc5, 0x57, 0xb7, 0x50, + 0x91, 0x5a, 0xbb, 0x58, 0x6c, 0x92, 0x30, 0x1d, + 0x15, 0xbb, 0x15, 0xa0, 0x2a, 0x88, 0xd3, 0x28, + 0xb1, 0xda, 0x2a, 0x9a, 0x9a, 0x39, 0x05, 0x9b, + 0x69, 0x95, 0x72, 0x07, 0x97, 0x6a, 0xeb, 0x2d, + 0x6c, 0x39, 0xec, 0xdd, 0x59, 0x4f, 0x4d, 0x9d, + 0xa2, 0x15, 0x20, 0x51, 0x19, 0xcb, 0xce, 0xb6, + 0x20, 0xdc, 0x65, 0x0e, 0xd3, 0x56, 0x9a, 0xe7, + 0x77, 0xbc, 0xfb, 0x65, 0x1a, 0xe6, 0xd7, 0x47, + 0x21, 0x42, 0xea, 0xac, 0x6d, 0xc4, 0x77, 0x92, + 0xd8, 0xe7, 0x14, 0x74, 0xa6, 0x45, 0x2f, 0xd5, + 0xd2, 0xa0, 0xdb, 0xaf, 0xbd, 0x8d, 0xc6, 0xe3, + 0xef, 0x58, 0xb3, 0xb8, 0xf6, 0x07, 0xd9, 0xbb, + 0x6e, 0xb5, 0x56, 0x62, 0x51, 0x4c, 0xa9, 0xaa, + 0xd8, 0x58, 0x49, 0xdb, 0x05, 0xaa, 0xc7, 0x6a, + 0xb0, 0x37, 0x5b, 0x5a, 0xc7, 0x4a, 0xb0, 0x2d, + 0x8a, 0x38, 0xca, 0xc5, 0x8a, 0xf2, 0x36, 0x6b, + 0x63, 0xca, 0xd5, 0x2e, 0x8d, 0xfc, 0x61, 0xd6, + 0x9b, 0x08, 0xc8, 0xd2, 0xab, 0x75, 0x57, 0xac, + 0x8b, 0xdb, 0x5a, 0xb7, 0x63, 0x45, 0x86, 0x32, + 0xda, 0x6c, 0x58, 0xa6, 0xea, 0x93, 0x00, 0xcb, + 0x3d, 0x35, 0xef, 0x04, 0xea, 0x76, 0xd5, 0x29, + 0xb3, 0x5c, 0xf9, 0x1a, 0xb9, 0x90, 0x2d, 0xa7, + 0x68, 0x98, 0x91, 0x35, 0x91, 0xad, 0x80, 0x63, + 0x30, 0x6b, 0x6a, 0x8c, 0xd4, 0xd5, 0x90, 0xb1, + 0x46, 0x6b, 0x21, 0x29, 0xbb, 0x98, 0x2b, 0x81, + 0x36, 0x91, 0x76, 0x85, 0x75, 0x52, 0x5c, 0xf3, + 0x4a, 0xd3, 0x6a, 0x6e, 0x09, 0xbe, 0xdf, 0x88, + 0x5c, 0x92, 0x45, 0x5b, 0x6a, 0xea, 0x83, 0x16, + 0xf2, 0x89, 0x39, 0x8b, 0xe9, 0xb1, 0x12, 0x77, + 0x2f, 0x62, 0xdd, 0x71, 0x91, 0x8e, 0xbf, 0x47, + 0x1e, 0x76, 0xac, 0x9a, 0xfb, 0x3e, 0x52, 0x6d, + 0xd7, 0xb2, 0xc2, 0x7d, 0x2a, 0xdd, 0x92, 0xad, + 0x8a, 0x5d, 0x26, 0x55, 0x39, 0x8a, 0xcf, 0x65, + 0xc6, 0x15, 0x76, 0x03, 0x0d, 0x8a, 0x30, 0x20, + 0x2c, 0x7e, 0x52, 0x88, 0x13, 0x9a, 0xf9, 0xca, + 0xf6, 0x95, 0x15, 0xaa, 0x41, 0x3c, 0x98, 0xfe, + 0x99, 0xfe, 0xf1, 0xa8, 0xc3, 0x4d, 0xcb, 0x64, + 0xb4, 0x49, 0xb6, 0xc8, 0x55, 0x8b, 0x66, 0xb0, + 0x88, 0x61, 0x0a, 0x83, 0xdd, 0x54, 0xc9, 0x18, + 0x4d, 0x63, 0xb1, 0x66, 0x13, 0x35, 0x1d, 0x91, + 0xc7, 0x59, 0x74, 0x28, 0xb1, 0xd8, 0xfb, 0x88, + 0xb0, 0x0b, 0x44, 0xae, 0xc1, 0x0d, 0x9e, 0xd6, + 0x4e, 0xe4, 0xe8, 0x4f, 0x63, 0x49, 0x21, 0x56, + 0x4e, 0x59, 0x30, 0xd6, 0xe4, 0x1b, 0x69, 0xce, + 0x4b, 0x23, 0x6a, 0x58, 0x81, 0x54, 0xae, 0x22, + 0xd6, 0x5d, 0x95, 0xad, 0xdc, 0x04, 0xba, 0x0d, + 0x67, 0x24, 0x9e, 0x8d, 0x39, 0x02, 0xe9, 0xca, + 0xcf, 0xad, 0x62, 0xb4, 0x73, 0xf8, 0xdb, 0x4e, + 0x3a, 0xf5, 0xfa, 0xd9, 0x4b, 0x2d, 0xbb, 0x6a, + 0xfa, 0x8f, 0xb1, 0xe4, 0xaa, 0x53, 0x04, 0xae, + 0x9f, 0x66, 0xda, 0x45, 0x2f, 0xc3, 0xde, 0x26, + 0xb2, 0x7a, 0xe5, 0x33, 0xbd, 0x84, 0x8c, 0xf2, + 0xc0, 0xf8, 0xbb, 0xc9, 0x6a, 0xdd, 0x8c, 0x83, + 0x2c, 0xdc, 0xaa, 0x37, 0x13, 0x57, 0x18, 0xaa, + 0x6c, 0x55, 0x17, 0x5f, 0x5d, 0x8a, 0x49, 0xc9, + 0x0d, 0xb6, 0x58, 0x75, 0x7c, 0x82, 0xea, 0x82, + 0xa9, 0xda, 0xa9, 0xd4, 0x50, 0xd6, 0xb2, 0x47, + 0x61, 0xd2, 0x91, 0x31, 0x10, 0x27, 0x68, 0xcf, + 0x03, 0xcd, 0x72, 0x9e, 0xd5, 0xb6, 0xed, 0x2d, + 0xad, 0x51, 0xea, 0xb5, 0x65, 0x6c, 0x64, 0x62, + 0x77, 0xb4, 0x75, 0x03, 0x23, 0x92, 0x0e, 0x8b, + 0xa1, 0x6a, 0xc6, 0x8b, 0x59, 0x70, 0x17, 0xd6, + 0x4d, 0x60, 0xe6, 0x94, 0xaf, 0xea, 0x97, 0xf9, + 0x33, 0xff, 0x00, 0x76, 0xaf, 0xff, 0x00, 0x96, + 0xbf, 0xd4, 0x2b, 0x4d, 0xfc, 0x18, 0xbf, 0x5a, + 0x9d, 0x61, 0xbf, 0x1b, 0xaf, 0xf6, 0x4b, 0x9a, + 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xea, 0xd7, 0xe3, + 0x4c, 0x8f, 0xed, 0x05, 0xaf, 0xfa, 0x60, 0xff, + 0x00, 0xb8, 0xf5, 0xc4, 0xdf, 0x8a, 0x17, 0xfc, + 0xaf, 0x8a, 0xd7, 0xb9, 0x1f, 0xc9, 0x1a, 0xf7, + 0x23, 0xf9, 0x23, 0x5e, 0xe4, 0x7f, 0x24, 0x6b, + 0xdc, 0x8f, 0xe4, 0x8d, 0x7b, 0x91, 0xfc, 0x91, + 0xaf, 0x72, 0x3f, 0x92, 0x35, 0xbf, 0x68, 0x29, + 0xc9, 0x78, 0x0a, 0x78, 0x8b, 0xb3, 0x45, 0x50, + 0xec, 0xbe, 0x0f, 0x13, 0xf1, 0x97, 0x36, 0xba, + 0xdd, 0x4e, 0xd5, 0x15, 0xe0, 0xac, 0xed, 0xd9, + 0xba, 0x3f, 0xf2, 0x5d, 0x5e, 0x7d, 0xe6, 0x0e, + 0x4e, 0xab, 0x06, 0x16, 0x0a, 0x63, 0x39, 0x90, + 0x51, 0xd3, 0x5b, 0xf6, 0xe8, 0x99, 0xee, 0x3e, + 0x28, 0x37, 0x98, 0x7a, 0x44, 0x5b, 0x43, 0x37, + 0x8e, 0x59, 0x9d, 0xf4, 0xce, 0x23, 0x16, 0x22, + 0x50, 0xac, 0xa7, 0x83, 0x0e, 0xb7, 0x24, 0xf5, + 0xe2, 0x7a, 0x0a, 0x77, 0x68, 0xdf, 0x6e, 0x4e, + 0x96, 0xee, 0x05, 0x7d, 0xfe, 0x79, 0x8f, 0xf0, + 0xa3, 0x58, 0x76, 0x9b, 0xaa, 0x00, 0xe5, 0x31, + 0xd6, 0xf2, 0xae, 0x23, 0x83, 0x80, 0xc5, 0xd2, + 0xa6, 0x2b, 0x6b, 0x1b, 0x72, 0x44, 0x0e, 0x66, + 0x65, 0x0e, 0x49, 0x82, 0xd2, 0x06, 0xc3, 0x37, + 0x29, 0x02, 0x32, 0xd3, 0x88, 0xd2, 0x2f, 0xd4, + 0xb2, 0xab, 0xb4, 0xde, 0xd6, 0xd6, 0x93, 0xe8, + 0xcd, 0x77, 0xa2, 0xd2, 0x62, 0x0e, 0x54, 0xfa, + 0xc7, 0x27, 0x23, 0x0c, 0x49, 0x83, 0x90, 0xe5, + 0xb1, 0x8b, 0x60, 0xf3, 0x84, 0xc8, 0x35, 0x46, + 0xb8, 0xc7, 0x52, 0xf0, 0x8a, 0x47, 0x25, 0x95, + 0xa3, 0x56, 0xe5, 0x3a, 0xe5, 0x49, 0x9d, 0x9c, + 0x8e, 0xea, 0x65, 0xb5, 0x6a, 0x9d, 0xb8, 0x32, + 0x90, 0x6b, 0x4a, 0x21, 0x30, 0x5d, 0x9e, 0x57, + 0x0d, 0x31, 0xe6, 0x98, 0x0d, 0xcc, 0x67, 0x14, + 0xb7, 0xd5, 0x89, 0xf0, 0x5d, 0x6c, 0xa8, 0x5a, + 0x35, 0x9c, 0x25, 0x8b, 0xb9, 0x5e, 0xab, 0x2a, + 0xa4, 0x63, 0x6e, 0x6e, 0xab, 0xac, 0xdc, 0x4d, + 0x11, 0xdf, 0xbb, 0xaf, 0x33, 0xe5, 0x8f, 0x28, + 0x39, 0x76, 0x2b, 0x55, 0x26, 0x86, 0x4c, 0xd0, + 0x97, 0xa9, 0x9c, 0xcd, 0xf0, 0x6f, 0x60, 0x02, + 0x88, 0x91, 0x8d, 0xbd, 0xbe, 0xc5, 0xf0, 0xac, + 0xbf, 0xbc, 0xd0, 0x38, 0x9f, 0xbd, 0xac, 0xb6, + 0x6f, 0x99, 0x2a, 0x46, 0x29, 0x95, 0x14, 0x4a, + 0x30, 0x9e, 0xab, 0xce, 0xd3, 0xc1, 0x33, 0x0b, + 0xee, 0xda, 0x3a, 0x1d, 0x40, 0x26, 0xf3, 0x7d, + 0xc2, 0x88, 0x8e, 0xf9, 0xd7, 0xb9, 0x1f, 0xc9, + 0x1a, 0xf7, 0x23, 0xf9, 0x23, 0x5e, 0xe4, 0x7f, + 0x24, 0x6b, 0xdc, 0x8f, 0xe4, 0x8d, 0x7b, 0x91, + 0xfc, 0x91, 0xaf, 0x72, 0x3f, 0x92, 0x35, 0xc2, + 0xbb, 0x7f, 0xfa, 0x36, 0x57, 0xf9, 0x73, 0x21, + 0xf5, 0x2a, 0x7e, 0x12, 0x8f, 0xd6, 0x8e, 0xb8, + 0x96, 0x61, 0x2d, 0x98, 0x9e, 0x20, 0xcd, 0x4c, + 0x4c, 0x2c, 0xf6, 0x98, 0x9c, 0x95, 0x9d, 0xa6, + 0x3b, 0xb5, 0xf6, 0x07, 0x7e, 0x6c, 0xff, 0x00, + 0xd9, 0xaf, 0xb0, 0x3b, 0xf3, 0x67, 0xfe, 0xcd, + 0x7d, 0x81, 0xdf, 0x9b, 0x3f, 0xf6, 0x6b, 0xec, + 0x0e, 0xfc, 0xd9, 0xff, 0x00, 0xb3, 0x5f, 0x60, + 0x77, 0xe6, 0xcf, 0xfd, 0x9a, 0xfb, 0x03, 0xbf, + 0x36, 0x7f, 0xec, 0xd3, 0x0c, 0xa8, 0xb2, 0xd5, + 0x7b, 0x15, 0x9f, 0x4e, 0xdd, 0x69, 0xea, 0xa7, + 0xad, 0x5a, 0xc0, 0xec, 0x62, 0x0e, 0x10, 0x39, + 0x53, 0x40, 0xa0, 0x1a, 0x96, 0x74, 0xd8, 0x20, + 0xd5, 0x84, 0x9a, 0x98, 0x3b, 0x84, 0xa2, 0xbd, + 0x2a, 0xb6, 0xf1, 0xf4, 0x6b, 0x51, 0x2c, 0x70, + 0x57, 0x16, 0xb5, 0xcd, 0x75, 0x66, 0xbc, 0xad, + 0x58, 0xed, 0xb6, 0x05, 0x35, 0x82, 0xc9, 0x3e, + 0xc1, 0xc9, 0x9c, 0x45, 0x64, 0x26, 0x04, 0x54, + 0x10, 0x9f, 0x6b, 0xe6, 0x94, 0xdd, 0x22, 0xb8, + 0x76, 0xab, 0x95, 0x72, 0x4b, 0xd9, 0x0d, 0x63, + 0x17, 0x35, 0x39, 0x3b, 0x36, 0xc4, 0x70, 0x5d, + 0xc9, 0xe9, 0x84, 0x04, 0x79, 0x22, 0x06, 0x23, + 0x6d, 0xb5, 0x69, 0xc9, 0xe1, 0xf6, 0x28, 0xf2, + 0x96, 0x6b, 0xbb, 0x30, 0x13, 0x6d, 0x8c, 0x45, + 0x84, 0xae, 0xd8, 0x5e, 0xb3, 0x4b, 0x1e, 0xbe, + 0xc2, 0xb2, 0xc7, 0x55, 0xbb, 0x64, 0x22, 0x5b, + 0xd7, 0x6e, 0x51, 0x8b, 0x58, 0xad, 0x49, 0x60, + 0x08, 0x9f, 0x57, 0x3b, 0x90, 0x7d, 0x03, 0x7f, + 0x87, 0xd3, 0x7d, 0x36, 0x93, 0xe3, 0x84, 0x07, + 0x6b, 0x6c, 0x3d, 0x04, 0x27, 0x09, 0x9d, 0xfb, + 0x0b, 0xd7, 0x5d, 0x8b, 0x1e, 0x41, 0xea, 0x42, + 0x60, 0x3c, 0x48, 0x2d, 0xe3, 0x39, 0x90, 0x6e, + 0x2c, 0xd9, 0x57, 0x88, 0x15, 0x6d, 0x37, 0xb1, + 0xdd, 0x46, 0x08, 0xf2, 0xd8, 0xf1, 0xd4, 0x41, + 0x63, 0xb3, 0x97, 0xb7, 0x53, 0x7c, 0x05, 0x84, + 0x32, 0x51, 0xee, 0xc3, 0x6d, 0xa2, 0x0a, 0x75, + 0x4b, 0x15, 0xd8, 0xd9, 0x11, 0x4a, 0xed, 0xfb, + 0xb0, 0xfd, 0x99, 0xbb, 0x26, 0xfa, 0xa9, 0x2e, + 0x57, 0xd3, 0xe9, 0xf8, 0x90, 0xbe, 0xc5, 0x13, + 0x05, 0xce, 0x5c, 0xdd, 0x4d, 0xb9, 0x47, 0x97, + 0x72, 0xfb, 0x03, 0xbf, 0x36, 0x7f, 0xec, 0xd7, + 0xd8, 0x1d, 0xf9, 0xb3, 0xff, 0x00, 0x66, 0xbe, + 0xc0, 0xef, 0xcd, 0x9f, 0xfb, 0x35, 0xf6, 0x07, + 0x7e, 0x6c, 0xff, 0x00, 0xd9, 0xaf, 0xb0, 0x3b, + 0xf3, 0x67, 0xfe, 0xcd, 0x7d, 0x81, 0xdf, 0x9b, + 0x3f, 0xf6, 0x6b, 0xec, 0x0e, 0xfc, 0xd9, 0xff, + 0x00, 0xb3, 0x5c, 0x28, 0x24, 0x32, 0x33, 0xcd, + 0xc4, 0x1d, 0xc5, 0x13, 0x13, 0xe7, 0x97, 0xfd, + 0xc9, 0xfa, 0x9c, 0x19, 0xfe, 0x63, 0x88, 0x3f, + 0x6f, 0xa9, 0xfb, 0x8b, 0x69, 0x0b, 0x56, 0x29, + 0xe6, 0x2f, 0x93, 0x2b, 0xda, 0xb6, 0x34, 0xba, + 0xfd, 0x3c, 0x5f, 0x2c, 0x7e, 0xf3, 0xa8, 0xc1, + 0xb4, 0xa9, 0x54, 0xdd, 0x3d, 0xfb, 0x73, 0x39, + 0x20, 0x89, 0x02, 0x35, 0x86, 0x7a, 0x46, 0xf8, + 0x6e, 0x3b, 0x09, 0x5f, 0xb6, 0x6f, 0x85, 0xe9, + 0x95, 0x4b, 0x0e, 0x89, 0x88, 0xb8, 0xcb, 0xb2, + 0xd7, 0x65, 0x45, 0xaa, 0xeb, 0x98, 0x56, 0x55, + 0x77, 0x1a, 0x83, 0x1d, 0x01, 0x05, 0x3d, 0x20, + 0x74, 0xb6, 0x79, 0x9f, 0xe2, 0xe7, 0x54, 0xde, + 0x7e, 0x6c, 0x8e, 0x1c, 0xa8, 0xd7, 0xe4, 0x18, + 0x98, 0xeb, 0xce, 0x4b, 0x1d, 0x6b, 0xdb, 0x26, + 0x4a, 0x39, 0x57, 0xd2, 0xaa, 0xdf, 0x1a, 0x20, + 0xa7, 0x9b, 0x96, 0x39, 0x76, 0x99, 0x98, 0xc3, + 0x2f, 0x18, 0xeb, 0x31, 0x14, 0x1f, 0x4b, 0x29, + 0x91, 0xac, 0xda, 0x7c, 0x8c, 0xcb, 0x65, 0x52, + 0xd8, 0x32, 0xea, 0x5a, 0x8b, 0x46, 0x2b, 0xab, + 0x55, 0x5b, 0xa6, 0x82, 0xfa, 0x5b, 0x07, 0xb6, + 0x38, 0xc6, 0x5c, 0xf3, 0x2d, 0x67, 0xeb, 0x55, + 0xb1, 0x93, 0xb0, 0xdc, 0xbd, 0x56, 0xad, 0x7d, + 0x55, 0x2d, 0x35, 0x55, 0x27, 0x94, 0xc6, 0xdb, + 0x00, 0x94, 0x43, 0x58, 0x50, 0xce, 0x85, 0x57, + 0xc5, 0x8b, 0x10, 0xc2, 0x16, 0x7b, 0x42, 0x85, + 0x31, 0x10, 0x4c, 0xd3, 0xb2, 0xe9, 0x64, 0xc2, + 0xff, 0x00, 0xb1, 0x34, 0x05, 0x2d, 0x0e, 0x56, + 0xb0, 0xeb, 0xe1, 0xd0, 0x9b, 0x0c, 0x1d, 0x8c, + 0xa3, 0x91, 0x6d, 0xab, 0xb4, 0xfd, 0xde, 0x57, + 0x24, 0xa7, 0x6e, 0x6e, 0x58, 0xca, 0xe3, 0xcf, + 0xa9, 0x0e, 0xbb, 0x6f, 0x10, 0xe5, 0x48, 0x84, + 0x10, 0x42, 0xe9, 0x76, 0xee, 0xbf, 0x3c, 0xf3, + 0x44, 0xc1, 0x7e, 0xf9, 0x5f, 0x4c, 0x62, 0x27, + 0x9b, 0xc6, 0xde, 0x47, 0x6e, 0xfa, 0x28, 0xc1, + 0xb8, 0xbb, 0x0e, 0x37, 0x97, 0xb3, 0xd0, 0xbd, + 0x8b, 0x43, 0x62, 0xc5, 0x96, 0xaa, 0x22, 0xf6, + 0x4b, 0x21, 0xda, 0x1b, 0x6e, 0xb5, 0x9b, 0x4e, + 0x64, 0x6c, 0x0b, 0x24, 0x4a, 0x90, 0x81, 0x4a, + 0x91, 0x01, 0x0a, 0xef, 0xc4, 0x58, 0xb0, 0x4f, + 0x1b, 0xf8, 0x97, 0xe5, 0x6c, 0x4d, 0x3a, 0xb4, + 0x2b, 0x22, 0x95, 0x83, 0xb7, 0xcb, 0x35, 0x81, + 0x52, 0x86, 0x21, 0x55, 0x43, 0x9c, 0x7f, 0x7c, + 0x40, 0x54, 0xe5, 0x85, 0xfd, 0x8c, 0x48, 0xb5, + 0x59, 0x48, 0x9b, 0x00, 0xfa, 0x85, 0x4f, 0x60, + 0x62, 0x46, 0x01, 0xb0, 0x38, 0x3c, 0x46, 0x3a, + 0xc7, 0xb6, 0x43, 0xa7, 0x93, 0xa5, 0x63, 0x1c, + 0xc9, 0x08, 0xe4, 0x2e, 0xaa, 0xcc, 0x4b, 0xda, + 0xe7, 0x71, 0xd6, 0x1d, 0x18, 0xd0, 0x41, 0x3e, + 0xa5, 0xc7, 0xe4, 0xad, 0x95, 0xcc, 0x75, 0x0b, + 0x3b, 0x5c, 0x26, 0xac, 0x13, 0x15, 0x5b, 0x69, + 0x36, 0x18, 0xa8, 0x1a, 0xb5, 0xd7, 0xcc, 0xd4, + 0xf4, 0x19, 0xd4, 0x61, 0xf9, 0x79, 0x00, 0xb4, + 0x28, 0xaf, 0x6e, 0xf5, 0x2a, 0xc9, 0xca, 0x65, + 0x6d, 0xa4, 0x27, 0x1c, 0x0d, 0x2e, 0xcb, 0x91, + 0x2a, 0xad, 0x05, 0x0e, 0xd7, 0x44, 0x44, 0xd1, + 0x2b, 0x62, 0xa3, 0x9a, 0x76, 0x28, 0x85, 0x96, + 0xfd, 0xf3, 0x11, 0x72, 0xb5, 0xb8, 0xb1, 0x45, + 0x31, 0x76, 0xbd, 0x9c, 0x43, 0x56, 0xb1, 0xb5, + 0x35, 0xeb, 0xd7, 0xa0, 0x9c, 0x5f, 0x64, 0xb4, + 0xae, 0xa2, 0x79, 0xe5, 0xb5, 0x2a, 0x53, 0x6c, + 0xb9, 0x45, 0xe2, 0xd9, 0x53, 0x36, 0x5f, 0x4d, + 0xbe, 0x28, 0xf6, 0x37, 0x5f, 0xa5, 0x52, 0xb1, + 0xd0, 0x89, 0x5f, 0x63, 0xa7, 0x69, 0x39, 0xb5, + 0x56, 0x17, 0xf6, 0xc7, 0x5f, 0xa6, 0xd2, 0xe5, + 0x46, 0x42, 0xc3, 0x1c, 0x5d, 0x8e, 0xcc, 0x39, + 0xdd, 0x8a, 0xa9, 0x42, 0x46, 0x7a, 0x8a, 0x17, + 0x69, 0x87, 0x03, 0xc9, 0x06, 0xc3, 0x38, 0x0d, + 0xf7, 0xe5, 0x82, 0x29, 0x98, 0x1d, 0xfe, 0xef, + 0x2c, 0x4e, 0xdb, 0xfd, 0xdf, 0xaa, 0x5f, 0xe4, + 0xcf, 0xfd, 0xda, 0xbf, 0xfe, 0x5a, 0xff, 0x00, + 0x50, 0xad, 0x37, 0xf0, 0x62, 0xfd, 0x6a, 0x75, + 0x86, 0xfc, 0x6e, 0xbf, 0xd9, 0x2e, 0x68, 0x3d, + 0xe8, 0xd1, 0xfb, 0xd3, 0xab, 0x5f, 0x8d, 0x32, + 0x3f, 0xb4, 0x16, 0xbf, 0xe9, 0x83, 0xfe, 0xe2, + 0xd7, 0x13, 0x7e, 0x28, 0x5f, 0xf2, 0xbe, 0x2b, + 0xf7, 0x7c, 0x9c, 0xab, 0x8e, 0x1a, 0xfa, 0xce, + 0x62, 0x87, 0x29, 0xcc, 0x3d, 0xa7, 0xc2, 0x90, + 0xa3, 0xb1, 0xe0, 0xf9, 0xbf, 0xbf, 0x69, 0x86, + 0x96, 0x73, 0xf7, 0xb7, 0xd6, 0xf7, 0x54, 0x69, + 0x95, 0x4d, 0xad, 0x45, 0x2f, 0x1a, 0x6d, 0x95, + 0x7c, 0x00, 0x46, 0x4e, 0x1b, 0x49, 0x54, 0x79, + 0x6f, 0xb5, 0xaa, 0x93, 0xc8, 0x9a, 0xc9, 0xc6, + 0xea, 0xb9, 0x01, 0x8f, 0x1b, 0xb0, 0xd1, 0xeb, + 0xed, 0x89, 0x18, 0x6b, 0x65, 0x50, 0xb8, 0xe7, + 0x8f, 0x1b, 0x70, 0x4e, 0x0d, 0xad, 0x05, 0x8e, + 0x6f, 0x23, 0xc4, 0x15, 0x02, 0x4c, 0x84, 0x45, + 0x76, 0xd5, 0x8e, 0xc2, 0xdf, 0xa0, 0xc3, 0x92, + 0x9d, 0x86, 0x0a, 0xcd, 0x38, 0x47, 0x37, 0xff, + 0x00, 0x16, 0x62, 0x3b, 0xe7, 0x49, 0xa8, 0x0d, + 0x4a, 0x8b, 0x31, 0x47, 0x8a, 0xa8, 0x63, 0x89, + 0xac, 0x5a, 0x15, 0xcf, 0x5f, 0x33, 0x8d, 0xb3, + 0x8f, 0xac, 0xc3, 0x64, 0x80, 0x23, 0xb5, 0xa2, + 0x84, 0x55, 0x49, 0x30, 0x80, 0x3a, 0xec, 0x48, + 0x94, 0xec, 0x5b, 0xc2, 0x59, 0x7f, 0xa9, 0x57, + 0x24, 0xf7, 0x32, 0x07, 0x18, 0xe5, 0x72, 0x59, + 0x5d, 0x25, 0x8c, 0x47, 0x6b, 0xb2, 0x05, 0x30, + 0xda, 0xf0, 0xe7, 0xf3, 0x2e, 0xb2, 0xda, 0xb1, + 0x97, 0x82, 0x98, 0xf0, 0xf6, 0xae, 0x42, 0x3c, + 0x13, 0x2a, 0x63, 0xf1, 0x85, 0x7d, 0x3c, 0x31, + 0x87, 0xe8, 0xe5, 0x5b, 0xe1, 0x16, 0xdd, 0xac, + 0xc3, 0xa4, 0x61, 0xce, 0xa4, 0xf8, 0x4a, 0x31, + 0x3d, 0x5a, 0xf0, 0x53, 0xd0, 0x36, 0xe3, 0x18, + 0x6a, 0x67, 0x2b, 0x77, 0x96, 0x80, 0x18, 0xe0, + 0xf2, 0xcb, 0x6f, 0xf6, 0x42, 0x19, 0x4f, 0x0a, + 0xd8, 0xe6, 0x82, 0x67, 0x43, 0x01, 0x93, 0xb5, + 0x96, 0x5c, 0xcc, 0x4e, 0xf3, 0xcb, 0x21, 0x67, + 0x16, 0x31, 0x33, 0xe5, 0xe8, 0x6d, 0xe4, 0xee, + 0xd5, 0xea, 0xf4, 0x1b, 0x1d, 0x2c, 0x3f, 0x08, + 0xdb, 0xbc, 0xae, 0x53, 0xdf, 0xf7, 0xde, 0x53, + 0x3b, 0x53, 0x39, 0x22, 0x3e, 0x4d, 0xc8, 0x6b, + 0xbe, 0xa2, 0xf6, 0x89, 0x99, 0xd9, 0x51, 0x13, + 0x3b, 0xc4, 0xeb, 0x89, 0xb1, 0xb5, 0x18, 0xb2, + 0x49, 0x54, 0xa9, 0x97, 0xf1, 0x24, 0x76, 0xe6, + 0xcc, 0x71, 0x15, 0x27, 0xd5, 0x54, 0x4c, 0x77, + 0x17, 0x47, 0x12, 0x9a, 0x04, 0x51, 0x1e, 0xe1, + 0x8d, 0x70, 0xf7, 0x6d, 0x3f, 0xbb, 0xe1, 0x5f, + 0xc1, 0xb2, 0xbf, 0xcb, 0x99, 0x0f, 0xa9, 0x53, + 0xf0, 0x94, 0x7e, 0xb4, 0x75, 0xc4, 0x15, 0xd1, + 0x9f, 0xcb, 0x25, 0x08, 0xce, 0x65, 0xd0, 0x95, + 0x2e, 0xf3, 0xc5, 0x6a, 0x4a, 0xb2, 0x16, 0x16, + 0xa5, 0x80, 0xc1, 0xec, 0x20, 0x00, 0x30, 0x22, + 0x31, 0xdd, 0x03, 0x11, 0x11, 0xaf, 0x48, 0xf3, + 0x3e, 0xb0, 0xb1, 0xfc, 0xfd, 0x7a, 0x47, 0x99, + 0xf5, 0x85, 0x8f, 0xe7, 0xeb, 0xd2, 0x3c, 0xcf, + 0xac, 0x2c, 0x7f, 0x3f, 0x5e, 0x91, 0xe6, 0x7d, + 0x61, 0x63, 0xf9, 0xfa, 0xf4, 0x8f, 0x33, 0xeb, + 0x0b, 0x1f, 0xcf, 0xd5, 0x7a, 0x35, 0xf8, 0x8f, + 0x2f, 0xd6, 0xb2, 0xd1, 0x58, 0xc9, 0xe4, 0x6c, + 0x0a, 0xc3, 0x7f, 0x76, 0xd6, 0x97, 0x3f, 0x88, + 0xa5, 0x07, 0x33, 0x1a, 0x7f, 0xc1, 0x58, 0x91, + 0x7d, 0xcd, 0x65, 0x71, 0xea, 0xe2, 0x6c, 0xf5, + 0xc4, 0xe2, 0xec, 0x0a, 0x59, 0x6e, 0x2c, 0xda, + 0x01, 0xf1, 0xe0, 0x7a, 0x66, 0xc8, 0x86, 0x18, + 0xa7, 0xa8, 0x45, 0xca, 0x10, 0x47, 0xe3, 0x4c, + 0x77, 0x77, 0xf7, 0x69, 0x58, 0xc5, 0xe7, 0x33, + 0x91, 0x79, 0xaf, 0x8a, 0xf0, 0x87, 0x5f, 0xb2, + 0x82, 0x06, 0x4f, 0x97, 0xad, 0xd5, 0x31, 0xe8, + 0x8a, 0xe3, 0x72, 0x69, 0x33, 0x96, 0x16, 0x02, + 0x44, 0x5b, 0x44, 0x6a, 0xdb, 0xe8, 0x71, 0xb6, + 0x4f, 0x22, 0x58, 0xf8, 0x12, 0xba, 0xb0, 0xb1, + 0x7d, 0x1e, 0xd2, 0x46, 0x09, 0xed, 0x54, 0x89, + 0xa7, 0xfb, 0xee, 0xa8, 0x38, 0xc4, 0x0c, 0xcc, + 0x6a, 0xbc, 0x45, 0x8a, 0x6f, 0x66, 0xe9, 0x91, + 0xca, 0xb2, 0x0a, 0xfa, 0xf2, 0xc9, 0xb3, 0x23, + 0x89, 0x5a, 0x5b, 0x92, 0xa3, 0xda, 0xae, 0x2f, + 0xa6, 0x2c, 0x95, 0x83, 0x62, 0xad, 0x89, 0x6c, + 0x85, 0xb6, 0x55, 0x6b, 0x92, 0x0f, 0x0e, 0x45, + 0x6f, 0xcc, 0x46, 0x82, 0x78, 0x2c, 0xa7, 0x57, + 0xd3, 0xf5, 0xe7, 0x93, 0x66, 0x43, 0x14, 0x28, + 0x3c, 0x95, 0x2e, 0xd5, 0x71, 0x7d, 0x21, 0x69, + 0xad, 0x4c, 0xec, 0xd6, 0x09, 0xb2, 0x36, 0xce, + 0xab, 0x5c, 0x90, 0xb0, 0x1c, 0x89, 0xf7, 0x44, + 0xc4, 0x4b, 0x81, 0x64, 0x5a, 0xc8, 0x55, 0x67, + 0x17, 0xe4, 0x85, 0x78, 0xdb, 0xf7, 0xa9, 0xbe, + 0xcf, 0x6c, 0xbb, 0x31, 0x2b, 0xc6, 0x54, 0x2b, + 0x97, 0xec, 0xad, 0x50, 0x72, 0xc2, 0x84, 0xab, + 0xb3, 0x88, 0xab, 0xca, 0xc6, 0xda, 0x50, 0xf3, + 0x84, 0x41, 0x94, 0x29, 0xeb, 0xe3, 0x6c, 0xa9, + 0x63, 0x9d, 0x8f, 0xc8, 0x64, 0x06, 0xdc, 0x3e, + 0xdf, 0x5c, 0x63, 0x19, 0xb4, 0x5b, 0xac, 0xda, + 0x5d, 0xa7, 0x70, 0xb0, 0x32, 0x41, 0x2b, 0xf6, + 0xf9, 0x53, 0x16, 0xc0, 0x31, 0x6f, 0xba, 0x10, + 0x9c, 0x85, 0x2e, 0x33, 0xca, 0xd8, 0xa5, 0x15, + 0x32, 0xaf, 0x96, 0x1b, 0xee, 0x21, 0xc3, 0x63, + 0x10, 0x35, 0x9b, 0x62, 0xa3, 0x13, 0xd7, 0x6c, + 0x09, 0x31, 0x36, 0xeb, 0xb5, 0x0d, 0x17, 0x30, + 0x08, 0x4e, 0x60, 0xb9, 0x08, 0x24, 0x75, 0xe9, + 0x1e, 0x67, 0xd6, 0x16, 0x3f, 0x9f, 0xaf, 0x48, + 0xf3, 0x3e, 0xb0, 0xb1, 0xfc, 0xfd, 0x7a, 0x47, + 0x99, 0xf5, 0x85, 0x8f, 0xe7, 0xeb, 0xd2, 0x3c, + 0xcf, 0xac, 0x2c, 0x7f, 0x3f, 0x5e, 0x91, 0xe6, + 0x7d, 0x61, 0x63, 0xf9, 0xfa, 0xf4, 0x8f, 0x33, + 0xeb, 0x0b, 0x1f, 0xcf, 0xd7, 0x0b, 0xdc, 0xbf, + 0x65, 0xd7, 0x2d, 0x36, 0x73, 0xd0, 0xcb, 0x16, + 0x18, 0x4d, 0x71, 0xf4, 0xf2, 0xcd, 0x52, 0xf9, + 0x8c, 0xe6, 0x4a, 0x79, 0x16, 0x02, 0x03, 0xf7, + 0x84, 0x62, 0x3e, 0xe7, 0xd4, 0xe0, 0xcf, 0xf3, + 0x1c, 0x41, 0xfb, 0x7d, 0x4f, 0xdd, 0x77, 0x44, + 0xcf, 0x74, 0xcf, 0x74, 0x6f, 0xdd, 0x1d, 0xf3, + 0x3e, 0xf4, 0x47, 0x97, 0x5e, 0x2a, 0xd8, 0x5b, + 0xc6, 0xf1, 0xca, 0x05, 0x3b, 0xc4, 0xef, 0xdf, + 0xdd, 0x1e, 0x4e, 0xe9, 0xfc, 0x93, 0xf7, 0xb5, + 0x65, 0x68, 0xda, 0x26, 0xad, 0x0b, 0xd9, 0x06, + 0x6f, 0x05, 0x3e, 0xd5, 0x45, 0x04, 0xe2, 0x01, + 0x81, 0x89, 0xf6, 0xc6, 0x72, 0xc2, 0xc3, 0x7d, + 0xa3, 0x72, 0xde, 0x67, 0xbb, 0x69, 0x12, 0x20, + 0x21, 0x83, 0x8d, 0xc0, 0x88, 0x66, 0x20, 0xa3, + 0xfc, 0x59, 0x98, 0xf1, 0xa3, 0xde, 0xd0, 0x31, + 0xb7, 0x57, 0x4c, 0x5f, 0x79, 0x58, 0xda, 0x9c, + 0xeb, 0x37, 0x4b, 0xad, 0xb4, 0x79, 0xbc, 0x78, + 0x09, 0x89, 0x4d, 0x65, 0xee, 0xb8, 0x6b, 0xfd, + 0xb0, 0xa2, 0x5a, 0x30, 0x09, 0x66, 0xc7, 0xcb, + 0x91, 0xa3, 0x0d, 0x5d, 0x77, 0xe3, 0xa9, 0xd9, + 0xb4, 0x70, 0x62, 0x47, 0xd4, 0x65, 0x7b, 0x09, + 0xad, 0xd9, 0x83, 0x93, 0xc8, 0x6c, 0x73, 0xc4, + 0x44, 0xe7, 0xc5, 0x8f, 0xbb, 0xac, 0x86, 0x59, + 0x6c, 0x58, 0xc5, 0x2b, 0x14, 0xeb, 0x2e, 0xb1, + 0x41, 0x75, 0x6d, 0xb6, 0xdd, 0xaa, 0xd5, 0x27, + 0xa4, 0x5e, 0xe0, 0x21, 0x0c, 0xb9, 0x5f, 0xa9, + 0x27, 0xff, 0x00, 0xbc, 0x88, 0x8f, 0xbb, 0xa7, + 0xa2, 0xb6, 0x45, 0x16, 0x5d, 0x47, 0x21, 0x57, + 0x1d, 0x91, 0x0e, 0x8b, 0x13, 0x08, 0x6d, 0xab, + 0x3d, 0x8c, 0x5d, 0x5e, 0x4e, 0x66, 0x6e, 0x56, + 0x5d, 0xa8, 0x95, 0x30, 0xb9, 0x50, 0xd8, 0xdd, + 0x47, 0x09, 0x95, 0xb2, 0x48, 0x32, 0x0a, 0xc7, + 0x5e, 0xed, 0xb6, 0xb1, 0x6e, 0x5a, 0xed, 0x56, + 0x65, 0x59, 0xa9, 0x24, 0x2c, 0xbc, 0x18, 0xde, + 0xad, 0x76, 0x4b, 0xde, 0x2d, 0x10, 0xb8, 0xea, + 0xe2, 0x70, 0xce, 0x8c, 0xf4, 0xdd, 0x0c, 0x1e, + 0x6e, 0x52, 0x18, 0xbe, 0x75, 0xef, 0xaa, 0xe1, + 0xe2, 0x6c, 0x2e, 0xae, 0x4d, 0x70, 0x96, 0x23, + 0xa4, 0x6c, 0x61, 0x57, 0x86, 0x55, 0x26, 0x4c, + 0xf6, 0xba, 0xe3, 0x65, 0x66, 0x93, 0x3e, 0x54, + 0x34, 0x66, 0x54, 0xce, 0x84, 0xad, 0x92, 0x41, + 0xfb, 0x92, 0xff, 0x00, 0x26, 0x7f, 0xee, 0xd5, + 0xff, 0x00, 0xf2, 0xd7, 0xfa, 0x85, 0x69, 0xbf, + 0x83, 0x17, 0xeb, 0x53, 0xac, 0x3f, 0xe3, 0x75, + 0xfe, 0xc9, 0x73, 0x41, 0xef, 0x46, 0x8f, 0xde, + 0x9d, 0x5a, 0xfc, 0x69, 0x91, 0xfd, 0xa2, 0x75, + 0xff, 0x00, 0x4c, 0x1f, 0xf7, 0x16, 0xb8, 0x84, + 0x6f, 0xb5, 0xe8, 0xa7, 0x38, 0x91, 0xeb, 0x36, + 0xaa, 0x42, 0xc3, 0xc2, 0x3c, 0x29, 0x8c, 0xe5, + 0xe9, 0xa5, 0x8e, 0xae, 0x07, 0x32, 0x7c, 0xb1, + 0x3b, 0xb8, 0x36, 0x19, 0x99, 0xef, 0xdb, 0x69, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xdf, 0xc3, 0x3c, 0x45, 0xbf, 0xdf, 0xf0, 0x0e, + 0x3f, 0xe9, 0xbd, 0x79, 0xeb, 0x88, 0xfd, 0x43, + 0x43, 0xe9, 0xbd, 0x79, 0xe7, 0x88, 0xbd, 0x43, + 0x8f, 0xfa, 0x6f, 0x5e, 0x79, 0xe2, 0x2f, 0x50, + 0xe3, 0xfe, 0x9b, 0xd7, 0x76, 0x67, 0x88, 0xa3, + 0xff, 0x00, 0xec, 0x38, 0xff, 0x00, 0xa6, 0xf5, + 0xe7, 0x9e, 0x23, 0xf5, 0x0d, 0x0f, 0xa6, 0xf5, + 0xe7, 0x9e, 0x22, 0xf5, 0x0d, 0x0f, 0xa6, 0xf5, + 0xe7, 0x9e, 0x22, 0xf5, 0x0e, 0x3f, 0xe9, 0xbd, + 0x79, 0xe7, 0x88, 0xbd, 0x43, 0x8f, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5c, 0x36, 0x38, 0xe7, 0x58, 0xb1, 0x4e, 0x2b, + 0xe4, 0xba, 0x2e, 0xb6, 0x80, 0xad, 0x60, 0xff, + 0x00, 0xb3, 0x17, 0x65, 0x9d, 0x44, 0x29, 0xf6, + 0x00, 0x39, 0x5b, 0x26, 0x23, 0xb3, 0x8f, 0x98, + 0x20, 0x4a, 0x79, 0x66, 0x64, 0x63, 0x55, 0x3f, + 0x09, 0x47, 0xeb, 0x47, 0x5c, 0x4d, 0xfe, 0x90, + 0xe6, 0xff, 0x00, 0x94, 0xed, 0x7e, 0xeb, 0x23, + 0xda, 0x82, 0xd7, 0x5a, 0xdd, 0x29, 0xa5, 0x59, + 0xf5, 0x61, 0x44, 0x55, 0x85, 0xe7, 0x11, 0x70, + 0xf9, 0x1a, 0x6b, 0xdc, 0xdd, 0x5a, 0x26, 0xa8, + 0x4c, 0x1c, 0x72, 0x03, 0x9d, 0x33, 0x05, 0x3c, + 0xba, 0xe2, 0x5c, 0x84, 0x2e, 0xde, 0x43, 0xa8, + 0xc4, 0xa8, 0x68, 0xf3, 0xa4, 0x28, 0x5a, 0x39, + 0xe8, 0x13, 0x8e, 0xd4, 0xfb, 0x77, 0x50, 0x6b, + 0x00, 0xf5, 0x28, 0xec, 0xb9, 0x9e, 0xd5, 0xca, + 0x64, 0x40, 0x2b, 0xd9, 0x85, 0x7c, 0xed, 0x5d, + 0x9a, 0x36, 0xac, 0x5e, 0x57, 0x6f, 0xc8, 0x94, + 0x32, 0xfa, 0xd5, 0x91, 0x43, 0xea, 0xc5, 0xbb, + 0x86, 0xbd, 0xe1, 0x8c, 0x47, 0x5e, 0x18, 0xe3, + 0x5f, 0xba, 0x10, 0x22, 0x00, 0x8e, 0xe0, 0xd6, + 0x6f, 0x2f, 0x72, 0x57, 0x08, 0x1c, 0x55, 0xca, + 0x52, 0x95, 0x8b, 0xda, 0xc6, 0x4d, 0x96, 0x21, + 0x2a, 0xb5, 0x5c, 0xc5, 0x5d, 0x92, 0xf6, 0x34, + 0x92, 0xce, 0xd6, 0x17, 0xe9, 0xd9, 0x7d, 0x7d, + 0x84, 0x44, 0xc8, 0x08, 0x82, 0x67, 0x23, 0x5f, + 0x88, 0xd7, 0x4e, 0xf5, 0x7a, 0x35, 0x80, 0xb0, + 0x1c, 0x5e, 0xb5, 0x44, 0x58, 0xbb, 0x22, 0xc5, + 0x2e, 0x9d, 0x44, 0xdd, 0x03, 0x81, 0xca, 0xd7, + 0x75, 0x66, 0x3c, 0xa6, 0x93, 0x7a, 0x97, 0x2a, + 0xf2, 0xb0, 0xda, 0x71, 0xd9, 0x39, 0x57, 0x7d, + 0x1c, 0x42, 0xaa, 0x77, 0xd3, 0x8f, 0x42, 0x8f, + 0x87, 0xf8, 0xb9, 0x6b, 0x80, 0xb1, 0x7e, 0x45, + 0xc9, 0x0a, 0x74, 0xd5, 0x7c, 0x0b, 0x93, 0x29, + 0x59, 0xd5, 0x8d, 0xe5, 0x35, 0x5b, 0x0d, 0xb9, + 0x53, 0x95, 0x8c, 0x71, 0xfe, 0xf5, 0xe5, 0x59, + 0x27, 0x11, 0x91, 0x55, 0x4b, 0xea, 0x7e, 0x6f, + 0x29, 0x56, 0x64, 0x93, 0xcb, 0x6e, 0xed, 0xeb, + 0x86, 0x3d, 0x84, 0x65, 0xb3, 0x35, 0xda, 0x57, + 0x68, 0xd4, 0xaa, 0x91, 0xaf, 0x67, 0x99, 0x36, + 0x67, 0xf7, 0xb1, 0x28, 0xba, 0xbb, 0x17, 0x84, + 0x6f, 0x62, 0x28, 0xe3, 0xf3, 0x96, 0x30, 0x3c, + 0x49, 0x19, 0x6c, 0x44, 0x2e, 0xc5, 0x1a, 0xd6, + 0x94, 0xa5, 0x57, 0xec, 0x57, 0x6c, 0xd2, 0x45, + 0x8a, 0xd6, 0xb1, 0xef, 0xc8, 0x11, 0xd9, 0x86, + 0x2a, 0xbb, 0xab, 0x76, 0x8e, 0x8c, 0x5b, 0x48, + 0xa4, 0x5b, 0x12, 0xcc, 0x95, 0x48, 0xaf, 0x4b, + 0x1d, 0x46, 0xa7, 0x0d, 0xe7, 0xa6, 0xb5, 0x2a, + 0x5d, 0xaa, 0x13, 0xda, 0x2d, 0x8a, 0x25, 0xef, + 0x36, 0x5f, 0xb7, 0x7a, 0xe3, 0xec, 0x3a, 0x14, + 0xa5, 0xee, 0xdb, 0x47, 0x00, 0xa4, 0xad, 0x69, + 0x05, 0x8c, 0x4c, 0x4f, 0xee, 0xb8, 0x53, 0xfc, + 0xae, 0x21, 0xfe, 0x5a, 0x7f, 0xd4, 0xe0, 0xcf, + 0xf3, 0x1c, 0x41, 0xfb, 0x7d, 0x4f, 0xdd, 0x30, + 0x5c, 0xe5, 0x57, 0x1b, 0x78, 0xac, 0xd5, 0x00, + 0x75, 0x86, 0x82, 0x10, 0x0f, 0xbb, 0x8b, 0xb5, + 0x5e, 0xbf, 0x59, 0xcc, 0x91, 0x5a, 0x56, 0x6f, + 0x30, 0x59, 0x35, 0x84, 0x2b, 0x5f, 0x3f, 0x3b, + 0x08, 0x42, 0x0a, 0x60, 0xeb, 0x62, 0xb3, 0xb8, + 0xd0, 0x7d, 0x2c, 0x6f, 0x08, 0xd3, 0x7d, 0xc4, + 0xe5, 0x51, 0x5a, 0xac, 0xba, 0xbb, 0xf3, 0x85, + 0x62, 0xa8, 0x64, 0x58, 0xd4, 0xa0, 0x49, 0x25, + 0x22, 0xfd, 0x8d, 0x81, 0x16, 0x92, 0xaf, 0xde, + 0xfd, 0x69, 0x7d, 0x70, 0x77, 0x10, 0xbe, 0xb5, + 0x95, 0x57, 0xa9, 0x90, 0xa5, 0x9f, 0x45, 0x56, + 0x9b, 0xc3, 0x1f, 0x5d, 0xcc, 0x7d, 0x66, 0x4a, + 0x62, 0x5c, 0xf3, 0x42, 0x91, 0x16, 0x5a, 0x33, + 0x29, 0xeb, 0x1a, 0xa2, 0x18, 0x6b, 0x8f, 0x10, + 0xa6, 0x23, 0x59, 0xce, 0x7c, 0xa5, 0x3c, 0x82, + 0x32, 0x39, 0x6a, 0x36, 0xb8, 0x7e, 0xba, 0x2e, + 0xaa, 0xd3, 0x29, 0x53, 0x58, 0xd8, 0x26, 0x4c, + 0xd5, 0x03, 0x26, 0xe2, 0x05, 0x35, 0x5b, 0x5f, + 0x1e, 0x55, 0x2c, 0x05, 0x63, 0x36, 0x06, 0xca, + 0x4b, 0x14, 0x8e, 0xac, 0x58, 0xcd, 0x75, 0xf1, + 0x6c, 0xc9, 0xd3, 0x68, 0xab, 0x13, 0x8e, 0xbd, + 0x97, 0xc4, 0xe3, 0x22, 0x2d, 0x10, 0x49, 0x46, + 0x56, 0xcf, 0x84, 0xee, 0xd3, 0xeb, 0x56, 0xa3, + 0x3c, 0xa4, 0x8a, 0xe9, 0x92, 0x97, 0xdb, 0xe4, + 0xea, 0xc8, 0xa1, 0x4d, 0x16, 0x67, 0xed, 0x3a, + 0xc2, 0xa2, 0xcf, 0x82, 0x1b, 0xd1, 0xe6, 0x7a, + 0xbf, 0x7d, 0x5c, 0x0c, 0xbe, 0x2e, 0xc7, 0x49, + 0x27, 0x05, 0x20, 0xf6, 0x32, 0x12, 0xc3, 0x8e, + 0x94, 0x9f, 0x38, 0x09, 0x98, 0xee, 0x11, 0x33, + 0xac, 0xd6, 0x26, 0xa6, 0x49, 0x5d, 0x86, 0x29, + 0x63, 0x9c, 0xa7, 0xa1, 0x80, 0x6c, 0x73, 0xef, + 0x71, 0x2e, 0x3f, 0x25, 0x62, 0x2a, 0x87, 0x38, + 0x4d, 0x8b, 0x38, 0xec, 0x68, 0xd7, 0x53, 0x80, + 0x27, 0x9c, 0x1b, 0x4d, 0xfc, 0xfc, 0x9c, 0x85, + 0xcb, 0x33, 0x9f, 0xbf, 0xc3, 0xf9, 0x33, 0x45, + 0xec, 0x49, 0xe0, 0x73, 0x55, 0x1f, 0x8e, 0x9c, + 0xc3, 0x79, 0x72, 0x15, 0x89, 0xc5, 0x90, 0x9a, + 0x4c, 0x1b, 0x4a, 0xa7, 0xe0, 0xfe, 0xd4, 0xeb, + 0xdf, 0x5c, 0x28, 0x55, 0xb8, 0xba, 0x41, 0xe3, + 0xb5, 0xf1, 0x32, 0x17, 0xeb, 0x76, 0x8a, 0xd5, + 0xb1, 0x96, 0x72, 0xa4, 0x4f, 0x76, 0x2b, 0x1b, + 0x8c, 0xac, 0xc7, 0xd7, 0x55, 0xd3, 0x62, 0x5c, + 0x6e, 0xa1, 0x5e, 0xb3, 0x6f, 0xc2, 0xbb, 0xac, + 0xa8, 0x5e, 0xf6, 0x09, 0xba, 0x01, 0xdb, 0xf5, + 0x36, 0x64, 0x64, 0x87, 0x37, 0x73, 0x03, 0x96, + 0xb2, 0x1d, 0x97, 0xeb, 0x7b, 0x2f, 0x41, 0xb8, + 0xf6, 0x66, 0xac, 0x97, 0x5d, 0x7d, 0x4e, 0xdb, + 0x14, 0x0e, 0x2d, 0x85, 0x52, 0xa3, 0x36, 0x19, + 0x6e, 0x38, 0x82, 0xba, 0xae, 0xf6, 0xe3, 0x0d, + 0x89, 0xcf, 0x89, 0xe9, 0xfe, 0xe4, 0xbf, 0xc9, + 0x9f, 0xfb, 0xb5, 0x7f, 0xfc, 0xb5, 0xfe, 0xa1, + 0x5a, 0x67, 0xe0, 0xc5, 0xfa, 0xd4, 0xeb, 0x0f, + 0xf8, 0xd9, 0x7f, 0xb2, 0x5c, 0xd0, 0x7b, 0xd1, + 0xa3, 0xf7, 0xa7, 0x56, 0xbf, 0x1a, 0x64, 0x7f, + 0x68, 0x9d, 0x47, 0xf9, 0xe0, 0xff, 0x00, 0xb8, + 0xf5, 0xc4, 0xdf, 0x8a, 0x17, 0xfc, 0xaf, 0x8a, + 0xfa, 0x89, 0xcb, 0xc2, 0x2a, 0xd9, 0xbf, 0x91, + 0xca, 0x5b, 0xa1, 0x5e, 0x6e, 0xd5, 0x45, 0xea, + 0xf4, 0xea, 0xe3, 0xeb, 0xd4, 0x6b, 0xd8, 0x35, + 0x2d, 0xa9, 0xd5, 0x1b, 0x66, 0xcb, 0x6e, 0x2d, + 0x70, 0x6f, 0x4b, 0x7a, 0x09, 0x51, 0x4a, 0xa0, + 0x58, 0xce, 0x70, 0x1c, 0xf5, 0x58, 0x4d, 0x34, + 0xb3, 0x12, 0xac, 0x8b, 0xe9, 0x2c, 0x0b, 0xa7, + 0x16, 0x63, 0x2e, 0xcc, 0x35, 0x91, 0xad, 0x1c, + 0xd3, 0x09, 0x49, 0xb8, 0x22, 0xda, 0xd7, 0xee, + 0x14, 0x2c, 0x24, 0x2c, 0x01, 0x60, 0xb8, 0xd1, + 0xa9, 0xf7, 0xfc, 0x95, 0x71, 0x36, 0x41, 0x75, + 0x2a, 0x15, 0xcb, 0xaf, 0x9c, 0xb5, 0x50, 0xb4, + 0xb1, 0x4d, 0x2e, 0xba, 0x48, 0x97, 0x58, 0x4f, + 0x92, 0xcd, 0x8e, 0xac, 0x00, 0x1c, 0xa8, 0x60, + 0x66, 0x5c, 0x31, 0x18, 0xd5, 0x66, 0xae, 0x55, + 0x04, 0xb3, 0x89, 0x57, 0x8a, 0xae, 0x83, 0xac, + 0xc7, 0xaf, 0x27, 0xd9, 0x1d, 0x58, 0xad, 0x75, + 0xc4, 0xb9, 0x7b, 0x2d, 0x56, 0x45, 0x8a, 0xf5, + 0x37, 0x68, 0x34, 0xa6, 0xc3, 0xe5, 0x6c, 0x50, + 0xa5, 0x4d, 0x7c, 0x57, 0x64, 0xe6, 0x31, 0xf4, + 0x67, 0x2d, 0x7f, 0x25, 0xd9, 0x69, 0x35, 0x4f, + 0x08, 0xad, 0x52, 0x9e, 0x4e, 0xf5, 0x36, 0xb0, + 0xda, 0x23, 0x29, 0x18, 0x8e, 0xcb, 0x03, 0x4e, + 0xb8, 0xfb, 0x6d, 0xb6, 0x17, 0x66, 0x50, 0x41, + 0x8c, 0x73, 0xd9, 0xbf, 0x66, 0xd5, 0xc8, 0x4b, + 0xf1, 0xa6, 0xec, 0x69, 0x37, 0x1c, 0x75, 0x6c, + 0x2e, 0xd2, 0x33, 0x18, 0xea, 0x0e, 0x9b, 0x15, + 0x0a, 0xde, 0xc4, 0xa9, 0x0b, 0xaa, 0x84, 0x98, + 0x58, 0x60, 0x1c, 0x3d, 0x87, 0x23, 0x0d, 0xab, + 0xd3, 0x3b, 0x98, 0xf8, 0xba, 0x91, 0x2a, 0x79, + 0xfa, 0x18, 0x02, 0x6c, 0xa8, 0xf9, 0x4d, 0xb7, + 0xec, 0x59, 0xae, 0x36, 0x62, 0x39, 0xb7, 0x85, + 0xae, 0x6b, 0xc9, 0x10, 0x4f, 0x8d, 0x30, 0x51, + 0xb4, 0xf7, 0x68, 0x0d, 0x79, 0x61, 0x6d, 0x6b, + 0x37, 0x4f, 0x1b, 0x42, 0xd2, 0x71, 0xb7, 0x8d, + 0x56, 0x2d, 0xa5, 0x69, 0xed, 0x24, 0xe8, 0xe5, + 0x16, 0x55, 0xa2, 0x87, 0xd8, 0x5d, 0x7e, 0xd7, + 0xca, 0xf3, 0x6c, 0xf3, 0x31, 0x75, 0xa4, 0x56, + 0xce, 0x5e, 0x26, 0x0e, 0x86, 0x27, 0xc2, 0x38, + 0xf8, 0xa8, 0xa0, 0x2c, 0xc4, 0x61, 0x66, 0xad, + 0x76, 0x78, 0x43, 0xa1, 0x67, 0x66, 0x67, 0xbf, + 0xb1, 0xc2, 0x64, 0x31, 0x20, 0x32, 0x53, 0x06, + 0x7e, 0x45, 0x78, 0xda, 0xc8, 0x5c, 0xca, 0x5e, + 0xc2, 0xd0, 0x56, 0x2a, 0xb5, 0x56, 0x34, 0xb0, + 0xf5, 0xf0, 0xb6, 0x94, 0xe1, 0xb4, 0xf6, 0xa9, + 0x2b, 0x50, 0x70, 0xc1, 0x0d, 0x06, 0x5c, 0x97, + 0x6c, 0x33, 0x16, 0x1a, 0xb6, 0x0a, 0xe6, 0x09, + 0xcd, 0x5a, 0x81, 0x7b, 0xda, 0xed, 0xf9, 0x34, + 0xd6, 0xa8, 0x9b, 0x34, 0xaa, 0xa2, 0xd8, 0x57, + 0x6b, 0xe2, 0xd1, 0x64, 0x2b, 0x0d, 0xe4, 0x33, + 0xa5, 0xce, 0xae, 0x8a, 0x57, 0x4c, 0xc1, 0xd6, + 0x88, 0xce, 0x58, 0x99, 0x31, 0x58, 0x29, 0xc5, + 0xaa, 0x95, 0x8f, 0x25, 0x50, 0x32, 0x39, 0x30, + 0xb4, 0xdc, 0x5d, 0x50, 0x12, 0x75, 0x7b, 0x89, + 0xae, 0xe7, 0xd7, 0x5b, 0x4a, 0xf8, 0x14, 0x2d, + 0x31, 0x90, 0x6d, 0x5b, 0x03, 0x8d, 0xd9, 0x4e, + 0x17, 0xf2, 0xac, 0xda, 0x55, 0xd6, 0xf5, 0x9e, + 0xb3, 0x63, 0x7d, 0xd5, 0xec, 0x64, 0xc7, 0x83, + 0x6d, 0xe5, 0x17, 0x8d, 0x2a, 0xb2, 0xc9, 0xa4, + 0x76, 0x17, 0x5e, 0xc5, 0x36, 0x05, 0xa2, 0x9e, + 0x4f, 0x08, 0x2a, 0xbb, 0x12, 0xe6, 0x00, 0x2c, + 0x7a, 0x23, 0x68, 0x61, 0x6f, 0x61, 0x8b, 0x84, + 0x1e, 0xb8, 0xb3, 0xcf, 0x6a, 0x84, 0xd2, 0xf0, + 0x92, 0x7b, 0x1d, 0x85, 0xa6, 0xb8, 0xdd, 0xb0, + 0x8a, 0xbb, 0xd6, 0xb6, 0x7e, 0x25, 0xd9, 0xab, + 0x62, 0xca, 0x55, 0x6a, 0x20, 0x11, 0x11, 0x24, + 0x45, 0x5c, 0xac, 0xa4, 0x09, 0xba, 0x6e, 0x2c, + 0xad, 0x55, 0xcc, 0xae, 0xbe, 0x33, 0x88, 0x7a, + 0xe5, 0x15, 0x5a, 0x35, 0xc2, 0xed, 0x3c, 0x46, + 0x4c, 0xa0, 0x40, 0x6c, 0x8f, 0xb6, 0xf6, 0x77, + 0xa5, 0x6e, 0x4d, 0x91, 0x8e, 0x59, 0x28, 0x13, + 0x0d, 0xa4, 0x62, 0x75, 0x6e, 0xb2, 0xb2, 0xd5, + 0xed, 0x5a, 0xc7, 0x3b, 0x18, 0xbc, 0x82, 0x86, + 0xb3, 0xd4, 0x09, 0x0c, 0xab, 0xc2, 0xba, 0x0d, + 0x6d, 0x61, 0x7e, 0xf8, 0x62, 0x8d, 0xd5, 0xfb, + 0x52, 0x84, 0x04, 0x57, 0xd6, 0xd9, 0x6e, 0x77, + 0x23, 0x39, 0x62, 0x95, 0x3c, 0xb2, 0x2d, 0xca, + 0xb3, 0x29, 0xc1, 0xde, 0x68, 0xd5, 0x72, 0xd7, + 0x5a, 0xdb, 0xfa, 0xbd, 0x36, 0xab, 0x98, 0xe6, + 0x6c, 0xd4, 0x93, 0xaf, 0x61, 0x5d, 0x5f, 0x68, + 0x29, 0x62, 0xbb, 0x97, 0x20, 0xc0, 0x39, 0xb5, + 0x7e, 0xfd, 0x93, 0x04, 0x8d, 0x5e, 0x20, 0x14, + 0x29, 0x4a, 0xe6, 0x28, 0xb5, 0x8b, 0xa0, 0x9b, + 0x00, 0xf6, 0x94, 0xb9, 0x3e, 0xd4, 0x33, 0x68, + 0x59, 0x0a, 0x89, 0x8e, 0xa1, 0xab, 0x91, 0x85, + 0xd3, 0x22, 0x89, 0x35, 0xb2, 0xe4, 0x32, 0xca, + 0x2c, 0xc5, 0x5b, 0x15, 0x99, 0x5c, 0xea, 0x33, + 0x98, 0x93, 0xd6, 0x1b, 0x54, 0xa1, 0xa7, 0x25, + 0x7b, 0x1e, 0x51, 0xdd, 0x17, 0x20, 0x13, 0x1e, + 0x32, 0x0b, 0xa7, 0xc9, 0x61, 0x53, 0x3a, 0xe1, + 0x6f, 0xc1, 0xf2, 0xdf, 0xcb, 0x77, 0xfe, 0xa5, + 0x4f, 0xc2, 0x51, 0xfa, 0xd1, 0xd6, 0x7e, 0x2d, + 0x50, 0xe2, 0x73, 0xb3, 0x19, 0xbc, 0xb4, 0x58, + 0x24, 0x65, 0x31, 0x60, 0x82, 0x7f, 0x6f, 0xb1, + 0xd6, 0x24, 0x83, 0x31, 0x4c, 0x30, 0x54, 0xb3, + 0x9a, 0x56, 0x06, 0xc3, 0x31, 0x0d, 0xa0, 0x8c, + 0xa6, 0x24, 0xa7, 0xcd, 0xdc, 0x59, 0xeb, 0x6c, + 0x47, 0xd0, 0xfa, 0xf3, 0x77, 0x16, 0x7a, 0xdb, + 0x11, 0xf4, 0x3e, 0xbc, 0xdd, 0xc5, 0x9e, 0xb6, + 0xc4, 0x7d, 0x0f, 0xaf, 0x37, 0x71, 0x67, 0xad, + 0xb1, 0x1f, 0x43, 0xeb, 0xcd, 0xdc, 0x59, 0xeb, + 0x6c, 0x47, 0xd0, 0xfa, 0xf3, 0x77, 0x16, 0x7a, + 0xdb, 0x11, 0xf4, 0x3e, 0xbc, 0xdd, 0xc5, 0x9e, + 0xb6, 0xc4, 0x7d, 0x0f, 0xa6, 0x74, 0xb1, 0x3c, + 0x60, 0xce, 0x8a, 0xc9, 0xcd, 0xe9, 0xe4, 0xf1, + 0x47, 0xd2, 0x48, 0xcc, 0x41, 0x35, 0x9c, 0xb8, + 0x69, 0xe4, 0x58, 0xc9, 0x0c, 0x49, 0x96, 0xc3, + 0x12, 0x51, 0x1b, 0xf7, 0xc6, 0x99, 0x90, 0x56, + 0x07, 0x8e, 0x3b, 0x10, 0xf3, 0x2d, 0xb7, 0x57, + 0x7f, 0x1d, 0xd9, 0xa3, 0x79, 0x10, 0x20, 0x3b, + 0x03, 0x84, 0xe9, 0xf7, 0xc9, 0x88, 0x90, 0xc9, + 0x77, 0xc9, 0x40, 0xcf, 0x97, 0x5b, 0xf8, 0x37, + 0x8a, 0xfd, 0x6d, 0x87, 0xfa, 0x1f, 0x5c, 0xb4, + 0xb0, 0x1c, 0x6d, 0x6d, 0x9c, 0x92, 0xce, 0x5a, + 0xd7, 0x71, 0xae, 0x2e, 0x41, 0x98, 0x12, 0x3d, + 0x97, 0x84, 0x29, 0xe5, 0x82, 0x98, 0x19, 0x9f, + 0x27, 0x34, 0xc4, 0x79, 0x74, 0x64, 0x18, 0x8e, + 0x2f, 0x20, 0x5c, 0x6e, 0xc9, 0x1c, 0x9e, 0x28, + 0x85, 0x71, 0xdf, 0xee, 0xe6, 0x30, 0xdb, 0x0c, + 0x6d, 0x13, 0xee, 0xb6, 0xf2, 0x4e, 0xbc, 0xdb, + 0xc5, 0x7e, 0xb6, 0xc3, 0xfd, 0x0f, 0xaf, 0x37, + 0x71, 0x67, 0xad, 0xb1, 0x1f, 0x43, 0xeb, 0xcd, + 0xdc, 0x59, 0xeb, 0x6c, 0x47, 0xd0, 0xfa, 0xf3, + 0x77, 0x16, 0x7a, 0xdb, 0x11, 0xf4, 0x3e, 0xbc, + 0xdd, 0xc5, 0x9e, 0xb6, 0xc4, 0x7d, 0x0f, 0xaf, + 0x37, 0x71, 0x67, 0xad, 0xb1, 0x1f, 0x43, 0xeb, + 0xcd, 0xdc, 0x59, 0xeb, 0x6c, 0x47, 0xd0, 0xfa, + 0xf3, 0x77, 0x16, 0x7a, 0xdb, 0x11, 0xf4, 0x3e, + 0xb8, 0x62, 0x71, 0x6b, 0xb6, 0xaa, 0x5b, 0xe7, + 0x7a, 0x2b, 0xbe, 0xe4, 0xbe, 0xd4, 0x4f, 0x85, + 0x59, 0xd5, 0xea, 0x36, 0xba, 0x6b, 0xa8, 0xb7, + 0x6f, 0x3c, 0x87, 0x2a, 0x87, 0x95, 0x72, 0x22, + 0x5c, 0xc5, 0x12, 0x53, 0xae, 0x16, 0xfa, 0xe6, + 0x2c, 0xf4, 0x1f, 0x4f, 0x35, 0xd8, 0xbc, 0x0b, + 0xd8, 0x79, 0x79, 0x7b, 0x72, 0x7b, 0x47, 0x69, + 0xed, 0x91, 0x33, 0xcd, 0xbf, 0x47, 0xa5, 0xd3, + 0xee, 0xdb, 0xa9, 0xcd, 0xfc, 0x1d, 0x7b, 0xbe, + 0x3a, 0xfc, 0x98, 0x4f, 0xe6, 0x6b, 0xdd, 0xf1, + 0xd7, 0xe4, 0xc2, 0x7f, 0x33, 0x5f, 0x64, 0xe3, + 0xaf, 0xc9, 0x84, 0xfe, 0x66, 0xbe, 0xcb, 0xc7, + 0x3f, 0xf6, 0x1f, 0xf3, 0x75, 0xf6, 0x4e, 0x39, + 0xff, 0x00, 0xb0, 0xff, 0x00, 0x99, 0xaf, 0xb2, + 0x71, 0xd7, 0xfd, 0x87, 0xfc, 0xcd, 0x3e, 0x90, + 0xd8, 0xe3, 0x98, 0xab, 0x65, 0xa8, 0x73, 0x97, + 0xc9, 0x80, 0x9e, 0x76, 0xd6, 0x86, 0xc2, 0x0b, + 0x9e, 0x55, 0xd4, 0x1e, 0x4e, 0xbb, 0x7b, 0x80, + 0xc4, 0x4b, 0x9b, 0xc7, 0x82, 0xd8, 0x76, 0xfb, + 0x27, 0x1d, 0x7e, 0x4c, 0x27, 0xf3, 0x35, 0xf6, + 0x4e, 0x3a, 0xfc, 0x98, 0x4f, 0xe6, 0x6b, 0xdd, + 0xf1, 0xd7, 0xe4, 0xc2, 0x7f, 0x33, 0x5e, 0xef, + 0x8e, 0xbf, 0x26, 0x13, 0xf9, 0x9a, 0xfb, 0x27, + 0x1c, 0xff, 0x00, 0xd8, 0x7f, 0xcc, 0xd7, 0xd9, + 0x38, 0xeb, 0xfe, 0xc3, 0xfe, 0x66, 0xbd, 0xdf, + 0x1d, 0x7e, 0x4c, 0x27, 0xf3, 0x35, 0xee, 0xf8, + 0xeb, 0xf2, 0x61, 0x3f, 0x99, 0xaf, 0xb2, 0x71, + 0xd7, 0xe4, 0xc2, 0x7f, 0x33, 0x5e, 0xef, 0x8e, + 0xbf, 0x26, 0x13, 0xf9, 0x9a, 0xf7, 0x7c, 0x75, + 0xf9, 0x30, 0x9f, 0xcc, 0xd7, 0xbb, 0xe3, 0xaf, + 0xc9, 0x84, 0xfe, 0x66, 0xbd, 0xdf, 0x1d, 0x7e, + 0x4c, 0x27, 0xf3, 0x35, 0x31, 0xd4, 0xe3, 0xae, + 0xfe, 0xef, 0x26, 0x13, 0xf9, 0x9a, 0x0c, 0x8a, + 0x39, 0xfa, 0x19, 0x4a, 0x54, 0x32, 0x29, 0x16, + 0x0c, 0x0b, 0x01, 0x56, 0xea, 0x29, 0xab, 0x16, + 0x40, 0x91, 0x8f, 0x3c, 0x0c, 0xc7, 0x36, 0xc5, + 0x31, 0x13, 0xdd, 0x13, 0x3b, 0x6f, 0x2c, 0xfc, + 0x1c, 0xbf, 0x5a, 0x9d, 0x61, 0xff, 0x00, 0x1b, + 0x2f, 0xf6, 0x4b, 0x9a, 0x0f, 0x7a, 0x34, 0x7e, + 0xf4, 0xea, 0xd7, 0xe3, 0x4c, 0x8f, 0xed, 0x05, + 0xa8, 0xff, 0x00, 0x3c, 0x1f, 0xf8, 0x4f, 0x59, + 0x9c, 0x52, 0x76, 0xed, 0x59, 0x1c, 0x5b, 0x53, + 0x4c, 0x66, 0x79, 0x61, 0xb6, 0x92, 0xfa, 0xd7, + 0x94, 0x9e, 0x69, 0xf1, 0x46, 0x5d, 0xd9, 0x25, + 0x43, 0x25, 0x30, 0x3c, 0xe4, 0x3b, 0xcc, 0x68, + 0xd4, 0xd0, 0x25, 0xb1, 0x65, 0x20, 0xc5, 0xb0, + 0x64, 0x0c, 0x0c, 0x7b, 0x88, 0x4c, 0x4b, 0x62, + 0x12, 0x89, 0xee, 0x98, 0x98, 0xde, 0x27, 0x43, + 0x8f, 0xc9, 0x56, 0x9b, 0x74, 0xd5, 0x90, 0x5e, + 0x52, 0xb0, 0x8f, 0x2e, 0xea, 0xb5, 0x02, 0x2a, + 0xb0, 0xa6, 0x81, 0x72, 0x75, 0xe9, 0xdf, 0x4a, + 0xd4, 0xbb, 0x29, 0xeb, 0x28, 0xa2, 0x52, 0xb3, + 0x53, 0x02, 0x65, 0x9d, 0x49, 0xa9, 0x53, 0x1f, + 0x76, 0x9e, 0x21, 0xb8, 0x54, 0xe2, 0xfb, 0x10, + 0x34, 0x0d, 0xb4, 0x59, 0x5f, 0x2c, 0x79, 0x3e, + 0xa2, 0x6c, 0x58, 0x63, 0xca, 0xe0, 0xd8, 0x32, + 0x92, 0x64, 0xbb, 0xa2, 0xc0, 0xea, 0x74, 0xf7, + 0x64, 0x24, 0x4d, 0x97, 0x12, 0x34, 0xb2, 0x54, + 0xe9, 0xbb, 0xc0, 0x90, 0xbe, 0xc9, 0x79, 0x71, + 0x74, 0x93, 0x87, 0xc7, 0xf6, 0x09, 0xa9, 0x6a, + 0xc4, 0xa4, 0x41, 0x89, 0xb1, 0x1e, 0xdd, 0xcc, + 0x2a, 0x8e, 0x93, 0xbc, 0x69, 0x4b, 0x63, 0x61, + 0x1a, 0xb7, 0x6e, 0x63, 0x2d, 0x74, 0x71, 0x99, + 0xa2, 0xcc, 0xe3, 0x6b, 0x56, 0xb6, 0xb1, 0xe5, + 0xeb, 0x45, 0x33, 0x75, 0x17, 0xb0, 0xd5, 0x3b, + 0xa2, 0x2d, 0x51, 0x4b, 0xd6, 0xd0, 0x88, 0x6f, + 0x29, 0x39, 0x33, 0x11, 0xce, 0x06, 0xac, 0x55, + 0xce, 0xc6, 0xde, 0x5a, 0x08, 0xcd, 0xa0, 0xf9, + 0x5e, 0x23, 0x60, 0x7c, 0x31, 0x7f, 0x29, 0x6c, + 0x2d, 0x53, 0x6f, 0x24, 0xc2, 0x6d, 0xd2, 0x1c, + 0x88, 0xca, 0x4c, 0x84, 0xa3, 0xae, 0x9e, 0x78, + 0xe5, 0xde, 0x24, 0x57, 0x8a, 0x0a, 0x79, 0x02, + 0x80, 0xaf, 0x79, 0x67, 0x79, 0xf6, 0x96, 0xdb, + 0x56, 0x1d, 0x66, 0xee, 0x27, 0x20, 0xb7, 0xb0, + 0x64, 0x39, 0x22, 0x01, 0xd8, 0xc8, 0x41, 0x2f, + 0x98, 0xe7, 0xb3, 0x4a, 0xf9, 0x59, 0xce, 0x25, + 0xcc, 0xdb, 0xaa, 0xc7, 0x5e, 0x9b, 0x57, 0x38, + 0x93, 0x19, 0xc4, 0x17, 0x3a, 0x96, 0xd3, 0xd2, + 0x18, 0xa2, 0xe7, 0x3c, 0xa9, 0xd6, 0x11, 0x44, + 0x4f, 0x8e, 0x76, 0x19, 0xb5, 0x86, 0x4e, 0xfb, + 0x72, 0x47, 0x48, 0x79, 0x4a, 0x4e, 0xbd, 0x1b, + 0xca, 0xc8, 0x12, 0xa9, 0x64, 0x6d, 0x5e, 0x44, + 0x63, 0xee, 0xcd, 0x3e, 0xd0, 0xab, 0x90, 0x99, + 0xb1, 0x46, 0xd9, 0x0e, 0xc7, 0xd3, 0x26, 0x57, + 0x02, 0x0b, 0x0a, 0x9e, 0xba, 0xe1, 0x8e, 0x11, + 0xfe, 0x04, 0x86, 0x66, 0xb5, 0xc4, 0xd8, 0xe9, + 0x65, 0x7b, 0x3e, 0xd3, 0x54, 0xe0, 0x8e, 0xbc, + 0xd7, 0xb7, 0xda, 0x62, 0x3f, 0x7d, 0x49, 0x13, + 0x46, 0x7e, 0xc7, 0xcc, 0x6c, 0x96, 0x7f, 0x08, + 0x88, 0xa7, 0x59, 0x5c, 0x7d, 0x35, 0xdc, 0x38, + 0xc9, 0x85, 0x18, 0xea, 0xda, 0x94, 0x0f, 0x48, + 0xa9, 0xda, 0x97, 0xcf, 0x8a, 0xae, 0x6e, 0x61, + 0x31, 0xf1, 0x63, 0xbe, 0x26, 0x0b, 0xbf, 0xbe, + 0x34, 0xc5, 0x5f, 0xa5, 0x6a, 0x6a, 0xf5, 0xb1, + 0x36, 0x54, 0x28, 0x72, 0x7a, 0xbd, 0x5c, 0x7e, + 0x2d, 0x18, 0xcb, 0x0a, 0x39, 0x62, 0xe4, 0x3a, + 0x57, 0x05, 0x02, 0x5c, 0xd1, 0x1c, 0xc9, 0xe5, + 0x1f, 0x15, 0xbd, 0xfa, 0xc7, 0x64, 0x9f, 0x8d, + 0x98, 0xc8, 0xe1, 0x96, 0xf4, 0xe3, 0x93, 0x59, + 0x8b, 0x4e, 0x33, 0xa5, 0xda, 0x6c, 0xdb, 0xc7, + 0x0b, 0x53, 0xd3, 0xea, 0x2e, 0x31, 0x8d, 0xb6, + 0xc8, 0x01, 0x44, 0xc4, 0x58, 0x5a, 0x6b, 0x89, + 0x74, 0xa6, 0x0c, 0x8a, 0xfd, 0xc7, 0xd3, 0xb6, + 0x79, 0x8b, 0xfc, 0x39, 0xe0, 0x06, 0x38, 0x6c, + 0x2e, 0x29, 0xc1, 0x05, 0x64, 0xd4, 0x5e, 0x43, + 0xa5, 0x2b, 0xea, 0x75, 0x0e, 0xbd, 0x5a, 0xd0, + 0xda, 0xfc, 0xdd, 0x38, 0x64, 0x39, 0x80, 0x5e, + 0xd8, 0x20, 0xb6, 0x5d, 0x9a, 0xd9, 0x09, 0xb9, + 0x66, 0xc5, 0x1b, 0x0d, 0x59, 0xe4, 0x5b, 0xd8, + 0x2a, 0xb1, 0x0d, 0x5b, 0xae, 0x15, 0x3a, 0xe1, + 0x23, 0x0c, 0xed, 0x86, 0xb9, 0x80, 0x5d, 0xb1, + 0x62, 0xaa, 0x83, 0x4f, 0xa6, 0x26, 0xc1, 0x53, + 0x42, 0xe6, 0x5e, 0x6b, 0x99, 0x85, 0xa0, 0xcd, + 0x8c, 0x22, 0x0c, 0x60, 0x83, 0xc2, 0xd4, 0xee, + 0xd5, 0x0d, 0xcf, 0x6d, 0xa7, 0xa3, 0x36, 0xa0, + 0xcb, 0xbb, 0xc7, 0x80, 0x98, 0x8d, 0xb7, 0xd6, + 0x55, 0xb1, 0x58, 0xd5, 0x19, 0xeb, 0x78, 0x21, + 0x5f, 0x33, 0x46, 0x7b, 0x2f, 0x61, 0xc8, 0xd0, + 0x79, 0x4b, 0x27, 0x96, 0x39, 0xe0, 0xe2, 0xb4, + 0xc4, 0x6d, 0xcb, 0xcb, 0xcd, 0xbc, 0xf9, 0x35, + 0x76, 0x31, 0x55, 0x6c, 0x10, 0x7d, 0x74, 0x0e, + 0x52, 0xdf, 0x68, 0xb0, 0xb2, 0x16, 0x78, 0x39, + 0xf6, 0x61, 0x55, 0xab, 0x10, 0x2e, 0x7d, 0xa8, + 0x8a, 0xc3, 0xcf, 0xae, 0xc8, 0x23, 0xfb, 0x0c, + 0x72, 0xf8, 0x85, 0x26, 0xbc, 0x7d, 0x7c, 0x7d, + 0xf2, 0xae, 0x43, 0x9f, 0x8b, 0x8c, 0x7d, 0x94, + 0xf5, 0x5b, 0xe1, 0xaa, 0x4a, 0xa9, 0x1d, 0x20, + 0x5a, 0xc4, 0x15, 0x15, 0xa1, 0x0b, 0xde, 0x39, + 0xc8, 0x9b, 0x1d, 0x42, 0xe7, 0x5c, 0x90, 0xc2, + 0xe7, 0x15, 0x55, 0x79, 0x0e, 0xcd, 0x37, 0x95, + 0x75, 0x09, 0xc8, 0x5c, 0xed, 0xab, 0xc5, 0x08, + 0x2d, 0xe2, 0x75, 0x31, 0xa4, 0x7b, 0xb6, 0x12, + 0xe6, 0x58, 0x22, 0x61, 0xb0, 0xb9, 0xcc, 0x14, + 0x98, 0x64, 0x31, 0x9c, 0xcd, 0x98, 0x11, 0x89, + 0x22, 0x29, 0x88, 0x11, 0x18, 0x99, 0x22, 0x99, + 0xf2, 0x40, 0xc4, 0x77, 0xcc, 0xcf, 0xdc, 0x88, + 0xef, 0x9d, 0x70, 0xfe, 0x26, 0xd4, 0x40, 0xdc, + 0xa5, 0x41, 0xac, 0xb6, 0xbd, 0xf7, 0x94, 0x37, + 0x21, 0x76, 0xcd, 0xf8, 0xac, 0x7f, 0x79, 0xa8, + 0x53, 0xd6, 0x2d, 0x88, 0xee, 0xe7, 0xdf, 0x69, + 0x98, 0xef, 0xfa, 0x95, 0x3f, 0x09, 0x47, 0xeb, + 0x47, 0x5c, 0x4d, 0xfe, 0x90, 0xe6, 0xff, 0x00, + 0x94, 0xed, 0x7f, 0x68, 0xe2, 0x3a, 0x00, 0x29, + 0x05, 0x37, 0x0b, 0x6a, 0xc3, 0xd9, 0x0a, 0x8e, + 0xd2, 0xf2, 0x07, 0xd2, 0x14, 0xad, 0x8f, 0x2e, + 0x63, 0x8a, 0xe8, 0xf1, 0xcd, 0x68, 0x57, 0x49, + 0x64, 0xc6, 0x13, 0x1f, 0x0e, 0x30, 0x44, 0xa7, + 0x11, 0x5a, 0x7e, 0xd5, 0x9e, 0x07, 0xb7, 0x13, + 0x1b, 0xf8, 0x9c, 0x8e, 0xc5, 0x64, 0x6d, 0xbe, + 0x7e, 0xec, 0x0e, 0xd6, 0xf7, 0x64, 0xef, 0xff, + 0x00, 0x2a, 0x10, 0x5f, 0x72, 0x34, 0x39, 0xa5, + 0xa2, 0xcf, 0x85, 0x0e, 0x96, 0x3c, 0x9f, 0x8c, + 0x9b, 0xe8, 0x23, 0xc7, 0x25, 0xef, 0x60, 0x46, + 0x79, 0xab, 0xdb, 0xb4, 0x32, 0xae, 0x42, 0x14, + 0x0b, 0x45, 0x49, 0x5c, 0x76, 0x7e, 0xd3, 0xd5, + 0x23, 0x95, 0xf4, 0xcb, 0x5c, 0x2c, 0xfb, 0x79, + 0x44, 0xd1, 0xec, 0xc9, 0xc9, 0xda, 0xa9, 0x5a, + 0xd0, 0xe5, 0x26, 0x9d, 0xeb, 0xd5, 0xf3, 0x92, + 0xda, 0xbd, 0xab, 0xc1, 0x74, 0xaf, 0x37, 0xa1, + 0x4d, 0x91, 0xda, 0x08, 0x25, 0x61, 0x2e, 0x9e, + 0x54, 0xad, 0x8b, 0xe7, 0x36, 0xaf, 0x00, 0x38, + 0xeb, 0x27, 0x1c, 0xb4, 0x6b, 0x64, 0x7d, 0xa7, + 0x9f, 0xa3, 0x7e, 0xf5, 0xe7, 0xb9, 0xb6, 0x9c, + 0xf4, 0xec, 0xbe, 0xd5, 0xda, 0x4e, 0x7b, 0x31, + 0x2d, 0xab, 0xef, 0xae, 0x03, 0x5a, 0x56, 0x1b, + 0x48, 0x6a, 0xd0, 0xba, 0xb4, 0x53, 0x74, 0x58, + 0x7f, 0x56, 0x98, 0xac, 0xd2, 0x35, 0x19, 0xd4, + 0x2e, 0x7a, 0xc2, 0x96, 0x49, 0x31, 0x42, 0x82, + 0xdd, 0x42, 0xa6, 0x11, 0x1a, 0xe0, 0x79, 0x4a, + 0x66, 0x63, 0xfb, 0x47, 0x0a, 0x7f, 0x95, 0xc4, + 0x3f, 0xcb, 0x4f, 0xfa, 0x9c, 0x17, 0xfe, 0x63, + 0x88, 0x7f, 0x6f, 0xa9, 0xf5, 0x69, 0x1f, 0x2c, + 0x73, 0xcf, 0x10, 0xe4, 0xc6, 0x4b, 0x68, 0xe6, + 0xe5, 0x8c, 0x6e, 0x2a, 0x60, 0x79, 0xbc, 0xbb, + 0x44, 0xcc, 0xcc, 0x47, 0x93, 0x79, 0x9f, 0xbf, + 0xae, 0x0f, 0xec, 0x8f, 0x25, 0xa9, 0x95, 0x32, + 0x0d, 0xb1, 0x5e, 0x36, 0x9a, 0xf6, 0xe4, 0x73, + 0xd7, 0x83, 0x6b, 0x49, 0x98, 0x95, 0xd8, 0x12, + 0x54, 0x74, 0x88, 0x5a, 0x27, 0x12, 0xbf, 0x12, + 0x63, 0x97, 0xbb, 0x4e, 0x9c, 0x44, 0xcd, 0x57, + 0xdc, 0xcf, 0xe6, 0x2b, 0xf6, 0x95, 0xfd, 0xb1, + 0x5e, 0x86, 0x3f, 0xb1, 0xcd, 0x7a, 0x2a, 0x7f, + 0xbb, 0x58, 0x4b, 0x2c, 0x91, 0xd8, 0xe4, 0xe5, + 0xeb, 0xf4, 0xd1, 0x0c, 0xdc, 0x57, 0x11, 0xae, + 0x1a, 0xcf, 0xa5, 0x0a, 0x53, 0xae, 0xd1, 0x46, + 0x4e, 0xd5, 0x70, 0x50, 0x0d, 0x72, 0xbb, 0x4b, + 0x27, 0x6e, 0x93, 0xda, 0x08, 0x88, 0xe9, 0x80, + 0x5d, 0xec, 0x31, 0x61, 0x89, 0x11, 0x85, 0x43, + 0x5a, 0xde, 0x41, 0x10, 0x98, 0x11, 0xe2, 0xdc, + 0x98, 0xae, 0x09, 0x0a, 0xaa, 0x35, 0xf0, 0x11, + 0x30, 0x33, 0x0c, 0x77, 0x15, 0x06, 0xf8, 0xe6, + 0x87, 0x34, 0x72, 0xc9, 0x57, 0xc5, 0x3a, 0xc3, + 0xb7, 0xfe, 0x09, 0x87, 0x76, 0xc4, 0x3a, 0x3a, + 0xc8, 0xb6, 0xe7, 0xdf, 0xe1, 0xfb, 0xd8, 0xd2, + 0xc9, 0x25, 0xd5, 0xc0, 0x2b, 0x58, 0x1f, 0x09, + 0xd3, 0xa1, 0x76, 0x2a, 0x4c, 0x30, 0xcf, 0x96, + 0xa5, 0xbb, 0x20, 0x3e, 0xde, 0x11, 0xda, 0x13, + 0xbb, 0x22, 0x02, 0x76, 0x5c, 0xa3, 0xb1, 0xa3, + 0x25, 0xd5, 0x8c, 0x38, 0xde, 0x75, 0x5a, 0x14, + 0xa6, 0xc3, 0xad, 0xba, 0xc6, 0x6b, 0x20, 0x83, + 0xb0, 0x6d, 0x8d, 0xd1, 0x55, 0x69, 0x81, 0xd9, + 0x8c, 0xb2, 0x62, 0x3d, 0x38, 0xab, 0x5e, 0xb8, + 0x7b, 0xae, 0x9c, 0x57, 0xc8, 0x64, 0x2c, 0x42, + 0x2c, 0xe4, 0xa9, 0xd0, 0xa4, 0xca, 0xa8, 0x43, + 0xcf, 0x96, 0xd5, 0x1a, 0x57, 0xc9, 0xf6, 0x36, + 0xb1, 0x29, 0x98, 0xae, 0xbc, 0x8d, 0x55, 0x72, + 0xd6, 0x6b, 0x06, 0xc1, 0xf5, 0x4d, 0x4d, 0xe9, + 0x88, 0xf3, 0xc8, 0x11, 0xe4, 0x5a, 0x0e, 0xcb, + 0xe4, 0x71, 0x75, 0xac, 0xd4, 0xa3, 0x0e, 0xaf, + 0x5c, 0x28, 0x58, 0xec, 0xbd, 0xb3, 0x22, 0x5d, + 0x58, 0xe9, 0x2d, 0x8e, 0x9e, 0xf5, 0x8f, 0x8c, + 0x0a, 0x5b, 0x19, 0xcc, 0x5e, 0x2c, 0x4f, 0x14, + 0x8d, 0x2b, 0x08, 0xa9, 0x79, 0x16, 0x70, 0x8a, + 0x1b, 0x2c, 0xc8, 0xd2, 0xc6, 0x40, 0xc7, 0x6a, + 0xbc, 0x0e, 0x00, 0xbb, 0x7a, 0xcd, 0x54, 0x8f, + 0x53, 0x96, 0x23, 0xa7, 0xd6, 0x82, 0x76, 0xd1, + 0x02, 0x25, 0xb6, 0x82, 0xb5, 0xf1, 0xb0, 0x79, + 0x6c, 0x0e, 0x13, 0xad, 0x9f, 0xec, 0x75, 0xe2, + 0xcd, 0xeb, 0x2d, 0x76, 0x43, 0x93, 0x19, 0x51, + 0x73, 0x12, 0x2a, 0xbd, 0x60, 0x6a, 0xdb, 0xaf, + 0xd6, 0xbe, 0xb2, 0x7d, 0x7e, 0xce, 0x13, 0x23, + 0x62, 0xd4, 0xac, 0x79, 0x8a, 0xf6, 0x46, 0xd5, + 0xd4, 0xe3, 0xcb, 0xc1, 0xe0, 0x85, 0x45, 0x40, + 0x8c, 0x98, 0xbe, 0xff, 0x00, 0x6a, 0x33, 0x4d, + 0xba, 0xe6, 0xe8, 0x5a, 0x26, 0x92, 0xa9, 0x3c, + 0xce, 0x79, 0xe6, 0x6c, 0x73, 0x57, 0xe9, 0x08, + 0x43, 0x0e, 0x56, 0xe0, 0x5d, 0xe6, 0x3e, 0x17, + 0xc4, 0x49, 0xc1, 0xc1, 0x12, 0x05, 0x7c, 0xcb, + 0x6d, 0x0a, 0xd7, 0x3b, 0x4e, 0xdd, 0x49, 0xd8, + 0xb7, 0x7c, 0x87, 0x4b, 0xc9, 0xb0, 0xc4, 0xc9, + 0x6f, 0x3b, 0x6a, 0x9e, 0x2a, 0x0a, 0xdb, 0xbc, + 0x1c, 0x7c, 0x50, 0xa0, 0xec, 0x34, 0x19, 0x66, + 0xfe, 0x46, 0x71, 0xf9, 0x69, 0xae, 0xb0, 0x15, + 0xa6, 0x0c, 0x13, 0x24, 0x11, 0x2e, 0x63, 0x6c, + 0x1c, 0x21, 0x2b, 0x03, 0x1e, 0x62, 0x39, 0x58, + 0x19, 0x26, 0x4d, 0xd1, 0x6a, 0xcd, 0xec, 0x3d, + 0x81, 0xb6, 0x41, 0x5d, 0xcd, 0xa3, 0x48, 0xf1, + 0x39, 0xab, 0xb7, 0xab, 0xb2, 0x10, 0xf3, 0x53, + 0x25, 0x3d, 0x86, 0xc1, 0x34, 0x50, 0x70, 0x4c, + 0x6a, 0x6a, 0x83, 0x3a, 0x64, 0x0c, 0x05, 0xa2, + 0xea, 0xf2, 0x17, 0x15, 0x8c, 0x30, 0xcc, 0xf6, + 0x92, 0x3a, 0x8a, 0x3b, 0x88, 0x76, 0x1e, 0x90, + 0xdf, 0xe4, 0x85, 0x83, 0xe1, 0x4c, 0x1b, 0x69, + 0x60, 0x74, 0xe7, 0xa8, 0x1d, 0x32, 0x86, 0x41, + 0xf7, 0x0c, 0x11, 0x36, 0x2b, 0x93, 0x0e, 0xbf, + 0x50, 0xfa, 0x04, 0xe1, 0x10, 0x69, 0x2b, 0x9a, + 0x7a, 0x72, 0xd0, 0x03, 0x60, 0x0b, 0x24, 0x76, + 0xe7, 0x11, 0x32, 0x18, 0x2d, 0xf6, 0x29, 0x8f, + 0xab, 0xc3, 0xdf, 0xe8, 0xc7, 0x0f, 0xff, 0x00, + 0x26, 0x57, 0xd3, 0x3f, 0x07, 0x2f, 0xd6, 0xa7, + 0x58, 0x7f, 0xc6, 0xcb, 0xfd, 0x92, 0xe6, 0x83, + 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0xb5, 0xf8, 0xcf, + 0x21, 0xfb, 0x41, 0x6a, 0x3f, 0xcf, 0x07, 0xfe, + 0x13, 0xd4, 0x10, 0xcc, 0x89, 0x0c, 0xc4, 0xc4, + 0xc4, 0xed, 0x31, 0x31, 0xdf, 0x13, 0x13, 0x1e, + 0x49, 0x8f, 0xb9, 0x3a, 0x82, 0xc9, 0x61, 0x70, + 0x99, 0x47, 0xc4, 0x44, 0x76, 0xcb, 0xf8, 0xf0, + 0x6d, 0xc3, 0x11, 0x8d, 0x86, 0x19, 0x60, 0x49, + 0x6c, 0x66, 0xd1, 0xf7, 0x4e, 0x48, 0x8b, 0xca, + 0x52, 0x53, 0xdf, 0xaf, 0x45, 0x38, 0x67, 0xd5, + 0xc5, 0xf3, 0x8d, 0x7a, 0x29, 0xc3, 0x3e, 0xae, + 0x2f, 0x9c, 0x6b, 0xd1, 0x4e, 0x19, 0xf5, 0x71, + 0x7c, 0xe3, 0x5e, 0x8a, 0x70, 0xcf, 0xab, 0x8b, + 0xe7, 0x1a, 0xf4, 0x53, 0x86, 0x7d, 0x5c, 0x5f, + 0x38, 0xd7, 0xa2, 0x9c, 0x33, 0xea, 0xe2, 0xf9, + 0xc6, 0xbd, 0x14, 0xe1, 0x9f, 0x57, 0x17, 0xce, + 0x35, 0xe8, 0xa7, 0x0c, 0xfa, 0xb8, 0xbe, 0x71, + 0xaf, 0x45, 0x38, 0x67, 0xd5, 0xc5, 0xf3, 0x8d, + 0x7a, 0x29, 0xc3, 0x3e, 0xae, 0x2f, 0x9c, 0x6b, + 0xd1, 0x4e, 0x19, 0xf5, 0x71, 0x7c, 0xe3, 0x5e, + 0x8a, 0x70, 0xcf, 0xab, 0x8b, 0xe7, 0x1a, 0xf4, + 0x53, 0x86, 0x7d, 0x5c, 0x5f, 0x38, 0xd7, 0xa2, + 0x9c, 0x33, 0xea, 0xe2, 0xf9, 0xc6, 0xbd, 0x14, + 0xe1, 0x9f, 0x57, 0x17, 0xce, 0x35, 0xe8, 0xa7, + 0x0c, 0xfa, 0xb8, 0xbe, 0x71, 0xaf, 0x45, 0x38, + 0x67, 0xd5, 0xc5, 0xf2, 0xfa, 0xf4, 0x53, 0x86, + 0x7d, 0x5c, 0x5f, 0x38, 0xd7, 0xa2, 0x9c, 0x33, + 0xea, 0xe2, 0xf9, 0xc6, 0xba, 0xb8, 0xec, 0x1e, + 0x0b, 0x1b, 0x67, 0xf8, 0x17, 0x29, 0xe3, 0x56, + 0x36, 0x95, 0xf7, 0xfa, 0x4d, 0x69, 0x36, 0x57, + 0xbf, 0xdf, 0x08, 0x89, 0xfb, 0xb1, 0x30, 0x5b, + 0x4e, 0x88, 0xcc, 0xa4, 0x88, 0xa6, 0x48, 0x88, + 0xa6, 0x64, 0x88, 0xa6, 0x77, 0x92, 0x29, 0x9e, + 0xf9, 0x99, 0x9e, 0xf9, 0x99, 0xef, 0x99, 0xfa, + 0x95, 0x3f, 0x09, 0x47, 0xeb, 0x47, 0x59, 0xeb, + 0x1f, 0x5d, 0x9c, 0x11, 0x5f, 0xaf, 0x9a, 0xca, + 0xbf, 0xb3, 0xda, 0xe2, 0x09, 0x4d, 0xa4, 0x75, + 0x6f, 0xd8, 0x67, 0x46, 0xca, 0xbb, 0x11, 0x74, + 0xac, 0x2b, 0x9b, 0x91, 0xcb, 0xe6, 0x2e, 0x46, + 0x09, 0x0f, 0x34, 0xed, 0xbe, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xad, 0x8a, 0xb8, + 0xc3, 0xd8, 0xf2, 0x62, 0xed, 0x36, 0x52, 0x77, + 0x53, 0x88, 0x8e, 0x76, 0x4b, 0x4d, 0x66, 0x52, + 0xbd, 0xa9, 0x8e, 0xcc, 0xdd, 0x43, 0xb4, 0x97, + 0x30, 0xed, 0xbf, 0x8b, 0x3f, 0x72, 0x29, 0xc7, + 0x16, 0x7b, 0x1a, 0x49, 0x85, 0x57, 0x50, 0x56, + 0x42, 0x78, 0x82, 0xc7, 0x84, 0x11, 0x8f, 0xb0, + 0xc9, 0x63, 0xa9, 0x2c, 0xc5, 0x03, 0x56, 0x52, + 0x64, 0x6d, 0x8e, 0x76, 0xd4, 0x6d, 0xa0, 0x5b, + 0x9a, 0x95, 0xd8, 0x05, 0x17, 0x24, 0x7a, 0x67, + 0xc0, 0x3e, 0x4d, 0xbd, 0x25, 0x2f, 0x24, 0x6d, + 0xdd, 0xf6, 0x87, 0x93, 0xba, 0x3b, 0xbf, 0x8b, + 0x58, 0xfa, 0x2c, 0xe3, 0x0f, 0x63, 0xbe, 0x8e, + 0x30, 0x6d, 0x05, 0x79, 0x0e, 0x22, 0x64, 0x32, + 0x62, 0xdb, 0xfb, 0x43, 0x7a, 0xa5, 0x34, 0xc8, + 0x4a, 0x60, 0xfd, 0xc7, 0x28, 0x2f, 0x61, 0xee, + 0x9e, 0x69, 0xef, 0xd5, 0x55, 0xfd, 0x73, 0xfb, + 0x17, 0xda, 0x6e, 0x3a, 0x4c, 0xb1, 0x77, 0x2e, + 0x67, 0x1c, 0xcb, 0x58, 0xc9, 0x33, 0x96, 0xfe, + 0xf7, 0x95, 0xa1, 0x35, 0xec, 0x08, 0x3c, 0xa6, + 0xc2, 0x15, 0x94, 0xaf, 0x90, 0x45, 0x77, 0xee, + 0xc4, 0x2d, 0x7c, 0xc7, 0x04, 0x4c, 0x3e, 0x34, + 0xe0, 0x23, 0x36, 0x11, 0x19, 0x99, 0xf1, 0x31, + 0x11, 0x99, 0x9c, 0xf3, 0x11, 0x91, 0x4d, 0x1d, + 0xc8, 0x88, 0xa6, 0x64, 0x8a, 0x7b, 0xe6, 0x67, + 0x79, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0x0c, 0xd3, 0xed, 0xb8, 0xec, 0x8f, + 0x4a, 0x73, 0x93, 0xda, 0xf1, 0x56, 0x7b, 0x65, + 0x16, 0xf5, 0x32, 0xac, 0x6f, 0xb4, 0xd8, 0xe9, + 0xab, 0x9e, 0x57, 0xcf, 0xd2, 0x6f, 0x89, 0x1c, + 0x8e, 0x06, 0x07, 0x7f, 0x2e, 0xf3, 0xae, 0x11, + 0x9c, 0x66, 0x32, 0xfe, 0x42, 0x10, 0x9c, 0xec, + 0x3a, 0x69, 0x54, 0x7d, 0x98, 0x54, 0xb2, 0xfd, + 0x7e, 0x9c, 0x33, 0xa2, 0x05, 0xc9, 0xcf, 0xc8, + 0x7c, 0xbc, 0xdb, 0x73, 0x72, 0x96, 0xde, 0x49, + 0xd7, 0xa3, 0x79, 0xcf, 0x55, 0xdd, 0xf9, 0x1d, + 0x7a, 0x37, 0x9c, 0xf5, 0x5d, 0xdf, 0x91, 0xd0, + 0x62, 0xee, 0xf0, 0x5f, 0x11, 0xd9, 0x5a, 0xaf, + 0xbe, 0xfa, 0xdb, 0x5d, 0x76, 0xa9, 0x9c, 0x1d, + 0x8a, 0xf5, 0xab, 0x9a, 0xce, 0x0f, 0x13, 0x76, + 0x08, 0x62, 0x2b, 0x09, 0x0c, 0xc7, 0x24, 0xee, + 0x53, 0xbe, 0xfa, 0xc5, 0x25, 0xfc, 0x07, 0xc4, + 0x16, 0x27, 0x0d, 0x16, 0x06, 0xa7, 0x34, 0x5e, + 0x04, 0x30, 0x1d, 0x7d, 0xf7, 0xc4, 0x2e, 0xa4, + 0x31, 0x70, 0xd7, 0x40, 0x31, 0xdd, 0x33, 0xe8, + 0x5a, 0xa9, 0x2d, 0x58, 0xf7, 0x4a, 0x8a, 0x77, + 0x8b, 0x4a, 0xcb, 0x70, 0x96, 0x7b, 0x22, 0xab, + 0x37, 0x59, 0x92, 0xf6, 0xba, 0x77, 0x69, 0x58, + 0x45, 0xe7, 0x6d, 0x16, 0x18, 0x87, 0x76, 0x3b, + 0x2b, 0x15, 0x59, 0x08, 0x11, 0xb0, 0x92, 0xac, + 0x7c, 0xdd, 0x24, 0x10, 0x31, 0x52, 0xaf, 0x18, + 0x5a, 0x7c, 0x2d, 0x98, 0x42, 0x92, 0x85, 0x54, + 0xa7, 0x51, 0x38, 0xab, 0xdd, 0x0a, 0x94, 0xd1, + 0x1b, 0x26, 0xba, 0xb9, 0x95, 0x24, 0x5b, 0x6e, + 0x4c, 0x63, 0x0e, 0x65, 0x8e, 0x7b, 0x1a, 0xe6, + 0x4c, 0x9b, 0x27, 0x58, 0xac, 0x39, 0x70, 0xae, + 0x65, 0x7e, 0x0c, 0x9e, 0xfb, 0x61, 0x8e, 0xbf, + 0xd6, 0xb7, 0x0a, 0xe7, 0x0a, 0x30, 0xd0, 0xe8, + 0x72, 0x8f, 0x60, 0x43, 0x0a, 0xba, 0x4a, 0x26, + 0x66, 0x57, 0xb6, 0xfe, 0x4d, 0x3e, 0xe2, 0x78, + 0x23, 0x2c, 0xab, 0xf9, 0x07, 0x51, 0x6e, 0x5a, + 0xc7, 0x63, 0xc8, 0x90, 0x5b, 0xec, 0x76, 0x91, + 0x78, 0xe2, 0xba, 0x66, 0xaf, 0xef, 0x1e, 0xdf, + 0x72, 0xba, 0xac, 0x5d, 0xf6, 0xdb, 0x30, 0x47, + 0x1c, 0xa8, 0x84, 0x2a, 0x65, 0x73, 0x34, 0x6f, + 0xf0, 0x2e, 0x6d, 0xe9, 0x35, 0xa1, 0x6c, 0xe9, + 0x2b, 0x21, 0x58, 0xcb, 0xb1, 0xdf, 0xbd, 0x76, + 0x9e, 0xd3, 0xe0, 0xf6, 0xec, 0x21, 0x19, 0x1b, + 0x35, 0xde, 0x05, 0xcf, 0x0f, 0x1e, 0x93, 0x97, + 0xd9, 0x9e, 0xbe, 0x79, 0x5e, 0x42, 0xff, 0x00, + 0x0a, 0x31, 0x2b, 0xa9, 0x95, 0xc5, 0xd8, 0x9c, + 0x7b, 0x46, 0xe6, 0x36, 0x29, 0x85, 0x4c, 0x7d, + 0x6a, 0x6d, 0xb8, 0x92, 0xb0, 0xa2, 0x3c, 0x95, + 0x27, 0x2e, 0x8a, 0x61, 0xf8, 0xca, 0xd0, 0x79, + 0x20, 0x62, 0x6b, 0xc2, 0x1c, 0x62, 0xd2, 0xdd, + 0xc7, 0x67, 0x81, 0xb2, 0xd9, 0x25, 0x27, 0x2f, + 0x93, 0xc9, 0x63, 0x3b, 0x46, 0x3e, 0xf2, 0xd6, + 0x11, 0x90, 0x7c, 0xb8, 0xab, 0xdd, 0xaf, 0x34, + 0xd9, 0x17, 0x2a, 0x75, 0x20, 0x1d, 0xd9, 0xf9, + 0xab, 0x4f, 0x3c, 0xb4, 0x4d, 0x84, 0x0c, 0x91, + 0x8c, 0x9e, 0x3f, 0xeb, 0x57, 0x33, 0x23, 0x93, + 0x6d, 0x06, 0x9b, 0x3c, 0x19, 0x74, 0x7a, 0x3d, + 0x85, 0x8e, 0x60, 0x88, 0x2e, 0x2b, 0xf2, 0xc8, + 0xb3, 0xad, 0x31, 0xe5, 0x8e, 0x48, 0x18, 0xdb, + 0x7d, 0x57, 0xa9, 0x77, 0x83, 0x73, 0x17, 0x17, + 0x18, 0x82, 0xc1, 0xdd, 0x39, 0xa5, 0x7d, 0x6e, + 0xbd, 0x40, 0x2c, 0x85, 0xbc, 0x77, 0x8f, 0xd9, + 0x19, 0x09, 0xb7, 0x8b, 0x6a, 0xc2, 0x2a, 0xd8, + 0x91, 0x7c, 0x4a, 0x86, 0x14, 0xc5, 0x10, 0xf3, + 0x73, 0x5f, 0xa9, 0xf5, 0x9e, 0x75, 0xa9, 0x81, + 0xe2, 0x19, 0x5b, 0x0d, 0x61, 0x6f, 0xc4, 0x4b, + 0x0a, 0x9f, 0x59, 0x05, 0x91, 0xf0, 0xcd, 0x84, + 0x82, 0x6c, 0xda, 0xe4, 0x73, 0x07, 0x2a, 0xa7, + 0x2a, 0x2c, 0x5e, 0xaf, 0x67, 0x9e, 0x8c, 0x24, + 0xa9, 0xac, 0x47, 0x2a, 0xcf, 0xac, 0xbc, 0xc6, + 0x4f, 0x1c, 0x59, 0xe5, 0x65, 0xf1, 0xff, 0x00, + 0xbc, 0xb2, 0xb4, 0x87, 0xad, 0x52, 0xb0, 0xd2, + 0x12, 0x60, 0xf6, 0x52, 0x63, 0x29, 0x59, 0x5a, + 0x96, 0xde, 0xce, 0x43, 0x5e, 0xc8, 0xf2, 0x84, + 0x75, 0xc3, 0x76, 0xae, 0x72, 0x01, 0x6b, 0x82, + 0x73, 0x25, 0x57, 0x27, 0xe1, 0x48, 0xb4, 0x95, + 0x55, 0xbe, 0x97, 0x44, 0x64, 0xb2, 0xc1, 0x98, + 0x1e, 0x85, 0x99, 0xa2, 0xde, 0x9c, 0xd6, 0xb0, + 0xb0, 0x0d, 0x8d, 0x2e, 0x55, 0x85, 0x6f, 0x0d, + 0x56, 0xfc, 0xb2, 0x0a, 0x5a, 0xf8, 0x0f, 0x24, + 0x85, 0x56, 0x1c, 0x68, 0x56, 0x42, 0xe9, 0xe5, + 0x3a, 0x42, 0x18, 0xe4, 0x64, 0x29, 0x74, 0x9f, + 0xcd, 0x5c, 0x9d, 0x61, 0x56, 0xb1, 0xf9, 0x27, + 0x56, 0xb3, 0x1d, 0x65, 0xb2, 0x59, 0x1d, 0xa4, + 0x1a, 0x32, 0x52, 0xbd, 0x05, 0x5a, 0x3c, 0x15, + 0x9a, 0xad, 0x48, 0x11, 0x97, 0x5c, 0x25, 0x95, + 0x6f, 0xd8, 0x71, 0x3f, 0x31, 0x56, 0x2a, 0x3e, + 0xc3, 0x2c, 0x76, 0x24, 0xc1, 0xf4, 0x52, 0x0a, + 0x1a, 0xea, 0x84, 0x0f, 0x28, 0x84, 0xf3, 0x19, + 0x93, 0x08, 0xf5, 0xe8, 0xde, 0x73, 0xd5, 0x77, + 0x7e, 0x47, 0x5e, 0x8d, 0xe7, 0x3d, 0x57, 0x77, + 0xe4, 0x75, 0xe8, 0xde, 0x73, 0xd5, 0x77, 0x7e, + 0x47, 0x58, 0x34, 0x3d, 0x66, 0x97, 0xa3, 0x87, + 0x70, 0x49, 0x72, 0x5a, 0x32, 0x0c, 0x53, 0x57, + 0x8e, 0x40, 0x31, 0x6c, 0x02, 0xd8, 0x80, 0xc0, + 0xe2, 0x44, 0x84, 0xa2, 0x24, 0x4a, 0x26, 0x27, + 0xbf, 0x4c, 0xfc, 0x1c, 0xbf, 0x5a, 0x9d, 0x61, + 0xff, 0x00, 0x1b, 0x2f, 0xf6, 0x4b, 0x7a, 0x0f, + 0x7a, 0x34, 0x7e, 0xf4, 0xea, 0xd7, 0xe3, 0x3c, + 0x87, 0xed, 0x05, 0xa8, 0xff, 0x00, 0x3c, 0x1f, + 0xf8, 0x4f, 0xfb, 0xa6, 0xa7, 0xe1, 0x28, 0xfd, + 0x68, 0xeb, 0x89, 0xbf, 0xd2, 0x1c, 0xdf, 0xf2, + 0x9d, 0xaf, 0xed, 0x19, 0x81, 0x8c, 0x65, 0x2a, + 0xd8, 0xec, 0x56, 0x16, 0xbb, 0x22, 0xe1, 0x56, + 0xaf, 0xdb, 0xe3, 0x33, 0xd4, 0xae, 0xb1, 0x39, + 0xca, 0x02, 0x82, 0xdb, 0xcb, 0x21, 0x60, 0xec, + 0x72, 0xe3, 0xda, 0xd6, 0x57, 0x0a, 0x91, 0xed, + 0x69, 0x12, 0xaf, 0xd5, 0xd2, 0x72, 0x8e, 0xc8, + 0x63, 0x9d, 0x52, 0xf1, 0x27, 0xc1, 0x05, 0x5d, + 0x8c, 0x26, 0x65, 0x94, 0x4a, 0xea, 0x5a, 0x7d, + 0x74, 0xca, 0xe1, 0xa8, 0x5e, 0x3c, 0x89, 0x69, + 0xb5, 0xdb, 0x02, 0xb9, 0x0b, 0x99, 0xd3, 0xdb, + 0xa9, 0xca, 0x07, 0x8c, 0xb7, 0x6b, 0x1a, 0x9c, + 0xad, 0x9c, 0xac, 0xd9, 0x7f, 0x4a, 0xd5, 0x8b, + 0xc8, 0xaf, 0x5a, 0x85, 0x6b, 0x3d, 0x94, 0x61, + 0x5e, 0x0f, 0xb5, 0x4d, 0xb3, 0x76, 0xc3, 0x55, + 0x62, 0x65, 0xae, 0x6b, 0x6b, 0xa1, 0x50, 0xb8, + 0xec, 0x8d, 0x32, 0x92, 0x1c, 0x9b, 0x2c, 0x76, + 0x98, 0xc2, 0xf3, 0x57, 0xc6, 0xe3, 0x9b, 0x71, + 0x9d, 0x17, 0xa3, 0x25, 0x9a, 0x6f, 0x67, 0xc6, + 0x95, 0x82, 0xaa, 0x70, 0xb6, 0xcd, 0x39, 0x87, + 0xb8, 0xfb, 0xe1, 0x2e, 0x1a, 0xf0, 0x6d, 0x50, + 0x01, 0xca, 0x87, 0x24, 0x66, 0xa2, 0x5f, 0x11, + 0x50, 0xcc, 0x64, 0x56, 0x11, 0xce, 0xc9, 0xeb, + 0xd6, 0xc4, 0xd3, 0xaa, 0xdc, 0x85, 0x1e, 0x97, + 0x3f, 0x4b, 0xa8, 0xa8, 0x6b, 0xee, 0x03, 0x05, + 0x7d, 0x59, 0x8a, 0xcc, 0x5f, 0x3c, 0xc4, 0x88, + 0x69, 0x0a, 0xac, 0xbe, 0x9a, 0xcf, 0x15, 0x87, + 0xb2, 0x51, 0xce, 0x67, 0xbb, 0xad, 0x63, 0x6b, + 0x58, 0x79, 0xee, 0xc2, 0x39, 0xf6, 0xc6, 0xb0, + 0xcf, 0x96, 0x27, 0x90, 0x77, 0xe5, 0x01, 0x11, + 0x88, 0x18, 0xfd, 0xdf, 0x0a, 0x7f, 0x95, 0xc4, + 0x3f, 0xcb, 0x4f, 0xfa, 0x9c, 0x21, 0xd2, 0x73, + 0x55, 0xba, 0xf3, 0xfb, 0xf4, 0xd8, 0x61, 0xbe, + 0xd7, 0x29, 0x6d, 0xbf, 0x2c, 0xc6, 0xfb, 0x6f, + 0x3b, 0x7b, 0xfa, 0xfb, 0x6e, 0xd7, 0xc6, 0x1b, + 0xfc, 0xfd, 0x7d, 0xb7, 0x6b, 0xe3, 0x0d, 0xfe, + 0x7e, 0x9d, 0x42, 0x69, 0x75, 0x68, 0x55, 0xc6, + 0xe5, 0xed, 0x65, 0xaf, 0x88, 0x95, 0x8c, 0x9f, + 0x54, 0x2b, 0x3e, 0xc5, 0x17, 0xd5, 0xb7, 0xb4, + 0xdb, 0xaa, 0xc4, 0x35, 0x35, 0x92, 0xaa, 0x34, + 0x8e, 0x2b, 0xd9, 0x0e, 0xd4, 0xcb, 0xea, 0x7a, + 0x4d, 0xd2, 0xaf, 0xae, 0x2f, 0x0e, 0x57, 0xf0, + 0x6f, 0x43, 0x6e, 0x7e, 0xdb, 0x6b, 0xab, 0xe1, + 0x6e, 0xa4, 0x0f, 0x80, 0xfb, 0x3e, 0xdd, 0x7e, + 0xdd, 0xd2, 0x9e, 0xd3, 0x0c, 0x85, 0xcd, 0x4e, + 0x84, 0x75, 0xa5, 0xf1, 0x5f, 0xdb, 0xf5, 0x6e, + 0xde, 0x6d, 0xf6, 0xd9, 0x8a, 0xa2, 0x85, 0x0b, + 0x47, 0xb6, 0xda, 0x4f, 0x35, 0xac, 0x85, 0xa4, + 0xd0, 0xa7, 0x1d, 0x44, 0xb4, 0x19, 0xb2, 0x65, + 0xcd, 0xb9, 0x30, 0x27, 0x1c, 0xd1, 0x56, 0x44, + 0xb9, 0x82, 0x48, 0x66, 0xff, 0x00, 0x5b, 0x35, + 0x56, 0x82, 0xb1, 0xf9, 0x4f, 0x03, 0xb1, 0x99, + 0x0b, 0xd7, 0x83, 0x9e, 0xe9, 0x19, 0x0a, 0x96, + 0xb5, 0xd4, 0xad, 0x71, 0x87, 0xcf, 0xc8, 0x53, + 0x27, 0x01, 0xd3, 0x50, 0x81, 0x31, 0xe4, 0xa5, + 0x47, 0x3e, 0xa6, 0xa3, 0x72, 0xc8, 0xa3, 0x6e, + 0x72, 0x2d, 0xc4, 0xa2, 0xad, 0xbb, 0xb9, 0x02, + 0x75, 0xbb, 0xe8, 0x91, 0x16, 0xa5, 0x31, 0x42, + 0xad, 0xe1, 0x01, 0x02, 0x30, 0x1e, 0xd3, 0x70, + 0xaa, 0xd4, 0x99, 0x3e, 0xe7, 0xcc, 0x03, 0x65, + 0x78, 0xab, 0x03, 0x7c, 0x71, 0x4a, 0x8c, 0x2a, + 0xec, 0x65, 0xae, 0xdf, 0xbd, 0x91, 0x94, 0x76, + 0xe6, 0xe5, 0xb2, 0x74, 0xd4, 0xb8, 0x0a, 0xc1, + 0x90, 0xb0, 0x6f, 0x68, 0x55, 0x81, 0x14, 0x51, + 0xaa, 0x4b, 0x85, 0xd7, 0x6d, 0x86, 0x40, 0x00, + 0xb1, 0xb2, 0x55, 0xac, 0xe5, 0x2b, 0xe3, 0x8b, + 0xb5, 0xd7, 0xa3, 0x5d, 0xb7, 0x72, 0x17, 0x3b, + 0x3d, 0xeb, 0x36, 0xd2, 0x16, 0x6b, 0x8d, 0x46, + 0xd4, 0x45, 0xbe, 0x65, 0x32, 0xb3, 0x52, 0xfe, + 0xd4, 0xf8, 0x45, 0x45, 0xad, 0xe8, 0xea, 0xbd, + 0x66, 0xc8, 0x0d, 0x67, 0x63, 0x27, 0x66, 0xcb, + 0x95, 0xc3, 0x95, 0xec, 0xb6, 0xd2, 0x11, 0x72, + 0xc0, 0x8d, 0xbb, 0x2a, 0xbc, 0x9c, 0x6a, 0x2b, + 0x8b, 0xbc, 0x56, 0x0d, 0x76, 0x5b, 0xb0, 0x26, + 0xd6, 0x88, 0x83, 0x7b, 0x32, 0xce, 0x03, 0xa6, + 0xd3, 0x09, 0x1a, 0x89, 0xc6, 0xc3, 0x31, 0x97, + 0xb6, 0xb6, 0x57, 0xc6, 0x2f, 0xdf, 0xf0, 0x3a, + 0xa9, 0xd7, 0x5f, 0x68, 0xed, 0xfd, 0x6b, 0xd7, + 0x6f, 0xde, 0x47, 0x45, 0x02, 0xee, 0xd8, 0x04, + 0x6f, 0x19, 0x85, 0x2c, 0xab, 0x0f, 0x51, 0xbd, + 0x0d, 0x31, 0x8b, 0xcd, 0xd3, 0x9a, 0x0b, 0xc6, + 0x37, 0x2f, 0xe1, 0x5e, 0xdd, 0x93, 0x8a, 0x2c, + 0xa7, 0x5e, 0xda, 0x69, 0x59, 0x90, 0x09, 0xa5, + 0xe1, 0x18, 0x7d, 0x67, 0xbe, 0x21, 0x95, 0x5b, + 0x8f, 0x55, 0x82, 0x81, 0x99, 0xae, 0xb7, 0x73, + 0xd7, 0x87, 0x90, 0x46, 0x62, 0x9d, 0x86, 0xad, + 0x98, 0xce, 0xa2, 0xab, 0xe4, 0x6f, 0x19, 0xae, + 0xa6, 0x65, 0xab, 0x4e, 0x37, 0x24, 0x5c, 0xf5, + 0x56, 0x1d, 0x8e, 0xcb, 0x1c, 0x8f, 0x6b, 0x13, + 0x2c, 0x92, 0x06, 0xc2, 0x0e, 0xce, 0x3d, 0x20, + 0xc8, 0x2d, 0x0a, 0x83, 0x2d, 0x56, 0xe1, 0xf8, + 0x46, 0x31, 0x16, 0x7b, 0x26, 0x4e, 0xcf, 0x26, + 0x3f, 0x22, 0x43, 0x27, 0xd9, 0xae, 0xb6, 0xda, + 0xaa, 0x2a, 0x23, 0x94, 0x1d, 0xfb, 0xe6, 0xb1, + 0xd9, 0xa7, 0xba, 0x1e, 0x3d, 0xa3, 0x9d, 0x7c, + 0xba, 0xa9, 0xd9, 0x33, 0xb4, 0xac, 0xd6, 0xb8, + 0x39, 0x29, 0x5e, 0x42, 0x2e, 0xe5, 0x6b, 0xd2, + 0x5c, 0xe2, 0x51, 0x16, 0x6f, 0x03, 0x8a, 0xf5, + 0x0a, 0x96, 0x06, 0x54, 0x92, 0x13, 0x86, 0x0d, + 0x63, 0xae, 0x7c, 0xdb, 0x0b, 0xb9, 0x85, 0x90, + 0x04, 0x2a, 0xcf, 0x51, 0x63, 0xe5, 0x77, 0xac, + 0x56, 0xae, 0xbb, 0xf9, 0x46, 0xb2, 0xed, 0x4c, + 0x7f, 0x5b, 0xaf, 0x71, 0x06, 0x9a, 0x2c, 0xac, + 0xa4, 0x14, 0x57, 0x71, 0x22, 0x2f, 0xd8, 0xa5, + 0x65, 0xa2, 0x3d, 0xd5, 0xf9, 0x98, 0xa1, 0x32, + 0x52, 0x38, 0x8e, 0xa8, 0xd4, 0xfe, 0xc6, 0x57, + 0x45, 0x8b, 0xd7, 0x32, 0xa9, 0xed, 0x59, 0x1b, + 0x98, 0xea, 0xb7, 0x19, 0x55, 0x43, 0x18, 0xee, + 0x68, 0xef, 0x78, 0xbb, 0xae, 0xc1, 0x5d, 0x0a, + 0xb5, 0xec, 0xd4, 0x0b, 0x97, 0x95, 0x64, 0x98, + 0xb1, 0x09, 0x3c, 0x95, 0x7a, 0xaf, 0x3b, 0x76, + 0xe9, 0x0d, 0x0b, 0x59, 0x2b, 0x21, 0x7a, 0x5b, + 0x8f, 0x6c, 0xaf, 0x23, 0x30, 0x85, 0xa9, 0xb0, + 0x4b, 0xa3, 0x11, 0x2d, 0x74, 0x8b, 0x08, 0x8d, + 0x7d, 0xd5, 0x46, 0xc3, 0xfd, 0xa7, 0x49, 0xdb, + 0x2c, 0x37, 0x53, 0x65, 0x3d, 0x74, 0x5a, 0xa3, + 0x6e, 0xe1, 0x25, 0x81, 0xd4, 0x35, 0x14, 0x48, + 0x5a, 0x55, 0x4b, 0x69, 0x60, 0x31, 0x66, 0x06, + 0xbb, 0x15, 0x52, 0x7d, 0xd0, 0x63, 0x04, 0xb2, + 0x03, 0x2f, 0xb6, 0xed, 0x7c, 0x61, 0xbf, 0xcf, + 0xd7, 0xdb, 0x76, 0xbe, 0x30, 0xdf, 0xe7, 0xeb, + 0x87, 0xc8, 0xa6, 0x48, 0x8b, 0x86, 0xb0, 0x32, + 0x45, 0x33, 0xbc, 0xcc, 0xce, 0x35, 0x1b, 0xcc, + 0xcc, 0xf7, 0xcc, 0xcf, 0xdd, 0x9d, 0x33, 0xf0, + 0x72, 0xfd, 0x6a, 0x75, 0x87, 0xfc, 0x6c, 0xbf, + 0xd9, 0x2d, 0xe8, 0x3d, 0xe8, 0xd1, 0xfb, 0xd3, + 0xab, 0x5f, 0x8c, 0xf2, 0x1f, 0xb4, 0x16, 0x87, + 0xfc, 0xf0, 0xff, 0x00, 0xe0, 0x66, 0xb9, 0x02, + 0x40, 0x60, 0x47, 0x9d, 0xad, 0x69, 0xc2, 0xd2, + 0x85, 0x46, 0xdc, 0xcd, 0x73, 0x0b, 0xc5, 0x05, + 0x8e, 0xf1, 0xbc, 0xf9, 0x66, 0x66, 0x04, 0x60, + 0x8e, 0x44, 0x67, 0x94, 0xf8, 0x8a, 0xaf, 0x37, + 0xf0, 0xba, 0x54, 0x72, 0x6e, 0x0d, 0xff, 0x00, + 0xc5, 0x68, 0x54, 0xe5, 0x38, 0xfe, 0x38, 0xf2, + 0xeb, 0xd2, 0x24, 0xfa, 0xb3, 0x2d, 0xf3, 0x4d, + 0x7a, 0x44, 0x9f, 0x56, 0x65, 0xbe, 0x69, 0xaf, + 0x48, 0x93, 0xea, 0xcc, 0xb7, 0xcd, 0x35, 0xe9, + 0x12, 0x7d, 0x59, 0x96, 0xf9, 0xa6, 0xbd, 0x22, + 0x4f, 0xab, 0x32, 0xdf, 0x34, 0xd7, 0xa4, 0x49, + 0xf5, 0x66, 0x5b, 0xe6, 0x9a, 0xf4, 0x89, 0x3e, + 0xac, 0xcb, 0x7c, 0xd3, 0x5e, 0x91, 0x27, 0xd5, + 0x99, 0x6f, 0x9a, 0x6b, 0xd2, 0x24, 0xfa, 0xb3, + 0x2d, 0xf3, 0x4d, 0x7a, 0x44, 0x9f, 0x56, 0x65, + 0xbe, 0x69, 0xaf, 0x48, 0x93, 0xea, 0xcc, 0xb7, + 0xcd, 0x35, 0xe9, 0x12, 0x7d, 0x59, 0x96, 0xf9, + 0xa6, 0xbd, 0x22, 0x4f, 0xab, 0x32, 0xdf, 0x34, + 0xd7, 0xa4, 0x49, 0xf5, 0x66, 0x5b, 0xe6, 0x9a, + 0xf4, 0x89, 0x3e, 0xac, 0xcb, 0x7c, 0xd3, 0x5e, + 0x91, 0x27, 0xd5, 0x99, 0x6f, 0x9a, 0x6b, 0xd2, + 0x24, 0xfa, 0xb3, 0x2d, 0xf3, 0x4d, 0x7a, 0x44, + 0x9f, 0x56, 0x65, 0xbe, 0x69, 0xaf, 0x48, 0x93, + 0xea, 0xcc, 0xb7, 0xcd, 0x35, 0xe9, 0x12, 0x7d, + 0x59, 0x96, 0xf9, 0xa6, 0xbb, 0x65, 0x5b, 0x35, + 0xef, 0xd2, 0x92, 0xe4, 0xed, 0x35, 0x08, 0x8a, + 0x14, 0x53, 0xee, 0x42, 0xc2, 0xcc, 0x41, 0xa8, + 0x32, 0xfb, 0x90, 0x63, 0xb7, 0xdc, 0x82, 0x99, + 0xfa, 0x95, 0x3f, 0x09, 0x47, 0xeb, 0x47, 0x5c, + 0x4d, 0xe3, 0x47, 0xa4, 0x39, 0xbf, 0xbb, 0x1f, + 0xfd, 0x67, 0x6b, 0x5e, 0xe8, 0x7f, 0x2c, 0x6b, + 0xdd, 0x0f, 0xe5, 0x8d, 0x7b, 0xa1, 0xfc, 0xb1, + 0xaf, 0x74, 0x3f, 0x96, 0x35, 0xee, 0x87, 0xf2, + 0xc6, 0xbd, 0xd0, 0xfe, 0x58, 0xd7, 0xba, 0x1f, + 0xcb, 0x1a, 0xa1, 0x8a, 0xc7, 0xdc, 0xc8, 0xd6, + 0x45, 0x24, 0xc3, 0xdb, 0x50, 0xf1, 0x75, 0x39, + 0x32, 0x19, 0x96, 0x0e, 0xd6, 0x6e, 0xda, 0xb8, + 0x39, 0xa9, 0x39, 0x1f, 0xf9, 0x1a, 0x91, 0xd9, + 0x0f, 0xb3, 0x56, 0x8e, 0x51, 0x5c, 0x9b, 0x1a, + 0x44, 0x54, 0x2e, 0xd8, 0xae, 0xca, 0x7d, 0x4a, + 0xcd, 0x45, 0x71, 0xad, 0x59, 0x6a, 0xa3, 0x35, + 0x51, 0xd9, 0xc0, 0x31, 0xc2, 0x01, 0x11, 0x45, + 0x46, 0xad, 0xa1, 0xcb, 0xaf, 0xc8, 0x0d, 0xe5, + 0x8d, 0xe2, 0x39, 0x99, 0x07, 0x46, 0x96, 0x51, + 0xd7, 0x6b, 0x33, 0x18, 0xc7, 0x8d, 0x7b, 0x34, + 0x51, 0x5e, 0xe7, 0x5e, 0x8d, 0x96, 0xf6, 0x82, + 0xaa, 0xd5, 0x3e, 0xe5, 0x2e, 0x8b, 0x52, 0xf9, + 0x71, 0xa6, 0xc8, 0x9b, 0xa3, 0x95, 0xfc, 0x87, + 0x5e, 0x7a, 0x62, 0x52, 0x15, 0xb8, 0x7c, 0xac, + 0xe0, 0xcd, 0xd9, 0x2b, 0x37, 0xee, 0x8d, 0x27, + 0x45, 0x50, 0x85, 0x82, 0x2b, 0x53, 0xc5, 0xd7, + 0x06, 0xd5, 0x62, 0xe6, 0xc7, 0x4d, 0x09, 0x6d, + 0x8b, 0x66, 0xc4, 0x27, 0xa9, 0x75, 0xe6, 0xc1, + 0x19, 0x89, 0xd5, 0x7b, 0xb8, 0x8e, 0xbd, 0x6c, + 0x88, 0x67, 0xe7, 0x88, 0x1b, 0xd6, 0x5a, 0x22, + 0xb4, 0x58, 0xb1, 0x8a, 0xa1, 0x5e, 0xea, 0xc7, + 0x96, 0xc3, 0x09, 0xaa, 0x75, 0xd4, 0x5a, 0xdc, + 0x58, 0x03, 0xd4, 0xaa, 0xe8, 0xe7, 0xd8, 0xc8, + 0x80, 0x59, 0x73, 0x1a, 0x92, 0xa9, 0x4e, 0x6b, + 0x51, 0x4a, 0x6a, 0xb6, 0x57, 0xbd, 0x7e, 0xcd, + 0x4d, 0x28, 0x24, 0x8c, 0x81, 0x9c, 0x12, 0x96, + 0x41, 0x20, 0x92, 0x99, 0x82, 0x25, 0x40, 0x11, + 0x00, 0x14, 0xc8, 0xc7, 0xba, 0x1f, 0xcb, 0x1a, + 0xf7, 0x43, 0xf9, 0x63, 0x5e, 0xe8, 0x7f, 0x2c, + 0x6b, 0xdd, 0x0f, 0xe5, 0x8d, 0x7b, 0xa1, 0xfc, + 0xb1, 0xaf, 0x74, 0x3f, 0x96, 0x35, 0xee, 0x87, + 0xf2, 0xc6, 0xb8, 0x4f, 0x6f, 0xf0, 0xb8, 0x87, + 0xf9, 0x69, 0xff, 0x00, 0x53, 0x87, 0x6e, 0xae, + 0x24, 0x95, 0x8e, 0xb3, 0x94, 0xa3, 0x6a, 0x63, + 0xfe, 0x49, 0x97, 0x8a, 0xbd, 0x9a, 0xf2, 0x7f, + 0x78, 0x59, 0x0a, 0x31, 0x12, 0xf2, 0x49, 0x0c, + 0x8f, 0x96, 0x3e, 0xae, 0x37, 0x24, 0x29, 0xba, + 0xac, 0xb6, 0x31, 0x76, 0x60, 0x92, 0x98, 0x86, + 0x53, 0xca, 0xbc, 0x89, 0x9d, 0x95, 0xef, 0xb2, + 0xeb, 0x9d, 0x5a, 0x22, 0x2b, 0x6f, 0x46, 0xdd, + 0x6a, 0xf4, 0xdc, 0xab, 0x00, 0x81, 0xe9, 0xcd, + 0x72, 0x7b, 0x08, 0x7c, 0x0f, 0xd6, 0x47, 0x83, + 0x26, 0x97, 0x62, 0xec, 0x51, 0x52, 0xb7, 0x67, + 0xfb, 0x3f, 0x69, 0xed, 0x9d, 0x3e, 0x9e, 0xde, + 0x12, 0xea, 0x47, 0x9c, 0x3e, 0xd9, 0xfe, 0x17, + 0x3f, 0x53, 0x63, 0xd1, 0xd3, 0xc6, 0xd9, 0xbf, + 0x4f, 0x21, 0x6b, 0x23, 0x16, 0x2d, 0xd8, 0xae, + 0xd2, 0xae, 0x33, 0x52, 0xbd, 0x7e, 0x9d, 0x44, + 0x83, 0x52, 0xf8, 0x69, 0xcc, 0xb9, 0xd6, 0x58, + 0xe0, 0x35, 0xc0, 0x47, 0x2a, 0x24, 0x48, 0xa7, + 0x7e, 0x5d, 0xd4, 0xab, 0x81, 0x76, 0xdd, 0xfc, + 0x3e, 0x53, 0x23, 0xd4, 0x5a, 0x7a, 0x3d, 0xb6, + 0xae, 0x38, 0xe9, 0xe4, 0x4d, 0x2c, 0x8b, 0x06, + 0xc6, 0x76, 0x97, 0xf2, 0xd9, 0x09, 0x62, 0xc0, + 0x88, 0x9a, 0xee, 0x7e, 0x4d, 0x87, 0x9e, 0x6d, + 0xf5, 0x33, 0x34, 0x97, 0xf5, 0xc5, 0x7b, 0x2f, + 0x69, 0x14, 0x51, 0x5a, 0x0b, 0x33, 0x51, 0xef, + 0x53, 0xaa, 0x56, 0xbd, 0x63, 0xb7, 0xa4, 0x93, + 0xd9, 0xa0, 0x0c, 0x3a, 0x3c, 0xb7, 0xab, 0xec, + 0xd6, 0x4a, 0xf9, 0x18, 0x64, 0x72, 0x18, 0x87, + 0x78, 0x4a, 0xbd, 0x51, 0x4a, 0x0c, 0x6d, 0x2e, + 0xa5, 0x57, 0xb8, 0x2e, 0x55, 0xc8, 0xe6, 0x9c, + 0x11, 0x35, 0x8a, 0xf2, 0x05, 0xd5, 0xdb, 0x4b, + 0x2d, 0xca, 0x45, 0xda, 0x92, 0x6a, 0xb2, 0xbe, + 0xe0, 0x6a, 0xfb, 0xcb, 0x1e, 0x5d, 0x8b, 0x28, + 0xbc, 0x66, 0x33, 0x33, 0x8a, 0xad, 0x45, 0xb4, + 0xd5, 0x52, 0xf3, 0xe5, 0x75, 0xf1, 0xb4, 0x28, + 0xf4, 0xb2, 0x41, 0x36, 0xd0, 0x74, 0xa5, 0xcb, + 0xc7, 0x2e, 0xc8, 0xde, 0xe4, 0x7d, 0x71, 0xe6, + 0xb0, 0xae, 0x57, 0x4a, 0x77, 0xd7, 0x12, 0xf5, + 0x61, 0x8e, 0xc5, 0xe6, 0x9b, 0x94, 0xab, 0x62, + 0x6b, 0xf2, 0x4b, 0xa1, 0x2d, 0xc8, 0x76, 0xca, + 0xb6, 0xab, 0xf3, 0x4c, 0x2c, 0xd9, 0x5e, 0xca, + 0x2b, 0xba, 0x00, 0x88, 0x41, 0xcb, 0x86, 0x26, + 0x4c, 0x3a, 0x9c, 0xe3, 0x15, 0x10, 0xab, 0x2f, + 0xab, 0x6a, 0xa6, 0x56, 0x9e, 0x4f, 0x22, 0x74, + 0xea, 0xd7, 0xc9, 0x1a, 0xb2, 0x75, 0xc6, 0xb8, + 0x05, 0x64, 0xc5, 0xab, 0x23, 0x0b, 0xa3, 0x2b, + 0x5b, 0xc5, 0x6c, 0xbd, 0xb5, 0x86, 0x13, 0xa2, + 0x7b, 0x3c, 0x14, 0x14, 0x5b, 0xc3, 0xd5, 0x8b, + 0xcd, 0x51, 0xe1, 0xac, 0xd3, 0x55, 0xa7, 0xa1, + 0x08, 0x37, 0x5e, 0xb9, 0x98, 0xc5, 0x5f, 0x61, + 0xb2, 0xb8, 0x5b, 0xb1, 0x15, 0xaa, 0xae, 0xb6, + 0x3b, 0xa0, 0x1c, 0x96, 0x2d, 0x19, 0xb7, 0x66, + 0x48, 0x84, 0x34, 0xa1, 0x6c, 0x15, 0xae, 0xd4, + 0x4e, 0x49, 0x1c, 0x13, 0x8d, 0xaf, 0xce, 0xb5, + 0x78, 0xb6, 0x30, 0xf7, 0x30, 0x7d, 0xa8, 0x9d, + 0xb3, 0xcb, 0x95, 0x27, 0xd8, 0x5d, 0xd0, 0x20, + 0xea, 0x19, 0xf3, 0x2f, 0xa8, 0xb5, 0x73, 0x17, + 0x25, 0xda, 0x8a, 0x5d, 0xeb, 0xd5, 0xd9, 0xc4, + 0xfe, 0x10, 0xc8, 0x45, 0xba, 0x94, 0xc6, 0x51, + 0x18, 0xf9, 0xbc, 0xa4, 0x2a, 0xb2, 0xfb, 0x4d, + 0x85, 0x5d, 0x35, 0xbe, 0xd9, 0xbe, 0x59, 0x62, + 0x2a, 0x2d, 0xdd, 0x05, 0x2c, 0xab, 0xae, 0x0d, + 0x93, 0x15, 0xd2, 0x76, 0xb3, 0x99, 0x3b, 0x4a, + 0x5f, 0x12, 0x03, 0x6e, 0x5f, 0x52, 0x46, 0x59, + 0xe1, 0x9c, 0x50, 0x51, 0xaa, 0x20, 0xbf, 0x09, + 0x5b, 0x25, 0x2e, 0xbb, 0x16, 0x3d, 0x48, 0xeb, + 0x1f, 0x89, 0x26, 0xc0, 0x89, 0x9d, 0x93, 0x14, + 0x14, 0xc6, 0xe6, 0x10, 0x15, 0xb1, 0x97, 0xaa, + 0x5a, 0xc6, 0x51, 0x4d, 0x68, 0xa5, 0x72, 0xf5, + 0xa1, 0xb6, 0x03, 0x94, 0x7b, 0xe6, 0xf2, 0x49, + 0xe7, 0x01, 0x61, 0x7b, 0xa5, 0xd5, 0x08, 0x87, + 0xa0, 0xb5, 0xae, 0xcc, 0x28, 0x60, 0x75, 0x55, + 0x77, 0x0b, 0x2c, 0x80, 0xac, 0xca, 0x96, 0xa2, + 0x11, 0x4a, 0xa3, 0x24, 0x8f, 0xc1, 0x58, 0xcc, + 0x7e, 0x42, 0x9e, 0xe5, 0x91, 0x54, 0xc0, 0x11, + 0xe2, 0x94, 0xda, 0x97, 0xfd, 0xd0, 0x8b, 0x98, + 0x2c, 0xa1, 0xb8, 0x0c, 0x95, 0x1b, 0xcd, 0xf0, + 0x95, 0x23, 0x5e, 0x47, 0x33, 0x75, 0xcc, 0xc7, + 0x34, 0x15, 0x6a, 0xaf, 0x84, 0x6c, 0xcb, 0xaa, + 0x95, 0x27, 0xf3, 0xc4, 0xb1, 0x95, 0x63, 0x97, + 0xa9, 0xcd, 0x15, 0xba, 0xbc, 0xb2, 0x22, 0xd5, + 0xf3, 0xf5, 0x02, 0x93, 0x20, 0x99, 0x66, 0xca, + 0x2a, 0xf4, 0x6d, 0xe4, 0x9f, 0x46, 0x9e, 0x39, + 0xf7, 0xcf, 0xac, 0xc2, 0x51, 0x36, 0xad, 0x26, + 0x39, 0x5b, 0xa1, 0x32, 0x08, 0x87, 0x13, 0x98, + 0xe7, 0x72, 0xf3, 0x32, 0x7c, 0x91, 0xf5, 0x01, + 0x6b, 0x02, 0x63, 0x18, 0x42, 0xb5, 0xac, 0x22, + 0x48, 0xd8, 0x67, 0x3c, 0xa0, 0x00, 0x31, 0xde, + 0x44, 0x45, 0x31, 0x03, 0x11, 0xdf, 0x33, 0x3b, + 0x6b, 0x1d, 0x41, 0x9c, 0xbd, 0x7c, 0x6e, 0x1f, + 0x13, 0x8f, 0xb3, 0xcb, 0x3c, 0xc3, 0x16, 0x6a, + 0x50, 0x42, 0x9e, 0x22, 0x51, 0xe5, 0x81, 0x64, + 0x10, 0xef, 0xf7, 0xe2, 0x74, 0xcf, 0xc1, 0xcb, + 0xf5, 0xaa, 0xd6, 0x1f, 0xf1, 0xaa, 0xff, 0x00, + 0x65, 0xb7, 0xa0, 0xf7, 0xa3, 0x47, 0xef, 0x4e, + 0xad, 0x7e, 0x33, 0xc8, 0x7e, 0xd0, 0x5a, 0x1f, + 0xf3, 0xc3, 0xff, 0x00, 0x81, 0x9a, 0xc5, 0x24, + 0x0b, 0x94, 0x72, 0x97, 0x32, 0x0f, 0xb1, 0x31, + 0xdd, 0x27, 0x18, 0xe8, 0xa8, 0xaa, 0xea, 0x29, + 0xfe, 0x10, 0x01, 0x59, 0x6b, 0x60, 0x7c, 0x9c, + 0xe5, 0xbf, 0xdc, 0x8d, 0x79, 0x75, 0xe5, 0xd7, + 0x97, 0x4a, 0xc6, 0x85, 0x91, 0xab, 0x2c, 0x5b, + 0x99, 0xd6, 0x25, 0xcb, 0x60, 0x61, 0x41, 0xcf, + 0x3e, 0x24, 0x1a, 0xfc, 0xbf, 0xe5, 0x77, 0x6a, + 0xc6, 0x47, 0x17, 0x9d, 0xc7, 0x67, 0x55, 0x4a, + 0x47, 0xb7, 0x05, 0x2d, 0xa1, 0xb5, 0x96, 0x73, + 0xb4, 0x36, 0x62, 0x1e, 0xfe, 0x61, 0x82, 0xf7, + 0x7e, 0xe2, 0x44, 0x7c, 0x7f, 0x18, 0x60, 0xb9, + 0x61, 0xfd, 0x17, 0xf4, 0x27, 0xba, 0x1d, 0xd2, + 0x67, 0x4a, 0x66, 0x67, 0x96, 0x22, 0x19, 0xb7, + 0x24, 0xee, 0x5e, 0x2f, 0x97, 0xcb, 0xdd, 0xe5, + 0xd5, 0x14, 0xd8, 0x19, 0x63, 0x6f, 0x53, 0x4d, + 0xb0, 0x14, 0xad, 0xa5, 0x03, 0x2f, 0x26, 0x72, + 0xd6, 0xde, 0x42, 0x25, 0x96, 0x04, 0x00, 0x49, + 0xa0, 0x23, 0xe2, 0x11, 0xf2, 0xf8, 0xd0, 0x3c, + 0xe5, 0xc8, 0xe0, 0x62, 0x8f, 0x68, 0x9e, 0x46, + 0x81, 0x2c, 0xf6, 0x9f, 0x24, 0xf2, 0x9c, 0x44, + 0xed, 0x3f, 0x73, 0xbb, 0xbf, 0x48, 0xcc, 0x5c, + 0xe2, 0x1a, 0x38, 0x84, 0xd8, 0xb0, 0xfa, 0xeb, + 0x1b, 0x8a, 0xee, 0x93, 0x41, 0x4c, 0x4e, 0xcd, + 0x2b, 0x49, 0x82, 0x99, 0x88, 0xe6, 0xe5, 0x81, + 0xee, 0x8f, 0xbf, 0xae, 0xc9, 0xbf, 0x6e, 0x03, + 0xae, 0xbb, 0x95, 0xed, 0x53, 0x03, 0x62, 0x9f, + 0x51, 0xa4, 0x42, 0xb7, 0x6c, 0x30, 0x5c, 0x9b, + 0x90, 0xc8, 0x90, 0xf3, 0x14, 0x41, 0x7b, 0x93, + 0x31, 0x91, 0x29, 0x35, 0x85, 0x7b, 0x04, 0xc5, + 0x7d, 0x94, 0x05, 0x2d, 0x23, 0x5f, 0xf9, 0xc1, + 0x81, 0xdc, 0x3f, 0xfb, 0xa8, 0x8d, 0x64, 0xb2, + 0xc9, 0xef, 0xad, 0x8d, 0x94, 0x01, 0x8c, 0x0b, + 0x0d, 0xae, 0x63, 0xda, 0x21, 0xca, 0xa8, 0x11, + 0xe5, 0xe5, 0x50, 0x49, 0x35, 0xc5, 0x25, 0xe2, + 0x44, 0x0c, 0x72, 0xec, 0x7c, 0xc3, 0x0f, 0x95, + 0xb6, 0x10, 0x45, 0xca, 0x2e, 0x90, 0x3e, 0x91, + 0x17, 0x7f, 0x8a, 0x2c, 0xdb, 0x92, 0x4b, 0xc5, + 0x2e, 0xe8, 0x9d, 0xfc, 0x59, 0xfb, 0xd3, 0xa9, + 0xb1, 0xd2, 0x77, 0x42, 0x27, 0x69, 0x7f, 0x4c, + 0xfa, 0x31, 0x3c, 0xdc, 0xbb, 0x4b, 0x76, 0xe4, + 0xdf, 0x9a, 0x60, 0x76, 0xdf, 0xdd, 0x77, 0x79, + 0x75, 0x84, 0x2c, 0xc3, 0xdb, 0x5a, 0x9e, 0x62, + 0xbb, 0x6c, 0xf5, 0x2a, 0xd4, 0xb3, 0x6d, 0xd5, + 0x97, 0x09, 0x93, 0x40, 0x1a, 0x96, 0x92, 0x32, + 0x7b, 0x4b, 0xdd, 0x29, 0x6b, 0x3e, 0x92, 0xfc, + 0x79, 0x29, 0xd8, 0xfa, 0x6d, 0x1a, 0xca, 0x7b, + 0xc5, 0x53, 0x3b, 0xca, 0xd2, 0xc2, 0x98, 0x0d, + 0xe7, 0x94, 0x8e, 0x04, 0x66, 0x43, 0x78, 0x8f, + 0xe1, 0x6d, 0xf7, 0x7e, 0xf6, 0xa4, 0x96, 0xb6, + 0x18, 0xc4, 0x88, 0xc9, 0x00, 0x11, 0x44, 0x11, + 0xcf, 0x28, 0x0c, 0xc8, 0xc4, 0xc4, 0x11, 0x97, + 0x70, 0x47, 0x94, 0xa7, 0xba, 0x37, 0x9d, 0x4a, + 0xda, 0x26, 0xb6, 0x0f, 0xba, 0x06, 0x09, 0x01, + 0x8e, 0xf1, 0x13, 0x1c, 0xc2, 0x5b, 0x14, 0x6f, + 0x13, 0x13, 0x1b, 0xc7, 0x92, 0x62, 0x75, 0xe5, + 0xd7, 0x97, 0x5e, 0x5d, 0x15, 0x1e, 0x79, 0xec, + 0xf9, 0x1a, 0x19, 0x14, 0xd9, 0x5f, 0xdc, 0x28, + 0x4d, 0x1b, 0x16, 0x94, 0x7b, 0x79, 0x3a, 0x8b, + 0x6a, 0x06, 0x40, 0xfc, 0xa3, 0x12, 0x51, 0x1d, + 0xc5, 0x3f, 0x52, 0xa7, 0xe1, 0x28, 0xfd, 0x68, + 0xeb, 0x3d, 0x52, 0xbe, 0x51, 0x61, 0x5e, 0xae, + 0x6b, 0x2b, 0x59, 0x01, 0x38, 0x9c, 0x23, 0x24, + 0x12, 0x8b, 0xf6, 0x14, 0xa0, 0xea, 0x37, 0x1a, + 0x6d, 0x3e, 0x50, 0x11, 0x8e, 0x76, 0x19, 0xb0, + 0xb6, 0xe6, 0x32, 0x22, 0x99, 0x9d, 0x79, 0xd9, + 0x5e, 0xa5, 0xc0, 0x7d, 0x15, 0xaa, 0xf5, 0xec, + 0xf1, 0x0d, 0x6a, 0x55, 0xcc, 0xe3, 0xaf, 0x60, + 0xf0, 0xb8, 0x12, 0x91, 0x5c, 0x4f, 0x8c, 0x29, + 0x58, 0xe2, 0x64, 0x9d, 0x61, 0x9f, 0x63, 0x42, + 0x86, 0x3c, 0x66, 0x10, 0xf3, 0x48, 0xae, 0x0c, + 0xc6, 0xf7, 0x6d, 0xca, 0xd8, 0x6d, 0x59, 0xe2, + 0xac, 0x87, 0x0f, 0xd1, 0x15, 0x63, 0xb8, 0x69, + 0x4c, 0x4d, 0x5a, 0x0d, 0x11, 0x7d, 0xe7, 0xb2, + 0x70, 0x2d, 0x87, 0xb4, 0x05, 0xf5, 0x84, 0x12, + 0x2b, 0x48, 0xb2, 0x61, 0xc4, 0x46, 0x1e, 0x24, + 0x6a, 0xa6, 0x2f, 0x2b, 0xc4, 0xe8, 0xac, 0x25, + 0x96, 0xbd, 0x42, 0xc4, 0x06, 0x17, 0x01, 0xd6, + 0x7a, 0xea, 0x5d, 0x56, 0x3d, 0x31, 0x44, 0x3c, + 0x10, 0x64, 0x4e, 0xb9, 0x62, 0x5f, 0xe3, 0x90, + 0xca, 0x6b, 0xd7, 0x51, 0x3d, 0xa5, 0xe2, 0xf2, + 0x96, 0x1a, 0xbd, 0xac, 0xb1, 0xcd, 0xce, 0x21, + 0x7d, 0xa4, 0xd4, 0x6a, 0xf1, 0x9c, 0x38, 0xb4, + 0x51, 0x80, 0x6c, 0xd3, 0xa8, 0xc6, 0xaa, 0x70, + 0x6c, 0x2b, 0x3d, 0x6b, 0x90, 0x5d, 0x51, 0xea, + 0x23, 0x91, 0x23, 0x1c, 0x93, 0x26, 0x5b, 0x8d, + 0xdc, 0x7c, 0x65, 0x59, 0x19, 0x7c, 0x7e, 0x16, + 0xa6, 0x61, 0xcf, 0x2c, 0x67, 0x0e, 0x4d, 0x66, + 0x1b, 0x15, 0x5a, 0xcd, 0xaa, 0x31, 0x56, 0x30, + 0x70, 0x63, 0xd1, 0xaf, 0x6c, 0x79, 0x2c, 0x76, + 0x89, 0xdd, 0x95, 0xd9, 0xba, 0xf9, 0x58, 0x3c, + 0x94, 0xb1, 0xa3, 0x96, 0xb8, 0xfc, 0x85, 0xea, + 0x58, 0xb7, 0x2e, 0x63, 0x19, 0xc2, 0xab, 0x47, + 0x68, 0xca, 0x53, 0x45, 0x85, 0x87, 0x4f, 0xc0, + 0x2c, 0x6f, 0x49, 0x66, 0xf8, 0x12, 0x98, 0x29, + 0x32, 0x01, 0x99, 0x8d, 0xa7, 0xbb, 0x43, 0xcb, + 0x90, 0x6d, 0xb4, 0x82, 0x1c, 0xcb, 0x56, 0x87, + 0x87, 0x70, 0x50, 0x80, 0x34, 0x5c, 0xb1, 0x59, + 0x92, 0x13, 0x18, 0xa2, 0xf6, 0xae, 0x9a, 0x92, + 0xfd, 0xca, 0x77, 0x01, 0x78, 0xf3, 0xfd, 0xcd, + 0x23, 0xbe, 0xd4, 0xf6, 0x9e, 0xe4, 0x6d, 0xc3, + 0x78, 0x69, 0x96, 0xcf, 0x4a, 0x5f, 0x10, 0x31, + 0x18, 0x8d, 0xf7, 0x94, 0xc4, 0xb4, 0x63, 0xca, + 0x4b, 0x89, 0x28, 0xde, 0x23, 0x4c, 0x6d, 0xb8, + 0xb9, 0x5d, 0x6a, 0x0e, 0xa3, 0x0d, 0xdc, 0x35, + 0x86, 0x58, 0x82, 0xe3, 0x97, 0x73, 0x99, 0x2c, + 0x44, 0x78, 0x83, 0xce, 0x1c, 0xc7, 0xee, 0x47, + 0x9a, 0x37, 0x98, 0xdf, 0x50, 0x3d, 0xa1, 0x88, + 0x02, 0xab, 0x6a, 0xd0, 0x35, 0xdc, 0x3b, 0x85, + 0x80, 0x38, 0xad, 0x4d, 0x97, 0x05, 0x71, 0xfd, + 0x88, 0xfb, 0x25, 0x81, 0x01, 0x14, 0xc1, 0x72, + 0xef, 0xd4, 0x82, 0xef, 0x18, 0xd5, 0x3c, 0xf8, + 0xe7, 0xa0, 0xac, 0x32, 0xfb, 0x6a, 0xdc, 0xa8, + 0x58, 0x2e, 0x1d, 0x81, 0xae, 0xae, 0xa5, 0xb4, + 0xa5, 0xc2, 0x7e, 0x0b, 0xe6, 0x2e, 0x66, 0xd3, + 0x35, 0xb2, 0x26, 0x3c, 0x52, 0x20, 0xf2, 0x6f, + 0xdf, 0x8a, 0xa1, 0x6f, 0x8a, 0x61, 0x35, 0xac, + 0x61, 0x15, 0x95, 0xca, 0xda, 0x8c, 0x07, 0x0e, + 0x4f, 0x61, 0x69, 0xb9, 0xb5, 0x8a, 0xb8, 0x47, + 0x83, 0x39, 0x4a, 0x17, 0x66, 0x12, 0x99, 0x23, + 0x9d, 0xf9, 0x88, 0xfe, 0xec, 0x0c, 0x6a, 0xe5, + 0x9c, 0xd6, 0x60, 0x97, 0x15, 0xf2, 0x8f, 0xc3, + 0x26, 0xb5, 0x5c, 0x2f, 0x0e, 0x43, 0xec, 0xdd, + 0xa9, 0x10, 0x77, 0x4f, 0xa8, 0xec, 0x49, 0x02, + 0xab, 0x55, 0x03, 0x46, 0xe7, 0xd2, 0x64, 0xb5, + 0x96, 0x54, 0x01, 0x03, 0x10, 0xc3, 0x10, 0xa4, + 0x8e, 0x26, 0x43, 0xf1, 0xe4, 0x13, 0x6e, 0x6e, + 0x86, 0x0f, 0x87, 0xa0, 0xd7, 0x44, 0x2a, 0x15, + 0xf7, 0xf5, 0x97, 0x18, 0xc3, 0x05, 0xdb, 0xac, + 0x80, 0x62, 0x9c, 0xae, 0x72, 0x01, 0xb2, 0x12, + 0x30, 0x52, 0x3b, 0x4e, 0xb0, 0x56, 0x6f, 0xe6, + 0xae, 0x73, 0xe6, 0x66, 0xcf, 0x37, 0x64, 0xc3, + 0x70, 0xbf, 0x2d, 0x50, 0xaf, 0x7e, 0x69, 0x6f, + 0x0a, 0x6e, 0x1a, 0x4e, 0xc1, 0x6d, 0x1d, 0x4e, + 0x4e, 0xaa, 0xb9, 0xa7, 0xda, 0xe0, 0xa3, 0x7e, + 0x6d, 0x62, 0x38, 0x79, 0xbc, 0x44, 0xb3, 0x9b, + 0xee, 0xa0, 0x87, 0xbc, 0x70, 0x7c, 0x3b, 0x1c, + 0x85, 0x6a, 0xf9, 0xd3, 0x64, 0xa4, 0x27, 0x19, + 0xde, 0x23, 0xc9, 0xce, 0x10, 0x73, 0xbf, 0x7f, + 0x29, 0x69, 0xb6, 0xa7, 0x88, 0xe4, 0xb0, 0x6b, + 0xc4, 0xdb, 0xbd, 0x16, 0xe3, 0x03, 0xc3, 0x9d, + 0x72, 0xb9, 0x56, 0xc1, 0x63, 0x67, 0x19, 0xb7, + 0x82, 0xe5, 0x51, 0x62, 0x72, 0x9d, 0x35, 0xcf, + 0xf8, 0x15, 0x5a, 0x0e, 0x28, 0xf2, 0xc6, 0xbc, + 0xec, 0xaf, 0x52, 0xe0, 0x3e, 0x8a, 0xd7, 0x9d, + 0x95, 0xea, 0x5c, 0x07, 0xd1, 0x5a, 0xe1, 0x9c, + 0x86, 0x45, 0xd0, 0xfb, 0x6f, 0x9c, 0xe4, 0x35, + 0xa2, 0x8a, 0xf5, 0xe0, 0xa1, 0x39, 0x56, 0x21, + 0x7e, 0xd3, 0x55, 0x48, 0x40, 0xf2, 0xa9, 0x60, + 0x3e, 0x22, 0x87, 0x9b, 0x6e, 0x62, 0xdc, 0xe4, + 0x8a, 0x74, 0xe5, 0x35, 0x29, 0xb7, 0x52, 0xd0, + 0x74, 0xad, 0xd2, 0xb4, 0x10, 0xda, 0xd6, 0x55, + 0xbe, 0xfc, 0xac, 0x09, 0xfe, 0x10, 0x17, 0x8c, + 0xa6, 0x0e, 0xc6, 0xb3, 0xef, 0x19, 0xf2, 0xc4, + 0x91, 0x85, 0x0c, 0xb5, 0x78, 0x29, 0xdf, 0xa4, + 0xac, 0xc2, 0x89, 0x61, 0xfe, 0x28, 0x75, 0xf1, + 0x6e, 0x6f, 0x2c, 0x7d, 0xce, 0xa3, 0x58, 0x5f, + 0x7c, 0xa7, 0x5f, 0x6b, 0xe6, 0xbd, 0x6d, 0x53, + 0xe8, 0x6d, 0x7d, 0xaf, 0x9a, 0xf5, 0xb5, 0x4f, + 0xa1, 0xb5, 0xf6, 0xbe, 0x6b, 0xd6, 0xd5, 0x3e, + 0x86, 0xd7, 0xda, 0xf9, 0xaf, 0x5b, 0x54, 0xfa, + 0x1b, 0x5f, 0x6b, 0xe6, 0xbd, 0x6d, 0x53, 0xe8, + 0x6d, 0x7d, 0xaf, 0x9a, 0xf5, 0xb5, 0x4f, 0xa1, + 0xb5, 0xf6, 0xbe, 0x6b, 0xd6, 0xd5, 0x3e, 0x86, + 0xd1, 0x72, 0x2b, 0x3a, 0x1c, 0xd1, 0xb1, 0x72, + 0xe6, 0x6b, 0x0f, 0x34, 0x7d, 0xe2, 0xdb, 0x0f, + 0xdf, 0xff, 0x00, 0x3e, 0xbe, 0xd7, 0xcd, 0x7a, + 0xda, 0xa7, 0xd0, 0xda, 0xfb, 0x5f, 0x35, 0xeb, + 0x6a, 0x9f, 0x43, 0x6b, 0xed, 0x7c, 0xd7, 0xad, + 0xaa, 0x7d, 0x0d, 0xad, 0xe2, 0xbe, 0x6e, 0x26, + 0x3b, 0xe2, 0x63, 0x2f, 0x57, 0xbb, 0xfe, 0xc6, + 0xd6, 0xf3, 0x5f, 0x35, 0x33, 0x3f, 0xfd, 0xaf, + 0x57, 0xe8, 0x6d, 0x7d, 0xaf, 0x9a, 0xf5, 0xb5, + 0x4f, 0xa1, 0xb5, 0xf6, 0xbe, 0x6b, 0xd6, 0xd5, + 0x3e, 0x86, 0xd7, 0xda, 0xf9, 0xaf, 0x5b, 0x54, + 0xfa, 0x1b, 0x5f, 0x6b, 0xe6, 0xbd, 0x6d, 0x53, + 0xe8, 0x6d, 0x7d, 0xaf, 0x9a, 0xf5, 0xb5, 0x4f, + 0xa1, 0xb5, 0xf6, 0xbe, 0x6b, 0xd6, 0xd5, 0x3e, + 0x86, 0xd7, 0x6a, 0xc6, 0x63, 0x0e, 0x72, 0x23, + 0xf6, 0x1b, 0xd9, 0x3b, 0x63, 0x7c, 0xea, 0x7f, + 0x8f, 0x55, 0x03, 0x56, 0xad, 0x65, 0xbb, 0xfc, + 0x17, 0x31, 0x4d, 0x60, 0x7f, 0x02, 0x47, 0x72, + 0xde, 0x48, 0xa6, 0x48, 0x8a, 0x66, 0x48, 0xa6, + 0x77, 0x99, 0x99, 0xef, 0x99, 0x99, 0x9e, 0xf9, + 0x99, 0x9f, 0x2c, 0xe9, 0x9f, 0x83, 0x97, 0xeb, + 0x55, 0xac, 0x3f, 0xe3, 0x55, 0xfe, 0xcb, 0x6f, + 0x41, 0xef, 0x46, 0x8f, 0xde, 0x9d, 0x5a, 0xfc, + 0x67, 0x90, 0xfd, 0xa0, 0xb4, 0x3f, 0xe7, 0x87, + 0xff, 0x00, 0x0b, 0x35, 0xc2, 0x7f, 0xe3, 0x1f, + 0x11, 0xff, 0x00, 0xd4, 0xdc, 0x4f, 0xfb, 0x75, + 0xe5, 0xd7, 0x97, 0x5e, 0x5f, 0xfa, 0xf5, 0x50, + 0x23, 0xbf, 0x7a, 0x97, 0xff, 0x00, 0x67, 0x2d, + 0x71, 0x96, 0x43, 0x35, 0x4e, 0xc6, 0x32, 0xab, + 0x30, 0x36, 0xb1, 0xe8, 0xed, 0xab, 0x94, 0x4d, + 0x9b, 0x97, 0x8b, 0xa7, 0x54, 0x12, 0x0c, 0xd8, + 0x99, 0xb1, 0x77, 0xcc, 0x8c, 0x4f, 0x2e, 0xf1, + 0xbc, 0xc7, 0x97, 0x59, 0xaa, 0x76, 0x9f, 0x91, + 0xb9, 0xd9, 0x38, 0x0b, 0xb5, 0x75, 0x7a, 0x0a, + 0xaf, 0x81, 0x49, 0x05, 0x52, 0x7d, 0x5e, 0xc6, + 0xa1, 0xe7, 0x0b, 0x37, 0x79, 0xa0, 0x89, 0xd6, + 0xb6, 0x54, 0xc0, 0xa0, 0x63, 0x95, 0x9c, 0xde, + 0xd3, 0x84, 0xb1, 0xda, 0x9c, 0x9c, 0x72, 0x78, + 0x4a, 0x72, 0x9d, 0x75, 0xe3, 0xeb, 0xd8, 0x27, + 0xde, 0x6d, 0x46, 0x45, 0xd0, 0xa3, 0xe2, 0x2f, + 0x7b, 0xa4, 0x25, 0x5d, 0x82, 0x00, 0xd8, 0x15, + 0x72, 0x8f, 0x22, 0xc4, 0x58, 0x50, 0x5c, 0x19, + 0x60, 0xc6, 0xf0, 0xb6, 0xc6, 0x2e, 0xde, 0xf3, + 0x94, 0x28, 0x3c, 0x91, 0x2d, 0x67, 0x52, 0x53, + 0x37, 0x59, 0xca, 0x32, 0x4f, 0x91, 0x6c, 0x99, + 0x6f, 0xbf, 0x2c, 0x9c, 0xc6, 0xe5, 0x3b, 0x91, + 0x61, 0x9f, 0x99, 0xc4, 0x16, 0x61, 0x2c, 0xcd, + 0x64, 0x96, 0xa5, 0x0d, 0xf7, 0xd1, 0xe9, 0x32, + 0x25, 0x93, 0x2c, 0xe7, 0x47, 0x79, 0xf8, 0xbe, + 0x2f, 0x24, 0xf7, 0x77, 0xef, 0xae, 0x2d, 0xcb, + 0x53, 0xae, 0xac, 0x70, 0x61, 0xf8, 0x48, 0x97, + 0x8a, 0xaa, 0x1b, 0x38, 0x2a, 0x2e, 0xa9, 0xb0, + 0xd3, 0x25, 0xce, 0x3c, 0x8d, 0x31, 0x32, 0xe6, + 0x9e, 0x65, 0xc0, 0x4f, 0x28, 0x8c, 0x86, 0xd1, + 0x3b, 0xe1, 0xb2, 0x5c, 0x2c, 0x1d, 0xaf, 0x23, + 0x92, 0xcb, 0xdf, 0x3e, 0x24, 0x7a, 0x6b, 0x55, + 0x7b, 0xce, 0xdc, 0xd9, 0x2e, 0x98, 0xdb, 0x13, + 0x02, 0x84, 0x20, 0x91, 0xc9, 0xe3, 0x80, 0xab, + 0xa4, 0xae, 0x94, 0x89, 0xa6, 0x0f, 0xbf, 0xd9, + 0x0a, 0xaf, 0x0f, 0x4c, 0xcb, 0x2a, 0xdb, 0xc4, + 0x30, 0xab, 0xd2, 0x42, 0xac, 0x74, 0x6c, 0xde, + 0x52, 0x83, 0x3d, 0xd3, 0x12, 0x4b, 0x24, 0x87, + 0x91, 0x4c, 0xea, 0xf3, 0x44, 0xf4, 0x08, 0x19, + 0x2a, 0xe9, 0x14, 0x4c, 0xea, 0xfd, 0x5e, 0xc5, + 0x94, 0xb5, 0xc3, 0xb1, 0xc2, 0xa9, 0x65, 0x79, + 0x4d, 0x4c, 0x1a, 0xb0, 0x95, 0xe3, 0xb3, 0x73, + 0x26, 0xf2, 0x32, 0x16, 0x6f, 0xd5, 0xb6, 0xcb, + 0x40, 0xce, 0x59, 0x9a, 0xe2, 0x26, 0xc8, 0x98, + 0x59, 0xd7, 0xae, 0x45, 0x22, 0x6d, 0x1a, 0x98, + 0x2a, 0x14, 0x2c, 0xf0, 0xa1, 0x70, 0x74, 0x39, + 0x7d, 0xa8, 0x52, 0xac, 0x69, 0xcf, 0x65, 0xe6, + 0x61, 0xcd, 0xa8, 0x88, 0x2e, 0xd9, 0xe4, 0x85, + 0x57, 0x37, 0xa6, 0xb9, 0x81, 0x75, 0x5a, 0x4b, + 0x1e, 0x6b, 0x01, 0xec, 0x68, 0xd6, 0x13, 0x5b, + 0x8f, 0xb5, 0x8d, 0x6b, 0xec, 0xba, 0x10, 0xa8, + 0x4c, 0xe4, 0xa7, 0x0d, 0x73, 0xa7, 0xbb, 0x81, + 0x71, 0xc8, 0xc9, 0x47, 0x5b, 0x64, 0x89, 0x88, + 0x4c, 0x41, 0x17, 0x24, 0xc8, 0xef, 0x18, 0x36, + 0x70, 0x6a, 0x21, 0xcc, 0xb3, 0x98, 0xc9, 0x8e, + 0x78, 0xd3, 0x5e, 0xbd, 0x96, 0xf5, 0xc2, 0xf1, + 0x8a, 0x95, 0x73, 0xaa, 0x2c, 0x94, 0x23, 0xb3, + 0x72, 0xfb, 0x6c, 0x42, 0xe4, 0x15, 0xd2, 0x2e, + 0xa2, 0xf9, 0xfc, 0x6f, 0x64, 0xab, 0xb8, 0x69, + 0x40, 0x36, 0x95, 0x9c, 0x0c, 0x89, 0x0a, 0xd4, + 0xe4, 0xd6, 0xc9, 0x58, 0x62, 0x95, 0x6c, 0xd4, + 0xb7, 0x01, 0xaa, 0x4d, 0x16, 0x5c, 0xd2, 0x88, + 0x20, 0x21, 0x07, 0xc1, 0x47, 0x2e, 0xc3, 0xcb, + 0xae, 0x1b, 0xba, 0xde, 0x5e, 0xd3, 0x7f, 0x86, + 0xa8, 0x5a, 0xb0, 0x62, 0x30, 0x1d, 0x46, 0x33, + 0x9c, 0xa6, 0x76, 0x8e, 0xef, 0x29, 0x4e, 0xd1, + 0xf7, 0x23, 0xba, 0x3b, 0xa2, 0x35, 0xe5, 0xff, + 0x00, 0xaf, 0x5e, 0x5f, 0xfa, 0xf5, 0xe5, 0xd5, + 0x00, 0xdf, 0xcb, 0x5b, 0x2f, 0xff, 0x00, 0x56, + 0x1b, 0x21, 0x3f, 0x52, 0xa7, 0xe1, 0x28, 0xfd, + 0x68, 0xeb, 0x89, 0xbf, 0xd2, 0x1c, 0xdf, 0xf2, + 0x9d, 0xaf, 0xa9, 0x58, 0x8a, 0x76, 0x11, 0xb0, + 0x92, 0x29, 0x9f, 0x24, 0x0c, 0x34, 0x66, 0x66, + 0x7f, 0x8a, 0x23, 0xbe, 0x75, 0x79, 0x1e, 0x12, + 0xa3, 0x5c, 0x69, 0xf1, 0xae, 0x63, 0x29, 0xd7, + 0x7d, 0x80, 0x52, 0xac, 0xe1, 0xb2, 0x76, 0x13, + 0x2d, 0xb5, 0x4d, 0x85, 0x3d, 0x3b, 0x4d, 0x47, + 0x63, 0x02, 0x8a, 0x89, 0xe7, 0xb5, 0x60, 0x1e, + 0xb2, 0xaa, 0xb6, 0xf2, 0xb6, 0x07, 0x0d, 0x92, + 0xeb, 0xad, 0x54, 0x47, 0x21, 0x5a, 0xf3, 0x5a, + 0x6d, 0x1e, 0x9d, 0x7e, 0xdb, 0x7d, 0xb9, 0x37, + 0x0b, 0x4f, 0x7e, 0x40, 0x2a, 0xdd, 0xae, 0x11, + 0x63, 0xbf, 0x61, 0x6a, 0x59, 0x1b, 0xce, 0xda, + 0xe1, 0xbb, 0xed, 0xb7, 0x55, 0x3f, 0x5b, 0x76, + 0x2d, 0x15, 0xda, 0xed, 0x78, 0x2a, 0xd3, 0x92, + 0xbb, 0x67, 0x92, 0xa7, 0x34, 0xd2, 0xc2, 0x19, + 0xb9, 0x36, 0x58, 0xc6, 0x55, 0xe4, 0xad, 0x0c, + 0x34, 0x1c, 0x09, 0xd8, 0x85, 0xa4, 0xc5, 0x9a, + 0xca, 0xe7, 0xfb, 0x55, 0x49, 0x2c, 0xa7, 0x0f, + 0xd5, 0xc7, 0x85, 0x10, 0x78, 0x4d, 0xd1, 0xca, + 0x32, 0xbd, 0x3a, 0x57, 0x01, 0x95, 0x39, 0xbb, + 0x42, 0xab, 0x20, 0x2a, 0xd8, 0xb0, 0x36, 0x8c, + 0x46, 0xbb, 0x00, 0xab, 0xad, 0x6c, 0x37, 0x1c, + 0xae, 0x31, 0x85, 0x4b, 0x88, 0x52, 0x38, 0x95, + 0x62, 0xb0, 0x4b, 0x75, 0x41, 0xe2, 0xac, 0x7d, + 0x51, 0x8e, 0xcd, 0x42, 0xa0, 0x5e, 0x41, 0x63, + 0x59, 0x94, 0x4b, 0x39, 0xb9, 0xc1, 0xa0, 0x69, + 0x9a, 0xfb, 0xb4, 0xb7, 0x8e, 0x52, 0xe6, 0xef, + 0x0b, 0x51, 0x7a, 0x95, 0xca, 0x6b, 0xc3, 0xf1, + 0x04, 0x73, 0x2a, 0xd2, 0x9d, 0x5c, 0xca, 0xe3, + 0xf3, 0x76, 0x53, 0x57, 0x9e, 0x08, 0x97, 0x0d, + 0xb2, 0x16, 0x50, 0x3d, 0x29, 0xf1, 0xb9, 0xdb, + 0x00, 0x63, 0xcd, 0xb8, 0xeb, 0x31, 0x92, 0x55, + 0xde, 0x1e, 0xad, 0x57, 0x31, 0x62, 0xcb, 0xab, + 0x36, 0xb5, 0x8b, 0xed, 0xca, 0x5b, 0x16, 0x56, + 0xb9, 0x69, 0x0d, 0xb6, 0xb7, 0x66, 0x1c, 0x9c, + 0x2b, 0xe9, 0xb6, 0x52, 0x82, 0xea, 0xd1, 0xae, + 0xc6, 0xd9, 0x3e, 0x85, 0x25, 0xc2, 0x77, 0x31, + 0xc2, 0x35, 0xb6, 0x94, 0xd5, 0x55, 0xe0, 0xdb, + 0xb5, 0x1e, 0xb2, 0x70, 0xc8, 0xf6, 0x83, 0x56, + 0x52, 0x7b, 0x09, 0xf3, 0x4c, 0x8c, 0x35, 0xe4, + 0x6b, 0x0e, 0x91, 0x47, 0x8d, 0x2c, 0x0d, 0xc6, + 0x77, 0xd7, 0x12, 0x3d, 0x77, 0x38, 0x6d, 0x15, + 0xb8, 0x8c, 0x32, 0x4a, 0xa8, 0xc5, 0xd9, 0xb8, + 0xcb, 0xb7, 0x7b, 0x6d, 0x1b, 0xcc, 0xac, 0xcc, + 0x8f, 0x6a, 0xcc, 0xba, 0xae, 0x0a, 0x6b, 0x35, + 0xaa, 0xae, 0xe2, 0xb5, 0x4e, 0xaf, 0x3b, 0x98, + 0x4a, 0xae, 0x01, 0x5a, 0x08, 0xc7, 0x11, 0x8c, + 0xc9, 0xda, 0x44, 0x55, 0xec, 0x59, 0x6e, 0xde, + 0xb8, 0x70, 0x4f, 0x2b, 0x29, 0xe6, 0xd3, 0x95, + 0xae, 0x9d, 0xc6, 0x64, 0x7a, 0x97, 0x95, 0x59, + 0xb5, 0xaa, 0xcf, 0x37, 0x2b, 0x3b, 0x4c, 0x48, + 0xcc, 0x89, 0x69, 0x77, 0x9a, 0x58, 0xec, 0xa6, + 0x5b, 0x2b, 0x5e, 0xbd, 0x0b, 0x94, 0x1c, 0xeb, + 0x1c, 0xd5, 0xd6, 0x39, 0x4c, 0xbe, 0x62, 0xeb, + 0x1e, 0x14, 0x6e, 0x53, 0xb4, 0xa1, 0x6b, 0xdd, + 0x8f, 0x14, 0xc7, 0x54, 0x46, 0x7a, 0x73, 0xbc, + 0x14, 0x77, 0x6a, 0xac, 0x56, 0xbd, 0x8e, 0x4d, + 0xf9, 0x60, 0xe6, 0x4e, 0xbd, 0x8b, 0xaa, 0xaa, + 0xa2, 0x66, 0x46, 0x95, 0x4a, 0x59, 0x4a, 0xd3, + 0x66, 0xeb, 0xa1, 0x29, 0xb5, 0x52, 0xe6, 0x28, + 0x6c, 0x82, 0x6d, 0xda, 0x16, 0xd8, 0xa7, 0x78, + 0x0c, 0x09, 0xac, 0x59, 0x73, 0x65, 0xa2, 0x8d, + 0xae, 0xac, 0x2f, 0x12, 0x34, 0x96, 0xe9, 0x66, + 0xdd, 0xae, 0xe5, 0x89, 0xad, 0x5f, 0x20, 0x75, + 0x20, 0x96, 0xb6, 0x15, 0x59, 0x12, 0xb7, 0xd2, + 0x82, 0x18, 0x29, 0xad, 0xb1, 0x9f, 0xba, 0xdb, + 0x5c, 0x32, 0xbc, 0x73, 0xb1, 0xfd, 0xaa, 0xa0, + 0x64, 0xd8, 0xd2, 0x66, 0x33, 0x11, 0x7a, 0xed, + 0x27, 0xce, 0x51, 0x8d, 0xae, 0x4a, 0xb1, 0x76, + 0x95, 0x9b, 0x54, 0x4f, 0x93, 0x95, 0xca, 0x9a, + 0xed, 0x4c, 0xef, 0xca, 0xe1, 0xf1, 0xe2, 0x0b, + 0x5c, 0x1f, 0x01, 0x9e, 0xb6, 0xba, 0x09, 0x4e, + 0x0f, 0xc2, 0x82, 0x39, 0x2b, 0x03, 0x54, 0x4f, + 0xb7, 0x11, 0xdf, 0xed, 0xa3, 0x0e, 0xe9, 0xc9, + 0x48, 0x4f, 0x35, 0xa9, 0x74, 0x4c, 0x94, 0x4e, + 0xed, 0xdf, 0x59, 0x3a, 0x0b, 0xbb, 0x04, 0x2e, + 0xe2, 0xf6, 0xdd, 0x0a, 0xa2, 0xc8, 0x9e, 0x7a, + 0xc7, 0x5a, 0xc4, 0x76, 0x81, 0x0f, 0x2c, 0xa4, + 0x99, 0x09, 0xdc, 0xa3, 0xc5, 0x93, 0x80, 0xfb, + 0xbb, 0x7d, 0x5e, 0x14, 0xff, 0x00, 0x2b, 0x88, + 0x7f, 0x96, 0x9f, 0xfd, 0xd2, 0xcf, 0xc1, 0xcb, + 0xf5, 0xaa, 0xd6, 0x1f, 0xf1, 0xaa, 0xff, 0x00, + 0x65, 0xb7, 0xa0, 0xf7, 0xa3, 0x47, 0xef, 0x4e, + 0xad, 0x7e, 0x33, 0xc8, 0x7e, 0xd0, 0x5a, 0x1f, + 0xf3, 0xc3, 0xff, 0x00, 0x84, 0xf5, 0x48, 0xe8, + 0xac, 0xec, 0x59, 0xc0, 0x59, 0xbc, 0xd3, 0xaa, + 0xa1, 0x93, 0x6b, 0x71, 0xf9, 0x10, 0xab, 0xd6, + 0x72, 0x80, 0x77, 0x26, 0x15, 0x47, 0xd3, 0x09, + 0x68, 0xc0, 0xef, 0xd1, 0x7f, 0x3c, 0x6f, 0x0b, + 0x66, 0xa6, 0x24, 0xf6, 0x98, 0xee, 0x98, 0x99, + 0xef, 0x89, 0xfb, 0xd3, 0xfc, 0x7a, 0xf7, 0x71, + 0xf0, 0xbf, 0xa7, 0x5f, 0x64, 0x8f, 0x85, 0x1a, + 0x8b, 0x34, 0x2f, 0xd8, 0xa5, 0x64, 0x60, 0x84, + 0x6c, 0x54, 0xb4, 0xca, 0xcf, 0x11, 0x38, 0xd8, + 0xa2, 0x1a, 0x93, 0x06, 0x44, 0x14, 0x77, 0x14, + 0x41, 0x6d, 0x31, 0xdd, 0x3a, 0x05, 0xe4, 0xb3, + 0x59, 0x2c, 0x82, 0xd6, 0x5c, 0xeb, 0x0b, 0xd9, + 0x1b, 0x36, 0xc1, 0x65, 0x31, 0xb4, 0x90, 0x0d, + 0x86, 0xb2, 0x04, 0xa6, 0x3b, 0xa6, 0x47, 0x69, + 0xdb, 0xbb, 0x43, 0x56, 0x33, 0xd9, 0x58, 0xac, + 0xb4, 0x1d, 0x60, 0xaf, 0x19, 0x4b, 0x70, 0x80, + 0xac, 0xc1, 0xe4, 0x65, 0x71, 0x57, 0x5f, 0xa6, + 0x28, 0x30, 0x88, 0x03, 0x54, 0x0f, 0x4c, 0x86, + 0x20, 0x64, 0x76, 0xd5, 0x51, 0x5e, 0x77, 0x2a, + 0xb1, 0xa1, 0xbc, 0x51, 0x10, 0xca, 0x5b, 0x01, + 0xa5, 0xcc, 0xb2, 0x49, 0x76, 0x48, 0x17, 0xc4, + 0x57, 0xdd, 0x44, 0x4a, 0x9e, 0x8f, 0x26, 0xeb, + 0x22, 0x0f, 0x73, 0x33, 0x1a, 0x58, 0xdf, 0xca, + 0x5c, 0xbc, 0x29, 0x26, 0x9a, 0x86, 0xe5, 0xe7, + 0xd9, 0x85, 0x1b, 0xcb, 0x9d, 0xe6, 0xb8, 0x73, + 0x4e, 0x00, 0x9c, 0x7e, 0x3b, 0x48, 0x76, 0x96, + 0x17, 0x8c, 0x7b, 0xce, 0x97, 0x44, 0xaf, 0x3c, + 0xa9, 0x25, 0x84, 0xe5, 0x53, 0x2b, 0x4c, 0x9a, + 0xaa, 0x69, 0xef, 0xce, 0xd5, 0xd7, 0x96, 0x74, + 0x41, 0x87, 0xbc, 0xf3, 0x18, 0x84, 0x11, 0x6f, + 0x3b, 0xcf, 0x7e, 0xac, 0x2e, 0xad, 0xe7, 0xd6, + 0x5d, 0xb5, 0x4d, 0x7b, 0x60, 0x8b, 0x4c, 0x48, + 0x5a, 0x41, 0x7b, 0xa4, 0x58, 0x15, 0xb0, 0x61, + 0xc9, 0x9d, 0xfb, 0xd6, 0xc8, 0x20, 0x9f, 0xbb, + 0x1a, 0x67, 0x83, 0x72, 0xb7, 0xb1, 0xfd, 0x6d, + 0xba, 0xbd, 0x86, 0xfd, 0x8a, 0x9d, 0x5e, 0x5f, + 0x73, 0xd4, 0xe8, 0x39, 0x7c, 0xfb, 0x6f, 0x3b, + 0x73, 0x6f, 0xb6, 0xfa, 0x71, 0x50, 0xca, 0x5d, + 0xa4, 0x56, 0x23, 0x96, 0xc1, 0x54, 0xbc, 0xfa, + 0xc4, 0xf1, 0xef, 0x9e, 0x57, 0x4a, 0x5a, 0x12, + 0xd1, 0xde, 0x66, 0x76, 0x3d, 0xe3, 0xbe, 0x7e, + 0xfe, 0x83, 0x18, 0x59, 0x4b, 0xa5, 0x8e, 0x5c, + 0xf3, 0x2f, 0x1f, 0x37, 0x9f, 0x34, 0x96, 0x5c, + 0xc4, 0x7b, 0x85, 0x49, 0x6f, 0x40, 0x67, 0x98, + 0x88, 0xb7, 0x85, 0xc7, 0x8c, 0x45, 0x3e, 0x59, + 0x9d, 0x4e, 0x30, 0x72, 0xd7, 0xa3, 0x1a, 0x5e, + 0x5c, 0x7c, 0x5f, 0xb3, 0x14, 0x67, 0xc7, 0x86, + 0xf7, 0xd4, 0xeb, 0x74, 0x27, 0xdb, 0x22, 0x19, + 0xde, 0xbf, 0x77, 0x10, 0x7e, 0xeb, 0xbf, 0x55, + 0xd1, 0x5b, 0x39, 0x93, 0xae, 0x8a, 0x66, 0x4c, + 0xa8, 0x94, 0x64, 0xed, 0xa5, 0x55, 0x58, 0x62, + 0xd1, 0x33, 0xae, 0xb5, 0xbc, 0x41, 0x06, 0x63, + 0x61, 0xe2, 0x44, 0xb8, 0x19, 0x21, 0x73, 0x62, + 0x67, 0x66, 0x1e, 0xee, 0xec, 0x19, 0x7b, 0xf4, + 0x7b, 0x44, 0xef, 0x63, 0xb1, 0xe4, 0x2c, 0xd6, + 0xeb, 0xcf, 0x7f, 0x7b, 0xba, 0x2e, 0x0e, 0xac, + 0xf8, 0xc5, 0xee, 0xf7, 0xf2, 0xcf, 0xdf, 0xd5, + 0x9a, 0xa1, 0x7a, 0xc0, 0x55, 0xb9, 0x2b, 0x2b, + 0x95, 0x86, 0xd3, 0x05, 0x16, 0xc9, 0x47, 0xd4, + 0x51, 0x59, 0x4c, 0x33, 0xa6, 0xf9, 0x53, 0x3c, + 0x75, 0xcb, 0x44, 0xa4, 0x0f, 0xc6, 0x1d, 0xa7, + 0xbf, 0x48, 0xed, 0x97, 0xec, 0x5b, 0xec, 0xc9, + 0x1a, 0xd5, 0xbb, 0x4d, 0xa6, 0xbf, 0xb3, 0xd7, + 0x0f, 0x70, 0x84, 0x75, 0x58, 0x5d, 0x24, 0x87, + 0xf0, 0x54, 0xbe, 0x50, 0x1f, 0xb9, 0x1a, 0xf7, + 0x71, 0xf0, 0xbf, 0xa7, 0x5e, 0xee, 0x3e, 0x17, + 0xf4, 0xeb, 0xec, 0x91, 0xf0, 0xa3, 0xfd, 0xba, + 0x3e, 0x27, 0x78, 0x1a, 0x31, 0x58, 0xea, 0x97, + 0x55, 0x5d, 0xcd, 0x12, 0x11, 0xc8, 0xdf, 0xbd, + 0x4e, 0xc5, 0x24, 0xd5, 0xa9, 0x33, 0x1e, 0xdb, + 0xc8, 0x2e, 0x65, 0x87, 0xb0, 0x39, 0x85, 0x42, + 0xa1, 0x82, 0xf7, 0x7e, 0x2e, 0xaa, 0x7e, 0x12, + 0x8f, 0xd6, 0x8e, 0xb8, 0x9b, 0xfd, 0x21, 0xcd, + 0xff, 0x00, 0x29, 0xda, 0xfd, 0xd7, 0x46, 0xb8, + 0x73, 0x9f, 0x4d, 0xad, 0x9d, 0xc8, 0x00, 0x45, + 0x68, 0x51, 0x39, 0xa6, 0x46, 0xc2, 0x10, 0x11, + 0x05, 0x81, 0x14, 0xc9, 0x14, 0x79, 0x36, 0x8e, + 0xf9, 0x88, 0xd0, 0xd8, 0x70, 0x52, 0xac, 0x93, + 0xe8, 0x40, 0x32, 0xe6, 0x5f, 0x13, 0x4e, 0x0e, + 0x6c, 0xd3, 0x4e, 0x41, 0x30, 0x1d, 0xa6, 0xea, + 0xb9, 0xa4, 0xaa, 0x58, 0x4b, 0x66, 0x07, 0x79, + 0x0e, 0x6e, 0x46, 0x72, 0xb0, 0x48, 0x60, 0xec, + 0x41, 0xe3, 0x06, 0xb8, 0x5a, 0x9a, 0x7d, 0xa1, + 0x99, 0xbc, 0x2a, 0x90, 0x76, 0x45, 0x2b, 0xb0, + 0x4b, 0x4b, 0x99, 0x7c, 0x57, 0x63, 0x95, 0x4d, + 0x02, 0x22, 0x41, 0x30, 0x23, 0x7e, 0x59, 0x2e, + 0x61, 0x28, 0x83, 0xb3, 0x07, 0x8c, 0x1a, 0xc1, + 0x6a, 0x69, 0x76, 0x86, 0x66, 0xf0, 0xaa, 0x41, + 0xd9, 0x14, 0xae, 0xc1, 0x2d, 0x2e, 0x65, 0xf1, + 0x5d, 0x8e, 0x55, 0x34, 0x08, 0x89, 0x04, 0xc0, + 0x8d, 0xf9, 0x64, 0xb9, 0x84, 0xa2, 0x0d, 0x26, + 0x49, 0x32, 0x0e, 0xe9, 0x2a, 0xf6, 0x11, 0x69, + 0x33, 0xdd, 0xbf, 0x88, 0xfa, 0xcc, 0x6a, 0x19, + 0xef, 0xad, 0x85, 0x11, 0x3d, 0xde, 0x58, 0x9d, + 0x61, 0xee, 0x35, 0x62, 0xb5, 0xe7, 0x5e, 0xf4, + 0x63, 0xc4, 0xe4, 0xe1, 0xa7, 0xd0, 0x2a, 0x81, + 0xd6, 0x30, 0x90, 0xd8, 0x50, 0xd2, 0xb8, 0xbe, + 0x81, 0xc1, 0x11, 0x32, 0x05, 0x85, 0xc9, 0x01, + 0xd3, 0x26, 0x06, 0x26, 0xae, 0x4f, 0x17, 0x92, + 0xc8, 0xcd, 0xd6, 0xd1, 0x3a, 0xd4, 0xfc, 0x2a, + 0xbe, 0x83, 0x51, 0x2c, 0x87, 0x31, 0xd6, 0x32, + 0x78, 0xac, 0x75, 0x4e, 0x82, 0xa5, 0x47, 0xce, + 0xd5, 0x58, 0x6c, 0x40, 0xc7, 0x53, 0x69, 0x56, + 0xe7, 0xaa, 0xab, 0x4d, 0xbc, 0x7d, 0x9a, 0xb6, + 0xeb, 0x59, 0xba, 0xbc, 0xaa, 0x59, 0x6e, 0x31, + 0xc3, 0x56, 0x8c, 0x9c, 0x5e, 0x6b, 0x66, 0xc5, + 0x34, 0x5d, 0x0e, 0xc7, 0x2b, 0x9e, 0xaa, 0xbb, + 0x14, 0xbc, 0xf7, 0x5f, 0x67, 0x53, 0xfa, 0xe8, + 0xea, 0x34, 0xf9, 0x91, 0x6a, 0xba, 0xeb, 0x55, + 0xbb, 0x16, 0xea, 0xb0, 0xa5, 0x2d, 0xa9, 0x70, + 0xba, 0x69, 0xb2, 0xa0, 0xb0, 0xba, 0xd6, 0xe5, + 0x7d, 0x5f, 0x69, 0x6f, 0x3d, 0x50, 0x3a, 0xee, + 0xf6, 0xb7, 0x8a, 0xca, 0x62, 0x27, 0xf7, 0x5c, + 0x29, 0xfe, 0x57, 0x10, 0xff, 0x00, 0x2d, 0x3f, + 0xea, 0xe4, 0x38, 0x8b, 0x22, 0x9b, 0x6f, 0xa5, + 0x8d, 0x04, 0x9b, 0x95, 0x44, 0x14, 0xdb, 0x67, + 0x0f, 0xb2, 0x9a, 0xa1, 0x09, 0x07, 0xbe, 0xb2, + 0x8a, 0x7a, 0x8f, 0x09, 0x9e, 0x67, 0x87, 0x89, + 0x05, 0xb6, 0xe5, 0xb0, 0xcf, 0x80, 0xdb, 0x83, + 0xe2, 0x7e, 0x1c, 0xc9, 0xb3, 0x1d, 0xe1, 0x5a, + 0x75, 0xb8, 0x97, 0x18, 0xaa, 0x13, 0x90, 0xa3, + 0x0c, 0x85, 0x35, 0xf4, 0x89, 0x17, 0x2e, 0x83, + 0x21, 0x26, 0x41, 0xd4, 0x83, 0x95, 0xce, 0xc7, + 0x12, 0x10, 0x71, 0x07, 0xcb, 0xac, 0x96, 0x5a, + 0xc8, 0xb4, 0xeb, 0xe2, 0xe8, 0x5c, 0xc8, 0xbc, + 0x11, 0x00, 0x4e, 0x34, 0xd2, 0xae, 0xcb, 0x2d, + 0x14, 0x8b, 0x0d, 0x40, 0x4d, 0x20, 0x5c, 0xc2, + 0xe0, 0xd8, 0xb0, 0x92, 0xda, 0x08, 0xc6, 0x3c, + 0x68, 0xc6, 0xe6, 0x2a, 0x83, 0x57, 0x5b, 0x29, + 0x42, 0xa6, 0x42, 0xb8, 0x58, 0x80, 0x17, 0x82, + 0x6e, 0x20, 0x2c, 0x2c, 0x5c, 0x2b, 0x63, 0x56, + 0x2d, 0x10, 0x64, 0x41, 0xc0, 0x35, 0x83, 0x05, + 0xbf, 0x29, 0x94, 0x77, 0xff, 0x00, 0x71, 0x33, + 0xf0, 0x72, 0xfd, 0x62, 0xb5, 0x87, 0xfc, 0x6a, + 0xbf, 0xd9, 0x6d, 0xe8, 0x3d, 0xe8, 0xd1, 0xfb, + 0xd3, 0xab, 0x5f, 0x8c, 0xf2, 0x1f, 0xb4, 0x16, + 0x87, 0xfc, 0xf0, 0xff, 0x00, 0xe1, 0x3d, 0x50, + 0xff, 0x00, 0x2d, 0x9f, 0xa8, 0x6e, 0x97, 0x13, + 0x95, 0x87, 0x4c, 0x00, 0xc7, 0x52, 0xde, 0x37, + 0x0f, 0x75, 0xf3, 0xb4, 0x7f, 0x0e, 0xcd, 0xcc, + 0x7b, 0xec, 0x32, 0x7f, 0x8d, 0x8d, 0x29, 0xfe, + 0x3d, 0x79, 0xc2, 0xaf, 0xa8, 0xb8, 0x7b, 0xe8, + 0x9d, 0x79, 0xc2, 0xaf, 0xa8, 0xb8, 0x7b, 0xe8, + 0x9d, 0x79, 0xc2, 0xaf, 0xa8, 0xb8, 0x7b, 0xe8, + 0x9d, 0x7d, 0xbf, 0x57, 0xd4, 0x5c, 0x3d, 0xf4, + 0x4e, 0xb8, 0x7d, 0x54, 0xee, 0x85, 0xcc, 0x9d, + 0xfa, 0x59, 0x2b, 0x19, 0x14, 0xaf, 0x03, 0xc3, + 0xa7, 0xd2, 0x75, 0x17, 0x7b, 0x6a, 0x12, 0xb8, + 0xc3, 0xf3, 0x6f, 0x4d, 0x5c, 0xe1, 0x63, 0xbc, + 0xa4, 0x98, 0xa6, 0x14, 0x44, 0x44, 0x6d, 0xaa, + 0x87, 0x72, 0xc0, 0x02, 0x2d, 0x2c, 0x2d, 0x2f, + 0xfb, 0x05, 0xc3, 0xaa, 0x3b, 0x14, 0xe5, 0x84, + 0x1d, 0x54, 0x11, 0xe1, 0x99, 0x1b, 0x1c, 0x81, + 0x8a, 0xdb, 0x2b, 0x30, 0xe6, 0x8d, 0xf9, 0x4e, + 0x23, 0x6d, 0x62, 0x59, 0x4a, 0xd5, 0xa3, 0xb5, + 0x98, 0xa5, 0xdb, 0x10, 0x0d, 0xc6, 0x70, 0xa3, + 0x41, 0x53, 0xe1, 0x1b, 0x54, 0x3a, 0x12, 0xb4, + 0xf0, 0xca, 0x99, 0x60, 0xcf, 0xb2, 0xc9, 0x04, + 0x81, 0xab, 0xc6, 0x68, 0x8f, 0x21, 0x72, 0xf8, + 0xea, 0x47, 0x24, 0xcb, 0x9f, 0x36, 0x05, 0x2b, + 0x0e, 0x1d, 0xe1, 0xf3, 0x23, 0x3a, 0x8a, 0xeb, + 0xd9, 0x5c, 0x40, 0x62, 0x4b, 0xdb, 0x10, 0x9f, + 0x6d, 0x62, 0xe7, 0xc7, 0x10, 0xf1, 0xa4, 0x76, + 0xd3, 0x5e, 0xe0, 0x90, 0x4a, 0x55, 0x0f, 0x63, + 0x67, 0x87, 0x78, 0x7f, 0x92, 0x13, 0xe2, 0x7b, + 0x74, 0x14, 0x62, 0x66, 0x0d, 0x43, 0xd4, 0x0e, + 0x76, 0x07, 0x30, 0x2f, 0x9a, 0x39, 0xe4, 0x77, + 0xd7, 0x68, 0xb7, 0x1d, 0x9d, 0x3e, 0xd7, 0xe3, + 0xb7, 0x87, 0x38, 0x7c, 0x62, 0x3a, 0xbc, 0xdd, + 0x29, 0x2f, 0xec, 0x4e, 0xe2, 0x2d, 0xe5, 0x2e, + 0x91, 0x14, 0x40, 0xb3, 0x6f, 0x12, 0x67, 0x55, + 0x96, 0x63, 0x30, 0x76, 0xdc, 0x15, 0xeb, 0x87, + 0xd6, 0xe6, 0x03, 0x99, 0x96, 0x19, 0xb4, 0x85, + 0x7e, 0x58, 0xc4, 0xee, 0x2f, 0x38, 0x28, 0x91, + 0x51, 0x72, 0xb2, 0x7f, 0xc1, 0xd6, 0x6a, 0xad, + 0xdb, 0x51, 0x52, 0xe6, 0x2f, 0x0e, 0x79, 0x10, + 0xac, 0x5c, 0x3d, 0xc3, 0xb0, 0xd6, 0x37, 0xaf, + 0x49, 0x69, 0x53, 0x04, 0xb1, 0x1b, 0xc0, 0xb0, + 0x2d, 0xf3, 0x78, 0xbe, 0x36, 0xfc, 0xbf, 0xc7, + 0xa4, 0x25, 0xca, 0x35, 0xba, 0xcb, 0xc6, 0xaa, + 0x14, 0x5c, 0x37, 0x80, 0xea, 0x1d, 0x93, 0x88, + 0x90, 0xaf, 0xc9, 0xe0, 0x9e, 0x68, 0x71, 0x89, + 0x09, 0x0a, 0xca, 0x20, 0xc8, 0x66, 0x26, 0x22, + 0x63, 0x40, 0x86, 0x0f, 0x2b, 0x5a, 0x16, 0x58, + 0xb0, 0xfa, 0xdd, 0xe1, 0xfd, 0xc8, 0x29, 0xac, + 0x9b, 0x6f, 0x6d, 0xb1, 0x33, 0x1b, 0xd6, 0x58, + 0x11, 0xbc, 0x7d, 0xd2, 0x86, 0x37, 0x38, 0x8d, + 0x5c, 0xc8, 0xa6, 0xca, 0x3b, 0x3d, 0x6a, 0xd1, + 0x61, 0x33, 0xf5, 0xbf, 0xc3, 0xf3, 0x37, 0xa7, + 0xb7, 0xd7, 0xa0, 0x6a, 0xad, 0xfd, 0x8a, 0x88, + 0x29, 0x51, 0x38, 0x8d, 0x93, 0xdf, 0xf6, 0x3e, + 0x9c, 0x0c, 0x93, 0x23, 0x60, 0xed, 0xad, 0x5d, + 0x6e, 0xaf, 0x3c, 0x2e, 0x59, 0x80, 0xe1, 0xe8, + 0x82, 0x95, 0xed, 0x0c, 0x18, 0x98, 0xc5, 0x4c, + 0x73, 0xaf, 0x98, 0x79, 0xc3, 0x7e, 0x70, 0xde, + 0x39, 0xa2, 0x37, 0x8d, 0x79, 0xc2, 0xaf, 0xa8, + 0xb8, 0x7b, 0xe8, 0x9d, 0x79, 0xc2, 0xaf, 0xa8, + 0xb8, 0x7b, 0xe8, 0x9d, 0x79, 0xc2, 0xaf, 0xa8, + 0xb8, 0x7b, 0xe8, 0x9d, 0x79, 0xc2, 0xaf, 0xa8, + 0xb8, 0x7b, 0xe8, 0x9d, 0x65, 0x2c, 0xe4, 0xee, + 0xbe, 0xeb, 0xa3, 0x3f, 0x4c, 0x00, 0x9c, 0x5b, + 0xc2, 0xc3, 0xc1, 0xb6, 0x67, 0xa6, 0x95, 0x8c, + 0x0a, 0x92, 0xbd, 0xe6, 0x67, 0x91, 0x40, 0x01, + 0xcd, 0x33, 0x3b, 0x6f, 0x33, 0xf5, 0x2a, 0x7e, + 0x12, 0x8f, 0xd6, 0x8e, 0xb8, 0x9b, 0xfd, 0x21, + 0xcd, 0xff, 0x00, 0x29, 0xda, 0xfd, 0xd7, 0x14, + 0xba, 0x3e, 0xcc, 0xac, 0x2a, 0x85, 0x7f, 0x7e, + 0x02, 0xc6, 0x5b, 0x1c, 0x8b, 0x05, 0x1f, 0xf4, + 0x45, 0x2b, 0x9f, 0xf1, 0x5b, 0x3b, 0xf9, 0x75, + 0x8e, 0x9b, 0x95, 0x7b, 0x50, 0x95, 0x8c, 0x2c, + 0x04, 0x76, 0xa2, 0xab, 0xc8, 0x5f, 0x59, 0xb8, + 0x5d, 0xe7, 0x71, 0x03, 0xe6, 0xde, 0x3b, 0xb6, + 0xee, 0xdb, 0xcb, 0xa0, 0x63, 0x68, 0xf5, 0x10, + 0x7c, 0x53, 0x6f, 0xa2, 0x9e, 0xdc, 0x6b, 0xe8, + 0xed, 0x88, 0xa5, 0xbf, 0xb7, 0x42, 0xe6, 0x5b, + 0xbf, 0xf1, 0x88, 0xed, 0xa5, 0xb1, 0xb4, 0x7a, + 0x88, 0x3e, 0x29, 0xb9, 0xd1, 0x4f, 0x6e, 0x35, + 0xf4, 0x7f, 0xb1, 0x14, 0x77, 0xf6, 0xe8, 0x5c, + 0xcb, 0x77, 0xfe, 0x31, 0x1d, 0xb4, 0x66, 0x95, + 0xf4, 0x94, 0x53, 0xe2, 0x2f, 0xa9, 0xd5, 0xe4, + 0x8f, 0xbd, 0xd4, 0x98, 0x89, 0x3f, 0x7f, 0x68, + 0xd7, 0x03, 0xb9, 0x71, 0x17, 0xae, 0xc7, 0x13, + 0x65, 0xa6, 0xba, 0xee, 0x58, 0xe5, 0x0b, 0x0e, + 0x49, 0xf0, 0xdf, 0x66, 0x43, 0x6c, 0x39, 0x83, + 0x00, 0xb2, 0x90, 0x5a, 0x62, 0x49, 0x83, 0x00, + 0x3b, 0x44, 0x4c, 0x6d, 0x1a, 0x5e, 0x62, 0xed, + 0x1a, 0xd4, 0x72, 0x95, 0x78, 0x87, 0x24, 0xb4, + 0xaa, 0x8e, 0x3d, 0x14, 0xd9, 0x93, 0x4a, 0xb1, + 0x19, 0x0b, 0xb9, 0x0c, 0x41, 0x21, 0x20, 0xa8, + 0xb9, 0x64, 0x1a, 0xb5, 0x54, 0xed, 0x8e, 0x86, + 0x5e, 0xe6, 0xbf, 0xcb, 0x61, 0xef, 0x6f, 0x4b, + 0x6c, 0x6d, 0xf5, 0x56, 0x24, 0xd1, 0x46, 0x1f, + 0x8b, 0x93, 0x18, 0x3e, 0x63, 0x6c, 0xdb, 0x18, + 0x3a, 0x71, 0x6d, 0xea, 0xb4, 0x5b, 0x58, 0x25, + 0x33, 0xb6, 0x41, 0x39, 0xbb, 0x6f, 0x5b, 0xc1, + 0x67, 0xd2, 0xdf, 0x66, 0x16, 0xa9, 0x14, 0x04, + 0xa6, 0x9d, 0xbf, 0x63, 0xfc, 0xa9, 0x05, 0x12, + 0x99, 0x2e, 0xc8, 0xaa, 0x21, 0x93, 0x6a, 0x3d, + 0xb2, 0x7c, 0x67, 0x0b, 0xaf, 0x54, 0x0b, 0xea, + 0x73, 0x22, 0x24, 0x89, 0xfb, 0x40, 0xc0, 0x0a, + 0xff, 0x00, 0x77, 0xc2, 0x9f, 0xe5, 0x71, 0x0f, + 0xf2, 0xd3, 0xfe, 0xaf, 0x15, 0xed, 0xff, 0x00, + 0xb8, 0xc7, 0x7f, 0x2c, 0xe3, 0xb5, 0x6f, 0x8f, + 0xb8, 0xb3, 0x88, 0x8f, 0x27, 0xe0, 0x0e, 0x07, + 0xc9, 0xd5, 0xc6, 0xd5, 0xe1, 0xec, 0x48, 0xe1, + 0x5d, 0x45, 0x16, 0x2a, 0xc5, 0x8b, 0x96, 0x94, + 0xeb, 0x17, 0xf2, 0x72, 0xcc, 0x9c, 0xad, 0x0a, + 0x4d, 0x67, 0x14, 0xa6, 0xba, 0x24, 0x3a, 0xac, + 0x5c, 0xc7, 0x36, 0xdc, 0x5a, 0xce, 0x14, 0x42, + 0x31, 0x71, 0x7b, 0xd8, 0x8e, 0xee, 0x7e, 0xbe, + 0x2b, 0x1b, 0xc5, 0x17, 0x38, 0xb2, 0xd2, 0xb2, + 0x89, 0x6c, 0xf6, 0x6b, 0xf9, 0x6b, 0x6c, 0x80, + 0xaf, 0x1c, 0x47, 0x10, 0xc7, 0x3a, 0x2b, 0xd1, + 0x5f, 0x45, 0x6b, 0x62, 0x56, 0x0a, 0x87, 0xb5, + 0xe2, 0x79, 0xb9, 0xe1, 0xce, 0x23, 0xb7, 0x63, + 0x29, 0x99, 0xf6, 0x25, 0xca, 0x64, 0xb3, 0xb8, + 0x70, 0xbb, 0x77, 0x31, 0x56, 0xf5, 0x89, 0xc6, + 0x94, 0xb7, 0x88, 0x32, 0x36, 0x5b, 0x36, 0x95, + 0x8f, 0xca, 0x76, 0x97, 0x36, 0xb4, 0xd7, 0xeb, + 0xd3, 0xe7, 0xeb, 0xb0, 0x42, 0xa4, 0x6d, 0x3a, + 0xce, 0xe5, 0xf8, 0xd9, 0x17, 0xab, 0xe5, 0xb1, + 0xde, 0xc6, 0x54, 0x2e, 0x70, 0xa0, 0xd0, 0x6d, + 0x70, 0x75, 0x7e, 0x09, 0x56, 0x3c, 0xeb, 0x93, + 0xf0, 0x65, 0xed, 0x83, 0x5b, 0x2a, 0xdb, 0x00, + 0x9b, 0x17, 0x2c, 0xba, 0x49, 0xcb, 0x63, 0xd3, + 0xd7, 0x05, 0x24, 0x3a, 0x3a, 0xe3, 0x63, 0xe1, + 0x54, 0x23, 0x12, 0x16, 0x7d, 0x88, 0xac, 0x71, + 0x05, 0x7c, 0x5e, 0x33, 0x8a, 0x2e, 0xf1, 0x65, + 0x84, 0x64, 0xd7, 0x64, 0x41, 0x39, 0x0c, 0xad, + 0xd6, 0x72, 0xd7, 0x8e, 0x21, 0x05, 0xbd, 0xee, + 0xe8, 0xd0, 0x5f, 0x67, 0x42, 0x89, 0x02, 0x21, + 0xd5, 0x3b, 0x10, 0xcf, 0x63, 0xd6, 0x70, 0x66, + 0x44, 0xaf, 0x5d, 0xb7, 0xc1, 0x5c, 0x4b, 0x95, + 0xc8, 0xa4, 0x72, 0xf6, 0x32, 0xdd, 0x6c, 0xc9, + 0x60, 0x0c, 0x95, 0x7a, 0xcd, 0x67, 0xd8, 0x7a, + 0xeb, 0x5e, 0xb6, 0xf8, 0x31, 0x72, 0x81, 0x75, + 0xc4, 0xfa, 0x02, 0x3d, 0x9c, 0x79, 0x3b, 0xf8, + 0x3b, 0x26, 0x9c, 0xcf, 0x0f, 0x76, 0xbe, 0x21, + 0xa5, 0x9a, 0xb1, 0xc4, 0x95, 0xab, 0x66, 0x78, + 0xb3, 0x2b, 0x9c, 0xcf, 0xf2, 0xad, 0xcd, 0x7d, + 0x9e, 0x20, 0xa6, 0xec, 0x7d, 0x8c, 0x26, 0x1e, + 0xfe, 0x33, 0x22, 0x43, 0x29, 0x22, 0xb3, 0x8d, + 0x53, 0x64, 0x8e, 0xba, 0x19, 0x69, 0xaf, 0xf6, + 0xdf, 0xed, 0xcc, 0xfc, 0x1c, 0xbf, 0x58, 0xad, + 0x61, 0xff, 0x00, 0x1a, 0xaf, 0xf6, 0x5b, 0x7a, + 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xea, 0xd7, 0xe3, + 0x3c, 0x87, 0xed, 0x05, 0xa1, 0xff, 0x00, 0x3c, + 0x3f, 0xf8, 0x19, 0xaa, 0x1f, 0xe5, 0xb3, 0xf5, + 0x0d, 0xd0, 0xff, 0x00, 0x93, 0x1f, 0xf7, 0x7e, + 0xe2, 0x9d, 0xe2, 0xac, 0xab, 0x71, 0x51, 0xeb, + 0xb1, 0xd9, 0x9f, 0xcd, 0xd1, 0x69, 0x2a, 0x79, + 0x82, 0x19, 0xcb, 0x31, 0x32, 0x10, 0x70, 0x25, + 0x23, 0xe4, 0x2e, 0x5e, 0x52, 0xdc, 0x66, 0x63, + 0x5c, 0x18, 0xee, 0xda, 0x38, 0xc7, 0x63, 0x9f, + 0x98, 0xc9, 0xe4, 0x6d, 0x4d, 0xc9, 0x7d, 0xaa, + 0xbc, 0xb9, 0x33, 0xbc, 0x4b, 0x81, 0x60, 0x7b, + 0x75, 0xdc, 0x94, 0xc6, 0xf5, 0x96, 0x40, 0x50, + 0xc3, 0x6c, 0x09, 0x04, 0xa3, 0x9f, 0x51, 0x96, + 0xa6, 0xd5, 0xf4, 0x32, 0x75, 0x92, 0xe1, 0xa4, + 0x24, 0xbe, 0xa6, 0x26, 0x54, 0x11, 0x5a, 0x71, + 0x6d, 0x5a, 0xc1, 0x62, 0xb0, 0xab, 0xd2, 0x8e, + 0xcb, 0x22, 0xb8, 0x5b, 0x6a, 0x12, 0x88, 0x66, + 0x4e, 0x1b, 0x03, 0xc0, 0xb0, 0xfb, 0xc6, 0x84, + 0x52, 0xa6, 0xb5, 0xe4, 0x5f, 0x51, 0x86, 0x16, + 0x68, 0x4f, 0x87, 0xb2, 0x56, 0x37, 0xe7, 0x57, + 0xb6, 0xa1, 0xa0, 0xa6, 0xa9, 0xdc, 0xeb, 0xdd, + 0xab, 0x02, 0x86, 0xae, 0x08, 0xe0, 0x46, 0x57, + 0xcf, 0x7b, 0x05, 0x52, 0xd0, 0xdd, 0xe2, 0x3b, + 0x11, 0x5b, 0x15, 0x60, 0xac, 0x8a, 0x86, 0xd7, + 0x0c, 0xe5, 0x2a, 0x53, 0x7b, 0x72, 0x0e, 0x7d, + 0xa6, 0x5b, 0xb1, 0x6a, 0xdc, 0x80, 0x8c, 0x4d, + 0xb7, 0xf4, 0x39, 0xeb, 0x81, 0x05, 0x66, 0xb4, + 0xd3, 0xac, 0x48, 0x15, 0xc5, 0x47, 0x43, 0x80, + 0x78, 0x93, 0x1c, 0xc1, 0x96, 0x7d, 0x8e, 0xf5, + 0xa3, 0xce, 0x74, 0x2a, 0xcc, 0x7d, 0xc7, 0x3f, + 0xad, 0x5f, 0x90, 0x3c, 0xa5, 0xce, 0xbf, 0xe2, + 0xd6, 0x72, 0xe5, 0xeb, 0x55, 0x6e, 0x8d, 0xea, + 0xb8, 0x14, 0x22, 0x88, 0x3c, 0x5b, 0x67, 0x74, + 0x3b, 0x11, 0x70, 0xa2, 0xc5, 0x5f, 0x18, 0xab, + 0x8d, 0x2a, 0xd4, 0x8d, 0x60, 0x6f, 0x08, 0x07, + 0x4b, 0x13, 0xd0, 0xe7, 0x13, 0x3e, 0x55, 0x59, + 0xed, 0x98, 0x05, 0x54, 0xb7, 0xc5, 0x98, 0xec, + 0x87, 0x3d, 0x22, 0xb8, 0xfb, 0x2e, 0xaa, 0x8b, + 0x0e, 0x7f, 0x84, 0x6e, 0xb1, 0xf9, 0x3b, 0x21, + 0x8b, 0x94, 0x8b, 0xf9, 0x0e, 0xbb, 0x2b, 0x29, + 0xec, 0x26, 0xb7, 0x61, 0x5a, 0xd3, 0xe3, 0x67, + 0x59, 0x72, 0xc8, 0x2b, 0xb4, 0xe2, 0x1c, 0xa5, + 0x1b, 0x8f, 0xec, 0xce, 0x2c, 0xae, 0x35, 0xdc, + 0x83, 0x33, 0xee, 0x8e, 0x56, 0xb6, 0x33, 0xfc, + 0x90, 0x29, 0xd5, 0x81, 0x5d, 0xc0, 0x22, 0xb9, + 0xec, 0x87, 0x89, 0xb9, 0x56, 0x60, 0xf9, 0xa5, + 0xb5, 0xe1, 0xf9, 0x48, 0x9b, 0x4b, 0xff, 0x00, + 0x0c, 0x07, 0xac, 0x9f, 0x1b, 0xfc, 0x71, 0xfb, + 0xfa, 0x45, 0x0b, 0xb9, 0x1a, 0x2e, 0x75, 0x8b, + 0xdc, 0x44, 0x73, 0x69, 0x36, 0x3b, 0x45, 0x6a, + 0xa1, 0x90, 0xc2, 0x59, 0xc5, 0x57, 0x65, 0x87, + 0xab, 0xa8, 0x0a, 0xed, 0x96, 0xda, 0x06, 0xd0, + 0xfb, 0x2d, 0x75, 0x28, 0x5b, 0x6c, 0x55, 0x1b, + 0x6d, 0x4b, 0x15, 0x19, 0xdc, 0x60, 0x5f, 0x5e, + 0x38, 0xd8, 0x6f, 0x43, 0x97, 0x65, 0x34, 0xec, + 0x0f, 0x14, 0xe2, 0x32, 0xbd, 0x2e, 0x7e, 0x65, + 0xa6, 0xd5, 0x85, 0x54, 0x4b, 0x1a, 0x2b, 0x4b, + 0x7a, 0x76, 0x58, 0x96, 0x22, 0xb3, 0x59, 0x3c, + 0xa4, 0x55, 0xf9, 0x27, 0x1c, 0xbb, 0xd3, 0x90, + 0xba, 0xe7, 0xab, 0x09, 0x75, 0xd6, 0x31, 0x56, + 0x56, 0xc0, 0x4f, 0xf6, 0x4f, 0xb1, 0x95, 0x8b, + 0x08, 0xc6, 0xd9, 0xb4, 0xc8, 0x91, 0x8a, 0xca, + 0x94, 0x98, 0xa5, 0x70, 0x2c, 0xac, 0xa1, 0x05, + 0x6f, 0xfb, 0x8c, 0xaf, 0xfa, 0x45, 0x4f, 0xf9, + 0x32, 0xc7, 0xd4, 0xab, 0xf8, 0x4a, 0x3f, 0x5a, + 0x3a, 0xcf, 0x76, 0xbb, 0x1c, 0x61, 0x16, 0xbc, + 0x37, 0x96, 0xed, 0x51, 0x5a, 0x9e, 0x0c, 0xab, + 0x45, 0x8e, 0xdf, 0x63, 0xaf, 0x15, 0xc9, 0xb7, + 0x85, 0xa4, 0x88, 0x6f, 0x37, 0x4a, 0x58, 0x22, + 0xc9, 0x5f, 0x2c, 0x98, 0xc1, 0x6f, 0x1a, 0xfb, + 0x67, 0x8d, 0xfe, 0x25, 0xc3, 0xff, 0x00, 0x48, + 0x6b, 0xed, 0x9e, 0x37, 0xf8, 0x97, 0x0f, 0xfd, + 0x21, 0xaf, 0xb6, 0x78, 0xdf, 0xe2, 0x5c, 0x3f, + 0xf4, 0x86, 0xbe, 0xd9, 0xe3, 0x7f, 0x89, 0x70, + 0xff, 0x00, 0xd2, 0x1a, 0xfb, 0x67, 0x8d, 0xfe, + 0x25, 0xc3, 0xff, 0x00, 0x48, 0x6a, 0xcf, 0x2b, + 0xb8, 0xd5, 0x81, 0x6e, 0x9d, 0x8a, 0x4e, 0x59, + 0x52, 0xc0, 0xc4, 0x12, 0x9f, 0x11, 0xdf, 0xe2, + 0xe4, 0x62, 0x77, 0x5b, 0x45, 0x6e, 0x0f, 0xb9, + 0xce, 0xb1, 0xdf, 0x78, 0xd4, 0x8d, 0x6e, 0x25, + 0xf6, 0x50, 0xae, 0x33, 0xd3, 0x89, 0x14, 0x3b, + 0x1a, 0x91, 0x98, 0x4a, 0x81, 0x09, 0x89, 0x85, + 0xe5, 0xc6, 0x27, 0xa4, 0x85, 0xad, 0x2b, 0xff, + 0x00, 0xdd, 0xa8, 0x01, 0x63, 0xb0, 0x08, 0xc4, + 0x34, 0x97, 0xc5, 0x1e, 0xca, 0x4b, 0x27, 0x9c, + 0x31, 0xc4, 0x16, 0x31, 0xe2, 0x4e, 0x64, 0x00, + 0xae, 0x0d, 0xb2, 0x39, 0x88, 0x96, 0x1c, 0x2c, + 0x05, 0x70, 0x47, 0xb9, 0x40, 0x08, 0x8e, 0xfc, + 0xa3, 0x11, 0xa6, 0x92, 0xf8, 0xa3, 0xd9, 0x49, + 0x64, 0xf3, 0x86, 0x38, 0x82, 0xc6, 0x3c, 0x09, + 0xcc, 0x80, 0x15, 0xc3, 0x1b, 0x23, 0x98, 0x89, + 0x61, 0xc2, 0xc0, 0x17, 0x06, 0x7b, 0x94, 0x00, + 0x88, 0xef, 0xca, 0x31, 0x1a, 0x2b, 0x17, 0x32, + 0x5c, 0x7f, 0x6e, 0xc1, 0xed, 0xce, 0xfb, 0x48, + 0xc2, 0x58, 0x71, 0xed, 0x1c, 0xb1, 0xce, 0xd6, + 0xe4, 0x8d, 0x85, 0xb4, 0x44, 0x44, 0x6e, 0x53, + 0xb4, 0x46, 0xda, 0x5a, 0x0a, 0xff, 0x00, 0x1e, + 0x12, 0x12, 0x6c, 0x62, 0x53, 0x35, 0xb0, 0x52, + 0xa5, 0x31, 0xdd, 0x3e, 0xb1, 0xa9, 0x73, 0x91, + 0xe4, 0x59, 0xb7, 0xa4, 0xae, 0xa9, 0x04, 0x44, + 0xb3, 0xa6, 0xbe, 0x79, 0x9e, 0x41, 0xd9, 0x0f, + 0xb7, 0x9a, 0xf6, 0x46, 0xb4, 0xfa, 0xdc, 0xb1, + 0x59, 0xd6, 0x63, 0x10, 0xf7, 0x57, 0x80, 0x2e, + 0x70, 0x84, 0x31, 0xb9, 0x52, 0x34, 0xc0, 0x1f, + 0x8e, 0x3d, 0x39, 0x1e, 0x52, 0xf1, 0xa3, 0xbf, + 0x41, 0x90, 0x6e, 0x73, 0xd9, 0x21, 0xb7, 0xd5, + 0xb7, 0x4a, 0xf3, 0x3c, 0x12, 0x77, 0x17, 0xcb, + 0xbc, 0x0f, 0x4e, 0xd1, 0x65, 0x65, 0xe1, 0xcb, + 0x13, 0x31, 0x1c, 0xa7, 0x1b, 0x44, 0xce, 0xda, + 0xc8, 0x35, 0xf7, 0xf8, 0xf2, 0xdd, 0xac, 0x8d, + 0x5e, 0xc8, 0xeb, 0x76, 0xd1, 0x85, 0x7d, 0x98, + 0x5c, 0xb1, 0x26, 0x7b, 0x35, 0x99, 0x32, 0x32, + 0x23, 0x04, 0xc2, 0x67, 0x9e, 0x4b, 0xda, 0x88, + 0x87, 0x5f, 0x6c, 0xf1, 0xbf, 0xc4, 0xb8, 0x7f, + 0xe9, 0x0d, 0x7d, 0xb3, 0xc6, 0xff, 0x00, 0x12, + 0xe1, 0xff, 0x00, 0xa4, 0x35, 0xf6, 0xcf, 0x1b, + 0xfc, 0x4b, 0x87, 0xfe, 0x90, 0xd7, 0xdb, 0x3c, + 0x6f, 0xf1, 0x2e, 0x1f, 0xfa, 0x43, 0x5f, 0x6c, + 0xf1, 0xbf, 0xc4, 0xb8, 0x7f, 0xe9, 0x0d, 0x7d, + 0xb3, 0xc6, 0xff, 0x00, 0x12, 0xe1, 0xff, 0x00, + 0xa4, 0x35, 0xc3, 0x51, 0x88, 0x2b, 0xe7, 0x40, + 0x4f, 0x39, 0x0a, 0x2c, 0x98, 0x57, 0x5d, 0xc9, + 0x2f, 0x09, 0x91, 0x37, 0xa8, 0x15, 0x18, 0xd4, + 0x44, 0x43, 0x48, 0xe1, 0x7c, 0xa7, 0x3b, 0xae, + 0x06, 0x4b, 0x62, 0xde, 0x3e, 0xab, 0x68, 0xe4, + 0xa9, 0x54, 0xc8, 0x52, 0x7f, 0x2c, 0x3e, 0x9d, + 0xea, 0xe9, 0xb7, 0x55, 0xd0, 0x06, 0x2c, 0x08, + 0x6d, 0x77, 0x83, 0x14, 0xce, 0x56, 0x00, 0x30, + 0x79, 0xc2, 0x79, 0x4c, 0x44, 0xa3, 0xc6, 0x18, + 0x9d, 0x74, 0x65, 0x61, 0x29, 0x90, 0xe9, 0x4a, + 0xa4, 0x07, 0xa5, 0x2a, 0xe5, 0xe5, 0xe9, 0xf4, + 0xf6, 0xe5, 0xe4, 0xe5, 0xf1, 0x79, 0x36, 0xe5, + 0xe5, 0xee, 0xdb, 0x6d, 0x03, 0x71, 0x38, 0x0c, + 0x26, 0x31, 0xaa, 0x17, 0x02, 0x99, 0x8f, 0xc5, + 0x51, 0xa4, 0x6b, 0x0b, 0x32, 0xa9, 0xb0, 0x00, + 0x75, 0x90, 0xb2, 0x01, 0x7c, 0xa5, 0x32, 0xe1, + 0x19, 0x88, 0x6c, 0xa9, 0x52, 0x7b, 0xf2, 0x0e, + 0xd7, 0xd3, 0x47, 0x87, 0xf0, 0x94, 0x95, 0x95, + 0x02, 0x5e, 0x4d, 0x55, 0x31, 0x54, 0x6b, 0xaf, + 0x22, 0xb3, 0x86, 0x09, 0x85, 0xf0, 0x4a, 0x00, + 0x6d, 0x81, 0x8b, 0x9a, 0x24, 0x36, 0x21, 0x90, + 0x50, 0xd6, 0x44, 0xc6, 0xc6, 0x5b, 0xd2, 0x2f, + 0x03, 0x62, 0xb9, 0xb1, 0xd5, 0x19, 0x43, 0x1e, + 0x5e, 0x0f, 0xa9, 0xbd, 0x0a, 0x2e, 0x57, 0x41, + 0xb4, 0xa9, 0x4f, 0x4b, 0x7a, 0xb5, 0x1a, 0x88, + 0x84, 0xb2, 0xba, 0x39, 0x12, 0x6a, 0x8e, 0x99, + 0x04, 0x87, 0x76, 0x9c, 0x38, 0x0c, 0x5e, 0x27, + 0x87, 0x2e, 0x95, 0x4b, 0x75, 0x6a, 0x64, 0xb1, + 0x38, 0x5c, 0x4a, 0x6c, 0xd0, 0x9b, 0x70, 0x12, + 0x6c, 0x40, 0x4d, 0x39, 0x41, 0x44, 0xb5, 0x48, + 0x73, 0x10, 0xd5, 0x9a, 0x2c, 0x1a, 0x17, 0xd7, + 0x03, 0xe5, 0x8d, 0xa8, 0xe7, 0x72, 0x39, 0x3c, + 0x3d, 0xb6, 0xe2, 0xe9, 0xdd, 0xaf, 0x46, 0xbe, + 0x0b, 0x84, 0xa8, 0x70, 0xa2, 0x0e, 0xde, 0x48, + 0x50, 0xab, 0xf9, 0x5c, 0x82, 0xe9, 0x5b, 0xb4, + 0xbb, 0x77, 0x9f, 0x5e, 0xb8, 0x27, 0x70, 0x5d, + 0x65, 0xac, 0x77, 0xd8, 0x79, 0x79, 0x44, 0x6e, + 0x64, 0x31, 0xf8, 0x7c, 0x5d, 0x1b, 0xf9, 0x13, + 0x26, 0x64, 0x2e, 0xd3, 0xc7, 0xd4, 0xad, 0x6e, + 0xf3, 0x0d, 0x84, 0xe3, 0x3b, 0x96, 0x52, 0xa0, + 0x75, 0x93, 0x37, 0x11, 0x34, 0x89, 0xc6, 0x72, + 0x4c, 0x22, 0x39, 0xf1, 0xa6, 0x67, 0xfb, 0x7b, + 0x3f, 0x07, 0x2f, 0xd6, 0x2b, 0x58, 0x7f, 0xc6, + 0xab, 0xfd, 0x96, 0xde, 0x83, 0xde, 0x8d, 0x1f, + 0xbd, 0x3a, 0xb5, 0xf8, 0xcb, 0x21, 0xfb, 0x41, + 0x68, 0x7f, 0xcf, 0x0f, 0xfe, 0x06, 0x6a, 0x87, + 0xf9, 0xc3, 0xff, 0x00, 0xad, 0x2c, 0x8d, 0x0f, + 0xfe, 0xcc, 0xe5, 0xfc, 0x91, 0xff, 0x00, 0xe5, + 0x30, 0xfd, 0xef, 0xc4, 0x9a, 0xf4, 0x67, 0x2f, + 0xfa, 0x4c, 0x3f, 0x42, 0x6b, 0xd1, 0x9c, 0xbf, + 0xe9, 0x30, 0xfd, 0x09, 0xaf, 0x46, 0x72, 0xff, + 0x00, 0xa4, 0xc3, 0xf4, 0x26, 0xbd, 0x19, 0xcb, + 0xfe, 0x93, 0x0f, 0xd0, 0x9a, 0xf4, 0x67, 0x2f, + 0xfa, 0x4c, 0x3f, 0x42, 0x6b, 0xd1, 0x9c, 0xbf, + 0xe9, 0x30, 0xfd, 0x09, 0xaf, 0x46, 0x72, 0xff, + 0x00, 0xa4, 0xc3, 0xf4, 0x26, 0xbd, 0x19, 0xcb, + 0xfe, 0x93, 0x0f, 0xd0, 0x9a, 0xf4, 0x67, 0x2f, + 0xfa, 0x4c, 0x3f, 0x42, 0x68, 0xed, 0x5b, 0xe1, + 0xec, 0xbb, 0xac, 0x33, 0x93, 0x9d, 0x93, 0xc4, + 0x89, 0x0e, 0x6e, 0x9a, 0xc5, 0x41, 0xe2, 0xaf, + 0x04, 0x01, 0x1c, 0xab, 0x01, 0x1e, 0xe1, 0x8d, + 0xf6, 0xde, 0x77, 0x9d, 0xe7, 0x5e, 0x8c, 0xe5, + 0xff, 0x00, 0x49, 0x87, 0xe8, 0x4d, 0x7a, 0x33, + 0x97, 0xfd, 0x26, 0x1f, 0xa1, 0x34, 0x8b, 0x95, + 0x78, 0x77, 0x2e, 0xab, 0x35, 0x5a, 0x0f, 0x43, + 0x7e, 0xb9, 0x12, 0x7d, 0x36, 0xac, 0xb9, 0x80, + 0xf9, 0x59, 0x82, 0x30, 0x2e, 0x52, 0x8d, 0xf6, + 0x31, 0x21, 0x9f, 0xbb, 0x13, 0xa9, 0x29, 0xe1, + 0xac, 0xbe, 0xe5, 0x33, 0x33, 0xff, 0x00, 0xb4, + 0xc1, 0xe5, 0x9e, 0xf9, 0xff, 0x00, 0xe8, 0x4d, + 0x7a, 0x33, 0x97, 0xfd, 0x26, 0x1f, 0xa1, 0x35, + 0xe8, 0xce, 0x5f, 0xf4, 0x98, 0x7e, 0x84, 0xd7, + 0xa3, 0x39, 0x7f, 0xd2, 0x61, 0xfa, 0x13, 0x5e, + 0x8c, 0xe5, 0xff, 0x00, 0x49, 0x87, 0xe8, 0x4d, + 0x7a, 0x33, 0x97, 0xfd, 0x26, 0x1f, 0xa1, 0x35, + 0xe8, 0xce, 0x5f, 0xf4, 0x98, 0x7e, 0x84, 0xd6, + 0x43, 0xc1, 0x38, 0xeb, 0x58, 0xe5, 0x8e, 0x76, + 0x9f, 0x54, 0x6d, 0x64, 0x63, 0x20, 0x4c, 0x39, + 0xc7, 0xda, 0xd8, 0x84, 0xe2, 0x9d, 0x3e, 0x9c, + 0x40, 0xc6, 0xdc, 0xbc, 0xa7, 0xbc, 0xf7, 0xef, + 0x1e, 0x4f, 0xa9, 0x5b, 0xf0, 0x84, 0xfe, 0xb0, + 0x75, 0xc4, 0xdf, 0xe9, 0x0e, 0x6f, 0xf9, 0x4e, + 0xd7, 0xd5, 0x0c, 0x9f, 0x8f, 0xda, 0x4b, 0x36, + 0xca, 0x13, 0xe3, 0x7b, 0x5f, 0x67, 0x1a, 0x0b, + 0xb1, 0x1e, 0x26, 0xde, 0xef, 0xa8, 0x53, 0xe3, + 0x6f, 0xee, 0x7b, 0xb6, 0xd3, 0xca, 0xb5, 0x67, + 0xe4, 0xad, 0x27, 0x87, 0xb0, 0x19, 0x35, 0x62, + 0x57, 0x63, 0x91, 0xf6, 0xdb, 0x91, 0xaf, 0x0d, + 0xc8, 0x58, 0x0e, 0x51, 0xeb, 0x35, 0x34, 0x63, + 0xc6, 0xec, 0xb5, 0xa0, 0x9d, 0xed, 0xc0, 0x53, + 0x3d, 0x35, 0x9e, 0xf9, 0xcb, 0x58, 0xfc, 0x6e, + 0x4f, 0x28, 0x74, 0x59, 0x85, 0x05, 0xe3, 0x76, + 0xb7, 0x16, 0x68, 0xba, 0xf4, 0x5e, 0x8c, 0x95, + 0x5b, 0x02, 0x8a, 0xc2, 0xe7, 0xcd, 0x07, 0xd6, + 0x84, 0x8b, 0xfa, 0x6b, 0x19, 0x18, 0xdc, 0xe3, + 0x9e, 0x67, 0x69, 0x45, 0x78, 0x35, 0xef, 0x52, + 0xa5, 0x86, 0x55, 0x71, 0xf5, 0x1d, 0x46, 0xcd, + 0x8a, 0xc0, 0xe7, 0xd0, 0x71, 0x6c, 0x33, 0x2c, + 0xaa, 0xd2, 0x25, 0xcc, 0x18, 0x8b, 0x47, 0x68, + 0x07, 0x0c, 0x34, 0x4f, 0x57, 0xeb, 0xa3, 0x87, + 0xf2, 0x0b, 0xa8, 0x86, 0x2d, 0x48, 0xcb, 0x3c, + 0xaf, 0x4a, 0x4b, 0x9c, 0x55, 0x30, 0x7d, 0x42, + 0x48, 0x54, 0x2e, 0x72, 0x29, 0x01, 0xd8, 0xb9, + 0x66, 0x7b, 0xa3, 0xbf, 0x5e, 0x0d, 0xc8, 0x22, + 0x41, 0x34, 0x32, 0xd8, 0xdc, 0x7e, 0x66, 0x17, + 0x61, 0x1c, 0xe8, 0xed, 0xd7, 0x06, 0xa8, 0x8a, + 0xcc, 0x4c, 0xe1, 0x84, 0x47, 0xb8, 0xf3, 0xa6, + 0x1b, 0x01, 0xee, 0x8b, 0xc5, 0xd6, 0x3d, 0x2c, + 0xed, 0x1d, 0x95, 0xd4, 0xf0, 0x8c, 0x76, 0xcc, + 0xf1, 0xa6, 0xce, 0x53, 0x2c, 0x8a, 0x1c, 0xa2, + 0x7c, 0xbe, 0x24, 0x74, 0xd8, 0xd6, 0x0c, 0x6d, + 0x3b, 0x74, 0xa7, 0x5c, 0x46, 0x77, 0x31, 0xb9, + 0x3a, 0xea, 0xc7, 0xa6, 0x67, 0x1c, 0xcb, 0x08, + 0x7d, 0x55, 0x35, 0xb3, 0x97, 0xa9, 0x4d, 0x40, + 0x4e, 0x72, 0x40, 0x1b, 0xcf, 0x5d, 0xc7, 0x31, + 0xca, 0x51, 0xbf, 0xd9, 0x23, 0xb8, 0x67, 0x4e, + 0xae, 0x9a, 0x68, 0x4b, 0xa2, 0xcd, 0xf5, 0x2e, + 0xa3, 0x72, 0x54, 0x41, 0xa5, 0xe0, 0xf3, 0x21, + 0xb7, 0x15, 0xba, 0xf6, 0x40, 0xed, 0xaa, 0xb4, + 0x89, 0x01, 0x58, 0x54, 0x1a, 0xc8, 0x96, 0x7c, + 0xa6, 0x52, 0x25, 0xb6, 0x32, 0xf5, 0x11, 0x03, + 0x0b, 0x18, 0x31, 0xc9, 0xd8, 0x59, 0xdd, 0xab, + 0xda, 0xa6, 0x56, 0x6e, 0xed, 0x6e, 0x45, 0x22, + 0x60, 0xda, 0x2a, 0xc9, 0x58, 0x84, 0x91, 0x02, + 0x8c, 0x47, 0x95, 0xb3, 0xcd, 0x3d, 0x33, 0xe5, + 0xcb, 0x3c, 0x6a, 0x37, 0x27, 0x6a, 0x82, 0xeb, + 0x31, 0x38, 0xba, 0xee, 0x95, 0x39, 0xc9, 0x61, + 0x37, 0xb5, 0x5b, 0x88, 0x08, 0x97, 0xb8, 0x29, + 0x8a, 0xc2, 0x09, 0x55, 0xe2, 0x4f, 0x9a, 0xc0, + 0x19, 0x78, 0x81, 0x30, 0x57, 0xec, 0x61, 0xb6, + 0x8c, 0x6d, 0x23, 0xa6, 0xbb, 0x07, 0x93, 0xb5, + 0x5b, 0x1e, 0x74, 0x2d, 0x5d, 0x03, 0x9e, 0xc0, + 0xe3, 0xbc, 0x75, 0x3a, 0x86, 0x8b, 0x09, 0xb1, + 0x5b, 0xaa, 0x21, 0x10, 0x7d, 0x28, 0x29, 0x81, + 0x93, 0x8d, 0x39, 0x73, 0x5d, 0x68, 0x34, 0x5c, + 0x2c, 0x7c, 0xc5, 0xab, 0x75, 0x2a, 0x75, 0x2f, + 0x08, 0xc1, 0xcd, 0x4a, 0xd3, 0x61, 0xeb, 0x8b, + 0x4f, 0xe5, 0x20, 0x2e, 0x9d, 0x7e, 0xa4, 0xec, + 0xd5, 0x4f, 0xfc, 0xaa, 0xf9, 0xa0, 0xc2, 0xb4, + 0x41, 0x19, 0xd9, 0x5a, 0x6b, 0xb6, 0xc5, 0x74, + 0x5c, 0xb2, 0xca, 0x65, 0x21, 0x68, 0x2a, 0x53, + 0x73, 0x42, 0xd5, 0xa2, 0x41, 0x89, 0x2c, 0xe1, + 0x0a, 0x3d, 0x98, 0x06, 0xbe, 0xf3, 0x12, 0x18, + 0xbf, 0x6e, 0xf8, 0x8a, 0xd2, 0xbe, 0x1c, 0xc9, + 0xe6, 0x2a, 0x2e, 0x2e, 0x56, 0x0b, 0x65, 0x28, + 0x51, 0xcd, 0x4b, 0x07, 0x4f, 0x9e, 0x6d, 0x76, + 0x46, 0x34, 0x27, 0xc6, 0x94, 0x88, 0xb0, 0x76, + 0x28, 0x2e, 0x52, 0x12, 0x9f, 0xab, 0xc3, 0x3f, + 0xe7, 0xb8, 0x83, 0xf9, 0x50, 0xbe, 0xad, 0xec, + 0x8b, 0x14, 0xf7, 0xae, 0x85, 0x3b, 0x57, 0x58, + 0x9a, 0xaa, 0x27, 0xda, 0x68, 0x55, 0x41, 0xbc, + 0x95, 0x59, 0x03, 0xe3, 0x39, 0xe6, 0x21, 0x22, + 0xa5, 0x0f, 0x79, 0xb2, 0x44, 0x63, 0xcb, 0xaa, + 0x5c, 0x45, 0x42, 0xad, 0xda, 0x75, 0x6f, 0x75, + 0xfa, 0x69, 0xc8, 0x28, 0x15, 0x62, 0x3a, 0x0e, + 0x34, 0x49, 0x6c, 0xb6, 0x35, 0x64, 0xb3, 0x25, + 0xc9, 0x2d, 0x8b, 0x61, 0x09, 0x0f, 0xf1, 0xef, + 0x11, 0xab, 0x45, 0x8a, 0x0a, 0xc7, 0x90, 0xe9, + 0x14, 0x56, 0x9b, 0x86, 0x61, 0x55, 0x27, 0x3d, + 0xdd, 0xa2, 0xc7, 0x4c, 0x4d, 0xad, 0x5d, 0x68, + 0xdd, 0xdd, 0x9d, 0x70, 0x27, 0x66, 0x42, 0x2b, + 0xc3, 0x51, 0xd4, 0x97, 0xaf, 0x87, 0x73, 0xd9, + 0x2c, 0xe5, 0xda, 0x75, 0xa7, 0x85, 0xea, 0x58, + 0xb1, 0x38, 0xc2, 0x21, 0xcd, 0xe5, 0xb8, 0x93, + 0x25, 0x5e, 0x80, 0x62, 0x95, 0x58, 0x16, 0x96, + 0x05, 0x92, 0x73, 0xda, 0xf0, 0x56, 0x3c, 0x41, + 0x83, 0x72, 0xf5, 0x8a, 0xc2, 0xc4, 0x15, 0x75, + 0xb2, 0x35, 0x5b, 0xc2, 0x56, 0xec, 0x25, 0xb5, + 0x72, 0xdc, 0x1d, 0x8a, 0xbd, 0x35, 0x25, 0x5f, + 0x5b, 0x14, 0xe7, 0x25, 0x89, 0xa8, 0x79, 0xbc, + 0x5e, 0x4e, 0x60, 0x7c, 0x7c, 0xd5, 0x8c, 0x9d, + 0xc2, 0xec, 0x4c, 0x57, 0x51, 0x35, 0xfb, 0x56, + 0x09, 0x51, 0x62, 0xb4, 0x31, 0xea, 0x77, 0x10, + 0x65, 0xb8, 0x7f, 0x88, 0xa1, 0xaf, 0xc1, 0x51, + 0xc8, 0x90, 0xd8, 0xe1, 0xec, 0xd2, 0x9a, 0xba, + 0xf9, 0x04, 0x57, 0xea, 0x74, 0x2e, 0xf6, 0x17, + 0x35, 0x52, 0xe5, 0x78, 0x85, 0x35, 0x6c, 0xf8, + 0xc3, 0x05, 0xbc, 0x86, 0xc5, 0xdf, 0x8f, 0xe1, + 0x84, 0xe5, 0x32, 0xa9, 0xa7, 0x18, 0xec, 0x96, + 0x62, 0xd5, 0x8e, 0xde, 0xc3, 0xc9, 0xdb, 0x95, + 0xdc, 0xa9, 0x56, 0xb5, 0x5f, 0x08, 0x32, 0x4a, + 0xda, 0xab, 0xac, 0xed, 0x31, 0xc7, 0xd0, 0x25, + 0x99, 0x74, 0xd0, 0x99, 0x67, 0x43, 0xaa, 0xa6, + 0x47, 0x0e, 0xb6, 0xd6, 0x7b, 0x20, 0x18, 0xac, + 0xed, 0xda, 0x46, 0xec, 0x3b, 0x97, 0x5f, 0x29, + 0x76, 0x9b, 0xb8, 0x77, 0x1d, 0x9c, 0xc7, 0x8d, + 0xc7, 0x0b, 0xa9, 0x01, 0xbb, 0x1f, 0xe1, 0x12, + 0xac, 0xf3, 0x13, 0x59, 0x58, 0x52, 0xaa, 0xd9, + 0x70, 0xb1, 0xcf, 0x61, 0x4e, 0x47, 0x1c, 0xdb, + 0xfc, 0x74, 0x80, 0xaf, 0xc2, 0x18, 0x4b, 0xb8, + 0xba, 0xb4, 0x11, 0x9d, 0xca, 0x5c, 0x5e, 0x46, + 0xf5, 0xfe, 0x28, 0x17, 0x1e, 0x40, 0xf1, 0x35, + 0x72, 0x75, 0xbb, 0x41, 0x76, 0x5a, 0x4a, 0x5f, + 0x85, 0x2c, 0x76, 0x59, 0x14, 0x72, 0x8c, 0xca, + 0x85, 0xd3, 0xae, 0x11, 0xc6, 0xdc, 0x9e, 0xcb, + 0x93, 0xc9, 0x08, 0x5a, 0xcd, 0x1a, 0x24, 0x22, + 0x42, 0x31, 0x74, 0x97, 0x6a, 0xf5, 0x64, 0xc8, + 0x73, 0xac, 0x7b, 0x56, 0x40, 0xeb, 0x56, 0x6f, + 0x4e, 0x64, 0x7b, 0x19, 0xda, 0x14, 0x94, 0x49, + 0x2d, 0x83, 0xc7, 0xec, 0xb3, 0x2a, 0x05, 0x62, + 0xb8, 0x73, 0x0d, 0x7b, 0x07, 0x4e, 0xac, 0x76, + 0x92, 0xaf, 0xdb, 0x2d, 0xe7, 0xe9, 0xc5, 0xa7, + 0xf5, 0x00, 0x05, 0xf7, 0xac, 0x36, 0x9a, 0xac, + 0x9d, 0x71, 0x8e, 0x82, 0xd4, 0x35, 0xe9, 0x41, + 0xb4, 0xd6, 0xdb, 0x0e, 0xcc, 0xb7, 0x24, 0xbc, + 0xdd, 0xca, 0x98, 0xc7, 0xe2, 0xac, 0x64, 0xe9, + 0xe4, 0x9b, 0x56, 0xd6, 0x5b, 0x09, 0x8a, 0xc8, + 0xd7, 0xb0, 0x81, 0xcc, 0x55, 0xb3, 0x49, 0x96, + 0xd7, 0x99, 0xc7, 0xd9, 0xc8, 0xd5, 0xf6, 0xfa, + 0x5c, 0xf5, 0x2c, 0x62, 0x39, 0x32, 0x2d, 0x5f, + 0x68, 0xae, 0x09, 0xad, 0x1c, 0x00, 0xc2, 0xaa, + 0x8c, 0x55, 0x5c, 0xb6, 0x5f, 0xa7, 0x9b, 0xa9, + 0x16, 0xe6, 0xdd, 0x9e, 0x66, 0x70, 0xfe, 0x76, + 0xfa, 0x71, 0x82, 0xce, 0xca, 0x81, 0x95, 0x28, + 0xa9, 0x03, 0x6e, 0x3b, 0x94, 0x26, 0x5e, 0x29, + 0x52, 0x60, 0xd6, 0x2c, 0x33, 0x4e, 0x48, 0x83, + 0x2f, 0x6a, 0xd6, 0x5b, 0x87, 0xef, 0xe5, 0xe9, + 0xe2, 0x32, 0x2e, 0xa6, 0xaa, 0x39, 0x86, 0xd7, + 0x6d, 0x37, 0xcc, 0x62, 0x9b, 0x5d, 0x96, 0x59, + 0x84, 0x2a, 0x75, 0xac, 0x74, 0x13, 0x52, 0xc5, + 0x08, 0xf0, 0x8a, 0xdc, 0x87, 0x59, 0x62, 0xdc, + 0xa7, 0x3a, 0x72, 0xdc, 0x4b, 0xc3, 0xf4, 0xc3, + 0x1a, 0x99, 0x5d, 0xc7, 0xe3, 0x2f, 0x5e, 0x79, + 0xf6, 0xa2, 0xc3, 0xd5, 0x54, 0x91, 0xe5, 0x7c, + 0x1f, 0xd9, 0xa3, 0xa3, 0x6e, 0xdb, 0x56, 0xe4, + 0x63, 0x6a, 0x31, 0xec, 0x01, 0x51, 0xa7, 0x29, + 0x69, 0xc3, 0xe6, 0xf3, 0xaf, 0x23, 0x93, 0x1c, + 0x46, 0x3d, 0x2f, 0x8b, 0x79, 0xdb, 0xbd, 0x52, + 0xaf, 0x6a, 0x31, 0x35, 0xaa, 0xd8, 0x73, 0x57, + 0x52, 0xc8, 0xc6, 0xd5, 0x4d, 0x96, 0xc6, 0xa7, + 0x6a, 0xb3, 0x32, 0x04, 0xbc, 0x74, 0x5c, 0x84, + 0x90, 0xbc, 0xd4, 0x51, 0x4e, 0xc6, 0x47, 0xb4, + 0x4b, 0x1c, 0xdb, 0xc5, 0x51, 0x97, 0x06, 0x02, + 0xf3, 0xb1, 0x13, 0x90, 0xb3, 0xe0, 0x37, 0xdf, + 0x08, 0x05, 0x72, 0x5f, 0x76, 0x23, 0xb1, 0x32, + 0xd8, 0xca, 0xc0, 0xfa, 0xc4, 0x5d, 0x60, 0x17, + 0x4b, 0x06, 0x30, 0x19, 0x66, 0xde, 0xb4, 0xe5, + 0x71, 0x27, 0x15, 0x71, 0x37, 0x0f, 0xbb, 0x1b, + 0x33, 0x05, 0x42, 0xa5, 0x2c, 0x7a, 0xf8, 0x8c, + 0xf1, 0x2c, 0xaa, 0x98, 0x0d, 0xd3, 0x61, 0x03, + 0xc3, 0x4a, 0xed, 0x76, 0x3a, 0x93, 0xda, 0x4f, + 0x21, 0x74, 0x9b, 0x06, 0x31, 0x4e, 0x2b, 0x60, + 0xa9, 0xe2, 0xdf, 0x08, 0x48, 0xf1, 0x37, 0x0c, + 0xa3, 0x38, 0xe8, 0x18, 0x26, 0x32, 0xb6, 0x57, + 0x24, 0xba, 0xcb, 0xc5, 0x28, 0xb9, 0xe3, 0xa0, + 0x56, 0x17, 0x2c, 0xb5, 0x69, 0xdc, 0xa4, 0x63, + 0x5d, 0x49, 0x48, 0x0c, 0x76, 0xee, 0xb2, 0x6f, + 0x54, 0xb6, 0x72, 0xeb, 0x78, 0x5c, 0xb5, 0xdc, + 0x33, 0xac, 0x4e, 0xdc, 0xd6, 0x82, 0xbc, 0x26, + 0xcd, 0x1b, 0x4c, 0xd8, 0x44, 0x7a, 0xef, 0xc6, + 0x5c, 0xa4, 0x76, 0xf9, 0x46, 0x03, 0xb5, 0xf5, + 0xf9, 0x20, 0x43, 0x96, 0x23, 0x4c, 0xff, 0x00, + 0x30, 0x5f, 0xac, 0x56, 0xb0, 0xff, 0x00, 0x8d, + 0x57, 0xfb, 0x2d, 0xbd, 0x07, 0xbd, 0x1a, 0x3f, + 0x7a, 0x75, 0x67, 0xf1, 0x96, 0x43, 0xf6, 0x82, + 0xd0, 0x7f, 0x9e, 0x1f, 0xfc, 0x0c, 0xd5, 0x0f, + 0xf3, 0xb3, 0xfa, 0xa3, 0xd0, 0xff, 0x00, 0x93, + 0x1f, 0xf7, 0x7f, 0x72, 0xe5, 0xbf, 0x1f, 0xd0, + 0xfe, 0x4e, 0xb7, 0xf5, 0x2b, 0x7e, 0x10, 0x9f, + 0xd6, 0x0e, 0xb8, 0x9b, 0xfd, 0x21, 0xcd, 0xff, + 0x00, 0x29, 0xda, 0xfa, 0xae, 0xc3, 0xda, 0xba, + 0xac, 0x6b, 0x43, 0x26, 0x19, 0x4a, 0x96, 0xac, + 0xa6, 0xe3, 0xaa, 0x33, 0x9a, 0xb4, 0xd3, 0xb3, + 0x55, 0xde, 0x0f, 0xad, 0x76, 0xd2, 0x9b, 0xb7, + 0x45, 0xf5, 0xd8, 0x35, 0x58, 0xa2, 0xe4, 0x7a, + 0x9a, 0x4a, 0x92, 0x51, 0x4b, 0x25, 0x77, 0xed, + 0x62, 0x9f, 0x8f, 0xab, 0x86, 0xab, 0x82, 0xcb, + 0xb0, 0x2d, 0x0a, 0xe4, 0x71, 0x35, 0x7b, 0x33, + 0xca, 0xe2, 0xb1, 0xc3, 0x6a, 0xf5, 0x46, 0x5b, + 0x31, 0x0b, 0x14, 0xdd, 0x59, 0x76, 0x0a, 0xb4, + 0x84, 0x29, 0xc2, 0x3c, 0xf2, 0xc0, 0xcb, 0x55, + 0x76, 0x5d, 0x29, 0xb9, 0x61, 0x5c, 0x34, 0x05, + 0x95, 0xb9, 0x57, 0x27, 0xd3, 0xcb, 0x58, 0xc4, + 0x85, 0xf0, 0xbb, 0x6c, 0xbb, 0x0e, 0x3e, 0xe5, + 0xa1, 0x92, 0xed, 0x08, 0x04, 0xb2, 0xdd, 0x64, + 0x58, 0xb2, 0xb5, 0xc3, 0xac, 0x02, 0x9c, 0x4c, + 0x58, 0x57, 0x8a, 0xcd, 0x9b, 0x31, 0x53, 0x17, + 0x4b, 0x1e, 0x77, 0x24, 0x18, 0xbe, 0xd8, 0xda, + 0xa9, 0xe9, 0x93, 0x80, 0x5d, 0x02, 0xf8, 0x4c, + 0x77, 0x22, 0xbc, 0xbc, 0x14, 0xe2, 0x42, 0x56, + 0x4c, 0x52, 0x66, 0x7a, 0x41, 0x92, 0xbd, 0x4d, + 0x92, 0xda, 0xd6, 0x2c, 0x0b, 0x12, 0x44, 0x2c, + 0x5f, 0x30, 0x8a, 0x94, 0x3e, 0xe1, 0x82, 0x26, + 0x3e, 0x30, 0xcc, 0x78, 0xc3, 0x13, 0xf7, 0x75, + 0x95, 0xcc, 0xce, 0x50, 0xc8, 0xf3, 0x59, 0xec, + 0x06, 0x4e, 0x29, 0xc6, 0x3a, 0xf4, 0x1d, 0x1a, + 0xb4, 0xb2, 0x0a, 0xb9, 0x6c, 0x2d, 0x37, 0xa3, + 0x2a, 0x3b, 0x4b, 0xe6, 0x60, 0x8a, 0xe9, 0x95, + 0x94, 0x18, 0x27, 0x9c, 0x2c, 0x1b, 0x1c, 0x29, + 0x0e, 0x1f, 0x30, 0x79, 0x4c, 0xa3, 0x25, 0xc3, + 0xed, 0xc9, 0x4f, 0x67, 0xb1, 0x1d, 0x9e, 0xa6, + 0x14, 0x9c, 0x7e, 0x2e, 0xeb, 0xf6, 0xee, 0xa3, + 0x2f, 0x38, 0xa4, 0x13, 0x06, 0x7f, 0xbd, 0x43, + 0x6f, 0x76, 0x31, 0x3c, 0x4a, 0x6e, 0x71, 0x40, + 0x64, 0x57, 0x23, 0x4f, 0xda, 0xda, 0x5d, 0x49, + 0xf0, 0xed, 0x2b, 0xbd, 0xf1, 0x03, 0x3d, 0x3f, + 0xde, 0xc9, 0x61, 0xfb, 0x67, 0x2f, 0x93, 0x93, + 0xdd, 0xcc, 0x0c, 0xe3, 0x73, 0x53, 0x69, 0x95, + 0x52, 0x11, 0xc5, 0x0c, 0xa6, 0x0d, 0xa5, 0x73, + 0xfb, 0x27, 0x49, 0x76, 0x32, 0xf7, 0x02, 0xfd, + 0x57, 0x42, 0x65, 0x0b, 0x4a, 0xc6, 0xdb, 0x42, + 0xf8, 0x5d, 0x65, 0x57, 0xd5, 0x2a, 0xf1, 0xc8, + 0xa7, 0xf5, 0xc7, 0x96, 0x81, 0x4b, 0x8b, 0x64, + 0x70, 0x5d, 0xcc, 0x3b, 0x3d, 0xa5, 0xdd, 0xd9, + 0x07, 0x55, 0xc8, 0xa9, 0x69, 0xf7, 0x1d, 0xf1, + 0x27, 0x61, 0x51, 0xd5, 0x8d, 0xd3, 0x1c, 0xdb, + 0xc9, 0xc4, 0x09, 0x6c, 0xe9, 0x66, 0x45, 0xd8, + 0x7c, 0xaa, 0x5d, 0x5a, 0xc6, 0x33, 0x25, 0x1d, + 0xb2, 0x6b, 0x2f, 0xa7, 0xd4, 0xed, 0x0a, 0x6c, + 0xe3, 0x93, 0x62, 0xf5, 0x77, 0xcc, 0xca, 0x5b, + 0x56, 0xcd, 0x74, 0x37, 0x94, 0x94, 0x6b, 0x67, + 0x4e, 0x0c, 0x58, 0x3c, 0x40, 0xe7, 0x65, 0x02, + 0xac, 0x0d, 0xee, 0x11, 0x53, 0xb2, 0x96, 0x6a, + 0x5d, 0x20, 0xc9, 0x5c, 0xaf, 0x8f, 0xcb, 0x22, + 0xcd, 0xa6, 0xa6, 0xa5, 0x77, 0xdb, 0x8e, 0xd1, + 0xb3, 0x1a, 0xa3, 0x65, 0x61, 0x63, 0x64, 0x16, + 0x56, 0xc6, 0xbb, 0x5a, 0xc9, 0x00, 0x57, 0x6c, + 0xaf, 0x8a, 0x5d, 0x1c, 0xbb, 0x2c, 0xad, 0x97, + 0xf8, 0x7e, 0x9e, 0x65, 0xd6, 0xf1, 0xac, 0xab, + 0x42, 0xbf, 0x35, 0x41, 0x76, 0x3b, 0x28, 0x34, + 0xf2, 0xe1, 0x38, 0xe8, 0x3e, 0x99, 0x32, 0xa5, + 0x36, 0xf6, 0x90, 0xea, 0xdc, 0xde, 0xbe, 0xb1, + 0xd7, 0x19, 0x94, 0x8a, 0x36, 0xb1, 0x85, 0x91, + 0x96, 0x8b, 0xb8, 0x7f, 0x15, 0x90, 0xcc, 0x5c, + 0x26, 0x5d, 0xb5, 0x90, 0xa3, 0x67, 0x19, 0x91, + 0x66, 0x1e, 0xd5, 0x5a, 0x76, 0x5a, 0xcb, 0x5d, + 0x2b, 0x82, 0xc7, 0xd0, 0xad, 0x59, 0x8b, 0x2b, + 0x35, 0x14, 0xde, 0xa7, 0x2e, 0xad, 0xe5, 0x2c, + 0x64, 0x3a, 0x16, 0xdd, 0xc2, 0x16, 0x30, 0x71, + 0x8c, 0x8a, 0x56, 0xc9, 0x93, 0x91, 0x8c, 0x77, + 0x83, 0x96, 0x62, 0xe5, 0x20, 0xa9, 0x0d, 0x27, + 0xad, 0x6b, 0x6c, 0x32, 0x6c, 0x0b, 0x81, 0xcc, + 0x25, 0x32, 0xb0, 0x28, 0x3a, 0xe5, 0xf5, 0x78, + 0x67, 0xfc, 0xf7, 0x10, 0x7f, 0x2a, 0x17, 0xee, + 0x37, 0x9e, 0xf9, 0xfe, 0x3f, 0xa8, 0x41, 0x3e, + 0x43, 0x12, 0x19, 0xdb, 0xcb, 0xb1, 0x46, 0xdd, + 0xdf, 0xc7, 0xae, 0x19, 0x5d, 0x5c, 0xe6, 0x6e, + 0x84, 0x70, 0xa5, 0x08, 0xa3, 0x8c, 0x94, 0x86, + 0x02, 0xd7, 0x34, 0xc5, 0x65, 0x53, 0x8b, 0xd6, + 0x57, 0x95, 0xc0, 0xe4, 0x51, 0x39, 0x01, 0xac, + 0xb9, 0x48, 0x59, 0xae, 0xaa, 0xdd, 0x20, 0x7d, + 0x91, 0x50, 0x04, 0x3c, 0xe2, 0x65, 0xee, 0xc9, + 0x65, 0x9b, 0x5d, 0xd7, 0xb1, 0xd9, 0x5c, 0x86, + 0x30, 0x8b, 0x1d, 0x18, 0xfc, 0xa6, 0x63, 0x14, + 0x35, 0x7b, 0x26, 0x4e, 0xd8, 0x86, 0x34, 0x2c, + 0xa9, 0xd0, 0x74, 0x28, 0xb9, 0xb5, 0x71, 0xd6, + 0xa8, 0x62, 0xdc, 0xea, 0x69, 0x63, 0x28, 0x14, + 0xf5, 0x3a, 0x99, 0x0c, 0x45, 0xb6, 0x3c, 0x2b, + 0xe4, 0xa9, 0xbe, 0x93, 0x98, 0x82, 0x08, 0xb0, + 0x0a, 0x78, 0x48, 0x14, 0xa4, 0x9a, 0xb7, 0x2c, + 0x4e, 0x22, 0x77, 0x1e, 0x75, 0x30, 0x77, 0xf2, + 0x84, 0xe9, 0x36, 0x02, 0xed, 0xec, 0x5d, 0xea, + 0xe2, 0xf5, 0xa7, 0x21, 0x8d, 0x9a, 0x9d, 0xa0, + 0x11, 0x6b, 0x93, 0xb4, 0xd7, 0x95, 0xe4, 0x2a, + 0x64, 0x29, 0x35, 0x2e, 0xe9, 0xac, 0xa4, 0x5f, + 0x51, 0xa4, 0xb6, 0x29, 0x6e, 0x41, 0x29, 0xc0, + 0x2c, 0x88, 0x64, 0xe6, 0x72, 0xb9, 0x72, 0x56, + 0x42, 0xe6, 0x45, 0x0f, 0xc9, 0xf6, 0x43, 0xbe, + 0x4c, 0xbf, 0x8f, 0xa9, 0x8f, 0xb2, 0x19, 0x1b, + 0xa8, 0xae, 0x9f, 0x08, 0x08, 0x0d, 0x40, 0xec, + 0x45, 0x09, 0xaa, 0x75, 0x11, 0xc9, 0x4e, 0x65, + 0xe9, 0x4a, 0xb6, 0xbb, 0x9b, 0x13, 0x74, 0xda, + 0xbf, 0x8e, 0xc6, 0xe3, 0x5a, 0xb9, 0x95, 0xf6, + 0x71, 0x46, 0x2e, 0xc6, 0x4e, 0xca, 0x0d, 0x63, + 0x0b, 0x86, 0xc3, 0x8c, 0xf2, 0xb6, 0x21, 0xd2, + 0x4e, 0x30, 0x21, 0x04, 0xf2, 0x2d, 0x72, 0x2c, + 0x26, 0x61, 0xf2, 0x35, 0x62, 0x0a, 0xc6, 0x2e, + 0xe1, 0x73, 0xa8, 0x8a, 0x02, 0x1f, 0x8f, 0xbe, + 0xa9, 0xa9, 0x78, 0x20, 0xe6, 0x27, 0x95, 0x89, + 0x89, 0x4d, 0xf5, 0x7f, 0xef, 0x4a, 0x97, 0x67, + 0xdc, 0x7a, 0xfc, 0xe3, 0x98, 0xb5, 0x62, 0x5e, + 0xcf, 0x0e, 0x62, 0x29, 0xe1, 0x6e, 0xa7, 0xa9, + 0x00, 0x98, 0xa9, 0x45, 0x99, 0x36, 0x2c, 0x91, + 0x20, 0x02, 0xf5, 0x58, 0x29, 0xca, 0xd8, 0xe7, + 0x6f, 0x5c, 0xb6, 0xe9, 0xa2, 0x54, 0x0a, 0x30, + 0x32, 0x61, 0x46, 0x62, 0xf6, 0x4f, 0x3b, 0x0f, + 0xb5, 0x4a, 0xcd, 0xf1, 0xca, 0x16, 0x3a, 0x55, + 0x93, 0x5e, 0x31, 0x4f, 0x1c, 0x55, 0x1b, 0xd5, + 0xe9, 0x63, 0xa9, 0x57, 0x3a, 0x18, 0xe7, 0xd9, + 0x66, 0x41, 0x29, 0x4a, 0x90, 0x4f, 0xc8, 0xf2, + 0xda, 0xbe, 0xcb, 0x86, 0x3a, 0xe1, 0xca, 0xcc, + 0xb9, 0x90, 0xb1, 0x1c, 0x31, 0x74, 0x2f, 0x51, + 0x6b, 0xda, 0x83, 0x7b, 0xcd, 0x58, 0xec, 0x8e, + 0x2d, 0x4a, 0xbe, 0x7d, 0x9a, 0x3a, 0xea, 0x0a, + 0x99, 0x26, 0x46, 0xe0, 0x29, 0xb0, 0x66, 0x94, + 0x31, 0xaf, 0x61, 0x75, 0xfa, 0xef, 0x47, 0x85, + 0xb3, 0x7d, 0x9e, 0x68, 0x5b, 0xc5, 0x50, 0x4c, + 0x3e, 0x8c, 0x46, 0x1b, 0x1f, 0x7d, 0xa9, 0x65, + 0xea, 0xd8, 0xd6, 0xf8, 0x3b, 0xb4, 0xcf, 0x69, + 0x0a, 0xeb, 0xad, 0xd7, 0xc8, 0xbf, 0x21, 0x6a, + 0xad, 0x68, 0xe9, 0xd0, 0x7d, 0x5d, 0x84, 0x87, + 0x33, 0xc3, 0xb5, 0x4e, 0xdd, 0x4c, 0x36, 0x63, + 0xb5, 0xf2, 0xd1, 0xae, 0x55, 0xc5, 0x38, 0x80, + 0xbc, 0xa8, 0x0b, 0x49, 0xc3, 0xc1, 0x56, 0x3e, + 0xcb, 0x5d, 0x8d, 0xea, 0x5c, 0x8a, 0xee, 0xed, + 0x29, 0x55, 0x97, 0xba, 0x50, 0x0b, 0x49, 0xf4, + 0x60, 0x2a, 0x58, 0xcc, 0x65, 0x6a, 0xd6, 0x0b, + 0xf4, 0xef, 0xc2, 0x6a, 0x06, 0x14, 0xd4, 0x53, + 0x49, 0x7b, 0x2e, 0xa5, 0x84, 0xe4, 0x30, 0xf7, + 0xd5, 0x76, 0x89, 0xd8, 0xe5, 0xbc, 0xda, 0xf7, + 0x42, 0xc7, 0x35, 0xa5, 0xaf, 0x62, 0x1a, 0xeb, + 0x1a, 0xf0, 0x91, 0x76, 0x59, 0xf9, 0x1a, 0xab, + 0xaa, 0xf1, 0x6b, 0x2e, 0xab, 0x1a, 0xbb, 0xb6, + 0x6d, 0xb2, 0xc0, 0x1a, 0x58, 0x63, 0x8c, 0xc5, + 0x63, 0x6a, 0xa9, 0x75, 0x6b, 0xc1, 0xa0, 0x7a, + 0x22, 0x10, 0xe8, 0x60, 0xcb, 0x93, 0x2d, 0x57, + 0x5d, 0xbd, 0xbd, 0x77, 0x72, 0x3d, 0x35, 0x5a, + 0xc9, 0xdf, 0xa1, 0x8d, 0x22, 0xa5, 0x38, 0xec, + 0x5e, 0x4b, 0x33, 0x0d, 0xf0, 0x9e, 0x42, 0x90, + 0xf6, 0x2e, 0xd7, 0x2f, 0xb3, 0x36, 0x6e, 0x1f, + 0x25, 0xdb, 0x97, 0x2a, 0x57, 0x2b, 0xd7, 0x22, + 0xad, 0x64, 0x03, 0xc8, 0x75, 0x4e, 0xce, 0x4b, + 0x19, 0x4a, 0xde, 0x46, 0x9d, 0xcc, 0x5d, 0xe2, + 0xca, 0x1e, 0x33, 0x11, 0x39, 0x3b, 0xcc, 0xc5, + 0x31, 0x6d, 0x52, 0x6e, 0x5a, 0x2c, 0x7f, 0x8f, + 0x5a, 0xc7, 0x48, 0x55, 0x65, 0x0b, 0x84, 0x2e, + 0x53, 0x3d, 0x24, 0xf6, 0x70, 0x81, 0xe5, 0xb0, + 0x76, 0xb9, 0x7b, 0x7e, 0x4f, 0x21, 0x73, 0x2d, + 0x7f, 0x92, 0x79, 0x96, 0xbb, 0x17, 0x0e, 0x3a, + 0x75, 0x56, 0x7c, 0xa3, 0xce, 0xba, 0x14, 0x95, + 0x53, 0x1e, 0x0d, 0xe5, 0x19, 0x70, 0xd5, 0xeb, + 0x48, 0x8c, 0xb3, 0x96, 0x34, 0xcf, 0xf3, 0x05, + 0xfa, 0xc5, 0x6b, 0x11, 0xf8, 0xd5, 0x7f, 0xb2, + 0xdb, 0xd0, 0x7b, 0xd1, 0xa3, 0xf7, 0xa7, 0x56, + 0x7f, 0x19, 0x64, 0x3f, 0x68, 0x2d, 0x07, 0xf9, + 0xf1, 0xff, 0x00, 0xc0, 0xcd, 0x50, 0xff, 0x00, + 0x3b, 0x3f, 0xaa, 0x3d, 0x0f, 0xf9, 0x31, 0xff, + 0x00, 0x77, 0xee, 0x54, 0x91, 0xb3, 0x46, 0x32, + 0x4f, 0xad, 0xda, 0xeb, 0x61, 0xc8, 0xec, 0xf8, + 0x46, 0xc2, 0x65, 0x5d, 0x70, 0xe4, 0xe5, 0xaa, + 0x54, 0x05, 0xed, 0x46, 0xee, 0x4d, 0x37, 0x5e, + 0x55, 0xc7, 0x04, 0x47, 0x4e, 0xb9, 0x13, 0x12, + 0x2c, 0xc6, 0xa4, 0xb3, 0x38, 0x74, 0xdb, 0xca, + 0xd7, 0xab, 0x62, 0x9d, 0x37, 0x78, 0x5e, 0x18, + 0x51, 0x77, 0x78, 0xaa, 0xb3, 0x78, 0x62, 0x19, + 0x41, 0x4c, 0x69, 0x47, 0x27, 0x8f, 0x72, 0x16, + 0x25, 0x31, 0xd4, 0x60, 0xc7, 0x7e, 0x85, 0xb7, + 0x2e, 0x51, 0xc5, 0x03, 0x6d, 0x3a, 0x95, 0x79, + 0xc8, 0x95, 0xa8, 0x9b, 0x16, 0x2b, 0x9c, 0x2e, + 0xc0, 0xae, 0x29, 0xd4, 0xb9, 0x22, 0xa4, 0x30, + 0xa1, 0x6d, 0xb4, 0xf8, 0x4d, 0x41, 0x3d, 0xc7, + 0xaf, 0xb8, 0x1c, 0x0b, 0xea, 0x59, 0x5c, 0xaa, + 0xc5, 0x66, 0x9a, 0x5c, 0xb9, 0x98, 0x9e, 0x56, + 0x2e, 0x76, 0x28, 0xdc, 0x66, 0x44, 0xbf, 0x88, + 0x86, 0x64, 0x4a, 0x3b, 0xe2, 0x66, 0x35, 0x8f, + 0x9b, 0x72, 0x82, 0xf0, 0x8d, 0x20, 0xba, 0xae, + 0x81, 0x99, 0xf4, 0xb9, 0xa6, 0x60, 0xeb, 0x3f, + 0x99, 0x6b, 0xe5, 0xb6, 0x8f, 0x12, 0x5c, 0xb0, + 0xea, 0x00, 0xc3, 0x57, 0x30, 0xd2, 0xe6, 0xee, + 0xdf, 0x78, 0xdb, 0xef, 0xef, 0xad, 0xf7, 0x8d, + 0xbe, 0xfe, 0xfa, 0xa7, 0x91, 0x33, 0x57, 0x42, + 0xeb, 0xae, 0x21, 0x43, 0x04, 0x5d, 0x51, 0x2a, + 0x5d, 0x0e, 0xac, 0xb2, 0x24, 0x20, 0x20, 0x4b, + 0xb4, 0x07, 0x4e, 0x45, 0x87, 0x33, 0xb1, 0x73, + 0x40, 0x77, 0x73, 0x79, 0x63, 0xf2, 0xe9, 0x55, + 0xd3, 0x1c, 0xee, 0x73, 0x01, 0x4b, 0x5c, 0x4c, + 0x6e, 0x4c, 0x61, 0x40, 0x00, 0xf7, 0xcf, 0x76, + 0xe4, 0x51, 0x1d, 0xff, 0x00, 0x7f, 0x46, 0xa3, + 0xda, 0x18, 0x06, 0x40, 0x43, 0xbc, 0x4f, 0x8c, + 0x13, 0x22, 0x5e, 0x4f, 0x2e, 0xd3, 0x13, 0xe4, + 0xd7, 0x96, 0x3f, 0x73, 0x96, 0xfc, 0x7f, 0x43, + 0xf9, 0x3a, 0xdf, 0xd4, 0xad, 0xf8, 0x42, 0x7f, + 0x58, 0x3a, 0xe2, 0x68, 0x9e, 0xef, 0xfd, 0xa0, + 0xcc, 0xcf, 0xfc, 0xc5, 0x91, 0xb0, 0x43, 0xf9, + 0x46, 0x62, 0x7f, 0x70, 0x93, 0x53, 0x6b, 0x26, + 0x2c, 0xdd, 0xec, 0x15, 0xfb, 0x49, 0xb4, 0x65, + 0xee, 0x0a, 0xc7, 0x69, 0xe4, 0xb8, 0x52, 0x5d, + 0xed, 0x55, 0x57, 0x0a, 0xeb, 0x99, 0x72, 0xec, + 0x76, 0xab, 0x88, 0x41, 0xf3, 0x1f, 0x26, 0x43, + 0x26, 0x06, 0xa8, 0x46, 0x35, 0xb4, 0x14, 0xf0, + 0x29, 0x3e, 0xb1, 0x96, 0x40, 0xde, 0x09, 0x94, + 0xc4, 0x2e, 0x40, 0xa0, 0x65, 0x05, 0xd5, 0xe7, + 0x62, 0xe6, 0x22, 0x47, 0x92, 0x0f, 0xbf, 0x6f, + 0x2c, 0x77, 0x79, 0x7b, 0xfc, 0x9a, 0xb5, 0x65, + 0x63, 0xcc, 0x8a, 0x40, 0xa6, 0x59, 0x67, 0x30, + 0xec, 0xb1, 0x73, 0x82, 0xba, 0xbc, 0xb3, 0xb9, + 0x49, 0xb4, 0xe0, 0x62, 0x07, 0x79, 0xf2, 0xcf, + 0x90, 0x66, 0x75, 0x5e, 0x72, 0x19, 0x8c, 0x3e, + 0x3c, 0xec, 0xb1, 0xaa, 0x5a, 0xac, 0x78, 0x5c, + 0x8a, 0x18, 0x89, 0x50, 0xb8, 0x5a, 0xca, 0xb8, + 0x8b, 0x35, 0xd3, 0xd2, 0x63, 0x61, 0x4c, 0x96, + 0xbc, 0x04, 0x48, 0x4e, 0x64, 0xba, 0x63, 0xcf, + 0xa7, 0xd2, 0xb8, 0x1d, 0x0b, 0x35, 0x9a, 0x48, + 0x72, 0x8a, 0x63, 0x71, 0x60, 0x4e, 0xd3, 0x11, + 0x31, 0x32, 0x25, 0x13, 0xe5, 0x12, 0x09, 0x91, + 0x31, 0x98, 0x21, 0x99, 0x19, 0x89, 0xd7, 0x79, + 0x44, 0x77, 0xc4, 0x4c, 0xcf, 0x90, 0x7d, 0xfd, + 0xb7, 0x9e, 0xef, 0xe2, 0x89, 0x9f, 0xbd, 0x13, + 0x3a, 0x7e, 0x31, 0x19, 0x6b, 0x33, 0x8e, 0x63, + 0x0a, 0x4a, 0xb5, 0x7b, 0x77, 0x15, 0x8f, 0xb7, + 0xdf, 0x1e, 0xdf, 0xd8, 0xd9, 0xd0, 0x83, 0xe7, + 0xe9, 0x81, 0x44, 0xd8, 0xac, 0x0d, 0xd8, 0x43, + 0x9c, 0x04, 0x87, 0x68, 0xdb, 0x78, 0xdf, 0xef, + 0x7d, 0xdd, 0x15, 0x8b, 0x56, 0xa9, 0x50, 0xa8, + 0x01, 0x52, 0x4a, 0xdd, 0xa9, 0xb5, 0x2a, 0xeb, + 0x5d, 0xaf, 0x16, 0x91, 0x54, 0x17, 0x52, 0xa5, + 0xab, 0x6e, 0xb3, 0xd0, 0x28, 0x63, 0x05, 0x15, + 0x9a, 0x09, 0x09, 0x83, 0x6b, 0x00, 0x08, 0x4a, + 0x57, 0x83, 0xf0, 0xc5, 0x1a, 0xbe, 0x13, 0x65, + 0x16, 0x52, 0x06, 0x37, 0x2a, 0x74, 0x33, 0x12, + 0xd9, 0x72, 0xe9, 0xd9, 0x4c, 0xd2, 0xc7, 0xda, + 0x57, 0xb5, 0xc9, 0x34, 0x20, 0xef, 0x85, 0x56, + 0xd7, 0x26, 0x35, 0x52, 0x20, 0xc8, 0xb0, 0x01, + 0x62, 0x55, 0x93, 0xc7, 0x32, 0x95, 0x35, 0x81, + 0xdc, 0xc9, 0xf2, 0xe5, 0x17, 0x4a, 0xb1, 0x34, + 0xcd, 0x6a, 0x41, 0x03, 0xf1, 0x8a, 0xbe, 0xd7, + 0xb4, 0xc3, 0x65, 0xae, 0xad, 0x1b, 0x1c, 0xf1, + 0xb9, 0x44, 0xf2, 0x2d, 0xc4, 0xa8, 0x35, 0x3e, + 0xa5, 0xb4, 0x33, 0x1f, 0x67, 0x27, 0x52, 0xc5, + 0x72, 0xb1, 0xd2, 0xbb, 0x5e, 0x91, 0xc8, 0x5d, + 0x1a, 0xf0, 0xea, 0xc9, 0x70, 0x3e, 0x9f, 0x2b, + 0x0e, 0xc2, 0x2d, 0xaa, 0xb3, 0x01, 0x4a, 0x23, + 0xda, 0x60, 0x95, 0xd4, 0xfd, 0xc7, 0x0b, 0xef, + 0xf7, 0x5b, 0x9f, 0x28, 0xf7, 0xbc, 0x2a, 0x71, + 0xbf, 0xfd, 0x53, 0xfd, 0xd2, 0xcf, 0xf3, 0x05, + 0xfa, 0xc5, 0x6b, 0x11, 0xf8, 0xd5, 0x7f, 0xb2, + 0xdb, 0xd0, 0x7b, 0xd1, 0xa3, 0xf7, 0xa7, 0x56, + 0x7f, 0x19, 0x64, 0x3f, 0x68, 0x2d, 0x07, 0xf9, + 0xe1, 0xff, 0x00, 0xc0, 0xcd, 0x52, 0x79, 0xce, + 0xc0, 0xbb, 0x0b, 0xe7, 0x9f, 0x27, 0x28, 0x14, + 0xf2, 0x19, 0x7f, 0xf7, 0x22, 0x53, 0x3f, 0xf3, + 0x6b, 0x23, 0x8c, 0x68, 0xf2, 0x95, 0x3b, 0x8f, + 0x50, 0xf7, 0x6d, 0xcc, 0xae, 0x79, 0x94, 0x32, + 0x3f, 0x89, 0x89, 0x90, 0x38, 0xfe, 0x22, 0xfd, + 0xcf, 0x84, 0xa2, 0x4a, 0xbe, 0x0a, 0xdd, 0x7a, + 0xd6, 0x99, 0x9a, 0xe8, 0xcb, 0xa8, 0xd1, 0x42, + 0xe9, 0x2a, 0x1c, 0xb6, 0x98, 0x92, 0xd7, 0xdb, + 0x10, 0xc0, 0x9a, 0xc3, 0x8f, 0x96, 0xaa, 0xcb, + 0x5d, 0xd3, 0x5a, 0x83, 0xdb, 0x17, 0xbf, 0x0b, + 0xd5, 0xb5, 0x5c, 0x13, 0x71, 0xbc, 0x3b, 0x89, + 0xf0, 0x5e, 0x51, 0xac, 0x77, 0x4a, 0xbe, 0x53, + 0x95, 0x85, 0x8c, 0x9b, 0xb5, 0x7a, 0x9d, 0x16, + 0xd4, 0xed, 0x30, 0x00, 0xc8, 0x8d, 0xa7, 0x73, + 0x12, 0x22, 0x20, 0x12, 0x8d, 0x61, 0x81, 0x15, + 0x2c, 0x5a, 0xbb, 0x8c, 0x8c, 0x86, 0x23, 0x30, + 0x85, 0x2e, 0x58, 0xea, 0x59, 0x0f, 0x0c, 0x5e, + 0xb8, 0x4f, 0xb6, 0x01, 0x1e, 0xd3, 0x5a, 0xc8, + 0x5d, 0x13, 0x8b, 0x67, 0x01, 0x5f, 0x9d, 0x6f, + 0x12, 0x64, 0x4a, 0xa7, 0x55, 0xb0, 0xe8, 0xb1, + 0x17, 0x6b, 0xf6, 0xf8, 0x5b, 0x2d, 0xac, 0x79, + 0x00, 0xea, 0x57, 0xdd, 0xb7, 0x6c, 0x84, 0x41, + 0xbb, 0xda, 0x97, 0x59, 0x4f, 0x64, 0x17, 0x31, + 0x41, 0x00, 0x41, 0x47, 0x97, 0x6d, 0x0d, 0x92, + 0x43, 0x55, 0x5b, 0x19, 0xc5, 0x75, 0xf2, 0x56, + 0x03, 0x21, 0x6d, 0x17, 0x11, 0x14, 0x33, 0x2c, + 0x1a, 0x93, 0xe4, 0xa1, 0x46, 0x2b, 0xe3, 0x82, + 0xe5, 0x7c, 0x70, 0xb9, 0x2e, 0x97, 0xc7, 0x2d, + 0x89, 0xdc, 0xf6, 0xe7, 0xe6, 0xb6, 0xec, 0xa1, + 0xb2, 0x78, 0x92, 0x28, 0xe4, 0xfe, 0xb7, 0x97, + 0x64, 0x1b, 0xf5, 0xc4, 0x3b, 0x5b, 0xc7, 0xf6, + 0xb6, 0x51, 0x83, 0x5f, 0x5f, 0xb3, 0xc5, 0x49, + 0xc8, 0x8e, 0x12, 0x11, 0x3c, 0xe0, 0xc1, 0xbf, + 0x38, 0xe0, 0x08, 0x8e, 0x6d, 0x59, 0x3e, 0x96, + 0x42, 0xe7, 0x13, 0x15, 0x9c, 0x47, 0x84, 0xbe, + 0xb7, 0x6d, 0xc5, 0x2c, 0xc2, 0x6b, 0x15, 0x22, + 0xe9, 0xab, 0x2e, 0x4c, 0xc4, 0xde, 0x6b, 0x18, + 0x4f, 0x8f, 0xec, 0xdc, 0x6d, 0x0a, 0x2b, 0x5d, + 0x2f, 0x08, 0xb5, 0x8d, 0xdc, 0x61, 0xcc, 0xaf, + 0x40, 0x95, 0x7e, 0x1d, 0xc5, 0x85, 0x88, 0xa1, + 0x8b, 0xbd, 0x56, 0x6d, 0x26, 0xd4, 0x5c, 0xc1, + 0xf6, 0xb1, 0xc3, 0x5e, 0x5d, 0x0b, 0x15, 0xca, + 0xe2, 0x69, 0xf6, 0xb2, 0xaa, 0x75, 0x29, 0x4b, + 0x3a, 0x70, 0x71, 0x4a, 0x16, 0xce, 0x46, 0x86, + 0x62, 0xca, 0xab, 0xbf, 0x13, 0x95, 0x8a, 0x3c, + 0x3a, 0x8b, 0x6f, 0xb5, 0x6e, 0xad, 0xfc, 0x9b, + 0x66, 0xc5, 0x8c, 0x9e, 0xf6, 0xb2, 0x0c, 0x5d, + 0x1a, 0x9d, 0x97, 0x24, 0xea, 0x84, 0x35, 0xad, + 0x43, 0x6b, 0x8d, 0xd2, 0x47, 0x7d, 0x99, 0x93, + 0xb0, 0xc9, 0x2b, 0xc0, 0x7e, 0x13, 0x8a, 0x98, + 0xc9, 0xe1, 0x76, 0xd1, 0xb8, 0xeb, 0x31, 0x5b, + 0x0f, 0xb8, 0x65, 0x31, 0x09, 0x6d, 0xbe, 0x1a, + 0xc6, 0xa5, 0x2b, 0x45, 0x3a, 0xc5, 0x4d, 0xf6, + 0x41, 0xf6, 0xab, 0xda, 0xb6, 0xc7, 0xa2, 0xcf, + 0xef, 0xa6, 0x03, 0x2d, 0xb9, 0x65, 0x8e, 0x03, + 0x8b, 0x93, 0x81, 0x24, 0xe4, 0x3e, 0xbb, 0x7b, + 0x74, 0x32, 0x6a, 0xcd, 0xee, 0xd9, 0x7a, 0x2f, + 0xce, 0x72, 0x5f, 0xdd, 0xda, 0xd5, 0x52, 0x31, + 0xfe, 0x08, 0xed, 0xb3, 0xd5, 0x11, 0x8a, 0x13, + 0x8f, 0xef, 0x91, 0x99, 0xc3, 0x63, 0xc9, 0xb3, + 0xd8, 0xaa, 0xf0, 0xf7, 0x0f, 0x39, 0x08, 0xe4, + 0x01, 0x88, 0x6b, 0xf0, 0xb4, 0xa5, 0x8e, 0x29, + 0x81, 0x83, 0x36, 0xb0, 0x79, 0x02, 0x4c, 0xca, + 0x7d, 0xad, 0x4a, 0x5f, 0xb9, 0x58, 0x44, 0x7e, + 0xe1, 0x64, 0xc1, 0x98, 0x2c, 0xbe, 0x59, 0xb7, + 0x53, 0xbf, 0xff, 0x00, 0xa3, 0x52, 0x47, 0x63, + 0x16, 0x7d, 0xfd, 0x98, 0xe6, 0x3a, 0x03, 0xbb, + 0x69, 0xe8, 0x94, 0xf9, 0x36, 0xdf, 0x5b, 0xc7, + 0x96, 0x35, 0xe1, 0x75, 0x0f, 0xef, 0x3e, 0x20, + 0x48, 0x5f, 0x5c, 0xc7, 0x78, 0x85, 0xc1, 0x00, + 0x4e, 0x46, 0xbe, 0xff, 0x00, 0xe1, 0xae, 0xc0, + 0xf5, 0x0a, 0x3e, 0xf3, 0x86, 0x63, 0xc5, 0x98, + 0xfd, 0xc7, 0x02, 0xc8, 0x44, 0x10, 0x76, 0x8c, + 0xec, 0x9c, 0x6d, 0x3b, 0x4d, 0x98, 0x39, 0xea, + 0x41, 0x6d, 0xb6, 0xf3, 0x28, 0xec, 0xbb, 0xc4, + 0x4e, 0xfc, 0x9c, 0xbe, 0x4e, 0xed, 0x64, 0xa3, + 0x21, 0x47, 0x1f, 0x53, 0x1e, 0x39, 0xee, 0x0f, + 0xed, 0xb2, 0x81, 0x78, 0xa9, 0x88, 0x3b, 0xd7, + 0xb9, 0xa2, 0xd7, 0x68, 0xb2, 0xf1, 0xe8, 0xc6, + 0xde, 0x3f, 0xb8, 0x8e, 0x99, 0x33, 0x9b, 0x78, + 0xf2, 0x03, 0xb8, 0x82, 0x93, 0x2f, 0x66, 0x57, + 0xc4, 0x03, 0xe0, 0x3a, 0xb7, 0x9c, 0x14, 0xae, + 0xb6, 0xb4, 0xe3, 0xb2, 0x7e, 0x10, 0x5e, 0x21, + 0xed, 0x03, 0xe8, 0xd1, 0x53, 0x7c, 0x1e, 0x78, + 0x8e, 0xc6, 0xb6, 0x54, 0x0c, 0x84, 0x2a, 0x31, + 0xeb, 0x96, 0xcf, 0x2c, 0xdd, 0xad, 0x17, 0x73, + 0xd2, 0x17, 0x31, 0x78, 0x3b, 0x39, 0x1a, 0xd9, + 0x61, 0x25, 0x67, 0x55, 0x42, 0xae, 0x7a, 0x57, + 0x92, 0x3c, 0xc8, 0xa1, 0x9b, 0xdc, 0x8e, 0xc1, + 0xd4, 0x80, 0xb3, 0x60, 0x16, 0xc3, 0xc6, 0x9a, + 0x52, 0xe0, 0x85, 0x6d, 0xcd, 0x83, 0xb9, 0x53, + 0x1b, 0x76, 0xe9, 0x59, 0xb7, 0xc4, 0x4e, 0x79, + 0xd5, 0xaa, 0xe6, 0xa1, 0x4e, 0xb7, 0x93, 0x17, + 0x4c, 0x39, 0xc0, 0x12, 0x94, 0x0e, 0xe5, 0x33, + 0xcc, 0xe3, 0x58, 0x88, 0x44, 0x91, 0x4c, 0x0c, + 0x4c, 0xe9, 0x8c, 0xc0, 0x57, 0xc8, 0x64, 0xed, + 0x0e, 0x71, 0x74, 0x72, 0xae, 0xc1, 0xdf, 0xad, + 0x5b, 0xae, 0x8a, 0x78, 0xac, 0x65, 0x4a, 0xde, + 0x13, 0x37, 0xe2, 0xb2, 0x51, 0x63, 0x87, 0xad, + 0x35, 0x19, 0x12, 0x99, 0x74, 0xa7, 0x1a, 0x7b, + 0x19, 0xdc, 0xea, 0xcc, 0xaf, 0xa4, 0xec, 0xf5, + 0x74, 0x2a, 0xa0, 0xe3, 0x9d, 0x97, 0xe1, 0xb1, + 0xac, 0x97, 0x2e, 0xc2, 0xab, 0x78, 0x43, 0x31, + 0x59, 0xd4, 0x52, 0x9b, 0x0b, 0x01, 0x0b, 0x09, + 0x8a, 0x39, 0x3c, 0x92, 0x52, 0xf0, 0x81, 0x13, + 0x5d, 0x68, 0xe5, 0x8e, 0x4f, 0x2d, 0xb5, 0xe1, + 0x8d, 0x6a, 0xc5, 0x9d, 0xee, 0x2b, 0x9e, 0x21, + 0x63, 0x84, 0xe7, 0x17, 0x17, 0x23, 0x23, 0x7e, + 0x0f, 0xc3, 0xdd, 0x25, 0xb2, 0x26, 0x46, 0x87, + 0x62, 0xf0, 0x50, 0xd9, 0x12, 0x28, 0x74, 0x81, + 0x51, 0x18, 0x74, 0x91, 0x69, 0x98, 0xfa, 0x58, + 0xbc, 0x9b, 0xf0, 0xd6, 0xb1, 0xd8, 0x6a, 0xd8, + 0xa7, 0x3b, 0x29, 0x58, 0x70, 0x0a, 0xb7, 0x6b, + 0xb1, 0x29, 0x36, 0xb1, 0xb4, 0xcb, 0x10, 0x1c, + 0xd9, 0x79, 0xb4, 0xc7, 0x85, 0xc5, 0xd7, 0xbe, + 0x57, 0xce, 0x4e, 0xef, 0x6a, 0x29, 0x08, 0x38, + 0x17, 0xd3, 0xc4, 0x29, 0x96, 0xdb, 0x8d, 0xe2, + 0x4c, 0xa3, 0xbb, 0x15, 0x55, 0x13, 0x2c, 0xbb, + 0x1a, 0xfa, 0xb4, 0x29, 0x63, 0xee, 0x22, 0xb2, + 0xa2, 0x58, 0xe0, 0x4a, 0xf1, 0xa6, 0xab, 0x1d, + 0x31, 0x32, 0xaf, 0x0c, 0x51, 0x1e, 0xcb, 0x66, + 0xf1, 0xec, 0x7b, 0x8b, 0x6f, 0xdb, 0xb8, 0xc7, + 0x57, 0x5d, 0xd5, 0xef, 0xcc, 0x55, 0xdd, 0x6b, + 0x33, 0x66, 0xe0, 0x53, 0x3e, 0xf9, 0xe5, 0x72, + 0x12, 0xe5, 0xf5, 0x55, 0xff, 0x00, 0x22, 0xc3, + 0x95, 0x14, 0x0b, 0x00, 0xc6, 0x33, 0x78, 0xaa, + 0x83, 0x2d, 0xc9, 0x4e, 0x57, 0x1f, 0x91, 0x55, + 0x55, 0xc7, 0x35, 0x8b, 0xb5, 0xab, 0x2b, 0x22, + 0x97, 0xae, 0xba, 0xe2, 0x3a, 0x8f, 0x65, 0x72, + 0xb0, 0xb7, 0xf4, 0x17, 0xce, 0x72, 0x12, 0xc3, + 0x00, 0xf6, 0xb3, 0x9d, 0x70, 0x7b, 0x1b, 0x43, + 0xc1, 0x77, 0x6e, 0x59, 0xcc, 0x78, 0x5b, 0x1c, + 0xe7, 0xb4, 0x98, 0xac, 0x5a, 0xea, 0x2a, 0x01, + 0xb6, 0xaa, 0xda, 0x33, 0xb1, 0x52, 0x2c, 0xd4, + 0x6d, 0xf3, 0x91, 0x7c, 0x07, 0x55, 0x43, 0x06, + 0x21, 0xcb, 0xb4, 0xcc, 0x7b, 0xdf, 0x54, 0x16, + 0xb1, 0x93, 0x63, 0x0c, 0x56, 0xb0, 0x18, 0xdc, + 0x8c, 0xce, 0x60, 0x40, 0x46, 0x23, 0xbe, 0x48, + 0x8a, 0x62, 0x22, 0x23, 0xbe, 0x66, 0x76, 0xd6, + 0x27, 0x09, 0x13, 0x13, 0x38, 0x8a, 0x21, 0x5e, + 0xc4, 0xc4, 0xc1, 0x0c, 0xdf, 0x71, 0x95, 0x9b, + 0xdc, 0xa5, 0x13, 0x3e, 0xe5, 0xed, 0x95, 0x4c, + 0x7d, 0xc2, 0x59, 0x6d, 0xdd, 0xfd, 0xd2, 0x7f, + 0xe6, 0x0b, 0xf5, 0x8a, 0xd6, 0x23, 0xf1, 0xaa, + 0xff, 0x00, 0x65, 0xb7, 0xa0, 0xf7, 0xa3, 0x47, + 0xef, 0x4e, 0xac, 0xfe, 0x32, 0xc8, 0x7e, 0xd0, + 0x5a, 0x99, 0xff, 0x00, 0x00, 0xc0, 0xff, 0x00, + 0xef, 0x0f, 0xff, 0x00, 0x1f, 0xea, 0x26, 0x65, + 0xca, 0xa1, 0x9e, 0xa8, 0xa8, 0x4a, 0x6e, 0x3f, + 0xc4, 0xa7, 0x91, 0xac, 0xbd, 0xa1, 0x55, 0xaf, + 0x32, 0x22, 0x65, 0x36, 0x12, 0x1e, 0x25, 0x7b, + 0x72, 0x32, 0x24, 0xb1, 0x14, 0xd8, 0x2e, 0xe0, + 0x28, 0x90, 0xb1, 0x83, 0xc9, 0x4e, 0xdd, 0xfd, + 0x5a, 0xd5, 0x5b, 0x71, 0x04, 0x3f, 0xe1, 0x8b, + 0xea, 0x0b, 0x95, 0x21, 0xf7, 0x60, 0xb9, 0xb6, + 0xdb, 0x5e, 0x69, 0xca, 0x7a, 0xba, 0xe7, 0xc8, + 0xeb, 0xcd, 0x39, 0x4f, 0x57, 0x5c, 0xf9, 0x1d, + 0x79, 0xa7, 0x29, 0xea, 0xeb, 0x9f, 0x23, 0xaf, + 0x34, 0x65, 0x3d, 0x5d, 0x73, 0xe4, 0x75, 0xe6, + 0x8c, 0xa7, 0xab, 0xae, 0x7c, 0x8e, 0xbc, 0xd1, + 0x94, 0xf5, 0x75, 0xcf, 0x91, 0xd7, 0x9a, 0x32, + 0x9e, 0xae, 0xb9, 0xf2, 0x3a, 0xf3, 0x46, 0x53, + 0xd5, 0xd7, 0x3e, 0x47, 0x5e, 0x68, 0xca, 0x7a, + 0xba, 0xe7, 0xc8, 0xeb, 0xcd, 0x19, 0x4f, 0x57, + 0x5c, 0xf9, 0x1d, 0x79, 0xa3, 0x29, 0xea, 0xeb, + 0x9f, 0x23, 0xaf, 0x34, 0x65, 0x3d, 0x5d, 0x73, + 0xe4, 0x75, 0xe6, 0x8c, 0xa7, 0xab, 0xae, 0x7c, + 0x8e, 0xbc, 0xd1, 0x94, 0xf5, 0x75, 0xcf, 0x91, + 0xd7, 0x9a, 0x32, 0x9e, 0xae, 0xb9, 0xf2, 0x3a, + 0xf3, 0x4e, 0x53, 0xd5, 0xd7, 0x3e, 0x47, 0x5e, + 0x69, 0xca, 0x7a, 0xba, 0xe7, 0xc8, 0xeb, 0x95, + 0x78, 0x5c, 0xb9, 0x97, 0xde, 0x1c, 0x65, 0xd9, + 0x9f, 0xbd, 0xbf, 0x72, 0x3b, 0xa3, 0xbe, 0x3b, + 0xe7, 0xbb, 0x41, 0x6f, 0x89, 0xb7, 0xc4, 0xd0, + 0x0f, 0x6c, 0xec, 0x52, 0x43, 0xe1, 0x6b, 0xf1, + 0x1e, 0x44, 0xa2, 0xbc, 0x4c, 0xf6, 0x70, 0x3f, + 0x21, 0xd8, 0xb1, 0x21, 0xc9, 0x13, 0xe2, 0x01, + 0x4e, 0xf2, 0x03, 0xca, 0xa0, 0xae, 0x84, 0x29, + 0x75, 0xaa, 0x56, 0x54, 0x6c, 0xaa, 0xb5, 0x50, + 0x3c, 0x88, 0x42, 0xff, 0x00, 0xc5, 0x58, 0xfd, + 0xdf, 0xbb, 0x3b, 0xce, 0xd1, 0xbe, 0xd1, 0xf5, + 0x1b, 0x87, 0xcb, 0xac, 0x99, 0x8f, 0x7b, 0x21, + 0xcb, 0x6a, 0xb6, 0xed, 0x38, 0xfb, 0x71, 0x1c, + 0x83, 0x72, 0xac, 0xcc, 0x4c, 0x4c, 0xf2, 0xf8, + 0x8e, 0x54, 0xf8, 0xae, 0x57, 0x8b, 0xef, 0x93, + 0x71, 0xca, 0x1c, 0xf5, 0x1d, 0xfc, 0x4b, 0x58, + 0xbf, 0x6c, 0x67, 0x2c, 0xfb, 0x98, 0xb1, 0x46, + 0x7f, 0x7d, 0xd6, 0x6e, 0xdb, 0x73, 0x2e, 0x40, + 0xe2, 0x27, 0xdc, 0xb0, 0xe3, 0xc6, 0xd7, 0x29, + 0xe1, 0x72, 0xe0, 0x5f, 0x78, 0xf1, 0x97, 0x86, + 0x7f, 0x24, 0xa3, 0x5e, 0x68, 0xca, 0xfa, 0xba, + 0xe7, 0xc8, 0xeb, 0xc1, 0xc5, 0x85, 0xc8, 0x9a, + 0x86, 0xe7, 0x6d, 0x43, 0x0b, 0x1b, 0x7f, 0xab, + 0x5d, 0x84, 0xae, 0x8d, 0x80, 0x5c, 0xc2, 0xf9, + 0x7a, 0x76, 0x84, 0x2b, 0xcb, 0x84, 0xc4, 0xbc, + 0x6a, 0xc9, 0x25, 0xc8, 0x78, 0xfc, 0xfe, 0x68, + 0xca, 0xfa, 0xba, 0xe7, 0xc8, 0xeb, 0xcd, 0x19, + 0x5f, 0x56, 0xdc, 0xf9, 0x1d, 0x79, 0xa3, 0x2b, + 0xea, 0xdb, 0x9f, 0x23, 0xaf, 0x34, 0x65, 0x7d, + 0x5b, 0x73, 0xe4, 0x75, 0xe6, 0x8c, 0xaf, 0xab, + 0xae, 0x7c, 0x8e, 0xbc, 0xd1, 0x95, 0xf5, 0x75, + 0xcf, 0x91, 0xd7, 0x9a, 0x32, 0xbe, 0xad, 0xb9, + 0xf2, 0x3a, 0xf3, 0x46, 0x57, 0xd5, 0xb7, 0x3e, + 0x47, 0x5e, 0x68, 0xca, 0xfa, 0xb6, 0xe7, 0xc8, + 0xeb, 0xcd, 0x19, 0x5f, 0x57, 0x5c, 0xf9, 0x1d, + 0x79, 0xa3, 0x2b, 0xea, 0xeb, 0x9f, 0x23, 0xab, + 0x32, 0x9c, 0x36, 0x4b, 0x9e, 0xcd, 0x47, 0xd2, + 0xea, 0x16, 0x36, 0xf7, 0x32, 0x95, 0x68, 0x7a, + 0x76, 0x25, 0x7b, 0x2a, 0x23, 0x9d, 0xa8, 0x96, + 0x57, 0x99, 0x28, 0x2d, 0x96, 0xd3, 0xda, 0x20, + 0xb6, 0x28, 0xf3, 0x46, 0x57, 0xd5, 0xd7, 0x3e, + 0x47, 0x5e, 0x68, 0xca, 0xfa, 0xba, 0xe7, 0xc8, + 0xea, 0x06, 0xb6, 0x0b, 0x27, 0xdf, 0xdf, 0xd4, + 0x7d, 0x46, 0xd4, 0x4c, 0x0f, 0xf8, 0x52, 0xeb, + 0x42, 0x95, 0xf2, 0xff, 0x00, 0x1f, 0x36, 0x87, + 0x21, 0x65, 0xf5, 0xb2, 0x5c, 0x41, 0xdf, 0xd9, + 0x46, 0xbf, 0xb7, 0x63, 0xf0, 0xfc, 0xc3, 0xb4, + 0xbb, 0xaa, 0x43, 0xcb, 0x73, 0x21, 0x1b, 0xcc, + 0x2c, 0x82, 0x3b, 0x3d, 0x62, 0xdc, 0xe2, 0x5a, + 0x42, 0x32, 0x52, 0x45, 0x32, 0x44, 0x53, 0x32, + 0x45, 0x33, 0xbc, 0xcc, 0xcf, 0x7c, 0xcc, 0xcc, + 0xf7, 0xcc, 0xcc, 0xf9, 0x67, 0xfb, 0xa5, 0x85, + 0xfc, 0x18, 0x57, 0x2c, 0xcf, 0xf1, 0x91, 0x8c, + 0xc7, 0xe5, 0x80, 0x2f, 0xc9, 0xac, 0x47, 0xe3, + 0x55, 0xfe, 0xcb, 0x6f, 0x41, 0xef, 0x46, 0x8f, + 0xde, 0x9d, 0x5a, 0x16, 0xd8, 0x42, 0xcb, 0xc2, + 0x37, 0xfc, 0x56, 0x39, 0x60, 0x5f, 0x6c, 0x1f, + 0xdc, 0x22, 0x89, 0xd4, 0x8c, 0xdb, 0xab, 0x30, + 0x51, 0x23, 0x31, 0xda, 0x55, 0xdf, 0x13, 0xdd, + 0x31, 0xee, 0xfe, 0xf6, 0xbc, 0x4b, 0x35, 0xda, + 0xb9, 0x9f, 0x16, 0x45, 0xea, 0x22, 0xef, 0xfe, + 0x09, 0x08, 0x96, 0xfb, 0xff, 0x00, 0x1e, 0xdc, + 0xb3, 0xdd, 0xe4, 0x99, 0xe5, 0x8d, 0x72, 0xd7, + 0xb5, 0x65, 0x11, 0xe5, 0xd9, 0x2f, 0x62, 0xa3, + 0xf2, 0x01, 0x47, 0xde, 0x8d, 0x79, 0xca, 0xff, + 0x00, 0xc7, 0x2c, 0x7c, 0xa6, 0xbc, 0xe5, 0x7f, + 0xe3, 0x96, 0x3e, 0x53, 0x5e, 0x72, 0xbf, 0xf1, + 0xcb, 0x1f, 0x29, 0xaf, 0x39, 0x5f, 0xf8, 0xe5, + 0x8f, 0x94, 0xd7, 0x9c, 0xaf, 0xfc, 0x72, 0xc7, + 0xca, 0x6b, 0xce, 0x57, 0xfe, 0x39, 0x63, 0xe5, + 0x35, 0xe7, 0x2b, 0xff, 0x00, 0x1c, 0xb1, 0xf2, + 0x9a, 0xf3, 0x95, 0xff, 0x00, 0x8e, 0x58, 0xf9, + 0x4d, 0x79, 0xca, 0xff, 0x00, 0xc7, 0x2c, 0x7c, + 0xa6, 0xbc, 0xe5, 0x7f, 0xe3, 0x96, 0x3e, 0x53, + 0x5e, 0x72, 0xbf, 0xf1, 0xcb, 0x1f, 0x29, 0xaf, + 0x39, 0x5f, 0xf8, 0xe5, 0x8f, 0x94, 0xd7, 0x9c, + 0xaf, 0xfc, 0x72, 0xc7, 0xca, 0x6b, 0xce, 0x57, + 0xfe, 0x39, 0x63, 0xe5, 0x35, 0xe7, 0x2b, 0xff, + 0x00, 0x1c, 0xb1, 0xf2, 0x9a, 0xf3, 0x95, 0xff, + 0x00, 0x8e, 0x58, 0xf9, 0x4d, 0x79, 0xca, 0xff, + 0x00, 0xc7, 0x2c, 0x7c, 0xa6, 0xb6, 0x9c, 0x8d, + 0xe9, 0x8f, 0xe3, 0xb7, 0x63, 0xe5, 0x35, 0x33, + 0x33, 0x33, 0x33, 0x3b, 0xcc, 0xcf, 0x7c, 0xcc, + 0xcf, 0x96, 0x66, 0x7e, 0xec, 0xcf, 0xee, 0x60, + 0xd6, 0x64, 0xb3, 0x8f, 0x21, 0x81, 0x48, 0x94, + 0x7d, 0xce, 0xe2, 0x8d, 0xa6, 0x3b, 0xbb, 0xb5, + 0xe7, 0x2b, 0xff, 0x00, 0x1c, 0xb1, 0xf2, 0x9a, + 0xf3, 0x95, 0xff, 0x00, 0x8e, 0x58, 0xf9, 0x4d, + 0x79, 0xca, 0xff, 0x00, 0xc7, 0x2c, 0x7c, 0xa6, + 0xbc, 0xe5, 0x7f, 0xe3, 0x96, 0x3e, 0x53, 0x5e, + 0x72, 0xbf, 0xf1, 0xcb, 0x1f, 0x29, 0xaf, 0x39, + 0x5f, 0xf8, 0xe5, 0x8f, 0x94, 0xd7, 0x9c, 0xaf, + 0xfc, 0x72, 0xc7, 0xca, 0x6b, 0xce, 0x57, 0xfe, + 0x39, 0x63, 0xe5, 0x35, 0xe7, 0x2b, 0xff, 0x00, + 0x1c, 0xb1, 0xf2, 0x9a, 0xf3, 0x95, 0xff, 0x00, + 0x8e, 0x58, 0xf9, 0x4d, 0x79, 0xca, 0xff, 0x00, + 0xc7, 0x2c, 0x7c, 0xa6, 0xbc, 0xe5, 0x7f, 0xe3, + 0x96, 0x3e, 0x53, 0x5e, 0x72, 0xbf, 0xf1, 0xcb, + 0x1f, 0x29, 0xaf, 0x39, 0x5f, 0xf8, 0xe5, 0x8f, + 0x94, 0xd7, 0x9c, 0xaf, 0xfc, 0x72, 0xc7, 0xca, + 0x6b, 0xce, 0x57, 0xfe, 0x39, 0x63, 0xe5, 0x35, + 0xe7, 0x2b, 0xff, 0x00, 0x1c, 0xb1, 0xf2, 0x9a, + 0xe5, 0x7d, 0xab, 0x2f, 0x8f, 0xbc, 0xe7, 0xb5, + 0x91, 0xdd, 0xe4, 0xee, 0x32, 0x9f, 0xee, 0xa8, + 0x09, 0x62, 0x82, 0x67, 0xbf, 0xdb, 0x18, 0x0b, + 0x8d, 0xbe, 0xfe, 0xe7, 0x31, 0xdd, 0xff, 0x00, + 0xfd, 0x1a, 0xe4, 0xed, 0x95, 0x24, 0xa7, 0xbc, + 0xcb, 0xb4, 0xa7, 0xbe, 0x7e, 0x1f, 0x92, 0x3c, + 0x91, 0xf9, 0x7e, 0xee, 0xb1, 0x22, 0xa7, 0xa5, + 0xa5, 0xe1, 0x35, 0xcc, 0xc2, 0xda, 0x0c, 0x98, + 0x8e, 0xcd, 0x6a, 0x37, 0xd8, 0x4a, 0x67, 0x6e, + 0xf8, 0xef, 0xfe, 0x3d, 0x07, 0xbd, 0x1a, 0x91, + 0xfb, 0xfa, 0x23, 0x84, 0xae, 0x39, 0x8a, 0x4a, + 0x79, 0x40, 0x63, 0x79, 0x99, 0xde, 0x66, 0x76, + 0x8e, 0xf9, 0x99, 0xef, 0x99, 0xfb, 0xbe, 0x5d, + 0x7b, 0x88, 0xfc, 0x9f, 0xd1, 0xaf, 0x71, 0x1f, + 0x93, 0xfa, 0x35, 0xee, 0x23, 0xe0, 0xff, 0x00, + 0x46, 0xbd, 0xc4, 0x7c, 0x1f, 0xe8, 0xd7, 0xb8, + 0x8f, 0x83, 0xfd, 0x1a, 0xf7, 0x11, 0xf0, 0x7f, + 0xa3, 0x5e, 0xe2, 0x3e, 0x0f, 0xf4, 0x6b, 0xdc, + 0x47, 0xc1, 0xfe, 0x8d, 0x7b, 0x88, 0xf8, 0x3f, + 0xd1, 0xaf, 0x71, 0x1f, 0x07, 0xfa, 0x35, 0xee, + 0x23, 0xe0, 0xff, 0x00, 0x46, 0xbd, 0xc4, 0x7c, + 0x1f, 0xe8, 0xd7, 0xb8, 0x8f, 0x83, 0xfd, 0x1a, + 0xf7, 0x11, 0xf0, 0x7f, 0xa3, 0x5e, 0xe2, 0x3e, + 0x0f, 0xf4, 0x6b, 0xdc, 0x47, 0xc1, 0xfe, 0x8d, + 0x7b, 0x88, 0xf8, 0x3f, 0xd1, 0xaf, 0x71, 0x1f, + 0x07, 0xfa, 0x35, 0xee, 0x23, 0xe0, 0xff, 0x00, + 0x46, 0xbd, 0xc4, 0x7c, 0x1f, 0xe8, 0xd7, 0xb8, + 0x8f, 0x83, 0xfd, 0x1a, 0xf7, 0x11, 0xf0, 0x7f, + 0xa3, 0x5e, 0xe2, 0x3e, 0x0f, 0xf4, 0x6b, 0xdc, + 0x47, 0xc1, 0xfe, 0x8d, 0x7b, 0x88, 0xf8, 0x3f, + 0xd1, 0xaf, 0x71, 0x1f, 0x07, 0xfa, 0x35, 0xee, + 0x23, 0xe0, 0xff, 0x00, 0x46, 0xbd, 0xc4, 0x7c, + 0x1f, 0xe8, 0xd7, 0xb8, 0x8f, 0x83, 0xfd, 0x1a, + 0xf7, 0x11, 0xf0, 0x7f, 0xa3, 0x5e, 0xe2, 0x3e, + 0x0f, 0xf4, 0x6b, 0xdc, 0x47, 0xc1, 0xfe, 0x8d, + 0x7b, 0x88, 0xf8, 0x3f, 0xd1, 0xaf, 0x71, 0x1f, + 0x07, 0xfa, 0x35, 0xee, 0x23, 0xe0, 0xff, 0x00, + 0x46, 0xbd, 0xc4, 0x7c, 0x1f, 0xe8, 0xd7, 0xb8, + 0x8f, 0x83, 0xfd, 0x1a, 0xf7, 0x11, 0xf0, 0x7f, + 0xa3, 0x5e, 0xe2, 0x3e, 0x0f, 0xf4, 0x6b, 0xdc, + 0x47, 0xc1, 0xfe, 0x8d, 0x7b, 0x88, 0xf8, 0x3f, + 0xd1, 0xaf, 0x71, 0x1f, 0x07, 0xfa, 0x35, 0xee, + 0x23, 0xe0, 0xff, 0x00, 0x46, 0xbd, 0xc4, 0x7c, + 0x1f, 0xe8, 0xd7, 0xb8, 0x8f, 0x83, 0xfd, 0x1a, + 0xf7, 0x11, 0xf0, 0x7f, 0xa3, 0x5e, 0xe2, 0x3e, + 0x0f, 0xf4, 0x6b, 0xdc, 0x47, 0xc1, 0xfe, 0x8d, + 0x7b, 0x88, 0xf8, 0x3f, 0xd1, 0xaf, 0x71, 0x1f, + 0x07, 0xfa, 0x35, 0xee, 0x23, 0xe0, 0xff, 0x00, + 0x46, 0xbd, 0xc4, 0x7c, 0x1f, 0xe8, 0xd7, 0xb8, + 0x8f, 0x83, 0xfd, 0x1a, 0xf7, 0x11, 0xf0, 0x7f, + 0xa3, 0x5e, 0xe2, 0x3e, 0x0f, 0xf4, 0x6b, 0xdc, + 0x47, 0xc1, 0xfe, 0x8d, 0x7b, 0x88, 0xf8, 0x3f, + 0xd1, 0xaf, 0x71, 0x1f, 0x07, 0xfa, 0x35, 0xee, + 0x23, 0xe0, 0xff, 0x00, 0x46, 0xbd, 0xc4, 0x7c, + 0x1f, 0xe8, 0xd7, 0xb8, 0x8f, 0x83, 0xfd, 0x1a, + 0xf7, 0x11, 0xf0, 0x7f, 0xa3, 0x5e, 0xe2, 0x3e, + 0x0f, 0xf4, 0x6b, 0xdc, 0x47, 0xc1, 0xfe, 0x8d, + 0x7b, 0x88, 0xf8, 0x3f, 0xd1, 0xaf, 0x71, 0x1f, + 0x07, 0xfa, 0x35, 0xee, 0x23, 0xe0, 0xff, 0x00, + 0x46, 0xbd, 0xc4, 0x7c, 0x1f, 0xe8, 0xd7, 0xb8, + 0x8f, 0x83, 0xfd, 0x1a, 0xf7, 0x11, 0xf0, 0x7f, + 0xa3, 0x5e, 0xe2, 0x3e, 0x0f, 0xf4, 0x6b, 0xdc, + 0x47, 0xe4, 0xfe, 0x8d, 0x7b, 0x88, 0xfc, 0x9f, + 0xd1, 0xa0, 0x6f, 0x49, 0x7c, 0xc3, 0x3b, 0x89, + 0x72, 0x0f, 0x30, 0xcf, 0xdf, 0x89, 0xdb, 0x78, + 0x9f, 0x7b, 0x51, 0x1f, 0x7b, 0xff, 0x00, 0xe0, + 0xef, 0xff, 0xc4, 0x00, 0x2b, 0x10, 0x01, 0x00, + 0x02, 0x01, 0x02, 0x05, 0x03, 0x04, 0x03, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x11, 0x21, 0x31, 0x51, 0x10, 0x41, 0x61, 0x91, + 0xf0, 0x20, 0x71, 0xf1, 0x81, 0xa1, 0xc1, 0xe1, + 0x30, 0x40, 0xb1, 0xd1, 0x50, 0x60, 0xff, 0xda, + 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x3f, 0x21, + 0x33, 0x6c, 0x79, 0x4e, 0x34, 0x50, 0x0a, 0xa5, + 0xea, 0x95, 0x56, 0x29, 0x4f, 0xff, 0x00, 0x15, + 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, + 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, + 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, + 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, + 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, + 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, + 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, + 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7b, + 0x2e, 0xec, 0xac, 0xea, 0x92, 0xf2, 0x30, 0x31, + 0xad, 0xc0, 0x16, 0x4c, 0x4f, 0x24, 0x11, 0xc8, + 0x56, 0xcb, 0xab, 0xdf, 0x76, 0x5f, 0x7f, 0x76, + 0x5f, 0x7f, 0x76, 0x5f, 0x7f, 0x76, 0x5f, 0x7f, + 0x76, 0x5f, 0x7f, 0x76, 0x5f, 0x7f, 0x76, 0x5f, + 0x7f, 0x76, 0x5f, 0x7f, 0x76, 0x5f, 0x7f, 0x76, + 0x5b, 0x7f, 0x76, 0x51, 0xaf, 0x71, 0x97, 0xdf, + 0xdd, 0x97, 0xdf, 0xdd, 0x97, 0xdf, 0xdd, 0x97, + 0xdf, 0xdd, 0x97, 0xdf, 0xdd, 0x97, 0xdf, 0xdd, + 0x97, 0xdf, 0xdd, 0x97, 0xdf, 0xdd, 0x97, 0xdf, + 0xdd, 0x97, 0xdf, 0xdd, 0x97, 0xdf, 0xdd, 0x97, + 0xdf, 0xdd, 0x96, 0xfd, 0xcc, 0xb7, 0xee, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x61, + 0xad, 0x5a, 0x0c, 0xbc, 0xff, 0x00, 0x22, 0x23, + 0x5c, 0xc7, 0xf9, 0x3c, 0xf7, 0x5e, 0x29, 0x1b, + 0x6a, 0xab, 0x38, 0xbd, 0x07, 0x1a, 0xae, 0x5d, + 0x4c, 0xac, 0xc5, 0x5f, 0xb9, 0xc3, 0x2a, 0xbc, + 0x92, 0x80, 0xa6, 0xcc, 0x21, 0xcc, 0xec, 0x08, + 0x3c, 0x84, 0x16, 0x57, 0xaa, 0x2d, 0xa4, 0x16, + 0x3c, 0x49, 0x10, 0x61, 0xe3, 0x8b, 0x26, 0x8e, + 0xa0, 0x12, 0x35, 0x29, 0x56, 0x18, 0xb8, 0x81, + 0x6d, 0xe5, 0xa3, 0x0b, 0x2d, 0x3c, 0xfb, 0xbc, + 0xb4, 0x92, 0xd0, 0xb1, 0x21, 0x72, 0x58, 0x0d, + 0xae, 0xb5, 0x31, 0xf0, 0xe9, 0x69, 0x65, 0x44, + 0xef, 0xac, 0x39, 0x94, 0x8a, 0x2b, 0x4a, 0x92, + 0x0a, 0x83, 0x25, 0xb4, 0x08, 0x16, 0x56, 0x19, + 0xea, 0x19, 0x67, 0x8d, 0xde, 0x85, 0x3c, 0xa0, + 0xcc, 0x3a, 0x76, 0x8c, 0x98, 0xe4, 0xdd, 0x06, + 0x50, 0xb6, 0xcc, 0xe0, 0x65, 0x51, 0x05, 0xcd, + 0x77, 0x8a, 0x90, 0x7a, 0xa8, 0xc4, 0x2d, 0x99, + 0x46, 0x76, 0x8a, 0x6a, 0x39, 0xae, 0xa9, 0x54, + 0x54, 0x80, 0xbb, 0x1c, 0xcf, 0xe4, 0xa4, 0xf1, + 0xfc, 0x06, 0x15, 0xce, 0x69, 0xe0, 0x79, 0xf0, + 0xe5, 0x2c, 0x69, 0x9e, 0x68, 0x00, 0xa7, 0x8a, + 0x8e, 0x59, 0x13, 0xc1, 0xd1, 0x94, 0x5b, 0x64, + 0x66, 0xb4, 0x13, 0x80, 0x35, 0x5b, 0x0e, 0xf6, + 0x1b, 0xa7, 0xbc, 0xd7, 0x67, 0x2c, 0x41, 0xf7, + 0x3c, 0xfa, 0xf7, 0x0b, 0x46, 0x29, 0xcd, 0xbc, + 0x1d, 0x1a, 0x10, 0x8c, 0x18, 0x82, 0x84, 0x25, + 0x18, 0x2a, 0xba, 0xb5, 0x13, 0xc4, 0x71, 0x34, + 0x02, 0x49, 0x15, 0xd2, 0xef, 0x96, 0xb2, 0x37, + 0x85, 0x85, 0x8c, 0x5d, 0x1e, 0x71, 0xfd, 0xa0, + 0x4a, 0x30, 0x0b, 0x62, 0x8a, 0x45, 0xb4, 0x15, + 0xac, 0x47, 0x3d, 0x9f, 0x4c, 0x01, 0xe3, 0xe1, + 0xb0, 0x45, 0x91, 0xc9, 0xd7, 0x4b, 0x9b, 0x76, + 0x41, 0x3d, 0xe8, 0x87, 0x80, 0x2d, 0xad, 0x08, + 0xe1, 0x58, 0x84, 0x11, 0xc3, 0xaa, 0x81, 0x50, + 0xbd, 0xb0, 0x41, 0x65, 0xf3, 0x16, 0x2a, 0xca, + 0x10, 0xb0, 0x4b, 0xf1, 0x76, 0xd0, 0x14, 0x41, + 0x58, 0xb2, 0x5b, 0x9f, 0x84, 0x06, 0x35, 0x4d, + 0xd1, 0x3f, 0xc6, 0xca, 0xa8, 0xb3, 0x71, 0xcc, + 0x39, 0x50, 0xf5, 0xc4, 0xf9, 0x7c, 0x7c, 0xbe, + 0x3e, 0x5f, 0x1f, 0x2f, 0x8f, 0x97, 0xc7, 0xcb, + 0xe3, 0xe5, 0xf1, 0xf2, 0xf8, 0xf9, 0x7c, 0x7c, + 0xbe, 0x3e, 0x5f, 0x1f, 0x2f, 0x8f, 0x97, 0xc7, + 0xcb, 0xe3, 0xe5, 0xf0, 0x91, 0x3a, 0x9a, 0xed, + 0xd0, 0x5c, 0xa5, 0x3f, 0x6e, 0x29, 0xfb, 0x71, + 0x4f, 0xdb, 0x8a, 0x7e, 0xdc, 0x53, 0xf6, 0xe1, + 0x26, 0x0a, 0xc1, 0x43, 0xdc, 0x80, 0xac, 0x4d, + 0xcc, 0xf1, 0x10, 0x37, 0x91, 0x04, 0xe8, 0xca, + 0x7e, 0xdc, 0x53, 0xf6, 0xe2, 0x9f, 0xb7, 0x14, + 0xfd, 0xb8, 0xa7, 0xed, 0xc6, 0x47, 0x6e, 0xa3, + 0x4c, 0x65, 0xc8, 0x8f, 0x02, 0x9e, 0x2b, 0x69, + 0xe7, 0xba, 0xc7, 0x52, 0x4a, 0x75, 0xed, 0x29, + 0xd7, 0xb4, 0x59, 0x24, 0x97, 0x36, 0x21, 0x3e, + 0xdb, 0xc0, 0x1b, 0xca, 0xf2, 0x68, 0x4e, 0x08, + 0xdd, 0x01, 0xca, 0x2e, 0x18, 0x75, 0x6e, 0xbe, + 0x8a, 0x5f, 0x23, 0x7b, 0x90, 0x36, 0xea, 0x79, + 0x3d, 0x54, 0xb3, 0x9b, 0x6a, 0xf1, 0x8f, 0x64, + 0xc8, 0x42, 0x90, 0x72, 0x7e, 0x2a, 0xef, 0xb1, + 0xda, 0x4f, 0xdc, 0x97, 0x87, 0x86, 0x74, 0xe2, + 0x86, 0xe9, 0x54, 0xb5, 0xda, 0x13, 0x3a, 0x6e, + 0x00, 0x0b, 0x52, 0xe0, 0x03, 0x2a, 0xe8, 0x45, + 0x93, 0xec, 0x28, 0xd6, 0xa8, 0x52, 0x4e, 0x21, + 0x54, 0x17, 0x8f, 0xf0, 0x7c, 0xea, 0x0c, 0x00, + 0x00, 0x00, 0x08, 0x1c, 0xff, 0x00, 0x63, 0xab, + 0x07, 0x12, 0x41, 0xae, 0x05, 0x11, 0x36, 0x1a, + 0xbc, 0xa7, 0x52, 0x91, 0x8d, 0x1b, 0x0b, 0x27, + 0xb8, 0x77, 0x7b, 0x80, 0x6e, 0xe2, 0x7f, 0x57, + 0x58, 0x63, 0x8d, 0xa7, 0xf0, 0x7e, 0xb6, 0x09, + 0x58, 0x48, 0x9c, 0x25, 0x2a, 0x10, 0xcd, 0x36, + 0x63, 0x97, 0x80, 0xf6, 0x84, 0xf7, 0x6c, 0x7e, + 0xfe, 0xef, 0x19, 0xa8, 0x32, 0x1f, 0xa7, 0xfa, + 0x81, 0x7c, 0x5e, 0xe1, 0xc2, 0xc4, 0xcc, 0xa8, + 0x4e, 0x8d, 0xc9, 0xe3, 0xa1, 0x67, 0xc0, 0x75, + 0x2c, 0xe0, 0x59, 0xb3, 0xba, 0x0d, 0x40, 0xb0, + 0xb2, 0x07, 0x41, 0x4a, 0x16, 0x06, 0x80, 0x0b, + 0x56, 0x56, 0x62, 0x24, 0xf2, 0x5b, 0x40, 0x6c, + 0x6a, 0x82, 0x91, 0xd4, 0x77, 0x1f, 0x0c, 0x0d, + 0xe2, 0x26, 0xd0, 0x86, 0xa1, 0x8a, 0x56, 0x57, + 0xa1, 0xaa, 0x89, 0x9c, 0x9e, 0xa0, 0x94, 0x1d, + 0x6b, 0x11, 0x1c, 0xd4, 0x44, 0x12, 0xaa, 0xa1, + 0x98, 0x85, 0x32, 0x34, 0x76, 0xd1, 0x2d, 0x01, + 0x8d, 0x44, 0x62, 0xe4, 0xd2, 0xdb, 0x21, 0xf2, + 0x16, 0x92, 0xa8, 0x6d, 0x3a, 0xf6, 0x94, 0xeb, + 0xda, 0x53, 0xaf, 0x69, 0x4e, 0xbd, 0xa5, 0x3a, + 0xf6, 0x94, 0xeb, 0xda, 0x53, 0xaf, 0x69, 0x4e, + 0xbd, 0xa5, 0x3a, 0xf6, 0x94, 0xeb, 0xda, 0x53, + 0xaf, 0x6e, 0x02, 0xd8, 0x0a, 0x52, 0x41, 0x14, + 0x19, 0xb4, 0x12, 0x9e, 0xdc, 0xb3, 0x23, 0x68, + 0xde, 0x32, 0xdb, 0xe4, 0x39, 0xa4, 0x11, 0xb5, + 0xd5, 0x0f, 0x4f, 0x9c, 0x71, 0x20, 0xd0, 0x83, + 0x62, 0xb2, 0x68, 0x8a, 0x25, 0x8e, 0x69, 0xfe, + 0x9b, 0xa3, 0xb4, 0x96, 0xe1, 0x51, 0x88, 0x53, + 0xb0, 0x70, 0x86, 0x62, 0xfa, 0x62, 0xd0, 0x85, + 0x81, 0x55, 0x0e, 0x37, 0x67, 0xf7, 0x6e, 0x4f, + 0x82, 0xb4, 0xaf, 0xfd, 0xa2, 0x69, 0x01, 0x74, + 0x35, 0x7c, 0x04, 0xb9, 0x15, 0x14, 0xa8, 0x26, + 0xd4, 0xe4, 0x93, 0xc3, 0x90, 0x7b, 0x8a, 0x35, + 0xeb, 0x15, 0x84, 0x10, 0x32, 0x4a, 0x79, 0xc6, + 0x12, 0x5e, 0xa4, 0xcd, 0x2c, 0x12, 0x4e, 0x3b, + 0xd2, 0x5a, 0x06, 0x1c, 0x05, 0xc8, 0x78, 0xc5, + 0x0d, 0x90, 0x10, 0x42, 0x1b, 0x6c, 0x2e, 0xaa, + 0x51, 0x19, 0x41, 0x62, 0x26, 0xe1, 0xcd, 0x92, + 0xbf, 0xc5, 0x23, 0x4c, 0x88, 0x2e, 0x51, 0xb5, + 0x4f, 0x46, 0xe7, 0xcc, 0xdc, 0x8f, 0xc4, 0x53, + 0x3a, 0xb9, 0x09, 0xa2, 0x65, 0xc8, 0x4c, 0xa7, + 0x54, 0x26, 0x54, 0x24, 0x3f, 0x5a, 0xb4, 0x85, + 0xce, 0x12, 0x3f, 0x84, 0x83, 0x4b, 0x26, 0x82, + 0x3a, 0xfe, 0x5a, 0x31, 0xbe, 0x37, 0xbd, 0xdf, + 0x31, 0x49, 0x88, 0xd3, 0xb1, 0x52, 0x3c, 0xff, + 0x00, 0x2f, 0xa8, 0x7e, 0x13, 0x09, 0x0b, 0xb8, + 0xb7, 0x8a, 0xda, 0x79, 0xee, 0xbe, 0x88, 0x8d, + 0xcf, 0x85, 0x42, 0xf4, 0x5a, 0xc3, 0x13, 0x40, + 0x9d, 0xbd, 0xc0, 0xa5, 0xe2, 0xa3, 0xf5, 0x81, + 0xc0, 0xcf, 0xad, 0xe0, 0x8c, 0xe6, 0x9a, 0x8c, + 0x6b, 0x6b, 0x41, 0x7a, 0xa2, 0x49, 0xca, 0xef, + 0x54, 0x04, 0xfd, 0xcd, 0x81, 0x65, 0x00, 0xd7, + 0xca, 0x90, 0x3b, 0x9b, 0x7b, 0x00, 0x5b, 0xf6, + 0x48, 0x30, 0x0b, 0x86, 0xe1, 0x86, 0x89, 0x5a, + 0x99, 0x55, 0x93, 0x18, 0x75, 0x9d, 0xe2, 0x4b, + 0x5f, 0xca, 0x35, 0xe6, 0x24, 0xe6, 0xa6, 0x8e, + 0x0c, 0x69, 0xf2, 0xd7, 0xe6, 0xd6, 0x76, 0xfc, + 0x50, 0x16, 0x63, 0x1a, 0x61, 0x03, 0xd3, 0x3c, + 0x5e, 0xf2, 0x2e, 0x90, 0x66, 0xed, 0xbb, 0x87, + 0x75, 0xd6, 0x7f, 0x6c, 0x72, 0xce, 0x11, 0x00, + 0x54, 0xe2, 0x96, 0xb7, 0x78, 0x93, 0x02, 0x75, + 0xd5, 0x99, 0x82, 0x8f, 0xbd, 0xef, 0x15, 0x89, + 0x68, 0xe1, 0x05, 0x27, 0x6c, 0xbc, 0x69, 0x97, + 0x88, 0xa1, 0x03, 0x5f, 0xe8, 0x71, 0x92, 0x68, + 0xc5, 0x4d, 0x0b, 0x91, 0xa4, 0xb8, 0x2f, 0x48, + 0x6b, 0x8a, 0x05, 0x22, 0x6e, 0x2c, 0x8b, 0xb4, + 0x92, 0xa9, 0xd0, 0x22, 0x08, 0xc9, 0xa4, 0x15, + 0xa0, 0x89, 0xf1, 0xfb, 0x0c, 0x21, 0x2b, 0x17, + 0xee, 0x0f, 0x04, 0x13, 0xcd, 0xcd, 0x73, 0x3a, + 0xe4, 0xbe, 0x09, 0x95, 0x32, 0xc9, 0x7c, 0x4b, + 0x7d, 0x5f, 0xfe, 0xbb, 0xc3, 0xf1, 0xee, 0x89, + 0x2a, 0x0b, 0x09, 0x5f, 0x8b, 0x23, 0xac, 0x82, + 0xd1, 0xf1, 0x85, 0x0c, 0xcd, 0xf1, 0x2c, 0x2d, + 0x6d, 0x38, 0x04, 0x24, 0xa1, 0x4b, 0xb0, 0x05, + 0x61, 0x8e, 0x98, 0x94, 0x72, 0xc1, 0xa0, 0xe7, + 0x18, 0x93, 0xb8, 0xce, 0x9e, 0x7a, 0x11, 0x85, + 0xd8, 0x8d, 0x32, 0x02, 0x04, 0x1d, 0x10, 0x43, + 0x0a, 0xcb, 0x77, 0xa5, 0x06, 0x88, 0x13, 0x55, + 0x0b, 0x13, 0x2b, 0x36, 0x3f, 0x93, 0xcb, 0x69, + 0xf1, 0xc8, 0x96, 0xe2, 0x83, 0x85, 0x2e, 0x9c, + 0x39, 0x96, 0x19, 0x07, 0xa8, 0x05, 0xdf, 0x54, + 0xd3, 0x9b, 0xd0, 0x3b, 0x47, 0xda, 0x95, 0xf2, + 0x96, 0xc8, 0x83, 0x50, 0x0e, 0x2f, 0xc4, 0x22, + 0x1a, 0x82, 0x71, 0xc5, 0x37, 0x56, 0xa0, 0x96, + 0xd3, 0x1f, 0x0c, 0x9c, 0x65, 0xd8, 0x35, 0xc4, + 0xd3, 0x33, 0x63, 0x6d, 0xde, 0x23, 0x61, 0x48, + 0xd1, 0x8f, 0x8b, 0x45, 0xf2, 0x20, 0xec, 0xc8, + 0x16, 0x1f, 0x6a, 0x8b, 0x68, 0x6e, 0xa4, 0x67, + 0x96, 0xd4, 0x6e, 0x73, 0x3b, 0x52, 0x81, 0x42, + 0x84, 0x2c, 0x55, 0xb5, 0xaf, 0x51, 0xbe, 0x82, + 0x6b, 0x59, 0x21, 0xb0, 0x10, 0xc6, 0x49, 0x4a, + 0xf1, 0x1b, 0x31, 0xd2, 0xed, 0x02, 0x48, 0x23, + 0xa2, 0x8c, 0xe7, 0x84, 0x47, 0xa5, 0x4e, 0xa5, + 0x4a, 0x95, 0x21, 0x89, 0x90, 0xe4, 0x48, 0xa0, + 0x1c, 0x2d, 0x81, 0xc3, 0x98, 0x55, 0x2a, 0x88, + 0xb6, 0x03, 0x98, 0x21, 0x57, 0x16, 0xfe, 0x3f, + 0xfa, 0x4a, 0x07, 0x35, 0xb1, 0xab, 0x39, 0x70, + 0xf1, 0x95, 0xc7, 0xcf, 0x47, 0x89, 0x61, 0x1c, + 0x91, 0x90, 0x2f, 0xba, 0xd1, 0x63, 0x02, 0xc6, + 0x2c, 0xbe, 0x18, 0xca, 0x2b, 0x41, 0xa8, 0x62, + 0xe0, 0x2c, 0x1a, 0x57, 0x50, 0x40, 0x05, 0x56, + 0x88, 0x55, 0x37, 0xf7, 0xd0, 0xca, 0x16, 0x20, + 0x22, 0x53, 0x1e, 0xe0, 0x1d, 0x94, 0x0a, 0x81, + 0x6d, 0xe6, 0x31, 0x56, 0xe6, 0x9e, 0x97, 0x52, + 0x64, 0x3c, 0x3a, 0x73, 0xea, 0xe6, 0x43, 0xa1, + 0x81, 0xb9, 0x79, 0x38, 0x36, 0xfc, 0xc8, 0x30, + 0xb0, 0x2e, 0xda, 0xc9, 0xeb, 0x9b, 0xb5, 0x7b, + 0xe1, 0x6e, 0x87, 0x23, 0x00, 0x82, 0x39, 0x7d, + 0x48, 0x80, 0xd6, 0x20, 0xaa, 0x16, 0xad, 0xc6, + 0xb3, 0x4c, 0xb7, 0x8a, 0xda, 0x79, 0xee, 0xbe, + 0x88, 0x86, 0x89, 0xec, 0x21, 0xb0, 0xab, 0xd3, + 0xb0, 0xc6, 0x1f, 0x95, 0x2b, 0x52, 0x58, 0x38, + 0xe7, 0x6a, 0x6c, 0xe4, 0x6a, 0xcc, 0xcf, 0x9e, + 0xc7, 0xcf, 0x63, 0xe7, 0xb1, 0xf3, 0xd8, 0xf9, + 0xec, 0x7c, 0xf6, 0x3e, 0x7b, 0x1f, 0x3d, 0x8f, + 0x9e, 0xc7, 0xcf, 0x63, 0xe7, 0xb1, 0xf3, 0xd8, + 0xf9, 0xec, 0x7c, 0xf6, 0x3e, 0x7b, 0x1f, 0x3d, + 0x8f, 0x9e, 0xc1, 0x7e, 0x87, 0x56, 0xa3, 0xae, + 0x1b, 0xd8, 0x58, 0x21, 0x5c, 0xb5, 0x99, 0x73, + 0x97, 0xd6, 0xd6, 0x22, 0x04, 0x35, 0x5a, 0x9e, + 0x6f, 0xc1, 0xf5, 0x0b, 0x37, 0x09, 0x78, 0x26, + 0x54, 0x00, 0x8e, 0x10, 0x6a, 0xb8, 0x23, 0x4d, + 0x31, 0xf3, 0x18, 0x59, 0x22, 0x5f, 0x4a, 0x37, + 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, + 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, + 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, + 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x35, 0xea, 0x1d, + 0x52, 0xab, 0x05, 0xa1, 0xc1, 0x83, 0x38, 0x31, + 0xfd, 0xbb, 0x36, 0x6c, 0xd9, 0xb3, 0x66, 0xcd, + 0x9b, 0x36, 0x6c, 0xd9, 0xb3, 0x66, 0xcf, 0x9b, + 0x36, 0x6c, 0xd9, 0xb3, 0xe7, 0xcd, 0x9b, 0x36, + 0x44, 0x4c, 0x1d, 0x5a, 0x4e, 0xad, 0x27, 0x1d, + 0x05, 0xe9, 0x0d, 0xda, 0x7a, 0x83, 0xb5, 0x89, + 0x82, 0xa5, 0xc1, 0x5a, 0x66, 0x7e, 0x7d, 0xa0, + 0x58, 0x0f, 0xbc, 0xd3, 0x2d, 0xe2, 0xb6, 0x9e, + 0x7b, 0xac, 0x50, 0x6b, 0x74, 0x8a, 0xe4, 0x76, + 0x50, 0x35, 0xa4, 0x2a, 0x20, 0x19, 0x64, 0xae, + 0xe9, 0x88, 0xb7, 0x76, 0xf2, 0x1d, 0x19, 0xd4, + 0x42, 0x91, 0x6b, 0x41, 0x5a, 0x35, 0xd2, 0x2f, + 0x4c, 0xec, 0x15, 0xd8, 0x83, 0xd9, 0x7a, 0x58, + 0x97, 0xb6, 0x48, 0xd0, 0xc0, 0x2c, 0xb1, 0x2c, + 0xdc, 0xbd, 0x4e, 0xb3, 0x42, 0xb4, 0xdf, 0xa3, + 0x07, 0xe5, 0x50, 0x01, 0x54, 0x0b, 0x13, 0x6a, + 0x33, 0xe6, 0x6e, 0x3a, 0x20, 0x7f, 0x3d, 0x5e, + 0xeb, 0xb4, 0xe9, 0xb9, 0x40, 0xbd, 0x3c, 0x16, + 0xd8, 0xed, 0xd2, 0x61, 0x6e, 0x0c, 0x55, 0x00, + 0x02, 0xc1, 0x8a, 0x97, 0x96, 0x67, 0x95, 0x28, + 0x07, 0x00, 0x41, 0xb1, 0xd1, 0x96, 0xff, 0x00, + 0xab, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, + 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, + 0xbf, 0x7d, 0xf8, 0x5b, 0xdd, 0x6b, 0x2a, 0x79, + 0x60, 0xc1, 0x28, 0xd7, 0x06, 0xb2, 0xfc, 0x77, + 0x49, 0xb6, 0x23, 0x00, 0x03, 0x01, 0x7f, 0xd5, + 0x77, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, + 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, + 0xdf, 0xba, 0x00, 0xb3, 0x1d, 0x57, 0x89, 0xce, + 0x40, 0x9b, 0xe2, 0x2a, 0xcc, 0x0d, 0x63, 0x3b, + 0x46, 0xa8, 0xd9, 0xe2, 0x57, 0x40, 0xda, 0x19, + 0x1f, 0xe6, 0xb3, 0xb0, 0x15, 0x08, 0xec, 0x86, + 0xf1, 0x5b, 0x4f, 0x3d, 0xd7, 0xd2, 0x5a, 0xd5, + 0x2f, 0x96, 0xc3, 0xc3, 0x28, 0xd6, 0x34, 0x7a, + 0x54, 0xc6, 0x43, 0xfd, 0x0a, 0x54, 0x8e, 0x0a, + 0x86, 0x46, 0x8e, 0xfb, 0xd7, 0x69, 0x14, 0xa6, + 0x5e, 0x1f, 0xae, 0x58, 0x71, 0x2b, 0xc0, 0x5e, + 0x84, 0xad, 0x40, 0x40, 0xbf, 0x52, 0xcc, 0x06, + 0x76, 0xd2, 0x88, 0x9b, 0x45, 0x5a, 0x58, 0x57, + 0x2e, 0xce, 0x33, 0xaa, 0x17, 0xfe, 0x76, 0x3a, + 0x1e, 0xe4, 0xb6, 0x1e, 0x58, 0x93, 0x5a, 0xc5, + 0x81, 0x46, 0x81, 0xb9, 0xee, 0x3b, 0xfe, 0xe7, + 0xb8, 0xef, 0xfb, 0x9e, 0xe3, 0xbf, 0xee, 0x7b, + 0x8e, 0xff, 0x00, 0xb9, 0xee, 0x3b, 0xfe, 0xe7, + 0xb8, 0xef, 0xfb, 0x9e, 0xe3, 0xbf, 0xee, 0x38, + 0x15, 0xe6, 0x58, 0xce, 0x1b, 0x43, 0x29, 0xa5, + 0x46, 0xc9, 0xf6, 0x92, 0x9f, 0x4a, 0xf8, 0x29, + 0xa9, 0x90, 0xea, 0x6c, 0x16, 0x37, 0x5d, 0x00, + 0x8a, 0xdd, 0x42, 0x99, 0x74, 0xbc, 0x2a, 0x1b, + 0x22, 0xbf, 0x49, 0x66, 0x22, 0xe8, 0xdf, 0x0b, + 0x84, 0x55, 0xc0, 0xad, 0xcc, 0x0c, 0xa5, 0x8d, + 0xe2, 0x19, 0x9e, 0x30, 0x61, 0x55, 0x9a, 0xaf, + 0xe3, 0x49, 0xdd, 0x4f, 0xda, 0x4a, 0x59, 0x4b, + 0x8b, 0x55, 0xea, 0x00, 0x1c, 0x50, 0x54, 0x87, + 0x5b, 0x08, 0x8f, 0x71, 0xdf, 0xf7, 0x3d, 0xc7, + 0x7f, 0xdc, 0xf7, 0x1d, 0xff, 0x00, 0x73, 0xdc, + 0x77, 0xfd, 0xcf, 0x71, 0xdf, 0xf7, 0x3d, 0xc7, + 0x7f, 0xdc, 0x06, 0x6a, 0x59, 0x65, 0x36, 0xe4, + 0x4a, 0x1a, 0x4d, 0x41, 0x32, 0x0c, 0x00, 0x00, + 0x31, 0xd1, 0x10, 0x47, 0xa2, 0x4e, 0x7d, 0xf8, + 0x82, 0x87, 0x6e, 0x7a, 0x4f, 0x71, 0xdf, 0xf7, + 0x3d, 0xc7, 0x7f, 0xdc, 0x37, 0x74, 0x70, 0x49, + 0xc2, 0xd8, 0x45, 0x01, 0xce, 0xd7, 0x2d, 0x86, + 0x8c, 0x65, 0x28, 0x5f, 0x71, 0x47, 0xe9, 0x84, + 0xf4, 0xd8, 0x86, 0xdd, 0xa3, 0xaa, 0xe6, 0xaf, + 0x9d, 0x72, 0xbd, 0x0d, 0x72, 0xb1, 0xa1, 0xa8, + 0x12, 0x14, 0xe2, 0x83, 0x18, 0x31, 0x2e, 0x6d, + 0x0c, 0x86, 0xe5, 0x73, 0xa5, 0x0a, 0x20, 0x04, + 0xf2, 0x49, 0xeb, 0xbe, 0x5d, 0xb2, 0x5b, 0x57, + 0xcc, 0xc1, 0x84, 0x5a, 0x6e, 0x40, 0xa4, 0xd7, + 0x82, 0x24, 0x20, 0xdc, 0x54, 0xe7, 0xa9, 0xbf, + 0x3b, 0xcd, 0x69, 0xa4, 0x04, 0xd5, 0x23, 0xb3, + 0xc3, 0x49, 0x67, 0x24, 0xa2, 0xbe, 0x87, 0xec, + 0xb6, 0x50, 0xb0, 0x81, 0xe6, 0xf8, 0x26, 0x89, + 0xef, 0xa3, 0x3e, 0x27, 0x25, 0x42, 0x87, 0x18, + 0x76, 0x2f, 0xa2, 0x36, 0x03, 0x88, 0x85, 0x04, + 0x88, 0x72, 0xe4, 0x03, 0xa3, 0xc3, 0x01, 0x6e, + 0x45, 0xab, 0x17, 0x60, 0xcb, 0xa0, 0x01, 0x09, + 0xcc, 0xb8, 0xa9, 0x98, 0x4f, 0x28, 0x42, 0x36, + 0x16, 0xa9, 0xba, 0x53, 0x34, 0x3d, 0x40, 0x92, + 0xbc, 0xca, 0xb5, 0x67, 0x35, 0xcf, 0x71, 0xdf, + 0xf7, 0x3d, 0xc7, 0x7f, 0xdc, 0x45, 0xe4, 0xe3, + 0x62, 0xe8, 0x66, 0x82, 0xe3, 0x40, 0x1b, 0xa3, + 0x84, 0x2d, 0x31, 0xfe, 0x2b, 0x69, 0xe7, 0xba, + 0xfa, 0x4b, 0x5a, 0xc7, 0x9d, 0x29, 0xce, 0xd5, + 0xd6, 0x53, 0x92, 0xc8, 0x25, 0xcf, 0x64, 0xd2, + 0x6a, 0x93, 0x23, 0x5b, 0xc0, 0xa8, 0xc4, 0xad, + 0xda, 0xd8, 0x50, 0x91, 0xe5, 0x80, 0xf6, 0x08, + 0x4c, 0x13, 0xfe, 0x24, 0xf4, 0x0a, 0x10, 0xe5, + 0x6d, 0x34, 0x21, 0xe1, 0x5e, 0xc5, 0x68, 0xa7, + 0xf4, 0x4c, 0x7e, 0xe0, 0xff, 0x00, 0x66, 0x77, + 0xaf, 0xbb, 0xc0, 0xf6, 0xa7, 0xb5, 0x3d, 0xa9, + 0xed, 0x4f, 0x6a, 0x7b, 0x53, 0xda, 0x8f, 0x54, + 0xa9, 0x6c, 0x00, 0x56, 0xc0, 0x6c, 0x98, 0x2a, + 0xb5, 0x96, 0xdb, 0xe9, 0xc7, 0x6c, 0x8c, 0x92, + 0x58, 0x73, 0xdd, 0x12, 0x51, 0x46, 0xc6, 0xf2, + 0x70, 0x65, 0xf5, 0x13, 0x07, 0x04, 0x8f, 0x68, + 0xce, 0xa1, 0x2d, 0x6d, 0x82, 0xa9, 0x02, 0x59, + 0xa9, 0x5d, 0x7b, 0x15, 0x38, 0x52, 0x7f, 0xda, + 0xd7, 0x32, 0x96, 0xb6, 0x5a, 0x98, 0x82, 0xa7, + 0xbe, 0xfd, 0xc8, 0x4e, 0x96, 0x25, 0x61, 0x0c, + 0x25, 0x4a, 0x38, 0x6e, 0xa0, 0xe4, 0x45, 0x7a, + 0xac, 0x13, 0xda, 0x9e, 0xd4, 0xf6, 0xa7, 0xb5, + 0x3d, 0xa9, 0xed, 0x4c, 0x44, 0x74, 0xde, 0xdf, + 0x81, 0xc0, 0x06, 0x3a, 0x7f, 0x84, 0xe7, 0xb5, + 0x3d, 0xa8, 0x3c, 0xd7, 0x33, 0x50, 0x5d, 0xf5, + 0xc6, 0x01, 0x77, 0x8d, 0x23, 0x87, 0x1f, 0x00, + 0x48, 0xad, 0x8a, 0x1e, 0xec, 0xc6, 0xb4, 0x32, + 0x13, 0x2f, 0xb4, 0x52, 0x48, 0xd4, 0x2c, 0x80, + 0xdd, 0x09, 0xe4, 0x83, 0x2b, 0xd8, 0xc9, 0x64, + 0x1c, 0x43, 0x7c, 0x12, 0xac, 0x64, 0xa0, 0x03, + 0x37, 0xb4, 0x98, 0x8c, 0x28, 0xcd, 0x9a, 0xce, + 0x30, 0x12, 0xdd, 0x18, 0xbd, 0x3e, 0x24, 0x81, + 0x16, 0xb7, 0x19, 0x60, 0x12, 0x5a, 0x1b, 0x7a, + 0x4b, 0xf7, 0x37, 0x13, 0x03, 0x20, 0xee, 0xdf, + 0x56, 0x6e, 0x52, 0x50, 0x11, 0xd0, 0xa6, 0x38, + 0xad, 0x83, 0x16, 0xaf, 0x08, 0xd4, 0x91, 0x0a, + 0x9c, 0xcd, 0x3d, 0x14, 0x2d, 0x2c, 0x27, 0xe7, + 0x62, 0x16, 0xa9, 0x55, 0x85, 0xd4, 0x85, 0x55, + 0x10, 0x19, 0x62, 0x86, 0x34, 0xa4, 0xec, 0xcb, + 0x44, 0x59, 0xb7, 0x01, 0xc9, 0xd8, 0x20, 0x9d, + 0x4f, 0x4d, 0x34, 0x55, 0x8b, 0x6c, 0x7e, 0x5d, + 0x01, 0x5d, 0x44, 0x60, 0x16, 0x75, 0xf9, 0x91, + 0xcb, 0x31, 0x59, 0x44, 0x63, 0xe6, 0x14, 0xbd, + 0xa9, 0xed, 0x4d, 0x5b, 0x7c, 0x1c, 0xc2, 0xd3, + 0x1f, 0xe2, 0xb6, 0x9e, 0x7b, 0xac, 0xc2, 0x75, + 0x6c, 0x7c, 0x3a, 0x1a, 0x85, 0x74, 0xd7, 0x59, + 0x68, 0x15, 0xa3, 0x2e, 0x26, 0xa3, 0x3c, 0x4c, + 0x6b, 0xc0, 0x13, 0x0d, 0xe4, 0xd3, 0x81, 0x62, + 0xca, 0x0a, 0xa1, 0x68, 0x2d, 0x2b, 0x90, 0xca, + 0xe8, 0x19, 0x78, 0xaa, 0x2f, 0xb0, 0xb8, 0x03, + 0x61, 0x30, 0x46, 0xb5, 0xa4, 0x67, 0x8f, 0x40, + 0xa1, 0x81, 0x61, 0x3d, 0x87, 0x86, 0x2d, 0x48, + 0xe3, 0x87, 0x23, 0x40, 0xd2, 0x68, 0xf3, 0x87, + 0xb0, 0x01, 0x8d, 0x5d, 0x2b, 0x16, 0x72, 0xb0, + 0x83, 0x85, 0x48, 0x0a, 0xaa, 0xc2, 0x85, 0x95, + 0x1a, 0x6c, 0x34, 0xed, 0x0a, 0x0d, 0x58, 0xe1, + 0xb8, 0x20, 0x75, 0x5f, 0xe1, 0xf2, 0x9f, 0xa8, + 0x7f, 0xb2, 0xcb, 0xdd, 0x6e, 0x38, 0x4c, 0x77, + 0xc2, 0xaa, 0x1b, 0xa7, 0x0e, 0x01, 0x84, 0x1e, + 0x50, 0xf8, 0x18, 0x3d, 0x43, 0x87, 0x0e, 0x1c, + 0x38, 0x72, 0xf7, 0x6d, 0x86, 0x5a, 0x6d, 0x2f, + 0x9e, 0xb9, 0x5c, 0x01, 0xb0, 0x5a, 0x0b, 0x2c, + 0xa3, 0x43, 0xa4, 0xe4, 0x40, 0x44, 0x10, 0xea, + 0x15, 0xbe, 0xe6, 0xb9, 0x98, 0x72, 0x85, 0x0e, + 0x60, 0xd8, 0x74, 0x9d, 0x27, 0x99, 0x1a, 0xf4, + 0xc7, 0x59, 0xe6, 0x46, 0xdb, 0x19, 0x70, 0x22, + 0xe7, 0x9a, 0xaf, 0x67, 0x68, 0x2e, 0xfe, 0x09, + 0x1c, 0x38, 0x70, 0xe1, 0xc3, 0x87, 0x5a, 0xc7, + 0x36, 0x4a, 0x24, 0x34, 0x1d, 0xc6, 0xb2, 0xfa, + 0x83, 0x92, 0x58, 0x39, 0x27, 0x30, 0x2b, 0x39, + 0xcd, 0x24, 0xbd, 0xca, 0x64, 0x25, 0xe0, 0x13, + 0x8e, 0x2c, 0x70, 0xec, 0xbc, 0x92, 0xb5, 0x15, + 0xb5, 0xe7, 0x5c, 0x03, 0x61, 0x42, 0xd8, 0x5f, + 0xe4, 0xe3, 0xac, 0x37, 0x86, 0x2b, 0xd6, 0xfa, + 0xef, 0x9c, 0xa4, 0xc1, 0x69, 0x6a, 0xbd, 0xae, + 0x72, 0xf2, 0x6a, 0xd4, 0x56, 0xd7, 0x9d, 0x74, + 0x80, 0xd0, 0x5b, 0x20, 0xfb, 0xc8, 0x35, 0x45, + 0x45, 0x14, 0x14, 0x6c, 0x6d, 0xe9, 0x00, 0xa1, + 0xb6, 0x41, 0xd9, 0x9f, 0x35, 0x26, 0xd8, 0xca, + 0x6c, 0x16, 0x96, 0xab, 0xda, 0xf1, 0x80, 0x50, + 0x5b, 0x20, 0xec, 0xcf, 0x91, 0x27, 0x67, 0xe9, + 0x32, 0xde, 0x6b, 0x6d, 0x9e, 0xdd, 0x5b, 0xe7, + 0x79, 0xb3, 0x0f, 0x34, 0xba, 0xc7, 0x7b, 0xd6, + 0x37, 0xd6, 0x26, 0xb4, 0x50, 0x26, 0xbb, 0x22, + 0x1d, 0x04, 0x8d, 0xd1, 0x13, 0x3c, 0x2c, 0xeb, + 0x4c, 0xab, 0x29, 0x78, 0x43, 0xb2, 0xdb, 0x32, + 0x4d, 0x66, 0xc8, 0xf9, 0x66, 0xd0, 0xaa, 0x04, + 0xc2, 0x22, 0x05, 0x70, 0xaf, 0x60, 0x48, 0xea, + 0xa3, 0x83, 0x99, 0x47, 0xf8, 0xad, 0xa7, 0x9e, + 0xeb, 0xe9, 0xd5, 0xe8, 0x32, 0x80, 0xd9, 0xab, + 0xe4, 0xf8, 0x45, 0x77, 0x02, 0x10, 0x2e, 0xc1, + 0xb0, 0xa5, 0xed, 0x65, 0xc5, 0x8b, 0x15, 0xe0, + 0xbc, 0xd0, 0xf3, 0x37, 0x68, 0xa5, 0x14, 0xb4, + 0xa5, 0xe5, 0x91, 0x05, 0x79, 0x88, 0xf5, 0xd9, + 0xb3, 0x1a, 0x04, 0x9b, 0xa5, 0x00, 0xb9, 0x55, + 0x49, 0x4e, 0x67, 0xcf, 0x0d, 0x92, 0x9f, 0xd7, + 0x9a, 0x38, 0x3d, 0x31, 0xd1, 0x4c, 0x17, 0x96, + 0xb3, 0xb6, 0x64, 0x9b, 0x0a, 0xaf, 0x4d, 0x48, + 0xae, 0xdf, 0x7c, 0x8a, 0x0d, 0x20, 0x29, 0x71, + 0xf9, 0x0b, 0x09, 0x92, 0xd5, 0x2d, 0xb1, 0x98, + 0x8d, 0x05, 0x1a, 0x95, 0x92, 0xae, 0x4e, 0xb9, + 0xda, 0x9b, 0x52, 0x75, 0xe6, 0x58, 0x88, 0x51, + 0xa9, 0x24, 0x72, 0x81, 0x75, 0xcd, 0x41, 0xfc, + 0x39, 0x9f, 0xb8, 0x3f, 0xde, 0x1f, 0x56, 0xea, + 0x2d, 0xea, 0xcb, 0xf4, 0x27, 0x85, 0x7e, 0x27, + 0x85, 0x7e, 0x27, 0x85, 0x7e, 0x27, 0x85, 0x7e, + 0x27, 0x85, 0x7e, 0x22, 0x40, 0xa8, 0x06, 0x60, + 0x2d, 0x08, 0xd6, 0x8e, 0x77, 0x78, 0x9b, 0x0e, + 0x9d, 0x31, 0xfd, 0x89, 0x0f, 0x6a, 0x21, 0xa5, + 0xce, 0x73, 0x45, 0x69, 0x00, 0x19, 0x6b, 0x8a, + 0xce, 0xa8, 0xf4, 0x2b, 0xda, 0x45, 0x6a, 0x39, + 0x54, 0x61, 0x62, 0xca, 0x43, 0x2d, 0x7c, 0x22, + 0x59, 0x68, 0x68, 0x3b, 0x09, 0xb2, 0x4f, 0x10, + 0xc6, 0xe8, 0x09, 0xdf, 0xed, 0x14, 0x51, 0xc7, + 0x56, 0xb2, 0xbe, 0xcb, 0xee, 0x5b, 0x8d, 0x71, + 0xb2, 0x16, 0x52, 0xd0, 0xc2, 0xde, 0xab, 0xf6, + 0xab, 0xa9, 0xa7, 0x85, 0x7e, 0x27, 0x85, 0x7e, + 0x27, 0x85, 0x7e, 0x27, 0x85, 0x7e, 0x27, 0x85, + 0x7e, 0x27, 0x85, 0x7e, 0x21, 0x00, 0x00, 0xd2, + 0x0a, 0x3d, 0xb3, 0x87, 0x44, 0x00, 0x0f, 0x7e, + 0x78, 0x57, 0xe2, 0x78, 0x57, 0xe2, 0x78, 0x57, + 0xe2, 0x53, 0x20, 0xee, 0x78, 0xd2, 0xd9, 0x04, + 0xd5, 0x2d, 0xac, 0xaa, 0x24, 0xfe, 0x13, 0x59, + 0x6b, 0x97, 0xc1, 0xea, 0xf5, 0x41, 0xb2, 0x26, + 0xde, 0xca, 0xce, 0x15, 0x56, 0x99, 0xaa, 0x9d, + 0xec, 0x09, 0x69, 0x15, 0xb6, 0x5c, 0x4d, 0x37, + 0x40, 0x00, 0xb4, 0xc9, 0x61, 0xe7, 0x41, 0x04, + 0xd6, 0x1e, 0x7c, 0x2d, 0x74, 0x70, 0x39, 0xaa, + 0x49, 0xe2, 0xc1, 0xc0, 0x67, 0x4f, 0x8a, 0xa4, + 0x04, 0x8f, 0xe8, 0x58, 0x98, 0x78, 0xd5, 0x8d, + 0x70, 0x83, 0x90, 0xe4, 0x13, 0x96, 0x83, 0x65, + 0x41, 0x42, 0x4e, 0x29, 0x5c, 0x97, 0x2c, 0x98, + 0xc5, 0xca, 0xf1, 0xf6, 0xf1, 0x20, 0x20, 0x4d, + 0x83, 0x41, 0x25, 0xdf, 0x0a, 0xa0, 0x31, 0xbc, + 0xd7, 0xd7, 0x8d, 0xa8, 0xc1, 0x99, 0xf9, 0x69, + 0x14, 0x91, 0x0b, 0x29, 0xbb, 0x71, 0x85, 0x87, + 0xce, 0x0b, 0xde, 0x71, 0x78, 0x57, 0xe2, 0x78, + 0x57, 0xe2, 0x78, 0x57, 0xe2, 0x78, 0x57, 0xe3, + 0xd1, 0x9b, 0x35, 0xfe, 0x2b, 0x69, 0xe7, 0xba, + 0xfa, 0x4f, 0xd1, 0xb6, 0x3f, 0xb6, 0xe9, 0xdc, + 0x09, 0xf8, 0x97, 0xc0, 0x67, 0x45, 0x38, 0xc4, + 0x18, 0x24, 0x54, 0x65, 0x3e, 0xfb, 0x92, 0xa4, + 0xa5, 0x2b, 0x79, 0x74, 0x9c, 0x22, 0xb4, 0x02, + 0x0e, 0x46, 0x48, 0xf8, 0x89, 0x2b, 0x8d, 0x08, + 0x95, 0x21, 0x3c, 0x31, 0x5c, 0xb2, 0x4b, 0x4c, + 0xad, 0x3d, 0x1e, 0xfc, 0x29, 0x93, 0x63, 0x97, + 0xc0, 0x8c, 0xc4, 0x8c, 0x4d, 0x5d, 0x2e, 0x17, + 0x57, 0xa4, 0x00, 0x01, 0x56, 0xc0, 0xc2, 0xf4, + 0x78, 0x26, 0xde, 0x3a, 0x3c, 0xe0, 0xa8, 0x51, + 0xea, 0xa3, 0xd1, 0x78, 0x4b, 0x91, 0x7d, 0xea, + 0x50, 0xe2, 0x2c, 0x80, 0x4f, 0xb4, 0x18, 0xbf, + 0x8d, 0x31, 0x91, 0xc1, 0x20, 0x02, 0xa4, 0x12, + 0xa0, 0x01, 0x43, 0x60, 0x68, 0x83, 0x8f, 0xe0, + 0xd5, 0xdc, 0x9f, 0xeb, 0x1f, 0x5f, 0xf1, 0x3e, + 0xe0, 0xff, 0x00, 0x7f, 0x83, 0xec, 0x83, 0xb4, + 0x39, 0x70, 0x1f, 0x65, 0xfd, 0x4a, 0x81, 0xd6, + 0x80, 0x22, 0x6c, 0x15, 0x63, 0xa3, 0xef, 0x22, + 0xd6, 0x2d, 0x3c, 0x23, 0x8a, 0x38, 0x75, 0x03, + 0x1e, 0xe1, 0xce, 0x2b, 0x2a, 0x83, 0x8c, 0xf7, + 0x2f, 0xd2, 0x2a, 0xa1, 0x1b, 0xe6, 0xd6, 0x7c, + 0x2f, 0x2a, 0xcd, 0x90, 0x62, 0xbc, 0xd6, 0xaa, + 0x34, 0xd4, 0x1d, 0x82, 0xea, 0x95, 0x40, 0x02, + 0xef, 0x51, 0x8f, 0xd1, 0xf7, 0xb7, 0x21, 0x5d, + 0x13, 0xc8, 0x45, 0x57, 0xee, 0xc1, 0x06, 0x48, + 0x84, 0x02, 0x5b, 0x9d, 0x85, 0x2c, 0x95, 0xca, + 0x54, 0x7f, 0x23, 0x98, 0x62, 0xa1, 0xa5, 0x1b, + 0x34, 0x70, 0x9a, 0x27, 0x69, 0xd2, 0x13, 0x66, + 0xdb, 0x32, 0x5e, 0x75, 0x33, 0x1a, 0x68, 0x56, + 0xb9, 0x84, 0x8f, 0xa2, 0x31, 0xdc, 0xaa, 0x70, + 0x05, 0x2e, 0x16, 0xf8, 0x15, 0xb6, 0xb3, 0xc9, + 0xa2, 0x88, 0xd7, 0x13, 0x9e, 0x0a, 0xa2, 0x90, + 0x17, 0xc6, 0x9d, 0x55, 0x37, 0x10, 0x1b, 0x48, + 0xe0, 0x1c, 0x92, 0xc6, 0xae, 0xf1, 0xf8, 0x4c, + 0x66, 0xd0, 0x13, 0x45, 0x64, 0xae, 0xa6, 0x3d, + 0x59, 0xd2, 0x9f, 0x87, 0x4e, 0xb0, 0xa5, 0x07, + 0x62, 0x4b, 0x64, 0x84, 0x6e, 0x01, 0xd0, 0x64, + 0x98, 0x36, 0xca, 0xbb, 0x48, 0xca, 0x8d, 0x3b, + 0x03, 0x6e, 0xba, 0xe8, 0x03, 0xfa, 0x43, 0x8e, + 0x40, 0xa3, 0x49, 0x8c, 0x7e, 0x7b, 0x78, 0x01, + 0x24, 0xe5, 0x8c, 0xbc, 0x41, 0xaa, 0xa2, 0x68, + 0x42, 0x09, 0xf2, 0x05, 0xac, 0xbe, 0xca, 0x81, + 0x34, 0x0c, 0x7d, 0x61, 0xa7, 0x4b, 0xe2, 0xb6, + 0x9e, 0x7b, 0xaf, 0xa4, 0xfd, 0x10, 0x2a, 0x2a, + 0x59, 0x80, 0x1a, 0x21, 0x4b, 0xa0, 0x59, 0x2a, + 0x5f, 0x71, 0x21, 0x33, 0x00, 0x73, 0x09, 0x65, + 0xac, 0x78, 0x26, 0x24, 0x14, 0x20, 0x24, 0xd6, + 0xe0, 0x0c, 0x25, 0x82, 0x1a, 0x8f, 0x0d, 0xb4, + 0x5b, 0xdb, 0x75, 0x0d, 0x3c, 0xae, 0x0d, 0x59, + 0x81, 0x6d, 0x5b, 0x9d, 0x4f, 0x1b, 0x02, 0x9a, + 0xe9, 0x4b, 0x25, 0x2b, 0xa0, 0x10, 0xb9, 0x42, + 0x5b, 0x15, 0xb0, 0xc0, 0x4c, 0xe0, 0x14, 0x14, + 0x06, 0x54, 0xe0, 0x0c, 0xae, 0x08, 0xaf, 0x3b, + 0x98, 0x3d, 0x45, 0x55, 0x23, 0x48, 0x39, 0x8e, + 0x15, 0xcf, 0x3a, 0x25, 0x4b, 0x8d, 0x11, 0x82, + 0x2a, 0x40, 0x1d, 0x15, 0x35, 0xc5, 0x11, 0xa2, + 0x94, 0x36, 0x55, 0xd3, 0xfc, 0x53, 0x7e, 0xe0, + 0xff, 0x00, 0x78, 0x7d, 0x41, 0xa5, 0x14, 0x2a, + 0x78, 0x89, 0x48, 0x94, 0x54, 0x7a, 0x16, 0x2c, + 0x58, 0xb1, 0x52, 0x00, 0x64, 0x23, 0xa5, 0xa4, + 0x82, 0x70, 0xe8, 0x06, 0x92, 0xf6, 0x64, 0x9a, + 0x60, 0x66, 0x8d, 0x7e, 0x68, 0x8a, 0x78, 0x02, + 0x66, 0xef, 0x7c, 0x92, 0x9e, 0xc9, 0xbb, 0x2d, + 0x72, 0x5b, 0x00, 0xca, 0xf8, 0x89, 0x05, 0xbf, + 0x62, 0x10, 0xb5, 0xcd, 0xf3, 0xe9, 0x28, 0xb8, + 0xe5, 0x90, 0xce, 0x29, 0x88, 0x54, 0x10, 0x06, + 0xa2, 0x14, 0x04, 0xee, 0xa2, 0xcc, 0x70, 0xe6, + 0x90, 0x4b, 0x61, 0xbc, 0x57, 0x11, 0xe4, 0x91, + 0x22, 0x86, 0x07, 0xb6, 0xba, 0xe4, 0x38, 0x02, + 0x90, 0xe1, 0xbd, 0x34, 0x02, 0x0f, 0x05, 0xe1, + 0x41, 0x7e, 0x87, 0x8d, 0x93, 0x2f, 0xa8, 0x2c, + 0x58, 0xb1, 0x62, 0xc2, 0x6b, 0x6e, 0x8f, 0x38, + 0x89, 0x0d, 0x52, 0xa8, 0xe1, 0x58, 0x80, 0xb5, + 0xcd, 0x05, 0x71, 0xb6, 0x91, 0x01, 0xe2, 0x24, + 0xc9, 0x30, 0x1a, 0x96, 0x62, 0x9f, 0x08, 0x23, + 0x90, 0x38, 0x7d, 0x43, 0xef, 0x9b, 0x95, 0xf5, + 0x34, 0x9a, 0x32, 0xd4, 0x87, 0xf9, 0xd2, 0x12, + 0xa9, 0x2a, 0xd1, 0x8a, 0xf3, 0xcd, 0x07, 0x4d, + 0xab, 0xc0, 0x89, 0x84, 0xe1, 0xc5, 0x76, 0xb0, + 0x14, 0x0c, 0xca, 0xc2, 0x6e, 0xc0, 0xb6, 0x3f, + 0xd4, 0xc8, 0x98, 0xd9, 0x61, 0x01, 0x24, 0xfc, + 0xe3, 0xc8, 0xd4, 0x9f, 0xc0, 0xc7, 0x5c, 0x4f, + 0x02, 0xe1, 0x6e, 0x27, 0x75, 0x1d, 0xd0, 0x23, + 0xec, 0xac, 0x72, 0x49, 0xbc, 0x71, 0x88, 0x07, + 0x30, 0x6a, 0x0d, 0x9b, 0xd0, 0xf3, 0xaf, 0xdb, + 0x46, 0x28, 0xd0, 0xd3, 0x04, 0x6a, 0x9d, 0xab, + 0x5e, 0x20, 0xa3, 0xf4, 0x42, 0xdc, 0x78, 0xf1, + 0x35, 0x12, 0xb9, 0x02, 0x2a, 0x99, 0x61, 0x0d, + 0x04, 0xe1, 0xc7, 0x96, 0x7a, 0xb2, 0x90, 0x04, + 0xd7, 0x85, 0x22, 0xd9, 0xc2, 0x74, 0xbe, 0x2b, + 0x69, 0xe7, 0xba, 0xfa, 0x7e, 0xd5, 0x4d, 0x77, + 0x82, 0x92, 0xf4, 0xbb, 0xb1, 0x31, 0xfb, 0xb8, + 0xca, 0xea, 0x58, 0xad, 0x2e, 0xa7, 0x26, 0xa0, + 0x0d, 0xea, 0x12, 0x3c, 0x25, 0xb2, 0x58, 0xca, + 0xc4, 0x7b, 0xd6, 0x8b, 0xd3, 0xfd, 0x9f, 0x96, + 0x43, 0xa5, 0x14, 0x9d, 0xb7, 0x38, 0x0d, 0x69, + 0xee, 0xe0, 0xde, 0x7c, 0x0e, 0x89, 0x65, 0x6a, + 0xc5, 0xf7, 0x82, 0xb6, 0xa8, 0x2c, 0x69, 0xa2, + 0x06, 0x17, 0x41, 0xf2, 0x1a, 0x10, 0x51, 0x2b, + 0xba, 0x1d, 0x38, 0x56, 0x4a, 0x3a, 0x90, 0xef, + 0x32, 0x5c, 0xc2, 0x37, 0x4a, 0x9b, 0x5b, 0xc4, + 0x71, 0x0b, 0x21, 0x4d, 0xb8, 0x09, 0xaf, 0xef, + 0xaa, 0x06, 0x21, 0xd0, 0x37, 0x6f, 0xf4, 0xa2, + 0x12, 0x4d, 0xd4, 0x12, 0xf0, 0x96, 0x82, 0x7a, + 0x3e, 0xff, 0x00, 0x0d, 0xce, 0xd7, 0xef, 0xdc, + 0x1f, 0xef, 0xaf, 0xec, 0xdb, 0xdc, 0x21, 0x73, + 0x47, 0xc1, 0x00, 0xad, 0x24, 0xd6, 0x11, 0x03, + 0x74, 0xa7, 0x54, 0x6e, 0x23, 0x1e, 0xcc, 0xd8, + 0x53, 0x8b, 0x5b, 0xb9, 0xc3, 0x0d, 0x14, 0x62, + 0xd4, 0xc1, 0x95, 0x2b, 0x00, 0xc3, 0xe6, 0xeb, + 0x29, 0x69, 0xa2, 0x9b, 0x56, 0x74, 0xdd, 0x82, + 0x9b, 0x33, 0xd8, 0x57, 0xa0, 0x14, 0x97, 0x47, + 0xd2, 0x38, 0xcd, 0xb3, 0x2c, 0xd6, 0x23, 0x18, + 0xa9, 0xb9, 0x21, 0xbb, 0x7d, 0xb2, 0xb4, 0x94, + 0x4b, 0x5e, 0x92, 0x3a, 0xe1, 0x97, 0x8e, 0x84, + 0x48, 0x60, 0x0d, 0xa8, 0x23, 0x81, 0x4d, 0xa6, + 0xae, 0xd0, 0x78, 0x42, 0xe5, 0x12, 0x7e, 0xd8, + 0xfe, 0x15, 0xd7, 0x2a, 0x40, 0xb9, 0x52, 0xe0, + 0x55, 0x98, 0x49, 0x37, 0x78, 0x9d, 0x87, 0x4b, + 0x76, 0xcc, 0xee, 0x96, 0x3d, 0x73, 0xe4, 0xcb, + 0x4d, 0x29, 0xb9, 0x4d, 0x7b, 0xd3, 0x5b, 0x31, + 0x31, 0xef, 0x35, 0x9f, 0x23, 0x09, 0xca, 0x11, + 0x64, 0x32, 0x1a, 0x06, 0x8b, 0x8c, 0x8e, 0x1c, + 0xb3, 0x95, 0x3a, 0xa2, 0x98, 0x9e, 0xdc, 0x23, + 0x30, 0xf3, 0xcf, 0x39, 0x62, 0x59, 0x14, 0xc1, + 0x51, 0xd9, 0x2c, 0x22, 0x88, 0x58, 0xf7, 0x8d, + 0x57, 0x42, 0xdb, 0x16, 0x0a, 0x5d, 0xdc, 0x62, + 0x50, 0xd5, 0x6c, 0x39, 0xe6, 0x69, 0x37, 0x04, + 0xa7, 0x56, 0x23, 0xb4, 0x89, 0xae, 0xea, 0xab, + 0xf5, 0x07, 0x0f, 0x0d, 0x8b, 0xc2, 0x35, 0xce, + 0x84, 0x6d, 0x2b, 0xc3, 0xee, 0xe1, 0x06, 0x63, + 0xf0, 0xc4, 0x70, 0x98, 0x87, 0x1b, 0x84, 0x2a, + 0xac, 0xec, 0x01, 0x09, 0x45, 0x26, 0x04, 0x6b, + 0x3c, 0x85, 0x36, 0x69, 0x01, 0x25, 0x89, 0x32, + 0x87, 0x66, 0x50, 0x03, 0x0a, 0x5d, 0x5e, 0xad, + 0x65, 0x93, 0xb4, 0xea, 0x14, 0xf3, 0x8c, 0x89, + 0x7b, 0x44, 0x16, 0x6c, 0xe7, 0xd7, 0x81, 0x97, + 0x4e, 0x2e, 0x52, 0x27, 0x34, 0x9d, 0x86, 0x45, + 0xe6, 0xa1, 0x28, 0xc2, 0xef, 0xe0, 0x28, 0xf5, + 0x60, 0xd0, 0x41, 0x14, 0x21, 0x9f, 0x31, 0x58, + 0x8a, 0x48, 0x24, 0xac, 0xe2, 0x6b, 0xd1, 0xf1, + 0xb7, 0xdd, 0xd7, 0xc5, 0x6d, 0x3c, 0xf7, 0x58, + 0x82, 0x7b, 0x4f, 0x06, 0x3b, 0xe1, 0x2a, 0x31, + 0xe8, 0x11, 0xac, 0x48, 0x0d, 0x46, 0x27, 0x9c, + 0x70, 0x5e, 0x8d, 0x43, 0x05, 0xe7, 0xa8, 0x39, + 0xed, 0x6b, 0xd2, 0x50, 0xb8, 0x0c, 0x41, 0x61, + 0x1c, 0x22, 0xf3, 0x18, 0xab, 0xbb, 0x57, 0x99, + 0x23, 0xac, 0xc4, 0x7b, 0xa6, 0xe9, 0x58, 0x68, + 0x12, 0x01, 0x5c, 0xfc, 0x9d, 0x47, 0x4d, 0x1c, + 0xe7, 0x01, 0xb4, 0x0c, 0x1c, 0xd4, 0xb2, 0x88, + 0x9f, 0xa2, 0xbc, 0x85, 0x44, 0xf6, 0xdc, 0x48, + 0xf5, 0x37, 0xa0, 0x15, 0x3a, 0x3c, 0x96, 0xf4, + 0x00, 0x81, 0xd8, 0xaa, 0x0a, 0x8e, 0x1d, 0x88, + 0xf6, 0x73, 0x15, 0x75, 0x54, 0xae, 0xa2, 0x6a, + 0xaa, 0x4b, 0x0a, 0x06, 0x70, 0x0e, 0xe4, 0xb3, + 0xe1, 0x89, 0x84, 0x20, 0x14, 0x39, 0x4b, 0x40, + 0x3f, 0x87, 0xb2, 0x96, 0x96, 0xec, 0xb5, 0xc3, + 0x16, 0x7a, 0x1f, 0x50, 0xe4, 0xef, 0xc3, 0xea, + 0xf1, 0x2e, 0x91, 0x8f, 0xf6, 0x6b, 0xc7, 0x33, + 0xe8, 0xf5, 0xeb, 0xd7, 0xbb, 0xca, 0xcb, 0xf8, + 0x95, 0xed, 0xaa, 0x20, 0x80, 0x8a, 0xf3, 0x7f, + 0x84, 0x8d, 0x15, 0x5b, 0x0b, 0x12, 0x34, 0xdf, + 0x10, 0x39, 0xe8, 0xdf, 0x68, 0x18, 0xaa, 0x94, + 0x18, 0xab, 0x99, 0x6d, 0xa3, 0x9c, 0x3c, 0x70, + 0xaa, 0x04, 0x4d, 0x05, 0x05, 0xb9, 0x13, 0xd8, + 0xb5, 0xad, 0x7a, 0x3d, 0xc1, 0x4e, 0x81, 0x6a, + 0x9a, 0x20, 0x86, 0xd5, 0x9e, 0x97, 0x26, 0x36, + 0xb0, 0xbf, 0xb3, 0x9a, 0x0a, 0x91, 0x91, 0x51, + 0x06, 0x10, 0xc0, 0x5d, 0xa7, 0xf4, 0xa9, 0x68, + 0x8c, 0x37, 0xea, 0x9f, 0x39, 0x34, 0x2d, 0x40, + 0xd7, 0x04, 0xa2, 0x10, 0x28, 0xf2, 0x25, 0x36, + 0xa2, 0x99, 0xd5, 0xb4, 0xd5, 0xea, 0xb7, 0xaf, + 0x5e, 0xbd, 0x7a, 0x4b, 0x43, 0xa2, 0x56, 0x30, + 0xb3, 0x08, 0x9b, 0x90, 0x88, 0x4c, 0x44, 0xbe, + 0x17, 0x18, 0x45, 0x1d, 0x98, 0xc4, 0x14, 0x47, + 0xb3, 0x63, 0x4d, 0x8c, 0x81, 0x21, 0x2f, 0x63, + 0x85, 0x2b, 0x3d, 0x49, 0xcd, 0x81, 0x21, 0x2f, + 0xce, 0xc4, 0x6a, 0x58, 0x76, 0x2a, 0xb1, 0xba, + 0x14, 0x94, 0xea, 0x2a, 0x13, 0x3a, 0xb1, 0xf3, + 0x67, 0x44, 0xb4, 0xc0, 0x00, 0x82, 0x32, 0x24, + 0x53, 0x6b, 0xac, 0x31, 0x08, 0x6d, 0xb4, 0x42, + 0xaf, 0x8a, 0x8e, 0x20, 0xd4, 0xc5, 0x59, 0xc6, + 0x50, 0x62, 0x3a, 0xc5, 0xac, 0x54, 0x8a, 0xab, + 0x4a, 0x37, 0x70, 0x50, 0x3e, 0xbd, 0x90, 0x80, + 0x28, 0xed, 0x6a, 0xc0, 0xa9, 0x4a, 0x6f, 0x5a, + 0x4e, 0x5d, 0x85, 0x4d, 0x84, 0x6d, 0x32, 0xfa, + 0x33, 0x3d, 0xf6, 0xc9, 0xd8, 0x94, 0x84, 0x07, + 0x3e, 0x8c, 0xc0, 0x35, 0x7e, 0x02, 0x7a, 0x75, + 0x2b, 0xfc, 0xcf, 0x38, 0xd8, 0xf7, 0xde, 0xdc, + 0x09, 0xac, 0x86, 0x3b, 0x87, 0x3a, 0x13, 0x89, + 0x93, 0x98, 0x01, 0x3a, 0xde, 0x72, 0x06, 0xf6, + 0xa7, 0x0a, 0xac, 0x60, 0xe5, 0x76, 0x32, 0x9d, + 0xac, 0xc8, 0xa6, 0x94, 0x58, 0xf0, 0x5d, 0xe1, + 0xb0, 0x17, 0x3c, 0x0b, 0xe8, 0x65, 0x00, 0x56, + 0xa0, 0x0c, 0x26, 0x46, 0x64, 0x10, 0x32, 0x8c, + 0x7a, 0x68, 0x98, 0x31, 0x4f, 0x2f, 0x4a, 0x00, + 0x47, 0x4a, 0xc9, 0x0d, 0xfd, 0x6c, 0x2d, 0xf6, + 0xdb, 0xb6, 0x6a, 0xa9, 0x43, 0x58, 0x2e, 0x26, + 0x10, 0x09, 0xf9, 0x12, 0xea, 0x05, 0x12, 0xab, + 0x6d, 0xdd, 0x18, 0x19, 0x98, 0xcf, 0x5d, 0xca, + 0xf8, 0xad, 0xa7, 0x9e, 0xeb, 0xc6, 0xab, 0x50, + 0x19, 0x59, 0x80, 0x4d, 0xce, 0x31, 0xda, 0x19, + 0xc3, 0x85, 0x64, 0xaa, 0x15, 0xf1, 0x85, 0x73, + 0xa0, 0xc6, 0x09, 0xc3, 0x08, 0xf4, 0xf0, 0x62, + 0x6d, 0x18, 0x24, 0x0b, 0x02, 0x34, 0xcd, 0x84, + 0xff, 0x00, 0x04, 0xb1, 0x57, 0x4a, 0xc1, 0x11, + 0x64, 0xce, 0x04, 0x6d, 0x26, 0x00, 0x6d, 0xb6, + 0x2d, 0x12, 0xff, 0x00, 0x00, 0x2e, 0x8c, 0x24, + 0xd6, 0x01, 0x35, 0x0a, 0xf4, 0x61, 0xc3, 0x84, + 0x65, 0xd0, 0x17, 0xda, 0x91, 0xc3, 0xa1, 0x0c, + 0xdb, 0x73, 0x43, 0x08, 0x8b, 0xc6, 0xc2, 0x96, + 0xd7, 0x38, 0x8d, 0x9d, 0x1c, 0xa1, 0x9c, 0xe1, + 0x4c, 0x64, 0x1a, 0xed, 0x33, 0xa7, 0x9c, 0xc5, + 0xa8, 0x2a, 0x67, 0xca, 0x47, 0xc9, 0x68, 0x47, + 0xe4, 0x13, 0x2f, 0x08, 0x56, 0x21, 0xa8, 0xc2, + 0x01, 0xc9, 0x20, 0xa1, 0x78, 0xe1, 0xc2, 0xb6, + 0xdb, 0xaa, 0x40, 0x62, 0x2c, 0xba, 0x4d, 0x13, + 0xf7, 0x07, 0xfb, 0xeb, 0xfb, 0x22, 0xed, 0x3a, + 0x52, 0x33, 0xac, 0x8e, 0x8c, 0xf1, 0xcd, 0x4f, + 0x25, 0x94, 0x05, 0x0f, 0xac, 0x70, 0x43, 0x88, + 0xc4, 0xc9, 0xbe, 0x98, 0xde, 0x59, 0x18, 0xa7, + 0x36, 0x57, 0xee, 0xc3, 0x56, 0xc3, 0xac, 0x02, + 0x2d, 0x74, 0xe6, 0x79, 0x85, 0xbd, 0xf9, 0xb2, + 0x54, 0x01, 0x62, 0xf7, 0xd2, 0x8a, 0x50, 0x41, + 0x3f, 0x29, 0xdb, 0x07, 0x34, 0xf0, 0xeb, 0x96, + 0xa8, 0x12, 0x6d, 0x43, 0x0f, 0x30, 0xb2, 0xaf, + 0x7c, 0x0f, 0x25, 0x60, 0x53, 0x0c, 0x6e, 0x2c, + 0x53, 0xba, 0x19, 0x8b, 0x82, 0x11, 0x36, 0x4b, + 0xad, 0x24, 0xb9, 0x61, 0x86, 0x54, 0x7f, 0xc4, + 0xc1, 0xad, 0xa9, 0x73, 0x74, 0x7c, 0xff, 0x00, + 0xe0, 0x47, 0x2d, 0x75, 0x4a, 0xf8, 0xad, 0xa7, + 0x9e, 0xeb, 0xfc, 0x15, 0x7a, 0x8e, 0xf3, 0xca, + 0x48, 0x14, 0x13, 0x17, 0xae, 0x71, 0x91, 0x67, + 0xf7, 0x77, 0x06, 0x53, 0xb3, 0x43, 0xf3, 0x4d, + 0x6d, 0xe2, 0xc6, 0x06, 0x7c, 0xb3, 0xf5, 0x0f, + 0xcd, 0xb5, 0x26, 0xe7, 0xa3, 0xe2, 0x5e, 0xd3, + 0x02, 0xe9, 0xf4, 0x78, 0x6d, 0x9e, 0x3c, 0xfc, + 0x9e, 0xe8, 0xde, 0x40, 0xbc, 0xdf, 0x45, 0x93, + 0x1c, 0x90, 0x62, 0x43, 0x3e, 0xd0, 0x06, 0xc2, + 0x77, 0x3a, 0x46, 0x4c, 0xae, 0xfa, 0x6e, 0x9f, + 0xbe, 0x4d, 0x10, 0x82, 0x5a, 0x1a, 0xd5, 0xd0, + 0xf2, 0x32, 0x73, 0xc5, 0x46, 0xeb, 0x47, 0xa3, + 0x3f, 0xb8, 0x3f, 0xde, 0x1f, 0x5a, 0x3b, 0x8d, + 0xc5, 0x4a, 0xb8, 0x59, 0x40, 0x8a, 0x3e, 0x9f, + 0x5e, 0xbd, 0x7a, 0xb8, 0x00, 0x57, 0x48, 0x25, + 0xb5, 0x34, 0xa9, 0x5c, 0x01, 0x17, 0x75, 0x17, + 0x2e, 0x5f, 0x46, 0xa3, 0x11, 0x39, 0xbd, 0x33, + 0x5a, 0x0d, 0x71, 0x69, 0x76, 0x78, 0x34, 0x4d, + 0x7f, 0xc5, 0xf6, 0xb5, 0xab, 0xac, 0xae, 0x25, + 0xd1, 0x6a, 0x32, 0x02, 0xfc, 0xfb, 0xc6, 0x75, + 0x2b, 0xc9, 0x4d, 0x8c, 0x5e, 0x86, 0xd6, 0xc7, + 0x5d, 0x76, 0x2a, 0x80, 0x20, 0x23, 0xf8, 0x09, + 0x8c, 0x3b, 0x00, 0x32, 0x43, 0xa8, 0x6e, 0x17, + 0xc6, 0x83, 0x14, 0x4c, 0x15, 0x92, 0x2e, 0x8d, + 0x9f, 0xba, 0x42, 0x63, 0x2a, 0x39, 0x74, 0x76, + 0xe4, 0x8c, 0xde, 0xaa, 0x83, 0x8b, 0x0a, 0x79, + 0xa2, 0xe6, 0x8c, 0x32, 0x42, 0x91, 0x87, 0xa8, + 0xf5, 0xeb, 0xd7, 0xaf, 0x5b, 0xf2, 0xa4, 0xe5, + 0xbb, 0x24, 0x85, 0x01, 0x84, 0x7f, 0xb4, 0xd7, + 0x54, 0xaf, 0x8a, 0xda, 0x79, 0xee, 0xb1, 0x56, + 0x18, 0xbe, 0xc8, 0x14, 0x09, 0x35, 0xb5, 0x34, + 0x15, 0x4a, 0xf2, 0x3e, 0x99, 0xf3, 0xe7, 0xcf, + 0x59, 0x70, 0x73, 0x40, 0xb0, 0x9d, 0xf3, 0xd8, + 0x01, 0x48, 0x19, 0x4b, 0x44, 0x46, 0x46, 0xcb, + 0x8a, 0x01, 0x5f, 0xe9, 0xcb, 0xdd, 0x68, 0x7a, + 0x51, 0x8c, 0x94, 0x31, 0x38, 0x1f, 0x73, 0x6d, + 0xfa, 0xf1, 0xb5, 0x9e, 0x80, 0x9f, 0x3e, 0x7b, + 0x4c, 0xcb, 0xd8, 0xd9, 0x39, 0x35, 0x39, 0xea, + 0x06, 0x69, 0xa0, 0xa0, 0x12, 0x7e, 0x88, 0x12, + 0x7b, 0xc5, 0x4d, 0x16, 0xd5, 0x68, 0xa8, 0xc3, + 0x50, 0xa4, 0x87, 0x20, 0xec, 0xa9, 0x75, 0x8a, + 0x02, 0x5b, 0x01, 0x8d, 0xaa, 0x0e, 0x25, 0x8c, + 0x66, 0x47, 0xb4, 0x70, 0xe5, 0xb2, 0x00, 0x29, + 0x49, 0xeb, 0xc6, 0xbd, 0xba, 0x3d, 0x71, 0xc9, + 0xf3, 0xe8, 0x13, 0xe3, 0xca, 0x28, 0x0d, 0x05, + 0x06, 0xcd, 0xce, 0x41, 0xcc, 0xff, 0x00, 0x78, + 0x7d, 0x0e, 0xa4, 0xa6, 0x6f, 0x73, 0x1c, 0x0a, + 0xc0, 0x7f, 0x0e, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, + 0xbf, 0x71, 0x5e, 0x2a, 0x1c, 0x24, 0x4d, 0xc8, + 0xab, 0x67, 0x62, 0xc0, 0x26, 0x16, 0x2a, 0x28, + 0xc4, 0x29, 0x11, 0x38, 0x3c, 0xd4, 0x6f, 0xdf, + 0xe1, 0x2d, 0xf9, 0x43, 0x06, 0xda, 0x85, 0x39, + 0x68, 0x6b, 0x00, 0x8d, 0x52, 0xbf, 0x84, 0xdf, + 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, 0x25, 0x8a, + 0x0c, 0x20, 0xc4, 0xc0, 0xef, 0x80, 0x4c, 0x7f, + 0x61, 0xd4, 0xd5, 0xdb, 0x8c, 0x5f, 0x15, 0xb4, + 0xf3, 0xdd, 0x78, 0xa5, 0x41, 0x39, 0xa8, 0xf4, + 0xdb, 0x51, 0x4a, 0x58, 0x98, 0x53, 0x85, 0xfb, + 0x33, 0xa7, 0x35, 0x72, 0x17, 0xa0, 0xc4, 0xa2, + 0x45, 0x4f, 0x72, 0xda, 0xcc, 0x19, 0xd0, 0x52, + 0x14, 0xd2, 0xd4, 0x64, 0xa6, 0x44, 0x2e, 0x08, + 0xce, 0x02, 0x97, 0x37, 0xf0, 0x17, 0xd5, 0x23, + 0x5e, 0x33, 0x71, 0x00, 0x86, 0xf8, 0x0f, 0x27, + 0xc2, 0xb1, 0x05, 0x25, 0xc6, 0x5e, 0xa3, 0x4f, + 0xbc, 0x5c, 0xc3, 0x1c, 0x88, 0x70, 0xbe, 0xed, + 0x57, 0xc7, 0x39, 0x4f, 0x5b, 0x59, 0xc0, 0x2e, + 0x8f, 0x7e, 0xbe, 0xd6, 0x27, 0xdd, 0xb7, 0x60, + 0x54, 0xf0, 0x23, 0xa7, 0xb6, 0xcb, 0x32, 0x77, + 0xd9, 0x1e, 0x08, 0x34, 0x29, 0x0f, 0xa1, 0xe1, + 0xa9, 0x2a, 0x8a, 0xe9, 0x8c, 0xbe, 0x4b, 0xc5, + 0xd6, 0xf6, 0x80, 0xe1, 0xbe, 0x85, 0x6e, 0x49, + 0x89, 0x96, 0x27, 0x7a, 0xe6, 0xb4, 0x2c, 0x48, + 0x96, 0x9b, 0xc1, 0xa6, 0x18, 0x47, 0xaf, 0x6c, + 0x72, 0xaa, 0x2b, 0x88, 0x0f, 0x6e, 0x74, 0x50, + 0xa0, 0x3e, 0x2f, 0x7c, 0x74, 0xa3, 0x58, 0xb4, + 0x02, 0x1a, 0x9c, 0x23, 0x2e, 0x4e, 0xb5, 0x8d, + 0xf9, 0x48, 0xab, 0xed, 0xa5, 0x82, 0xb6, 0x5a, + 0x60, 0x83, 0x7a, 0x11, 0x80, 0x02, 0x09, 0x5a, + 0x21, 0xf0, 0x00, 0x6e, 0xc3, 0x0e, 0x10, 0xae, + 0x6b, 0x79, 0x10, 0x1c, 0xaa, 0xe7, 0xdc, 0x1f, + 0xef, 0xf1, 0x7d, 0x91, 0xcc, 0xf7, 0x3f, 0xd9, + 0xce, 0xb1, 0xc9, 0x5c, 0x69, 0x31, 0xd1, 0xa9, + 0x83, 0x89, 0xcf, 0x39, 0x76, 0xa6, 0x3e, 0x00, + 0xe3, 0xf5, 0x1b, 0x12, 0xaa, 0x62, 0xb3, 0xd6, + 0xb8, 0xb5, 0xac, 0x71, 0xda, 0x9b, 0x1f, 0xca, + 0xdd, 0x58, 0x5f, 0xfc, 0x27, 0x25, 0x75, 0x4e, + 0x78, 0xad, 0xa7, 0x9e, 0xeb, 0xc5, 0x2a, 0x6c, + 0x8c, 0x2a, 0x1e, 0x41, 0xed, 0x68, 0xd3, 0x03, + 0xc0, 0xf9, 0x19, 0x35, 0xf4, 0x8b, 0x9b, 0x00, + 0x65, 0x30, 0x16, 0xe4, 0x4d, 0xed, 0xb7, 0x0c, + 0x18, 0xf2, 0x4a, 0x1c, 0x20, 0xf4, 0xec, 0x04, + 0x14, 0x16, 0x0a, 0x20, 0x7b, 0x71, 0x5e, 0xa0, + 0x1e, 0x9a, 0x52, 0xa6, 0x17, 0xa0, 0x13, 0x1d, + 0xa4, 0x7a, 0x18, 0xea, 0x51, 0x45, 0xe1, 0xad, + 0xbf, 0x06, 0xac, 0xff, 0x00, 0x05, 0xa8, 0x88, + 0xa0, 0x22, 0x84, 0x0a, 0xf0, 0x02, 0xba, 0x78, + 0x5c, 0x7b, 0x13, 0xec, 0x30, 0xeb, 0xa8, 0x06, + 0x6b, 0xc1, 0xee, 0x26, 0x37, 0x19, 0xb4, 0xb0, + 0x00, 0x01, 0x77, 0x12, 0x1e, 0xe1, 0xb3, 0x52, + 0x6d, 0x01, 0x06, 0xad, 0x57, 0xd1, 0xbc, 0xcf, + 0xe8, 0x2f, 0xf0, 0xe2, 0x2d, 0x5e, 0x6a, 0x00, + 0x94, 0x6c, 0xe6, 0x0e, 0x43, 0x1f, 0x2b, 0x18, + 0x6c, 0xc9, 0xc1, 0x43, 0x8f, 0x9a, 0x19, 0x4a, + 0x1c, 0x33, 0xa9, 0x4e, 0x8e, 0xcc, 0x10, 0xc9, + 0xcc, 0x7f, 0x56, 0x97, 0x05, 0xaa, 0xe6, 0x59, + 0x44, 0xb0, 0x04, 0x2c, 0xf9, 0x74, 0xdd, 0xce, + 0x29, 0xc9, 0x84, 0x48, 0x1c, 0x83, 0x61, 0xd1, + 0x68, 0xb6, 0x30, 0xd2, 0xcb, 0xd4, 0x9f, 0x70, + 0x7f, 0xb1, 0xf4, 0x64, 0xed, 0x3b, 0x20, 0xfa, + 0x58, 0x3f, 0x4b, 0x26, 0x88, 0xd7, 0xaa, 0x3a, + 0x74, 0xe9, 0xd3, 0xaa, 0x02, 0x34, 0x83, 0x44, + 0xb1, 0xac, 0x3a, 0x8e, 0x20, 0x14, 0xbd, 0xb3, + 0x09, 0xb9, 0x59, 0x32, 0x26, 0xa3, 0x16, 0x27, + 0x63, 0xd0, 0xd1, 0x93, 0x2a, 0x29, 0xc1, 0x13, + 0x59, 0x2c, 0x8d, 0xc9, 0x16, 0x19, 0xb0, 0x0e, + 0x38, 0x47, 0x46, 0x48, 0x80, 0xc9, 0xc0, 0xaf, + 0xe0, 0x2c, 0x04, 0x7e, 0x8d, 0xdb, 0x47, 0x24, + 0x04, 0x11, 0xce, 0x0e, 0x70, 0xca, 0x26, 0xb3, + 0x6d, 0xe3, 0x4a, 0x54, 0xf1, 0xfc, 0x92, 0x4b, + 0x70, 0xce, 0xf2, 0x33, 0xdd, 0x7b, 0x2f, 0xa3, + 0x8f, 0x8f, 0x00, 0xf3, 0x3d, 0x67, 0x4e, 0x9d, + 0x3a, 0x74, 0xed, 0x85, 0x6a, 0x70, 0x34, 0x5c, + 0x41, 0xb7, 0x43, 0x3f, 0xb5, 0x95, 0xd5, 0x39, + 0xe2, 0xb6, 0x9e, 0x7b, 0xac, 0x6f, 0xb3, 0xfe, + 0xd4, 0xb7, 0x7f, 0xb4, 0x2f, 0xa2, 0x3d, 0x99, + 0x35, 0x3d, 0x40, 0x01, 0x48, 0xbd, 0xfd, 0xcd, + 0xf0, 0x91, 0x23, 0xa6, 0xda, 0x15, 0x07, 0x0a, + 0x3f, 0x5a, 0xd6, 0x1e, 0x56, 0x3d, 0xa1, 0xbb, + 0x57, 0xe0, 0x50, 0xb3, 0x94, 0xff, 0x00, 0x03, + 0xae, 0x88, 0xd6, 0xe3, 0x13, 0xf8, 0x08, 0x50, + 0xa1, 0x42, 0x85, 0x0a, 0x17, 0x8a, 0xea, 0xd0, + 0x3c, 0x01, 0x6a, 0x23, 0x64, 0x84, 0xae, 0xab, + 0xef, 0x2f, 0xd2, 0xb8, 0x1a, 0x20, 0xe8, 0x3e, + 0xdc, 0x2d, 0x10, 0x2b, 0x28, 0x23, 0xa1, 0x69, + 0xbb, 0x50, 0x69, 0xd1, 0xa4, 0x6b, 0x44, 0x73, + 0x34, 0x3e, 0x45, 0x82, 0x4f, 0xe7, 0x4e, 0x6d, + 0x89, 0x3a, 0x9c, 0xce, 0x5d, 0x67, 0x39, 0xa7, + 0x2f, 0x59, 0x5b, 0x45, 0x7c, 0xbd, 0x2b, 0x79, + 0xcf, 0x0f, 0xa9, 0x58, 0xf5, 0x65, 0xe3, 0x66, + 0x32, 0x62, 0x22, 0x94, 0xcc, 0x68, 0x2d, 0xb0, + 0x15, 0xf1, 0x68, 0x3f, 0x2d, 0x24, 0xae, 0xaa, + 0x80, 0x42, 0x99, 0x85, 0x1f, 0x24, 0x1d, 0x47, + 0xb2, 0x00, 0x54, 0x9a, 0x0f, 0x82, 0x02, 0x63, + 0x90, 0xa6, 0xb7, 0xd6, 0xa8, 0x09, 0x9f, 0xd5, + 0x76, 0x1c, 0x68, 0xce, 0x55, 0x9a, 0xa6, 0x47, + 0x82, 0x2c, 0x3a, 0xa9, 0xf0, 0x48, 0x36, 0x3a, + 0x1a, 0x89, 0x47, 0x03, 0xf0, 0xae, 0xb4, 0x0e, + 0xae, 0x01, 0xe2, 0x2c, 0x12, 0x0a, 0x92, 0x7c, + 0xed, 0xeb, 0x8c, 0xac, 0xd6, 0x8f, 0xfc, 0x07, + 0x37, 0x2f, 0x92, 0x77, 0x8a, 0xda, 0x79, 0xee, + 0xbf, 0xda, 0xb1, 0xf7, 0x07, 0xfb, 0x29, 0xdb, + 0x33, 0xe4, 0xa9, 0x71, 0xb5, 0x84, 0xa9, 0x96, + 0x4d, 0x04, 0xec, 0x91, 0xa9, 0x92, 0x6f, 0x50, + 0xd4, 0xa9, 0x52, 0xa5, 0x58, 0x08, 0x68, 0x5e, + 0x6e, 0x90, 0x92, 0x40, 0x81, 0x0d, 0x3d, 0x58, + 0x45, 0x1b, 0x1a, 0xdb, 0x59, 0x6c, 0xc9, 0xd0, + 0xeb, 0x31, 0x33, 0x2f, 0x0b, 0x11, 0x8c, 0xa9, + 0x6d, 0x21, 0xdd, 0x61, 0xa7, 0x94, 0x19, 0x2a, + 0x08, 0x84, 0x74, 0xbe, 0xab, 0x38, 0xc4, 0x11, + 0x9c, 0x62, 0xd6, 0x1f, 0x72, 0xb3, 0xbd, 0xa6, + 0x48, 0xcd, 0xd3, 0xea, 0xaa, 0xd5, 0xec, 0x8d, + 0xa0, 0x55, 0x41, 0x03, 0x09, 0xd5, 0xaa, 0x1c, + 0xa1, 0x51, 0x23, 0x12, 0x69, 0x7b, 0x16, 0xc6, + 0xf6, 0xc7, 0x71, 0x6c, 0x95, 0x20, 0xca, 0x2b, + 0x3d, 0x2a, 0x54, 0xa9, 0x52, 0xaa, 0x7c, 0x7a, + 0xa1, 0x33, 0xaa, 0xb8, 0x06, 0x34, 0x17, 0x10, + 0x0d, 0x65, 0xbc, 0xe1, 0x37, 0x6b, 0x66, 0xfb, + 0x9b, 0xad, 0x2b, 0x31, 0xa0, 0x93, 0x90, 0xc5, + 0x11, 0x5d, 0x7c, 0x56, 0x3e, 0x2b, 0x1f, 0x15, + 0x8f, 0x8a, 0xc7, 0xc5, 0x63, 0xe2, 0xb1, 0xf1, + 0x58, 0xf8, 0xac, 0x7c, 0x56, 0x3e, 0x2b, 0x1f, + 0x15, 0x8f, 0x8a, 0xc7, 0xc5, 0x63, 0xe2, 0xb1, + 0xf1, 0x58, 0xf8, 0xac, 0x7c, 0x56, 0x3e, 0x2b, + 0x1f, 0x15, 0x8f, 0x8a, 0xc1, 0xcd, 0x55, 0xc9, + 0xab, 0x94, 0x66, 0x43, 0x35, 0x10, 0x8e, 0x37, + 0x03, 0xf8, 0xad, 0xa7, 0x9e, 0xeb, 0x37, 0x8f, + 0xbd, 0x0f, 0xab, 0xdd, 0x9f, 0x57, 0xbb, 0x3e, + 0xaf, 0x76, 0x7d, 0x5e, 0xec, 0xfa, 0xbd, 0xd9, + 0xf5, 0x7b, 0xb3, 0xea, 0xf7, 0x67, 0xd5, 0xee, + 0xcf, 0xab, 0xdd, 0x9f, 0x57, 0xbb, 0x3e, 0xaf, + 0x76, 0x7d, 0x5e, 0xec, 0xfa, 0xbd, 0xd9, 0xf5, + 0x7b, 0xb3, 0xea, 0xf7, 0x67, 0xd5, 0xee, 0xcf, + 0xab, 0xdd, 0x9f, 0x57, 0xbb, 0x3e, 0xaf, 0x76, + 0x7d, 0x5e, 0xec, 0xfa, 0xbd, 0xd9, 0xf5, 0x7b, + 0xb3, 0xea, 0xf7, 0x67, 0xd5, 0xee, 0xcd, 0xc3, + 0xa9, 0xcd, 0xde, 0x31, 0x59, 0x1b, 0x5a, 0x20, + 0xb6, 0x51, 0xe2, 0x00, 0x31, 0x54, 0x15, 0xd4, + 0x9b, 0xd8, 0x79, 0x6a, 0xc1, 0x20, 0xd4, 0xfe, + 0xaa, 0xa5, 0x4a, 0x95, 0x2a, 0x54, 0xa9, 0x52, + 0xa5, 0x4a, 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, + 0x4a, 0x95, 0x1c, 0x81, 0x6a, 0xcc, 0xb0, 0x75, + 0xa9, 0x09, 0x91, 0x0c, 0xb2, 0xb5, 0x06, 0x88, + 0x48, 0xde, 0x37, 0xcc, 0x42, 0xb0, 0x66, 0xcc, + 0x6b, 0x0c, 0xb3, 0x69, 0x8b, 0xa0, 0x28, 0x02, + 0x5e, 0x6f, 0x23, 0x3a, 0xd9, 0x54, 0xb9, 0xc4, + 0xc6, 0xdb, 0xa4, 0x9e, 0x60, 0xaf, 0x21, 0xf8, + 0x69, 0x9c, 0x72, 0x16, 0x93, 0x21, 0x4c, 0x63, + 0xee, 0x1d, 0x9b, 0xfd, 0x20, 0x15, 0x7f, 0xd8, + 0x93, 0x39, 0xa2, 0xd0, 0x5a, 0x86, 0xf1, 0x96, + 0x2f, 0x1d, 0xc3, 0x21, 0x13, 0x2a, 0x8c, 0xfb, + 0x4c, 0x38, 0x9d, 0x1b, 0x33, 0xed, 0x9c, 0xcd, + 0x27, 0x02, 0xd0, 0xea, 0x3b, 0x19, 0xcb, 0x03, + 0x1a, 0x04, 0xd5, 0x8c, 0x22, 0xb2, 0x6d, 0x6b, + 0x11, 0xf4, 0x95, 0xb5, 0x87, 0x02, 0x46, 0x18, + 0xc6, 0x24, 0x9b, 0x69, 0xc9, 0x0f, 0xc2, 0xa4, + 0x55, 0xd4, 0x02, 0x52, 0xd3, 0x83, 0x9a, 0xec, + 0xaa, 0xde, 0xf4, 0x8f, 0xca, 0x97, 0x8c, 0xc3, + 0xc4, 0x44, 0x2c, 0x50, 0x8a, 0x63, 0x0c, 0x96, + 0x64, 0xea, 0xc6, 0x73, 0x39, 0xe3, 0x30, 0x1d, + 0xc4, 0x54, 0x39, 0x03, 0x51, 0xa0, 0x2c, 0x43, + 0xa2, 0xa0, 0x37, 0xd6, 0xe6, 0x59, 0x2e, 0x4b, + 0xcd, 0xe6, 0x86, 0xfe, 0x33, 0x26, 0xba, 0x02, + 0xc6, 0xc2, 0xc1, 0x48, 0x99, 0x4a, 0x50, 0xa1, + 0x87, 0xdc, 0x5b, 0x48, 0x5e, 0x3a, 0xa3, 0xf8, + 0xad, 0xa7, 0x9e, 0xeb, 0xfd, 0xa9, 0x9f, 0x70, + 0x7f, 0xb1, 0xd7, 0x1d, 0x0d, 0x68, 0x8b, 0xcc, + 0x22, 0xc3, 0x98, 0xa9, 0xe1, 0x71, 0xe4, 0xaf, + 0x45, 0x70, 0x1b, 0xa2, 0xb5, 0x05, 0x56, 0xdb, + 0xd5, 0x04, 0x4e, 0x2a, 0x9b, 0x38, 0xd0, 0x78, + 0x78, 0x01, 0x94, 0x5e, 0x0e, 0x8e, 0x0a, 0x05, + 0x2f, 0x35, 0x99, 0xa3, 0x3c, 0xe2, 0xa5, 0xcc, + 0xe2, 0xc4, 0x15, 0x28, 0xf9, 0x07, 0xd0, 0x2b, + 0x30, 0xb2, 0xdd, 0x2b, 0x68, 0x87, 0x3c, 0x73, + 0x65, 0x20, 0xa1, 0x9e, 0x3c, 0x89, 0x3f, 0x80, + 0xf2, 0x6c, 0xba, 0xe0, 0x00, 0x0a, 0x39, 0xa3, + 0x51, 0x8a, 0xce, 0xbb, 0xae, 0x51, 0x36, 0x3c, + 0x9a, 0xa6, 0x34, 0x89, 0xed, 0xea, 0x8f, 0x03, + 0xc4, 0xb9, 0xc8, 0xb5, 0x11, 0x79, 0xdc, 0x0b, + 0x38, 0x6e, 0xb0, 0x29, 0x44, 0x68, 0x4c, 0xf4, + 0x7d, 0xa0, 0xc4, 0xa9, 0xde, 0xb4, 0x11, 0x2f, + 0x93, 0x09, 0xa9, 0x14, 0x65, 0x8d, 0xe7, 0x35, + 0x19, 0x8a, 0x9b, 0xce, 0x74, 0x7e, 0xa8, 0xc0, + 0xc6, 0x6d, 0x94, 0x3c, 0x23, 0x19, 0xf0, 0xd7, + 0x39, 0x6e, 0x60, 0x60, 0x19, 0xe4, 0x2c, 0x9a, + 0xe3, 0x50, 0x00, 0x2f, 0x6a, 0x01, 0x6c, 0x70, + 0x07, 0x5f, 0x52, 0x1a, 0xc8, 0x34, 0x32, 0x6a, + 0x32, 0xa5, 0xd4, 0x65, 0xc0, 0x5b, 0x50, 0xf2, + 0x01, 0x51, 0x6f, 0xb2, 0xb7, 0x75, 0xa8, 0x11, + 0xb5, 0xa6, 0x62, 0x3f, 0xfb, 0x79, 0x21, 0x61, + 0x59, 0xa4, 0x78, 0x5c, 0x1d, 0x08, 0x49, 0xc5, + 0x05, 0x72, 0x02, 0x8d, 0xc8, 0x9a, 0xb2, 0x6a, + 0xeb, 0xa0, 0x20, 0x68, 0xb4, 0x2c, 0x42, 0x25, + 0x41, 0x20, 0xe4, 0x00, 0x03, 0x69, 0xe4, 0x8e, + 0x1c, 0x40, 0x15, 0x8c, 0xb7, 0x89, 0x40, 0xec, + 0x37, 0x67, 0xa3, 0x90, 0x0c, 0x9e, 0xc2, 0xc5, + 0xc3, 0x8e, 0xef, 0x01, 0xde, 0x45, 0xcb, 0x51, + 0x48, 0xf3, 0xc6, 0x07, 0x83, 0x2a, 0x77, 0x95, + 0xef, 0x40, 0xe5, 0x0d, 0xc5, 0x08, 0x61, 0xc0, + 0xc4, 0x0c, 0x42, 0x44, 0x12, 0x48, 0x75, 0x85, + 0xf6, 0xf8, 0xe6, 0x7e, 0xfb, 0xe4, 0x6d, 0xc8, + 0x2e, 0x2f, 0x31, 0x44, 0xbc, 0xb1, 0x83, 0x01, + 0x98, 0xee, 0x46, 0xd0, 0x0c, 0xf6, 0x00, 0x8c, + 0xb0, 0x51, 0x0b, 0x26, 0x52, 0x81, 0x83, 0x56, + 0x6e, 0xa5, 0x5c, 0x9a, 0xb1, 0x87, 0x77, 0x9c, + 0x30, 0xb4, 0x84, 0xe7, 0x47, 0x4e, 0x80, 0x5b, + 0xf2, 0x56, 0xc6, 0x29, 0x0d, 0x12, 0x60, 0xaa, + 0x16, 0xc1, 0x78, 0xab, 0x69, 0x20, 0xfe, 0x1e, + 0x85, 0x62, 0x17, 0x1d, 0x1a, 0xc0, 0x50, 0xb6, + 0xbc, 0x8a, 0x0c, 0x5c, 0x64, 0x26, 0xed, 0x5e, + 0x8c, 0x17, 0x8e, 0x92, 0x35, 0x33, 0xf0, 0x0b, + 0xb1, 0x76, 0xd2, 0x3f, 0x06, 0x13, 0x9e, 0x82, + 0x00, 0x3e, 0x50, 0x91, 0xf9, 0xe3, 0xaa, 0x3f, + 0x8a, 0xda, 0x79, 0xee, 0xbf, 0xda, 0x99, 0xf7, + 0x07, 0xfb, 0xc3, 0x0d, 0xab, 0xbb, 0xde, 0x13, + 0x50, 0x2e, 0xd3, 0x55, 0x1b, 0x11, 0x17, 0x04, + 0x81, 0xff, 0x00, 0x9d, 0x62, 0x27, 0x8f, 0x0d, + 0x8a, 0x62, 0x91, 0xec, 0x7a, 0x6c, 0xb1, 0x2e, + 0x53, 0x18, 0x18, 0x6d, 0xb1, 0x3f, 0xba, 0x25, + 0xd0, 0x38, 0x85, 0x86, 0xec, 0x70, 0x15, 0xb8, + 0x71, 0xe7, 0x19, 0x99, 0x94, 0x1e, 0xfe, 0x41, + 0x97, 0x02, 0x20, 0x81, 0x51, 0xf1, 0xd5, 0xcc, + 0xb4, 0x15, 0xe8, 0xcc, 0x37, 0xcb, 0xd2, 0x69, + 0xcb, 0x6d, 0xef, 0xa9, 0x3e, 0xc5, 0x5b, 0x39, + 0x68, 0xfe, 0x17, 0xd0, 0x57, 0xbe, 0xa0, 0x95, + 0x09, 0x19, 0x2d, 0x53, 0x46, 0xe9, 0x68, 0xf1, + 0xa8, 0xf8, 0x2c, 0x8c, 0x23, 0x2c, 0xe6, 0x49, + 0x7a, 0xa6, 0xb9, 0x9a, 0x88, 0x04, 0x55, 0x10, + 0x2e, 0xa8, 0x8b, 0xf0, 0x5e, 0xd5, 0x64, 0x2b, + 0x2a, 0x10, 0x59, 0x51, 0xac, 0x8a, 0x45, 0x17, + 0xda, 0x81, 0xdd, 0xd3, 0xc0, 0x42, 0x04, 0xd7, + 0xc4, 0x4f, 0x11, 0x6e, 0x38, 0xfe, 0x3f, 0x21, + 0x9d, 0x9c, 0x5b, 0xfd, 0x66, 0xae, 0xfa, 0x44, + 0x52, 0xd6, 0xd5, 0x16, 0xb5, 0xe9, 0xee, 0x26, + 0x4b, 0x05, 0xf0, 0x43, 0x3b, 0xaa, 0x98, 0xdc, + 0x53, 0x2c, 0x6d, 0x88, 0xde, 0xd2, 0xa2, 0x65, + 0x28, 0x94, 0x45, 0x03, 0x03, 0xe9, 0x3e, 0xbd, + 0xaf, 0x28, 0xcc, 0xb4, 0x2c, 0x1d, 0xcf, 0xc6, + 0xb9, 0x40, 0x19, 0xcd, 0x59, 0xbb, 0xd2, 0xb2, + 0xbd, 0x4a, 0x42, 0xa1, 0x42, 0xe9, 0x0c, 0x3a, + 0x31, 0x6a, 0x3e, 0xdc, 0xd4, 0xd7, 0x00, 0xc9, + 0x29, 0xe1, 0x80, 0x28, 0xb0, 0xc5, 0xc6, 0x4d, + 0x85, 0xc7, 0x77, 0xa3, 0x60, 0xc1, 0xae, 0x16, + 0x22, 0x39, 0xa2, 0x12, 0x67, 0x76, 0xc0, 0x5e, + 0x9e, 0x78, 0x39, 0xdf, 0xd4, 0x42, 0x0e, 0x08, + 0x10, 0xd6, 0xaf, 0x3d, 0x5f, 0xbe, 0xa5, 0xe9, + 0x65, 0x26, 0x28, 0x45, 0x3c, 0x8c, 0x66, 0xdd, + 0x55, 0x8d, 0x54, 0xb8, 0x84, 0x9d, 0xce, 0x3b, + 0x8a, 0x9d, 0xd4, 0x21, 0x14, 0x02, 0x07, 0x14, + 0x63, 0x28, 0x80, 0x2d, 0x19, 0x60, 0x25, 0x24, + 0x2e, 0xe9, 0xa9, 0x38, 0xe5, 0x40, 0x04, 0x89, + 0x11, 0x8b, 0x5d, 0x13, 0x14, 0x48, 0xce, 0xaa, + 0xe0, 0x57, 0x1b, 0x9e, 0x5a, 0x8d, 0xee, 0xf7, + 0x49, 0x2d, 0x0e, 0x3d, 0xdf, 0x36, 0x9f, 0x02, + 0x24, 0xb3, 0xd9, 0xc8, 0x11, 0xfe, 0xf3, 0x85, + 0xa5, 0x37, 0x70, 0x78, 0x13, 0xae, 0xca, 0x38, + 0x1c, 0x08, 0x48, 0x00, 0x66, 0xcc, 0x87, 0xd8, + 0x8f, 0x20, 0x36, 0x86, 0x4c, 0xce, 0x32, 0xf2, + 0x58, 0x88, 0x55, 0x62, 0xd1, 0x90, 0x04, 0x03, + 0x80, 0x38, 0x79, 0x86, 0x96, 0x86, 0xc0, 0x6b, + 0xe3, 0xa7, 0xec, 0x8b, 0x91, 0x5b, 0xb0, 0x34, + 0x00, 0x28, 0x17, 0x67, 0x1d, 0x49, 0xfc, 0x56, + 0xd3, 0xcf, 0x75, 0xfe, 0xd6, 0x43, 0x53, 0xdc, + 0x8c, 0x02, 0xaf, 0x2a, 0xe6, 0x53, 0x16, 0xa3, + 0xff, 0x00, 0x15, 0x18, 0xe8, 0x99, 0x85, 0xb1, + 0x74, 0xb0, 0x41, 0xe9, 0x64, 0xca, 0x74, 0x8a, + 0x42, 0x0c, 0x67, 0xbc, 0xbf, 0x06, 0x24, 0x88, + 0x51, 0x17, 0x63, 0x21, 0x1d, 0xe5, 0x2c, 0xe8, + 0xb8, 0x44, 0x16, 0x6b, 0x29, 0x9a, 0xf3, 0x6f, + 0x9a, 0x39, 0x38, 0x76, 0x8b, 0xfc, 0x2e, 0x96, + 0xd1, 0x4e, 0x83, 0x17, 0xd0, 0xa4, 0xff, 0x00, + 0x6b, 0xad, 0xbc, 0x7f, 0xad, 0xd7, 0xde, 0x39, + 0xd9, 0xb7, 0x91, 0xf3, 0xba, 0x2b, 0x45, 0x31, + 0xef, 0x26, 0xf5, 0x44, 0xb2, 0xa3, 0x12, 0x60, + 0x2f, 0xe6, 0xeb, 0xc6, 0xee, 0x4b, 0xcd, 0xbe, + 0x68, 0xfa, 0x34, 0xdc, 0xec, 0xdb, 0xc9, 0xc9, + 0xc3, 0xb4, 0x5c, 0xec, 0xdb, 0xf0, 0x9a, 0x86, + 0x96, 0x6d, 0x12, 0xbd, 0xb0, 0x5b, 0x96, 0x14, + 0x49, 0x03, 0xa3, 0x40, 0x00, 0xe8, 0x38, 0x47, + 0xe5, 0x12, 0xcd, 0x46, 0x19, 0x08, 0xe9, 0xc3, + 0x20, 0x66, 0xd8, 0xaf, 0x4f, 0x75, 0x15, 0x71, + 0x40, 0x94, 0x0d, 0x3a, 0x5e, 0x37, 0x09, 0x43, + 0x31, 0x20, 0x5c, 0x96, 0x8b, 0x06, 0xe6, 0x6c, + 0x91, 0x9f, 0x0e, 0xef, 0x6c, 0x57, 0x1d, 0xa4, + 0x14, 0xbf, 0xc1, 0x07, 0x2d, 0x1b, 0x34, 0x99, + 0xb9, 0xe2, 0xbb, 0xb6, 0x96, 0x6e, 0x72, 0x88, + 0x79, 0x93, 0x99, 0x5a, 0x9d, 0x1a, 0x53, 0xb6, + 0x64, 0xd5, 0x29, 0x86, 0x27, 0x32, 0x9b, 0x6d, + 0xf0, 0xc9, 0x15, 0x3e, 0xa9, 0x1b, 0x18, 0xa3, + 0x13, 0xf0, 0x25, 0xb8, 0xdb, 0xa3, 0xe5, 0x87, + 0x2f, 0x30, 0xb7, 0x2a, 0x3e, 0x5c, 0xd3, 0x6e, + 0x99, 0xea, 0x29, 0x4c, 0x55, 0x57, 0x71, 0x5e, + 0xdd, 0xbe, 0x86, 0xc0, 0x49, 0xf3, 0x18, 0x28, + 0x72, 0x0e, 0x69, 0x09, 0xf7, 0x57, 0xe6, 0x59, + 0xa1, 0x12, 0xc1, 0xa1, 0x0e, 0xb8, 0x45, 0x4a, + 0xb0, 0x26, 0xb7, 0x3a, 0xf5, 0xac, 0x54, 0x0e, + 0x25, 0xda, 0x60, 0x8e, 0x72, 0x0d, 0x69, 0x9c, + 0xf8, 0x77, 0x52, 0xd8, 0xa0, 0x05, 0x91, 0x1d, + 0x14, 0x5a, 0x46, 0x56, 0x93, 0x2e, 0x59, 0xf5, + 0xf1, 0x4a, 0x08, 0x9e, 0x03, 0xbd, 0x70, 0x24, + 0x82, 0x78, 0xb5, 0x34, 0x55, 0x29, 0xbf, 0xb8, + 0x6c, 0x81, 0x36, 0xea, 0x79, 0x84, 0x78, 0xe1, + 0x92, 0xa8, 0x07, 0xd1, 0x2a, 0x17, 0x9f, 0x15, + 0xb4, 0xf3, 0xdd, 0x7f, 0xb4, 0x90, 0xd4, 0xf7, + 0x38, 0x7d, 0x26, 0xd0, 0x8f, 0xcc, 0x24, 0x9f, + 0x76, 0x08, 0x3d, 0x3f, 0xff, 0x00, 0xff, 0x00, + 0xff, 0x00, 0xfe, 0xf1, 0x88, 0xd9, 0x96, 0xec, + 0xe6, 0x45, 0x86, 0xb9, 0xad, 0x45, 0xbe, 0x9c, + 0xa7, 0x0a, 0x00, 0x14, 0x45, 0xbd, 0x83, 0x6b, + 0x8d, 0x95, 0xd3, 0x25, 0x67, 0x83, 0x70, 0xce, + 0xac, 0x2c, 0xb4, 0x0f, 0x70, 0x0d, 0x87, 0x33, + 0x80, 0x56, 0x92, 0x4a, 0xec, 0x84, 0x10, 0xf1, + 0xa3, 0xcc, 0x21, 0x86, 0x52, 0xad, 0xc5, 0x46, + 0xe2, 0x6b, 0x50, 0xd9, 0xf0, 0x4d, 0xa2, 0xef, + 0x06, 0xda, 0xed, 0x4f, 0x2e, 0xe9, 0x36, 0x2e, + 0x88, 0xd4, 0xc6, 0x67, 0x74, 0xf1, 0x52, 0x45, + 0x54, 0x2f, 0x59, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x87, 0x64, 0x05, + 0x33, 0x27, 0xf0, 0xfc, 0x22, 0xc9, 0xc6, 0x18, + 0xed, 0xc5, 0xb3, 0xd4, 0x89, 0xb6, 0x01, 0x68, + 0x12, 0xd9, 0x5a, 0xc2, 0xfb, 0x0c, 0x44, 0xec, + 0x2a, 0x60, 0x20, 0xcb, 0xa6, 0x04, 0xe5, 0x8f, + 0x39, 0x41, 0xd5, 0x4f, 0x98, 0xf7, 0xa1, 0x31, + 0x70, 0xc2, 0x9f, 0x84, 0x4c, 0x63, 0xb3, 0xab, + 0xbb, 0x0e, 0x6f, 0xbc, 0x05, 0x3c, 0x2b, 0xcc, + 0x54, 0xcb, 0xe9, 0x41, 0xfe, 0x42, 0x3c, 0x91, + 0x16, 0x84, 0x54, 0x28, 0x47, 0x6e, 0xa6, 0x9a, + 0x66, 0xb5, 0xa3, 0x00, 0x81, 0x39, 0x2f, 0x44, + 0xdb, 0x4c, 0x66, 0x49, 0x94, 0x52, 0xa9, 0xad, + 0x11, 0x8e, 0xd7, 0x55, 0x7b, 0x45, 0x31, 0xc5, + 0xe9, 0x20, 0x31, 0x7b, 0xdf, 0xae, 0x9e, 0x12, + 0x28, 0x45, 0x33, 0x44, 0xa0, 0x43, 0x25, 0x18, + 0x5e, 0xd5, 0x71, 0x31, 0x9e, 0x80, 0x9d, 0xa0, + 0x3b, 0x6c, 0x11, 0xa4, 0x52, 0xc1, 0x95, 0x26, + 0xd8, 0x39, 0x54, 0x14, 0x79, 0x85, 0x42, 0x82, + 0xa5, 0xa3, 0x85, 0x17, 0xdd, 0xcb, 0xc3, 0x49, + 0x69, 0x88, 0xbc, 0x0f, 0xdc, 0x9a, 0xef, 0xea, + 0xe3, 0x2d, 0xb7, 0xdb, 0xa4, 0xdc, 0x81, 0x23, + 0xf0, 0x91, 0x10, 0x73, 0xe2, 0x27, 0x92, 0x34, + 0x26, 0xc4, 0x49, 0x67, 0xae, 0x1a, 0x9a, 0x82, + 0xce, 0x80, 0x2e, 0x88, 0x03, 0xd1, 0x92, 0x54, + 0x2f, 0x3e, 0x2b, 0x69, 0xe7, 0xba, 0xc2, 0x96, + 0x53, 0xaf, 0x69, 0x4e, 0xbd, 0xa5, 0x3a, 0xf6, + 0x94, 0xeb, 0xda, 0x53, 0xaf, 0x69, 0x4e, 0xbd, + 0xa5, 0x3a, 0xf6, 0x94, 0xeb, 0xda, 0x53, 0xaf, + 0x69, 0x4e, 0xbd, 0xa5, 0x3a, 0xf6, 0x94, 0xeb, + 0xda, 0x53, 0xaf, 0x69, 0x4e, 0xbd, 0xa5, 0x3a, + 0xf6, 0x94, 0xeb, 0xda, 0x53, 0xaf, 0x69, 0x4e, + 0xbd, 0xa5, 0x3a, 0xf6, 0x94, 0xeb, 0xda, 0x53, + 0xaf, 0x69, 0x4e, 0xbd, 0xa5, 0x3a, 0xf6, 0x94, + 0xeb, 0xda, 0x02, 0xcd, 0x75, 0x39, 0x46, 0x59, + 0x43, 0x0b, 0x05, 0x65, 0x16, 0x94, 0x2d, 0x0b, + 0x96, 0xb3, 0x59, 0x8c, 0x0f, 0xf6, 0xc7, 0x6c, + 0xb0, 0x58, 0x1e, 0x9f, 0x35, 0xea, 0xc7, 0xa7, + 0x35, 0xdf, 0x26, 0x31, 0x8b, 0x1d, 0x14, 0xbf, + 0xb3, 0x29, 0xdf, 0xd8, 0x2d, 0x3c, 0x62, 0x0c, + 0xb5, 0xb4, 0x7d, 0x10, 0xc5, 0x13, 0x61, 0x68, + 0x32, 0x31, 0x0a, 0x95, 0xea, 0x25, 0x11, 0xd8, + 0x70, 0x89, 0x9d, 0x10, 0xb7, 0x8e, 0x25, 0x1f, + 0xea, 0x9d, 0x56, 0x1c, 0xf0, 0xfb, 0x42, 0xe7, + 0x78, 0x44, 0x12, 0x8f, 0x81, 0x49, 0x0a, 0x6a, + 0x93, 0x2e, 0x8a, 0xc6, 0x3a, 0x05, 0x79, 0x58, + 0xac, 0xd0, 0x19, 0x12, 0xd1, 0xb3, 0x90, 0x3a, + 0xbd, 0x2f, 0xaa, 0x8b, 0x48, 0xc0, 0x00, 0x3d, + 0xfa, 0x8c, 0xbc, 0x2a, 0x5c, 0x19, 0xa2, 0xc8, + 0xe7, 0x78, 0x05, 0x18, 0xce, 0x39, 0x2e, 0xbf, + 0xaa, 0x05, 0x14, 0x51, 0x45, 0x14, 0x51, 0x45, + 0x14, 0x51, 0x45, 0x14, 0x51, 0x45, 0x14, 0x51, + 0x74, 0x7f, 0x3c, 0x91, 0xc6, 0x4b, 0x93, 0x1c, + 0xab, 0x24, 0x2a, 0x81, 0xab, 0x9c, 0xf8, 0xad, + 0xa7, 0x9e, 0xeb, 0xfd, 0xa9, 0xe6, 0xa7, 0xb9, + 0x1c, 0x06, 0xce, 0x04, 0x12, 0x57, 0x00, 0x28, + 0x80, 0x5c, 0xbe, 0x92, 0xd5, 0xfe, 0x76, 0xc8, + 0x6c, 0x4e, 0xac, 0xff, 0x00, 0x53, 0xd7, 0xaf, + 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, + 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x44, 0x4d, + 0x99, 0x3b, 0xc2, 0x37, 0x92, 0x4b, 0x39, 0x66, + 0x65, 0xa5, 0x69, 0x42, 0x0a, 0xaa, 0x58, 0xa9, + 0x2c, 0x7b, 0xf8, 0xd0, 0xd8, 0xe0, 0xb8, 0x34, + 0x0b, 0x0d, 0x14, 0x6c, 0x88, 0x32, 0xde, 0x92, + 0x0f, 0x37, 0x3b, 0x4f, 0xdf, 0x15, 0x84, 0x81, + 0xc1, 0x83, 0x07, 0x9f, 0xf5, 0x07, 0xd7, 0xf9, + 0x72, 0x4a, 0x07, 0x63, 0xc5, 0x6d, 0x3c, 0xf7, + 0x59, 0xca, 0xb4, 0xe6, 0x75, 0x27, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa7, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa7, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa7, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa7, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa7, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa1, 0x91, 0x8e, + 0x67, 0x3f, 0xd4, 0x7e, 0x73, 0xc6, 0x0d, 0xfb, + 0x80, 0x9c, 0x33, 0xc2, 0x45, 0x08, 0x42, 0x82, + 0x82, 0xd0, 0xe5, 0x4e, 0x55, 0xca, 0xe5, 0x9e, + 0x7c, 0xa9, 0xe7, 0xca, 0x9e, 0x7c, 0xa9, 0xe7, + 0xca, 0x9e, 0x7c, 0xa9, 0xe7, 0xca, 0x97, 0x19, + 0xce, 0x05, 0xaa, 0xef, 0xdb, 0x03, 0xac, 0x50, + 0x85, 0x54, 0xb2, 0xcc, 0x44, 0x11, 0x91, 0x03, + 0x4b, 0xf3, 0xe5, 0x40, 0x13, 0x6d, 0x74, 0x19, + 0x0d, 0xc4, 0x92, 0x72, 0x2e, 0x79, 0xf2, 0xa7, + 0x9f, 0x2a, 0x79, 0xf2, 0xa7, 0x9f, 0x2a, 0x79, + 0xf2, 0xa7, 0x9f, 0x2a, 0x79, 0xf2, 0xa7, 0x9f, + 0x2a, 0x79, 0xf2, 0xa7, 0x9f, 0x2a, 0x20, 0x01, + 0x20, 0x36, 0xb6, 0xc0, 0x49, 0x74, 0x64, 0x80, + 0xca, 0x08, 0x5a, 0x8b, 0x67, 0xbe, 0x50, 0x82, + 0x04, 0x03, 0x2b, 0x0a, 0x84, 0xf6, 0x53, 0x17, + 0xfc, 0x33, 0x26, 0x4c, 0x99, 0x32, 0x64, 0xc9, + 0x93, 0x2b, 0xdf, 0x9a, 0xb9, 0x23, 0x38, 0xd4, + 0x93, 0x30, 0x22, 0x53, 0x53, 0xf3, 0xa9, 0xff, + 0x00, 0x22, 0xe3, 0xb7, 0xf0, 0xa4, 0x60, 0xb2, + 0x7c, 0x5e, 0x53, 0x26, 0x4c, 0x99, 0x32, 0x64, + 0xc9, 0x8e, 0x95, 0xa5, 0x39, 0xd5, 0x69, 0x50, + 0x0b, 0x1c, 0x70, 0x94, 0xaa, 0x72, 0xae, 0x31, + 0xe2, 0xb6, 0x9e, 0x7b, 0xaf, 0xf6, 0xa9, 0x9a, + 0x9e, 0xe4, 0x35, 0xda, 0xbe, 0xf7, 0xf8, 0x13, + 0xff, 0x00, 0xff, 0x00, 0xe6, 0xac, 0xfb, 0xc3, + 0x98, 0x6a, 0x8e, 0xed, 0x3c, 0x94, 0x97, 0x94, + 0x90, 0x3b, 0x1c, 0x09, 0xe1, 0x61, 0x94, 0x9d, + 0x48, 0x2d, 0xfe, 0x3d, 0x79, 0x5d, 0x74, 0x63, + 0x79, 0x48, 0x65, 0xc6, 0xa4, 0x57, 0xc2, 0x4d, + 0x7c, 0x48, 0x0b, 0x19, 0x6a, 0x1f, 0xef, 0x19, + 0x53, 0x4e, 0x01, 0x2b, 0xb4, 0x5d, 0x54, 0x53, + 0x92, 0x99, 0x21, 0x43, 0xc0, 0x23, 0x4d, 0xfa, + 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, + 0x0f, 0xf5, 0x7e, 0x78, 0x2d, 0xa0, 0x07, 0x70, + 0x1e, 0xfc, 0xf8, 0x37, 0xfc, 0x9f, 0x06, 0xff, + 0x00, 0x93, 0xe0, 0xdf, 0xf2, 0x7c, 0x1b, 0xfe, + 0x4f, 0x83, 0x7f, 0xc8, 0xe6, 0xe3, 0x50, 0xa7, + 0x12, 0x88, 0xb6, 0x41, 0xa6, 0x57, 0x37, 0x96, + 0xc6, 0x49, 0xc7, 0x27, 0x0e, 0x1d, 0x50, 0x66, + 0x9a, 0xcd, 0x83, 0x2f, 0xe9, 0x5a, 0x12, 0x28, + 0x81, 0x3c, 0x68, 0xce, 0x81, 0x2e, 0x10, 0x88, + 0xd4, 0x8d, 0xb0, 0x4a, 0xcd, 0x05, 0x66, 0x4b, + 0xee, 0x1e, 0x36, 0x60, 0xbe, 0x2a, 0x1b, 0x4c, + 0x75, 0xaa, 0xe6, 0xa0, 0x71, 0x9a, 0xb5, 0x63, + 0x21, 0xe4, 0xc9, 0x2e, 0xb2, 0xcf, 0x99, 0xc6, + 0xed, 0x46, 0xad, 0x10, 0xce, 0x00, 0x35, 0x03, + 0x14, 0x2c, 0x1d, 0x98, 0x69, 0x91, 0x52, 0xd6, + 0xda, 0xd8, 0x46, 0x54, 0x93, 0xf0, 0x6f, 0xf9, + 0x3e, 0x0d, 0xff, 0x00, 0x27, 0xc1, 0xbf, 0xe4, + 0xf8, 0x37, 0xfc, 0x9f, 0x06, 0xff, 0x00, 0x93, + 0xed, 0xdb, 0x7f, 0x87, 0xa2, 0x53, 0x82, 0x1e, + 0x2b, 0x69, 0xe7, 0xba, 0xc5, 0x13, 0xb9, 0x72, + 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, + 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, + 0x97, 0x2e, 0x5c, 0x1c, 0x9e, 0xe4, 0xad, 0x11, + 0x5c, 0x92, 0xd6, 0xd3, 0xc0, 0x1a, 0xf7, 0x31, + 0x5f, 0x94, 0xf2, 0xb9, 0xe5, 0x73, 0xca, 0xe7, + 0x95, 0xcf, 0x2b, 0x9e, 0x57, 0x06, 0x3b, 0xb8, + 0xa9, 0x6a, 0x3b, 0xc9, 0xb7, 0x99, 0x4b, 0x64, + 0x67, 0x14, 0xab, 0xc8, 0xff, 0x00, 0x1f, 0x02, + 0xae, 0x84, 0x83, 0x85, 0x16, 0xad, 0xba, 0xa4, + 0x07, 0x17, 0xd7, 0xc7, 0xac, 0x05, 0x30, 0x94, + 0x93, 0xc4, 0x36, 0x74, 0x2e, 0x54, 0xf3, 0x8e, + 0x0a, 0xcc, 0x75, 0x66, 0x88, 0xeb, 0xde, 0x11, + 0x11, 0x00, 0x5f, 0x71, 0x23, 0x92, 0xd3, 0xd1, + 0xf9, 0xb4, 0xd2, 0xbc, 0xae, 0x79, 0x5c, 0xf2, + 0xb9, 0xe5, 0x73, 0xca, 0xe7, 0x95, 0xcf, 0x2b, + 0x95, 0xa6, 0x86, 0xb3, 0x2a, 0x09, 0x2b, 0x6d, + 0x0b, 0xb4, 0xcb, 0xf2, 0x55, 0x27, 0x2f, 0x1a, + 0x4c, 0x18, 0x73, 0xeb, 0x86, 0x84, 0xe5, 0x3b, + 0xc7, 0xe4, 0x53, 0x0c, 0x84, 0x89, 0x87, 0x2f, + 0x86, 0xc1, 0x7a, 0x90, 0xd7, 0xe7, 0x49, 0x4c, + 0xff, 0x00, 0x53, 0xd5, 0x40, 0xba, 0x0a, 0xab, + 0xeb, 0x52, 0xd8, 0x19, 0x0b, 0x8f, 0x2c, 0xd4, + 0x6b, 0x20, 0xfe, 0x6b, 0xee, 0x58, 0x5c, 0x6d, + 0x17, 0x02, 0x40, 0xa1, 0x44, 0x65, 0xc6, 0xa9, + 0xd5, 0x69, 0x1d, 0xc3, 0xef, 0x69, 0xde, 0x8e, + 0x62, 0x5d, 0xa0, 0xaf, 0x58, 0x18, 0x1f, 0xfa, + 0x30, 0xcd, 0xc0, 0x5a, 0x1a, 0x7c, 0xa1, 0x42, + 0xb5, 0x57, 0x44, 0xed, 0x9b, 0xf1, 0xc8, 0x4b, + 0x2a, 0xfc, 0xb9, 0x7d, 0xc5, 0xc1, 0x97, 0xc2, + 0xff, 0x00, 0x85, 0xab, 0x24, 0xaf, 0x0e, 0x61, + 0xe2, 0xb6, 0x9e, 0x7b, 0xaf, 0xf6, 0xa9, 0x1a, + 0x9e, 0xe4, 0xaf, 0x0b, 0x7d, 0x21, 0x0b, 0x2d, + 0x69, 0x05, 0x24, 0x20, 0x5a, 0x65, 0x59, 0xc2, + 0x07, 0xa9, 0xa4, 0x29, 0xe8, 0x97, 0x2e, 0x5c, + 0xb6, 0x8c, 0xe7, 0x4f, 0x10, 0x16, 0x21, 0xd0, + 0xc1, 0xa4, 0x81, 0x0b, 0xf6, 0x1d, 0x67, 0x42, + 0x4d, 0x15, 0x84, 0xf5, 0x2f, 0x72, 0x77, 0x6a, + 0x7c, 0x46, 0x08, 0x5e, 0x66, 0xa5, 0x82, 0xb1, + 0xf0, 0x00, 0xad, 0x19, 0xb8, 0xe8, 0xe1, 0x34, + 0x1f, 0x1d, 0x3b, 0x74, 0xed, 0x4e, 0xde, 0x82, + 0x85, 0x38, 0x67, 0x8e, 0xa4, 0xfb, 0x55, 0x85, + 0xe7, 0x7b, 0x53, 0xe3, 0x4d, 0xb4, 0x12, 0x19, + 0x29, 0x91, 0x4c, 0xa0, 0xe7, 0x80, 0x82, 0xb5, + 0x13, 0x2d, 0x53, 0xde, 0xc5, 0x8d, 0x87, 0x9f, + 0x72, 0xe1, 0x54, 0x96, 0x76, 0x00, 0xac, 0xba, + 0x86, 0xc8, 0x13, 0xd3, 0x2e, 0x5c, 0xb9, 0x64, + 0x4e, 0x69, 0x8a, 0x34, 0x15, 0xd2, 0x1e, 0x16, + 0xac, 0x0a, 0x9d, 0x33, 0x6d, 0x71, 0x0d, 0xaa, + 0xde, 0xa7, 0xa0, 0xeb, 0xd7, 0xaa, 0x4a, 0x74, + 0x6e, 0x05, 0xa0, 0x0b, 0x46, 0x06, 0x51, 0x66, + 0xeb, 0x06, 0xa0, 0x16, 0xd5, 0x3b, 0x68, 0xc2, + 0x05, 0x55, 0x18, 0x6b, 0x0c, 0x1d, 0xa7, 0xa1, + 0x08, 0xb9, 0x43, 0x1e, 0x89, 0xf6, 0xc5, 0xdc, + 0xa8, 0x36, 0x0b, 0x42, 0x37, 0xa1, 0xa3, 0xa7, + 0x69, 0xe4, 0x43, 0x28, 0x88, 0xea, 0x00, 0x28, + 0xbb, 0x69, 0x56, 0x42, 0x37, 0x11, 0xa3, 0x0f, + 0xd0, 0x43, 0x77, 0xfd, 0x49, 0x4f, 0x46, 0x64, + 0x59, 0x75, 0x13, 0x93, 0x66, 0xcf, 0xa4, 0x5d, + 0xb9, 0xcc, 0xd2, 0x9d, 0xa5, 0x82, 0x98, 0x97, + 0x6a, 0xbc, 0x98, 0xd5, 0x19, 0xb1, 0x8a, 0x62, + 0xc5, 0xef, 0x43, 0x50, 0x1d, 0xb0, 0x0c, 0x69, + 0xd8, 0x9c, 0xfc, 0x7b, 0xc1, 0xf5, 0x9f, 0x44, + 0xeb, 0xd7, 0xa9, 0x82, 0x06, 0x02, 0xfa, 0x52, + 0x14, 0xb7, 0xda, 0xbe, 0x32, 0x98, 0x30, 0xf1, + 0x5b, 0x4f, 0x3d, 0xd6, 0x5b, 0x55, 0x99, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd8, 0x5d, + 0x99, 0x75, 0x26, 0x0f, 0x01, 0x24, 0x62, 0x02, + 0x9f, 0xa4, 0xa7, 0xee, 0x60, 0xe8, 0xfa, 0x4e, + 0xe7, 0xcb, 0xd8, 0x2c, 0xcc, 0xf5, 0x27, 0x54, + 0x54, 0xe3, 0xff, 0x00, 0x0f, 0x7b, 0xa0, 0xb7, + 0xbe, 0x13, 0x3c, 0x19, 0x61, 0x6f, 0x80, 0xd3, + 0x44, 0x10, 0x81, 0xdf, 0x41, 0x40, 0x69, 0x4c, + 0xd4, 0xed, 0x85, 0xa1, 0xfc, 0x12, 0xea, 0x7d, + 0x0e, 0x05, 0x38, 0x00, 0xd6, 0x91, 0x5d, 0x55, + 0x62, 0x81, 0x98, 0x03, 0x6a, 0xcc, 0x7b, 0xee, + 0x48, 0x50, 0x73, 0x18, 0x83, 0x7e, 0xa2, 0x15, + 0x1d, 0x9b, 0x89, 0x61, 0x42, 0x80, 0x8c, 0xb8, + 0x4b, 0x42, 0x82, 0xd5, 0xae, 0x80, 0xca, 0xae, + 0x03, 0x9c, 0x7e, 0xbe, 0xe1, 0x4b, 0x1c, 0xa7, + 0xd3, 0x89, 0xab, 0xaa, 0x13, 0xf7, 0x64, 0xa6, + 0x58, 0xa8, 0x9f, 0x79, 0x3e, 0x31, 0x99, 0x54, + 0xd7, 0x86, 0xa0, 0xfa, 0x30, 0x57, 0x40, 0x1d, + 0xc3, 0x21, 0xba, 0x08, 0xa7, 0x23, 0x3c, 0x14, + 0x51, 0x79, 0x38, 0x48, 0x5d, 0xcc, 0x0d, 0x8f, + 0x46, 0x77, 0xd1, 0xf7, 0x9e, 0x21, 0x6a, 0xb5, + 0xd5, 0x29, 0x59, 0x31, 0xc7, 0x66, 0x1d, 0x36, + 0xf4, 0x6c, 0x84, 0xd3, 0xd7, 0x98, 0x8e, 0x10, + 0x11, 0x5c, 0x08, 0x23, 0xb2, 0x06, 0x8a, 0x3e, + 0x74, 0xa6, 0x54, 0x69, 0x58, 0x1a, 0x8f, 0x9c, + 0x3a, 0x88, 0x68, 0x77, 0x62, 0x27, 0xac, 0x5f, + 0x9b, 0xe3, 0x4c, 0x88, 0x8b, 0xb4, 0x62, 0x58, + 0xf3, 0x6b, 0x44, 0x4f, 0x4a, 0x82, 0x49, 0x6c, + 0x33, 0x5f, 0xdb, 0x2a, 0xd2, 0x95, 0xc3, 0xfa, + 0xc7, 0x33, 0xa8, 0x44, 0x96, 0x51, 0x0c, 0x72, + 0x22, 0x01, 0xa0, 0x60, 0x0a, 0x63, 0x35, 0x26, + 0x66, 0xb5, 0xca, 0xd7, 0xf2, 0x78, 0x7b, 0xb6, + 0x16, 0x9a, 0xe4, 0x95, 0xe4, 0x07, 0x95, 0x24, + 0x63, 0x72, 0x88, 0xdf, 0x7a, 0x46, 0x5e, 0x66, + 0xa0, 0xe1, 0x15, 0xfd, 0x04, 0xd5, 0xe9, 0x16, + 0xdd, 0xc8, 0xc1, 0x46, 0x86, 0xaa, 0xf8, 0xbb, + 0x19, 0x8a, 0xd0, 0xc8, 0xa0, 0xf1, 0x08, 0x0a, + 0xf1, 0x5b, 0x4f, 0x3d, 0xd7, 0xfb, 0x47, 0x8d, + 0x4f, 0x73, 0x85, 0x66, 0xff, 0x00, 0x46, 0x96, + 0xc0, 0xf0, 0x0d, 0x90, 0xbd, 0x2c, 0x18, 0x30, + 0x60, 0xcd, 0x79, 0xea, 0xaf, 0x2d, 0x6d, 0x7c, + 0xb1, 0x62, 0x96, 0x16, 0xd1, 0x41, 0x77, 0xeb, + 0xeb, 0x16, 0xab, 0x4d, 0xc7, 0xaf, 0x6e, 0x5f, + 0xa4, 0x34, 0xcf, 0xd8, 0xfa, 0x72, 0x9a, 0xb2, + 0x15, 0xb6, 0xf3, 0x1d, 0xfa, 0xe7, 0x75, 0xbe, + 0xbe, 0xfd, 0x7d, 0x60, 0x2a, 0x80, 0xba, 0xa1, + 0xaf, 0xbb, 0xae, 0x2a, 0x8a, 0x89, 0xa2, 0xba, + 0x7b, 0x3a, 0x66, 0x6b, 0xcf, 0xa5, 0xe5, 0xad, + 0xa7, 0xe8, 0x8b, 0x93, 0x7b, 0x63, 0x16, 0x44, + 0x89, 0xa2, 0xba, 0x73, 0xc3, 0xe9, 0xe0, 0xc1, + 0x83, 0x01, 0xda, 0x81, 0x93, 0xc9, 0x60, 0x64, + 0xb5, 0x48, 0x53, 0x6d, 0xcd, 0x40, 0x8e, 0xdd, + 0x31, 0x11, 0xeb, 0x3f, 0x06, 0x9e, 0xbc, 0xd8, + 0xbc, 0xac, 0xc6, 0x81, 0x12, 0xb7, 0xe8, 0x88, + 0x5f, 0x5c, 0xdd, 0x1b, 0x18, 0x31, 0x4a, 0x08, + 0x5a, 0x2a, 0xbe, 0x38, 0x30, 0x72, 0x50, 0xd2, + 0xdf, 0xfb, 0x21, 0xa8, 0x6d, 0x83, 0x3b, 0x1c, + 0x28, 0x74, 0x4c, 0x34, 0xa3, 0x4e, 0xb4, 0xae, + 0x5a, 0xe5, 0x16, 0x6d, 0x66, 0xaa, 0xd4, 0x6b, + 0x6b, 0xe5, 0x9d, 0xdf, 0xf2, 0x1d, 0x7d, 0x75, + 0x9a, 0xbc, 0xdc, 0xbc, 0xf4, 0xd1, 0x79, 0xea, + 0x8e, 0xd3, 0xf5, 0x10, 0x34, 0xce, 0x78, 0x8b, + 0x4e, 0xb5, 0xce, 0x5e, 0xa5, 0x19, 0xb5, 0xc9, + 0x25, 0x85, 0xd0, 0x57, 0x5a, 0x3c, 0x45, 0x0e, + 0x65, 0x07, 0x3b, 0x3e, 0x97, 0xc9, 0xda, 0x79, + 0x18, 0x30, 0x57, 0x2c, 0xd3, 0xe9, 0xe5, 0x15, + 0xb1, 0x41, 0xd6, 0xf3, 0xd6, 0x97, 0xcf, 0x01, + 0xaa, 0x1a, 0x51, 0x58, 0xc7, 0x91, 0xca, 0x7a, + 0x30, 0x60, 0xc1, 0x65, 0x72, 0xa5, 0xef, 0x5d, + 0xba, 0xc4, 0x6f, 0x85, 0xe8, 0x39, 0xf5, 0x75, + 0xa1, 0x6a, 0x15, 0x55, 0xb5, 0xcb, 0xc4, 0x10, + 0xbf, 0x15, 0xb4, 0xf3, 0xdd, 0x78, 0x9e, 0x2c, + 0xfb, 0x57, 0x53, 0x25, 0x29, 0x3a, 0x52, 0x50, + 0x02, 0x7f, 0xaf, 0x35, 0xdd, 0xdd, 0xdd, 0xdd, + 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x99, 0xff, + 0x00, 0xe9, 0x10, 0x42, 0xfc, 0x56, 0xd3, 0xcf, + 0x75, 0xe0, 0xd6, 0x87, 0x03, 0x8c, 0x58, 0xd2, + 0x6b, 0xb1, 0x64, 0x05, 0x02, 0xba, 0x8e, 0xc9, + 0xf1, 0xd5, 0x6a, 0x3a, 0xaa, 0xbf, 0xd8, 0xc2, + 0x28, 0xa5, 0xd4, 0xee, 0x85, 0xd2, 0x6b, 0x88, + 0x52, 0xdc, 0x5c, 0xd7, 0x3e, 0x31, 0x9c, 0x96, + 0x53, 0x6f, 0xea, 0x99, 0x32, 0x64, 0xc9, 0x93, + 0x26, 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, + 0x4c, 0x99, 0x32, 0x64, 0xc8, 0xe5, 0xdf, 0x87, + 0x61, 0xaa, 0xe7, 0xe1, 0x19, 0x28, 0x7b, 0x20, + 0x79, 0x76, 0x4c, 0x50, 0x80, 0x0a, 0xad, 0x11, + 0xd6, 0xe6, 0x04, 0x65, 0xa2, 0x9b, 0x41, 0x0f, + 0xab, 0xfa, 0xba, 0x95, 0x2a, 0x54, 0xa9, 0x52, + 0xa5, 0x4a, 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, + 0x4a, 0x95, 0x2a, 0x54, 0xc6, 0x28, 0xb1, 0xf8, + 0xb0, 0xd9, 0xd2, 0xaf, 0xac, 0x99, 0x8c, 0xb9, + 0x8b, 0xfd, 0xb4, 0xc1, 0x42, 0x54, 0x6b, 0xdf, + 0x11, 0x58, 0xbf, 0x15, 0xb4, 0xf3, 0xdd, 0x78, + 0x35, 0x68, 0x67, 0x24, 0xf5, 0x2d, 0xfe, 0x81, + 0xfa, 0x4a, 0xae, 0x2d, 0xe6, 0xae, 0x3c, 0x6d, + 0xb9, 0x76, 0xa1, 0xa2, 0x98, 0x95, 0x8d, 0x35, + 0x7d, 0xec, 0x2c, 0x05, 0x7f, 0x57, 0xbf, 0x7e, + 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, + 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xea, + 0x0f, 0x50, 0x92, 0xc7, 0x8d, 0xb3, 0x00, 0xcb, + 0x15, 0xb4, 0x9f, 0xe3, 0xa8, 0x68, 0x20, 0x74, + 0x0d, 0x53, 0xca, 0xe0, 0xd1, 0x94, 0x00, 0x6a, + 0x98, 0x0e, 0xab, 0x82, 0x05, 0xd0, 0xbf, 0x9e, + 0xa8, 0xa0, 0x67, 0x2c, 0x13, 0x96, 0xd7, 0xea, + 0x29, 0x0a, 0x5d, 0xe3, 0x18, 0x5f, 0xad, 0xf2, + 0x43, 0x5d, 0x40, 0x81, 0x31, 0x8d, 0xcd, 0x90, + 0xab, 0x54, 0xcf, 0xa4, 0x3a, 0xda, 0x42, 0xec, + 0xce, 0x3f, 0xe9, 0x1e, 0x20, 0x6c, 0xeb, 0x88, + 0xdb, 0x7a, 0x2a, 0xe8, 0x8c, 0x7f, 0x7a, 0x0d, + 0x88, 0xf2, 0xaa, 0xa3, 0x28, 0x29, 0xc4, 0x65, + 0x4b, 0xd1, 0x30, 0x39, 0x4d, 0x4a, 0x09, 0xe1, + 0x0b, 0x55, 0x68, 0x14, 0x40, 0xa9, 0x68, 0x43, + 0x6c, 0x24, 0x6e, 0x3b, 0x75, 0x66, 0x54, 0xa1, + 0xdb, 0x16, 0x95, 0xdb, 0xa2, 0x1e, 0x86, 0xaa, + 0xcc, 0x1f, 0x3d, 0x49, 0x82, 0xe2, 0xa5, 0x6c, + 0xe2, 0xc0, 0x39, 0x95, 0x18, 0x04, 0x0c, 0x5a, + 0xa0, 0x51, 0x37, 0x59, 0x80, 0x7d, 0xc3, 0xe5, + 0xa1, 0xcf, 0x02, 0xe8, 0xc9, 0x86, 0x04, 0xd6, + 0x84, 0xca, 0x3a, 0xb9, 0xa7, 0x8a, 0x15, 0xda, + 0xf9, 0x28, 0x61, 0x9e, 0xac, 0xb0, 0x04, 0x1a, + 0x75, 0x8c, 0x3c, 0x01, 0xca, 0x88, 0x16, 0xbd, + 0xf1, 0xa3, 0xc8, 0x22, 0xb6, 0x0e, 0x80, 0xea, + 0x3b, 0xd2, 0x18, 0x71, 0xec, 0x96, 0xdc, 0x4a, + 0x9a, 0x25, 0x50, 0x49, 0xe5, 0x73, 0x51, 0xc2, + 0x05, 0xe3, 0x06, 0x4e, 0x65, 0x86, 0xb7, 0x09, + 0x99, 0xba, 0x44, 0xbd, 0xad, 0xcb, 0x57, 0x2d, + 0x0e, 0x65, 0x36, 0x4a, 0x6c, 0x94, 0xd9, 0x29, + 0xb2, 0x53, 0x64, 0xa6, 0xc9, 0x4d, 0x91, 0xf5, + 0x75, 0x92, 0xc3, 0xc5, 0x0d, 0x17, 0xb9, 0xb9, + 0x14, 0x79, 0x16, 0x1a, 0xdf, 0x32, 0x15, 0x7e, + 0x22, 0x40, 0x39, 0xc4, 0xd2, 0x51, 0x4d, 0xa5, + 0x6d, 0x2b, 0x06, 0x13, 0x74, 0x3b, 0xad, 0x93, + 0xd1, 0x76, 0x86, 0xa2, 0x00, 0x4f, 0x0c, 0x33, + 0x6c, 0x41, 0x0a, 0x31, 0xe4, 0x34, 0x2f, 0x42, + 0x90, 0x73, 0x24, 0xc1, 0xe5, 0x1b, 0x4d, 0x61, + 0x1e, 0xb0, 0xcb, 0x59, 0x89, 0x6b, 0x61, 0x75, + 0xca, 0x9b, 0x25, 0x36, 0x4a, 0x6c, 0x94, 0xd9, + 0x29, 0xb2, 0x53, 0x64, 0xa6, 0xc9, 0xae, 0x2c, + 0x0f, 0x2b, 0x5a, 0xf7, 0xab, 0x3d, 0xb8, 0xeb, + 0x97, 0xe2, 0xb6, 0x9e, 0x7b, 0xac, 0x73, 0x56, + 0x5a, 0x56, 0x6a, 0xe8, 0xe7, 0x57, 0x00, 0x5e, + 0xf5, 0xcf, 0x71, 0xdf, 0xf7, 0x3d, 0xc7, 0x7f, + 0xdc, 0x2c, 0x82, 0xea, 0xef, 0x94, 0x96, 0x15, + 0x10, 0x58, 0x80, 0x34, 0xdd, 0x17, 0x39, 0x5c, + 0xc5, 0x88, 0x31, 0x5b, 0x3d, 0x5f, 0xac, 0xc2, + 0x0f, 0xa9, 0x12, 0x90, 0xed, 0x97, 0xbd, 0xc5, + 0x3c, 0xc9, 0x40, 0xce, 0x9e, 0x3d, 0x07, 0xbf, + 0x91, 0x06, 0x8d, 0x5f, 0xb8, 0x64, 0x22, 0x04, + 0x35, 0x65, 0x82, 0x04, 0x1c, 0xc4, 0x43, 0xae, + 0x84, 0x7e, 0xd3, 0xe4, 0x5b, 0x85, 0xb5, 0x63, + 0x3c, 0x61, 0xeb, 0x2a, 0x32, 0x84, 0x78, 0x1c, + 0xad, 0x64, 0xfd, 0x58, 0x0e, 0xe3, 0xd4, 0x24, + 0x24, 0x42, 0x8d, 0x2a, 0x11, 0x34, 0x52, 0xb6, + 0x52, 0x89, 0x3c, 0x7c, 0x32, 0x50, 0xc9, 0xa4, + 0x3a, 0xb0, 0xb0, 0x1d, 0x6c, 0x16, 0x67, 0x44, + 0xd5, 0xc7, 0x59, 0x48, 0x0c, 0xeb, 0x71, 0x36, + 0x71, 0xe2, 0x02, 0xfa, 0x6e, 0x87, 0x87, 0xd8, + 0x60, 0xe0, 0xa5, 0x6e, 0x4c, 0x66, 0xa1, 0x0a, + 0x41, 0x50, 0x5a, 0xd9, 0x41, 0x31, 0x90, 0xc8, + 0x39, 0xb5, 0xd1, 0x56, 0x47, 0xa0, 0xd6, 0x75, + 0xfa, 0x84, 0x16, 0x2d, 0xfb, 0xd6, 0x53, 0xd4, + 0x4d, 0x13, 0x2d, 0xe7, 0x19, 0xd0, 0x64, 0x4f, + 0xa9, 0x65, 0x33, 0xdc, 0x77, 0xfd, 0xcc, 0x80, + 0x93, 0xb6, 0xae, 0xcc, 0xe8, 0xeb, 0x9a, 0x1c, + 0xf8, 0x15, 0x2a, 0x3f, 0x3b, 0x59, 0x42, 0x5e, + 0x64, 0x4a, 0xed, 0xef, 0x37, 0xd2, 0x64, 0x1c, + 0xa3, 0x41, 0xd4, 0x72, 0x42, 0x80, 0xf9, 0x1f, + 0x01, 0x7f, 0xfb, 0x85, 0xfa, 0xc6, 0x3f, 0x96, + 0xda, 0x9f, 0x0e, 0xb0, 0x3f, 0xd3, 0x0c, 0x53, + 0xa2, 0xf6, 0x8c, 0x74, 0x5e, 0x86, 0x9d, 0x04, + 0xc4, 0x72, 0xec, 0x99, 0x2c, 0x86, 0xc3, 0x14, + 0xcd, 0x13, 0x4a, 0x37, 0xd0, 0xd5, 0x17, 0x04, + 0x2c, 0x05, 0x47, 0xad, 0xf8, 0x05, 0x98, 0x1c, + 0x65, 0xa2, 0xea, 0x0f, 0x4e, 0x92, 0xe7, 0xc2, + 0x1f, 0x3f, 0xc4, 0xbd, 0xe3, 0x41, 0xb0, 0xbc, + 0x04, 0x25, 0x96, 0x80, 0xcd, 0x15, 0x5a, 0xc6, + 0xce, 0x60, 0x38, 0xed, 0xa2, 0x2a, 0xfb, 0xa8, + 0x0f, 0x38, 0xd3, 0x40, 0x6b, 0x38, 0xa2, 0xce, + 0xb1, 0x50, 0x9a, 0x36, 0x52, 0x59, 0x54, 0xc5, + 0x09, 0x28, 0x68, 0x40, 0x44, 0x2a, 0xd2, 0x5f, + 0x64, 0xce, 0x47, 0x66, 0x02, 0x6a, 0x18, 0x62, + 0x55, 0xd1, 0xd5, 0x35, 0xf2, 0xce, 0x01, 0x9b, + 0x48, 0xfb, 0xf5, 0x69, 0x37, 0xaa, 0x64, 0x50, + 0xc6, 0x08, 0x10, 0x5f, 0xbe, 0x3d, 0x19, 0xc2, + 0xbd, 0x58, 0x82, 0x65, 0xdd, 0xf5, 0xf6, 0x62, + 0x42, 0x5a, 0xf1, 0x61, 0x0a, 0x39, 0x38, 0xc9, + 0x14, 0xdb, 0x70, 0x91, 0x2b, 0xb7, 0xbc, 0xd7, + 0xf1, 0x81, 0xb4, 0x47, 0xd0, 0x1a, 0x15, 0x81, + 0x4c, 0xf0, 0x00, 0xc0, 0xa2, 0xe0, 0x11, 0x29, + 0xd2, 0x33, 0xdb, 0x9e, 0xdc, 0xf6, 0xe7, 0xb7, + 0x3d, 0xb9, 0xed, 0xcb, 0xed, 0x88, 0xb5, 0xad, + 0xee, 0x23, 0xf8, 0x83, 0x06, 0x03, 0x15, 0x7d, + 0xc4, 0x5d, 0xa5, 0x86, 0x24, 0x29, 0xc8, 0x4c, + 0x46, 0x3a, 0x92, 0x44, 0x9a, 0x7a, 0xf7, 0x04, + 0x0e, 0x81, 0x70, 0x8b, 0x4e, 0x61, 0xc9, 0x0e, + 0x47, 0x33, 0x26, 0x50, 0x71, 0x89, 0x5c, 0xaa, + 0x26, 0x8a, 0x33, 0xa8, 0x92, 0x69, 0xcc, 0x38, + 0x06, 0x35, 0x73, 0x51, 0x4a, 0xc9, 0xe3, 0x8f, + 0x03, 0x20, 0xde, 0x0b, 0x3d, 0xb9, 0xed, 0xcf, + 0x6e, 0x7b, 0x73, 0xdb, 0x9e, 0xdc, 0xf6, 0xe3, + 0x72, 0xeb, 0xa9, 0xa0, 0xd2, 0x17, 0x4b, 0xc0, + 0xde, 0xdb, 0x70, 0x56, 0xa5, 0xfe, 0x2b, 0x69, + 0xe7, 0xba, 0xf0, 0x3b, 0xe7, 0xf4, 0x8c, 0xa9, + 0x5e, 0x2e, 0xf6, 0x9e, 0xd4, 0xf6, 0xa5, 0x81, + 0xa8, 0xe7, 0x58, 0x80, 0x4a, 0x0b, 0xb2, 0xce, + 0xb8, 0x5f, 0x04, 0x9c, 0xc3, 0xb8, 0x01, 0x27, + 0xda, 0xbf, 0x08, 0xba, 0x55, 0xb9, 0xb9, 0x44, + 0x3c, 0x96, 0x00, 0x20, 0x8a, 0x2c, 0xca, 0x52, + 0x48, 0xd3, 0x4b, 0x37, 0xb3, 0x78, 0x56, 0x8a, + 0x14, 0x41, 0x95, 0xc3, 0xc0, 0x47, 0x74, 0x6f, + 0x01, 0xae, 0x2d, 0x12, 0x10, 0xde, 0x20, 0x2d, + 0x60, 0x6a, 0xa2, 0x45, 0x80, 0x52, 0xd5, 0x1a, + 0xf7, 0xd5, 0xb5, 0x85, 0xac, 0x2f, 0x66, 0x09, + 0x56, 0x2b, 0x3c, 0xf6, 0x2a, 0xc8, 0x76, 0xd3, + 0x6a, 0x26, 0x72, 0x2b, 0x3a, 0x7e, 0x93, 0x29, + 0xf3, 0xa4, 0x4b, 0x82, 0x93, 0x6e, 0x02, 0x8e, + 0x05, 0xb1, 0x13, 0xac, 0x12, 0xc7, 0x98, 0xd2, + 0x0a, 0x70, 0x9b, 0xa6, 0x02, 0x86, 0xbd, 0x85, + 0x45, 0x89, 0xcb, 0x26, 0x60, 0xc3, 0x0e, 0x3d, + 0xb9, 0x6b, 0xb5, 0xcc, 0x95, 0x7c, 0xfc, 0x8f, + 0x92, 0xa2, 0x7a, 0x4c, 0x19, 0xac, 0x07, 0xec, + 0x18, 0xed, 0xde, 0x7b, 0x58, 0xbf, 0x68, 0x5d, + 0xca, 0x2e, 0xae, 0x60, 0x39, 0x7d, 0x8a, 0xf4, + 0x24, 0xd4, 0xe9, 0x73, 0xa8, 0x24, 0xa8, 0xdd, + 0xef, 0xb5, 0x30, 0x29, 0xfb, 0x8f, 0x02, 0xbc, + 0x25, 0xd4, 0x51, 0x5a, 0xd5, 0x30, 0x68, 0xb4, + 0x30, 0xbe, 0x11, 0x62, 0x97, 0xc3, 0xce, 0xda, + 0x07, 0xd7, 0x46, 0x8d, 0x1a, 0x34, 0x68, 0x8c, + 0x13, 0x56, 0x80, 0x65, 0x5d, 0x00, 0xd6, 0xbb, + 0x44, 0xc2, 0x5a, 0x82, 0x7b, 0x8d, 0xcf, 0x45, + 0x1a, 0x34, 0x54, 0x6e, 0x9c, 0xe8, 0xe1, 0xf3, + 0x6a, 0x76, 0xc8, 0x8d, 0x4a, 0x01, 0xcf, 0x1b, + 0xe3, 0x9b, 0x90, 0x18, 0x59, 0x5f, 0x5d, 0x1a, + 0x34, 0x68, 0xd1, 0xa3, 0x45, 0x01, 0x78, 0x61, + 0xed, 0x3f, 0x2c, 0xa4, 0xac, 0xb6, 0x30, 0x42, + 0xac, 0xf2, 0xdd, 0x96, 0x24, 0xb1, 0x31, 0x05, + 0x25, 0x83, 0x02, 0xa4, 0xe9, 0xfe, 0x59, 0x7e, + 0x46, 0x0c, 0x18, 0x30, 0x60, 0xc1, 0x83, 0x06, + 0x0c, 0x18, 0x30, 0x2a, 0xfd, 0xc6, 0xf1, 0xb4, + 0xd4, 0x90, 0x84, 0x2e, 0x72, 0xf8, 0xd2, 0x57, + 0x08, 0x55, 0x0d, 0x30, 0x7a, 0xd8, 0x30, 0x60, + 0xc1, 0x83, 0x02, 0x4b, 0x2f, 0x5e, 0x92, 0x0a, + 0x8e, 0x4b, 0xd6, 0x8c, 0x9c, 0xa4, 0x9b, 0x3e, + 0xd9, 0x04, 0x29, 0xd3, 0xb8, 0x9d, 0xf9, 0xfc, + 0x56, 0xd3, 0xcf, 0x75, 0xe0, 0x32, 0x1e, 0x3e, + 0x52, 0xac, 0x69, 0x3c, 0xed, 0x0e, 0x71, 0x54, + 0x35, 0xe8, 0xf6, 0xc1, 0x5a, 0x8c, 0x2a, 0xb3, + 0x2a, 0x45, 0xd8, 0x78, 0x56, 0xe4, 0x61, 0xa5, + 0x9f, 0xf6, 0x6e, 0x29, 0xa7, 0x4a, 0xc5, 0x5b, + 0x54, 0x79, 0x81, 0xb6, 0xc6, 0x65, 0x1c, 0xe2, + 0x96, 0x40, 0xd8, 0xe5, 0x3d, 0xa7, 0x33, 0x3d, + 0xe5, 0xcf, 0xdf, 0xaf, 0xac, 0xe4, 0x61, 0xa5, + 0x9f, 0xf6, 0x73, 0x0e, 0x73, 0x47, 0x21, 0x7a, + 0xd3, 0xa2, 0x66, 0xe4, 0xd5, 0xa8, 0xad, 0xaf, + 0x2a, 0x8a, 0x94, 0xa0, 0xea, 0x35, 0x31, 0x8b, + 0x40, 0x6c, 0xc3, 0x1d, 0xeb, 0x1b, 0x81, 0x44, + 0x96, 0x22, 0x50, 0x32, 0x2c, 0x1a, 0x65, 0x4b, + 0x69, 0xfc, 0x9a, 0x4b, 0x0f, 0x08, 0x8f, 0x70, + 0x74, 0xc4, 0x98, 0x16, 0xd3, 0x1a, 0xee, 0x9c, + 0xfd, 0x62, 0xa8, 0xac, 0x9a, 0x2a, 0xa7, 0xb7, + 0x2c, 0xa9, 0x72, 0xdd, 0x5c, 0x8d, 0x69, 0x6e, + 0xa9, 0x4e, 0x87, 0xaf, 0xd7, 0xc3, 0xf5, 0x98, + 0x65, 0xc0, 0x9c, 0x69, 0x86, 0x7b, 0x18, 0xf1, + 0x69, 0x5a, 0x8a, 0xad, 0x5f, 0xb7, 0xe0, 0x92, + 0x09, 0x91, 0xfc, 0x4b, 0xf6, 0x43, 0x57, 0xb6, + 0x98, 0x17, 0x5b, 0x42, 0x99, 0x06, 0x11, 0x97, + 0x26, 0x28, 0x49, 0xb7, 0x06, 0x62, 0x1e, 0xac, + 0x82, 0xe4, 0x2d, 0xd9, 0x66, 0x40, 0xcb, 0x35, + 0x1d, 0x84, 0xda, 0x4b, 0xd2, 0x16, 0x63, 0xd5, + 0x1c, 0x83, 0x9b, 0x86, 0xe1, 0xc1, 0xdc, 0x00, + 0xe6, 0x66, 0xd6, 0x10, 0xf9, 0x30, 0xf4, 0x18, + 0x94, 0x35, 0xbe, 0x57, 0xf6, 0xc5, 0x13, 0x7a, + 0xad, 0x29, 0x4d, 0x35, 0x46, 0xa2, 0xff, 0x00, + 0x99, 0xcc, 0x63, 0x66, 0xdc, 0x16, 0xa3, 0x40, + 0xb6, 0xa2, 0xf2, 0x12, 0x8c, 0xa5, 0x64, 0xa8, + 0x40, 0x08, 0x21, 0xed, 0x67, 0x58, 0x50, 0x5b, + 0x07, 0x7b, 0x55, 0x26, 0xe5, 0x67, 0xd0, 0x92, + 0x90, 0x62, 0xa6, 0x56, 0x83, 0xe1, 0x4b, 0x65, + 0x6c, 0xeb, 0x56, 0xc2, 0x52, 0x3c, 0x1f, 0x49, + 0x1d, 0x73, 0x33, 0xbf, 0x19, 0x84, 0x18, 0x81, + 0xe7, 0x42, 0x1f, 0x58, 0xd7, 0x68, 0x9e, 0xc9, + 0x0b, 0xe1, 0x7d, 0xc2, 0xe1, 0xdc, 0x72, 0x05, + 0x86, 0x6c, 0xd1, 0xb4, 0x54, 0x31, 0xcc, 0xe4, + 0x18, 0x3c, 0xc6, 0x20, 0x32, 0x94, 0x69, 0x1a, + 0x78, 0x26, 0xb1, 0x29, 0x49, 0x53, 0x0d, 0x0f, + 0x45, 0xa4, 0x50, 0xbd, 0x35, 0x99, 0xf1, 0xa0, + 0x3a, 0x0e, 0x05, 0x81, 0x5d, 0xd9, 0x80, 0x68, + 0xf9, 0xc0, 0x34, 0x7f, 0xa6, 0x63, 0xdc, 0x3d, + 0xed, 0x3b, 0x01, 0xfb, 0x11, 0x11, 0x44, 0x44, + 0x69, 0x1c, 0x22, 0x6a, 0x27, 0x24, 0xe6, 0x71, + 0xf0, 0xbb, 0xb8, 0x08, 0x55, 0x0f, 0x57, 0x27, + 0xf1, 0x5b, 0x4f, 0x3d, 0xd7, 0x86, 0x2d, 0x1e, + 0x0c, 0x4b, 0xc6, 0xbf, 0x13, 0xc2, 0xbf, 0x13, + 0xc2, 0xbf, 0x13, 0xc2, 0xbf, 0x13, 0xc2, 0xbf, + 0x13, 0xc2, 0xbf, 0x12, 0x8b, 0xa9, 0x6d, 0x14, + 0xf3, 0x42, 0xc2, 0xa8, 0x12, 0x01, 0x11, 0xd1, + 0x1c, 0x0d, 0xe2, 0x15, 0x29, 0x27, 0xaa, 0x9c, + 0xa9, 0x92, 0x7a, 0x15, 0xea, 0x60, 0x50, 0x9f, + 0x91, 0x18, 0x85, 0x5f, 0x59, 0x58, 0xd1, 0x81, + 0x1d, 0xad, 0xd3, 0xc8, 0xb8, 0x99, 0x18, 0x44, + 0x4a, 0xd2, 0x99, 0xd6, 0xb3, 0x22, 0xab, 0x08, + 0xba, 0x56, 0x4c, 0xad, 0x04, 0x84, 0xfc, 0x4e, + 0xad, 0xca, 0xd4, 0x91, 0x90, 0x2d, 0x83, 0x5c, + 0xa6, 0xf5, 0x7e, 0x9f, 0xb2, 0x84, 0x5c, 0x05, + 0x71, 0xdb, 0xcb, 0x3d, 0xd2, 0xc2, 0x78, 0x57, + 0xe2, 0x78, 0x57, 0xe2, 0x78, 0x57, 0xe2, 0x78, + 0x57, 0xe2, 0x78, 0x57, 0xe2, 0x78, 0x57, 0xe2, + 0x10, 0x20, 0x0d, 0x10, 0xa3, 0xdb, 0x38, 0xfd, + 0x70, 0x01, 0x80, 0x86, 0x82, 0xa8, 0x99, 0x13, + 0x09, 0x93, 0xd6, 0x95, 0x2a, 0x54, 0xa9, 0x52, + 0x95, 0x69, 0x3f, 0x26, 0xc1, 0x20, 0xa2, 0x49, + 0xce, 0x7d, 0x13, 0x4e, 0x1c, 0x5d, 0x60, 0x82, + 0xd0, 0xdd, 0xae, 0x7d, 0xf3, 0x45, 0x32, 0x06, + 0xf9, 0x42, 0x4a, 0x49, 0x9b, 0x5d, 0x27, 0x0d, + 0x7c, 0x10, 0xc8, 0x4a, 0x22, 0xc9, 0x6d, 0x76, + 0xf1, 0x6c, 0xa4, 0x59, 0x06, 0x29, 0xc4, 0xfb, + 0xae, 0xc9, 0xed, 0x20, 0xba, 0xc8, 0xf6, 0x19, + 0x47, 0x54, 0x51, 0x2b, 0x5c, 0xa8, 0xff, 0x00, + 0x00, 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, 0x06, + 0x5e, 0xf2, 0x3b, 0x62, 0xc0, 0x4b, 0x11, 0x31, + 0x91, 0x1f, 0x54, 0x6a, 0x01, 0x4c, 0x0c, 0x5e, + 0x2a, 0x4d, 0x80, 0x3c, 0xac, 0x6d, 0x51, 0x11, + 0x73, 0x1f, 0x98, 0x91, 0x23, 0xcb, 0xaa, 0xc6, + 0x0d, 0x63, 0x52, 0xca, 0xb3, 0x2e, 0xf9, 0xe7, + 0x22, 0xdb, 0x5c, 0xb7, 0xb2, 0x94, 0xfb, 0x73, + 0xe2, 0xf9, 0xa6, 0xed, 0x47, 0x52, 0x18, 0xce, + 0xba, 0x15, 0x78, 0xc8, 0xd6, 0xcc, 0xab, 0x15, + 0xc3, 0x54, 0xd3, 0x98, 0x64, 0x95, 0x84, 0x01, + 0x51, 0x4c, 0xc5, 0x52, 0x97, 0x31, 0x8e, 0x5f, + 0xd1, 0x3e, 0x59, 0x25, 0xb1, 0x88, 0x5a, 0x40, + 0x31, 0x81, 0x21, 0xb1, 0x63, 0x88, 0xcd, 0xb3, + 0x82, 0xd5, 0xa0, 0xac, 0xf2, 0x31, 0xd0, 0x24, + 0x0e, 0x95, 0xac, 0xf5, 0x30, 0x08, 0xa0, 0xb2, + 0xd2, 0xba, 0x61, 0xa2, 0x74, 0x6d, 0x33, 0x57, + 0xd3, 0x80, 0x51, 0x5e, 0x69, 0xa2, 0x98, 0x37, + 0xcf, 0x21, 0x23, 0xcd, 0x08, 0xda, 0xe9, 0xac, + 0x85, 0x65, 0x7c, 0xd4, 0xcf, 0xd7, 0x9a, 0x0b, + 0xb3, 0x4b, 0x78, 0xf8, 0x5d, 0xde, 0x81, 0x11, + 0xe3, 0x78, 0xad, 0xa7, 0x9e, 0xeb, 0x14, 0x01, + 0xd9, 0xfe, 0x07, 0x24, 0xeb, 0xb3, 0x7d, 0x6b, + 0xdb, 0x5c, 0x23, 0x56, 0x89, 0x13, 0x9e, 0xbc, + 0x33, 0xd3, 0x7e, 0x53, 0x9b, 0x5e, 0x62, 0x00, + 0x20, 0xb9, 0x6a, 0x01, 0x91, 0x16, 0xdf, 0x96, + 0x06, 0x7c, 0x05, 0x8c, 0x7c, 0xd5, 0x6a, 0x04, + 0x48, 0x60, 0x71, 0x7b, 0x54, 0x31, 0x6e, 0xcf, + 0xd2, 0x9f, 0x57, 0xe5, 0xb8, 0x54, 0xd1, 0xac, + 0x21, 0xd0, 0xc0, 0xac, 0xd3, 0x1b, 0x16, 0xa0, + 0x00, 0x0b, 0xed, 0xa2, 0xde, 0xd8, 0x80, 0x8a, + 0xd1, 0x48, 0xd4, 0x21, 0x70, 0xf6, 0x4a, 0xad, + 0x66, 0x0d, 0x11, 0x34, 0x60, 0x23, 0x3f, 0x87, + 0x3f, 0xd1, 0x6f, 0x33, 0x35, 0x4f, 0x1b, 0x70, + 0x14, 0x01, 0xea, 0x36, 0x6c, 0xd9, 0xb3, 0x75, + 0x0a, 0x27, 0xfd, 0x5a, 0x2c, 0x19, 0x6c, 0x55, + 0x18, 0x4c, 0x54, 0xd2, 0x99, 0xe7, 0xc4, 0xf9, + 0xa0, 0x9b, 0x84, 0x69, 0xa5, 0x4a, 0xc7, 0x06, + 0x16, 0xa4, 0x34, 0xc5, 0x33, 0x02, 0xbd, 0x91, + 0xcb, 0x7b, 0xe5, 0x1a, 0x13, 0x44, 0x9d, 0x0d, + 0x5d, 0x78, 0xad, 0x49, 0xf2, 0x4d, 0x14, 0x61, + 0x28, 0x14, 0x9c, 0xe9, 0x61, 0x37, 0x8b, 0x6c, + 0x9d, 0xa7, 0x77, 0xd8, 0xa7, 0x26, 0x04, 0xd5, + 0xba, 0x48, 0x05, 0x68, 0x3a, 0xa3, 0xbe, 0xc6, + 0x6a, 0xea, 0xd0, 0x3d, 0x27, 0xd5, 0xec, 0xfa, + 0xa3, 0xd4, 0x6c, 0xd9, 0xb3, 0x66, 0xcd, 0x83, + 0x1a, 0x95, 0xa6, 0x0c, 0x36, 0xb3, 0x8d, 0xe0, + 0x7f, 0x04, 0x64, 0x51, 0x91, 0x02, 0x20, 0x54, + 0x05, 0xe0, 0x2a, 0xd0, 0x0b, 0x71, 0x19, 0x07, + 0x00, 0x17, 0x02, 0x05, 0x96, 0x87, 0x13, 0x08, + 0xc6, 0xa8, 0xea, 0x5c, 0xdd, 0x29, 0xf1, 0xa8, + 0x24, 0x70, 0x1a, 0x6b, 0xe8, 0x1d, 0x36, 0x21, + 0x90, 0x6d, 0x26, 0x4d, 0xe5, 0x89, 0x35, 0x10, + 0xf8, 0xcd, 0x69, 0x16, 0x3a, 0x50, 0x68, 0xd2, + 0x77, 0xa5, 0x63, 0x93, 0x33, 0x2e, 0x10, 0x41, + 0xb3, 0x71, 0x9f, 0x81, 0x32, 0xdc, 0xeb, 0x02, + 0x1d, 0x26, 0xc6, 0xea, 0x9e, 0x03, 0xf4, 0xa1, + 0xe9, 0xdd, 0xcc, 0x62, 0xe8, 0x4a, 0xee, 0x09, + 0xc9, 0xa7, 0xe3, 0x2b, 0xd9, 0x98, 0x3f, 0xab, + 0x08, 0x9f, 0x85, 0xdd, 0xc0, 0x46, 0x10, 0x75, + 0x71, 0x4f, 0x15, 0xb4, 0xf3, 0xdd, 0x78, 0x11, + 0xd3, 0x8b, 0x48, 0x3c, 0x35, 0xac, 0x84, 0x20, + 0x44, 0x06, 0xa1, 0xeb, 0xb1, 0xe3, 0xc7, 0x8f, + 0x1e, 0x3c, 0xff, 0x00, 0x72, 0x5d, 0xf3, 0xe1, + 0x8d, 0x6b, 0xb5, 0xbc, 0x37, 0x98, 0xd9, 0x9d, + 0x4e, 0x7e, 0xbc, 0xcf, 0x7e, 0x78, 0x12, 0x82, + 0xd8, 0x23, 0xed, 0x34, 0xe8, 0x5c, 0xfa, 0xbb, + 0xce, 0x4b, 0xcf, 0xa5, 0xe5, 0xaf, 0x79, 0xd2, + 0xe4, 0xb6, 0x72, 0x9d, 0xcd, 0xf9, 0x73, 0x3e, + 0x92, 0xa9, 0xbc, 0xea, 0xf5, 0xbc, 0xfd, 0x78, + 0xf1, 0xe3, 0xc7, 0x8f, 0x18, 0xcf, 0xbe, 0xc7, + 0x3f, 0x85, 0x03, 0x07, 0x8a, 0x6f, 0xec, 0x85, + 0xfc, 0x10, 0x24, 0xea, 0x42, 0x32, 0x16, 0xa0, + 0x06, 0x29, 0x79, 0x70, 0xb0, 0x80, 0x82, 0x16, + 0xe9, 0x20, 0xfc, 0xc6, 0x59, 0xd2, 0x7e, 0x65, + 0x96, 0x84, 0xa2, 0x8d, 0x99, 0x12, 0xfb, 0xba, + 0x42, 0x54, 0xc7, 0x82, 0x9b, 0x7d, 0xbd, 0xcb, + 0x38, 0x46, 0x3f, 0x89, 0x8c, 0xe8, 0xd5, 0x99, + 0x65, 0xd5, 0x42, 0x35, 0x33, 0x25, 0x9f, 0xf6, + 0x61, 0x0a, 0x2c, 0x17, 0x12, 0x7d, 0xe9, 0xb6, + 0x78, 0x33, 0xe8, 0xd9, 0x22, 0x40, 0x10, 0x53, + 0x2c, 0xd9, 0xa6, 0xa3, 0x2f, 0xe7, 0xd1, 0xe6, + 0x5c, 0xc6, 0x11, 0xfb, 0x50, 0xbd, 0xad, 0x59, + 0x96, 0x47, 0xd3, 0x05, 0xb8, 0x6b, 0x60, 0xad, + 0x06, 0x08, 0x71, 0x47, 0xa1, 0x7c, 0x12, 0x58, + 0x6d, 0x96, 0xcb, 0x4c, 0x03, 0xa1, 0x25, 0x41, + 0xfb, 0x80, 0xfc, 0x07, 0x89, 0xf6, 0x59, 0x20, + 0x9c, 0xc3, 0x84, 0xe8, 0x06, 0x70, 0x99, 0xb5, + 0xa2, 0xbb, 0x5a, 0xcf, 0xdd, 0x1a, 0xc1, 0x1a, + 0x37, 0x00, 0x12, 0xf0, 0x1e, 0x52, 0x35, 0x94, + 0x32, 0xcd, 0x09, 0x75, 0x08, 0x41, 0x26, 0xa9, + 0x2e, 0x1f, 0x78, 0x25, 0xf2, 0x12, 0xd1, 0x83, + 0xea, 0x13, 0x44, 0xd5, 0x10, 0xf0, 0x3a, 0xaf, + 0x0b, 0xbb, 0xd0, 0x21, 0xa1, 0xcf, 0x15, 0xb4, + 0xf3, 0xdd, 0x63, 0x66, 0x29, 0xf7, 0x3f, 0xd2, + 0xe2, 0x4a, 0xc8, 0x70, 0x86, 0x27, 0x12, 0x53, + 0x02, 0x9c, 0x00, 0xbe, 0xc2, 0xd1, 0x4f, 0x3d, + 0x05, 0x02, 0xa8, 0x90, 0x42, 0x66, 0x16, 0xdc, + 0x58, 0x7c, 0x4e, 0xb2, 0x53, 0x49, 0x19, 0x0f, + 0xcf, 0xcc, 0xe3, 0x78, 0x80, 0x6e, 0xf9, 0xdb, + 0xe9, 0xe5, 0xe7, 0xea, 0xe5, 0x9b, 0x0a, 0x80, + 0x00, 0x65, 0x02, 0xec, 0xe4, 0x1f, 0xe7, 0xe2, + 0x93, 0x44, 0x2f, 0xe9, 0x14, 0x2a, 0x5b, 0xd0, + 0xb9, 0x9f, 0xb8, 0xc0, 0x88, 0xe0, 0x3c, 0x9b, + 0x63, 0x1f, 0x8c, 0x13, 0xaa, 0x09, 0x82, 0xd4, + 0x41, 0x0c, 0x48, 0xe9, 0x0c, 0xb5, 0x10, 0x55, + 0xfd, 0x26, 0xb7, 0xe4, 0x0a, 0x53, 0xb3, 0x78, + 0xa6, 0x81, 0xd2, 0x11, 0xa1, 0x5d, 0x88, 0x0f, + 0xeb, 0xa6, 0x40, 0xaf, 0xaf, 0x90, 0x73, 0xa8, + 0xe5, 0xdd, 0x6d, 0xad, 0x42, 0xdf, 0x08, 0x0c, + 0x02, 0x5a, 0x27, 0x27, 0x20, 0x56, 0x50, 0xb0, + 0x1e, 0x42, 0x08, 0x3c, 0xa7, 0x26, 0xa6, 0x30, + 0xf8, 0x2c, 0x58, 0x0b, 0x7a, 0x28, 0xc3, 0xaa, + 0x2b, 0x86, 0x2a, 0x0e, 0xb1, 0x11, 0x56, 0x08, + 0x92, 0x05, 0x85, 0x34, 0x84, 0x88, 0xe4, 0x1a, + 0xc7, 0x57, 0xf8, 0x6f, 0x5e, 0xcf, 0xdf, 0x4d, + 0x0f, 0x1f, 0xd1, 0x20, 0x5b, 0xb6, 0x56, 0x6b, + 0xe5, 0x57, 0xaf, 0xb0, 0x8d, 0x1a, 0x34, 0x68, + 0xd5, 0x81, 0xc0, 0x46, 0xc4, 0xf4, 0x99, 0xea, + 0xc4, 0xd4, 0xb8, 0x87, 0xc0, 0x41, 0xb3, 0x45, + 0x60, 0x23, 0x0e, 0x51, 0x29, 0xe6, 0x19, 0x64, + 0x6b, 0x68, 0x4e, 0xf9, 0x3b, 0xcd, 0xfb, 0x8b, + 0x4d, 0xdd, 0x46, 0x69, 0xc6, 0x45, 0xb0, 0x4d, + 0x26, 0xbc, 0xea, 0x2b, 0x6e, 0xf0, 0xb4, 0x29, + 0x39, 0x30, 0x12, 0x82, 0x2e, 0xe8, 0xa2, 0xf7, + 0xeb, 0x96, 0xea, 0xde, 0xbf, 0x1a, 0x34, 0x68, + 0xd1, 0xa3, 0x3c, 0x5f, 0x50, 0x28, 0xe9, 0x28, + 0xce, 0xb4, 0x4e, 0x07, 0xf4, 0x2b, 0x43, 0x5f, + 0x68, 0x62, 0xb7, 0x1e, 0x24, 0x92, 0xbd, 0x30, + 0x55, 0xe3, 0x26, 0xd5, 0x15, 0x1a, 0x9f, 0xb8, + 0x22, 0xf5, 0xe0, 0xde, 0xa1, 0xa9, 0x4b, 0x5d, + 0xab, 0x3d, 0x20, 0xe7, 0x0d, 0x4f, 0x7e, 0x88, + 0xa2, 0x49, 0x24, 0x35, 0x3f, 0x70, 0x40, 0xbd, + 0x13, 0xd8, 0xe2, 0x24, 0x95, 0xfa, 0x62, 0x49, + 0x24, 0x92, 0x0c, 0x29, 0x0a, 0xd9, 0x4a, 0x8c, + 0x0b, 0xc3, 0x5d, 0xa5, 0x6a, 0xa5, 0xf5, 0x0f, + 0x82, 0x78, 0x99, 0xe7, 0x8a, 0xda, 0x79, 0xee, + 0xbc, 0x78, 0x39, 0x5a, 0x68, 0xf6, 0x41, 0x1a, + 0xe9, 0x47, 0x42, 0x13, 0x71, 0xe8, 0x72, 0x4b, + 0x28, 0xa0, 0xa4, 0x70, 0x11, 0x2e, 0x3c, 0x5f, + 0xb1, 0xa3, 0xb5, 0x4d, 0x59, 0x8b, 0x2c, 0x56, + 0x99, 0xe6, 0x71, 0x24, 0x80, 0x55, 0xd5, 0x3c, + 0x9a, 0x0d, 0x76, 0x8c, 0xde, 0x03, 0xa2, 0xd3, + 0xe1, 0x7f, 0x5e, 0x42, 0xff, 0x00, 0x5a, 0x19, + 0xe6, 0x08, 0x09, 0xfc, 0xeb, 0x59, 0x08, 0xad, + 0x0e, 0x91, 0xa4, 0x60, 0x5d, 0xe7, 0x64, 0x19, + 0xf2, 0x58, 0x59, 0x09, 0xd4, 0x69, 0xb4, 0x29, + 0x69, 0x5c, 0x12, 0xf2, 0x1a, 0xa2, 0x11, 0x54, + 0x87, 0x85, 0x46, 0x8c, 0xf3, 0x31, 0xe2, 0x8b, + 0x1f, 0x25, 0xd1, 0xa1, 0x93, 0x35, 0xda, 0xa5, + 0xed, 0xce, 0x26, 0x98, 0xb3, 0x66, 0xa6, 0x96, + 0x84, 0xae, 0x01, 0x28, 0x14, 0x2b, 0xee, 0x5f, + 0x50, 0xdd, 0x41, 0x4b, 0xc2, 0xc4, 0x64, 0x52, + 0x82, 0xb9, 0xf6, 0x64, 0xdb, 0xa4, 0x4c, 0x2a, + 0x85, 0x92, 0x1a, 0x70, 0xf6, 0xf5, 0xcd, 0x5d, + 0xea, 0x8b, 0x91, 0x46, 0xe1, 0xc4, 0xe5, 0x90, + 0x8f, 0x16, 0xa7, 0x20, 0xca, 0x53, 0x50, 0x82, + 0xb0, 0x9e, 0x35, 0xb6, 0xc1, 0x11, 0x08, 0xec, + 0x20, 0x06, 0xd3, 0x7c, 0xb8, 0x57, 0x91, 0x45, + 0x6d, 0x2a, 0x7f, 0xaf, 0x5b, 0x91, 0x15, 0x04, + 0x2c, 0x40, 0x0f, 0x4c, 0x0c, 0x70, 0x84, 0xf2, + 0x74, 0x91, 0xec, 0xc1, 0x04, 0xa8, 0x52, 0xb5, + 0x00, 0x51, 0xa0, 0xb8, 0x41, 0x88, 0x62, 0x8d, + 0x4a, 0x8a, 0x58, 0x9a, 0x33, 0x0f, 0xe2, 0xfb, + 0x21, 0x54, 0xd2, 0x3a, 0xa3, 0x49, 0x19, 0x13, + 0xaa, 0x5a, 0x51, 0x4f, 0xc3, 0x6b, 0xa5, 0xa9, + 0x1f, 0xa5, 0x10, 0x68, 0xa1, 0x56, 0x35, 0x22, + 0xf1, 0x66, 0xc9, 0x1a, 0xfe, 0x8a, 0x2b, 0xca, + 0xcc, 0x27, 0x02, 0x6d, 0xe0, 0xb0, 0x89, 0x81, + 0x15, 0x1c, 0x5c, 0x85, 0x0d, 0x56, 0x20, 0x8e, + 0x06, 0xda, 0x0e, 0x32, 0xdc, 0x00, 0x6f, 0x6b, + 0xfc, 0x8e, 0x61, 0xee, 0x32, 0x46, 0x2a, 0x29, + 0x66, 0x65, 0xa2, 0x02, 0xd4, 0xcf, 0x76, 0xc8, + 0x05, 0x3c, 0xb7, 0x3b, 0x71, 0x0c, 0x7a, 0x91, + 0x19, 0x32, 0xac, 0xa2, 0x73, 0x4f, 0x01, 0xf9, + 0x66, 0x9d, 0x64, 0x46, 0xd4, 0x10, 0xf5, 0x5f, + 0x95, 0xa7, 0x8c, 0xb6, 0x10, 0xce, 0x52, 0x0a, + 0x5a, 0xe4, 0x55, 0x92, 0xd8, 0xb9, 0xa1, 0x8f, + 0x41, 0x59, 0x21, 0xd9, 0x5b, 0x37, 0xa2, 0x0a, + 0x31, 0x9a, 0xbb, 0x2d, 0xed, 0x7f, 0xa1, 0x54, + 0x9c, 0x4c, 0x6e, 0x5c, 0xae, 0xb8, 0xfc, 0x83, + 0xf0, 0x9d, 0x39, 0x1e, 0x22, 0x4f, 0xd0, 0x49, + 0xa0, 0x46, 0x01, 0x18, 0x9a, 0x7b, 0x93, 0x21, + 0xa4, 0x46, 0x25, 0x38, 0xac, 0xe5, 0xd3, 0xf0, + 0x1c, 0x0a, 0xa2, 0xe1, 0x3c, 0xc8, 0x8f, 0xb0, + 0xef, 0x4c, 0x44, 0xb4, 0x95, 0x06, 0x02, 0x9f, + 0x34, 0xf8, 0xb2, 0x45, 0x3d, 0x2e, 0x31, 0x3a, + 0x94, 0x4f, 0x1d, 0x96, 0x9e, 0xa4, 0x4e, 0xc7, + 0x69, 0x79, 0xc6, 0x73, 0xdc, 0x5a, 0x12, 0x84, + 0x15, 0x03, 0x55, 0x68, 0xa1, 0x2a, 0x38, 0x54, + 0x3e, 0xa0, 0xcf, 0x1e, 0x78, 0xad, 0xa7, 0x9e, + 0xeb, 0xc6, 0x67, 0x07, 0xa2, 0x07, 0x97, 0x60, + 0x85, 0x00, 0x82, 0x22, 0x59, 0x2f, 0xbb, 0x9f, + 0x23, 0x80, 0xb1, 0x2f, 0x0f, 0xea, 0x35, 0x93, + 0x26, 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, + 0x4c, 0x99, 0x32, 0x64, 0x88, 0x17, 0x26, 0x4a, + 0x33, 0xbd, 0xc0, 0x99, 0x4e, 0x12, 0x3a, 0x28, + 0x50, 0x07, 0xcc, 0x44, 0xa4, 0xae, 0x50, 0x50, + 0xab, 0x7c, 0x7e, 0x9f, 0xef, 0x5f, 0x29, 0x8f, + 0xc7, 0xb6, 0xd5, 0x83, 0xac, 0x1d, 0x60, 0xeb, + 0x07, 0x58, 0x3a, 0xc1, 0xd6, 0x0e, 0xcf, 0x70, + 0xc7, 0x80, 0xc7, 0xaa, 0x62, 0x45, 0x64, 0x63, + 0x1b, 0x44, 0xb4, 0x03, 0x60, 0x47, 0x8e, 0xfc, + 0x2f, 0x9e, 0x60, 0x7c, 0xd6, 0x43, 0xe6, 0x0a, + 0x1a, 0x04, 0x51, 0x82, 0x0e, 0x92, 0x48, 0x17, + 0x74, 0x13, 0x4c, 0x98, 0xd8, 0x51, 0x79, 0xa5, + 0x8e, 0x91, 0x1e, 0x52, 0xdb, 0xcd, 0x41, 0x6d, + 0x73, 0x0a, 0xad, 0xb1, 0x2a, 0xc8, 0xaa, 0xca, + 0xc1, 0xd6, 0x0e, 0xb0, 0x75, 0x83, 0xac, 0x1d, + 0x60, 0xeb, 0x07, 0xcc, 0xe8, 0xd7, 0x0a, 0x15, + 0x31, 0x2f, 0x0c, 0x24, 0xeb, 0xd9, 0xe0, 0xaa, + 0x02, 0x8b, 0x1b, 0x06, 0x66, 0x2e, 0x0f, 0x1e, + 0x3f, 0x3c, 0x77, 0x82, 0x19, 0x9c, 0x00, 0x20, + 0x07, 0x0f, 0x19, 0x7a, 0x29, 0x8c, 0x4b, 0x23, + 0xbd, 0xd4, 0xcf, 0xa5, 0x39, 0x03, 0xb1, 0x66, + 0x39, 0xc9, 0x63, 0x92, 0xaa, 0xa0, 0xb2, 0x9b, + 0xe8, 0xa3, 0xca, 0xe7, 0x09, 0x3a, 0xba, 0xd4, + 0xee, 0xc3, 0x28, 0x40, 0x9e, 0x52, 0xad, 0x33, + 0xe4, 0x24, 0xdc, 0x32, 0xe4, 0xa7, 0x6f, 0x6f, + 0x18, 0x0d, 0x52, 0x75, 0xe1, 0x24, 0x02, 0x48, + 0x35, 0x18, 0x34, 0xcc, 0x71, 0xa2, 0xce, 0x8a, + 0xb0, 0x72, 0x72, 0x64, 0x3e, 0x53, 0x1e, 0x21, + 0x9f, 0x03, 0xd5, 0xf1, 0x40, 0xd2, 0x9a, 0x0d, + 0xa8, 0x50, 0x26, 0xaf, 0x7b, 0x6e, 0x2f, 0x48, + 0xcc, 0x81, 0xd8, 0x76, 0x3a, 0x22, 0x7f, 0xdc, + 0x20, 0x44, 0xf8, 0x48, 0xd6, 0x2c, 0x02, 0x09, + 0x58, 0xb2, 0x13, 0xb4, 0x2b, 0xd6, 0x05, 0x73, + 0x49, 0x1b, 0xac, 0x8a, 0xa7, 0x92, 0x25, 0xa1, + 0x68, 0x81, 0x57, 0x1c, 0x9f, 0x4b, 0x81, 0xbb, + 0x7a, 0x4b, 0xe4, 0xbf, 0x46, 0xa7, 0x8f, 0x1e, + 0x05, 0x78, 0x83, 0xdc, 0x40, 0x37, 0xc4, 0x20, + 0x27, 0x13, 0x85, 0x7c, 0x56, 0xd3, 0xcf, 0x75, + 0xff, 0x00, 0xc4, 0x9d, 0xc3, 0xec, 0x83, 0xc7, + 0xfa, 0x8a, 0x2c, 0xa9, 0x29, 0xf2, 0x92, 0x4e, + 0x8f, 0x40, 0xa0, 0x19, 0x63, 0xc4, 0x2a, 0xa4, + 0x5c, 0xb9, 0x09, 0x61, 0x0e, 0x62, 0xa4, 0x21, + 0xa2, 0x86, 0x2f, 0x0a, 0x6a, 0xdc, 0x1f, 0x02, + 0x13, 0x3a, 0x45, 0x3b, 0xd1, 0xe6, 0xfc, 0x2f, + 0x11, 0xee, 0x52, 0xa8, 0x16, 0xb7, 0xdc, 0x20, + 0x7f, 0x13, 0x5a, 0x39, 0x2b, 0x2a, 0xbc, 0x9e, + 0xf4, 0xe0, 0x5d, 0x5a, 0xb5, 0x78, 0xb2, 0x64, + 0xda, 0x95, 0x66, 0x3f, 0xb9, 0x6d, 0x4e, 0x33, + 0xe5, 0x0b, 0x79, 0x84, 0x2a, 0x55, 0xe5, 0xb4, + 0x52, 0x34, 0x80, 0x43, 0x9a, 0xc6, 0xfc, 0x0b, + 0x01, 0xe8, 0xcc, 0x5d, 0x9e, 0xd7, 0xbf, 0x23, + 0x25, 0xcf, 0x66, 0xd7, 0x65, 0xa5, 0xe3, 0x29, + 0xe1, 0x98, 0xb0, 0x64, 0xa3, 0xa0, 0xcd, 0xbb, + 0xfd, 0xcf, 0xc9, 0xac, 0xcd, 0xa9, 0x3e, 0x77, + 0x10, 0xee, 0x4c, 0xb9, 0x4d, 0xc3, 0x84, 0xf4, + 0xaa, 0xc9, 0x9c, 0xa8, 0x08, 0x93, 0xbf, 0xe8, + 0x43, 0x2e, 0x7c, 0xc2, 0xaf, 0x66, 0x9d, 0x3b, + 0x14, 0x11, 0x38, 0xde, 0xbe, 0x7e, 0x66, 0x65, + 0xdc, 0x06, 0x90, 0x40, 0x11, 0x80, 0x08, 0x8b, + 0x3e, 0x2d, 0xa3, 0x48, 0x2b, 0x29, 0xa1, 0x2b, + 0x44, 0x5f, 0x54, 0xd3, 0xee, 0xe7, 0xca, 0xbb, + 0x7c, 0x05, 0xf3, 0xe6, 0xa5, 0x40, 0xe2, 0xc5, + 0xab, 0x54, 0x0b, 0x03, 0x42, 0x42, 0xb8, 0xd5, + 0x0b, 0x4e, 0x5c, 0x0c, 0xc8, 0xde, 0x93, 0xcb, + 0x0c, 0x1e, 0x36, 0x59, 0x8c, 0x46, 0x22, 0xdc, + 0x5c, 0x71, 0xc6, 0x05, 0xc3, 0x26, 0x4b, 0x04, + 0x19, 0x3e, 0x16, 0x28, 0x36, 0x8a, 0xae, 0x57, + 0x89, 0xc2, 0xbe, 0x2b, 0x69, 0xe7, 0xba, 0xf1, + 0x9c, 0xb1, 0xda, 0x3c, 0xdb, 0x90, 0xfc, 0xca, + 0x85, 0xc0, 0x72, 0x16, 0xc2, 0xcd, 0x07, 0xe6, + 0x12, 0x03, 0xa5, 0x54, 0xcd, 0x17, 0xfd, 0x49, + 0xd3, 0xa7, 0x4e, 0x9d, 0x3a, 0x74, 0xe9, 0xd3, + 0xa7, 0x4e, 0x9d, 0x3a, 0x74, 0xe9, 0xd3, 0xa7, + 0x0c, 0x86, 0xab, 0x59, 0x03, 0xea, 0xa0, 0x3d, + 0xd4, 0x0e, 0x72, 0x82, 0xe6, 0x49, 0x09, 0xa3, + 0x49, 0x4d, 0xbd, 0x46, 0x00, 0xf0, 0xfa, 0x20, + 0x45, 0x2f, 0x3f, 0x35, 0x3c, 0xcb, 0xf3, 0x3c, + 0xcb, 0xf3, 0x3c, 0xcb, 0xf3, 0x3c, 0xcb, 0xf3, + 0x3c, 0xcb, 0xf3, 0x3c, 0xcb, 0xf3, 0x3c, 0xcb, + 0xf3, 0x2b, 0x76, 0xc4, 0x03, 0x07, 0xc1, 0x6e, + 0xae, 0xc9, 0x1d, 0xfd, 0x7c, 0xdd, 0x19, 0x8f, + 0x55, 0xe2, 0x02, 0x05, 0x5b, 0x89, 0x0d, 0x56, + 0xc5, 0x3b, 0xf6, 0x9a, 0x1a, 0xe4, 0x4f, 0x03, + 0x3c, 0x91, 0x26, 0x3d, 0x01, 0x39, 0x94, 0xc0, + 0x26, 0xe9, 0x1c, 0xec, 0x12, 0xfa, 0x72, 0x7d, + 0x05, 0x00, 0x99, 0xb6, 0x74, 0x93, 0xf3, 0x2f, + 0xcc, 0xf3, 0x2f, 0xcc, 0xf3, 0x2f, 0xcc, 0xf3, + 0x2f, 0xcc, 0xf3, 0x2f, 0xcc, 0xf3, 0x2f, 0xcc, + 0xf3, 0x2f, 0xcc, 0x62, 0x10, 0x9a, 0xc3, 0x67, + 0x0c, 0xcb, 0x9d, 0x0b, 0xa0, 0xeb, 0x37, 0x2c, + 0x74, 0xac, 0x1c, 0x2b, 0xcb, 0xc3, 0xea, 0x5d, + 0x37, 0x44, 0x7c, 0x17, 0xb5, 0xd5, 0xb8, 0x2a, + 0x89, 0x5c, 0xc6, 0x4e, 0x38, 0xd0, 0x24, 0x74, + 0xd7, 0xb5, 0xa6, 0xe1, 0x24, 0x93, 0x99, 0xe3, + 0x03, 0x40, 0x01, 0x8e, 0x24, 0x6a, 0x6d, 0x7d, + 0x21, 0x19, 0x4b, 0xc5, 0xc0, 0x0f, 0x4b, 0x79, + 0x2d, 0x63, 0xe0, 0xbb, 0xa7, 0xba, 0xab, 0xc1, + 0xaf, 0x23, 0x15, 0xc6, 0x51, 0x09, 0x05, 0x4d, + 0x74, 0x23, 0x02, 0x5d, 0x19, 0xb8, 0x03, 0x53, + 0x73, 0xfb, 0x80, 0xe6, 0xbd, 0xec, 0x1f, 0xb0, + 0x3b, 0xcb, 0xcf, 0xe8, 0x6e, 0x3b, 0x95, 0x01, + 0x4e, 0x86, 0x00, 0x34, 0x34, 0x6b, 0x04, 0x76, + 0x04, 0x96, 0x26, 0x05, 0x20, 0x4a, 0xb3, 0x63, + 0x84, 0xcf, 0xc8, 0xad, 0xf9, 0x67, 0x39, 0xef, + 0xc8, 0xf4, 0x8d, 0xcc, 0x0f, 0x93, 0xb3, 0x62, + 0x95, 0x45, 0x4f, 0x26, 0xae, 0x5e, 0xd7, 0xed, + 0x40, 0x38, 0xa4, 0xd3, 0x80, 0x8b, 0x92, 0xee, + 0xbb, 0x1d, 0x7d, 0xb7, 0xae, 0x81, 0x06, 0xb9, + 0x6e, 0x58, 0xeb, 0x22, 0xc0, 0x57, 0x8f, 0x50, + 0x41, 0x68, 0x83, 0x9b, 0xa1, 0xb5, 0x09, 0x4b, + 0x14, 0x8c, 0x0b, 0x63, 0xce, 0xa8, 0xef, 0x08, + 0x00, 0xd2, 0xcb, 0x0b, 0x97, 0x16, 0xa3, 0xfc, + 0x56, 0xd3, 0xcf, 0x75, 0xe3, 0x39, 0xe5, 0x78, + 0x8e, 0xb4, 0xae, 0xd9, 0x57, 0x18, 0x05, 0x55, + 0xb8, 0x76, 0xf9, 0x4f, 0x2b, 0x97, 0xb7, 0x30, + 0x99, 0x02, 0x93, 0x52, 0xae, 0xbc, 0xd4, 0xe9, + 0x1e, 0xe1, 0xae, 0xad, 0x9d, 0xd8, 0xc0, 0xb6, + 0xc0, 0x4e, 0x2f, 0x58, 0x93, 0x74, 0x64, 0x33, + 0x00, 0x2e, 0xe2, 0xe4, 0x95, 0xec, 0xb5, 0x11, + 0xb0, 0xa3, 0xa0, 0xa0, 0x80, 0x9b, 0x72, 0xf4, + 0x92, 0x6a, 0x84, 0xe8, 0x6d, 0x87, 0x24, 0x08, + 0x68, 0x52, 0x98, 0x98, 0x59, 0x90, 0xe7, 0x6a, + 0x96, 0x50, 0xbe, 0x3a, 0xb1, 0x8d, 0xcc, 0x04, + 0x8f, 0x7e, 0xcc, 0x9c, 0x61, 0xcb, 0x66, 0x13, + 0x98, 0x1d, 0xa1, 0x65, 0x92, 0xa4, 0x36, 0x6c, + 0x90, 0xcb, 0xd5, 0x26, 0xa1, 0x02, 0x3a, 0x2a, + 0x54, 0xd1, 0x20, 0xb4, 0x23, 0x5a, 0x42, 0x91, + 0xaa, 0x45, 0xa2, 0xd3, 0x3c, 0xa5, 0x7b, 0x1a, + 0xc1, 0x2b, 0x8d, 0xeb, 0x6a, 0xcb, 0x90, 0xd7, + 0x09, 0xd0, 0x62, 0x41, 0x30, 0x71, 0xd9, 0x86, + 0xb4, 0x2a, 0x82, 0xad, 0x00, 0x10, 0xdf, 0x7f, + 0xd4, 0x01, 0x0d, 0x45, 0x83, 0x82, 0x50, 0xa7, + 0x47, 0x10, 0x10, 0xf0, 0x52, 0x2c, 0x8c, 0x23, + 0x3c, 0xae, 0x79, 0x5f, 0x0c, 0x98, 0x9a, 0x80, + 0x31, 0xca, 0xc5, 0x36, 0x5c, 0x4a, 0x2f, 0x0f, + 0xac, 0xc3, 0x36, 0xce, 0x24, 0xd7, 0xaf, 0x36, + 0x21, 0x96, 0x95, 0xbf, 0x61, 0x84, 0x77, 0x01, + 0x48, 0x49, 0x41, 0x4d, 0x68, 0x0d, 0xd8, 0xd1, + 0x51, 0x94, 0x09, 0x95, 0xf9, 0xc2, 0xe5, 0xb9, + 0x70, 0x89, 0x81, 0x3b, 0x63, 0x87, 0x89, 0x80, + 0x7d, 0x3e, 0x36, 0xc9, 0x8e, 0xb8, 0x35, 0x1a, + 0x8d, 0x64, 0xf1, 0xcf, 0xf4, 0xd5, 0xa5, 0xee, + 0xc1, 0x55, 0xd9, 0x10, 0x35, 0x20, 0x4e, 0x91, + 0xda, 0xfa, 0x01, 0x70, 0x55, 0xe2, 0x0a, 0x6c, + 0x11, 0x73, 0x4a, 0x41, 0x0e, 0xaa, 0xf9, 0x09, + 0x6a, 0x63, 0xc5, 0x76, 0x19, 0x07, 0x16, 0x90, + 0x5e, 0x83, 0x10, 0x78, 0x93, 0xa2, 0x41, 0xd2, + 0x9a, 0x45, 0xa3, 0xb1, 0x66, 0x3c, 0x4a, 0x14, + 0x1d, 0x61, 0x52, 0x19, 0x20, 0x20, 0x49, 0x1a, + 0xa2, 0xd7, 0xc0, 0x4d, 0x84, 0x50, 0x50, 0x0a, + 0x3e, 0x9f, 0x58, 0x4f, 0x53, 0x38, 0x84, 0x13, + 0x6d, 0x09, 0x6c, 0xda, 0x59, 0x64, 0x05, 0x82, + 0xd9, 0xde, 0x9e, 0xe2, 0x79, 0x78, 0x2e, 0x48, + 0x22, 0x8c, 0xe9, 0x50, 0xf6, 0xcd, 0x4b, 0x61, + 0x36, 0x1a, 0xb9, 0x63, 0xf8, 0x29, 0x3b, 0x92, + 0x56, 0x43, 0x45, 0x1a, 0x0a, 0xf3, 0x7f, 0x3e, + 0x0a, 0xd1, 0xe8, 0xec, 0x18, 0x01, 0x6c, 0x91, + 0x42, 0x7c, 0x3a, 0x30, 0x95, 0xae, 0x44, 0x3a, + 0x18, 0x0a, 0xa6, 0x0e, 0x32, 0xa7, 0x22, 0x03, + 0x93, 0x54, 0xba, 0xf9, 0xa1, 0x75, 0x59, 0x7d, + 0x7d, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x52, 0xc1, + 0x55, 0x26, 0x64, 0xc0, 0x61, 0xcb, 0x8b, 0x19, + 0x7d, 0x1d, 0x7a, 0xf5, 0x18, 0x20, 0x00, 0x35, + 0x19, 0x11, 0x2c, 0x23, 0xa2, 0x45, 0x8a, 0x21, + 0x55, 0x55, 0x5c, 0xaa, 0xb7, 0x55, 0xca, 0xb9, + 0x5f, 0x5f, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0x9c, + 0xfc, 0xb8, 0x44, 0xa4, 0x5c, 0xb4, 0xd2, 0x44, + 0x04, 0xaf, 0xe4, 0x09, 0x3f, 0xc9, 0x88, 0x15, + 0x15, 0x56, 0xdc, 0xf1, 0xaa, 0x3f, 0xc5, 0x6d, + 0x3c, 0xf7, 0x58, 0xc2, 0x1c, 0xc6, 0x5c, 0x36, + 0xda, 0x8b, 0x3a, 0x8e, 0xf1, 0x17, 0xff, 0x00, + 0x52, 0x90, 0xd6, 0x42, 0x89, 0x76, 0xa9, 0xa5, + 0x00, 0xbd, 0x22, 0xcc, 0x09, 0x41, 0xd1, 0xd7, + 0x00, 0xd3, 0x2c, 0x42, 0xb0, 0xba, 0xe4, 0x77, + 0x3c, 0x1b, 0x09, 0x83, 0xbb, 0xa5, 0x9b, 0xf8, + 0x5d, 0x69, 0xf8, 0xc0, 0xcc, 0x0a, 0xef, 0xa6, + 0x42, 0x00, 0x0c, 0x99, 0x13, 0xc3, 0x69, 0x9a, + 0xe1, 0x8f, 0x43, 0xdc, 0xc9, 0x61, 0x89, 0xa2, + 0x37, 0x47, 0x09, 0x63, 0x49, 0x27, 0x33, 0xfb, + 0xe5, 0x0b, 0x4f, 0x12, 0x1c, 0x50, 0x72, 0x4d, + 0x48, 0x51, 0x9c, 0x4c, 0x49, 0x26, 0x8e, 0x3e, + 0x21, 0x49, 0xa0, 0x42, 0x62, 0x2e, 0x81, 0x2a, + 0xd8, 0x94, 0xd8, 0x10, 0x7b, 0xc2, 0x9d, 0x44, + 0x27, 0xd1, 0xd0, 0x7b, 0x8e, 0xf7, 0x47, 0x54, + 0xee, 0xa5, 0x94, 0x38, 0xdb, 0x17, 0xa2, 0xf4, + 0x12, 0x9a, 0x50, 0x20, 0xa0, 0x5d, 0xb3, 0x33, + 0xb3, 0x30, 0x2f, 0x8f, 0x6e, 0xea, 0x2a, 0x20, + 0x0a, 0x71, 0x4c, 0x62, 0x05, 0x21, 0x48, 0x75, + 0x1d, 0xe1, 0x88, 0x9d, 0xef, 0x89, 0x5e, 0x9f, + 0xb2, 0x0b, 0xa3, 0x52, 0xa5, 0x56, 0xe4, 0x05, + 0x39, 0x05, 0xc1, 0x20, 0x6a, 0x60, 0x20, 0x76, + 0x16, 0x05, 0x1c, 0x8c, 0x0d, 0x48, 0x2e, 0x4a, + 0x50, 0xc1, 0xb2, 0xc6, 0x64, 0x02, 0xfd, 0xb8, + 0xcd, 0xf4, 0xf9, 0x89, 0xee, 0xb2, 0xbb, 0x1b, + 0x48, 0x7f, 0x70, 0x05, 0xcb, 0x54, 0x85, 0xe6, + 0x78, 0x74, 0x9f, 0x3c, 0x67, 0xd5, 0x44, 0x62, + 0x1c, 0xb2, 0xbd, 0x4a, 0xd8, 0x72, 0xd7, 0xe1, + 0x75, 0xa4, 0x0d, 0x9e, 0xc2, 0xf8, 0x2a, 0x96, + 0x0e, 0x6a, 0xb8, 0xf0, 0x29, 0x47, 0x60, 0xe3, + 0x86, 0xd4, 0xa0, 0x68, 0x2a, 0x32, 0xdd, 0xb8, + 0x42, 0x03, 0x5e, 0x9e, 0xd7, 0x3b, 0x5e, 0xa4, + 0xd3, 0x05, 0xc2, 0xb7, 0x24, 0xd2, 0x3a, 0x88, + 0x8f, 0x00, 0x13, 0x4e, 0x07, 0x13, 0x71, 0x3c, + 0xee, 0x6f, 0x10, 0x96, 0x9b, 0x70, 0x53, 0x81, + 0xc3, 0x91, 0x19, 0x9e, 0x02, 0x77, 0xac, 0xda, + 0x15, 0x3b, 0x7a, 0x0a, 0x8d, 0x12, 0xea, 0xaf, + 0xc9, 0xa5, 0x51, 0x1a, 0xd4, 0x39, 0x02, 0xcb, + 0xfe, 0x47, 0x92, 0x43, 0x2e, 0xa1, 0xdc, 0x5f, + 0xee, 0x4e, 0x70, 0x98, 0xb1, 0x87, 0xf8, 0xad, + 0xa7, 0x9e, 0xeb, 0xc5, 0x38, 0xf5, 0x5f, 0x56, + 0xed, 0x31, 0x7a, 0x3f, 0x68, 0xe8, 0x90, 0x01, + 0x08, 0x10, 0x0d, 0x20, 0xb6, 0x07, 0x08, 0xe4, + 0x75, 0x96, 0x6b, 0xdb, 0x47, 0x80, 0x7e, 0x65, + 0xc7, 0x76, 0x10, 0x0f, 0xc7, 0xd4, 0x30, 0x84, + 0x88, 0x8d, 0x5a, 0x19, 0x25, 0x96, 0x49, 0x32, + 0x35, 0x01, 0x5d, 0x1c, 0x02, 0x4e, 0x83, 0x0c, + 0xb1, 0x10, 0x82, 0xfc, 0x89, 0x80, 0x00, 0xd4, + 0xf4, 0x05, 0x36, 0xe0, 0xb6, 0x8d, 0x1c, 0xc9, + 0xf7, 0x02, 0x8f, 0x66, 0x69, 0x96, 0xb7, 0x2c, + 0xec, 0x67, 0x36, 0xf9, 0x55, 0xae, 0xfc, 0x13, + 0x9a, 0x20, 0x31, 0xa8, 0xbe, 0x8d, 0xb7, 0x34, + 0x56, 0x8e, 0x24, 0xb5, 0x31, 0x9c, 0x4e, 0xb1, + 0x55, 0x6c, 0xcd, 0x95, 0xf2, 0x9e, 0xa1, 0xc1, + 0x3b, 0x92, 0xad, 0x4d, 0x58, 0x25, 0x17, 0x06, + 0x73, 0xfd, 0x32, 0xb6, 0x9f, 0x67, 0xcf, 0x78, + 0xc0, 0x7d, 0xae, 0x20, 0x42, 0x1f, 0xc6, 0xf4, + 0xbf, 0x41, 0x5f, 0x9e, 0x14, 0xaa, 0x9e, 0x24, + 0x44, 0xb1, 0x4a, 0xa6, 0x06, 0xff, 0x00, 0x7d, + 0x64, 0x5c, 0x61, 0x52, 0x05, 0x0c, 0x08, 0x40, + 0xc3, 0x03, 0x00, 0x0e, 0x1b, 0xfa, 0x78, 0xe8, + 0xb9, 0xf1, 0xb9, 0xf8, 0xd7, 0x06, 0x8a, 0x97, + 0xb2, 0x7e, 0xe2, 0x27, 0x9f, 0x99, 0x01, 0xfe, + 0x17, 0xd9, 0x18, 0x80, 0xc6, 0x14, 0xd7, 0x9c, + 0xc0, 0x3a, 0x86, 0x1d, 0xbf, 0x5c, 0x17, 0xe5, + 0x8d, 0xb8, 0x35, 0x24, 0xea, 0x32, 0xca, 0x4c, + 0x8d, 0xc5, 0x40, 0x51, 0x24, 0x94, 0xc4, 0xa5, + 0xbf, 0x1b, 0x8b, 0xd0, 0xa0, 0x49, 0x24, 0x01, + 0x10, 0x02, 0x30, 0xc9, 0x48, 0x36, 0x01, 0xa1, + 0x0b, 0x69, 0x02, 0x46, 0xd1, 0x22, 0x88, 0x53, + 0x55, 0xe6, 0x70, 0x53, 0x78, 0x61, 0x71, 0xd1, + 0x00, 0x06, 0xb4, 0xeb, 0x03, 0x9f, 0x5a, 0x33, + 0xef, 0x1a, 0x13, 0x0f, 0x84, 0x35, 0x72, 0xda, + 0xe9, 0xfe, 0x2f, 0xab, 0x93, 0xb4, 0xab, 0xe0, + 0xe3, 0x68, 0x3a, 0xa8, 0x65, 0x0f, 0x38, 0x82, + 0x43, 0x7a, 0x79, 0x88, 0xff, 0x00, 0x47, 0x0a, + 0x61, 0x61, 0xa5, 0x84, 0x51, 0xee, 0x2c, 0xec, + 0x08, 0xc4, 0x95, 0x4d, 0x65, 0x02, 0xe5, 0x03, + 0x8f, 0xfa, 0x7c, 0xd7, 0x78, 0xad, 0xa7, 0x9e, + 0xeb, 0xe8, 0x4e, 0x3e, 0x45, 0x3d, 0xb1, 0x11, + 0x10, 0xeb, 0x04, 0xcd, 0xca, 0x97, 0xd1, 0x3a, + 0x74, 0xeb, 0xf0, 0x32, 0xe8, 0x6b, 0xbc, 0x88, + 0xa7, 0x7a, 0x7b, 0x32, 0xb4, 0xaa, 0x8d, 0x22, + 0xca, 0x67, 0x3a, 0xaf, 0x48, 0xf6, 0xe6, 0xa1, + 0xb9, 0x2a, 0x20, 0xa9, 0x72, 0xc8, 0x4a, 0x7e, + 0xcc, 0x8b, 0x62, 0xe7, 0xd6, 0x8f, 0x9c, 0x6a, + 0x4c, 0x36, 0x30, 0xca, 0x2c, 0x15, 0x03, 0x6a, + 0x17, 0x42, 0x07, 0x28, 0xeb, 0x21, 0x95, 0xbe, + 0x88, 0x18, 0xa3, 0x7d, 0x2b, 0x02, 0x85, 0x60, + 0x39, 0x94, 0xe2, 0x92, 0x41, 0x30, 0xb6, 0x20, + 0x6a, 0xd6, 0x6e, 0x77, 0x3d, 0x62, 0xf3, 0x85, + 0x40, 0x4c, 0x20, 0x16, 0x4e, 0x41, 0xd9, 0x95, + 0x83, 0x22, 0xed, 0xc7, 0x34, 0xea, 0xb2, 0xad, + 0x90, 0x3d, 0xa3, 0x21, 0xc1, 0xe8, 0x44, 0x69, + 0x86, 0xb1, 0xe0, 0xb1, 0xbf, 0xc9, 0xc6, 0x49, + 0x21, 0xdf, 0x72, 0xa8, 0x0e, 0x39, 0x9a, 0x38, + 0xce, 0x9d, 0x3b, 0x64, 0x1e, 0x48, 0x28, 0xee, + 0x25, 0x84, 0xe4, 0x99, 0x39, 0x4f, 0xa9, 0x4f, + 0x7b, 0xb9, 0x21, 0x4e, 0x06, 0x1f, 0xe0, 0xfb, + 0x20, 0x15, 0xee, 0x5e, 0xac, 0xbc, 0xe3, 0x78, + 0xc5, 0xe0, 0x8a, 0x85, 0x60, 0x00, 0xd0, 0x1a, + 0xda, 0xe7, 0x10, 0x73, 0x22, 0x21, 0xaf, 0xf7, + 0x19, 0x3d, 0x4f, 0x6e, 0x1c, 0xea, 0x27, 0x1a, + 0xbd, 0x80, 0xca, 0xee, 0x78, 0x3a, 0x4c, 0x80, + 0x96, 0xf6, 0x28, 0x5f, 0x36, 0x5b, 0x6d, 0x6a, + 0xac, 0x43, 0xca, 0xf5, 0x30, 0x51, 0xa8, 0xa3, + 0xee, 0xe8, 0x11, 0x06, 0xc0, 0xe7, 0xe4, 0xae, + 0xd6, 0x34, 0x12, 0x37, 0x95, 0x6c, 0xe2, 0x8a, + 0x59, 0x6b, 0x98, 0x64, 0x2f, 0x12, 0x94, 0x21, + 0x5a, 0xb2, 0x40, 0x1a, 0x89, 0xfc, 0x2e, 0x6f, + 0x99, 0x4e, 0x15, 0x2c, 0x1c, 0x6d, 0x73, 0xad, + 0xa2, 0x76, 0x48, 0x30, 0xf7, 0x0d, 0x2c, 0x8b, + 0x41, 0xc1, 0x2b, 0x49, 0x9c, 0x09, 0xe3, 0x37, + 0x93, 0xf3, 0x43, 0xc1, 0xae, 0xbf, 0xf3, 0x85, + 0x58, 0x36, 0x82, 0x3b, 0x41, 0x69, 0x74, 0xaf, + 0x65, 0xe0, 0x91, 0x48, 0x5e, 0x78, 0x83, 0x28, + 0x20, 0x65, 0x20, 0x40, 0xac, 0xcd, 0xa8, 0xb4, + 0xd5, 0xd0, 0x27, 0x06, 0xad, 0x1b, 0xfe, 0xd8, + 0x7c, 0x03, 0x37, 0xcf, 0xe8, 0xf9, 0xae, 0xf1, + 0x5b, 0x4f, 0x3d, 0xd6, 0x3a, 0x93, 0xae, 0x0e, + 0x08, 0xf0, 0xbb, 0x3d, 0x02, 0x4b, 0x62, 0x8d, + 0x59, 0xf2, 0x24, 0xd1, 0x4b, 0x82, 0x2c, 0x39, + 0x48, 0x1b, 0xda, 0x43, 0x00, 0xe2, 0xbf, 0x0c, + 0xe6, 0x70, 0xca, 0x07, 0x3a, 0x10, 0x01, 0x5a, + 0x37, 0xe1, 0xa3, 0xc4, 0x16, 0x70, 0xe6, 0x01, + 0x95, 0x5a, 0x94, 0xa3, 0x44, 0x71, 0x23, 0xb6, + 0xa6, 0xe4, 0x49, 0x9f, 0x3c, 0xe3, 0x37, 0x71, + 0xa0, 0xb7, 0xfa, 0xeb, 0xac, 0x71, 0x67, 0x09, + 0x5f, 0x92, 0xb5, 0x18, 0xfb, 0x5d, 0x08, 0x26, + 0x7c, 0x89, 0x07, 0x9a, 0xa6, 0x28, 0x04, 0xd6, + 0x8f, 0x5d, 0xbc, 0x82, 0x35, 0xaf, 0x22, 0x54, + 0x0b, 0xbc, 0xb8, 0xf2, 0x1b, 0xc2, 0x0c, 0x26, + 0xa6, 0x57, 0xfe, 0xf8, 0x2c, 0xb0, 0x31, 0xa1, + 0x83, 0xb1, 0x23, 0xd3, 0x3e, 0x20, 0xc3, 0x47, + 0xc9, 0x40, 0xfa, 0x82, 0x07, 0x05, 0xb7, 0xf5, + 0xeb, 0xa1, 0x76, 0x76, 0x4e, 0xd1, 0x7a, 0xa7, + 0x4d, 0x10, 0x30, 0x70, 0x6f, 0xe8, 0x20, 0xf4, + 0xa4, 0x48, 0x91, 0x22, 0x4c, 0x6f, 0x8d, 0xa3, + 0x2b, 0x6a, 0x1b, 0xb4, 0x6d, 0x82, 0x55, 0x0c, + 0xa0, 0x0a, 0x28, 0x2b, 0x44, 0x8f, 0xd4, 0xa1, + 0x68, 0x7a, 0x27, 0xd3, 0x92, 0x26, 0x80, 0x15, + 0xad, 0x1b, 0x0c, 0x9a, 0x60, 0x04, 0xfa, 0x16, + 0x8a, 0xc1, 0x6d, 0x5c, 0x97, 0x39, 0xc4, 0x28, + 0x02, 0x10, 0xc9, 0x4e, 0xe8, 0x55, 0x04, 0x85, + 0xd2, 0x38, 0x7a, 0xee, 0x82, 0x29, 0x19, 0x82, + 0x6d, 0x17, 0x39, 0x4f, 0xb0, 0xd1, 0xf1, 0xc8, + 0x18, 0x25, 0x45, 0x05, 0x8a, 0xb1, 0x20, 0x88, + 0xc2, 0xa1, 0x18, 0xaa, 0xca, 0x71, 0xea, 0x48, + 0x91, 0x22, 0x44, 0x89, 0x15, 0xe8, 0x2e, 0x79, + 0x67, 0x32, 0xcb, 0x85, 0x54, 0xb8, 0x07, 0xe7, + 0x25, 0x33, 0x94, 0xcc, 0x43, 0x4f, 0x00, 0x81, + 0xb5, 0x48, 0x45, 0xad, 0x5a, 0xf3, 0xab, 0xba, + 0x24, 0x37, 0x29, 0xda, 0xe3, 0x4c, 0xfe, 0x12, + 0x5c, 0xcb, 0x88, 0x9c, 0xeb, 0x55, 0x21, 0x62, + 0x90, 0x11, 0xd1, 0xa2, 0xee, 0xb9, 0xc4, 0x07, + 0x16, 0x30, 0x48, 0x9a, 0xe5, 0xc8, 0x8c, 0x29, + 0x34, 0x88, 0xa6, 0xbb, 0xa7, 0x22, 0x26, 0x96, + 0x52, 0xd1, 0x7e, 0x33, 0x98, 0xc4, 0xce, 0xce, + 0xe8, 0xdd, 0xb6, 0xb9, 0xfc, 0xd8, 0x40, 0xd5, + 0xcb, 0x3c, 0x56, 0xd3, 0xcf, 0x75, 0xe3, 0x2d, + 0xe2, 0xb7, 0xd2, 0xf0, 0xb7, 0x98, 0xa1, 0x18, + 0xcb, 0xe8, 0xa6, 0x2f, 0xf8, 0xa5, 0x8b, 0x16, + 0x2c, 0x58, 0xb1, 0x62, 0xc5, 0x8c, 0x7c, 0x87, + 0x21, 0xd2, 0xac, 0x1a, 0x33, 0x54, 0xe0, 0x58, + 0xb1, 0x1a, 0xed, 0x20, 0x63, 0x35, 0x03, 0x0a, + 0x28, 0xd6, 0x47, 0xb6, 0x63, 0xa2, 0xd1, 0x4a, + 0x08, 0x5a, 0xae, 0x00, 0xdb, 0xd6, 0x58, 0xb1, + 0x62, 0xc5, 0x8b, 0x72, 0x90, 0x1b, 0x17, 0xe8, + 0x75, 0xfa, 0xa1, 0x9d, 0xa4, 0x03, 0x60, 0x99, + 0xa1, 0x2c, 0xba, 0xe6, 0xbd, 0x34, 0xee, 0x1b, + 0xa0, 0xc0, 0x8c, 0xb7, 0x57, 0x32, 0x16, 0xff, + 0x00, 0x34, 0x8c, 0xa4, 0xfc, 0x1c, 0x30, 0x68, + 0x66, 0x43, 0xd1, 0x0f, 0x01, 0x34, 0x98, 0x8d, + 0xd0, 0x18, 0x68, 0xb6, 0xe5, 0xd7, 0xb8, 0x6c, + 0x62, 0x16, 0x98, 0x0e, 0xa8, 0x41, 0xec, 0x90, + 0x41, 0x2b, 0x55, 0x39, 0x34, 0x02, 0xd7, 0x9b, + 0x55, 0xe8, 0x8c, 0x57, 0x95, 0x53, 0x10, 0x3a, + 0x43, 0x77, 0x74, 0x01, 0x68, 0x95, 0x9a, 0x47, + 0xda, 0x8f, 0x0c, 0xa8, 0x0f, 0xb6, 0xe4, 0x1e, + 0x2a, 0x94, 0x7e, 0x0d, 0x08, 0xf0, 0x55, 0x50, + 0xa3, 0xb2, 0x37, 0xcc, 0x17, 0x5a, 0xfc, 0xad, + 0x22, 0x03, 0x4d, 0x22, 0xf5, 0x04, 0x47, 0x0a, + 0x49, 0x20, 0x70, 0x9c, 0x23, 0xc7, 0x59, 0x4f, + 0x23, 0x15, 0x88, 0x16, 0x9f, 0x5e, 0x91, 0x0b, + 0x0e, 0xd8, 0x98, 0xc3, 0xd1, 0x1b, 0x78, 0xc5, + 0xc7, 0x05, 0x67, 0xbf, 0x5e, 0x3d, 0x75, 0x05, + 0x5c, 0x65, 0xd4, 0x4d, 0x66, 0x28, 0x74, 0x14, + 0x0c, 0x0b, 0x6c, 0x30, 0x22, 0xc6, 0xc1, 0xc1, + 0x57, 0xa8, 0x1a, 0x2f, 0x09, 0xc1, 0x53, 0x16, + 0x7c, 0x2f, 0x59, 0x5e, 0x18, 0xce, 0xba, 0x84, + 0x0b, 0xc7, 0xd0, 0xa8, 0xeb, 0xed, 0x5d, 0x3c, + 0xa4, 0x7f, 0x43, 0x3c, 0x92, 0x66, 0x1a, 0x7f, + 0x53, 0x4a, 0x38, 0xb4, 0xc0, 0xb9, 0x81, 0xa6, + 0x8a, 0x72, 0x8c, 0xb8, 0x07, 0x9f, 0xf0, 0xf9, + 0x6c, 0x53, 0x28, 0xd5, 0x04, 0xf4, 0x15, 0xf0, + 0x5a, 0xd7, 0x80, 0x11, 0x7d, 0xab, 0x74, 0xf8, + 0xf1, 0x80, 0x3b, 0x02, 0xd4, 0x32, 0xa8, 0x2f, + 0xda, 0xea, 0x94, 0x4a, 0x71, 0x2d, 0x51, 0xe1, + 0xbc, 0x00, 0x9f, 0xaa, 0xb5, 0x00, 0xfb, 0xf1, + 0x46, 0x41, 0x85, 0x42, 0x65, 0xed, 0x9e, 0x75, + 0xc1, 0x7e, 0xb4, 0xa0, 0xd6, 0x68, 0x95, 0xfc, + 0x0e, 0x2e, 0x72, 0xf5, 0x63, 0xee, 0x1a, 0x04, + 0xcd, 0xe9, 0x8d, 0xc9, 0xdd, 0x86, 0x8e, 0x36, + 0x8b, 0x2d, 0x48, 0xea, 0xa5, 0xf5, 0x5a, 0xbb, + 0x61, 0x1b, 0x85, 0x49, 0x5b, 0x7a, 0x25, 0x47, + 0x87, 0xa2, 0xf4, 0x72, 0x29, 0x25, 0x1c, 0x0d, + 0x47, 0xf8, 0xa5, 0xd6, 0x16, 0x33, 0x80, 0x0a, + 0x8d, 0x5f, 0x47, 0x14, 0xbc, 0x1e, 0x2b, 0x69, + 0xe7, 0xba, 0xc4, 0x91, 0xb6, 0xf0, 0xbc, 0xef, + 0x85, 0xd9, 0xfd, 0xb0, 0x7d, 0xa4, 0x0e, 0xe1, + 0x49, 0xa2, 0x51, 0x42, 0x51, 0xe4, 0xd5, 0x2d, + 0x75, 0x74, 0x64, 0x62, 0x73, 0xbc, 0x11, 0xce, + 0xa1, 0x3f, 0x8b, 0xc0, 0x66, 0x1a, 0x35, 0xe5, + 0xaa, 0xf3, 0xd3, 0x36, 0x1e, 0x72, 0xb5, 0x5a, + 0x32, 0x38, 0xa7, 0x0c, 0x8e, 0x90, 0xb6, 0x12, + 0x85, 0x25, 0xbd, 0xb8, 0x21, 0xb1, 0xa4, 0x63, + 0x0c, 0xe3, 0xae, 0xfa, 0xec, 0xc4, 0x97, 0x80, + 0x65, 0x60, 0x9e, 0xd0, 0x14, 0x44, 0xc6, 0x5a, + 0x31, 0x3e, 0xb3, 0x06, 0xe7, 0xca, 0xf7, 0xea, + 0x65, 0x3f, 0x3f, 0xe7, 0xf5, 0x10, 0x95, 0xc3, + 0x3e, 0x52, 0x40, 0xcd, 0xe1, 0x9c, 0x96, 0x10, + 0xc6, 0x9e, 0x45, 0xa2, 0x1a, 0x4b, 0xe0, 0xd2, + 0x14, 0xb5, 0x46, 0xc1, 0x2d, 0x7c, 0xe0, 0xa4, + 0x40, 0xa8, 0xd0, 0x9b, 0xfe, 0xa4, 0x3d, 0x0a, + 0x56, 0x62, 0xcb, 0xd3, 0xca, 0x82, 0xab, 0x74, + 0x7d, 0x55, 0xb7, 0x4a, 0x67, 0x05, 0x7b, 0xf8, + 0x12, 0xad, 0x7b, 0x77, 0x6f, 0x48, 0x28, 0xa6, + 0xaa, 0x55, 0xf7, 0x5c, 0xf0, 0x55, 0x91, 0x2a, + 0x94, 0x43, 0x6c, 0x25, 0x07, 0x16, 0x25, 0xea, + 0x3a, 0x4a, 0x77, 0x82, 0x54, 0x80, 0x6f, 0x37, + 0x92, 0x38, 0x05, 0xd5, 0xda, 0x0c, 0x59, 0xd7, + 0x46, 0xb0, 0x6f, 0x70, 0x75, 0x73, 0xb0, 0xd5, + 0x07, 0x22, 0xe2, 0x57, 0xa7, 0xdc, 0xac, 0x4f, + 0x5f, 0x8c, 0x12, 0x42, 0x18, 0x19, 0xed, 0x9c, + 0x80, 0xfb, 0xd8, 0xaa, 0x84, 0xd3, 0x07, 0xc6, + 0x0b, 0x49, 0xbd, 0xbc, 0xb1, 0xab, 0x77, 0x76, + 0xc0, 0xc0, 0x16, 0x34, 0x68, 0xaa, 0x6b, 0xfa, + 0xcb, 0xa8, 0x9f, 0x7b, 0xd0, 0x43, 0x80, 0xa1, + 0x14, 0x40, 0x45, 0xa2, 0x9b, 0xf0, 0x70, 0x42, + 0xd9, 0x5b, 0xb5, 0x3a, 0x73, 0x9e, 0x31, 0x82, + 0x90, 0x06, 0x24, 0x7d, 0x68, 0x02, 0x00, 0x59, + 0x99, 0x42, 0x40, 0x02, 0x07, 0x39, 0x83, 0x27, + 0xa6, 0x4e, 0x80, 0xda, 0x3c, 0xd2, 0x3c, 0x02, + 0xee, 0xce, 0x41, 0x74, 0xe5, 0x01, 0xa9, 0x21, + 0xae, 0x04, 0xd2, 0xbb, 0x21, 0xbe, 0x55, 0xa2, + 0xdf, 0xf4, 0x41, 0x9d, 0x39, 0xc5, 0x4e, 0x72, + 0x59, 0x73, 0xd9, 0x4a, 0x42, 0x12, 0xc6, 0xcc, + 0xaa, 0x15, 0xbc, 0x20, 0x46, 0x0e, 0x06, 0x10, + 0xa7, 0x73, 0x4f, 0x15, 0xb4, 0xf3, 0xdd, 0x7d, + 0x06, 0xe9, 0x9d, 0xf0, 0xbb, 0x3d, 0x35, 0x83, + 0xaa, 0xa8, 0xd7, 0xe9, 0x2c, 0xa4, 0x60, 0xc8, + 0x44, 0x7e, 0x2a, 0xd1, 0xe5, 0xc3, 0x3b, 0x6e, + 0x95, 0xd1, 0xb0, 0x67, 0x73, 0xf7, 0xaa, 0xde, + 0x28, 0xec, 0x80, 0x46, 0xcd, 0x59, 0x2c, 0xd0, + 0x61, 0xc0, 0xa1, 0x86, 0xbf, 0x24, 0x2a, 0xc9, + 0xce, 0x31, 0xd5, 0x13, 0x68, 0x8a, 0xda, 0xd1, + 0x47, 0xbb, 0x74, 0x44, 0x41, 0x12, 0xd1, 0x0a, + 0x7d, 0x9b, 0xa6, 0x76, 0x5a, 0x50, 0x17, 0xb5, + 0xe8, 0x87, 0xa5, 0x8c, 0x71, 0x3a, 0x34, 0xa7, + 0xd9, 0xbc, 0xc2, 0xec, 0x6f, 0x3c, 0x4e, 0x01, + 0x1b, 0x50, 0x08, 0xb4, 0x8a, 0xaa, 0xe5, 0x98, + 0x08, 0x14, 0x95, 0x6b, 0x48, 0xd6, 0x18, 0x22, + 0x82, 0x26, 0xa0, 0x8a, 0x66, 0xb3, 0xf5, 0x13, + 0xdc, 0xf5, 0x83, 0x54, 0xce, 0x82, 0x30, 0x10, + 0x6d, 0x82, 0xee, 0xb7, 0xd0, 0x9d, 0x1f, 0x42, + 0xd0, 0xc8, 0xd9, 0x50, 0x84, 0x17, 0x31, 0x37, + 0x28, 0xc8, 0x92, 0x74, 0x48, 0xdb, 0xe9, 0xa9, + 0x4a, 0x64, 0x71, 0x46, 0x35, 0x01, 0x5e, 0xec, + 0xe3, 0xeb, 0x03, 0xf1, 0x64, 0x37, 0xb5, 0x48, + 0x1c, 0xf5, 0xb0, 0x2b, 0x9b, 0x06, 0xc7, 0xa0, + 0xc2, 0xf0, 0xcb, 0xca, 0xce, 0xf9, 0x3c, 0x50, + 0x06, 0x33, 0xdd, 0x7d, 0x05, 0xa0, 0x1e, 0x6a, + 0xc8, 0x85, 0xd7, 0x5d, 0xad, 0x1d, 0x39, 0x20, + 0xad, 0x17, 0xeb, 0xb0, 0xc4, 0xc1, 0x38, 0x72, + 0x8a, 0xcf, 0x60, 0x1b, 0x8a, 0x7d, 0x35, 0x97, + 0xc0, 0x21, 0xfc, 0xea, 0x94, 0xbe, 0x44, 0x0b, + 0xa0, 0x03, 0xb2, 0x4d, 0x4c, 0x91, 0x26, 0xa4, + 0xb4, 0xb7, 0xbf, 0x5b, 0x72, 0xfc, 0x59, 0x82, + 0xd1, 0x8b, 0x56, 0xe3, 0x69, 0xac, 0xfb, 0xfb, + 0x0f, 0xd3, 0x85, 0x40, 0xaf, 0x7a, 0x33, 0x53, + 0x65, 0xaa, 0xf5, 0xab, 0xd3, 0xfb, 0x72, 0xba, + 0x78, 0xad, 0xa7, 0x9e, 0xeb, 0xc5, 0x9c, 0xb2, + 0x49, 0x68, 0xda, 0x5a, 0xa6, 0x9c, 0x2b, 0x39, + 0xe1, 0x65, 0xd8, 0xe6, 0xac, 0x16, 0x0c, 0xc7, + 0xa6, 0x75, 0x28, 0x2d, 0xd7, 0xd2, 0x2b, 0x55, + 0xb1, 0x22, 0x71, 0xd6, 0x11, 0x11, 0xa6, 0xff, + 0x00, 0xde, 0x9d, 0xc6, 0x53, 0x55, 0x49, 0xa3, + 0x28, 0x5b, 0x4f, 0x8d, 0x96, 0x31, 0xa3, 0xf4, + 0x3a, 0xda, 0x2d, 0xbb, 0xff, 0x00, 0x18, 0x00, + 0xbf, 0xa6, 0x83, 0x02, 0x1e, 0xc2, 0xc1, 0x25, + 0x4d, 0x50, 0x92, 0x76, 0x43, 0xd0, 0x02, 0xeb, + 0x55, 0x67, 0x74, 0x58, 0xda, 0x2f, 0x0b, 0x0d, + 0x54, 0xc0, 0x4f, 0x75, 0xcc, 0xc8, 0x1b, 0xdf, + 0x70, 0x0f, 0x0c, 0x51, 0xd4, 0xab, 0xe1, 0x53, + 0x96, 0xeb, 0x6f, 0xaa, 0xff, 0x00, 0x94, 0x9d, + 0x73, 0xf6, 0xa8, 0x98, 0x0c, 0x78, 0x08, 0xd4, + 0x2d, 0x0d, 0xe8, 0x4a, 0xd0, 0x9d, 0xde, 0x4f, + 0x72, 0x63, 0x19, 0x44, 0xa4, 0xb3, 0xf0, 0x1e, + 0x29, 0x5e, 0x9c, 0x54, 0x0b, 0x38, 0x17, 0xaa, + 0x8e, 0x7a, 0xf0, 0x04, 0xa9, 0xf0, 0x0a, 0x84, + 0x44, 0x11, 0x30, 0x89, 0x91, 0x1e, 0x48, 0xc4, + 0xc7, 0x53, 0x26, 0xf2, 0x08, 0x5e, 0x8c, 0x28, + 0x61, 0x67, 0x88, 0x32, 0x6d, 0x08, 0xa9, 0x9e, + 0x02, 0x28, 0x4a, 0x8d, 0x94, 0x3f, 0xce, 0x82, + 0x80, 0xea, 0xa9, 0x94, 0xa5, 0x0e, 0x10, 0xc3, + 0x9a, 0x9f, 0x05, 0xc0, 0x2a, 0x9c, 0xca, 0xa6, + 0x2f, 0xd1, 0xa7, 0x8d, 0x86, 0x26, 0x1e, 0x3d, + 0x89, 0x8e, 0x7a, 0x88, 0x13, 0x70, 0x31, 0x38, + 0xe6, 0x0a, 0x77, 0xa5, 0x51, 0x84, 0x38, 0x51, + 0xf9, 0xb0, 0xd4, 0x8b, 0x5a, 0x66, 0xa8, 0x76, + 0xc8, 0x75, 0x89, 0xb5, 0x93, 0x22, 0x10, 0xc4, + 0x6d, 0x8a, 0xcc, 0x6a, 0x97, 0x38, 0xc2, 0x21, + 0x68, 0x9a, 0xb5, 0x46, 0xd1, 0x44, 0xba, 0xf0, + 0x54, 0xd2, 0x19, 0x06, 0x8b, 0xab, 0x8a, 0x26, + 0xaa, 0x18, 0xc8, 0xc1, 0xa2, 0x14, 0x39, 0x1e, + 0xf9, 0xcd, 0x56, 0x4a, 0xf5, 0x01, 0x5c, 0xb9, + 0x63, 0x95, 0x49, 0x9b, 0x1b, 0x99, 0x07, 0xdb, + 0x35, 0xf6, 0xe2, 0x89, 0x25, 0x11, 0xaa, 0xa4, + 0x51, 0xc8, 0x00, 0x56, 0x67, 0x68, 0x72, 0xe2, + 0x70, 0x17, 0xa2, 0x86, 0x38, 0x2f, 0xf6, 0x98, + 0x54, 0xf1, 0x5b, 0x4f, 0x3d, 0xd7, 0x83, 0x35, + 0xdd, 0x73, 0xa8, 0xff, 0x00, 0xc4, 0xfd, 0x38, + 0x52, 0x97, 0x2c, 0x3b, 0x67, 0xc5, 0x53, 0x52, + 0x11, 0xcf, 0xd8, 0x10, 0x06, 0x5b, 0x60, 0x00, + 0xd4, 0x59, 0x5e, 0x7f, 0xa4, 0x6c, 0xd9, 0xbd, + 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, + 0xf7, 0xef, 0x36, 0x6c, 0xe3, 0x96, 0x71, 0xb5, + 0x96, 0x59, 0x42, 0x0d, 0x02, 0xcb, 0x73, 0x2d, + 0x2d, 0x12, 0x4d, 0x01, 0x42, 0x75, 0xdc, 0x43, + 0x8e, 0xf7, 0x8a, 0x3b, 0x08, 0x54, 0x60, 0xd5, + 0x82, 0xfa, 0xc1, 0xc6, 0xa9, 0xdc, 0x16, 0xcf, + 0xd9, 0x0d, 0x3d, 0x42, 0xb2, 0x54, 0xa4, 0x61, + 0xb0, 0x93, 0xc8, 0x9b, 0x27, 0x6f, 0x46, 0xae, + 0x31, 0x75, 0x07, 0x14, 0xba, 0x34, 0xda, 0x79, + 0x35, 0x4f, 0x06, 0xf7, 0xba, 0x70, 0x01, 0x35, + 0x37, 0x84, 0x63, 0x83, 0xf9, 0x26, 0xe4, 0xc9, + 0x93, 0x6e, 0xdc, 0x99, 0x32, 0x6d, 0xdb, 0xa7, + 0x9d, 0x58, 0x44, 0x55, 0x88, 0x44, 0x2d, 0xe3, + 0x8d, 0x6e, 0xde, 0x9a, 0xb0, 0x68, 0x74, 0xc7, + 0x90, 0x36, 0xde, 0x05, 0xbc, 0x98, 0x48, 0x81, + 0x60, 0x72, 0x81, 0x1e, 0xda, 0x94, 0xe6, 0x7f, + 0xe0, 0x49, 0xfa, 0x98, 0xa0, 0x54, 0x55, 0x55, + 0x5b, 0xfe, 0xca, 0x4e, 0x73, 0x40, 0xc1, 0xad, + 0x5d, 0xe4, 0x2c, 0x28, 0xd5, 0x56, 0x5c, 0xa9, + 0xe2, 0xb6, 0x82, 0xfc, 0xed, 0x61, 0xe4, 0x6e, + 0x91, 0x0d, 0x4e, 0x24, 0xf2, 0x6a, 0x9e, 0x53, + 0x48, 0xdd, 0x4b, 0x6e, 0x05, 0xf2, 0x92, 0x60, + 0xb8, 0x83, 0xab, 0x6a, 0x53, 0x4e, 0x95, 0xc9, + 0xa3, 0xc1, 0x09, 0x92, 0x55, 0x32, 0x2d, 0x5a, + 0x8e, 0xae, 0x46, 0xb3, 0x46, 0xc7, 0xf4, 0xa5, + 0x4a, 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, 0x4a, + 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, 0x0c, 0xa6, + 0x61, 0x14, 0x26, 0xc8, 0xd1, 0x88, 0x19, 0xcb, + 0x28, 0x2d, 0x0b, 0x50, 0xda, 0xb9, 0x5c, 0xbe, + 0x9b, 0x5a, 0x4e, 0x63, 0xc5, 0x59, 0xb0, 0x95, + 0x49, 0x62, 0x9a, 0x32, 0x8d, 0x03, 0xfa, 0x22, + 0x54, 0xa9, 0x52, 0xa5, 0x4a, 0x95, 0x2a, 0x54, + 0xa9, 0x52, 0xa5, 0x4a, 0x95, 0x2b, 0x44, 0xb3, + 0xce, 0x32, 0xe0, 0x78, 0x55, 0x31, 0x85, 0x6b, + 0x5f, 0xed, 0x33, 0x23, 0xe8, 0xf5, 0xe9, 0x61, + 0xd3, 0xa5, 0xae, 0x81, 0x71, 0x08, 0x5a, 0x15, + 0x00, 0x52, 0xb1, 0xae, 0xbf, 0x73, 0x34, 0x14, + 0x43, 0xd4, 0x0a, 0xf5, 0xb1, 0x34, 0x10, 0xb1, + 0x56, 0x0b, 0xb4, 0x9e, 0x2b, 0x69, 0xd2, 0x72, + 0x47, 0x3c, 0xb5, 0x51, 0xe4, 0x82, 0xd9, 0x46, + 0x52, 0xa6, 0xd9, 0xf1, 0xb8, 0xf8, 0xdc, 0x7c, + 0x5a, 0x3e, 0x2d, 0x1f, 0x16, 0x8f, 0x8b, 0x47, + 0xc5, 0xa3, 0xe2, 0xd1, 0xf1, 0x68, 0xf8, 0xb4, + 0x7c, 0x5a, 0x3e, 0x2d, 0x1f, 0x16, 0x8f, 0x8b, + 0x47, 0xc5, 0xa3, 0xe2, 0xd1, 0xf1, 0x68, 0xf8, + 0xb4, 0x7c, 0x5a, 0x3e, 0x2d, 0x1f, 0x16, 0x8f, + 0x8b, 0x47, 0xc5, 0xa3, 0xe2, 0xd1, 0xf1, 0x68, + 0xf8, 0xb4, 0x7c, 0x5a, 0x3e, 0x2d, 0x1f, 0x16, + 0x8f, 0x8b, 0x47, 0xc5, 0xa3, 0xe2, 0xd1, 0xf1, + 0x68, 0xf8, 0xb4, 0x7c, 0x5a, 0x3e, 0x2d, 0x1f, + 0x16, 0x8f, 0x8b, 0x47, 0xc5, 0xa3, 0xe2, 0xd1, + 0xf1, 0x68, 0xf8, 0xb4, 0x7c, 0x5a, 0x3e, 0x2d, + 0x1f, 0x16, 0x8f, 0x8b, 0x47, 0xc5, 0xa3, 0xe2, + 0xd1, 0xf1, 0x68, 0xf8, 0xb4, 0x7c, 0x5a, 0x3e, + 0x2d, 0x1f, 0x16, 0x8f, 0x8b, 0x47, 0xc5, 0xa3, + 0xe2, 0xd1, 0xf1, 0x68, 0xf8, 0xb4, 0x7c, 0x5a, + 0x3e, 0x2d, 0x1f, 0x16, 0x8f, 0x8b, 0x47, 0xc5, + 0xa3, 0xe2, 0xd1, 0xf1, 0x68, 0xf8, 0xb4, 0x7c, + 0x5a, 0x3e, 0x2d, 0x1f, 0x16, 0x8f, 0x8b, 0x47, + 0xc5, 0xa3, 0xe3, 0x71, 0xf1, 0xb8, 0x64, 0x31, + 0xd8, 0xfb, 0x87, 0x82, 0xe6, 0x87, 0xae, 0x67, + 0x41, 0x41, 0xc3, 0xa5, 0x3a, 0x33, 0xa3, 0x3a, + 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, + 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, + 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, + 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, + 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, + 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, + 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, + 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, + 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, + 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, + 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, + 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, + 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, + 0x3a, 0x32, 0xae, 0x5c, 0x3f, 0xff, 0xda, 0x00, + 0x0c, 0x03, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x10, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x01, + 0x04, 0x92, 0x49, 0x24, 0x82, 0x49, 0x24, 0x92, + 0x49, 0x00, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x10, 0x01, 0x24, 0x90, + 0x00, 0x20, 0x90, 0x40, 0x00, 0x10, 0x48, 0x04, + 0x12, 0x00, 0x00, 0x00, 0x00, 0x04, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x20, 0x92, 0x48, 0x04, 0x92, + 0x41, 0x20, 0x80, 0x09, 0x00, 0x00, 0x40, 0x24, + 0x10, 0x00, 0x20, 0x80, 0x09, 0x04, 0x80, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x90, 0x48, 0x24, 0x92, + 0x01, 0x00, 0x02, 0x09, 0x04, 0x02, 0x40, 0x00, + 0x92, 0x40, 0x24, 0x82, 0x08, 0x24, 0x00, 0x48, + 0x00, 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x01, 0x20, 0x90, 0x40, 0x00, 0x00, 0x01, 0x00, + 0x12, 0x41, 0x20, 0x80, 0x01, 0x8c, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x3a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x01, + 0x00, 0x13, 0xc7, 0x93, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x05, 0x1c, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xdb, 0x8b, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xc6, 0x12, 0x00, 0x08, 0xca, 0x55, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x02, 0x49, 0x24, + 0xaa, 0xf5, 0x7e, 0x92, 0x49, 0x2e, 0xc2, 0x4c, + 0x92, 0x60, 0x59, 0x1d, 0x2d, 0x3d, 0x21, 0x24, + 0x00, 0x10, 0x7d, 0x74, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x39, 0x24, 0x92, 0x4a, 0x97, 0x9b, + 0xc9, 0x24, 0x8f, 0xa9, 0x20, 0x15, 0x44, 0xbb, + 0xe3, 0x01, 0x6c, 0x96, 0x48, 0x20, 0x23, 0xa1, + 0x00, 0xe6, 0xb7, 0x60, 0x00, 0x00, 0x3c, 0xb4, + 0x00, 0x00, 0xdf, 0x3d, 0xa8, 0x00, 0x00, 0x18, + 0xc0, 0x38, 0x92, 0xfd, 0xf4, 0xba, 0x5a, 0xd0, + 0x6c, 0x90, 0x01, 0x40, 0x72, 0x4e, 0xae, 0xf1, + 0x10, 0x00, 0x00, 0x39, 0x04, 0x92, 0x49, 0x04, + 0x12, 0x41, 0x24, 0x92, 0x00, 0x24, 0x80, 0x49, + 0x00, 0x00, 0x08, 0x04, 0x92, 0x00, 0x20, 0x10, + 0x82, 0x52, 0xfb, 0x11, 0x20, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x12, 0x08, 0x24, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x24, 0x90, 0x09, 0x24, 0x12, + 0x40, 0x00, 0x12, 0x40, 0x21, 0x12, 0x0e, 0x3a, + 0xf8, 0x88, 0x00, 0x00, 0x00, 0x04, 0x80, 0x00, + 0x20, 0x10, 0x40, 0x04, 0x00, 0x01, 0x03, 0x02, + 0x00, 0x20, 0x10, 0x41, 0x20, 0x92, 0x09, 0x24, + 0x80, 0x4a, 0x05, 0xf0, 0x6f, 0x10, 0x24, 0x80, + 0x00, 0x02, 0x09, 0x00, 0x02, 0x48, 0x20, 0x82, + 0x48, 0x00, 0x00, 0x06, 0x1b, 0x00, 0x41, 0x24, + 0x82, 0x00, 0x24, 0x90, 0x01, 0x00, 0x94, 0x27, + 0xb9, 0xf0, 0x75, 0xc1, 0x00, 0x00, 0x00, 0x10, + 0x49, 0x20, 0x82, 0x41, 0x00, 0x02, 0x49, 0x20, + 0x1e, 0x40, 0x00, 0x12, 0x40, 0x04, 0x80, 0x01, + 0x20, 0x92, 0x08, 0x28, 0x04, 0x48, 0x00, 0x02, + 0x00, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x01, 0x04, + 0x12, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, + 0x00, 0x00, 0x02, 0x40, 0x00, 0x82, 0x00, 0x00, + 0x02, 0x40, 0x00, 0x00, 0x09, 0x20, 0x80, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x08, 0x04, 0x00, 0x01, 0x00, + 0x00, 0x09, 0x04, 0x02, 0x00, 0x00, 0x92, 0x49, + 0x24, 0x92, 0x08, 0x24, 0x92, 0x49, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x90, 0x40, 0x20, 0x02, 0x41, 0x00, 0x92, 0x49, + 0x24, 0x12, 0x49, 0x00, 0x00, 0x00, 0x24, 0x92, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x82, 0x00, + 0x24, 0x10, 0x40, 0x00, 0x10, 0x48, 0x24, 0x90, + 0x00, 0x00, 0x12, 0x49, 0x04, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x41, 0x24, 0x80, 0x49, 0x24, 0x92, + 0x49, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04, + 0x12, 0x48, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x24, 0x92, 0x41, 0x00, 0x10, 0x01, + 0x24, 0x92, 0x05, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x80, 0x49, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x6d, + 0xb6, 0xdb, 0x6d, 0xb6, 0xdb, 0x6d, 0xb4, 0x5c, + 0x92, 0x7e, 0x0e, 0x22, 0x59, 0x5d, 0xc2, 0x48, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x3f, 0x59, 0x02, 0xd2, 0x3c, + 0x0e, 0xf2, 0xe4, 0xac, 0xa5, 0xbc, 0x9d, 0xb4, + 0x7a, 0x2f, 0x7f, 0x56, 0xda, 0x04, 0x12, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x90, + 0x6d, 0x59, 0xd4, 0xa3, 0xfe, 0x1a, 0x3a, 0x87, + 0x6c, 0x19, 0x27, 0xe2, 0xe8, 0x19, 0xc6, 0x0a, + 0x24, 0xd0, 0x48, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x49, 0x24, 0xd3, 0x14, 0xfe, + 0x79, 0xb4, 0xf9, 0x69, 0xee, 0x84, 0xef, 0xf6, + 0xdf, 0x6f, 0xf7, 0xdb, 0xff, 0x00, 0xf6, 0x44, + 0x90, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x20, 0x00, 0x08, 0x00, 0x80, + 0x48, 0x00, 0x00, 0x40, 0x00, 0x00, 0x08, 0x20, + 0x82, 0x48, 0x00, 0x82, 0x09, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x40, 0x00, 0x12, 0x09, 0x04, 0x90, 0x00, 0x04, + 0x02, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x02, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x82, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x42, 0x7f, 0xff, 0x00, 0xf5, 0xf9, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xfe, 0x08, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x92, 0x49, 0x2c, 0x21, 0xd3, + 0x24, 0x92, 0x48, 0x30, 0x00, 0x04, 0x02, 0x00, + 0x04, 0x80, 0x00, 0x00, 0x12, 0x01, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x2c, + 0x92, 0x49, 0x1a, 0xa1, 0x85, 0x24, 0x92, 0x42, + 0x00, 0x00, 0x08, 0x24, 0x80, 0x48, 0x00, 0x00, + 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7f, 0x6d, 0xa4, 0xd2, + 0x6d, 0x26, 0x9b, 0x6d, 0xac, 0x40, 0x04, 0x80, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x82, 0x08, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x24, 0x00, 0x49, 0x00, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x09, 0x24, + 0x90, 0x01, 0x20, 0x90, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x24, 0x80, 0x08, 0x00, 0x02, 0x41, 0x00, + 0x02, 0x49, 0x04, 0x92, 0x00, 0x20, 0x00, 0x01, + 0x20, 0x10, 0x09, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf2, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xa0, 0x80, 0x42, 0x3f, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0x87, 0x42, 0xa4, 0x47, 0xa5, + 0xe2, 0x98, 0x62, 0x74, 0xb8, 0x49, 0x24, 0x92, + 0x1c, 0x60, 0x12, 0x49, 0x25, 0xc1, 0x04, 0x95, + 0x2c, 0x8c, 0xca, 0x86, 0x6e, 0x9e, 0xaf, 0x15, + 0x14, 0x9c, 0x15, 0x7f, 0x70, 0xfe, 0x8c, 0x13, + 0xca, 0xfe, 0xdb, 0x6d, 0x19, 0xa9, 0xad, 0xb6, + 0xdb, 0x69, 0x12, 0x09, 0x34, 0x94, 0x78, 0xf9, + 0x40, 0xc6, 0xec, 0x7a, 0x44, 0x11, 0x6d, 0xb6, + 0xdb, 0x7f, 0xf8, 0xdb, 0x6d, 0xb4, 0x23, 0x6d, + 0xb6, 0xdb, 0x6d, 0xe4, 0xdb, 0x6d, 0xba, 0x24, + 0x00, 0x03, 0xa5, 0x06, 0xca, 0x58, 0x64, 0x42, + 0x62, 0xd0, 0x40, 0x00, 0x00, 0x49, 0x24, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x49, 0x04, + 0x00, 0x41, 0x00, 0x92, 0x48, 0x04, 0x82, 0x49, + 0x24, 0x10, 0x08, 0x20, 0x92, 0x49, 0x20, 0x90, + 0x00, 0x00, 0x10, 0x41, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x82, 0x01, 0x04, 0x00, 0x01, + 0x24, 0x10, 0x01, 0x00, 0x00, 0x41, 0x00, 0x02, + 0x40, 0x00, 0x00, 0x41, 0x00, 0x00, 0x01, 0x20, + 0x82, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x08, + 0x24, 0x92, 0x48, 0x00, 0x02, 0x49, 0x20, 0x82, + 0x49, 0x24, 0x82, 0x08, 0x04, 0x02, 0x49, 0x24, + 0x02, 0x00, 0x00, 0x12, 0x09, 0x20, 0x90, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x82, 0x40, 0x24, 0x00, + 0x00, 0x04, 0x82, 0x41, 0x04, 0x12, 0x41, 0x24, + 0x10, 0x49, 0x00, 0x02, 0x00, 0x04, 0x92, 0x49, + 0x20, 0x82, 0x09, 0x04, 0x92, 0x49, 0x00, 0x90, + 0x48, 0x20, 0x92, 0x41, 0x20, 0x92, 0x41, 0x04, + 0x80, 0x00, 0x20, 0x92, 0x48, 0x04, 0x10, 0x49, + 0x20, 0x82, 0x08, 0x00, 0x00, 0x01, 0x20, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x82, 0x00, 0x24, + 0x02, 0x00, 0x24, 0x00, 0x41, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x49, 0x24, 0x92, 0x01, 0x04, 0x92, 0x49, 0x24, + 0x12, 0x41, 0x24, 0x92, 0x01, 0x24, 0x00, 0x09, + 0x20, 0x02, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, + 0x10, 0x48, 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, + 0x04, 0x82, 0x49, 0x20, 0x90, 0x08, 0x24, 0x02, + 0x5e, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x34, 0x48, 0x00, 0x00, 0x49, 0x20, 0x80, 0x00, + 0x00, 0x00, 0x40, 0x20, 0x82, 0x01, 0x00, 0x80, + 0x08, 0x20, 0x82, 0x48, 0x04, 0x55, 0xf2, 0x80, + 0x92, 0x97, 0xb3, 0x07, 0xff, 0x00, 0x60, 0x80, + 0x49, 0x04, 0x02, 0x01, 0x04, 0x10, 0x48, 0x00, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x48, + 0x24, 0x90, 0x08, 0x08, 0xf8, 0xbc, 0x1a, 0xb6, + 0xa5, 0x4b, 0xfc, 0xf1, 0x00, 0x92, 0x00, 0x20, + 0x82, 0x49, 0x24, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x82, + 0x2e, 0xcd, 0x9a, 0xa0, 0x12, 0x0d, 0x9b, 0x93, + 0x22, 0x00, 0x00, 0x12, 0x01, 0x24, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x41, 0x04, 0xed, 0xbf, 0xfb, + 0xef, 0xb7, 0xfb, 0xed, 0xbe, 0x84, 0x00, 0x00, + 0x24, 0x90, 0x08, 0x04, 0x00, 0x00, 0x00, 0x10, + 0x41, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x82, 0x49, 0x00, 0x10, 0x41, 0x24, 0x80, 0x49, + 0x00, 0x00, 0x08, 0x24, 0x92, 0x49, 0x20, 0x12, + 0x09, 0x24, 0x90, 0x00, 0x20, 0x92, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x92, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x10, + 0x00, 0x04, 0x00, 0x49, 0x00, 0x02, 0x48, 0x00, + 0x02, 0x40, 0x00, 0x10, 0x09, 0x20, 0x12, 0x01, + 0x00, 0x92, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x09, 0x24, + 0x00, 0x41, 0x00, 0x90, 0x00, 0x00, 0x80, 0x48, + 0x00, 0x90, 0x49, 0x20, 0x10, 0x41, 0x04, 0x00, + 0x08, 0x00, 0x10, 0x40, 0x24, 0x12, 0x08, 0x00, + 0x10, 0x08, 0x00, 0x82, 0x00, 0x20, 0x10, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x48, 0x24, 0x90, 0x01, 0x00, + 0x12, 0x41, 0x24, 0x10, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x12, 0x41, 0x24, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x40, 0x20, 0x92, 0x08, 0x24, 0x00, 0x00, + 0x24, 0x92, 0x00, 0x20, 0x12, 0x40, 0x04, 0x80, + 0x09, 0x24, 0x92, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x12, 0x01, 0x00, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x48, 0x04, 0x10, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x41, 0x3f, 0xff, 0xc4, 0x00, + 0x2e, 0x11, 0x01, 0x01, 0x00, 0x02, 0x01, 0x02, + 0x04, 0x04, 0x07, 0x00, 0x03, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x11, 0x00, 0x21, 0x31, 0x41, + 0x51, 0x61, 0x71, 0x91, 0xa1, 0x10, 0x40, 0xd1, + 0xf1, 0x20, 0x30, 0x50, 0x81, 0xb1, 0xe1, 0xf0, + 0x80, 0x90, 0xc1, 0x60, 0x70, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, 0x10, 0xff, + 0x00, 0x90, 0xba, 0x80, 0xba, 0x53, 0x4c, 0x14, + 0xf5, 0xf1, 0x65, 0x1d, 0x1c, 0x69, 0xd8, 0x20, + 0x74, 0x80, 0x6c, 0x1a, 0x22, 0x81, 0xf7, 0xce, + 0x7e, 0xf9, 0xcf, 0xdf, 0x39, 0xfb, 0xe7, 0x3f, + 0x7c, 0xe7, 0xef, 0x9c, 0xfd, 0xf3, 0x9f, 0xbe, + 0x73, 0xf7, 0xce, 0x7e, 0xf9, 0xcf, 0xdf, 0x39, + 0xfb, 0xe7, 0x3f, 0x7c, 0xe7, 0xef, 0x9c, 0xfd, + 0xf3, 0x9f, 0xbe, 0x73, 0xf7, 0xce, 0x52, 0x14, + 0x74, 0x14, 0x03, 0x59, 0xd0, 0xa0, 0xaf, 0x05, + 0x43, 0xba, 0x1b, 0xc3, 0xc2, 0xd7, 0x6a, 0x5f, + 0x2b, 0x2a, 0xd1, 0x37, 0xfa, 0xc2, 0x3d, 0x5d, + 0xe4, 0xce, 0x12, 0x4c, 0xd4, 0x3c, 0xb1, 0x18, + 0xb2, 0x29, 0x04, 0x00, 0xab, 0x94, 0x31, 0x58, + 0x7a, 0x4d, 0x0a, 0x02, 0xba, 0x0a, 0xa1, 0x57, + 0x46, 0x11, 0x0e, 0xe8, 0x48, 0x57, 0x82, 0xa8, + 0x6e, 0x3e, 0x98, 0xc2, 0x2e, 0x15, 0x18, 0x0a, + 0x15, 0x05, 0x85, 0x42, 0xf7, 0x4c, 0x4c, 0x3c, + 0x90, 0x02, 0x47, 0x20, 0x16, 0x27, 0x51, 0x8e, + 0x40, 0xc5, 0x90, 0xaa, 0xd9, 0x02, 0x03, 0xa8, + 0x00, 0x21, 0xd9, 0x82, 0x43, 0x41, 0x1f, 0xe7, + 0x1c, 0x2f, 0x67, 0x50, 0x79, 0xc2, 0xe2, 0x1a, + 0xad, 0x07, 0x07, 0x3a, 0x12, 0x1f, 0x02, 0x7a, + 0x6d, 0xa1, 0x09, 0x65, 0x17, 0x29, 0xcf, 0x63, + 0x87, 0x46, 0x95, 0x29, 0x04, 0xe9, 0x50, 0xdb, + 0xd8, 0x17, 0xe5, 0x14, 0x28, 0x50, 0xa1, 0x42, + 0x85, 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, + 0x0a, 0x14, 0x28, 0x50, 0x50, 0xb0, 0xbb, 0x88, + 0xce, 0xb0, 0x48, 0xbd, 0xaa, 0x1e, 0x26, 0x01, + 0xe0, 0xc8, 0x74, 0xe6, 0x46, 0x48, 0x2f, 0xc0, + 0xa7, 0xeb, 0x67, 0x40, 0x22, 0x4c, 0x53, 0x23, + 0x7e, 0x55, 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, + 0x85, 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, + 0x0a, 0x14, 0x28, 0x50, 0x74, 0xdd, 0xdd, 0xf7, + 0x8e, 0xc8, 0x81, 0xbd, 0x98, 0x5a, 0x9d, 0x61, + 0x50, 0x9b, 0x25, 0x58, 0xb3, 0xf2, 0x44, 0x98, + 0x95, 0x61, 0xc2, 0xe2, 0xcb, 0xd0, 0xf9, 0x81, + 0x8e, 0x0b, 0x48, 0xc7, 0xca, 0xe9, 0x1a, 0x38, + 0x63, 0x0c, 0x5f, 0xe6, 0xb6, 0x6b, 0x73, 0xd3, + 0x72, 0xf4, 0x3c, 0x83, 0x34, 0xe7, 0xd9, 0xa5, + 0x04, 0x62, 0xae, 0x16, 0x67, 0x9c, 0xf9, 0xb7, + 0x59, 0xef, 0x17, 0x6a, 0x1a, 0x0e, 0xf3, 0x18, + 0x18, 0xb0, 0x16, 0xa7, 0xe4, 0x3f, 0xc5, 0xc7, + 0x7a, 0xc3, 0x70, 0xe0, 0x68, 0x88, 0x72, 0x41, + 0x9e, 0x4c, 0x1e, 0x4c, 0x1e, 0x4c, 0x1e, 0x4c, + 0x1e, 0x4c, 0x1e, 0x4c, 0x1e, 0x4c, 0x0a, 0xa3, + 0x7a, 0x0d, 0x7b, 0xf1, 0xe3, 0x11, 0x2c, 0x57, + 0x70, 0x8f, 0x5a, 0x26, 0x07, 0xde, 0x85, 0x66, + 0x56, 0x95, 0xdd, 0xd5, 0x97, 0x0e, 0x9d, 0xc6, + 0xb3, 0x54, 0x53, 0xcc, 0xae, 0x31, 0x66, 0x47, + 0x61, 0xeb, 0x32, 0xec, 0x08, 0xbc, 0x52, 0xc1, + 0xcf, 0x97, 0x51, 0xaa, 0xd0, 0x85, 0xcc, 0xcd, + 0x04, 0x4c, 0x63, 0x95, 0xae, 0x6b, 0xd3, 0x14, + 0xb7, 0x1e, 0x63, 0x11, 0x1b, 0x2f, 0xa1, 0x2e, + 0x14, 0x94, 0x27, 0x42, 0xa2, 0x3e, 0x4c, 0x1e, + 0x4c, 0x1e, 0x4c, 0x1e, 0x4c, 0x1e, 0x4c, 0x1e, + 0x4c, 0x0e, 0xe6, 0x12, 0x10, 0x0a, 0x58, 0x08, + 0x08, 0x6c, 0x3c, 0x51, 0xc8, 0xf3, 0x3f, 0x9c, + 0x67, 0x25, 0xc5, 0x5a, 0xaa, 0x45, 0x5d, 0x75, + 0x57, 0x3c, 0x98, 0x3c, 0x98, 0x08, 0xa9, 0x1d, + 0x03, 0xb5, 0xb0, 0x42, 0x12, 0x96, 0x0b, 0xa9, + 0xc2, 0xbd, 0x23, 0x20, 0xf7, 0x57, 0x36, 0x12, + 0xc1, 0x64, 0x06, 0xaa, 0x7a, 0x4c, 0xf7, 0x04, + 0x51, 0x77, 0xa0, 0x51, 0xd9, 0xa9, 0x59, 0x7c, + 0x92, 0xc7, 0x0f, 0xc3, 0x8a, 0x6d, 0xc5, 0x64, + 0xc8, 0x07, 0x1f, 0x6d, 0x62, 0xb9, 0x23, 0x74, + 0x1b, 0x08, 0x6c, 0x75, 0xdf, 0x67, 0x5b, 0xd1, + 0x74, 0x3b, 0xcd, 0xa2, 0x77, 0x6f, 0x61, 0xa4, + 0x50, 0xeb, 0x54, 0xe6, 0x82, 0xc0, 0x11, 0xa1, + 0xe0, 0xe6, 0x27, 0xe1, 0xc7, 0xff, 0x00, 0x16, + 0xb4, 0xe0, 0x3a, 0x4a, 0x22, 0x1b, 0x3e, 0x0b, + 0xfc, 0x6f, 0x18, 0x02, 0x26, 0x1d, 0x19, 0x31, + 0x0d, 0x46, 0x1b, 0x6c, 0x58, 0xc1, 0xd5, 0xc7, + 0x81, 0x00, 0x3d, 0x59, 0x5c, 0x7e, 0x7d, 0x4a, + 0x00, 0x37, 0x25, 0x66, 0x3f, 0x25, 0x50, 0x15, + 0x57, 0xa8, 0x4a, 0xd2, 0xee, 0xb9, 0xc8, 0x1b, + 0xa0, 0x26, 0x29, 0x8f, 0x45, 0x5e, 0x93, 0x82, + 0xb7, 0x1a, 0x47, 0xcf, 0x6f, 0x32, 0x3e, 0x2b, + 0x60, 0x78, 0x01, 0x03, 0x42, 0x1e, 0x4c, 0x1e, + 0x4c, 0x08, 0xe4, 0x7b, 0x0d, 0x09, 0x88, 0x2c, + 0xe0, 0x48, 0x4f, 0xe4, 0xc9, 0x2d, 0x60, 0xb6, + 0x13, 0x1e, 0x94, 0xb6, 0xbf, 0x32, 0x0a, 0xdf, + 0x76, 0x86, 0x43, 0x1e, 0x3d, 0x89, 0x11, 0x44, + 0xe2, 0x39, 0xbc, 0x66, 0xe8, 0x1e, 0x1c, 0x3d, + 0x51, 0x43, 0xeb, 0xb6, 0xca, 0xa4, 0x48, 0x62, + 0xa7, 0x6d, 0x5e, 0x7e, 0x18, 0xd6, 0x70, 0x81, + 0x16, 0x00, 0x38, 0x03, 0xc8, 0x9f, 0xc7, 0xc8, + 0xff, 0x00, 0xd2, 0x96, 0x91, 0x2f, 0x1b, 0x1a, + 0x7a, 0x9e, 0x9c, 0xfe, 0x42, 0x22, 0x22, 0x22, + 0x1e, 0x59, 0x8c, 0x05, 0xb6, 0x84, 0x24, 0x2a, + 0x58, 0xa3, 0x91, 0x0f, 0x3a, 0xf3, 0xce, 0x14, + 0x75, 0xc2, 0x61, 0xaa, 0xad, 0x1e, 0xb8, 0x0f, + 0x06, 0x61, 0x86, 0x75, 0x60, 0x81, 0xd2, 0xf9, + 0xd7, 0x2c, 0x1f, 0x41, 0xc9, 0x22, 0xee, 0xcf, + 0x31, 0xe8, 0xc2, 0xc3, 0xec, 0xba, 0x99, 0x05, + 0x26, 0xc1, 0x97, 0x22, 0x00, 0x16, 0x33, 0x0f, + 0x24, 0x00, 0x9a, 0x63, 0x07, 0xa9, 0x45, 0xc0, + 0xe6, 0x94, 0xf2, 0x5b, 0xa4, 0x45, 0x13, 0x7f, + 0x17, 0xa3, 0x8f, 0xc6, 0x88, 0x88, 0x89, 0xc0, + 0x9a, 0x2c, 0xe2, 0xf6, 0x47, 0x7f, 0xeb, 0x39, + 0x1e, 0x67, 0xf3, 0x9f, 0x53, 0xe4, 0x5d, 0xdd, + 0xfb, 0xbf, 0x14, 0x4a, 0x7e, 0xce, 0x44, 0xa6, + 0x8a, 0x3a, 0x04, 0x6d, 0x42, 0xe2, 0x33, 0x4f, + 0xd3, 0xc9, 0x4d, 0xa2, 0xca, 0xd5, 0x79, 0x2a, + 0x3f, 0xa4, 0x60, 0x1f, 0xbd, 0x31, 0x58, 0x92, + 0x39, 0xd4, 0x25, 0x67, 0xdb, 0x86, 0x92, 0x46, + 0x05, 0xc0, 0xbd, 0x89, 0x66, 0x15, 0x8c, 0x40, + 0x03, 0x07, 0x11, 0xbb, 0xcf, 0x16, 0xaf, 0x66, + 0xb8, 0x88, 0x14, 0x31, 0xbf, 0x60, 0xc4, 0x24, + 0x04, 0x4d, 0x80, 0x10, 0x13, 0x61, 0xfe, 0x68, + 0x2b, 0xab, 0x99, 0x09, 0xa8, 0x7a, 0xd8, 0x44, + 0x2d, 0xcf, 0x89, 0x24, 0x0c, 0x78, 0xd2, 0x40, + 0xe9, 0xd0, 0xc9, 0x73, 0xf1, 0x99, 0x93, 0xcd, + 0x68, 0xd3, 0x70, 0xac, 0x5e, 0x11, 0xf9, 0xb5, + 0x60, 0x82, 0x68, 0xe6, 0x79, 0xe0, 0xca, 0x6e, + 0xc9, 0x49, 0xfa, 0x31, 0x8b, 0xc9, 0xc5, 0xc5, + 0xde, 0x03, 0xa6, 0x47, 0x04, 0x8a, 0x25, 0x98, + 0x1c, 0x49, 0xc1, 0x17, 0x8b, 0x8a, 0x7c, 0xb3, + 0x48, 0x8f, 0x7a, 0x28, 0x39, 0xd9, 0x53, 0x2d, + 0x71, 0x80, 0xe4, 0xce, 0xc2, 0x78, 0x7d, 0xdd, + 0xbb, 0xfc, 0x51, 0x2b, 0xf8, 0x1f, 0x12, 0xd1, + 0xd8, 0xff, 0x00, 0x3c, 0x3f, 0x26, 0x4a, 0x99, + 0xb3, 0x61, 0xcc, 0x2b, 0x85, 0x50, 0x2b, 0xb5, + 0x86, 0xf0, 0xbb, 0x9d, 0x0c, 0x85, 0x15, 0x6a, + 0x04, 0x4d, 0x2e, 0xc4, 0xe4, 0xf8, 0x0e, 0x26, + 0xa0, 0x40, 0x28, 0x02, 0xa5, 0x40, 0x03, 0x6a, + 0x80, 0x57, 0xe2, 0x55, 0x3a, 0x2f, 0x2d, 0x41, + 0x49, 0x06, 0x04, 0xa2, 0x5a, 0x39, 0xd0, 0x0e, + 0xdf, 0xce, 0x9b, 0xb5, 0xad, 0x07, 0xa5, 0xa5, + 0xa4, 0xb4, 0x9c, 0xdb, 0xa9, 0xde, 0xe6, 0xda, + 0x33, 0xb0, 0xe4, 0xd8, 0x85, 0xa4, 0xb4, 0x74, + 0xe2, 0xc1, 0x37, 0x14, 0xc3, 0x92, 0x4a, 0x7d, + 0x60, 0x3a, 0x98, 0x8b, 0x85, 0xce, 0x05, 0x0a, + 0x50, 0x04, 0x48, 0x82, 0x29, 0xb3, 0x13, 0x9a, + 0xd4, 0xbb, 0x81, 0x04, 0xf0, 0x05, 0xfc, 0xaf, + 0xea, 0x98, 0x18, 0xd3, 0xa1, 0x10, 0xcc, 0x00, + 0x60, 0x53, 0x85, 0x78, 0x22, 0x20, 0x1c, 0xe1, + 0x84, 0xed, 0x1f, 0x8f, 0x8f, 0x1e, 0x3c, 0x78, + 0xf1, 0x5a, 0xd6, 0xd0, 0xa7, 0x83, 0x81, 0xeb, + 0x9d, 0x2f, 0x18, 0x03, 0x41, 0x50, 0x14, 0x35, + 0x0e, 0x0b, 0xd2, 0x74, 0x38, 0x30, 0x01, 0x00, + 0xb9, 0x02, 0x3e, 0x61, 0x2f, 0x07, 0x3d, 0xb3, + 0x68, 0xed, 0x14, 0xdf, 0xd8, 0x1d, 0xc3, 0xc0, + 0xd6, 0x77, 0x89, 0xcf, 0x76, 0xbc, 0x6b, 0xce, + 0xfc, 0xf3, 0xb4, 0x4e, 0x3b, 0xb5, 0xe3, 0x5e, + 0x77, 0xe7, 0x91, 0xbc, 0xfe, 0x5b, 0x46, 0x29, + 0x9d, 0xd2, 0xff, 0x00, 0x90, 0x1c, 0x78, 0xf1, + 0xe3, 0xc7, 0x8f, 0x11, 0x9d, 0x1f, 0x91, 0xb8, + 0xa1, 0xb1, 0x36, 0xdf, 0xc2, 0xa9, 0x3a, 0x19, + 0xda, 0x74, 0x91, 0x52, 0x57, 0x3e, 0x3f, 0x1e, + 0x3b, 0x3a, 0x14, 0xbb, 0xe7, 0x6b, 0xbc, 0xf0, + 0xcb, 0xf3, 0x91, 0x1a, 0x08, 0xed, 0x06, 0x5e, + 0xfa, 0x39, 0xaf, 0xab, 0x69, 0xaf, 0x6b, 0xa6, + 0xb6, 0xee, 0xf3, 0x71, 0x9b, 0x4c, 0xd2, 0xbc, + 0x7b, 0x97, 0x57, 0x36, 0x74, 0x29, 0x77, 0xce, + 0xd7, 0x79, 0xe1, 0x83, 0x41, 0xb9, 0x8b, 0x2f, + 0x78, 0xe4, 0x09, 0x06, 0x10, 0x87, 0x0e, 0xc7, + 0x49, 0xe1, 0xc6, 0x05, 0x02, 0xe6, 0x2c, 0xa7, + 0x0c, 0x67, 0x59, 0x7a, 0xb7, 0x0e, 0x8d, 0x6c, + 0x9a, 0xf3, 0xbe, 0x39, 0xde, 0x46, 0xd2, 0x71, + 0x5c, 0xf2, 0xba, 0xf0, 0x71, 0xdb, 0x02, 0x81, + 0x73, 0x16, 0x53, 0x86, 0x33, 0xac, 0xff, 0x00, + 0x6e, 0xde, 0x8f, 0xed, 0x32, 0x0d, 0x09, 0xad, + 0x6d, 0xae, 0x6b, 0x7a, 0xf5, 0x79, 0xcd, 0x1d, + 0x52, 0xcd, 0x36, 0xdb, 0x35, 0xb7, 0x77, 0xbe, + 0x32, 0xdc, 0x36, 0xc0, 0xd0, 0xbd, 0xcd, 0x81, + 0x33, 0x0a, 0xfe, 0xa7, 0x13, 0x49, 0xe2, 0x9b, + 0x29, 0x3f, 0x05, 0xc4, 0xd4, 0xd2, 0x89, 0xbd, + 0x44, 0x81, 0x57, 0x6a, 0xe1, 0x00, 0x77, 0x88, + 0xac, 0x2a, 0xb8, 0x4c, 0xac, 0x1e, 0x97, 0xf9, + 0x32, 0x55, 0x14, 0x70, 0x02, 0x50, 0xae, 0xac, + 0x7d, 0x79, 0x50, 0x07, 0xae, 0xbc, 0xb0, 0x82, + 0xf1, 0xc5, 0x61, 0xb6, 0x1f, 0x3c, 0x8a, 0x0e, + 0x82, 0x0c, 0x0d, 0xa6, 0x82, 0x31, 0x4b, 0x35, + 0x20, 0xcd, 0xa9, 0x79, 0x6d, 0x84, 0x2f, 0xcb, + 0x23, 0xe5, 0x19, 0x79, 0x9a, 0x3b, 0xe0, 0x4a, + 0x6c, 0x40, 0x1f, 0x3b, 0x8a, 0x90, 0x68, 0x30, + 0xc5, 0x3b, 0x88, 0xad, 0xc9, 0xc2, 0x9f, 0xea, + 0xa5, 0xfd, 0xd9, 0x24, 0x87, 0xd2, 0x38, 0x4c, + 0xd9, 0x60, 0x47, 0x9f, 0x0c, 0xc0, 0x81, 0x03, + 0xe3, 0x0b, 0x43, 0x21, 0xf2, 0x40, 0xe0, 0xf2, + 0x3c, 0xb5, 0x70, 0xed, 0x28, 0x13, 0x43, 0x5c, + 0x4b, 0x60, 0x80, 0x6d, 0x60, 0xdf, 0x3c, 0xea, + 0xb5, 0x95, 0x33, 0x52, 0x46, 0xc3, 0x6b, 0x44, + 0xb0, 0x7f, 0xf0, 0x3f, 0xe4, 0xcc, 0x50, 0x2c, + 0xbb, 0x32, 0x89, 0x5d, 0x90, 0xb9, 0x47, 0x5e, + 0xdb, 0x40, 0x76, 0xfd, 0x18, 0xfe, 0x0e, 0x87, + 0x1a, 0x1e, 0xd1, 0x7c, 0x41, 0xe6, 0x30, 0x3e, + 0x35, 0xba, 0xb8, 0xb2, 0x01, 0xea, 0xc5, 0xc0, + 0xb0, 0x06, 0x7c, 0x44, 0x29, 0x66, 0xbb, 0xd7, + 0x32, 0x55, 0x0a, 0x12, 0x24, 0x05, 0xa7, 0x3a, + 0x1b, 0x2a, 0x8a, 0x25, 0x2b, 0x1a, 0x99, 0x5f, + 0xae, 0x19, 0x0e, 0xc7, 0xa1, 0x92, 0xfc, 0xd2, + 0x5a, 0x6c, 0x64, 0x34, 0x22, 0xd1, 0xb0, 0xe1, + 0x1c, 0x99, 0x1d, 0xd0, 0xf5, 0x8b, 0xb9, 0x19, + 0xe0, 0xdf, 0xb5, 0x3a, 0xb6, 0x5d, 0x6f, 0xb8, + 0xbb, 0x2b, 0x0c, 0x9c, 0x4b, 0x11, 0x9a, 0x88, + 0x0a, 0x62, 0xa6, 0x61, 0x95, 0x3a, 0x3a, 0x02, + 0x8a, 0x01, 0x44, 0x6f, 0xf2, 0x01, 0x85, 0xae, + 0x3d, 0x10, 0xc2, 0x77, 0x29, 0x7c, 0xce, 0xdf, + 0xac, 0xc9, 0xd0, 0xbf, 0x4a, 0x4a, 0xa5, 0xde, + 0xe0, 0x1c, 0xf6, 0x83, 0x62, 0x86, 0x9f, 0x22, + 0x8a, 0xa7, 0x99, 0xa6, 0x41, 0x70, 0x53, 0x58, + 0x60, 0x0a, 0x45, 0x50, 0xd2, 0x16, 0x04, 0x0b, + 0x97, 0x62, 0xb4, 0xaa, 0xa5, 0x62, 0x9d, 0x1d, + 0x4d, 0x02, 0xe7, 0x62, 0xbf, 0x71, 0x44, 0x10, + 0x0a, 0x06, 0x5b, 0x38, 0x22, 0x1a, 0xfa, 0x12, + 0x68, 0x9a, 0x08, 0x6c, 0x69, 0x4f, 0xc8, 0x1e, + 0x1c, 0xa0, 0x40, 0x02, 0xaa, 0x80, 0x0a, 0xb3, + 0x36, 0xb5, 0x73, 0xa0, 0x94, 0xab, 0x09, 0x50, + 0xa2, 0x72, 0x60, 0x08, 0xa4, 0x44, 0x32, 0xe7, + 0x2d, 0x94, 0x70, 0x09, 0x36, 0x2f, 0x82, 0x97, + 0xa1, 0x37, 0x98, 0x27, 0x19, 0x17, 0xf4, 0x28, + 0x8c, 0xd6, 0x1c, 0xfa, 0x2d, 0xc3, 0x00, 0x2c, + 0xf8, 0x9d, 0xa3, 0x60, 0x50, 0x7f, 0x1d, 0x38, + 0x3b, 0x33, 0x4e, 0xb3, 0xf3, 0x89, 0x24, 0x04, + 0x15, 0x25, 0x02, 0xb2, 0x22, 0xf2, 0xc1, 0xd5, + 0xe2, 0xe7, 0x5d, 0x19, 0x8b, 0x56, 0x3d, 0x05, + 0x7e, 0x38, 0x09, 0x43, 0x09, 0x8f, 0x95, 0xb6, + 0x6f, 0xff, 0x00, 0xea, 0x8f, 0xac, 0xe2, 0x43, + 0x80, 0xfc, 0x83, 0x9d, 0xee, 0x17, 0xee, 0x9a, + 0x9b, 0xb7, 0x1c, 0x6f, 0x3e, 0x1d, 0xd8, 0x6e, + 0x93, 0xd5, 0x90, 0x87, 0x0d, 0x14, 0xde, 0xc4, + 0x43, 0xf4, 0x8e, 0x7c, 0x12, 0xe8, 0x56, 0xb8, + 0x43, 0xbb, 0x31, 0x0e, 0xfa, 0xf0, 0x27, 0x18, + 0x48, 0x03, 0x85, 0x08, 0x34, 0x84, 0x04, 0x38, + 0x31, 0xd2, 0x8b, 0x2e, 0xa9, 0x94, 0x36, 0x09, + 0xaf, 0x85, 0x21, 0xea, 0xba, 0xdb, 0xbf, 0x85, + 0x04, 0x25, 0x54, 0x83, 0x3f, 0x6d, 0x1f, 0xa1, + 0xcf, 0x84, 0xef, 0x1f, 0xcc, 0xe4, 0xf7, 0xc3, + 0x20, 0x42, 0x87, 0x30, 0xc4, 0xff, 0x00, 0x7b, + 0xfc, 0x73, 0xeb, 0xe3, 0x93, 0x5c, 0xe1, 0x6b, + 0xcc, 0xcf, 0x37, 0xa1, 0x32, 0x4b, 0xc5, 0x07, + 0x1c, 0x24, 0xea, 0x62, 0xed, 0xd7, 0xe1, 0xfe, + 0xd5, 0xdd, 0xff, 0x00, 0x97, 0xf6, 0xf9, 0xc9, + 0x2b, 0x36, 0xfa, 0xe9, 0x12, 0xff, 0x00, 0xf1, + 0x32, 0x16, 0x1f, 0x6c, 0x93, 0x87, 0x5e, 0x85, + 0xbd, 0xd4, 0xf8, 0x1c, 0xf9, 0x08, 0x35, 0x95, + 0xe6, 0x7c, 0x23, 0x15, 0xcc, 0x92, 0xb1, 0xce, + 0xe0, 0x7e, 0x32, 0xc8, 0xca, 0xa3, 0xbf, 0x30, + 0xb1, 0xee, 0xe4, 0xb4, 0x0e, 0x6e, 0xbf, 0x19, + 0x5a, 0xa0, 0x59, 0x7a, 0x7b, 0x74, 0xca, 0x9c, + 0x4f, 0xe3, 0x56, 0xd9, 0x23, 0x58, 0xd5, 0x6e, + 0xee, 0x0e, 0x42, 0x3f, 0x29, 0x0c, 0x6d, 0xd2, + 0x4f, 0x45, 0x6c, 0xbf, 0xec, 0x34, 0x23, 0x4a, + 0x0a, 0xc2, 0x4b, 0xe0, 0xae, 0xc8, 0x64, 0x45, + 0x5a, 0x99, 0x20, 0x5b, 0x0b, 0x38, 0x19, 0x7c, + 0x50, 0xa2, 0x1e, 0x4e, 0xf8, 0x48, 0x83, 0xe1, + 0xbd, 0x25, 0xdc, 0xc4, 0x61, 0xc6, 0xfe, 0x70, + 0x7f, 0xa1, 0x5c, 0x44, 0x2b, 0x52, 0xa7, 0x21, + 0x2c, 0xac, 0xf9, 0xd5, 0xc1, 0xd8, 0xb9, 0x7f, + 0xd2, 0xc8, 0xa6, 0xba, 0x85, 0xf1, 0xdc, 0xc2, + 0xdc, 0x67, 0xd7, 0xc0, 0x73, 0x00, 0x7c, 0x40, + 0x46, 0x2c, 0x50, 0x08, 0x47, 0xbc, 0xad, 0xb6, + 0x2f, 0xea, 0x27, 0x7f, 0x27, 0x16, 0x2c, 0x58, + 0xb1, 0x62, 0xc5, 0x8b, 0x16, 0x2c, 0x58, 0xb1, + 0x62, 0xc5, 0x8b, 0x16, 0x29, 0x96, 0x03, 0x7e, + 0x96, 0x86, 0x4c, 0x80, 0x36, 0x3f, 0xf9, 0xce, + 0xea, 0x0a, 0x02, 0xc5, 0xa1, 0xcc, 0x09, 0x60, + 0x24, 0x0f, 0x94, 0x60, 0xc1, 0x83, 0x06, 0x0c, + 0x18, 0x30, 0x60, 0xc1, 0x83, 0x06, 0x0c, 0x18, + 0x30, 0x60, 0xc1, 0x83, 0x04, 0xec, 0x0d, 0xc6, + 0x8a, 0x21, 0xe2, 0x96, 0x25, 0x03, 0x7f, 0xa0, + 0x11, 0xac, 0x33, 0x3c, 0xd1, 0xa8, 0x20, 0xa0, + 0x69, 0x6c, 0x50, 0xb1, 0x10, 0x18, 0x88, 0x10, + 0x60, 0x40, 0x3e, 0x53, 0x06, 0x0c, 0x18, 0x30, + 0x60, 0xc1, 0x83, 0x06, 0x0c, 0x18, 0x30, 0x60, + 0xc1, 0x83, 0x06, 0x0c, 0x18, 0x1f, 0xa6, 0x16, + 0x0e, 0x1e, 0x3c, 0x48, 0x14, 0x73, 0xa5, 0xca, + 0x04, 0x18, 0xf0, 0xa2, 0x8c, 0xdc, 0x52, 0x38, + 0xa1, 0xcf, 0xa3, 0x4c, 0x44, 0x9a, 0xd9, 0x86, + 0x80, 0x64, 0xf7, 0x7a, 0x1f, 0x5c, 0x9e, 0xef, + 0x43, 0xeb, 0x86, 0x4d, 0xeb, 0xe8, 0xdf, 0x5a, + 0xf4, 0x40, 0xc4, 0xd3, 0x81, 0x71, 0x75, 0xf3, + 0xdd, 0xa8, 0xf3, 0x99, 0x9f, 0x80, 0xe3, 0xcf, + 0x97, 0x67, 0x2e, 0x46, 0xc9, 0x71, 0x41, 0x8a, + 0xa0, 0xa0, 0xa8, 0x20, 0x29, 0x82, 0xed, 0x0a, + 0xe4, 0x56, 0x4c, 0x8f, 0x0c, 0xc3, 0xb1, 0x40, + 0xdc, 0xe8, 0x09, 0x81, 0xc8, 0xa0, 0xad, 0x95, + 0x77, 0x4d, 0xea, 0xe5, 0x01, 0x18, 0x54, 0xd1, + 0xa3, 0x46, 0xed, 0xd9, 0xa3, 0x7b, 0x30, 0xa1, + 0xfe, 0x1f, 0xe4, 0x29, 0x45, 0x94, 0x40, 0x92, + 0xb1, 0xb2, 0x34, 0x40, 0xf2, 0x7c, 0x51, 0x9d, + 0x06, 0x21, 0x14, 0xf8, 0x7a, 0x38, 0x80, 0x45, + 0xc7, 0xd3, 0x4d, 0x2f, 0x0d, 0x3b, 0xed, 0x27, + 0x8d, 0x99, 0x49, 0x05, 0x06, 0x63, 0x8f, 0x8a, + 0x56, 0x51, 0x84, 0x3a, 0x35, 0xbb, 0xe9, 0x97, + 0xab, 0xa1, 0x1d, 0x5e, 0x4c, 0xe0, 0x31, 0xd4, + 0xdc, 0xda, 0x5a, 0x6d, 0x01, 0x4a, 0x88, 0x10, + 0x14, 0x89, 0x0a, 0x94, 0x8a, 0xc6, 0x9b, 0x23, + 0xb3, 0x04, 0x04, 0xa1, 0x04, 0x48, 0x88, 0xec, + 0x44, 0x62, 0x27, 0x0e, 0x4f, 0x77, 0xa1, 0xf5, + 0xc9, 0xee, 0xf4, 0x3e, 0xb8, 0xdb, 0x87, 0x69, + 0xd3, 0x6f, 0x2e, 0x25, 0x41, 0x30, 0x21, 0x80, + 0x32, 0x0c, 0xe5, 0x50, 0x88, 0xaa, 0x1a, 0xdf, + 0xcf, 0xc2, 0x9c, 0xa4, 0x40, 0x22, 0x02, 0xb2, + 0x82, 0x20, 0x12, 0xfb, 0x3e, 0xf8, 0xa1, 0x07, + 0x51, 0x42, 0xec, 0x14, 0xef, 0x96, 0xb0, 0x64, + 0x87, 0x13, 0xf6, 0xf2, 0x81, 0xd4, 0xe1, 0x43, + 0x70, 0xea, 0x2b, 0x73, 0x15, 0x7a, 0x44, 0x01, + 0x80, 0xa0, 0x3c, 0x82, 0x7f, 0x7d, 0xc1, 0x00, + 0x51, 0xd7, 0x28, 0x83, 0xb4, 0xe1, 0x53, 0x70, + 0x62, 0x11, 0x6c, 0x31, 0x95, 0x96, 0xe0, 0xbc, + 0x76, 0x45, 0xf8, 0x77, 0x89, 0x83, 0x44, 0x86, + 0xef, 0x24, 0xe8, 0x8c, 0xe2, 0x01, 0x03, 0x0e, + 0x60, 0x62, 0xea, 0x7e, 0xbd, 0xcb, 0x48, 0x4d, + 0x2e, 0xd8, 0xc9, 0x1f, 0x3c, 0xfd, 0xc3, 0xa0, + 0xba, 0xff, 0x00, 0xf5, 0x59, 0xe5, 0xbb, 0x5c, + 0x71, 0x6c, 0xdb, 0xe8, 0x80, 0x91, 0x40, 0x81, + 0x0d, 0xcb, 0x0c, 0x53, 0xb4, 0xc6, 0x21, 0x80, + 0x1b, 0xe3, 0x22, 0x02, 0xe2, 0x36, 0x2c, 0xe9, + 0x85, 0x84, 0x50, 0x58, 0x86, 0x9c, 0x55, 0x31, + 0x79, 0x1c, 0x90, 0x03, 0x26, 0x74, 0x14, 0x0f, + 0x18, 0x18, 0x64, 0xb8, 0x15, 0x9a, 0xc0, 0x30, + 0xd4, 0xa3, 0x94, 0x27, 0x75, 0x11, 0x91, 0xac, + 0x3a, 0x19, 0xa1, 0xd9, 0xd5, 0x59, 0x4a, 0xdf, + 0xd4, 0xe6, 0x6c, 0x19, 0x00, 0xef, 0x40, 0xd9, + 0x43, 0x88, 0x73, 0x64, 0xc2, 0xd3, 0x1d, 0xc8, + 0x1c, 0x4b, 0x01, 0x71, 0xb1, 0x27, 0x96, 0x3d, + 0x43, 0x27, 0xe8, 0x42, 0xe8, 0x13, 0x28, 0x2a, + 0x40, 0x5d, 0x49, 0xb5, 0x5d, 0xa1, 0x88, 0xe0, + 0xd7, 0xe0, 0xfb, 0x38, 0x50, 0xad, 0x17, 0x3e, + 0x1c, 0xf1, 0xde, 0xbf, 0xde, 0x78, 0xef, 0x5f, + 0xef, 0x1f, 0xb3, 0xe1, 0xa1, 0xd4, 0x15, 0xb0, + 0x02, 0xcc, 0x46, 0x39, 0x65, 0x2e, 0xb8, 0x6d, + 0x78, 0xd9, 0x56, 0x42, 0xfb, 0x23, 0x3a, 0xa1, + 0x40, 0x10, 0x89, 0x61, 0x9f, 0x01, 0x5b, 0x05, + 0x3d, 0xce, 0xdc, 0xaf, 0x01, 0xd1, 0x84, 0x87, + 0x5d, 0x45, 0x23, 0x4c, 0xf3, 0xc0, 0x33, 0x8e, + 0xaf, 0xc4, 0x36, 0xef, 0xa6, 0x6f, 0xa4, 0x8f, + 0x30, 0xa5, 0xfd, 0xe9, 0x4a, 0x3e, 0xa4, 0x00, + 0x1a, 0x35, 0x78, 0x7d, 0x1d, 0x01, 0x07, 0x68, + 0x60, 0x33, 0x0f, 0x10, 0x8e, 0xa9, 0x3a, 0x62, + 0x77, 0xb9, 0xc0, 0x12, 0x1d, 0x2c, 0xe3, 0x30, + 0x01, 0x42, 0x68, 0x57, 0x79, 0x63, 0x4c, 0xa7, + 0x3c, 0x5f, 0x2b, 0x1b, 0x83, 0x67, 0xfd, 0x7f, + 0x77, 0xd7, 0x51, 0x56, 0x02, 0x9d, 0x46, 0x45, + 0xf3, 0x46, 0xf4, 0x62, 0x01, 0x03, 0xe4, 0xf8, + 0xae, 0xd9, 0x28, 0x86, 0x33, 0xc0, 0xb6, 0xfc, + 0x87, 0x32, 0x5b, 0xab, 0xc0, 0x61, 0x99, 0x2c, + 0x1a, 0x10, 0x97, 0xba, 0xba, 0x03, 0x9b, 0x7e, + 0x3b, 0xd7, 0xfb, 0xcf, 0x1d, 0xeb, 0xfd, 0xe7, + 0x8e, 0xf5, 0xfe, 0xf1, 0x1d, 0xe7, 0x73, 0xfe, + 0x6d, 0x7e, 0xfc, 0xfc, 0xfa, 0x6a, 0x2f, 0x40, + 0x3e, 0x97, 0xcd, 0xd7, 0xfa, 0xaf, 0xe8, 0xfa, + 0xb0, 0xe3, 0xad, 0x71, 0xab, 0x95, 0xad, 0x65, + 0x64, 0x59, 0x15, 0xfb, 0x8e, 0x29, 0x64, 0x61, + 0x29, 0xe2, 0x2a, 0x34, 0x76, 0xae, 0xff, 0x00, + 0xe5, 0x91, 0x88, 0xc9, 0xa1, 0x73, 0xe3, 0x11, + 0xfd, 0xe1, 0xd2, 0x28, 0xea, 0x17, 0x99, 0xd4, + 0xcc, 0xe6, 0x81, 0x54, 0x65, 0x39, 0x5c, 0x69, + 0xe2, 0xa2, 0x41, 0xa0, 0xbd, 0x99, 0x42, 0xae, + 0xf3, 0xed, 0x20, 0x5a, 0x01, 0xaa, 0x64, 0x24, + 0xfd, 0x91, 0x86, 0x84, 0x5e, 0xfa, 0x39, 0x5d, + 0x71, 0xe8, 0xc8, 0x0b, 0x8a, 0x0a, 0x05, 0x82, + 0xcb, 0x0e, 0x95, 0xc1, 0x36, 0xa2, 0x41, 0xb4, + 0x04, 0x93, 0x6b, 0xb0, 0x58, 0x0e, 0x13, 0x0f, + 0x05, 0x52, 0xc8, 0xc6, 0xd9, 0x41, 0x47, 0x9c, + 0x80, 0xd2, 0x10, 0x39, 0x31, 0x06, 0x43, 0x61, + 0x4e, 0xe7, 0xbd, 0x2b, 0x09, 0x5d, 0x56, 0x64, + 0x60, 0x02, 0x25, 0x8e, 0xa3, 0x24, 0x3e, 0x80, + 0xc3, 0x4b, 0x8e, 0xf3, 0x0d, 0x80, 0x36, 0x92, + 0xe7, 0x26, 0x63, 0xdc, 0x6e, 0x54, 0x52, 0xd2, + 0x32, 0x51, 0x00, 0x11, 0x7d, 0x45, 0x39, 0x28, + 0x7e, 0x94, 0x6c, 0xa1, 0x14, 0x24, 0xdf, 0xe2, + 0xb1, 0x58, 0xdc, 0x65, 0x06, 0x5f, 0x18, 0x62, + 0x5a, 0x8e, 0x4b, 0x60, 0x00, 0x6a, 0x2c, 0xec, + 0x07, 0x7d, 0xbe, 0x27, 0x90, 0x9d, 0xc8, 0x53, + 0xd5, 0x1e, 0x19, 0xb1, 0xa6, 0xeb, 0xb6, 0xe3, + 0xf6, 0xb8, 0xaf, 0x08, 0x00, 0x3e, 0xb0, 0x4e, + 0x59, 0x76, 0xca, 0x21, 0xf0, 0x02, 0xd9, 0x0a, + 0xbf, 0x30, 0xa0, 0x26, 0x17, 0x1b, 0x42, 0x58, + 0x8a, 0x0b, 0x64, 0x04, 0xaa, 0x9f, 0x4f, 0x28, + 0x5f, 0x99, 0x97, 0xfe, 0x27, 0xe2, 0xa1, 0x57, + 0x01, 0x5d, 0xca, 0x5a, 0x61, 0x92, 0x05, 0x0c, + 0xea, 0xd9, 0x14, 0x3d, 0xa2, 0xa8, 0x2d, 0x04, + 0xb2, 0x64, 0xa0, 0x7e, 0x4a, 0x9c, 0x58, 0x1e, + 0x14, 0x93, 0x8c, 0x38, 0x1e, 0xb9, 0xde, 0xd0, + 0xa7, 0x1c, 0xc5, 0x00, 0x00, 0x21, 0x06, 0xa4, + 0x53, 0x05, 0x30, 0x23, 0x4a, 0x30, 0xbb, 0x75, + 0x40, 0x97, 0x59, 0x00, 0x22, 0x48, 0x50, 0x29, + 0x28, 0x54, 0x03, 0xb3, 0x09, 0x70, 0x41, 0xaa, + 0xda, 0xe6, 0xde, 0x45, 0x72, 0xbc, 0x63, 0xd0, + 0x9a, 0x73, 0xc2, 0xd0, 0x68, 0x41, 0x05, 0x1d, + 0xce, 0x80, 0xfd, 0x27, 0xa2, 0xa5, 0xf0, 0xce, + 0x93, 0x03, 0x01, 0xba, 0xfc, 0x4e, 0x33, 0x28, + 0x1b, 0xa1, 0x1c, 0xc1, 0x59, 0x60, 0x53, 0x6a, + 0xdf, 0x11, 0x02, 0x79, 0x9b, 0xd4, 0x10, 0x4a, + 0x00, 0x85, 0x90, 0x29, 0x04, 0x01, 0xf0, 0x02, + 0xe8, 0xd7, 0x85, 0x20, 0x38, 0x0e, 0x44, 0x20, + 0xe1, 0xe6, 0xb4, 0x5e, 0x94, 0x48, 0xa7, 0x74, + 0x5f, 0x9f, 0x04, 0x8d, 0xa2, 0x4c, 0x7e, 0x88, + 0x21, 0x0e, 0x39, 0x57, 0xa1, 0x68, 0x39, 0xd2, + 0x94, 0x75, 0xa0, 0x82, 0x2a, 0x31, 0x72, 0x6d, + 0x09, 0x38, 0x77, 0x19, 0x74, 0xdf, 0xad, 0x61, + 0x91, 0xc4, 0xbe, 0x21, 0x47, 0xaa, 0x9d, 0xec, + 0xb2, 0x31, 0x16, 0x16, 0x8f, 0x89, 0x74, 0x57, + 0x4e, 0x15, 0x93, 0xae, 0xaf, 0x7e, 0xf3, 0x65, + 0xdb, 0x25, 0xd9, 0x3b, 0x5d, 0xa6, 0x68, 0x4d, + 0x4b, 0x53, 0x52, 0xf7, 0x4e, 0x6e, 0x6f, 0xbb, + 0x52, 0x2e, 0xe4, 0xed, 0x7a, 0x7c, 0x30, 0x3d, + 0x84, 0xf7, 0x32, 0xf1, 0xf4, 0x76, 0x74, 0x9e, + 0xe7, 0x4f, 0xed, 0x81, 0xf0, 0x75, 0xac, 0x2d, + 0xf7, 0xf1, 0xf8, 0xf3, 0x8b, 0xf2, 0xfb, 0xbb, + 0x6d, 0xf7, 0xf1, 0xf8, 0xf3, 0x9b, 0x17, 0x6b, + 0xa5, 0xd8, 0x9d, 0x97, 0x2d, 0x30, 0xe1, 0x5a, + 0xb0, 0x91, 0x15, 0x9a, 0x9a, 0x01, 0x82, 0x74, + 0x74, 0x08, 0x07, 0x54, 0xdc, 0xcc, 0xbe, 0xff, + 0x00, 0x76, 0x5e, 0xbb, 0xe6, 0xb0, 0xd4, 0x34, + 0x35, 0x0f, 0x73, 0xa5, 0xf1, 0x32, 0x0d, 0x2a, + 0xf2, 0xec, 0x7f, 0x7c, 0xcc, 0x40, 0x85, 0xa9, + 0xa9, 0x7b, 0xa7, 0x5e, 0x6f, 0xbb, 0x64, 0xbb, + 0xa7, 0x6b, 0xbc, 0xf0, 0xcf, 0xe4, 0x9f, 0x79, + 0xc9, 0x57, 0x66, 0xfc, 0x06, 0x87, 0x9c, 0x85, + 0xb3, 0xf0, 0x0c, 0xc4, 0x86, 0x2a, 0xc4, 0xde, + 0x40, 0xe8, 0xa9, 0x47, 0xca, 0xbd, 0x7a, 0xf5, + 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, + 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0x72, + 0x1a, 0xa4, 0x26, 0xca, 0x80, 0x44, 0xcb, 0xb0, + 0x37, 0xff, 0x00, 0xce, 0xdd, 0xc7, 0x44, 0x80, + 0x94, 0x0a, 0x52, 0x8d, 0x29, 0x43, 0xe5, 0x6c, + 0xd9, 0xb3, 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, + 0xb3, 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb3, + 0x66, 0x23, 0xd0, 0x0a, 0x90, 0x14, 0x22, 0x86, + 0x04, 0x52, 0x22, 0xfe, 0xac, 0x95, 0x9e, 0x27, + 0xf0, 0x47, 0x6a, 0x8e, 0x45, 0x0c, 0x60, 0x20, + 0x22, 0x52, 0x57, 0x2b, 0x28, 0x54, 0xaa, 0xe5, + 0xf6, 0x7d, 0xf2, 0xfb, 0x3e, 0xf9, 0x7d, 0x9f, + 0x7c, 0xbe, 0xcf, 0xbe, 0x5f, 0x67, 0xdf, 0x2f, + 0xb3, 0xef, 0x8d, 0x99, 0xcf, 0x2b, 0x23, 0x8c, + 0x72, 0x0f, 0x7a, 0x18, 0xda, 0xe0, 0x0b, 0xc3, + 0x45, 0x34, 0x4b, 0x90, 0x3c, 0x5f, 0x67, 0xdf, + 0x16, 0xbc, 0x36, 0x3a, 0x00, 0xea, 0x6d, 0x74, + 0xba, 0x97, 0xd9, 0xf7, 0xcb, 0xec, 0xfb, 0xe5, + 0xf6, 0x7d, 0xf2, 0xfb, 0x3e, 0xf9, 0x7d, 0x9f, + 0x7c, 0xbe, 0xcf, 0xbe, 0x5f, 0x67, 0xdf, 0x2f, + 0xb3, 0xef, 0x97, 0xd9, 0xf7, 0xcb, 0xec, 0xfb, + 0xe1, 0x57, 0xb3, 0xe2, 0x40, 0xea, 0x1e, 0xb3, + 0x15, 0x99, 0xe3, 0xf5, 0x64, 0x2d, 0x58, 0xf2, + 0xf1, 0xe7, 0xbf, 0x67, 0xf1, 0x73, 0xc0, 0xfa, + 0x63, 0xc0, 0xfa, 0x63, 0xc0, 0xfa, 0x63, 0xc0, + 0xfa, 0x63, 0xc0, 0xfa, 0x63, 0xc0, 0xfa, 0x63, + 0xc0, 0xfa, 0x61, 0xea, 0x41, 0xfc, 0x27, 0x0e, + 0xf3, 0x3a, 0x7b, 0xe7, 0x48, 0x7c, 0x31, 0x88, + 0x34, 0xe7, 0x93, 0x14, 0x48, 0x44, 0xcb, 0xa0, + 0x84, 0x65, 0x2a, 0xb4, 0x9c, 0x4d, 0x3c, 0xb2, + 0xde, 0x73, 0xc4, 0x4e, 0x01, 0x83, 0x81, 0x5e, + 0x1e, 0x54, 0xd3, 0x35, 0x45, 0x70, 0xf4, 0xc0, + 0x6d, 0x10, 0x17, 0x22, 0xf9, 0x81, 0x1f, 0x12, + 0x1b, 0x7c, 0x2f, 0x7e, 0x81, 0x64, 0xc6, 0x86, + 0x01, 0xc7, 0x81, 0xf4, 0xc7, 0x81, 0xf4, 0xc7, + 0x81, 0xf4, 0xc7, 0x81, 0xf4, 0xc7, 0x81, 0xf4, + 0xc7, 0x81, 0xf4, 0xc7, 0x81, 0xf4, 0xc3, 0x74, + 0x83, 0x3a, 0xe1, 0xff, 0x00, 0x85, 0x9c, 0x9f, + 0x37, 0xf9, 0xfd, 0x58, 0xf5, 0x3b, 0x60, 0x24, + 0xa2, 0x83, 0x4e, 0x3b, 0x08, 0xd7, 0xf9, 0x9f, + 0x8c, 0x88, 0x88, 0x88, 0xb3, 0xd5, 0x53, 0xc5, + 0xae, 0xbc, 0x1f, 0x38, 0x3c, 0xe7, 0x6e, 0x5c, + 0xa2, 0x10, 0x22, 0x36, 0x6f, 0x80, 0xd8, 0x99, + 0xf9, 0x12, 0x6f, 0x4e, 0x88, 0x18, 0x0f, 0x2d, + 0x16, 0xcc, 0x05, 0xbb, 0x04, 0x4f, 0x0d, 0xa5, + 0x4b, 0xce, 0xc2, 0x85, 0x0a, 0x97, 0x22, 0x8c, + 0x84, 0xc5, 0xf9, 0x38, 0xb6, 0xe6, 0x9b, 0x14, + 0xe4, 0x84, 0xaa, 0xd0, 0x80, 0xb4, 0x00, 0x17, + 0xe4, 0x49, 0x26, 0x44, 0x44, 0x44, 0x47, 0xbc, + 0x9a, 0x42, 0x02, 0xd8, 0xf2, 0x04, 0xe4, 0x74, + 0x73, 0xfa, 0xb2, 0x00, 0x01, 0x00, 0x40, 0x8a, + 0x04, 0x44, 0x62, 0x22, 0x26, 0x92, 0x60, 0x69, + 0x6c, 0x80, 0x6a, 0x87, 0x4b, 0xb0, 0x1f, 0x00, + 0x6b, 0xe5, 0x55, 0x2a, 0x54, 0xa9, 0x52, 0xa5, + 0x4a, 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, 0x4a, + 0x95, 0x2a, 0x54, 0xa9, 0xc2, 0x9a, 0x4f, 0x9b, + 0x37, 0x8c, 0x2e, 0xd0, 0x96, 0x7f, 0xe0, 0xee, + 0x86, 0xf0, 0x6c, 0x9a, 0xce, 0x5b, 0x20, 0x6d, + 0xa5, 0xf1, 0x84, 0x9b, 0x52, 0x03, 0xd6, 0x82, + 0xe8, 0x1f, 0x28, 0x14, 0x28, 0x50, 0xa1, 0x42, + 0x85, 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, + 0x0a, 0x14, 0x28, 0x5e, 0xe7, 0xf8, 0xbc, 0x59, + 0x06, 0x48, 0xe5, 0x23, 0xfe, 0x0e, 0xe5, 0x09, + 0xad, 0x79, 0xf9, 0x4b, 0x46, 0xff, 0x00, 0x43, + 0xf2, 0xb4, 0x99, 0xd8, 0x50, 0xa1, 0x42, 0x85, + 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, 0x0a, + 0x14, 0x28, 0x50, 0xa1, 0x42, 0x98, 0x44, 0x20, + 0x3f, 0x94, 0xf1, 0xc0, 0x41, 0xcd, 0xe4, 0x3e, + 0x19, 0x54, 0x89, 0x74, 0x8b, 0x1f, 0xc6, 0x4e, + 0xd1, 0xa2, 0xf4, 0x94, 0x54, 0x13, 0xd0, 0x5c, + 0x75, 0xcc, 0xf1, 0x32, 0x22, 0x89, 0x51, 0x21, + 0x2d, 0x1c, 0x9f, 0x2a, 0xa1, 0x42, 0x85, 0x0a, + 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, + 0x28, 0x50, 0xa1, 0x42, 0x85, 0x17, 0xe4, 0x5c, + 0xd4, 0x81, 0x08, 0xe6, 0x7c, 0x23, 0xa0, 0x7c, + 0x9b, 0xda, 0x7a, 0xb8, 0x04, 0x8e, 0x8e, 0x58, + 0x65, 0xf6, 0x7a, 0x3e, 0x98, 0x28, 0xab, 0x03, + 0x55, 0xa0, 0x26, 0xd4, 0x03, 0xc5, 0xc3, 0x06, + 0xad, 0xa1, 0x76, 0x07, 0x21, 0xc2, 0x6c, 0x0b, + 0xc8, 0x92, 0xc1, 0x91, 0x1b, 0xc5, 0x62, 0xe3, + 0x30, 0x38, 0x5a, 0x3d, 0xfa, 0x0b, 0x39, 0x9e, + 0x40, 0x77, 0x98, 0xe4, 0x5a, 0x13, 0xce, 0x49, + 0x46, 0x4f, 0x40, 0x77, 0xe7, 0xf3, 0xc3, 0x74, + 0x14, 0x24, 0x32, 0xd7, 0x64, 0xd2, 0x95, 0x32, + 0x48, 0x10, 0xac, 0xcc, 0x09, 0xc7, 0xd3, 0x10, + 0x2b, 0xc2, 0x58, 0x81, 0x6c, 0x6c, 0xb4, 0xbd, + 0x26, 0x58, 0x6c, 0x1a, 0xd7, 0xb0, 0x41, 0x67, + 0x1e, 0x3a, 0x94, 0x46, 0x03, 0xb7, 0x99, 0x6f, + 0x65, 0x2d, 0x2d, 0x46, 0xd6, 0x6c, 0xe3, 0x14, + 0x43, 0x61, 0x31, 0x6d, 0x17, 0xb6, 0x62, 0x92, + 0x30, 0x24, 0x27, 0xfd, 0xa1, 0xa6, 0x51, 0xb5, + 0x99, 0x63, 0x6c, 0xc9, 0x4d, 0x6e, 0x7d, 0xc0, + 0xbc, 0x12, 0x4a, 0x3d, 0xcf, 0x68, 0x63, 0xa8, + 0x5b, 0xc5, 0x78, 0x45, 0x48, 0xee, 0x2a, 0x94, + 0x96, 0x5b, 0xd0, 0x32, 0x6a, 0xa5, 0x80, 0xa8, + 0x88, 0x12, 0x10, 0x2d, 0x1a, 0x59, 0x37, 0x51, + 0xc2, 0x0a, 0x16, 0x06, 0x31, 0x98, 0x0a, 0xd0, + 0xce, 0x5b, 0x86, 0xbd, 0x0c, 0x8a, 0x85, 0xf6, + 0x7a, 0x3e, 0x98, 0x6b, 0xa1, 0x88, 0x6c, 0x3a, + 0xe2, 0x52, 0x83, 0x1a, 0x50, 0x65, 0x04, 0xe4, + 0x79, 0x9f, 0xce, 0x23, 0xcb, 0x90, 0xa8, 0xec, + 0x57, 0x6e, 0xa7, 0x3d, 0x32, 0x7b, 0x1e, 0xd9, + 0x3d, 0x8f, 0x6c, 0x9e, 0xc7, 0xb6, 0x4f, 0x63, + 0xdb, 0x27, 0xb1, 0xed, 0x93, 0xd8, 0xf6, 0xc9, + 0xec, 0x7b, 0x64, 0x42, 0x5d, 0x65, 0xfb, 0x33, + 0x50, 0x5f, 0x45, 0x35, 0x1c, 0x77, 0xa8, 0xac, + 0x79, 0x40, 0x28, 0x4c, 0x22, 0x2f, 0x45, 0x00, + 0x20, 0xc6, 0xa0, 0x61, 0x34, 0x1b, 0xa9, 0xde, + 0x97, 0x94, 0xd3, 0xa5, 0x44, 0x0c, 0x64, 0xd3, + 0x7c, 0x47, 0x50, 0x35, 0x13, 0x4c, 0x88, 0xc1, + 0x18, 0xe9, 0x3a, 0xb4, 0x0d, 0x40, 0xaf, 0x84, + 0xc4, 0x63, 0xc1, 0x91, 0x87, 0x6f, 0xe7, 0x94, + 0xb1, 0x4f, 0x63, 0xdb, 0x27, 0xb1, 0xed, 0x93, + 0xd8, 0xf6, 0xc9, 0xec, 0x7b, 0x64, 0xf6, 0x3d, + 0xb2, 0x7b, 0x1e, 0xd9, 0x3d, 0x8f, 0x6c, 0x01, + 0xae, 0x77, 0xe1, 0xc8, 0xe3, 0x64, 0xbd, 0x9d, + 0xf0, 0x7e, 0x36, 0x29, 0x35, 0xf0, 0xfe, 0xc6, + 0x82, 0x8e, 0xc3, 0xd3, 0x3c, 0x98, 0x3c, 0x98, + 0x08, 0xe4, 0x72, 0x77, 0x17, 0xb2, 0x35, 0x1e, + 0xc1, 0xd5, 0x6f, 0xa1, 0x10, 0x76, 0x04, 0x6b, + 0xcc, 0xe0, 0xe7, 0xc3, 0x85, 0x63, 0x5e, 0xc6, + 0x28, 0xc0, 0xc7, 0x03, 0xf5, 0xec, 0x90, 0x2c, + 0x0e, 0x13, 0x61, 0x67, 0xaf, 0xe5, 0x72, 0x2b, + 0xaf, 0xce, 0x6c, 0x94, 0x96, 0x5d, 0x60, 0x51, + 0x16, 0x71, 0xbc, 0x06, 0xcc, 0xb0, 0x9f, 0x2d, + 0xdd, 0x55, 0x61, 0x05, 0x40, 0x98, 0x6a, 0xba, + 0x54, 0x01, 0x10, 0x86, 0x6c, 0x09, 0x0f, 0x83, + 0x4d, 0x79, 0xb6, 0x7a, 0xd5, 0xb3, 0x6b, 0x2d, + 0x65, 0x37, 0x26, 0x88, 0x0e, 0xbf, 0x30, 0x2c, + 0x08, 0xd4, 0x20, 0x9a, 0xd4, 0x23, 0x65, 0xfd, + 0x8f, 0xd7, 0x43, 0x12, 0x06, 0xa5, 0x83, 0xe0, + 0x76, 0x45, 0xef, 0x95, 0xf7, 0xd9, 0xde, 0xa2, + 0x5d, 0xc7, 0x68, 0xfe, 0x76, 0x47, 0x90, 0xf5, + 0x1f, 0x14, 0x63, 0x48, 0x5f, 0x00, 0x45, 0x20, + 0x0d, 0xaf, 0xa8, 0xc7, 0x87, 0x01, 0xb9, 0xd9, + 0x29, 0x2b, 0xe6, 0x72, 0x0d, 0x28, 0x97, 0x58, + 0x65, 0xac, 0xc2, 0x77, 0xef, 0xc6, 0x4f, 0x5a, + 0x0a, 0xa2, 0xd1, 0x8c, 0x83, 0x63, 0xc8, 0xa2, + 0x2f, 0x93, 0x00, 0xf1, 0x6d, 0xb5, 0x8d, 0x81, + 0x42, 0xf7, 0x6c, 0x11, 0x4f, 0x81, 0xa3, 0x2c, + 0x0a, 0x27, 0x35, 0xc4, 0x33, 0x38, 0x9d, 0x72, + 0xbb, 0xbd, 0x1c, 0x47, 0x60, 0x1b, 0xa0, 0x06, + 0xc4, 0xe0, 0xa8, 0x8f, 0x44, 0xb8, 0x20, 0x63, + 0x28, 0x72, 0x56, 0x16, 0xb3, 0x5c, 0x5e, 0x14, + 0xb2, 0x05, 0x61, 0x62, 0xe8, 0x40, 0x28, 0x39, + 0xc1, 0x84, 0xcd, 0x68, 0x6e, 0xdd, 0x4b, 0xe5, + 0x38, 0x0c, 0xf2, 0xc9, 0xd8, 0x8b, 0x51, 0x69, + 0xc1, 0x1e, 0x06, 0x01, 0xcb, 0xe0, 0xea, 0x84, + 0x32, 0x4c, 0x07, 0x04, 0x6d, 0x2b, 0x38, 0x96, + 0x48, 0x96, 0xc3, 0xbd, 0x2c, 0x22, 0x60, 0x73, + 0x78, 0x54, 0x3d, 0x02, 0x0c, 0x6a, 0xa9, 0x88, + 0x54, 0xc8, 0x89, 0x0c, 0x14, 0x05, 0x25, 0x94, + 0x03, 0x7e, 0x80, 0x1c, 0x40, 0x46, 0xd4, 0x6f, + 0x76, 0xee, 0xb8, 0x70, 0xd5, 0x72, 0x0e, 0x1a, + 0xa0, 0x8d, 0x00, 0x7b, 0xb9, 0x28, 0x34, 0xf0, + 0x12, 0xe5, 0x23, 0x8a, 0x86, 0x88, 0x2a, 0x7c, + 0xb9, 0x91, 0x67, 0xea, 0xd2, 0x85, 0x4b, 0x56, + 0x22, 0x8d, 0x6c, 0x97, 0x20, 0x30, 0xe0, 0xc8, + 0x4b, 0x0a, 0x38, 0xaa, 0xb4, 0x73, 0x87, 0x2d, + 0x9d, 0x6e, 0x49, 0x82, 0x60, 0xad, 0xe7, 0x00, + 0x96, 0x30, 0xeb, 0x33, 0x08, 0xe3, 0x6d, 0x94, + 0xbd, 0x11, 0xf0, 0x56, 0x65, 0x54, 0x1f, 0x15, + 0xfc, 0x21, 0x83, 0x4c, 0x5f, 0x95, 0xdd, 0xe8, + 0xe2, 0x8f, 0x85, 0x02, 0x60, 0x75, 0x34, 0x37, + 0x0a, 0x14, 0x0f, 0x39, 0xc8, 0xf3, 0x3f, 0x9c, + 0x42, 0xb0, 0xad, 0x1a, 0x3b, 0x6d, 0x8c, 0xef, + 0x97, 0xdb, 0xea, 0xe5, 0xf6, 0xfa, 0xb9, 0x7d, + 0xbe, 0xae, 0x5f, 0x6f, 0xab, 0x97, 0xdb, 0xea, + 0xe5, 0xf6, 0xfa, 0xb8, 0xa0, 0x5d, 0xa7, 0x41, + 0x55, 0xf2, 0x30, 0xfc, 0xd8, 0xe7, 0xa2, 0x66, + 0xc4, 0x0c, 0x38, 0xe1, 0x52, 0xd8, 0xd1, 0xc3, + 0xaf, 0x28, 0x86, 0x57, 0x40, 0x3f, 0xa3, 0xb6, + 0x2b, 0x6c, 0x58, 0x45, 0x48, 0x72, 0x20, 0x3a, + 0xcf, 0x6a, 0x3a, 0xc0, 0xfe, 0x8a, 0x61, 0x5a, + 0xb9, 0x88, 0x18, 0xd5, 0x48, 0x2b, 0xfc, 0xa5, + 0xdc, 0xfc, 0x91, 0x86, 0xb2, 0x78, 0x95, 0x38, + 0x32, 0x6b, 0x51, 0x6f, 0x49, 0x64, 0x12, 0x84, + 0xd2, 0x4a, 0xe5, 0xf6, 0xfa, 0xb9, 0x7d, 0xbe, + 0xae, 0x5f, 0x6f, 0xab, 0x97, 0xdb, 0xea, 0xe5, + 0xf6, 0xfa, 0xb9, 0x7d, 0xbe, 0xae, 0x5f, 0x6f, + 0xab, 0x97, 0x00, 0x1e, 0x4a, 0xd0, 0x80, 0xbc, + 0x0b, 0xb4, 0x19, 0x41, 0x4b, 0x19, 0xf8, 0xb7, + 0x23, 0xa3, 0xec, 0xe4, 0x3a, 0x7c, 0x1e, 0x6f, + 0xc5, 0x11, 0x2c, 0x9d, 0xf0, 0x1f, 0xc4, 0x30, + 0x22, 0x2c, 0xad, 0x5a, 0x12, 0x4e, 0x61, 0x12, + 0xef, 0x39, 0xd1, 0x27, 0xf8, 0xab, 0xdd, 0x09, + 0x32, 0x30, 0x91, 0xd3, 0xf1, 0x6c, 0x65, 0x0e, + 0xa7, 0x44, 0x02, 0x86, 0x4f, 0xb8, 0x6f, 0xfe, + 0xf0, 0x21, 0x1c, 0xee, 0x10, 0x3c, 0xe0, 0x84, + 0xae, 0x21, 0x00, 0xa7, 0xb6, 0x06, 0xfd, 0xa6, + 0x6d, 0x11, 0xa9, 0x30, 0x76, 0x80, 0x1a, 0x70, + 0x0c, 0x17, 0x41, 0x2c, 0x73, 0x8a, 0xc8, 0x77, + 0x77, 0x7a, 0x36, 0x74, 0x8c, 0x72, 0x2e, 0x23, + 0x82, 0x7a, 0x8f, 0x8d, 0x77, 0xc4, 0xc3, 0xa8, + 0xc8, 0x34, 0xce, 0xa0, 0xe5, 0xbc, 0x42, 0x60, + 0x26, 0x41, 0x52, 0x71, 0x2d, 0x34, 0xe1, 0xf6, + 0x6c, 0x79, 0xbe, 0x9a, 0xc0, 0x71, 0x94, 0xe4, + 0xa9, 0x7d, 0x88, 0x34, 0x2f, 0xdf, 0x1b, 0x00, + 0xb8, 0x14, 0x34, 0x7f, 0x9d, 0xe4, 0x71, 0xb0, + 0x6f, 0x10, 0xfd, 0xc9, 0x49, 0x26, 0x02, 0xaa, + 0xf7, 0x60, 0x10, 0x18, 0x46, 0xc6, 0x72, 0x9e, + 0x89, 0x58, 0xae, 0x24, 0x03, 0xbe, 0x43, 0x41, + 0xbc, 0x2d, 0xe8, 0xbf, 0xe1, 0x43, 0x2f, 0x28, + 0x13, 0x88, 0xfb, 0x50, 0x92, 0xbe, 0xcf, 0xdf, + 0xc3, 0xe0, 0x56, 0x06, 0x35, 0x3a, 0xd1, 0x0b, + 0x5c, 0x80, 0x53, 0x22, 0x03, 0x96, 0xe4, 0x0c, + 0x45, 0x2a, 0x50, 0x63, 0x62, 0x22, 0xfe, 0x58, + 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x28, 0x50, 0xa1, + 0x42, 0xb6, 0x2e, 0xc2, 0xc4, 0xe2, 0x57, 0x45, + 0x65, 0x42, 0x3f, 0xb3, 0x1b, 0x33, 0x9b, 0x64, + 0xe1, 0xd5, 0x2a, 0xaf, 0xe3, 0x14, 0x28, 0x50, + 0xa1, 0x42, 0x85, 0x1f, 0xd8, 0xa0, 0xd8, 0x33, + 0xae, 0x84, 0xba, 0x68, 0x67, 0x48, 0xa5, 0xab, + 0x26, 0x74, 0xfa, 0x94, 0x47, 0xe6, 0xe2, 0x04, + 0x08, 0x10, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, + 0x10, 0x80, 0x8b, 0x7e, 0x17, 0xd1, 0xdb, 0x3f, + 0x4f, 0x0d, 0x0e, 0x6d, 0xe7, 0x4c, 0x51, 0xdd, + 0x43, 0x20, 0x3f, 0x18, 0x40, 0x81, 0x02, 0x04, + 0x08, 0x6d, 0xe4, 0x11, 0x4f, 0x55, 0x8d, 0x74, + 0x12, 0xbd, 0x4e, 0x71, 0x80, 0x25, 0xc1, 0x90, + 0x5d, 0x77, 0x51, 0xcd, 0xf8, 0xf4, 0x4b, 0xc0, + 0x50, 0xa8, 0x0a, 0x48, 0x50, 0xd9, 0xe5, 0x6e, + 0xf4, 0x07, 0x84, 0x11, 0x8c, 0x5a, 0x10, 0x6a, + 0x9f, 0x0e, 0x3d, 0x19, 0x38, 0xae, 0x7a, 0xbc, + 0x50, 0x8a, 0x92, 0x46, 0x12, 0x49, 0x35, 0x93, + 0x53, 0x89, 0xac, 0x0e, 0x04, 0xb9, 0x17, 0x6e, + 0xf1, 0xaf, 0x3b, 0xe3, 0x9c, 0xde, 0x3b, 0x44, + 0x1d, 0xe0, 0xf2, 0x0f, 0x13, 0xcb, 0x20, 0xd0, + 0x1b, 0xb6, 0xdf, 0x33, 0xaf, 0x6e, 0xf9, 0xde, + 0x46, 0xd2, 0x6c, 0xae, 0x3d, 0xcb, 0xae, 0x28, + 0x8a, 0xad, 0x45, 0xb9, 0x74, 0xc7, 0x72, 0x9a, + 0x67, 0x39, 0xb3, 0xa1, 0x4b, 0xbe, 0x76, 0xbb, + 0xcf, 0x0c, 0x50, 0x45, 0x04, 0x88, 0xa0, 0x8f, + 0x22, 0x73, 0x1c, 0xd0, 0x68, 0x1a, 0x68, 0x8f, + 0x70, 0xd4, 0x7c, 0x72, 0xab, 0x98, 0xa0, 0x1d, + 0x6a, 0xac, 0xec, 0x83, 0x14, 0x21, 0x37, 0x0a, + 0xc8, 0x1a, 0xac, 0xd2, 0x91, 0xb3, 0x1a, 0x9d, + 0x25, 0xa3, 0x5b, 0xdc, 0x9a, 0xdd, 0x1b, 0xe7, + 0x58, 0xb8, 0x56, 0x76, 0x4b, 0xa3, 0xcd, 0x16, + 0xcd, 0xf6, 0xc8, 0x2a, 0x0a, 0xca, 0xef, 0x67, + 0x15, 0xdd, 0x9d, 0x2e, 0x02, 0xd0, 0x5d, 0xb4, + 0x16, 0xa4, 0x5d, 0x75, 0x9a, 0x7b, 0x9a, 0xc5, + 0x01, 0x20, 0xe1, 0x28, 0x73, 0xc1, 0xa9, 0xcb, + 0xc7, 0x77, 0x27, 0xc7, 0xc2, 0x3c, 0x74, 0xdf, + 0x09, 0x9a, 0x2c, 0xb8, 0xff, 0x00, 0xa5, 0x25, + 0x08, 0xd6, 0x19, 0x5a, 0xbc, 0xea, 0x6a, 0x4e, + 0x46, 0xb0, 0xe5, 0x0c, 0x7c, 0xca, 0x4c, 0xc2, + 0x97, 0x52, 0x9a, 0x68, 0x44, 0x51, 0x17, 0xe4, + 0xf1, 0xe3, 0xc7, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, + 0xe3, 0xc7, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, + 0xc6, 0x00, 0x1a, 0x80, 0x43, 0x2b, 0x28, 0x01, + 0xdd, 0x00, 0x6d, 0x40, 0x5c, 0x07, 0xb8, 0x33, + 0x84, 0xd7, 0xa8, 0x42, 0xa9, 0x36, 0x1f, 0xd5, + 0xe2, 0x71, 0x26, 0x22, 0xa7, 0x7b, 0x4b, 0x35, + 0x46, 0x62, 0xfb, 0xbd, 0xb1, 0x5e, 0x3e, 0x8d, + 0x7f, 0x19, 0x5e, 0x3e, 0x8f, 0xae, 0x6e, 0x1c, + 0x01, 0x32, 0x15, 0xb0, 0x8a, 0x1a, 0x1d, 0x63, + 0x5a, 0xc3, 0xab, 0x3e, 0x9c, 0x31, 0x19, 0x2b, + 0x28, 0x38, 0x36, 0x91, 0x16, 0x87, 0x82, 0xc5, + 0x04, 0x09, 0x4c, 0x41, 0xda, 0xf0, 0xe8, 0x1e, + 0xaa, 0xc9, 0x9a, 0x07, 0xc4, 0x8c, 0x90, 0x2a, + 0x95, 0x21, 0x5a, 0x11, 0x52, 0x62, 0xb0, 0xb7, + 0x89, 0x9e, 0xd5, 0xd5, 0x2b, 0x44, 0x42, 0x5b, + 0xf1, 0x09, 0x4e, 0xea, 0x28, 0x18, 0x67, 0xaf, + 0x71, 0x9d, 0x19, 0xa4, 0x51, 0xd0, 0x9a, 0xc4, + 0xe4, 0x4c, 0x7a, 0xa3, 0xc1, 0x18, 0xcf, 0xd8, + 0x69, 0x08, 0xd1, 0xd4, 0xd8, 0x89, 0x09, 0x10, + 0x0e, 0xa2, 0xf0, 0x4b, 0xab, 0x34, 0x15, 0x01, + 0x5b, 0x0f, 0x3a, 0x0c, 0x11, 0x69, 0x4e, 0x54, + 0x55, 0x0c, 0x45, 0x67, 0xb6, 0x82, 0x6a, 0xc7, + 0x36, 0x6c, 0xb2, 0x59, 0x10, 0x24, 0x1c, 0x35, + 0xbe, 0x99, 0x07, 0x71, 0x03, 0xc5, 0x21, 0x8c, + 0xec, 0xcb, 0x84, 0x1d, 0xa4, 0x64, 0xe0, 0xf5, + 0x0d, 0x78, 0xfa, 0x3e, 0xb9, 0x5e, 0x3e, 0x8f, + 0xae, 0x57, 0x77, 0xb6, 0x14, 0x3b, 0xa1, 0xba, + 0xc0, 0x26, 0x70, 0x24, 0xb7, 0xea, 0xef, 0x83, + 0x8b, 0xb5, 0x37, 0xe9, 0x9c, 0xf8, 0x2f, 0xa6, + 0x05, 0x39, 0x53, 0x9e, 0x0f, 0xe4, 0xca, 0xee, + 0xf6, 0xc5, 0x21, 0x59, 0xf5, 0x55, 0x38, 0x03, + 0x75, 0x66, 0xba, 0xf1, 0x88, 0xec, 0x5a, 0xa2, + 0x29, 0x89, 0x0d, 0x64, 0xd1, 0x38, 0x1a, 0x79, + 0x35, 0x56, 0x28, 0x1d, 0x37, 0x6e, 0xac, 0x9b, + 0x65, 0xa3, 0x3a, 0xed, 0x97, 0x12, 0xe6, 0x7d, + 0x72, 0xa0, 0x6d, 0x36, 0x0b, 0x91, 0x1c, 0xb0, + 0x38, 0x1e, 0xdc, 0x74, 0x6e, 0x14, 0x88, 0xec, + 0xc7, 0x1c, 0x19, 0x2f, 0x87, 0xf2, 0xa8, 0x25, + 0x53, 0x62, 0xac, 0xe2, 0x80, 0x2f, 0xb6, 0x45, + 0x7e, 0xd9, 0x61, 0x32, 0xe4, 0xbc, 0x00, 0x56, + 0x79, 0x67, 0x13, 0x07, 0x65, 0xc1, 0xf2, 0x58, + 0x5e, 0x13, 0xde, 0xf9, 0xb7, 0x1d, 0xa7, 0x4c, + 0xf4, 0xc2, 0x22, 0xc4, 0x33, 0x8b, 0xc5, 0x01, + 0x16, 0xcb, 0xc3, 0x56, 0x16, 0x74, 0xcd, 0x25, + 0x44, 0xfc, 0xd3, 0xf4, 0x42, 0xd2, 0x49, 0x05, + 0x26, 0x04, 0x31, 0x20, 0x88, 0x72, 0x99, 0x8e, + 0xb4, 0xb1, 0x2f, 0xfc, 0x7c, 0xce, 0x01, 0x0e, + 0x20, 0x28, 0x91, 0x5d, 0xde, 0xd9, 0x5d, 0xde, + 0xd9, 0xe2, 0xbd, 0x30, 0xd0, 0x10, 0x7b, 0xc9, + 0xfb, 0x31, 0xd5, 0x3a, 0xfe, 0xae, 0x0e, 0xc0, + 0x5e, 0x41, 0x55, 0xe8, 0xe8, 0x15, 0x02, 0xc2, + 0xe4, 0x02, 0x28, 0x82, 0x0c, 0x50, 0x94, 0x47, + 0x48, 0xec, 0x79, 0xc9, 0xf0, 0x9f, 0xdc, 0xfa, + 0x7c, 0x19, 0x3d, 0x14, 0x30, 0x4e, 0xe3, 0xd2, + 0x88, 0x8a, 0x6b, 0x19, 0x18, 0x39, 0x28, 0x4b, + 0xec, 0x90, 0xd8, 0xa6, 0xb0, 0x37, 0xce, 0x80, + 0xac, 0x91, 0x61, 0x9c, 0x08, 0x60, 0xae, 0x72, + 0x89, 0x20, 0x85, 0xe8, 0x15, 0x67, 0x4a, 0xa2, + 0x88, 0x62, 0x4f, 0xb8, 0x14, 0xfe, 0x47, 0x9b, + 0x71, 0xa2, 0x8c, 0xc4, 0x77, 0xef, 0x91, 0x1c, + 0x38, 0x69, 0xfa, 0x44, 0x14, 0x78, 0x1d, 0xd4, + 0x5a, 0xe7, 0x16, 0xe1, 0xd4, 0x1a, 0x1a, 0xce, + 0xa6, 0x54, 0xd2, 0xb9, 0x50, 0xe5, 0x90, 0x14, + 0x5f, 0x09, 0x3e, 0x86, 0xa8, 0xcd, 0x12, 0x41, + 0xe0, 0x31, 0x38, 0xfb, 0x02, 0xd4, 0x94, 0xa0, + 0xa7, 0xc3, 0x20, 0x77, 0xd0, 0xf6, 0x90, 0x07, + 0x45, 0x4e, 0x4f, 0xf4, 0x19, 0xb9, 0xe2, 0xcb, + 0xe9, 0x50, 0x47, 0x42, 0xc4, 0x78, 0x28, 0x37, + 0x35, 0xbc, 0x84, 0x2c, 0xa7, 0x5a, 0x01, 0x0e, + 0x0a, 0x50, 0xe2, 0x60, 0x12, 0x58, 0x71, 0xe9, + 0x35, 0x9e, 0x5f, 0x08, 0xac, 0xf1, 0x7d, 0x0f, + 0xa6, 0x78, 0xbe, 0x87, 0xd3, 0x3f, 0xc5, 0xfa, + 0x31, 0x38, 0x44, 0x1b, 0xdc, 0x82, 0xfb, 0x1b, + 0x1f, 0xac, 0x0b, 0xb4, 0x40, 0x17, 0x10, 0xd0, + 0x2a, 0x40, 0x68, 0xde, 0xbe, 0x51, 0x6a, 0xd5, + 0xab, 0x56, 0xad, 0x5a, 0xb5, 0x6a, 0xd5, 0xab, + 0x56, 0xad, 0x5a, 0xb5, 0x6a, 0xd5, 0xa0, 0x22, + 0x0a, 0x34, 0x42, 0x44, 0xe1, 0x1e, 0x29, 0x80, + 0x84, 0xb8, 0x00, 0x3c, 0x80, 0x03, 0xf6, 0xff, + 0x00, 0xae, 0x9f, 0xff, 0xc4, 0x00, 0x2d, 0x11, + 0x01, 0x01, 0x00, 0x02, 0x01, 0x02, 0x05, 0x03, + 0x04, 0x03, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x11, 0x00, 0x21, 0x31, 0x51, 0x71, 0x41, + 0x61, 0xa1, 0xd1, 0xf0, 0x40, 0x81, 0x91, 0x10, + 0x30, 0xb1, 0xf1, 0x20, 0x50, 0xc1, 0x60, 0x80, + 0x90, 0x70, 0xff, 0xda, 0x00, 0x08, 0x01, 0x02, + 0x01, 0x01, 0x3f, 0x10, 0xff, 0x00, 0xd8, 0x59, + 0x20, 0xeb, 0xd3, 0xa0, 0xa0, 0x00, 0x5c, 0x14, + 0xa2, 0xc8, 0x17, 0x5c, 0x13, 0x4b, 0xae, 0x33, + 0x86, 0x8d, 0xfd, 0x13, 0x2c, 0xb2, 0xcb, 0x2c, + 0xb2, 0xcb, 0x2c, 0xb2, 0xcb, 0x2c, 0xb2, 0xcb, + 0x3e, 0x4d, 0xf1, 0xd3, 0x23, 0xd4, 0xca, 0xa6, + 0x13, 0x49, 0x41, 0x45, 0x62, 0x3f, 0xee, 0x00, + 0xa2, 0x78, 0x60, 0x88, 0x89, 0x75, 0x56, 0xf0, + 0xc2, 0x0f, 0xb1, 0x2f, 0x2a, 0x8f, 0xc0, 0x10, + 0x00, 0x00, 0x00, 0x2f, 0x02, 0xf6, 0xde, 0x02, + 0xe8, 0x15, 0xe8, 0x17, 0x10, 0xe5, 0x1d, 0xc4, + 0xfe, 0x71, 0x12, 0x51, 0x2e, 0xca, 0x72, 0x75, + 0x30, 0xab, 0x25, 0x77, 0x7c, 0x07, 0xc8, 0x83, + 0x01, 0x5d, 0x0e, 0x34, 0x0a, 0x62, 0x64, 0xd4, + 0x3a, 0x9c, 0xfe, 0xfe, 0x80, 0xad, 0x49, 0x6f, + 0x5d, 0xdf, 0x28, 0x22, 0x62, 0xd7, 0x67, 0x1b, + 0xb1, 0x37, 0x42, 0x27, 0x3a, 0x41, 0x9a, 0x69, + 0xc6, 0x37, 0xb0, 0x8b, 0x34, 0x50, 0x0e, 0xb5, + 0x5e, 0x32, 0x1c, 0x7d, 0x2a, 0x85, 0x0a, 0x14, + 0x28, 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x28, + 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x25, 0xff, + 0x00, 0xa9, 0x50, 0xde, 0xa5, 0xbe, 0x8a, 0x85, + 0x60, 0xb8, 0x15, 0x0e, 0x16, 0x45, 0x24, 0xcd, + 0x0f, 0xa5, 0xf4, 0x50, 0xa1, 0x42, 0x85, 0x0a, + 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, + 0x28, 0x50, 0xa1, 0x42, 0x80, 0xb2, 0x4b, 0x54, + 0xcf, 0x91, 0xcf, 0x31, 0xfc, 0xb1, 0xc4, 0x98, + 0x9e, 0x68, 0xb9, 0x45, 0x64, 0x0e, 0x17, 0xf6, + 0x02, 0x89, 0x10, 0x22, 0x60, 0x0b, 0x11, 0x51, + 0xd9, 0x52, 0x6a, 0x35, 0x60, 0x47, 0x6c, 0xc0, + 0x64, 0xbc, 0x54, 0x15, 0x02, 0xa7, 0x8b, 0xad, + 0x2f, 0x27, 0xa8, 0x5f, 0xdc, 0x22, 0x88, 0x5c, + 0x83, 0x69, 0xe4, 0x6d, 0x36, 0x54, 0x0e, 0x80, + 0xb0, 0xb5, 0xf0, 0x5b, 0xcb, 0x74, 0x19, 0xb8, + 0x72, 0x36, 0x33, 0x53, 0x88, 0xb0, 0xc5, 0x11, + 0x1f, 0x42, 0x04, 0x2c, 0x11, 0x88, 0x74, 0x16, + 0xca, 0x38, 0x54, 0xd3, 0x71, 0x78, 0xe5, 0x74, + 0x7d, 0x3d, 0xb2, 0xba, 0x3e, 0x9e, 0xd9, 0x5d, + 0x1f, 0x4f, 0x6c, 0xae, 0x8f, 0xa7, 0xb6, 0x57, + 0x47, 0xd3, 0xdb, 0x2b, 0xa3, 0xe9, 0xed, 0x95, + 0xd1, 0xf4, 0xf6, 0xc1, 0x1c, 0xcc, 0x65, 0x39, + 0x4e, 0x43, 0x0d, 0x43, 0x0a, 0x3b, 0x7c, 0xcd, + 0x71, 0x05, 0x48, 0x0d, 0xd5, 0x0a, 0xba, 0xb0, + 0x52, 0x5b, 0x39, 0x7c, 0x09, 0x4e, 0xc8, 0x4c, + 0x95, 0x83, 0x05, 0x00, 0x04, 0xc6, 0x0c, 0x23, + 0x0c, 0xc2, 0xe5, 0x1a, 0x84, 0x04, 0x9d, 0x8d, + 0x1b, 0x15, 0x70, 0x24, 0xac, 0xf2, 0x86, 0x16, + 0x8a, 0x2a, 0x53, 0x8b, 0x0d, 0x54, 0xe6, 0xe0, + 0x8f, 0x1c, 0xcd, 0x3c, 0x0e, 0x38, 0x20, 0x48, + 0x94, 0x90, 0x40, 0x1a, 0x81, 0x15, 0x28, 0x5a, + 0xe8, 0xfa, 0x7b, 0x65, 0x74, 0x7d, 0x3d, 0xb2, + 0xba, 0x3e, 0x9e, 0xd9, 0x5d, 0x1f, 0x4f, 0x6c, + 0xae, 0x8f, 0xa7, 0xb6, 0x57, 0x47, 0xd3, 0xdb, + 0x2d, 0xea, 0x85, 0x9b, 0x74, 0x1b, 0x1d, 0xa7, + 0x9a, 0x0e, 0x97, 0x1d, 0x0f, 0x6c, 0x88, 0xc7, + 0x09, 0x03, 0x80, 0xd7, 0x06, 0x57, 0x47, 0xd3, + 0xdb, 0x2b, 0xa3, 0xe9, 0xed, 0x81, 0xe0, 0x29, + 0x98, 0x13, 0xc8, 0x25, 0x04, 0xf5, 0x80, 0x02, + 0x1f, 0x91, 0xae, 0x9b, 0xac, 0x3d, 0x83, 0x9d, + 0xa1, 0xbe, 0x0e, 0x47, 0x08, 0x0c, 0x5f, 0x14, + 0x33, 0x8c, 0x2b, 0x49, 0xb4, 0x01, 0x5a, 0xa4, + 0xeb, 0xa8, 0x81, 0x46, 0xe8, 0x20, 0x40, 0xb1, + 0x36, 0x30, 0xb1, 0x26, 0x14, 0x16, 0xd6, 0x05, + 0x2e, 0xa8, 0xa8, 0x00, 0x0c, 0xb1, 0x9f, 0xd9, + 0xae, 0x05, 0x37, 0x4c, 0xdf, 0x52, 0xd3, 0x8c, + 0xab, 0xd1, 0x48, 0x95, 0x17, 0x76, 0x22, 0x4d, + 0x8c, 0x83, 0x76, 0xdb, 0xc8, 0x1e, 0x86, 0x55, + 0x2a, 0xc8, 0x17, 0x21, 0x80, 0x5d, 0x84, 0xa0, + 0x00, 0x63, 0x3c, 0xae, 0x47, 0x81, 0xf4, 0x80, + 0xcc, 0xd5, 0xec, 0x44, 0x98, 0xb4, 0x84, 0x02, + 0xe4, 0x94, 0xa9, 0xeb, 0x49, 0xb2, 0x2b, 0x0d, + 0xb0, 0xd7, 0xea, 0x80, 0x6c, 0x30, 0xc3, 0x0b, + 0x21, 0x74, 0x65, 0x2a, 0xa8, 0x5d, 0x03, 0x36, + 0xd8, 0x8b, 0xb4, 0x89, 0x4b, 0xe2, 0x92, 0x46, + 0x21, 0x72, 0x72, 0x29, 0x51, 0x28, 0x58, 0x78, + 0xca, 0xce, 0x49, 0xa5, 0xc4, 0x21, 0xd4, 0x5a, + 0x54, 0x4d, 0x15, 0x91, 0x16, 0xba, 0x3e, 0x9e, + 0xd9, 0x5d, 0x1f, 0x4f, 0x6c, 0x80, 0xc0, 0x44, + 0x15, 0x3d, 0x21, 0xb1, 0x48, 0xba, 0x50, 0x95, + 0x7f, 0x60, 0x2e, 0x8e, 0x58, 0x05, 0x30, 0x5a, + 0x75, 0x09, 0x2c, 0xc1, 0x49, 0x92, 0x03, 0xd4, + 0x22, 0xf1, 0x42, 0xa6, 0x21, 0x46, 0x78, 0x5f, + 0xd5, 0xdb, 0xb5, 0x89, 0xfa, 0xb2, 0x94, 0xba, + 0x52, 0x19, 0x97, 0xad, 0x7d, 0x09, 0x12, 0xc8, + 0x66, 0x99, 0xc0, 0x33, 0x88, 0x00, 0x05, 0xfa, + 0x44, 0xbf, 0x42, 0x2f, 0xcd, 0x0e, 0x44, 0xe5, + 0x3f, 0xe6, 0x7c, 0xfc, 0x39, 0xf3, 0xf0, 0xe7, + 0xcf, 0xc3, 0x9f, 0x3f, 0x0e, 0x7c, 0xfc, 0x39, + 0xf3, 0xf0, 0xe7, 0xcf, 0xc3, 0x83, 0x4a, 0x73, + 0x22, 0x84, 0x01, 0x83, 0xc4, 0x3a, 0x1a, 0x3e, + 0x30, 0x7f, 0xd9, 0x1f, 0xef, 0x80, 0xe2, 0x9a, + 0x08, 0x23, 0x2c, 0x0d, 0xa8, 0x8d, 0x01, 0xe1, + 0xe8, 0x48, 0xdc, 0xbc, 0x36, 0x94, 0x83, 0xb7, + 0xca, 0x08, 0x14, 0xe0, 0x01, 0x27, 0xfb, 0x39, + 0xe0, 0x81, 0x7c, 0x40, 0x44, 0x80, 0x22, 0xb1, + 0x66, 0xaa, 0x8e, 0xe2, 0x96, 0xd9, 0x7a, 0x22, + 0x47, 0x08, 0xb4, 0xb1, 0x2c, 0x15, 0x82, 0x92, + 0x12, 0xbc, 0x74, 0xb2, 0xa7, 0x46, 0x4c, 0xdd, + 0xf7, 0x33, 0xe7, 0xe1, 0xcf, 0x9f, 0x87, 0x3e, + 0x7e, 0x1c, 0xf9, 0xf8, 0x73, 0xe7, 0xe1, 0xcf, + 0x9f, 0x87, 0x3b, 0xc2, 0x37, 0x78, 0x5e, 0xbd, + 0x43, 0x38, 0x3d, 0x9f, 0xe3, 0x20, 0x5d, 0x0b, + 0xec, 0x2e, 0xa6, 0x7c, 0xfc, 0x39, 0xf3, 0xf0, + 0xe0, 0xbd, 0x27, 0xaf, 0x2a, 0x33, 0x9b, 0xbe, + 0xa2, 0x04, 0x6d, 0x12, 0x34, 0x41, 0x5a, 0x79, + 0x87, 0x55, 0x9e, 0xe7, 0x64, 0xa4, 0xe7, 0x31, + 0x74, 0xb3, 0x68, 0x22, 0x01, 0x1b, 0xfa, 0x60, + 0x8c, 0x69, 0x80, 0x3a, 0xab, 0x82, 0x12, 0x6e, + 0x24, 0x88, 0xbe, 0x76, 0x30, 0x8b, 0x05, 0x16, + 0xd5, 0x62, 0x09, 0x22, 0x07, 0x57, 0xce, 0xc2, + 0xa9, 0x00, 0xaa, 0xa3, 0xe1, 0xb2, 0x24, 0x7d, + 0xd9, 0x4c, 0x39, 0xe1, 0xbe, 0x31, 0x85, 0x92, + 0x53, 0x40, 0x23, 0xc5, 0x61, 0x92, 0xe6, 0x2a, + 0xbd, 0xa0, 0xc5, 0x22, 0x69, 0x60, 0x0c, 0x8f, + 0x05, 0x8b, 0x6b, 0xcf, 0x55, 0xd7, 0xb0, 0x98, + 0x42, 0x9d, 0x74, 0x9c, 0x2d, 0x81, 0xa0, 0x50, + 0x16, 0xc1, 0xa9, 0x06, 0x49, 0x33, 0x9e, 0xc2, + 0xd1, 0x5c, 0x49, 0xda, 0x45, 0xd3, 0x05, 0x2c, + 0x62, 0xc0, 0x85, 0xcc, 0xd0, 0xe7, 0xa3, 0x45, + 0xe1, 0x26, 0x8d, 0x09, 0xab, 0x6c, 0x96, 0xb0, + 0x4b, 0x5e, 0x23, 0x1a, 0xc4, 0xde, 0x91, 0x51, + 0x05, 0x34, 0x39, 0x45, 0x6f, 0x5d, 0x9e, 0xf6, + 0x00, 0xa7, 0x6e, 0xf0, 0xbf, 0x2b, 0xa9, 0x9f, + 0x3f, 0x0e, 0x7c, 0xfc, 0x39, 0xe0, 0x8f, 0x31, + 0x5d, 0xf7, 0xfa, 0x75, 0xfe, 0x7f, 0x64, 0x2a, + 0x14, 0x27, 0x80, 0x2a, 0xce, 0x74, 0x57, 0x10, + 0x41, 0x47, 0x20, 0x44, 0xee, 0x3b, 0x3f, 0x40, + 0x5e, 0x05, 0xd2, 0xeb, 0xa1, 0xcb, 0xd8, 0xf1, + 0xfd, 0x47, 0xa4, 0xd9, 0x44, 0xb2, 0xca, 0x0e, + 0xe6, 0xe7, 0x4c, 0xda, 0x69, 0x96, 0x8a, 0x37, + 0xb0, 0x95, 0x34, 0xec, 0xe8, 0xf4, 0xfd, 0x10, + 0x88, 0xb9, 0x81, 0x18, 0xf0, 0xc6, 0x3b, 0xc6, + 0x05, 0x00, 0x54, 0x89, 0x4e, 0xa5, 0xe4, 0xf3, + 0x35, 0x9b, 0xc6, 0xc0, 0x22, 0xa8, 0x68, 0x22, + 0x54, 0x51, 0x89, 0x78, 0x71, 0x12, 0x88, 0x36, + 0xa9, 0x01, 0xd5, 0x52, 0x1f, 0xb4, 0x2d, 0x73, + 0x9a, 0xa0, 0x6d, 0x01, 0xd1, 0x70, 0x6c, 0x0a, + 0x48, 0xbe, 0x0a, 0x15, 0xb1, 0x2b, 0x42, 0x1c, + 0x2d, 0x2e, 0x17, 0xf9, 0xe7, 0xcf, 0x9f, 0x3e, + 0x7c, 0xfc, 0x1e, 0x1f, 0x1e, 0x15, 0xe6, 0x78, + 0x7e, 0xd9, 0xe0, 0x6b, 0xe6, 0x78, 0xdd, 0x73, + 0x66, 0xb5, 0x38, 0x76, 0x1f, 0x7c, 0xf8, 0x1a, + 0xdd, 0xa7, 0x33, 0xd7, 0x3b, 0x2e, 0xfe, 0xbb, + 0xbf, 0x3b, 0xe6, 0xcb, 0xbf, 0xae, 0xcf, 0xce, + 0x64, 0xf3, 0x1d, 0x9d, 0xab, 0x60, 0x91, 0xa0, + 0xe0, 0x30, 0xff, 0x00, 0x3c, 0xb9, 0xf3, 0xe7, + 0xcf, 0x9f, 0x3d, 0x46, 0xdd, 0x68, 0x4e, 0xc8, + 0x3e, 0x90, 0x08, 0xaf, 0xe8, 0x0a, 0xf4, 0xa3, + 0x29, 0x51, 0x08, 0x05, 0xc0, 0x29, 0xfa, 0xac, + 0xf9, 0xf4, 0x4d, 0x56, 0xcd, 0x57, 0xac, 0xf1, + 0xfe, 0x99, 0xd4, 0xe5, 0xfb, 0xb7, 0xf3, 0x9d, + 0x97, 0x7c, 0x97, 0x64, 0xe9, 0xe5, 0xc0, 0x38, + 0x3b, 0xcc, 0x2b, 0x9d, 0x13, 0x55, 0xb3, 0x55, + 0xeb, 0x3c, 0x78, 0x07, 0x07, 0xd8, 0xbf, 0x8c, + 0xa9, 0xcb, 0x5e, 0x6e, 0x50, 0x36, 0x1b, 0xd4, + 0x2c, 0xec, 0xbb, 0xfa, 0xee, 0xfc, 0xef, 0x80, + 0x58, 0x77, 0x98, 0x57, 0xbe, 0x40, 0xd8, 0x6f, + 0x50, 0xb3, 0xc9, 0xe3, 0xf3, 0xe3, 0x77, 0xf1, + 0xe7, 0xe0, 0xe7, 0x91, 0xd3, 0xcb, 0xe5, 0x9b, + 0x2e, 0xf9, 0x2e, 0xc9, 0xd3, 0xcb, 0x88, 0x23, + 0x20, 0x58, 0x83, 0x04, 0x42, 0xac, 0xa0, 0xde, + 0x48, 0xf1, 0x83, 0xb9, 0x2a, 0x35, 0xd7, 0x04, + 0x64, 0x10, 0x33, 0x3b, 0xe5, 0x21, 0x6b, 0x9e, + 0x40, 0x4a, 0xbf, 0x60, 0xe5, 0x43, 0x78, 0x6d, + 0x1b, 0x12, 0x58, 0x04, 0xa4, 0xa9, 0xe8, 0x9d, + 0x80, 0xfd, 0x80, 0xab, 0x8c, 0x30, 0x03, 0x38, + 0x1d, 0xdc, 0xda, 0x90, 0xc8, 0x69, 0x0a, 0xb0, + 0x23, 0x8e, 0x4a, 0xc9, 0xd2, 0x24, 0x5f, 0xda, + 0x0e, 0x7d, 0x48, 0x98, 0x13, 0x93, 0x09, 0x7c, + 0xf2, 0xe1, 0xa3, 0x1b, 0x40, 0x69, 0x8b, 0x31, + 0x01, 0xd1, 0xee, 0x8b, 0x85, 0xb5, 0x2c, 0x32, + 0x38, 0xd1, 0x3a, 0xc4, 0x59, 0xc1, 0x14, 0xda, + 0x09, 0xc1, 0xa9, 0x80, 0x1b, 0xfc, 0x73, 0x2a, + 0x4b, 0x30, 0x35, 0x03, 0x2b, 0xdc, 0x88, 0x85, + 0xd8, 0xf1, 0x2d, 0x0a, 0x08, 0x2f, 0x2e, 0xfc, + 0xc1, 0x7b, 0xa0, 0x94, 0x81, 0x81, 0x46, 0x4b, + 0xc0, 0xaa, 0x80, 0x6d, 0x4d, 0x8a, 0xe5, 0x22, + 0x27, 0x68, 0x0d, 0xa1, 0xd9, 0xca, 0x11, 0xbb, + 0x77, 0x52, 0xd2, 0x36, 0x22, 0xe8, 0x19, 0x86, + 0x33, 0x75, 0xa2, 0xf1, 0xb5, 0xe5, 0x93, 0x98, + 0x7f, 0xe0, 0x22, 0xc2, 0xb9, 0xb7, 0x7e, 0xec, + 0x6b, 0x84, 0xf3, 0x06, 0x1a, 0xba, 0x3c, 0x05, + 0xbb, 0xe6, 0x2e, 0x4d, 0x28, 0xe1, 0x0d, 0x48, + 0xf2, 0x3a, 0xeb, 0x13, 0x16, 0x06, 0x4c, 0x0a, + 0xff, 0x00, 0x2c, 0x45, 0xc0, 0x02, 0x16, 0x86, + 0xdb, 0x1a, 0xea, 0x47, 0x9e, 0x7c, 0xfb, 0x25, + 0x41, 0x36, 0xc3, 0xb0, 0xb5, 0x01, 0xa8, 0x15, + 0x01, 0xb8, 0x05, 0x6d, 0x3b, 0x08, 0x61, 0x0f, + 0xc2, 0x09, 0xa3, 0x02, 0x3f, 0xa2, 0x1c, 0x07, + 0x00, 0x00, 0xb5, 0xea, 0xb3, 0xa3, 0x5c, 0x55, + 0x5d, 0x37, 0x24, 0x9c, 0x14, 0x37, 0x54, 0x03, + 0x48, 0x84, 0xcb, 0xb5, 0x64, 0x2e, 0x90, 0x58, + 0xd4, 0xd6, 0x61, 0x07, 0x72, 0x19, 0x50, 0xc4, + 0xe5, 0xf3, 0x8d, 0x05, 0xa8, 0x00, 0x82, 0x92, + 0x31, 0x04, 0xa4, 0xd2, 0x09, 0xe2, 0x1f, 0xb0, + 0x67, 0x54, 0x13, 0xb8, 0xfc, 0x79, 0x7f, 0xb9, + 0x0a, 0x80, 0x40, 0x88, 0x82, 0x24, 0x40, 0xc8, + 0xa5, 0x28, 0x3a, 0xa5, 0xe7, 0x10, 0x20, 0x0d, + 0x11, 0x0a, 0x25, 0x49, 0x12, 0x89, 0x4a, 0x51, + 0x39, 0x3f, 0x44, 0x40, 0x51, 0x04, 0xa2, 0x9a, + 0x4a, 0x94, 0xea, 0x51, 0x35, 0xe2, 0x27, 0x87, + 0xe8, 0x51, 0x48, 0x15, 0x05, 0x83, 0x95, 0x38, + 0x0f, 0x15, 0xd1, 0xe3, 0x86, 0x2b, 0x34, 0x31, + 0x2d, 0x60, 0x82, 0x25, 0x82, 0x0b, 0xe0, 0xe0, + 0xae, 0xca, 0x48, 0xed, 0xac, 0x10, 0x41, 0xda, + 0x9c, 0x3d, 0x30, 0x15, 0x00, 0x55, 0x40, 0x02, + 0xaa, 0xe8, 0x00, 0xda, 0xaf, 0x06, 0x3e, 0x73, + 0x44, 0x91, 0xd1, 0x40, 0x8f, 0x92, 0x65, 0x3d, + 0x21, 0xb9, 0x10, 0x9a, 0x11, 0x28, 0x0b, 0x4a, + 0x80, 0xd7, 0x04, 0x41, 0x10, 0x00, 0x54, 0xa8, + 0x59, 0x05, 0x8c, 0x17, 0x71, 0x9c, 0x7e, 0xcf, + 0xca, 0x74, 0xfd, 0x51, 0xcc, 0x86, 0x47, 0x70, + 0x49, 0x6d, 0x28, 0x02, 0x81, 0xfa, 0x35, 0x6a, + 0x3b, 0x3d, 0xa5, 0x20, 0x9c, 0x25, 0x0c, 0x29, + 0x0f, 0xeb, 0x01, 0x5b, 0x3a, 0xcb, 0x87, 0x87, + 0x53, 0x12, 0xe0, 0x10, 0xd4, 0x59, 0xc2, 0x4a, + 0x1e, 0x93, 0xb8, 0xb5, 0xa6, 0xe4, 0x70, 0x70, + 0xdf, 0xa1, 0x28, 0x17, 0x9b, 0x3c, 0x67, 0x34, + 0x82, 0x78, 0x5d, 0x29, 0xf7, 0xb3, 0xae, 0x95, + 0x4a, 0x9e, 0x3c, 0x40, 0xe6, 0x02, 0xd5, 0x05, + 0x2a, 0x90, 0xa5, 0x83, 0x85, 0x00, 0x73, 0x17, + 0xb9, 0x61, 0xd3, 0x7c, 0x79, 0x59, 0x0e, 0x40, + 0x26, 0x95, 0x41, 0xb3, 0x37, 0x06, 0x13, 0x8c, + 0x17, 0x20, 0x05, 0x5d, 0x80, 0x2b, 0xcd, 0x00, + 0xbf, 0x7c, 0x70, 0x41, 0x87, 0x64, 0x26, 0x9a, + 0xd5, 0x42, 0x12, 0x0e, 0x43, 0x40, 0x82, 0xe8, + 0x85, 0x08, 0x46, 0xa1, 0x06, 0x05, 0x6f, 0x35, + 0x77, 0x41, 0x0a, 0x96, 0x5a, 0x8c, 0x04, 0x9f, + 0x84, 0x09, 0x48, 0xc4, 0xef, 0xd8, 0x41, 0xe1, + 0x8f, 0x94, 0xe9, 0xfa, 0xbf, 0xc6, 0xab, 0x70, + 0x91, 0xb4, 0x14, 0x04, 0x93, 0x9c, 0x6d, 0x60, + 0x2e, 0x14, 0xcd, 0x83, 0xd5, 0x35, 0x69, 0x7d, + 0x60, 0x90, 0xbc, 0x69, 0x0e, 0x4a, 0x89, 0x1d, + 0x12, 0xf0, 0x8c, 0x92, 0xf5, 0x33, 0x31, 0x38, + 0x92, 0xcf, 0x9a, 0x5a, 0x42, 0xd1, 0x4b, 0xce, + 0xda, 0x21, 0xea, 0x35, 0xe3, 0xa7, 0x3d, 0x7c, + 0xd1, 0xcb, 0x86, 0xbd, 0x60, 0xc5, 0x5e, 0xc2, + 0xca, 0x8e, 0x40, 0x10, 0xfa, 0x69, 0x87, 0xc1, + 0xfe, 0xbe, 0xda, 0xab, 0x66, 0xd3, 0x54, 0x41, + 0x31, 0x7c, 0x2e, 0xc9, 0x1c, 0x20, 0x11, 0x40, + 0xcb, 0x62, 0x05, 0xa2, 0xd9, 0x89, 0xf0, 0x64, + 0x96, 0xf7, 0x20, 0x6c, 0x3c, 0x88, 0x0e, 0x84, + 0x22, 0x00, 0x28, 0x82, 0xd8, 0xe2, 0xae, 0x0b, + 0xb7, 0x84, 0xa8, 0x49, 0xd3, 0x10, 0x9a, 0x60, + 0xd1, 0x04, 0x5c, 0x44, 0xe0, 0xa8, 0x1d, 0x14, + 0x29, 0x09, 0x85, 0x92, 0x53, 0x60, 0xb0, 0x91, + 0xa0, 0xa0, 0xc5, 0x1a, 0x19, 0x2a, 0x18, 0xd5, + 0xe7, 0x55, 0x41, 0xd6, 0x8f, 0xec, 0x1f, 0x29, + 0xd3, 0xf5, 0x49, 0x4a, 0x0b, 0x03, 0x2d, 0x01, + 0xc2, 0xb9, 0xa2, 0xf7, 0xe9, 0x1c, 0x63, 0x58, + 0xf0, 0x5e, 0x1a, 0x14, 0x82, 0x08, 0x65, 0x7f, + 0x54, 0x3f, 0x67, 0x54, 0x9b, 0x2e, 0xa6, 0x63, + 0x52, 0x41, 0x44, 0xfd, 0x02, 0x85, 0xe8, 0x6d, + 0x13, 0x29, 0x11, 0xa1, 0xa4, 0xa2, 0x69, 0x1f, + 0xa3, 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, + 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, 0x0a, + 0x15, 0xda, 0x5e, 0x95, 0x62, 0x23, 0x88, 0x54, + 0x4d, 0xe0, 0x1a, 0xff, 0x00, 0xde, 0x82, 0x1e, + 0x9c, 0x5d, 0xe3, 0x64, 0x65, 0x15, 0x40, 0x45, + 0x22, 0x3f, 0x4b, 0xc3, 0x87, 0x0e, 0x1c, 0x38, + 0x70, 0xe1, 0xc3, 0x87, 0x0e, 0x1c, 0x38, 0x70, + 0xe1, 0xc3, 0x87, 0x0e, 0x00, 0xde, 0x47, 0x04, + 0x0a, 0x4b, 0x68, 0x02, 0x15, 0xd1, 0x5f, 0xf4, + 0x0c, 0xd7, 0xe5, 0x08, 0x13, 0x55, 0x07, 0x24, + 0x26, 0x14, 0x02, 0x7c, 0x2b, 0x1d, 0x2a, 0x20, + 0xa3, 0xa6, 0x5a, 0x69, 0x48, 0xbf, 0x49, 0xbf, + 0x7e, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, + 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xf9, + 0xe5, 0x9b, 0x7b, 0x51, 0xa2, 0x7c, 0x49, 0x18, + 0xb4, 0x86, 0x29, 0x2c, 0x1c, 0x7a, 0x40, 0xbb, + 0xd6, 0xae, 0x16, 0x8a, 0x04, 0x54, 0x13, 0xa7, + 0x78, 0xe5, 0x42, 0xab, 0x93, 0x84, 0xe0, 0xa7, + 0x8d, 0xad, 0xe3, 0xa4, 0xcc, 0x14, 0x0a, 0xe6, + 0x9b, 0x58, 0x7a, 0x61, 0x5d, 0x3e, 0xd7, 0x31, + 0x8a, 0x83, 0xc5, 0x6f, 0x9d, 0x73, 0xa3, 0x5d, + 0xfa, 0x7d, 0xf0, 0xd3, 0xad, 0x86, 0x83, 0x80, + 0x02, 0xb0, 0x2c, 0x05, 0xe8, 0x60, 0xfe, 0x05, + 0x65, 0x6c, 0xea, 0x98, 0x9b, 0xdc, 0xaf, 0x55, + 0x37, 0x4e, 0x48, 0x53, 0xc3, 0x7d, 0x37, 0xad, + 0xe7, 0x31, 0x28, 0xda, 0x46, 0x87, 0x85, 0xe9, + 0xf7, 0xc0, 0x81, 0xf4, 0xd3, 0x5a, 0x31, 0x02, + 0xd4, 0x02, 0xd8, 0x56, 0x44, 0x16, 0x5d, 0x3a, + 0x36, 0x8d, 0x4e, 0xc3, 0x07, 0xf1, 0x23, 0x3a, + 0x96, 0x22, 0x24, 0x94, 0x94, 0x68, 0xab, 0xcb, + 0x69, 0x21, 0x6f, 0x49, 0xcd, 0xc3, 0x32, 0x53, + 0x61, 0x4c, 0x4f, 0x58, 0xa1, 0x51, 0xe1, 0x5b, + 0xe7, 0x5a, 0x74, 0x6b, 0x73, 0x7d, 0x37, 0xac, + 0xe6, 0x05, 0x26, 0x48, 0x4b, 0x12, 0xd7, 0xb0, + 0x17, 0x4a, 0x8d, 0x51, 0x54, 0xb4, 0x01, 0x49, + 0xcd, 0x39, 0xd7, 0x8e, 0x32, 0xa2, 0xc4, 0xd2, + 0x3b, 0x0f, 0x47, 0x27, 0x09, 0xc1, 0xb3, 0x17, + 0x82, 0x07, 0xde, 0x14, 0xc4, 0x89, 0x10, 0x04, + 0xdd, 0x69, 0xa3, 0x64, 0xdc, 0x2b, 0xb1, 0x37, + 0x4f, 0xd7, 0xc8, 0xf3, 0xf0, 0x51, 0x23, 0x79, + 0x21, 0x43, 0x5f, 0x00, 0xa3, 0x1e, 0x5e, 0x98, + 0x3c, 0x73, 0x39, 0xc8, 0x5d, 0xe9, 0xec, 0xba, + 0xba, 0x57, 0x76, 0xe2, 0x44, 0x2e, 0x85, 0xc1, + 0xc4, 0x24, 0x3c, 0xef, 0x18, 0x60, 0xaf, 0x60, + 0x74, 0x60, 0xd3, 0x2b, 0x2b, 0x24, 0x05, 0x1c, + 0x2a, 0x68, 0xf6, 0xb3, 0x62, 0x11, 0x8a, 0xe7, + 0x45, 0x01, 0xa7, 0xd2, 0xb6, 0xb5, 0x08, 0x05, + 0x44, 0x6c, 0xe3, 0x44, 0xc0, 0xad, 0x72, 0x93, + 0xe2, 0xc2, 0xd1, 0x74, 0xb3, 0x50, 0x2e, 0x06, + 0xa4, 0xa2, 0xd5, 0x61, 0xc2, 0x14, 0x6e, 0x55, + 0xab, 0x46, 0x06, 0x85, 0xd5, 0xc3, 0x1f, 0x70, + 0x3c, 0xb2, 0x25, 0xc2, 0x01, 0xa5, 0x54, 0x2a, + 0x0e, 0x97, 0x05, 0x28, 0x60, 0xbe, 0x9c, 0x4d, + 0x62, 0x05, 0x49, 0x7f, 0x47, 0x25, 0x6a, 0x02, + 0xa7, 0x01, 0x0b, 0x84, 0x92, 0x10, 0x80, 0x95, + 0x24, 0xec, 0xb0, 0x7c, 0xf6, 0xb0, 0x94, 0xa8, + 0x6e, 0x84, 0x6a, 0xfb, 0xc9, 0xd1, 0x8d, 0x08, + 0xa7, 0x3c, 0xdd, 0xa4, 0x91, 0xd4, 0x54, 0x09, + 0x32, 0x60, 0x2c, 0xa2, 0x20, 0x12, 0xb2, 0x03, + 0x48, 0x02, 0x85, 0x06, 0xec, 0x96, 0x9c, 0x0c, + 0x25, 0xdc, 0x05, 0x17, 0x42, 0xe7, 0x23, 0x89, + 0x2c, 0xa7, 0x14, 0x5e, 0xb1, 0x48, 0x41, 0x4c, + 0x2e, 0xb8, 0xa2, 0x48, 0x90, 0x13, 0x41, 0x09, + 0xbc, 0x3a, 0xf8, 0x50, 0x6c, 0xa6, 0x95, 0xbd, + 0xc6, 0x69, 0x87, 0xbd, 0xc2, 0x44, 0x39, 0x4b, + 0xb1, 0x04, 0x7c, 0x47, 0x22, 0xca, 0x70, 0x01, + 0x84, 0xba, 0x6b, 0xf8, 0x36, 0x99, 0xa3, 0x65, + 0x7f, 0x3b, 0x0f, 0x57, 0x3e, 0x45, 0xcf, 0x91, + 0x72, 0xf9, 0xae, 0x88, 0xd0, 0x78, 0x38, 0xa8, + 0xca, 0x0a, 0x85, 0x5b, 0xb8, 0x3a, 0xb2, 0xdd, + 0xdc, 0x11, 0xc5, 0xbb, 0x10, 0xb2, 0x9d, 0xa7, + 0x2d, 0x62, 0x97, 0xda, 0x60, 0x97, 0x26, 0x67, + 0xf3, 0x74, 0xf5, 0xa6, 0x30, 0xb6, 0x04, 0x0b, + 0x8f, 0x31, 0x79, 0x62, 0x62, 0xc1, 0x8b, 0x09, + 0x78, 0x99, 0x24, 0x14, 0x2c, 0x86, 0x7b, 0x2f, + 0x49, 0x94, 0xfd, 0x89, 0x4c, 0x25, 0x6f, 0x15, + 0x16, 0x6a, 0x14, 0xab, 0xba, 0x62, 0xf5, 0x55, + 0x57, 0xd7, 0xc7, 0x11, 0x58, 0xc8, 0x29, 0x56, + 0x79, 0x08, 0x47, 0x80, 0x05, 0xd0, 0x75, 0x9e, + 0xb7, 0xb1, 0x44, 0x0c, 0x2d, 0xc4, 0x41, 0x9c, + 0x0c, 0x45, 0x40, 0xdb, 0xa0, 0xd3, 0x50, 0x65, + 0xd8, 0xa0, 0xe7, 0x11, 0x88, 0x06, 0x92, 0x78, + 0x94, 0xce, 0x05, 0xd8, 0xe5, 0xb4, 0x06, 0xba, + 0xb7, 0x14, 0x92, 0x12, 0x99, 0xf8, 0x16, 0xb9, + 0xb0, 0x30, 0x36, 0x9b, 0xaf, 0xac, 0x40, 0x6a, + 0x4a, 0x06, 0xa7, 0x3e, 0x2c, 0xea, 0x3b, 0xa1, + 0xd1, 0xa9, 0x53, 0x58, 0xb9, 0xf9, 0x17, 0x3e, + 0x45, 0xcf, 0x91, 0x71, 0xf9, 0x80, 0xfc, 0xbf, + 0xfd, 0xfa, 0xfe, 0x65, 0x3c, 0xc1, 0xc7, 0x8a, + 0x77, 0xf9, 0x32, 0x3a, 0x3f, 0x2c, 0x5c, 0x0c, + 0xc0, 0x14, 0x89, 0xae, 0xd9, 0xcb, 0x92, 0xc0, + 0x33, 0x00, 0x4c, 0xaa, 0x9d, 0x04, 0x22, 0x9a, + 0xcf, 0x60, 0x20, 0x94, 0xac, 0x99, 0xa8, 0x0a, + 0xb1, 0x80, 0xb5, 0x1d, 0xc3, 0xe4, 0xf9, 0x26, + 0x20, 0x86, 0x15, 0xca, 0x7a, 0x68, 0xb5, 0x84, + 0xf0, 0x38, 0x0a, 0xc3, 0x72, 0x2a, 0x7f, 0x4d, + 0xa4, 0x1e, 0x11, 0x14, 0x65, 0x42, 0x88, 0xc6, + 0x5e, 0xc2, 0x85, 0xc3, 0xf1, 0xc1, 0x43, 0x15, + 0xbf, 0x13, 0xcc, 0xf1, 0x79, 0xb3, 0x8b, 0x86, + 0xfd, 0x5e, 0xdc, 0x20, 0x28, 0x36, 0xa0, 0x0b, + 0x56, 0x0e, 0x5c, 0x5c, 0xe0, 0x6e, 0xc2, 0x05, + 0x6d, 0x76, 0x02, 0xf9, 0xca, 0x88, 0x0c, 0x9e, + 0xc4, 0xc4, 0xdc, 0xfc, 0x24, 0x90, 0x05, 0xcf, + 0x1d, 0x1e, 0xa0, 0x7e, 0x83, 0xe1, 0xe1, 0x99, + 0x72, 0xea, 0xfe, 0x10, 0xd7, 0x34, 0x88, 0x30, + 0xc1, 0x4d, 0x80, 0xbf, 0x08, 0x99, 0x5d, 0x60, + 0x2b, 0x19, 0x6c, 0x02, 0x05, 0x68, 0x1e, 0x8c, + 0x82, 0x88, 0x86, 0x61, 0x87, 0xe7, 0x01, 0xf1, + 0xc0, 0xf0, 0x01, 0xdc, 0xf1, 0x14, 0x20, 0xd6, + 0x7f, 0x88, 0xaa, 0xe0, 0x61, 0x1c, 0x45, 0xc2, + 0x00, 0xaf, 0x22, 0x94, 0x06, 0x98, 0x70, 0xb3, + 0x74, 0x4c, 0x84, 0xb8, 0x86, 0x61, 0xea, 0x32, + 0xb6, 0x64, 0x20, 0x20, 0x61, 0x03, 0x73, 0x44, + 0x89, 0x04, 0x99, 0xbd, 0x0e, 0xac, 0xbc, 0x97, + 0xfd, 0xfb, 0x67, 0x88, 0x3e, 0x84, 0x8f, 0xfc, + 0xc2, 0x8b, 0xc1, 0x44, 0xc4, 0x3b, 0x52, 0x77, + 0xc1, 0xb3, 0x27, 0xe3, 0x89, 0xf8, 0xe3, 0x5e, + 0x4a, 0x9d, 0x10, 0x02, 0x4a, 0x06, 0x83, 0x32, + 0x0c, 0x5b, 0x15, 0xa8, 0x55, 0x38, 0x0c, 0x76, + 0x35, 0x6c, 0x0c, 0x95, 0x10, 0x38, 0x18, 0xb7, + 0x90, 0x40, 0x1f, 0x32, 0xc5, 0x3c, 0x99, 0xba, + 0x8a, 0xbd, 0x27, 0x38, 0x60, 0xc0, 0x96, 0xb1, + 0x10, 0xb8, 0x8b, 0x68, 0x2d, 0xbe, 0xcf, 0x54, + 0xa2, 0x84, 0x19, 0x75, 0x13, 0x28, 0x3a, 0xd8, + 0x55, 0xa1, 0x68, 0x00, 0x29, 0x01, 0x8a, 0x09, + 0x91, 0x42, 0x8c, 0xeb, 0x55, 0x88, 0xfc, 0x18, + 0x16, 0xc1, 0x3c, 0x95, 0xbc, 0x29, 0xc2, 0xc4, + 0xab, 0x72, 0x0b, 0x37, 0x31, 0x82, 0xb7, 0x39, + 0x65, 0x9f, 0xf6, 0xd2, 0x05, 0x11, 0x61, 0x47, + 0x10, 0x4c, 0x43, 0x01, 0x36, 0x06, 0x86, 0x5f, + 0x3c, 0x43, 0x04, 0xe9, 0x12, 0x1b, 0xc2, 0x40, + 0x76, 0xae, 0x84, 0x95, 0x6c, 0x2a, 0x28, 0x91, + 0x56, 0x2e, 0x51, 0x94, 0xf8, 0xd5, 0x07, 0x9b, + 0x4d, 0x3d, 0xa0, 0xd0, 0x93, 0xc3, 0x26, 0x4b, + 0xa5, 0x54, 0x89, 0x08, 0xc1, 0x5c, 0x03, 0xee, + 0xcd, 0x3d, 0xe4, 0xc5, 0x36, 0x81, 0x0e, 0xcf, + 0x8a, 0x45, 0xc9, 0xf8, 0xe2, 0x7e, 0x38, 0x2c, + 0x5c, 0x40, 0x35, 0x57, 0xc5, 0x5e, 0x00, 0x54, + 0x02, 0x81, 0x9c, 0xc5, 0x2f, 0x5c, 0xe6, 0xa0, + 0x91, 0xaa, 0x3f, 0x5e, 0xb9, 0xa3, 0x1a, 0x83, + 0x6c, 0x4b, 0xac, 0x16, 0xc2, 0x0d, 0x0c, 0xdd, + 0xc2, 0xbe, 0x4b, 0x10, 0xb1, 0x8f, 0x08, 0x3e, + 0x5f, 0xa0, 0xc2, 0xfd, 0x41, 0xf0, 0x44, 0x6c, + 0x00, 0xa4, 0x34, 0x91, 0x00, 0x96, 0x9b, 0xec, + 0x90, 0x04, 0x45, 0xd0, 0x00, 0x36, 0x4a, 0xcb, + 0x40, 0x8f, 0x27, 0xda, 0xf4, 0x6b, 0x35, 0x4d, + 0x1d, 0x35, 0x7e, 0x31, 0xe2, 0xef, 0x34, 0x3c, + 0x07, 0x4c, 0xfe, 0x66, 0xf9, 0xdd, 0x7c, 0xdf, + 0xa4, 0xcf, 0xbc, 0xe9, 0xf1, 0x8e, 0x98, 0x5b, + 0x95, 0xd4, 0xdf, 0x17, 0x4f, 0x26, 0x43, 0x81, + 0xd4, 0xf2, 0xba, 0x79, 0x3f, 0x48, 0x83, 0x31, + 0x58, 0xec, 0x0f, 0x97, 0x66, 0x6e, 0x3a, 0x96, + 0x33, 0xb0, 0xa3, 0x41, 0x33, 0x42, 0x80, 0x54, + 0xa1, 0xc5, 0xaa, 0x69, 0xe6, 0x6a, 0xbd, 0x66, + 0x3c, 0x5d, 0xee, 0x97, 0x90, 0xe9, 0xfa, 0x62, + 0x7e, 0x06, 0x79, 0x5d, 0x3c, 0x99, 0xa2, 0x69, + 0xe9, 0xab, 0xf1, 0x8e, 0xa6, 0x66, 0xfd, 0x68, + 0x1c, 0x83, 0xa8, 0x37, 0x2d, 0xae, 0x03, 0x39, + 0xa9, 0x04, 0x14, 0xab, 0x43, 0xee, 0x64, 0x32, + 0xb3, 0xe9, 0x4d, 0x12, 0x34, 0x68, 0xd1, 0xa3, + 0x46, 0x8d, 0x1a, 0x34, 0x68, 0xd1, 0xa3, 0x46, + 0x8d, 0x1a, 0x34, 0x6b, 0x53, 0x3c, 0x05, 0x12, + 0x01, 0x8d, 0x45, 0x79, 0xff, 0x00, 0xf9, 0xd9, + 0xa3, 0xea, 0x26, 0x75, 0x13, 0x6b, 0x91, 0x1f, + 0x4b, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, + 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, + 0xdf, 0xbf, 0x61, 0x0a, 0x04, 0x7c, 0x6c, 0x52, + 0xe3, 0x18, 0xb0, 0xc6, 0x71, 0xfe, 0xdc, 0x64, + 0xcc, 0x21, 0x66, 0x49, 0x69, 0x88, 0x9a, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x02, 0x64, 0xf4, 0xfa, 0x7b, 0x64, + 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, 0x64, + 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, 0x64, + 0xf4, 0xfa, 0x7b, 0x61, 0xf3, 0xa9, 0xd4, 0xba, + 0x09, 0x07, 0x34, 0x7a, 0x18, 0x28, 0xfb, 0x90, + 0xda, 0x05, 0x21, 0x0a, 0x01, 0x52, 0x32, 0x7a, + 0x7d, 0x3d, 0xb1, 0xe1, 0x98, 0x22, 0xe7, 0x50, + 0xdf, 0x0a, 0x45, 0x63, 0x2c, 0xf4, 0xfa, 0x7b, + 0x64, 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, + 0x64, 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, + 0x64, 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, + 0x64, 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, + 0x64, 0xf4, 0xfa, 0x7b, 0x60, 0xd7, 0x20, 0x6a, + 0x06, 0xdb, 0x7d, 0x36, 0xc7, 0x3b, 0xfd, 0xb5, + 0x1f, 0x5f, 0x55, 0xf5, 0x3a, 0x67, 0x77, 0xae, + 0x3b, 0xbd, 0x71, 0xdd, 0xeb, 0x8e, 0xef, 0x5c, + 0x77, 0x7a, 0xe3, 0xbb, 0xd7, 0x1d, 0xde, 0xb8, + 0xd8, 0x56, 0x97, 0x5e, 0x41, 0xd5, 0x9e, 0x3c, + 0xd4, 0xe3, 0xe4, 0x94, 0x88, 0x43, 0xc6, 0x05, + 0x91, 0xd4, 0x89, 0x88, 0x32, 0x8a, 0x66, 0x0a, + 0x64, 0x59, 0x45, 0xda, 0x61, 0xaa, 0x20, 0x5a, + 0xc8, 0x2e, 0x4f, 0xb2, 0x0c, 0x5f, 0xe0, 0x75, + 0xa1, 0x15, 0x60, 0x4c, 0x48, 0x9a, 0xdb, 0x60, + 0x45, 0x31, 0x22, 0x81, 0x31, 0x92, 0xa3, 0x9e, + 0xbc, 0x05, 0xc4, 0xaa, 0xcb, 0x85, 0x15, 0x1c, + 0xee, 0xf5, 0xc7, 0x77, 0xae, 0x3b, 0xbd, 0x71, + 0xdd, 0xeb, 0x8e, 0xef, 0x5c, 0x77, 0x7a, 0xe3, + 0xbb, 0xd7, 0x17, 0x3b, 0xe6, 0x57, 0x92, 0xea, + 0xeb, 0xd3, 0x0d, 0x83, 0xd7, 0xfd, 0xb4, 0x19, + 0x0a, 0xe8, 0x19, 0xcd, 0x22, 0xd5, 0xf4, 0xf2, + 0x89, 0x9d, 0xde, 0xb8, 0xee, 0xf5, 0xc7, 0x77, + 0xae, 0x3b, 0xbd, 0x71, 0xdd, 0xeb, 0x8e, 0xef, + 0x5c, 0x77, 0x7a, 0xe0, 0x4e, 0x51, 0xe9, 0x51, + 0x50, 0x63, 0xc2, 0x1e, 0xa3, 0x9e, 0x0f, 0xa1, + 0x59, 0x28, 0x74, 0x94, 0x3b, 0x55, 0xe0, 0x47, + 0x4e, 0x66, 0x3c, 0x64, 0x93, 0x46, 0x44, 0x31, + 0x44, 0x38, 0xdc, 0x12, 0x18, 0x03, 0x4f, 0x3b, + 0x2c, 0x83, 0xac, 0xd9, 0x2f, 0x10, 0x92, 0x84, + 0x76, 0x90, 0x00, 0x8c, 0x25, 0x6c, 0xe8, 0xe1, + 0x4e, 0xc0, 0x8f, 0x79, 0xaf, 0x96, 0xe4, 0xcb, + 0x14, 0xe2, 0x51, 0x88, 0x48, 0xd2, 0x78, 0xee, + 0xf5, 0xc7, 0x77, 0xae, 0x3b, 0xbd, 0x71, 0xdd, + 0xeb, 0x8e, 0xef, 0x5c, 0x77, 0x7a, 0xe3, 0xbb, + 0xd7, 0x05, 0xdf, 0x7b, 0xaf, 0x2d, 0xc1, 0xec, + 0x6e, 0x3c, 0x7f, 0xb6, 0x14, 0x44, 0x51, 0x1a, + 0x22, 0x88, 0x9c, 0x22, 0x6c, 0x4f, 0x04, 0xd9, + 0x88, 0x14, 0x67, 0x02, 0x1a, 0x07, 0x44, 0x78, + 0xa2, 0xf8, 0xab, 0xf4, 0xa5, 0x0a, 0x14, 0x28, + 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x28, 0x50, + 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x28, 0x97, 0xc0, + 0x83, 0x9e, 0x94, 0x64, 0xc1, 0x04, 0x00, 0x54, + 0x00, 0xff, 0x00, 0xd1, 0xdd, 0x82, 0x34, 0x88, + 0x98, 0x71, 0x46, 0x08, 0x31, 0x15, 0x69, 0x12, + 0xa6, 0xf9, 0xc2, 0x0f, 0x8d, 0xa2, 0x8c, 0x94, + 0xbf, 0x4b, 0xd3, 0xa7, 0x4e, 0x9d, 0x3a, 0x74, + 0xe9, 0xd3, 0xa7, 0x4e, 0x9d, 0x3a, 0x74, 0xe9, + 0xd3, 0xa7, 0x4e, 0x9b, 0x27, 0x22, 0x40, 0x09, + 0x61, 0x86, 0x88, 0xda, 0x9c, 0x02, 0xe6, 0xd6, + 0xe1, 0x95, 0x13, 0xe3, 0x4d, 0xa5, 0xf4, 0x94, + 0x68, 0xd1, 0xa3, 0x46, 0x8d, 0x1a, 0x34, 0x68, + 0xd1, 0xa3, 0x46, 0x8d, 0x1a, 0x34, 0x68, 0xd1, + 0xa2, 0x20, 0xcc, 0x6d, 0x87, 0x84, 0x33, 0xe4, + 0x77, 0xf1, 0x7a, 0xf4, 0x1a, 0xdd, 0x93, 0x03, + 0x6c, 0x7f, 0x9e, 0x3e, 0x17, 0x83, 0x0d, 0x3e, + 0x7c, 0x22, 0x68, 0xd7, 0x8c, 0x48, 0x3a, 0x56, + 0x82, 0xc4, 0x0d, 0x02, 0x43, 0xa1, 0x6c, 0x6d, + 0x0e, 0x3e, 0x95, 0x42, 0x85, 0x0a, 0x14, 0x28, + 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x28, 0x50, + 0xa1, 0x42, 0x85, 0x0a, 0x0c, 0x89, 0xd3, 0xd2, + 0xa0, 0x4c, 0x0f, 0x23, 0x00, 0xfd, 0x28, 0x38, + 0x53, 0x13, 0x6c, 0x89, 0xe0, 0xb5, 0xc4, 0xd0, + 0xf1, 0x99, 0xdd, 0xeb, 0x88, 0x2a, 0x20, 0x2a, + 0x30, 0x02, 0xa9, 0xf0, 0x00, 0xaf, 0x91, 0x8b, + 0x2a, 0xf7, 0x5e, 0x18, 0xb1, 0xa9, 0xd2, 0x0f, + 0x23, 0x8f, 0x12, 0xf0, 0xe0, 0xac, 0x65, 0x43, + 0x09, 0xca, 0x2d, 0x08, 0xf6, 0xb0, 0xac, 0x40, + 0x53, 0x00, 0x81, 0x82, 0x92, 0xd3, 0x68, 0x90, + 0x25, 0xcc, 0x80, 0x1d, 0x61, 0x42, 0xb9, 0x8c, + 0x16, 0xe0, 0xb1, 0x4a, 0x02, 0x3c, 0x90, 0xba, + 0xe6, 0x30, 0x1d, 0xd8, 0x8a, 0x60, 0xa1, 0x69, + 0x72, 0xa8, 0x53, 0x68, 0x1b, 0x64, 0x15, 0x92, + 0xa9, 0x26, 0x68, 0x83, 0x69, 0xea, 0x4e, 0x2a, + 0x2a, 0xc8, 0x02, 0x8a, 0x20, 0xc4, 0x2a, 0x11, + 0x4a, 0x12, 0x68, 0x63, 0xc1, 0x06, 0x53, 0xa1, + 0x90, 0x5e, 0x6d, 0x05, 0x20, 0x83, 0x15, 0x62, + 0x29, 0xdb, 0x50, 0x3c, 0xf9, 0x59, 0x50, 0x51, + 0x30, 0xdb, 0x2d, 0x11, 0x38, 0x82, 0xd9, 0x42, + 0x4f, 0x02, 0x88, 0x24, 0xa0, 0x28, 0x8e, 0x61, + 0x65, 0xb0, 0x26, 0x20, 0x21, 0x5e, 0x2a, 0xd9, + 0x98, 0x6e, 0x00, 0xbc, 0xd4, 0xed, 0x16, 0xdf, + 0xe2, 0x43, 0xd6, 0x71, 0x49, 0x61, 0xa4, 0x82, + 0xd0, 0x81, 0x4d, 0x96, 0xbc, 0xe8, 0x57, 0x4f, + 0x0a, 0xb2, 0x57, 0xc3, 0x80, 0x68, 0x8a, 0x10, + 0x30, 0x92, 0x10, 0x00, 0x51, 0x91, 0x0e, 0x44, + 0x1a, 0x4a, 0x1c, 0xee, 0xf5, 0xc1, 0x2c, 0xd6, + 0x87, 0x8c, 0x4d, 0xc6, 0xd9, 0xaa, 0x53, 0xaa, + 0x70, 0xe3, 0xa1, 0x7a, 0x0e, 0x1c, 0x10, 0x10, + 0x1a, 0x09, 0xc6, 0x09, 0x3f, 0x19, 0xdd, 0xeb, + 0x8e, 0xef, 0x5c, 0x77, 0x7a, 0xe3, 0xbb, 0xd7, + 0x1d, 0xde, 0xb8, 0xee, 0xf5, 0xc7, 0x77, 0xae, + 0x13, 0xa3, 0x8f, 0x8d, 0x54, 0x4c, 0x02, 0xc5, + 0xa8, 0x5b, 0x23, 0x37, 0x2c, 0x98, 0x61, 0x94, + 0x31, 0x15, 0x00, 0x6a, 0x18, 0xf8, 0x42, 0x9c, + 0x20, 0x53, 0x16, 0xd5, 0x09, 0x02, 0xe1, 0x81, + 0x38, 0x7a, 0x05, 0x6f, 0x11, 0xa0, 0x94, 0x1d, + 0xbb, 0xb3, 0x74, 0xaa, 0x0e, 0x85, 0xbb, 0x8d, + 0x18, 0x22, 0xac, 0xaa, 0xd4, 0x51, 0x5b, 0x83, + 0x17, 0x12, 0x1e, 0x08, 0x2e, 0xec, 0xb6, 0x4e, + 0xef, 0x8d, 0xcc, 0x40, 0x99, 0xdd, 0xeb, 0x8e, + 0xef, 0x5c, 0x77, 0x7a, 0xe3, 0xbb, 0xd7, 0x1d, + 0xde, 0xb8, 0xee, 0xf5, 0xc7, 0x77, 0xae, 0x03, + 0x44, 0x8a, 0x3c, 0x69, 0x25, 0xab, 0x28, 0x65, + 0xe4, 0xff, 0x00, 0x39, 0x88, 0x50, 0x50, 0xa8, + 0x69, 0x78, 0x52, 0x33, 0xc1, 0x72, 0xba, 0x3e, + 0x9e, 0xd9, 0x5d, 0x1f, 0x4f, 0x6c, 0x95, 0x01, + 0x2e, 0x52, 0xdd, 0x83, 0x66, 0xd9, 0x90, 0xd5, + 0x8c, 0x38, 0xb7, 0x2d, 0x13, 0x0e, 0xdf, 0x83, + 0x27, 0x10, 0xd6, 0x2f, 0xd2, 0x92, 0xdf, 0x36, + 0x09, 0x9e, 0x2d, 0x79, 0xe4, 0x01, 0x4c, 0x55, + 0xc5, 0xcf, 0x50, 0x82, 0xcc, 0x33, 0x18, 0xd6, + 0xc2, 0x21, 0xaa, 0x0c, 0x0c, 0xbc, 0x2a, 0x83, + 0x8c, 0xcf, 0x88, 0xa0, 0x04, 0x07, 0xd3, 0x4d, + 0x47, 0x60, 0x83, 0x08, 0x09, 0x8b, 0x01, 0x8c, + 0x84, 0x65, 0x05, 0x79, 0x51, 0x51, 0x70, 0xc1, + 0x2a, 0xcf, 0x1e, 0xf2, 0xa0, 0x43, 0xcb, 0x62, + 0xb0, 0xa9, 0xb9, 0xdd, 0x30, 0xa2, 0x21, 0x46, + 0xe1, 0x89, 0xaa, 0xd4, 0x09, 0x8e, 0xf1, 0x29, + 0x58, 0x26, 0x68, 0x92, 0x4d, 0xd2, 0x9d, 0xca, + 0x75, 0x5a, 0x64, 0x21, 0x96, 0x5a, 0x8c, 0x6a, + 0xfe, 0x4a, 0x14, 0xb2, 0x2a, 0x73, 0x92, 0x38, + 0xa8, 0xd3, 0x9b, 0xc3, 0x50, 0xb3, 0x43, 0x29, + 0xa0, 0xdc, 0xaa, 0xb8, 0x04, 0xe8, 0x0d, 0x46, + 0x6f, 0x0f, 0x74, 0xff, 0x00, 0x75, 0xa1, 0x33, + 0xb7, 0x84, 0x2c, 0xaf, 0x81, 0xa6, 0xa3, 0x4c, + 0xaa, 0x49, 0xb8, 0x9a, 0x45, 0xc0, 0xd0, 0x51, + 0x14, 0x08, 0xfd, 0x98, 0xe5, 0x74, 0x7d, 0x3d, + 0xb0, 0x53, 0x20, 0x00, 0x25, 0x7e, 0x4e, 0x54, + 0x3c, 0x01, 0x1a, 0x7e, 0x86, 0xd8, 0x02, 0xbc, + 0x82, 0x47, 0x99, 0xda, 0x96, 0x79, 0xbf, 0xcf, + 0xb6, 0x5b, 0x50, 0x1e, 0x46, 0xc4, 0xf1, 0x1d, + 0x70, 0xe2, 0xbe, 0x3b, 0x39, 0xab, 0xbe, 0x22, + 0x40, 0x35, 0xf4, 0x08, 0x18, 0xd4, 0x82, 0x1e, + 0x42, 0xae, 0x22, 0x20, 0x5f, 0xe3, 0x59, 0x82, + 0x01, 0xd3, 0x9e, 0x21, 0x01, 0x83, 0x60, 0x4b, + 0x9c, 0xca, 0x82, 0x2c, 0x0a, 0x36, 0x20, 0x02, + 0x10, 0xa7, 0xa2, 0x3c, 0x1d, 0x06, 0x14, 0xd8, + 0x10, 0x2a, 0xd4, 0x22, 0x26, 0x94, 0x4d, 0x24, + 0x28, 0x74, 0x20, 0x4b, 0xd0, 0x9f, 0x44, 0x92, + 0xbe, 0x46, 0x32, 0x3d, 0x97, 0x3d, 0x3e, 0x99, + 0x98, 0xc2, 0x99, 0x0c, 0x28, 0x06, 0x6d, 0x7f, + 0x3d, 0x6e, 0xba, 0xf6, 0xe8, 0x2c, 0x13, 0x02, + 0x44, 0x1b, 0x4d, 0x05, 0x4b, 0xd0, 0x2b, 0x9c, + 0x06, 0x14, 0xb4, 0x53, 0xc6, 0xf6, 0xc0, 0xd5, + 0xbc, 0x6d, 0x83, 0x0b, 0xf8, 0xa8, 0x0b, 0x43, + 0x29, 0x85, 0xdd, 0x39, 0x0f, 0x75, 0x35, 0x8b, + 0x7a, 0x44, 0x20, 0x86, 0x02, 0x46, 0x03, 0x71, + 0xda, 0x8b, 0x3f, 0x38, 0xa1, 0xc0, 0xb7, 0x18, + 0x99, 0xc5, 0x6a, 0x85, 0x1e, 0x96, 0xa0, 0x75, + 0x61, 0x65, 0x77, 0xf3, 0x0d, 0x98, 0x95, 0x72, + 0x50, 0x71, 0xc0, 0x20, 0xda, 0xe7, 0xf2, 0x73, + 0x8e, 0x48, 0xa6, 0x7f, 0x2b, 0x65, 0xd0, 0x59, + 0x22, 0x86, 0x5c, 0xec, 0xf3, 0x7f, 0x9f, 0x6c, + 0x71, 0xcd, 0x70, 0x59, 0x52, 0x22, 0xca, 0xc4, + 0xc3, 0x70, 0x5e, 0x07, 0x1d, 0x8f, 0x67, 0x0c, + 0x01, 0x20, 0x14, 0xe3, 0x45, 0xad, 0x67, 0x77, + 0xc7, 0xdb, 0x3b, 0xbe, 0x3e, 0xd9, 0xdd, 0xf1, + 0xf6, 0xce, 0xef, 0x8f, 0xb6, 0x77, 0x7c, 0x7d, + 0xb3, 0xbb, 0xe3, 0xed, 0x85, 0xff, 0x00, 0xd3, + 0xfa, 0xc2, 0xf9, 0x95, 0xb3, 0x49, 0xa0, 0xd1, + 0xd4, 0x93, 0x60, 0x23, 0x0d, 0xfc, 0x75, 0x6c, + 0x5a, 0x42, 0xe7, 0x7b, 0x8d, 0x3d, 0x63, 0x94, + 0x85, 0xed, 0x98, 0x2b, 0x78, 0x6a, 0x23, 0xd9, + 0xcf, 0x32, 0x44, 0x82, 0xb6, 0x01, 0xe3, 0x52, + 0x9b, 0x35, 0xa3, 0x70, 0x6c, 0x6d, 0xbb, 0x22, + 0xe5, 0xc2, 0xf4, 0x5c, 0x04, 0x45, 0x46, 0x49, + 0x26, 0xc0, 0x8e, 0x59, 0xc4, 0x09, 0xfb, 0x1c, + 0xb1, 0x18, 0x58, 0x19, 0x9d, 0xdf, 0x1f, 0x6c, + 0xee, 0xf8, 0xfb, 0x67, 0x77, 0xc7, 0xdb, 0x3b, + 0xbe, 0x3e, 0xd9, 0xdd, 0xf1, 0xf6, 0xce, 0xef, + 0x8f, 0xb6, 0x77, 0x7c, 0x7d, 0xb0, 0xc5, 0x6a, + 0x80, 0x79, 0xd9, 0xa8, 0x74, 0x35, 0x5f, 0x0a, + 0x5e, 0x4f, 0xf3, 0xe4, 0x2d, 0xf3, 0x21, 0xcb, + 0xbf, 0xc7, 0x1f, 0x7f, 0x0c, 0xf9, 0xf8, 0x73, + 0xe7, 0xe1, 0xc0, 0x60, 0x49, 0xe0, 0x16, 0x07, + 0x2c, 0xbd, 0x01, 0x93, 0xd2, 0x96, 0x62, 0x9e, + 0x8b, 0xd7, 0xa4, 0x8c, 0xe2, 0x4a, 0x32, 0x7b, + 0x14, 0x5b, 0xc2, 0xc3, 0x08, 0xd8, 0x10, 0xd0, + 0xf4, 0xa9, 0xb5, 0x00, 0xcd, 0x50, 0x49, 0x14, + 0x21, 0x8d, 0xb5, 0x8f, 0xe0, 0xd3, 0x67, 0x07, + 0x58, 0xed, 0x66, 0x04, 0xdd, 0x21, 0xf6, 0x52, + 0x8a, 0x40, 0x4a, 0xee, 0xb6, 0x7b, 0xd4, 0xd0, + 0x5c, 0x94, 0x71, 0xa1, 0x22, 0xc6, 0x0a, 0x27, + 0x24, 0x0c, 0x11, 0x80, 0x6e, 0xec, 0x42, 0x4d, + 0x89, 0x18, 0xcc, 0x12, 0x1a, 0xb1, 0xea, 0x6c, + 0x05, 0x8f, 0x5a, 0x78, 0x34, 0x96, 0x31, 0x56, + 0x9e, 0xa7, 0x98, 0xd9, 0xd5, 0x86, 0xbe, 0x70, + 0x30, 0x03, 0x6b, 0x32, 0xee, 0x7d, 0x47, 0x62, + 0xa8, 0xa9, 0x02, 0xa9, 0xc2, 0x52, 0xc1, 0x29, + 0x36, 0x0d, 0xde, 0x26, 0x2a, 0x49, 0x82, 0xb6, + 0x12, 0x10, 0x41, 0x63, 0xa2, 0xb1, 0x4e, 0x55, + 0x93, 0xf7, 0x01, 0x35, 0x37, 0xdb, 0xda, 0x5e, + 0x25, 0x16, 0x68, 0x53, 0x2b, 0x6d, 0x9b, 0x20, + 0xe1, 0x0e, 0x0a, 0x59, 0x32, 0x70, 0xd2, 0x0a, + 0xe9, 0x83, 0x85, 0xf2, 0x86, 0xb8, 0xd5, 0x01, + 0x71, 0xc0, 0x6f, 0x11, 0x4f, 0xe7, 0xe1, 0xcf, + 0x2e, 0x87, 0x37, 0x92, 0xeb, 0xfa, 0x01, 0x81, + 0xdc, 0xb0, 0xe7, 0x08, 0xab, 0x64, 0x82, 0xd0, + 0x03, 0x88, 0x69, 0x2d, 0x0f, 0x7b, 0x88, 0xe8, + 0xa1, 0xea, 0x7e, 0xe4, 0xb9, 0x72, 0xe5, 0xcb, + 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xf8, 0x33, 0xdc, + 0x81, 0x81, 0x82, 0x50, 0x16, 0xa1, 0x07, 0x3e, + 0xfa, 0x6a, 0xbd, 0x87, 0x83, 0x5d, 0xb9, 0x60, + 0x7e, 0xc4, 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2c, + 0xa9, 0x22, 0x06, 0xda, 0x99, 0x75, 0x93, 0x62, + 0x83, 0xf4, 0x15, 0xcd, 0x99, 0xb9, 0xe8, 0x07, + 0x1a, 0x42, 0x0b, 0xc7, 0xf6, 0x7c, 0xff, 0x00, + 0x67, 0xcf, 0xf6, 0x7c, 0xff, 0x00, 0x67, 0xcf, + 0xf6, 0x7c, 0xff, 0x00, 0x67, 0xcf, 0xf6, 0x7c, + 0xff, 0x00, 0x67, 0xcf, 0xf6, 0x7c, 0xff, 0x00, + 0x67, 0xcf, 0xf6, 0x7c, 0xff, 0x00, 0x67, 0xc9, + 0x26, 0xd4, 0x52, 0xeb, 0x21, 0x93, 0x6e, 0x0c, + 0x61, 0x0d, 0x49, 0x15, 0xad, 0xba, 0x00, 0x0d, + 0x48, 0x11, 0xda, 0xff, 0x00, 0x67, 0xcf, 0xf6, + 0x7c, 0xff, 0x00, 0x67, 0xcf, 0xf6, 0x7c, 0xff, + 0x00, 0x67, 0xcf, 0xf6, 0x7c, 0xac, 0x55, 0x0d, + 0x04, 0x57, 0xa5, 0x03, 0xee, 0x98, 0xf3, 0x24, + 0xb0, 0x00, 0xa0, 0x2b, 0x8e, 0x80, 0x3b, 0x2f, + 0xf2, 0xd1, 0xc0, 0x4e, 0x29, 0x44, 0x82, 0x48, + 0x50, 0xa2, 0x4b, 0x02, 0x2e, 0xa1, 0x53, 0x28, + 0x28, 0x50, 0x96, 0x2d, 0x7a, 0x2c, 0xfd, 0x05, + 0x05, 0xc0, 0x76, 0x3f, 0xe3, 0x1b, 0xee, 0xfe, + 0xbb, 0xff, 0x00, 0x38, 0xdd, 0x76, 0x75, 0xdf, + 0xf9, 0xc7, 0x87, 0xa9, 0xda, 0x73, 0xbd, 0x71, + 0xf8, 0x09, 0xe5, 0xbc, 0x9e, 0x47, 0xa6, 0x05, + 0xc0, 0x76, 0x3f, 0xe3, 0x1a, 0xd3, 0x53, 0xc9, + 0xad, 0xee, 0x63, 0x5c, 0xd7, 0xd3, 0x5f, 0xe3, + 0x11, 0xe3, 0x35, 0xba, 0xec, 0xeb, 0xbf, 0xf3, + 0x86, 0x00, 0x44, 0xed, 0x8c, 0x32, 0x66, 0x4b, + 0x42, 0x80, 0xdc, 0x60, 0x0c, 0x59, 0xc4, 0x44, + 0x94, 0x58, 0x95, 0x94, 0xab, 0xb8, 0x76, 0x1a, + 0x1d, 0xe1, 0xd0, 0x70, 0x10, 0x80, 0x0f, 0x21, + 0x37, 0xbe, 0x35, 0x86, 0xb3, 0x83, 0x59, 0x79, + 0x9e, 0x6c, 0xfe, 0x03, 0xcb, 0xe9, 0x89, 0x34, + 0xa3, 0xcb, 0xbd, 0xfb, 0xfe, 0xa7, 0x42, 0xa8, + 0x6c, 0x21, 0x4b, 0x48, 0xd6, 0x09, 0x05, 0x29, + 0x57, 0xff, 0x00, 0x14, 0x82, 0x31, 0x7a, 0x0c, + 0xc3, 0x06, 0xe8, 0x1c, 0x30, 0x41, 0x40, 0x55, + 0x2e, 0xce, 0xef, 0x63, 0x07, 0x48, 0x22, 0x7d, + 0x22, 0xb5, 0x6a, 0xd5, 0xab, 0x56, 0xad, 0x5a, + 0xb5, 0x6a, 0xd5, 0xab, 0x56, 0xad, 0x5a, 0xb5, + 0x6a, 0xd0, 0x15, 0x90, 0x2e, 0x99, 0xd7, 0x40, + 0x4a, 0xf4, 0x01, 0x5e, 0x02, 0xe7, 0x80, 0xc0, + 0x4f, 0x83, 0x6e, 0xd6, 0xb6, 0x1d, 0x6d, 0xfe, + 0xdf, 0x9f, 0x08, 0x3c, 0x83, 0xfa, 0x24, 0x14, + 0xa9, 0x18, 0xfc, 0x8b, 0xdb, 0x23, 0xab, 0xf9, + 0x7d, 0xb2, 0x3a, 0xbf, 0x97, 0xdb, 0x26, 0x90, + 0x50, 0x78, 0x84, 0x20, 0xde, 0xa5, 0x78, 0x29, + 0xce, 0x02, 0x56, 0x08, 0xce, 0x24, 0xd3, 0x72, + 0x20, 0xa4, 0xec, 0x8a, 0x45, 0x35, 0x19, 0x85, + 0x5d, 0x08, 0x21, 0x28, 0x0d, 0x9a, 0xde, 0x01, + 0xf4, 0x86, 0xdd, 0x40, 0x50, 0x96, 0x0d, 0x2d, + 0xc0, 0xd3, 0xaa, 0x87, 0x0d, 0x00, 0xc8, 0xf8, + 0x8b, 0x4f, 0x13, 0x18, 0x92, 0x4c, 0xa8, 0xa3, + 0xfa, 0x5e, 0x7c, 0x05, 0xac, 0xd7, 0x36, 0x44, + 0x4d, 0x94, 0x40, 0x4e, 0xd5, 0xc3, 0x5e, 0xfd, + 0x99, 0x96, 0xd0, 0xeb, 0xde, 0xfc, 0x8e, 0xb8, + 0x3c, 0x41, 0xc4, 0x23, 0x9e, 0x3d, 0x4c, 0x01, + 0x38, 0x8e, 0x46, 0x18, 0xdd, 0x42, 0x0e, 0xda, + 0x38, 0x04, 0x30, 0xe9, 0x51, 0x0c, 0xac, 0x00, + 0xe9, 0x27, 0x5a, 0xac, 0x99, 0x6a, 0x17, 0x1e, + 0x27, 0x57, 0xa3, 0xc0, 0x43, 0x53, 0x34, 0x9c, + 0x95, 0xb3, 0xe2, 0x00, 0x87, 0xd5, 0x02, 0xa0, + 0x8a, 0x18, 0x16, 0xa9, 0x8a, 0x94, 0x2e, 0x50, + 0xe9, 0x04, 0x55, 0x02, 0xe1, 0xa2, 0x55, 0x34, + 0xe8, 0x92, 0xa1, 0x0a, 0x62, 0x2d, 0x89, 0x91, + 0xd5, 0xfc, 0xbe, 0xd9, 0x1d, 0x5f, 0xcb, 0xed, + 0x9d, 0xa7, 0xdd, 0xed, 0x96, 0xe0, 0x88, 0xd3, + 0x46, 0x2f, 0x3b, 0x29, 0xa2, 0xbf, 0xf6, 0xe0, + 0xdb, 0x0e, 0x43, 0x3c, 0x0d, 0x36, 0x87, 0x8f, + 0xa6, 0x47, 0xc1, 0xff, 0x00, 0x71, 0x27, 0x83, + 0xd1, 0xfe, 0x1c, 0x9e, 0x8f, 0xc1, 0xef, 0x87, + 0x29, 0xcd, 0x61, 0x00, 0xa2, 0xef, 0xa5, 0x7e, + 0xd8, 0x3a, 0xba, 0xc3, 0x78, 0xb4, 0x34, 0x94, + 0x48, 0x81, 0x11, 0x6b, 0x43, 0x86, 0xa0, 0xdb, + 0xb5, 0x2d, 0x91, 0x28, 0xca, 0x8a, 0x78, 0x20, + 0xde, 0x4b, 0x61, 0xff, 0x00, 0x71, 0x44, 0xe9, + 0x59, 0x93, 0x20, 0x44, 0x22, 0x54, 0x10, 0x63, + 0xae, 0xad, 0xeb, 0x01, 0x08, 0x2e, 0x30, 0xc6, + 0x0d, 0xa5, 0xc0, 0x41, 0x60, 0x08, 0x9d, 0x83, + 0xe8, 0xac, 0x31, 0x18, 0xb2, 0x70, 0x0c, 0xbd, + 0xdd, 0xf0, 0x3f, 0x0b, 0x30, 0x02, 0x80, 0x26, + 0x4e, 0xd6, 0x98, 0xa3, 0x7e, 0xc3, 0x15, 0xe0, + 0x25, 0xe9, 0x4f, 0x86, 0xc3, 0x21, 0x29, 0x08, + 0x46, 0xc0, 0xd0, 0x4e, 0x52, 0x70, 0x0c, 0x89, + 0xc8, 0x80, 0x03, 0x06, 0x86, 0x8c, 0x10, 0xd7, + 0x68, 0x95, 0xc0, 0x29, 0xfe, 0xcd, 0x24, 0x99, + 0xde, 0xea, 0x26, 0xde, 0x51, 0x9a, 0xf7, 0xd0, + 0xb9, 0xd2, 0xef, 0x2b, 0x90, 0x16, 0x59, 0xd7, + 0x28, 0x05, 0x55, 0x44, 0x4d, 0x82, 0xaa, 0xae, + 0x4f, 0x47, 0xe0, 0xf7, 0xc9, 0x7c, 0x1f, 0x83, + 0xdf, 0x23, 0xe0, 0xff, 0x00, 0xb8, 0x74, 0xc8, + 0xd4, 0x9e, 0x09, 0xe0, 0xbd, 0x3b, 0x7f, 0xb7, + 0x93, 0xeb, 0x9c, 0xdc, 0x70, 0x8d, 0x6b, 0x19, + 0x14, 0x20, 0x85, 0x36, 0x3b, 0x11, 0x42, 0x3c, + 0x22, 0x69, 0x1f, 0x04, 0xe7, 0x3c, 0x87, 0xe3, + 0xb6, 0x79, 0x0f, 0xc7, 0x6c, 0x74, 0x8c, 0x0b, + 0x9a, 0xc3, 0x1d, 0xa5, 0x2b, 0x64, 0x70, 0xed, + 0x40, 0xab, 0x5a, 0x08, 0x27, 0x62, 0x20, 0xec, + 0x2e, 0x28, 0xd5, 0x7b, 0x23, 0xe7, 0x56, 0x73, + 0xc4, 0xa0, 0xdb, 0x17, 0x14, 0x0b, 0x08, 0x81, + 0x95, 0x81, 0x54, 0x91, 0xa9, 0x2e, 0x8f, 0x1c, + 0xae, 0xe7, 0x65, 0x61, 0x1e, 0x3a, 0x32, 0x19, + 0xcc, 0x44, 0xf3, 0x0c, 0x12, 0xbc, 0x08, 0x10, + 0xc3, 0xa6, 0xb9, 0x1b, 0xb4, 0x09, 0x0a, 0xc6, + 0x10, 0x67, 0x8f, 0x30, 0xee, 0x38, 0xad, 0x96, + 0x0a, 0xc5, 0x85, 0xe3, 0x11, 0x2e, 0x68, 0x4a, + 0x08, 0x8e, 0x40, 0x5a, 0x40, 0x2e, 0x8c, 0x07, + 0x35, 0xc1, 0x0c, 0x59, 0x1d, 0x4a, 0x1a, 0x08, + 0x01, 0x07, 0x9b, 0x43, 0x1b, 0xea, 0xe7, 0xb3, + 0xa0, 0xdd, 0xe6, 0x4c, 0x66, 0xe7, 0x2e, 0x15, + 0x0b, 0xdb, 0xa0, 0x02, 0xf8, 0x3c, 0x10, 0x10, + 0x04, 0x59, 0x4d, 0x25, 0xd8, 0x49, 0xf2, 0x08, + 0x64, 0x9a, 0x9d, 0x0d, 0x48, 0xb4, 0x0b, 0xce, + 0x69, 0x9f, 0x30, 0x70, 0xb3, 0xfd, 0xc3, 0x93, + 0x3c, 0x87, 0xe3, 0xb6, 0x79, 0x0f, 0xc7, 0x6c, + 0xf2, 0x1f, 0x8e, 0xd8, 0x4b, 0x7d, 0x20, 0x06, + 0x62, 0xac, 0x5c, 0x08, 0xf4, 0xaf, 0xfb, 0x70, + 0x63, 0x9c, 0x00, 0x1f, 0x60, 0x1f, 0x4b, 0x7e, + 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, + 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, + 0xea, 0xaa, 0xaa, 0xaf, 0x2a, 0xd5, 0xee, 0xbf, + 0xfc, 0xe9, 0xff, 0xc4, 0x00, 0x2b, 0x10, 0x01, + 0x00, 0x02, 0x01, 0x02, 0x05, 0x03, 0x04, 0x03, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x11, 0x21, 0x31, 0x51, 0x10, 0x61, 0x91, + 0xd1, 0xf0, 0x20, 0x41, 0xc1, 0x71, 0xa1, 0xe1, + 0xf1, 0x30, 0x40, 0xb1, 0x81, 0x50, 0x60, 0xff, + 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x3f, + 0x10, 0x74, 0xf4, 0x05, 0xdb, 0xb1, 0xab, 0xf4, + 0x36, 0xd5, 0xce, 0x95, 0x6b, 0x66, 0xb4, 0xc2, + 0xce, 0x2e, 0x47, 0x1a, 0xf4, 0xff, 0x00, 0xe2, + 0x65, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, + 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, + 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, + 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, + 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, + 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, + 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, + 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, + 0xbb, 0x2c, 0x94, 0x9b, 0x97, 0x11, 0xd6, 0xb2, + 0x99, 0x01, 0x34, 0x96, 0x27, 0x99, 0xf7, 0xbc, + 0xe4, 0x2a, 0x38, 0x8a, 0x62, 0x9a, 0xc8, 0x35, + 0xf4, 0xaa, 0xc7, 0xe2, 0x56, 0x06, 0x58, 0x05, + 0xde, 0x86, 0xb2, 0xab, 0xf7, 0x9e, 0x1d, 0xf3, + 0x3c, 0x3b, 0xe6, 0x78, 0x77, 0xcc, 0xf0, 0xef, + 0x99, 0xe1, 0xdf, 0x33, 0xc3, 0xbe, 0x67, 0x87, + 0x7c, 0xcf, 0x0e, 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, + 0xbf, 0xe6, 0x3a, 0x05, 0x7a, 0x58, 0xdf, 0x56, + 0x78, 0x77, 0xcc, 0xf0, 0xef, 0x99, 0xe1, 0xdf, + 0x33, 0xc3, 0xbe, 0x67, 0x87, 0x7c, 0xcf, 0x0e, + 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, 0x3b, 0xe6, 0x78, + 0x77, 0xcc, 0xf0, 0xef, 0x99, 0xe1, 0xdf, 0x33, + 0xc3, 0xbe, 0x60, 0xed, 0x08, 0xec, 0x3b, 0xd0, + 0x62, 0x6d, 0x20, 0xec, 0x9b, 0xd1, 0x67, 0x87, + 0x7c, 0xcf, 0x0e, 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, + 0x3b, 0xe6, 0x78, 0x77, 0xcc, 0xf0, 0xef, 0x99, + 0xe1, 0xdf, 0x33, 0xc3, 0xbe, 0x67, 0x87, 0x7c, + 0xcf, 0x0e, 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, 0x3b, + 0xe6, 0x78, 0x77, 0xcc, 0xf0, 0xef, 0x99, 0xe1, + 0xdf, 0x33, 0xc3, 0xbe, 0x67, 0x87, 0x7c, 0xcf, + 0x0e, 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, 0x3b, 0xe6, + 0x78, 0x77, 0xcc, 0xf0, 0xef, 0x99, 0xe1, 0xdf, + 0x33, 0xc3, 0xbe, 0x67, 0x87, 0x7c, 0xcf, 0x0e, + 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, 0x3b, 0xe6, 0x78, + 0x77, 0xcc, 0xf0, 0xef, 0x99, 0xe1, 0xdf, 0x33, + 0xc3, 0xbe, 0x67, 0x87, 0x7c, 0xcf, 0x0e, 0xf9, + 0x9e, 0x1d, 0xf3, 0x3c, 0x3b, 0xe6, 0x78, 0x77, + 0xcc, 0xf0, 0xef, 0x99, 0xe1, 0xdf, 0x33, 0xc3, + 0xbe, 0x67, 0x87, 0x7c, 0xcf, 0x0e, 0xf9, 0x9e, + 0x1d, 0xf3, 0x3c, 0x3b, 0xe6, 0x78, 0x77, 0xcc, + 0xf0, 0xef, 0x99, 0xe1, 0xdf, 0x33, 0xc3, 0xbe, + 0x63, 0x6f, 0x5c, 0xc9, 0x4d, 0xb6, 0x5c, 0x34, + 0xc1, 0xe7, 0x1c, 0x3b, 0x57, 0xcb, 0x29, 0xf8, + 0x1f, 0xae, 0x9c, 0xfc, 0x66, 0xdc, 0x59, 0xdc, + 0x2b, 0xde, 0x71, 0x22, 0xf0, 0xcd, 0x9e, 0x05, + 0xca, 0xab, 0xd2, 0x49, 0x6d, 0xb0, 0xe2, 0x42, + 0x1a, 0x0b, 0xb8, 0xc5, 0x80, 0xe3, 0x7c, 0x67, + 0xe8, 0xaa, 0x1f, 0x95, 0x8d, 0xed, 0x81, 0x0b, + 0xf0, 0x47, 0x18, 0xdc, 0x1b, 0xe5, 0x62, 0x0b, + 0xb8, 0x0b, 0x08, 0x15, 0x6d, 0xec, 0x87, 0x78, + 0x01, 0xc8, 0x22, 0x90, 0xca, 0x5a, 0x3b, 0x1c, + 0xf6, 0x1e, 0xca, 0xf0, 0xca, 0x57, 0x02, 0xb9, + 0x34, 0xc5, 0x6c, 0xb6, 0x5e, 0x8c, 0x19, 0xf1, + 0xa5, 0x89, 0xe4, 0xc1, 0x09, 0x59, 0x4d, 0xbf, + 0xe9, 0x77, 0x99, 0xc4, 0x0d, 0xad, 0xe5, 0xc2, + 0x6c, 0xda, 0x02, 0x1a, 0x2e, 0x36, 0x16, 0x7d, + 0x02, 0xc8, 0xee, 0x81, 0x37, 0x80, 0x25, 0x70, + 0x3f, 0x3e, 0x4e, 0x11, 0xaf, 0xe9, 0x70, 0x65, + 0x7f, 0x8b, 0x96, 0xc9, 0xb5, 0x6b, 0x1b, 0x89, + 0x90, 0xaa, 0xa8, 0x4c, 0x38, 0x7d, 0xf8, 0x13, + 0x1c, 0x7d, 0x5b, 0xcb, 0x0b, 0x35, 0x82, 0x92, + 0x5a, 0x4a, 0x52, 0x6c, 0x7c, 0x07, 0x20, 0x6c, + 0xc9, 0x9d, 0x4f, 0x92, 0x6e, 0x19, 0x1e, 0x10, + 0xdb, 0x6e, 0x1e, 0xcf, 0x71, 0x7a, 0x65, 0xa6, + 0x3e, 0x06, 0xbf, 0xf7, 0x67, 0x64, 0xd3, 0x68, + 0xdd, 0x1f, 0xd5, 0x07, 0x09, 0x7c, 0x4f, 0x61, + 0x02, 0x00, 0x10, 0x6c, 0x4f, 0x4c, 0xe7, 0x04, + 0xb6, 0x12, 0x45, 0xe0, 0xe9, 0x5a, 0x84, 0x01, + 0xcb, 0xa5, 0x81, 0x82, 0x6e, 0x42, 0x5d, 0x02, + 0x08, 0x7e, 0xa3, 0x00, 0x44, 0x02, 0xb4, 0x5d, + 0xee, 0x69, 0xb6, 0x22, 0xcc, 0xd9, 0xd6, 0x52, + 0xf2, 0xe8, 0x5d, 0x4e, 0xe1, 0x42, 0x85, 0x88, + 0xac, 0xd3, 0xd1, 0x25, 0xa4, 0x04, 0x33, 0x6b, + 0x5a, 0xd0, 0xb1, 0x2d, 0x36, 0x47, 0x2d, 0x1e, + 0x80, 0x99, 0x06, 0x8e, 0x76, 0xa5, 0xa1, 0x02, + 0x8e, 0xd4, 0x58, 0x6f, 0x1c, 0x3f, 0x60, 0x2f, + 0xad, 0x76, 0xe2, 0xde, 0x59, 0xa4, 0x21, 0x47, + 0x95, 0x53, 0x64, 0x25, 0x36, 0xe1, 0x12, 0x2f, + 0xf1, 0x92, 0x43, 0xb1, 0x29, 0xa0, 0x8a, 0x14, + 0xa2, 0x93, 0xec, 0xbf, 0xe8, 0x5c, 0xb9, 0x72, + 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, + 0xcb, 0x97, 0x03, 0x07, 0xb2, 0x46, 0x2d, 0x2c, + 0xea, 0x3a, 0x99, 0xd3, 0xd5, 0x66, 0xcd, 0x9b, + 0x36, 0x74, 0xa6, 0x06, 0xe1, 0xc4, 0x19, 0x5e, + 0xc0, 0xb0, 0x13, 0x3d, 0x41, 0x8d, 0x64, 0xfa, + 0xf7, 0x07, 0xd5, 0x66, 0xcd, 0x9b, 0x36, 0x69, + 0x8b, 0x81, 0x13, 0xab, 0x1a, 0x98, 0xac, 0xa5, + 0x62, 0xf8, 0x6d, 0xf2, 0xfb, 0xe7, 0x8c, 0xda, + 0x0c, 0x68, 0xf2, 0x4b, 0xe8, 0xce, 0x57, 0x52, + 0x72, 0xba, 0x90, 0xb5, 0xd5, 0xb1, 0x9c, 0xa6, + 0x9f, 0xf6, 0x30, 0xab, 0x98, 0x13, 0x45, 0x99, + 0xf7, 0x3a, 0xe3, 0x52, 0xc4, 0x0a, 0x81, 0x20, + 0x42, 0xe7, 0xc6, 0x03, 0x24, 0x65, 0x4a, 0x2a, + 0x03, 0x03, 0x52, 0x98, 0x9f, 0x3f, 0x4c, 0x49, + 0x23, 0x87, 0x27, 0xcf, 0xdd, 0x90, 0xb6, 0xb0, + 0xa0, 0x73, 0x65, 0x7c, 0x91, 0x85, 0x87, 0xfb, + 0x7f, 0x5e, 0xb9, 0x12, 0x0e, 0x64, 0xa4, 0x11, + 0x7e, 0x2f, 0xa1, 0x98, 0x1a, 0x9f, 0x30, 0x3b, + 0x03, 0x94, 0x00, 0x15, 0x40, 0x9a, 0x80, 0x25, + 0xc6, 0x97, 0x1b, 0x7c, 0x63, 0x69, 0x01, 0x69, + 0x38, 0xbd, 0x98, 0x4f, 0xc2, 0xb0, 0x01, 0x7d, + 0xe4, 0x95, 0x9d, 0xd2, 0x9f, 0x96, 0x88, 0xa7, + 0x79, 0xe9, 0xa4, 0xdc, 0xed, 0xce, 0x15, 0x6a, + 0x98, 0xf1, 0xea, 0xef, 0xfc, 0x4c, 0xee, 0x05, + 0x54, 0x71, 0x39, 0x4d, 0x73, 0x10, 0x67, 0x39, + 0xd1, 0x0e, 0x4b, 0x3b, 0x41, 0xee, 0xea, 0xd8, + 0xfe, 0x3a, 0x79, 0x0d, 0x1d, 0xd8, 0xb6, 0x54, + 0xb2, 0x9a, 0xc6, 0x04, 0xa5, 0xc3, 0x57, 0x4c, + 0x3c, 0x5b, 0x69, 0x32, 0x8f, 0x3a, 0xbd, 0xe3, + 0xf0, 0x01, 0xc8, 0xc9, 0x01, 0xd6, 0x88, 0x0e, + 0xab, 0x54, 0x33, 0x00, 0x55, 0xc1, 0xd4, 0x1a, + 0xf7, 0x4f, 0x88, 0x66, 0x89, 0xc4, 0x61, 0x8b, + 0x88, 0x66, 0x44, 0x40, 0xc4, 0x6a, 0xc0, 0x1b, + 0x70, 0x8d, 0xbb, 0xd4, 0x55, 0x00, 0x16, 0x29, + 0x49, 0xe1, 0x8f, 0x23, 0x14, 0x64, 0x45, 0xc5, + 0xc5, 0x10, 0xb4, 0x70, 0x3c, 0xc6, 0x5e, 0x34, + 0xb3, 0x37, 0xb0, 0xc1, 0x85, 0xab, 0xce, 0x99, + 0x72, 0x4b, 0xe8, 0x68, 0x6a, 0x21, 0x03, 0x75, + 0x58, 0x0a, 0x51, 0x16, 0x52, 0xd9, 0xbc, 0xb1, + 0x0a, 0x7f, 0x44, 0x1f, 0xba, 0x0a, 0x66, 0xb6, + 0xe9, 0xd3, 0xf8, 0x9c, 0xae, 0xa4, 0xe5, 0x75, + 0x27, 0x2b, 0xa9, 0x39, 0x5d, 0x49, 0xca, 0xea, + 0x4e, 0x57, 0x52, 0x72, 0xba, 0x93, 0x95, 0xd4, + 0x9c, 0xae, 0xa4, 0xe5, 0x75, 0x27, 0x2b, 0xa9, + 0x18, 0xb5, 0x5d, 0xe3, 0xd1, 0x7d, 0x8e, 0x5f, + 0x10, 0x75, 0xbb, 0xc7, 0x6c, 0xc7, 0xfc, 0xe7, + 0xf9, 0x20, 0xd1, 0x4e, 0x20, 0x07, 0x86, 0xe1, + 0x0b, 0x29, 0xa7, 0x0d, 0xbb, 0xf9, 0xb4, 0x18, + 0x90, 0xdc, 0xc1, 0x33, 0x04, 0x53, 0xba, 0xb0, + 0x8f, 0xe1, 0x9a, 0xaa, 0x50, 0x7d, 0x37, 0xb1, + 0x75, 0xd5, 0x89, 0x60, 0xa9, 0x60, 0xc4, 0xe6, + 0x0c, 0xf2, 0x25, 0x16, 0x1b, 0xf0, 0xfa, 0x70, + 0x12, 0x44, 0x72, 0x69, 0x61, 0x1c, 0x0d, 0x2b, + 0x8d, 0xa3, 0x68, 0x9a, 0x61, 0xff, 0x00, 0xe2, + 0x03, 0xf6, 0xd6, 0x04, 0x3b, 0x13, 0xc0, 0x80, + 0x36, 0x98, 0x77, 0x32, 0x02, 0x3c, 0x69, 0x58, + 0x3f, 0x28, 0xc6, 0x82, 0x55, 0xf7, 0x60, 0x3e, + 0xc7, 0xbe, 0xce, 0x98, 0xc3, 0xee, 0x6c, 0xca, + 0x36, 0x3a, 0x12, 0x8d, 0x8e, 0x84, 0x42, 0x9c, + 0x1a, 0x3e, 0xc4, 0x03, 0x79, 0x71, 0x46, 0x0d, + 0x12, 0x6b, 0xa9, 0xea, 0x50, 0xc7, 0xf0, 0x07, + 0xdd, 0x41, 0x6b, 0x44, 0xc8, 0x33, 0x5c, 0x21, + 0x81, 0xbc, 0x6a, 0x40, 0x98, 0x06, 0xcd, 0xcc, + 0x26, 0x02, 0x3a, 0x5b, 0x5d, 0x5c, 0xf6, 0x55, + 0xc7, 0x3e, 0xe9, 0x4b, 0xe0, 0x4e, 0x23, 0x25, + 0x48, 0x34, 0x8f, 0xa3, 0x12, 0x36, 0x74, 0xae, + 0xb5, 0xa8, 0xf7, 0xfa, 0x59, 0x7a, 0x59, 0xac, + 0x3d, 0xd8, 0xc5, 0x1f, 0x6a, 0x49, 0x74, 0x5d, + 0xf0, 0x6e, 0xac, 0xd1, 0xcf, 0xcc, 0xc6, 0xb2, + 0x1e, 0x89, 0xd4, 0xc9, 0x7f, 0x02, 0x39, 0x45, + 0x81, 0x01, 0x32, 0xfa, 0x58, 0x20, 0xe5, 0x85, + 0xba, 0x2d, 0xb0, 0xb5, 0x4b, 0xc9, 0x30, 0xcf, + 0xa1, 0x58, 0xb7, 0x4f, 0x68, 0xff, 0x00, 0x89, + 0x0e, 0x85, 0xe3, 0x5c, 0x49, 0xf9, 0x7d, 0xf3, + 0xc6, 0x6d, 0xe8, 0x30, 0x5a, 0xcf, 0x3e, 0x5f, + 0x34, 0x44, 0x6f, 0x96, 0x79, 0x06, 0xb6, 0xb4, + 0x56, 0xf3, 0xb2, 0x95, 0x53, 0x65, 0x5c, 0xfe, + 0xb7, 0xeb, 0x15, 0x55, 0x25, 0x11, 0xdb, 0x43, + 0x72, 0x8b, 0xc3, 0x66, 0x8f, 0xa7, 0x42, 0x16, + 0xdf, 0xca, 0x69, 0x5b, 0x97, 0xde, 0x6a, 0xe9, + 0xa3, 0xbb, 0xc3, 0xc0, 0x32, 0x7e, 0x98, 0x24, + 0x51, 0xf8, 0x84, 0x97, 0x4f, 0xd0, 0x78, 0x62, + 0xc9, 0xed, 0x21, 0x78, 0x5f, 0x32, 0xcb, 0xe0, + 0x5f, 0xf1, 0x0d, 0x61, 0xb8, 0xe4, 0x2e, 0x6f, + 0x22, 0xe8, 0x62, 0xe7, 0xed, 0xf6, 0xbe, 0x07, + 0xd1, 0x3e, 0x74, 0x9a, 0x98, 0x6b, 0x37, 0xd7, + 0x5b, 0x53, 0x06, 0x85, 0x4a, 0xe0, 0x74, 0x5c, + 0x80, 0x49, 0x2a, 0x15, 0xe2, 0xcb, 0xa7, 0x33, + 0x0d, 0x8b, 0x11, 0x2e, 0x30, 0x5e, 0xfa, 0x8b, + 0x9a, 0x6e, 0xa5, 0xc5, 0x59, 0x87, 0xbf, 0x5d, + 0xe0, 0xf7, 0x25, 0x27, 0x46, 0xa3, 0x29, 0x49, + 0xe4, 0xc3, 0xaa, 0x7e, 0xeb, 0x76, 0x48, 0x4b, + 0xc1, 0x20, 0xce, 0x00, 0xa0, 0x2c, 0xca, 0x26, + 0xe2, 0x88, 0x00, 0xb4, 0x41, 0xb4, 0x82, 0x7c, + 0x32, 0xfc, 0x87, 0xa3, 0x1a, 0xcb, 0x0f, 0x01, + 0x32, 0x7c, 0x81, 0x0e, 0x99, 0x7b, 0xa8, 0x42, + 0x27, 0x11, 0x4a, 0x91, 0xab, 0xe9, 0x84, 0xc2, + 0x9f, 0x05, 0xea, 0x93, 0xc5, 0x35, 0x35, 0x87, + 0x95, 0xc7, 0x9c, 0xa1, 0x9f, 0x4a, 0x1e, 0x45, + 0x1d, 0x46, 0x3f, 0x70, 0x6a, 0xc8, 0x72, 0xeb, + 0x5e, 0x31, 0x1a, 0xda, 0xa6, 0x8a, 0xa4, 0x3f, + 0x0a, 0x36, 0x8b, 0xc7, 0x20, 0x15, 0xfa, 0x47, + 0xe2, 0x2f, 0x2e, 0x94, 0xef, 0x05, 0x40, 0xe1, + 0xaf, 0xb3, 0xb1, 0xa6, 0xe6, 0x9d, 0x57, 0x8b, + 0x20, 0x08, 0x01, 0x80, 0x50, 0x68, 0xc3, 0xdb, + 0xf1, 0x2c, 0xfe, 0x1d, 0x5c, 0x5c, 0xbf, 0x32, + 0x54, 0x48, 0xff, 0x00, 0x21, 0x5c, 0x26, 0x66, + 0x3b, 0xca, 0xb6, 0xd6, 0x85, 0x40, 0x24, 0x60, + 0xb1, 0x7c, 0x81, 0xb3, 0x93, 0xe5, 0x1a, 0x53, + 0x56, 0x2c, 0xd0, 0xbb, 0x79, 0xc0, 0x85, 0x9b, + 0x10, 0xab, 0x7f, 0x8a, 0x8c, 0xb0, 0x98, 0x0c, + 0xc9, 0x90, 0xa8, 0x84, 0x8b, 0x71, 0x62, 0xe1, + 0x13, 0x91, 0xb5, 0x84, 0x5e, 0xfa, 0x25, 0xd7, + 0xea, 0xb0, 0x4d, 0x3d, 0x15, 0x5f, 0x78, 0x6e, + 0xe7, 0xa7, 0xd3, 0xfc, 0x18, 0x63, 0xdc, 0xa7, + 0x21, 0x59, 0xd0, 0xc2, 0x7d, 0x05, 0xa9, 0xe8, + 0x8f, 0x02, 0x74, 0xac, 0x58, 0x5a, 0x20, 0x39, + 0x9b, 0x02, 0x24, 0x2d, 0xe9, 0x9c, 0x4f, 0xdb, + 0xd9, 0xc6, 0x96, 0xae, 0x1c, 0x01, 0x16, 0x2e, + 0x80, 0x30, 0x91, 0xbb, 0x27, 0xfd, 0x85, 0x7e, + 0xa3, 0x7c, 0x50, 0x20, 0x28, 0x26, 0xa1, 0x50, + 0x13, 0x86, 0xea, 0x79, 0xc6, 0x35, 0xf2, 0x6e, + 0x02, 0x0c, 0x6f, 0x2a, 0xde, 0x0b, 0x5d, 0x69, + 0x2e, 0x87, 0x34, 0x44, 0xde, 0xbe, 0xef, 0x05, + 0xf1, 0xb8, 0x58, 0xae, 0x26, 0x05, 0x9e, 0x19, + 0x2b, 0xc9, 0x52, 0x01, 0x2f, 0x71, 0x03, 0xef, + 0x82, 0xc6, 0x84, 0xb1, 0x7e, 0x79, 0x60, 0xdf, + 0x38, 0x29, 0xd0, 0x92, 0x2d, 0x20, 0x7b, 0x34, + 0x1e, 0x49, 0xc0, 0xa8, 0x40, 0xda, 0xb3, 0xcd, + 0xf2, 0x1a, 0xa4, 0xe0, 0x11, 0x20, 0xb2, 0xb5, + 0x70, 0x41, 0x07, 0x8c, 0x1a, 0x4e, 0x32, 0x6f, + 0x2c, 0xda, 0xea, 0x3f, 0xc1, 0x71, 0xd4, 0xcb, + 0xc7, 0xd2, 0x52, 0x0e, 0x31, 0x39, 0x0a, 0xe7, + 0x96, 0xbe, 0x06, 0xbd, 0x99, 0xd3, 0xd2, 0x71, + 0x15, 0xfc, 0x68, 0xa3, 0x90, 0x70, 0x41, 0xc0, + 0x97, 0x19, 0xa4, 0x22, 0x87, 0x2b, 0x4a, 0x05, + 0x55, 0xc1, 0x37, 0x97, 0xdf, 0x3c, 0x66, 0xde, + 0x83, 0x0b, 0xe1, 0x23, 0x86, 0x37, 0xab, 0xff, + 0x00, 0xcc, 0x43, 0x99, 0x82, 0x61, 0x0a, 0xa1, + 0x9d, 0xa5, 0x5f, 0xcc, 0x50, 0xbf, 0xa3, 0x26, + 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, 0x4c, + 0x99, 0x32, 0x64, 0xc9, 0x93, 0x25, 0x20, 0x40, + 0xa0, 0xd0, 0x0b, 0x4a, 0xc2, 0x1a, 0xb8, 0x0d, + 0x05, 0xc4, 0x1e, 0x12, 0x8d, 0x4f, 0x69, 0x05, + 0x11, 0x6c, 0x22, 0x07, 0x3a, 0x2a, 0x27, 0xd1, + 0xd4, 0xc8, 0x83, 0x08, 0x88, 0xa2, 0x3c, 0x0f, + 0xc8, 0x7b, 0xe1, 0x06, 0xe8, 0x89, 0x45, 0x50, + 0x23, 0xb9, 0xa8, 0xc7, 0x5f, 0xf5, 0x6c, 0x15, + 0xdc, 0x1f, 0xe8, 0x91, 0xa3, 0x46, 0x8d, 0x1a, + 0x34, 0x68, 0xd1, 0xa3, 0x46, 0x8d, 0x1a, 0x34, + 0x68, 0xd8, 0x0b, 0x00, 0x56, 0x00, 0x24, 0x80, + 0x03, 0x40, 0x05, 0x00, 0x7f, 0x40, 0x81, 0x02, + 0x04, 0x08, 0x10, 0x20, 0x40, 0x81, 0x02, 0x04, + 0x08, 0x10, 0x21, 0x7d, 0x5a, 0xd6, 0x9e, 0xc7, + 0xd3, 0xd4, 0x20, 0x40, 0x81, 0x02, 0x14, 0xe9, + 0x21, 0x6e, 0xbe, 0x88, 0x10, 0x20, 0x40, 0x41, + 0x3a, 0x82, 0xd0, 0x2d, 0x20, 0xc1, 0xa9, 0xc0, + 0x18, 0x4d, 0x0f, 0x26, 0x01, 0xd7, 0xa0, 0x20, + 0x08, 0x3e, 0xc4, 0x47, 0x03, 0xc4, 0x09, 0x87, + 0x00, 0x1a, 0x25, 0x80, 0x69, 0x2c, 0x6c, 0xb3, + 0x82, 0x6f, 0x2f, 0xbe, 0x78, 0xcd, 0xa1, 0x41, + 0x03, 0x98, 0xbf, 0x68, 0x9c, 0x9e, 0xa7, 0xb4, + 0xb2, 0xf4, 0x43, 0xce, 0xbb, 0x99, 0xfb, 0x88, + 0x46, 0xc8, 0x47, 0x3e, 0xca, 0x04, 0xa0, 0x4c, + 0xd0, 0xaf, 0x81, 0x68, 0xe0, 0x51, 0x6a, 0x82, + 0xd0, 0x65, 0x6a, 0x83, 0x2c, 0xc4, 0xa9, 0x5c, + 0x30, 0x6a, 0xd2, 0xb4, 0x59, 0x6d, 0x56, 0x61, + 0x25, 0xc6, 0x8a, 0x14, 0x5a, 0x24, 0x2d, 0x0b, + 0x43, 0x74, 0x2f, 0xb4, 0x39, 0x81, 0x66, 0x6b, + 0xe8, 0xa0, 0xb3, 0x65, 0x9c, 0xe5, 0x91, 0x38, + 0x9a, 0x18, 0xaf, 0x29, 0x09, 0xeb, 0x1e, 0xdd, + 0x57, 0x3b, 0x54, 0xff, 0x00, 0x38, 0x0f, 0x7e, + 0x4d, 0x38, 0xaa, 0xc8, 0xc4, 0x03, 0xf4, 0x22, + 0x0c, 0x39, 0x3d, 0x4f, 0x68, 0x02, 0x43, 0x47, + 0xb3, 0x6e, 0x11, 0x42, 0x3c, 0x14, 0x88, 0xe6, + 0x31, 0x9a, 0xdf, 0x03, 0x52, 0xad, 0x43, 0xfa, + 0x93, 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb3, + 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb3, 0x66, + 0xcd, 0x2f, 0x2e, 0xab, 0x2e, 0x91, 0xaf, 0x7a, + 0x12, 0x2d, 0x68, 0x59, 0xf5, 0x96, 0x37, 0x61, + 0x24, 0x19, 0xe5, 0x14, 0xd1, 0x70, 0x41, 0x40, + 0x2a, 0x40, 0x01, 0x55, 0x5a, 0x00, 0x32, 0xab, + 0x80, 0x32, 0xb1, 0xc9, 0xbe, 0xa3, 0x6a, 0x5c, + 0x3e, 0x6f, 0x2b, 0xfd, 0x49, 0xb3, 0x66, 0xcd, + 0x9b, 0x36, 0x6c, 0xd9, 0xb3, 0x66, 0xcd, 0x9b, + 0x36, 0x6c, 0xd9, 0xb3, 0x66, 0xcd, 0xb1, 0xbd, + 0x07, 0x94, 0xaf, 0x79, 0xa1, 0x3d, 0x0c, 0xac, + 0x25, 0x75, 0x54, 0x75, 0x4a, 0x2f, 0xe4, 0xa1, + 0x27, 0xe4, 0xc1, 0x00, 0x6c, 0xc0, 0xb4, 0xb1, + 0x1b, 0x36, 0xeb, 0x0d, 0x03, 0x2e, 0x17, 0xef, + 0x13, 0xcb, 0xef, 0x9e, 0x33, 0x6f, 0x48, 0x10, + 0x3b, 0xe4, 0x00, 0x5a, 0x1f, 0x4a, 0x59, 0x94, + 0x50, 0x5d, 0xd1, 0x45, 0x61, 0xda, 0xd9, 0x70, + 0xe1, 0xc2, 0x5e, 0x90, 0x23, 0x0e, 0xfc, 0xd7, + 0x15, 0x17, 0xab, 0x8d, 0x45, 0x82, 0xf4, 0xda, + 0x8c, 0xaf, 0x80, 0x1b, 0x13, 0xaf, 0x20, 0x06, + 0x98, 0xc4, 0x65, 0xac, 0x9c, 0xfa, 0x3e, 0xeb, + 0xff, 0x00, 0xf4, 0x2f, 0xf6, 0xd3, 0x63, 0x22, + 0xc5, 0xd1, 0x27, 0xa9, 0x29, 0x25, 0x61, 0x69, + 0xe8, 0x32, 0xe0, 0xe0, 0xc8, 0x34, 0x9e, 0xb5, + 0x29, 0x4a, 0x52, 0x95, 0x80, 0xcc, 0xf8, 0x52, + 0x1c, 0x42, 0x70, 0x44, 0x0a, 0xce, 0xdc, 0x0d, + 0xab, 0x09, 0xa7, 0xb7, 0x51, 0xc7, 0x95, 0x22, + 0x77, 0x0c, 0x0c, 0xf5, 0xba, 0xbb, 0x85, 0x65, + 0x11, 0x44, 0xae, 0x4a, 0x23, 0x80, 0x13, 0x9e, + 0xdc, 0xeb, 0x6e, 0xca, 0x0c, 0x2c, 0x2b, 0x5b, + 0xec, 0x71, 0x37, 0x58, 0xfc, 0x41, 0x90, 0xaa, + 0x2b, 0xae, 0x1b, 0xbb, 0xf0, 0x27, 0x44, 0x63, + 0xa9, 0x69, 0x4d, 0x12, 0x15, 0xe1, 0x4d, 0x4f, + 0x5a, 0x8a, 0x52, 0x94, 0xa5, 0x19, 0xb0, 0x55, + 0x64, 0xe8, 0xa0, 0xd8, 0x80, 0xaf, 0x10, 0x59, + 0xcc, 0x2b, 0x1c, 0x6f, 0x74, 0x22, 0x7b, 0x8b, + 0x1f, 0x2a, 0x07, 0x17, 0xa2, 0x36, 0x5a, 0x16, + 0xf1, 0x52, 0xaa, 0x25, 0xf1, 0x54, 0xc9, 0x49, + 0xfe, 0x38, 0xcb, 0xac, 0xbc, 0x5c, 0x08, 0x26, + 0xd6, 0xfe, 0xba, 0x55, 0xbf, 0x1b, 0x4b, 0x47, + 0x64, 0x5d, 0x71, 0x4b, 0x95, 0x80, 0x6f, 0x9e, + 0x1b, 0x55, 0x49, 0xdb, 0xae, 0x12, 0x8f, 0x39, + 0x9b, 0x38, 0x97, 0x5f, 0xf2, 0x04, 0xa0, 0x6b, + 0xaf, 0x2a, 0xea, 0x00, 0x1b, 0x6b, 0x04, 0x12, + 0x8f, 0x9c, 0x84, 0x51, 0x86, 0x02, 0x30, 0x13, + 0x6b, 0x3e, 0x9f, 0x66, 0xcd, 0x77, 0xf9, 0x52, + 0x25, 0xb8, 0x68, 0x85, 0x23, 0x6e, 0xa6, 0x88, + 0x0a, 0x9e, 0x69, 0x2d, 0x38, 0xae, 0x8a, 0x05, + 0x36, 0x85, 0x70, 0x9a, 0xb2, 0x55, 0x2d, 0xbb, + 0x89, 0x42, 0xbb, 0x94, 0xc4, 0x95, 0x0c, 0x75, + 0x00, 0xe9, 0xcf, 0x07, 0xc8, 0x39, 0xb7, 0xad, + 0x2e, 0x83, 0xcf, 0xa1, 0x82, 0xd0, 0x64, 0x0c, + 0xe0, 0xa2, 0xfc, 0x68, 0x50, 0x46, 0x3b, 0x7d, + 0x1d, 0x83, 0x2e, 0x8c, 0x3a, 0x2a, 0x25, 0x30, + 0x12, 0x28, 0x47, 0x35, 0xb9, 0xca, 0xb5, 0x29, + 0x6d, 0xad, 0xa9, 0x2f, 0xda, 0x54, 0xa0, 0x1c, + 0x14, 0xab, 0x04, 0x2f, 0x5b, 0x9a, 0x10, 0x32, + 0x8d, 0xa3, 0x55, 0xf0, 0x16, 0x7f, 0xcb, 0xef, + 0x9e, 0x33, 0x6f, 0x48, 0x10, 0x32, 0x56, 0xfc, + 0x25, 0x1c, 0x38, 0x5e, 0x67, 0xcf, 0xeb, 0x42, + 0x0e, 0xa3, 0x8d, 0x9f, 0xa1, 0x7c, 0x93, 0x2c, + 0xc9, 0x56, 0xa7, 0xf2, 0xc3, 0x84, 0xd7, 0x37, + 0x76, 0xcd, 0x13, 0xc5, 0x0b, 0x40, 0x1d, 0xad, + 0x9a, 0xa3, 0x3f, 0x06, 0xce, 0x1e, 0x2c, 0xd0, + 0x68, 0x57, 0xf4, 0x0c, 0xf8, 0x2d, 0x93, 0x03, + 0x02, 0xeb, 0xa6, 0x89, 0xd4, 0xca, 0x7e, 0x73, + 0xbc, 0xa7, 0xe7, 0x3b, 0xca, 0x7e, 0x73, 0xbc, + 0xa7, 0xe7, 0x3b, 0xca, 0x7e, 0x73, 0xbc, 0xa7, + 0xe7, 0x3b, 0xca, 0x7e, 0x73, 0xbc, 0x0c, 0x4c, + 0xc4, 0x1e, 0x02, 0x0c, 0x21, 0xb0, 0xd0, 0x07, + 0xe2, 0x67, 0xaf, 0x1f, 0x9e, 0xe5, 0x74, 0x75, + 0xeb, 0x82, 0xd7, 0x8d, 0xd4, 0x09, 0x32, 0x59, + 0x14, 0x23, 0x74, 0x4a, 0x34, 0xff, 0x00, 0xb4, + 0x2e, 0x0a, 0x00, 0x0c, 0xc0, 0xa3, 0x97, 0xd4, + 0x43, 0x95, 0x3a, 0x3c, 0x64, 0xe4, 0xbc, 0x20, + 0xa6, 0x81, 0x5d, 0xe5, 0x09, 0x92, 0xea, 0x78, + 0x39, 0x96, 0x41, 0x8c, 0x0e, 0xb3, 0x4d, 0x63, + 0x21, 0x42, 0x64, 0x1b, 0x0a, 0x28, 0x53, 0xf3, + 0x9d, 0xe5, 0x3f, 0x39, 0xde, 0x53, 0xf3, 0x9d, + 0xe5, 0x3f, 0x39, 0xde, 0x53, 0xf3, 0x9d, 0xe5, + 0x3f, 0x39, 0xde, 0x19, 0x34, 0x25, 0x1c, 0xbc, + 0xef, 0xdb, 0x37, 0x90, 0xf0, 0x96, 0x48, 0xfb, + 0xdc, 0x96, 0x60, 0x5c, 0xfb, 0x54, 0xa7, 0xe7, + 0x3b, 0xca, 0x7e, 0x73, 0xbc, 0x0d, 0x29, 0xe8, + 0x36, 0x9a, 0xa7, 0x51, 0x40, 0xde, 0x4a, 0x78, + 0x0a, 0x46, 0x35, 0xc3, 0x7c, 0x08, 0x8b, 0xe5, + 0x97, 0x68, 0x42, 0xf2, 0x7e, 0xd7, 0x63, 0xd4, + 0xd0, 0x75, 0xe2, 0xde, 0xfb, 0x2e, 0x11, 0x82, + 0x25, 0xd9, 0xb3, 0x44, 0x95, 0x3a, 0x80, 0x90, + 0x60, 0xa8, 0xd0, 0x21, 0xe6, 0xb5, 0xb2, 0x8e, + 0x3d, 0x48, 0xf6, 0x64, 0xe4, 0x96, 0x68, 0xc2, + 0xb9, 0xb6, 0x98, 0x1d, 0x5b, 0x44, 0xb4, 0xa7, + 0xd9, 0x83, 0x16, 0x9b, 0xba, 0xdf, 0xc3, 0x00, + 0xb3, 0x70, 0x46, 0xeb, 0xaa, 0x03, 0x9d, 0x61, + 0xea, 0xc0, 0xd2, 0xb6, 0x4e, 0xd4, 0xf7, 0x9a, + 0xe8, 0x9d, 0x4a, 0xdc, 0x5b, 0xa7, 0xda, 0xae, + 0xe5, 0xf8, 0x01, 0x34, 0x42, 0xb8, 0x13, 0xf7, + 0xe6, 0x49, 0xee, 0xbe, 0x03, 0xeb, 0x39, 0xde, + 0x15, 0x88, 0xe1, 0x00, 0x42, 0x15, 0xea, 0x90, + 0xa6, 0x71, 0x66, 0x2d, 0x86, 0x24, 0xa2, 0xc1, + 0x53, 0x3e, 0x7c, 0xf2, 0xb3, 0x9a, 0x46, 0xed, + 0x80, 0xc2, 0xad, 0x21, 0x66, 0xfc, 0xe5, 0x3f, + 0x39, 0xde, 0x53, 0xf3, 0x9d, 0xe5, 0x4c, 0x05, + 0xb6, 0x36, 0x09, 0x69, 0xd6, 0x97, 0x46, 0xf4, + 0xed, 0xc4, 0xd9, 0xff, 0x00, 0x2f, 0xbe, 0x78, + 0xcd, 0xa1, 0x20, 0x1a, 0xcd, 0xff, 0x00, 0x59, + 0x73, 0xbe, 0xc7, 0x68, 0xcd, 0xcf, 0x4b, 0x86, + 0x48, 0x55, 0x1c, 0xa1, 0x41, 0xb0, 0x34, 0x2a, + 0x05, 0x70, 0x45, 0x4e, 0x20, 0xec, 0x20, 0x0a, + 0x34, 0x00, 0x0a, 0x87, 0x44, 0xe0, 0xc8, 0x48, + 0x63, 0xa8, 0x10, 0x14, 0x2a, 0xfa, 0x02, 0x80, + 0x2f, 0x16, 0xad, 0x86, 0x65, 0x10, 0x68, 0x75, + 0xb4, 0x40, 0xa4, 0x5a, 0x5d, 0x76, 0xc6, 0xae, + 0x58, 0x45, 0x9c, 0x86, 0x47, 0x4a, 0x9b, 0xaa, + 0x6e, 0xea, 0xab, 0x37, 0xa5, 0x56, 0xb7, 0x78, + 0xa9, 0xec, 0x5c, 0x49, 0xbe, 0xed, 0x6a, 0x8a, + 0x19, 0x14, 0x9a, 0xf0, 0xc6, 0x90, 0x40, 0x1b, + 0xe0, 0xfb, 0x31, 0x7f, 0xcd, 0x13, 0x42, 0x99, + 0xec, 0x6c, 0x21, 0x55, 0x48, 0xc6, 0xc6, 0x3f, + 0xa9, 0x06, 0xf7, 0x00, 0x7b, 0xbf, 0xc0, 0x91, + 0x88, 0x3a, 0xa3, 0xfe, 0x46, 0xce, 0x52, 0xa1, + 0x7b, 0xec, 0x30, 0x1c, 0xa4, 0x3d, 0x09, 0x65, + 0xe0, 0xa3, 0xf0, 0xe8, 0x1f, 0xad, 0x6c, 0x44, + 0x0b, 0x16, 0x2c, 0x58, 0xb1, 0x62, 0xd1, 0xe5, + 0x16, 0x14, 0xd0, 0xbb, 0xaf, 0x31, 0x5e, 0xd5, + 0x16, 0x32, 0x24, 0x15, 0xac, 0x21, 0x79, 0x85, + 0x1e, 0xc4, 0x46, 0x17, 0x66, 0x1d, 0xd5, 0x00, + 0x2f, 0xa8, 0xc0, 0x02, 0x15, 0xb1, 0xfd, 0x5c, + 0xf2, 0x08, 0x72, 0x99, 0xd9, 0xb6, 0xdc, 0x82, + 0xb6, 0x5c, 0xe5, 0xca, 0xeb, 0x5c, 0xeb, 0x2f, + 0x0d, 0x4a, 0x26, 0x01, 0x1b, 0x13, 0x19, 0x1c, + 0x94, 0x61, 0xcc, 0xac, 0x48, 0x32, 0x1e, 0xac, + 0xa3, 0x0e, 0x29, 0x46, 0xbd, 0x3d, 0x42, 0xc5, + 0x8b, 0x16, 0x2c, 0x5f, 0xac, 0xff, 0x00, 0xde, + 0x08, 0x81, 0xc7, 0x72, 0xd5, 0xc8, 0xe6, 0x20, + 0x73, 0xfe, 0x57, 0xdf, 0xf0, 0x58, 0x76, 0x14, + 0x12, 0xcb, 0xb8, 0x16, 0xdc, 0x02, 0x4f, 0x89, + 0x5a, 0xc3, 0x74, 0x8b, 0x45, 0x8a, 0xc2, 0x98, + 0x21, 0x81, 0x4d, 0xa3, 0x09, 0x39, 0x41, 0xab, + 0xcd, 0x45, 0x84, 0x5c, 0x44, 0x45, 0x44, 0x70, + 0x88, 0xd1, 0x13, 0x52, 0x00, 0xa9, 0x36, 0x87, + 0x5a, 0xab, 0x41, 0x16, 0x80, 0xbd, 0x88, 0xba, + 0x6c, 0xae, 0x4e, 0xaf, 0x94, 0xc5, 0xd6, 0xc2, + 0xef, 0x37, 0x73, 0x51, 0x42, 0xf2, 0x76, 0xf6, + 0x69, 0xe6, 0x66, 0x7c, 0x96, 0x47, 0x7c, 0xd9, + 0x9c, 0xaa, 0xf3, 0x53, 0x2c, 0xd8, 0x72, 0x31, + 0x60, 0xd2, 0x96, 0x0b, 0x4d, 0x5e, 0x58, 0x08, + 0x32, 0x88, 0x01, 0xaa, 0xa0, 0xd6, 0x06, 0x14, + 0x60, 0xc4, 0xcb, 0xbd, 0x1c, 0x84, 0x64, 0x6c, + 0x96, 0x39, 0x1a, 0xc4, 0xbe, 0xc6, 0x34, 0x18, + 0xe0, 0x6c, 0x36, 0xce, 0x4c, 0x61, 0xce, 0xb3, + 0x77, 0x67, 0x27, 0x63, 0x36, 0x7d, 0x86, 0x95, + 0xa1, 0xb4, 0xcb, 0xb7, 0x1c, 0x8c, 0x68, 0xd9, + 0x2c, 0xf6, 0x6a, 0x59, 0x97, 0xb1, 0xf6, 0xfa, + 0x0a, 0xe4, 0xc0, 0xd1, 0x80, 0x3d, 0x88, 0x00, + 0x24, 0x08, 0x00, 0x69, 0x39, 0x31, 0x19, 0x2d, + 0xac, 0xb3, 0x27, 0x25, 0x6e, 0x66, 0xf7, 0x7f, + 0x74, 0xce, 0x17, 0x79, 0xbb, 0x88, 0x2c, 0x89, + 0x13, 0xed, 0x9b, 0xc3, 0xa3, 0x23, 0x9f, 0x16, + 0xd1, 0x87, 0xf0, 0x33, 0x38, 0xae, 0x6c, 0x55, + 0xa7, 0xd4, 0x6a, 0x08, 0xbd, 0x84, 0xad, 0x85, + 0x72, 0x51, 0x9a, 0x00, 0x24, 0x6d, 0x9a, 0x48, + 0x51, 0x95, 0xa5, 0x51, 0x91, 0x2e, 0xf4, 0x23, + 0xe5, 0xf7, 0xcf, 0x19, 0xb7, 0xa9, 0x42, 0x5c, + 0x72, 0x4d, 0x9f, 0xc6, 0xc2, 0xf2, 0x88, 0xf5, + 0xdc, 0xd8, 0x03, 0xa5, 0xe0, 0x0e, 0x28, 0xcc, + 0x90, 0x6d, 0xfe, 0xd0, 0xe7, 0x33, 0x59, 0xc5, + 0x98, 0x24, 0xab, 0x64, 0xb9, 0x78, 0x71, 0x49, + 0x54, 0x96, 0xc2, 0xe8, 0x6c, 0xaa, 0x52, 0x78, + 0x00, 0xbc, 0x1b, 0x86, 0xd3, 0x5c, 0x3e, 0x6a, + 0x13, 0xe0, 0x44, 0x77, 0x18, 0x64, 0x0e, 0x72, + 0x93, 0x96, 0x43, 0x85, 0x5c, 0xc5, 0x33, 0x45, + 0xa1, 0x60, 0xe0, 0x22, 0xad, 0xc7, 0xdf, 0x11, + 0xe6, 0x44, 0x4e, 0xa2, 0x44, 0x93, 0x46, 0x9e, + 0xf0, 0xb2, 0xf6, 0x0a, 0x49, 0xe3, 0x15, 0xfd, + 0x90, 0x58, 0x2a, 0x28, 0x88, 0xe8, 0x51, 0x4a, + 0x5d, 0x6b, 0xf8, 0x90, 0x5a, 0xfc, 0xd3, 0x1c, + 0xb9, 0xb1, 0xd2, 0xaa, 0xb5, 0x1a, 0x50, 0xe5, + 0xfe, 0x18, 0xbe, 0x0b, 0x67, 0x05, 0xea, 0x84, + 0x24, 0x01, 0xb9, 0x55, 0x2a, 0xfb, 0xab, 0x7e, + 0xab, 0xf7, 0xef, 0xdf, 0xbe, 0x33, 0x65, 0xf6, + 0x8b, 0x78, 0x19, 0xe0, 0x53, 0x11, 0x39, 0xac, + 0x80, 0xcf, 0xf3, 0xcd, 0x05, 0xe0, 0xf0, 0x4e, + 0xae, 0x53, 0xda, 0xbf, 0x37, 0x6b, 0x80, 0x3e, + 0xb1, 0x81, 0xe0, 0x47, 0x3b, 0x4c, 0x2d, 0xad, + 0x2a, 0x19, 0x95, 0x5a, 0xb7, 0xdc, 0x28, 0x49, + 0xb0, 0x35, 0xb9, 0x6a, 0xb9, 0x72, 0x06, 0xd0, + 0x83, 0x99, 0xe3, 0x18, 0x59, 0x0a, 0xca, 0x10, + 0x37, 0x8a, 0xed, 0xbc, 0x0a, 0x45, 0x73, 0x5d, + 0xd4, 0x4e, 0xa1, 0x4d, 0x77, 0xe2, 0x8a, 0xa9, + 0x96, 0x7c, 0xfa, 0xcb, 0xf7, 0xef, 0xdf, 0xbf, + 0x7c, 0xea, 0xba, 0x44, 0x16, 0x8d, 0x00, 0x16, + 0xe5, 0xa3, 0x5e, 0x05, 0xc6, 0x88, 0x02, 0x8e, + 0xa1, 0x46, 0xbf, 0xe7, 0xa2, 0xfd, 0xfb, 0xeb, + 0x90, 0x0f, 0x32, 0x38, 0x1d, 0x13, 0x62, 0x0c, + 0x11, 0x60, 0xd5, 0x98, 0x32, 0xe6, 0xb6, 0x5d, + 0xbb, 0xdc, 0x71, 0xb5, 0xda, 0x25, 0xe1, 0xed, + 0x30, 0x0f, 0xdc, 0x8d, 0x01, 0x0f, 0x92, 0x49, + 0x6d, 0x0a, 0x0c, 0x41, 0xcc, 0x30, 0xb9, 0xfd, + 0x20, 0x28, 0x2d, 0xb8, 0x53, 0x38, 0x79, 0x1a, + 0x4f, 0x13, 0x03, 0x02, 0x05, 0xc3, 0xdf, 0x4b, + 0x1e, 0xab, 0x58, 0xc0, 0xb9, 0xc5, 0x3e, 0x2b, + 0xcd, 0xd3, 0x86, 0x82, 0x43, 0xc6, 0x4e, 0x35, + 0x4e, 0x26, 0xaa, 0x67, 0x03, 0x2b, 0xc2, 0x3b, + 0x75, 0x4b, 0x4f, 0x4d, 0x8c, 0xb7, 0x9d, 0x94, + 0x20, 0x95, 0xaf, 0x9a, 0x36, 0x00, 0x6f, 0x22, + 0x3e, 0xb7, 0x32, 0x41, 0x9f, 0x03, 0x1c, 0x32, + 0x21, 0x95, 0x2f, 0x39, 0xd4, 0x7c, 0x0e, 0xfe, + 0x1e, 0xf8, 0x6a, 0xa3, 0x8a, 0x77, 0xa7, 0x29, + 0x7e, 0xfd, 0xf1, 0xe4, 0x04, 0x00, 0x08, 0x0c, + 0x00, 0x56, 0x07, 0xb0, 0x70, 0xcd, 0xa6, 0x47, + 0xcb, 0xef, 0x9e, 0x33, 0x68, 0x17, 0xa9, 0xc9, + 0x53, 0xa3, 0x28, 0xe7, 0xd5, 0xef, 0x0d, 0x6b, + 0xf3, 0x15, 0xea, 0x71, 0x37, 0x9a, 0x8c, 0x08, + 0x5a, 0x99, 0x32, 0x45, 0x19, 0x77, 0x3e, 0x14, + 0xae, 0xf6, 0xe2, 0x92, 0x20, 0xac, 0x02, 0x5e, + 0x38, 0x4e, 0xb3, 0x24, 0x1e, 0x7f, 0xd2, 0x21, + 0xa5, 0x72, 0x85, 0x1b, 0xc0, 0x84, 0x18, 0x37, + 0x0a, 0x27, 0x08, 0x99, 0xe5, 0x0a, 0xb9, 0x63, + 0xea, 0xbe, 0x46, 0xb3, 0xbe, 0x9d, 0xa7, 0x3c, + 0x18, 0x7a, 0xfc, 0x1e, 0x08, 0x21, 0xe1, 0x66, + 0x03, 0x86, 0x93, 0x28, 0x50, 0xac, 0x0a, 0xf8, + 0x0e, 0xd7, 0x4e, 0x5f, 0x32, 0x84, 0xca, 0x5a, + 0x3c, 0x43, 0x4c, 0x95, 0x9b, 0x30, 0x57, 0x4c, + 0x3b, 0x33, 0x09, 0x2b, 0xbf, 0x14, 0xb9, 0xe2, + 0x5f, 0x21, 0x60, 0xeb, 0x3f, 0x88, 0x68, 0x0d, + 0x06, 0x23, 0xd6, 0xa6, 0x81, 0x53, 0x11, 0x16, + 0x13, 0x79, 0x28, 0x03, 0xd9, 0x6b, 0xa9, 0x01, + 0xee, 0x7d, 0x67, 0x67, 0x3f, 0xe0, 0x5f, 0x19, + 0x4e, 0xdc, 0xdc, 0xa5, 0x54, 0x5a, 0xe4, 0x02, + 0x8c, 0x09, 0xf8, 0xca, 0x36, 0xa0, 0xb8, 0xfe, + 0x41, 0x60, 0x36, 0xf0, 0x3a, 0x84, 0x36, 0xc7, + 0xb3, 0xd4, 0x48, 0x6b, 0xac, 0xa9, 0x4a, 0xa6, + 0xc5, 0x47, 0x44, 0xb2, 0x80, 0xec, 0xa9, 0x69, + 0x7d, 0x48, 0x98, 0x22, 0x14, 0x86, 0xc7, 0x88, + 0x84, 0xc1, 0xe3, 0xa4, 0x01, 0x82, 0xa2, 0x16, + 0xd2, 0x8b, 0x60, 0x6a, 0xe9, 0xcb, 0x53, 0xe4, + 0xaf, 0x0c, 0x04, 0x79, 0xd2, 0xe4, 0xe1, 0xc1, + 0xd6, 0xb9, 0xc4, 0x72, 0x53, 0xb3, 0xf9, 0x7b, + 0x6c, 0x02, 0xe4, 0x8e, 0xc7, 0xdd, 0x89, 0x8d, + 0x4e, 0x0a, 0x46, 0xbf, 0x1b, 0x56, 0x9f, 0xc1, + 0x3a, 0x72, 0xd5, 0x53, 0x97, 0xc8, 0x44, 0x38, + 0x46, 0xe2, 0xdf, 0xf6, 0xaf, 0x41, 0xac, 0x15, + 0x79, 0x5f, 0x35, 0x2f, 0xe8, 0x42, 0xe7, 0xaf, + 0xbd, 0xa0, 0xd2, 0xb5, 0xf4, 0x27, 0xed, 0xad, + 0x69, 0x92, 0x67, 0xec, 0x15, 0x82, 0x58, 0x8d, + 0x89, 0x2a, 0xa7, 0x70, 0x13, 0x73, 0xfc, 0x55, + 0xcc, 0xe3, 0xc4, 0xe1, 0x84, 0x83, 0xae, 0xf3, + 0x09, 0x65, 0xf2, 0xb5, 0x60, 0x24, 0x89, 0x14, + 0x2c, 0x7b, 0x30, 0x52, 0x9d, 0x2d, 0x35, 0x9d, + 0xeb, 0xc6, 0x4d, 0x87, 0xe3, 0xe4, 0x86, 0x31, + 0xb9, 0x19, 0xd4, 0x85, 0xca, 0xa4, 0x65, 0xc3, + 0xbd, 0x53, 0x99, 0x53, 0x58, 0x16, 0x61, 0xcb, + 0x50, 0x37, 0x19, 0x37, 0x18, 0x24, 0x7f, 0x78, + 0xf5, 0x59, 0xfe, 0x77, 0x5d, 0x09, 0x8b, 0xab, + 0x9c, 0xaf, 0x5a, 0x79, 0x7d, 0xf3, 0xc6, 0x6d, + 0x08, 0x2c, 0x43, 0x76, 0x36, 0x6e, 0x75, 0x23, + 0x1a, 0xd1, 0xe0, 0x18, 0x51, 0xdb, 0x1d, 0xd0, + 0xfb, 0x47, 0xa6, 0x65, 0x39, 0x14, 0x2e, 0xa3, + 0x22, 0x85, 0x63, 0x6a, 0x98, 0x86, 0xd2, 0x21, + 0x7a, 0xb4, 0x2e, 0x25, 0x06, 0x80, 0x23, 0x45, + 0xa3, 0xac, 0x53, 0x2f, 0xb0, 0x45, 0xc8, 0x23, + 0x33, 0xfe, 0xe9, 0x88, 0xa5, 0xe9, 0x93, 0x06, + 0xc4, 0x02, 0xd2, 0x09, 0xd0, 0x57, 0x8c, 0xf1, + 0x43, 0x4c, 0x1f, 0x00, 0x7e, 0x70, 0x85, 0x76, + 0x0c, 0xa0, 0x05, 0x42, 0x15, 0x64, 0xa2, 0x30, + 0x06, 0x66, 0x05, 0x30, 0x35, 0x49, 0x07, 0x42, + 0x78, 0x4d, 0x76, 0xd2, 0x1c, 0x59, 0x07, 0x3a, + 0x9a, 0x27, 0xbc, 0x9f, 0x69, 0x94, 0xbc, 0x2f, + 0xe0, 0xc2, 0xe8, 0x08, 0xd4, 0x3e, 0xb1, 0xb3, + 0x82, 0xf7, 0x99, 0x29, 0x85, 0x6f, 0xf1, 0x00, + 0xa3, 0x1f, 0x56, 0xd1, 0xa3, 0x46, 0x92, 0x41, + 0x8e, 0xe1, 0x6f, 0xcc, 0x08, 0xee, 0x10, 0xc7, + 0x62, 0xd3, 0x85, 0x2d, 0xaf, 0x05, 0x2d, 0x84, + 0x13, 0x12, 0xc5, 0x28, 0xeb, 0xe7, 0xe4, 0x0a, + 0x67, 0xf1, 0x77, 0xbd, 0xc9, 0xb1, 0xe6, 0x83, + 0x08, 0x8b, 0x40, 0x7e, 0x80, 0x34, 0x47, 0x71, + 0xfa, 0xb5, 0xae, 0x80, 0xd7, 0x01, 0xf4, 0x65, + 0xe8, 0x79, 0x8c, 0x48, 0xdc, 0x87, 0x0f, 0x2e, + 0x30, 0x0c, 0xae, 0x17, 0x4c, 0x11, 0x6b, 0x15, + 0x46, 0xe4, 0xd8, 0xe1, 0xa4, 0x12, 0xd4, 0x1d, + 0xd5, 0xb0, 0x10, 0x37, 0x6c, 0x6b, 0xcc, 0x02, + 0xfb, 0xf9, 0x18, 0x80, 0x20, 0x0b, 0x1a, 0x2c, + 0x7e, 0xb6, 0xf5, 0x34, 0x68, 0xd1, 0xa3, 0x43, + 0x56, 0xc9, 0x5c, 0x92, 0xaa, 0x3a, 0x52, 0xce, + 0x09, 0x83, 0x57, 0x02, 0x7e, 0xb6, 0x17, 0x4e, + 0xb8, 0xfe, 0x36, 0xad, 0x47, 0x0b, 0xbd, 0x07, + 0xd7, 0xd3, 0xb8, 0x4e, 0x79, 0x87, 0x80, 0x16, + 0xb0, 0x69, 0x8f, 0xf1, 0xeb, 0x18, 0xb5, 0x2e, + 0x07, 0xb1, 0x17, 0xd3, 0x1b, 0x04, 0x18, 0x2c, + 0xcd, 0x16, 0x55, 0x4d, 0x4a, 0x24, 0x4e, 0x0a, + 0x89, 0xda, 0x5d, 0xa2, 0xab, 0x38, 0xcc, 0x3a, + 0x58, 0x70, 0xf3, 0x44, 0xcf, 0x41, 0x32, 0x4e, + 0x80, 0x0a, 0xa8, 0x45, 0x2a, 0x2e, 0x36, 0x8e, + 0x5e, 0x16, 0x1c, 0x1a, 0xca, 0x91, 0x71, 0x84, + 0x46, 0x25, 0xa5, 0x19, 0x5f, 0x77, 0x4c, 0xa3, + 0xfb, 0xaa, 0xee, 0xcd, 0xe2, 0x8e, 0x91, 0xf6, + 0xa2, 0x89, 0x99, 0xe8, 0x89, 0x8c, 0x66, 0x20, + 0x72, 0x2a, 0xc8, 0x90, 0xf4, 0x95, 0x9d, 0xfc, + 0xe7, 0xa0, 0xf8, 0xa9, 0x52, 0xa6, 0x2c, 0x2d, + 0xcb, 0x3e, 0xb2, 0xd8, 0x84, 0x24, 0x54, 0x64, + 0x88, 0x91, 0x13, 0x16, 0xf0, 0x87, 0x27, 0x38, + 0x5b, 0x18, 0xb4, 0x47, 0x6a, 0x5e, 0x5f, 0x7c, + 0xf1, 0x9b, 0x40, 0x1b, 0x41, 0xdd, 0x9d, 0x1b, + 0x1d, 0x08, 0x42, 0x90, 0x36, 0xf8, 0x0a, 0x4a, + 0x52, 0x44, 0x8a, 0xc8, 0xb5, 0x17, 0x45, 0xa1, + 0x9a, 0x2f, 0x48, 0x40, 0x0a, 0xc9, 0x42, 0xa4, + 0xb4, 0x12, 0xb5, 0xad, 0xe1, 0xd4, 0xb9, 0x2e, + 0x5c, 0x1e, 0xe0, 0x10, 0x07, 0x1d, 0x30, 0x76, + 0x51, 0xf6, 0x62, 0xb1, 0x01, 0xfa, 0xdc, 0x75, + 0xb1, 0x05, 0x63, 0x5f, 0x01, 0x5d, 0xb6, 0x67, + 0xfb, 0x8b, 0xc3, 0xf6, 0x38, 0xcc, 0x8f, 0xb0, + 0x4c, 0x31, 0xd1, 0x1c, 0x97, 0x06, 0x94, 0xfe, + 0x8b, 0x4e, 0xeb, 0xe8, 0xd2, 0x22, 0x52, 0xde, + 0x2c, 0xa3, 0x9b, 0x08, 0x2d, 0x18, 0x2c, 0xac, + 0x72, 0xd9, 0xa0, 0x80, 0xe4, 0x87, 0x41, 0xf0, + 0x41, 0xf6, 0x8e, 0x9a, 0xef, 0x4c, 0x04, 0xe4, + 0x33, 0xd4, 0x5c, 0xd9, 0x65, 0x84, 0xad, 0x57, + 0xf1, 0x50, 0x3f, 0xc5, 0x99, 0xe8, 0xc1, 0x57, + 0x92, 0x37, 0x9b, 0x06, 0x81, 0xf4, 0x8d, 0x9e, + 0xa5, 0xe7, 0x7c, 0xf3, 0xeb, 0xfa, 0x84, 0x3a, + 0xad, 0x59, 0xed, 0x9a, 0xc9, 0xcd, 0x32, 0xa0, + 0x56, 0x9d, 0x1f, 0xa7, 0x12, 0x93, 0x4c, 0x30, + 0x35, 0x47, 0x59, 0x87, 0xa7, 0xa5, 0xe8, 0xc5, + 0x14, 0xeb, 0x8b, 0xc2, 0x00, 0xe0, 0x40, 0x95, + 0xe6, 0x4b, 0x8e, 0x8f, 0x2e, 0x3c, 0x09, 0xa2, + 0xc6, 0xd8, 0x37, 0xfd, 0xef, 0x9f, 0x44, 0x7f, + 0xf3, 0x41, 0x71, 0x91, 0x16, 0xa3, 0x29, 0x6c, + 0xcd, 0x8a, 0xa1, 0xcd, 0x78, 0xf3, 0x2a, 0x37, + 0xd6, 0x64, 0x41, 0x63, 0x95, 0xe3, 0x54, 0x89, + 0x6c, 0x2b, 0x2f, 0x1e, 0xc8, 0x21, 0xf2, 0x27, + 0xb1, 0x8c, 0x68, 0x44, 0x00, 0xf2, 0xdb, 0x7f, + 0x01, 0x62, 0xd9, 0x4d, 0x00, 0xb5, 0x81, 0x50, + 0x17, 0x41, 0x41, 0x43, 0x54, 0x16, 0x37, 0x65, + 0xfc, 0x80, 0x2b, 0x1e, 0xa7, 0x5f, 0x83, 0x16, + 0x19, 0x01, 0x6d, 0x46, 0x43, 0x56, 0xa0, 0xc2, + 0x14, 0x14, 0x81, 0x17, 0x03, 0x14, 0x96, 0x08, + 0xd3, 0x6d, 0x14, 0xf0, 0x89, 0xe0, 0xa4, 0x8d, + 0x36, 0xee, 0x90, 0x06, 0x74, 0xf8, 0x09, 0x2c, + 0x55, 0x95, 0xa8, 0x09, 0x77, 0xba, 0x45, 0x54, + 0x46, 0x08, 0xb3, 0x10, 0x98, 0x74, 0xf2, 0xe0, + 0x40, 0x8f, 0x42, 0x85, 0x69, 0xa3, 0x67, 0x52, + 0x08, 0xb6, 0xba, 0x08, 0x06, 0xa7, 0x8d, 0x61, + 0xb1, 0x29, 0x56, 0x6f, 0xd5, 0xc5, 0x64, 0x6e, + 0x90, 0x88, 0xc2, 0x74, 0xf1, 0x76, 0x40, 0xc2, + 0xfb, 0xf7, 0x94, 0xb7, 0xd9, 0x1f, 0xca, 0xe3, + 0x06, 0xb0, 0xd3, 0x79, 0x36, 0x5e, 0x52, 0xa8, + 0x3f, 0xd3, 0x4e, 0xcb, 0x7b, 0xd9, 0x1b, 0x95, + 0xa4, 0x75, 0x08, 0x05, 0x6d, 0x13, 0xd6, 0x00, + 0xc8, 0x65, 0x86, 0x0c, 0xc6, 0xd0, 0x9e, 0x67, + 0x04, 0xb8, 0x2d, 0x50, 0xd1, 0xf4, 0x02, 0x7b, + 0x39, 0xbf, 0xb8, 0xe9, 0x6a, 0x30, 0xd1, 0xd2, + 0x03, 0x8f, 0xcf, 0x19, 0xd4, 0x94, 0x24, 0xb2, + 0xf6, 0x7a, 0xe1, 0x1c, 0x41, 0xa2, 0x72, 0x81, + 0x36, 0x18, 0x29, 0xf9, 0x96, 0x25, 0xee, 0x4e, + 0x20, 0xf8, 0x78, 0xff, 0x00, 0x4a, 0x91, 0x80, + 0xb8, 0xeb, 0x7c, 0xe6, 0xab, 0x19, 0x30, 0xbf, + 0xf6, 0x21, 0xd4, 0x44, 0xdc, 0x6f, 0x85, 0x32, + 0x0d, 0x40, 0xe5, 0xcb, 0xcb, 0xef, 0x9e, 0x33, + 0x68, 0x21, 0x6f, 0xe8, 0xaf, 0x4c, 0x67, 0x31, + 0xf0, 0xe5, 0x08, 0x45, 0xf3, 0xc4, 0xea, 0x87, + 0x0c, 0x53, 0xae, 0x01, 0xd7, 0x4b, 0x62, 0xc3, + 0x92, 0x02, 0xea, 0x35, 0x89, 0xa1, 0xcd, 0x1f, + 0xa9, 0x12, 0xed, 0x25, 0x80, 0x09, 0x89, 0x40, + 0x86, 0x20, 0x5c, 0x11, 0x59, 0x9f, 0x4e, 0x4a, + 0xb1, 0xde, 0xca, 0xcf, 0xa2, 0x1e, 0xc0, 0x85, + 0x8d, 0xd9, 0xac, 0xc1, 0x39, 0x0d, 0x56, 0x91, + 0xa9, 0x14, 0xdc, 0x19, 0x08, 0xda, 0xfc, 0xb3, + 0xa8, 0x27, 0x65, 0xa3, 0xa3, 0xc4, 0x69, 0x35, + 0x88, 0x1e, 0x92, 0x48, 0x80, 0x0e, 0xc6, 0xc8, + 0xb2, 0x96, 0x36, 0x44, 0x8f, 0x92, 0x9b, 0x30, + 0x85, 0x90, 0xcb, 0x5f, 0x02, 0xa7, 0x7d, 0xd6, + 0x07, 0xb3, 0x1e, 0xab, 0x32, 0x49, 0x14, 0x9a, + 0x7c, 0x47, 0x07, 0x43, 0x45, 0x0e, 0x0a, 0xaf, + 0xc4, 0x3e, 0x86, 0xad, 0x4b, 0x8f, 0xf0, 0x18, + 0x2b, 0xd2, 0x5e, 0x9d, 0xcd, 0x40, 0xfc, 0x43, + 0x97, 0xa9, 0x78, 0x72, 0xb4, 0x03, 0x1f, 0xa5, + 0x41, 0x54, 0x67, 0xcf, 0x9f, 0x6e, 0xf9, 0xdc, + 0xb1, 0xe5, 0x31, 0x4c, 0x3a, 0xdc, 0xd3, 0xbc, + 0x70, 0xc4, 0xe2, 0x4b, 0xc1, 0xba, 0x81, 0x50, + 0x6b, 0x20, 0x03, 0x8a, 0xaf, 0x9e, 0x94, 0x1e, + 0xf7, 0xcc, 0x35, 0x3f, 0x7f, 0x0a, 0xb4, 0xa5, + 0x65, 0x4e, 0x04, 0xb6, 0xb9, 0x92, 0x86, 0x17, + 0x0d, 0xee, 0xab, 0x28, 0x31, 0xda, 0x35, 0xd6, + 0x05, 0x2a, 0x52, 0xc2, 0x91, 0x5a, 0x4c, 0x82, + 0x1e, 0x84, 0x54, 0xd2, 0xca, 0x88, 0xa2, 0x72, + 0xbc, 0x75, 0xd1, 0xb1, 0x2c, 0x84, 0x9b, 0x0d, + 0x04, 0x0e, 0x6a, 0x5b, 0xb7, 0xa1, 0xdc, 0x80, + 0x30, 0xe2, 0x02, 0x45, 0x80, 0xb0, 0x02, 0x16, + 0x1b, 0x08, 0x00, 0x01, 0x40, 0x00, 0x06, 0x80, + 0x7a, 0x8f, 0x9f, 0x3e, 0x7c, 0xf9, 0xce, 0x62, + 0x82, 0xcd, 0xf9, 0xf0, 0x8e, 0x70, 0xe2, 0xcd, + 0xd8, 0x12, 0x93, 0xcb, 0xf6, 0x9e, 0xd0, 0x5b, + 0xf5, 0x45, 0x5d, 0x8a, 0x66, 0x83, 0x67, 0xa2, + 0x37, 0x05, 0xb2, 0x11, 0xc6, 0x24, 0x43, 0x33, + 0x94, 0xac, 0x8b, 0x11, 0xd0, 0x53, 0x0b, 0x82, + 0x9e, 0x76, 0x31, 0xd4, 0x55, 0xa9, 0xc9, 0x0f, + 0xda, 0x83, 0xeb, 0x53, 0x8a, 0x80, 0x59, 0x59, + 0x60, 0x80, 0x0d, 0x84, 0x32, 0xf8, 0x3a, 0x9b, + 0xe3, 0x09, 0xd1, 0x99, 0x36, 0x43, 0x78, 0xd8, + 0xfd, 0x57, 0xec, 0x11, 0x48, 0x90, 0x40, 0xb8, + 0x7d, 0x2b, 0xbb, 0x29, 0x66, 0x67, 0xe8, 0xb0, + 0x53, 0xe0, 0xee, 0x42, 0x3d, 0xd5, 0x51, 0xa8, + 0x12, 0x2f, 0x22, 0x35, 0x74, 0x56, 0x24, 0xb2, + 0x11, 0x14, 0x72, 0xf7, 0x04, 0x85, 0x7a, 0x59, + 0x10, 0x34, 0x42, 0x83, 0x5b, 0xf3, 0x56, 0x71, + 0x01, 0x76, 0xeb, 0x99, 0xd0, 0x50, 0xa8, 0x59, + 0x4b, 0x36, 0x41, 0xee, 0x18, 0x7c, 0xe6, 0x62, + 0x72, 0xd3, 0x9e, 0x52, 0xf5, 0x50, 0xc4, 0x2a, + 0x32, 0xcc, 0x28, 0xc5, 0x0b, 0x62, 0x2d, 0x94, + 0xdd, 0x7a, 0x41, 0x0d, 0x69, 0x43, 0x05, 0x14, + 0x59, 0x5a, 0x79, 0x0a, 0x82, 0x6a, 0xb4, 0xb3, + 0x7b, 0x27, 0x7c, 0xcd, 0xe1, 0x84, 0x30, 0x00, + 0xd8, 0x10, 0x2b, 0x81, 0x6d, 0xa5, 0x72, 0x9c, + 0x64, 0xb8, 0xa4, 0xcf, 0x49, 0xb2, 0x88, 0xd4, + 0x3f, 0x83, 0xa7, 0x1c, 0x9f, 0xe0, 0x91, 0x36, + 0x9c, 0xdb, 0xd6, 0x30, 0x4c, 0x5b, 0xd0, 0x5e, + 0x9d, 0xc2, 0x55, 0xbe, 0x78, 0x9d, 0x60, 0x9e, + 0x5f, 0x7c, 0xf1, 0x9b, 0x7a, 0x9e, 0xcb, 0x57, + 0xb0, 0x4a, 0xe1, 0xc0, 0xa2, 0xbf, 0xc5, 0x8b, + 0x6a, 0x10, 0x52, 0x12, 0x1a, 0xcb, 0x6e, 0x5a, + 0x73, 0x84, 0x57, 0x15, 0x6e, 0x5b, 0xb8, 0x98, + 0x1a, 0x03, 0x04, 0x12, 0x2f, 0x92, 0x5c, 0x07, + 0x3e, 0xaf, 0xa2, 0x91, 0x96, 0xce, 0x65, 0xc0, + 0x0d, 0xa1, 0x35, 0x30, 0x1a, 0x05, 0x13, 0xe4, + 0x73, 0x39, 0xd3, 0x8f, 0xad, 0x43, 0x8c, 0x58, + 0xb1, 0x50, 0xec, 0x56, 0xea, 0x51, 0x6b, 0x5e, + 0xb5, 0xb7, 0x18, 0x0f, 0x45, 0xe6, 0x15, 0x1b, + 0x53, 0x6b, 0x91, 0x50, 0x15, 0x00, 0xca, 0xb4, + 0x06, 0xec, 0xd5, 0x56, 0xd9, 0x55, 0x7b, 0x91, + 0xb8, 0x83, 0x02, 0x49, 0x74, 0xca, 0x50, 0xb1, + 0xb3, 0x21, 0x49, 0x35, 0x2a, 0x17, 0x86, 0xa8, + 0x93, 0x60, 0x22, 0x48, 0x66, 0xb7, 0x0a, 0x44, + 0x0c, 0x28, 0x4d, 0x6f, 0x0b, 0x95, 0x14, 0xce, + 0x11, 0x62, 0x93, 0xa8, 0x4d, 0xf5, 0xa8, 0x7d, + 0xa5, 0x08, 0x8b, 0xc1, 0x6c, 0xfe, 0x05, 0xf1, + 0x8d, 0x26, 0x48, 0xea, 0x3d, 0x1a, 0x20, 0x64, + 0x65, 0x48, 0x8a, 0x38, 0x0c, 0xe2, 0x01, 0xed, + 0xf4, 0xad, 0x0f, 0x2f, 0x68, 0x71, 0x1d, 0x0d, + 0x10, 0x0d, 0x9d, 0x45, 0xd1, 0x31, 0xc3, 0x2e, + 0x46, 0x0f, 0xfc, 0xe0, 0xb9, 0x77, 0xb0, 0xf4, + 0x51, 0x35, 0xa1, 0xcc, 0x90, 0xa3, 0x31, 0x2c, + 0x25, 0x41, 0x86, 0x6d, 0xef, 0x2c, 0x41, 0xe4, + 0x14, 0xd3, 0x16, 0x90, 0x41, 0x36, 0x6f, 0xa2, + 0x6a, 0xfc, 0x1b, 0x0e, 0xc1, 0x98, 0x6a, 0xf0, + 0xd3, 0x77, 0x64, 0x20, 0x0f, 0x12, 0x57, 0x75, + 0x97, 0x6f, 0x21, 0x1d, 0x6b, 0x32, 0x89, 0x02, + 0xfd, 0x23, 0x7f, 0xfc, 0x18, 0x1b, 0x7a, 0xa5, + 0xe5, 0xf7, 0xcf, 0x19, 0xb7, 0xf0, 0x3d, 0xb1, + 0x58, 0xf2, 0xc7, 0xdb, 0xc3, 0x46, 0xac, 0x8e, + 0xa1, 0xd1, 0x1a, 0xe6, 0x6b, 0x5f, 0xff, 0x00, + 0x61, 0x04, 0x17, 0x82, 0x74, 0x94, 0x3d, 0x39, + 0xb0, 0x50, 0xf6, 0xea, 0xf2, 0xb3, 0xcc, 0xdb, + 0x9d, 0x62, 0xb2, 0xc2, 0xf5, 0x96, 0x56, 0xa0, + 0xd8, 0xd9, 0xfa, 0xd1, 0x22, 0xa0, 0x03, 0xda, + 0x4a, 0xd0, 0x6d, 0x06, 0xf7, 0x6b, 0x81, 0xd2, + 0x0d, 0x6b, 0x04, 0xd2, 0xca, 0xad, 0x39, 0xac, + 0xae, 0x61, 0x78, 0xaa, 0xe2, 0xac, 0xc3, 0xae, + 0x68, 0xe1, 0xa3, 0x27, 0x0f, 0x23, 0xb6, 0x78, + 0x2d, 0x9c, 0x17, 0x8c, 0xe2, 0x25, 0xfd, 0x9b, + 0xfe, 0x64, 0x60, 0xbe, 0x84, 0x48, 0x91, 0x22, + 0x56, 0xd9, 0xaa, 0x6e, 0x7a, 0x3b, 0xc0, 0xd6, + 0x46, 0x36, 0x20, 0x0b, 0x2a, 0x09, 0x9e, 0x54, + 0xac, 0xaa, 0xf8, 0x5c, 0x25, 0x38, 0xdd, 0xd5, + 0x18, 0xe2, 0x98, 0x5f, 0xa1, 0xe3, 0x36, 0x40, + 0x22, 0x26, 0xe5, 0x58, 0x78, 0x10, 0x95, 0xc6, + 0xa5, 0x0b, 0x8b, 0x11, 0xa1, 0x70, 0x61, 0xa0, + 0xa2, 0x53, 0x3d, 0x3a, 0xcd, 0x5e, 0x88, 0x49, + 0xcc, 0x0a, 0x45, 0x99, 0xb0, 0xf5, 0x32, 0xd8, + 0xe7, 0x6f, 0xe3, 0x2f, 0xa5, 0x19, 0x9d, 0xee, + 0x27, 0xc4, 0xb8, 0x6d, 0x73, 0x34, 0xc6, 0x2c, + 0xbb, 0xf6, 0x7a, 0x0c, 0x61, 0xc4, 0x04, 0x1a, + 0x52, 0x2e, 0xe2, 0xdc, 0x01, 0x1c, 0x8e, 0x45, + 0xea, 0xa2, 0x44, 0x89, 0x12, 0x27, 0x06, 0xb1, + 0x0c, 0x88, 0x8c, 0xe2, 0x4b, 0x55, 0xcf, 0xed, + 0x7a, 0xa5, 0xe5, 0xf7, 0xcf, 0x19, 0xb4, 0x56, + 0x6c, 0xf3, 0x8f, 0xbf, 0x2d, 0xbf, 0xa9, 0xde, + 0x05, 0xd4, 0xf8, 0x66, 0xca, 0xce, 0x81, 0x80, + 0xde, 0x8e, 0x1c, 0x38, 0x70, 0x42, 0x2e, 0xf3, + 0xab, 0xd4, 0xe6, 0x20, 0xd3, 0x45, 0x20, 0xc4, + 0x6f, 0xdb, 0x28, 0xc7, 0xcb, 0xf5, 0x06, 0x06, + 0xda, 0xe5, 0x67, 0xc6, 0x7a, 0xb4, 0x90, 0x3e, + 0x66, 0xa3, 0x81, 0xab, 0x6a, 0x2b, 0xe8, 0xa3, + 0x87, 0x0e, 0x0c, 0x46, 0x88, 0x0b, 0x15, 0x20, + 0x37, 0x2e, 0x22, 0x41, 0x84, 0xfa, 0x31, 0x2d, + 0x87, 0xc1, 0xa0, 0xce, 0x09, 0x00, 0x17, 0x4b, + 0x41, 0x2d, 0xf4, 0x5d, 0xc0, 0x31, 0x76, 0x99, + 0xb9, 0x40, 0xea, 0x30, 0x1a, 0xc9, 0xda, 0x1e, + 0xea, 0xf5, 0xf7, 0xad, 0x71, 0x11, 0x63, 0xd4, + 0x67, 0x73, 0xf2, 0x1a, 0x98, 0x42, 0x63, 0x46, + 0xca, 0x38, 0x8a, 0x28, 0xca, 0xf1, 0x9f, 0x0e, + 0x0a, 0xb6, 0xbb, 0x85, 0x73, 0xe3, 0xef, 0xc0, + 0x35, 0x13, 0x53, 0xf5, 0x8d, 0x9c, 0x17, 0x8b, + 0x36, 0xc5, 0x06, 0x1a, 0x1f, 0x72, 0xed, 0x7a, + 0xed, 0xdb, 0xb7, 0x6e, 0xdd, 0xbb, 0x77, 0x20, + 0x67, 0x43, 0xea, 0xa1, 0x7f, 0x45, 0xc2, 0x46, + 0x04, 0xfb, 0xb4, 0x3e, 0x5c, 0x29, 0xdb, 0x78, + 0xe8, 0x7c, 0x15, 0x41, 0xe3, 0x3c, 0x28, 0x3d, + 0x07, 0x2f, 0x28, 0x4b, 0xe2, 0x20, 0xe2, 0xbc, + 0x09, 0xde, 0x6d, 0x1a, 0xdc, 0xf4, 0xfe, 0x1c, + 0x20, 0xb9, 0x6e, 0xdd, 0xbb, 0x76, 0xed, 0xdb, + 0xb6, 0x71, 0xb1, 0xed, 0xcb, 0x3e, 0xdc, 0xc2, + 0xbf, 0xb3, 0x15, 0x82, 0xaf, 0x15, 0x69, 0x2a, + 0x55, 0x8c, 0x99, 0x47, 0xa5, 0x3c, 0xbe, 0xf9, + 0xe3, 0x36, 0xe2, 0x56, 0xf9, 0x58, 0xb4, 0xde, + 0x8d, 0x98, 0x59, 0x41, 0xa5, 0x38, 0x48, 0x52, + 0x17, 0xd6, 0x16, 0x9a, 0x66, 0x8c, 0xa5, 0xd7, + 0xd4, 0x4a, 0x10, 0x08, 0x90, 0x62, 0x86, 0x54, + 0x58, 0x28, 0xd4, 0x0c, 0x41, 0x7e, 0xfd, 0xbb, + 0xe1, 0x9c, 0x0a, 0x34, 0x28, 0x17, 0xa2, 0x59, + 0xa2, 0x33, 0x96, 0x3c, 0xa6, 0x84, 0x01, 0xb5, + 0xc2, 0x23, 0x8d, 0x6d, 0xf0, 0x22, 0x19, 0x25, + 0x48, 0x5c, 0x02, 0x45, 0x74, 0x43, 0xf3, 0x05, + 0x2b, 0xa3, 0xf9, 0xd0, 0xd8, 0xa0, 0x08, 0xfb, + 0x60, 0x2a, 0xd9, 0xc6, 0x70, 0x48, 0x25, 0x6b, + 0x22, 0x10, 0x27, 0x4f, 0xe6, 0x10, 0x3c, 0x34, + 0x48, 0x62, 0x3d, 0x0a, 0xe4, 0x42, 0x89, 0x31, + 0x91, 0xec, 0x08, 0xc6, 0x2b, 0x3c, 0x2a, 0x43, + 0xcc, 0xc5, 0xc7, 0xc4, 0x15, 0x84, 0xd6, 0xe7, + 0x02, 0xb7, 0x50, 0x7a, 0xc0, 0xa0, 0x24, 0xc9, + 0x1a, 0xfd, 0xe3, 0xa5, 0x1a, 0x6a, 0x6d, 0x04, + 0x54, 0xab, 0x4b, 0x0f, 0x10, 0x7d, 0xc2, 0x18, + 0x3c, 0x3f, 0x8c, 0xfd, 0x6b, 0xae, 0xfc, 0x19, + 0xca, 0x72, 0xb1, 0xa1, 0x9c, 0xe2, 0x11, 0x1f, + 0x61, 0x2a, 0x6e, 0x01, 0x6e, 0xdf, 0xdf, 0x7e, + 0xce, 0x0a, 0x08, 0x24, 0x28, 0xfa, 0xad, 0xf0, + 0x5a, 0x9b, 0x16, 0x95, 0xcf, 0x05, 0xb3, 0xf8, + 0x97, 0xc6, 0x3c, 0x7d, 0x92, 0xba, 0xa2, 0xb3, + 0x44, 0xd5, 0xdd, 0x1e, 0x53, 0x5b, 0x77, 0x95, + 0x69, 0x43, 0x58, 0xdd, 0x9d, 0xf6, 0xb7, 0x37, + 0x9d, 0x2e, 0x0d, 0x40, 0x25, 0xe6, 0xb5, 0x0f, + 0xe2, 0x57, 0x71, 0x36, 0x68, 0x60, 0x28, 0x1f, + 0xf8, 0x96, 0x36, 0xc1, 0xa7, 0xcb, 0xef, 0x9e, + 0x33, 0x6e, 0x25, 0x60, 0x61, 0x8d, 0x9d, 0xb0, + 0xa3, 0x0d, 0x91, 0xe3, 0x89, 0x4e, 0x00, 0xdc, + 0x9b, 0x02, 0xee, 0x8f, 0x86, 0x64, 0x6f, 0xe1, + 0x55, 0x9d, 0x45, 0x88, 0x2f, 0x71, 0x7d, 0x27, + 0xe2, 0x12, 0x81, 0x12, 0x55, 0x09, 0x4a, 0xbe, + 0x3e, 0x2b, 0x5b, 0xdc, 0xf5, 0x4b, 0x04, 0xd2, + 0x87, 0x78, 0x47, 0x06, 0x2f, 0x38, 0x89, 0x19, + 0x7b, 0x37, 0x10, 0xe5, 0x89, 0x29, 0xf7, 0xe0, + 0x68, 0xb7, 0x8d, 0xb0, 0x4e, 0x19, 0xdf, 0xc4, + 0x88, 0x4f, 0x83, 0xcb, 0x55, 0xc3, 0x08, 0x03, + 0x87, 0x62, 0x98, 0xea, 0xc5, 0x4c, 0x18, 0xfe, + 0x78, 0xc7, 0x1f, 0x73, 0xd4, 0x10, 0x0b, 0x86, + 0xb6, 0x0a, 0xf0, 0xf0, 0x59, 0xfc, 0xcb, 0x49, + 0x6c, 0x86, 0xa4, 0x4c, 0xc5, 0x48, 0x7b, 0x06, + 0xc4, 0xbd, 0x45, 0xfa, 0xf9, 0x36, 0x50, 0x90, + 0xe5, 0xa0, 0xe2, 0x8c, 0x2d, 0xc1, 0x0f, 0x73, + 0x7e, 0x60, 0x7f, 0xa1, 0xec, 0xd9, 0x5a, 0x71, + 0x6a, 0x28, 0xb4, 0x3f, 0x9e, 0x88, 0xf3, 0x72, + 0x6c, 0xf4, 0xbc, 0x9f, 0xf9, 0x11, 0xe5, 0x48, + 0x30, 0x40, 0x68, 0xc5, 0x90, 0x56, 0xb2, 0x5d, + 0x3b, 0x37, 0x82, 0xd9, 0x30, 0xa5, 0xe2, 0x74, + 0xbb, 0x55, 0x7c, 0xeb, 0xd7, 0xc8, 0xb4, 0x5d, + 0x25, 0x93, 0x2e, 0x65, 0x96, 0x0c, 0x18, 0x30, + 0x60, 0x5b, 0x6f, 0x3d, 0x72, 0xa3, 0x41, 0xa4, + 0xe9, 0x48, 0x7b, 0x7b, 0x18, 0x2c, 0xde, 0xa6, + 0xdd, 0x02, 0xd9, 0x24, 0x22, 0xc4, 0x86, 0xef, + 0x7d, 0x15, 0x65, 0xaf, 0xc6, 0x31, 0x1d, 0x9d, + 0xc6, 0x59, 0x42, 0xa3, 0x46, 0x48, 0x78, 0x27, + 0x9a, 0x70, 0xc0, 0xac, 0xc4, 0xa9, 0xf7, 0xb8, + 0x55, 0x44, 0xc2, 0x4b, 0xc4, 0x37, 0xe2, 0x28, + 0xcd, 0xb6, 0x9e, 0x53, 0x6d, 0xd4, 0xd7, 0x5c, + 0x6e, 0xe3, 0x01, 0x47, 0x85, 0x41, 0x80, 0xcf, + 0x48, 0x45, 0xa6, 0xa1, 0xa6, 0x23, 0x77, 0xab, + 0x06, 0x0c, 0x18, 0x30, 0x60, 0x1d, 0xa3, 0xbf, + 0x45, 0x27, 0x9d, 0x5f, 0xed, 0xd4, 0x5f, 0x06, + 0x9f, 0x2f, 0xbe, 0x78, 0xcd, 0xa2, 0xb4, 0x20, + 0x07, 0x4b, 0xbb, 0xca, 0xce, 0xeb, 0x39, 0x2f, + 0x1f, 0x58, 0xe7, 0x95, 0x0a, 0xb9, 0x3c, 0xb2, + 0xd5, 0xb0, 0x85, 0x8b, 0x84, 0xd2, 0x98, 0x51, + 0xa3, 0x1a, 0x60, 0xc8, 0x39, 0x8b, 0x07, 0x20, + 0x3a, 0x83, 0x91, 0x7e, 0xf0, 0x05, 0x40, 0x75, + 0x0b, 0x1f, 0x6c, 0xfb, 0xb1, 0xbc, 0xc7, 0xa9, + 0x6b, 0x83, 0xd3, 0x08, 0xb8, 0x52, 0x34, 0x55, + 0x4f, 0xa2, 0xe1, 0xff, 0x00, 0x38, 0x6c, 0x3f, + 0x02, 0x6a, 0x67, 0xa3, 0x64, 0xba, 0x14, 0x53, + 0xd7, 0xb3, 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0x42, + 0x79, 0xdb, 0xf2, 0xcb, 0x9a, 0x85, 0xf8, 0x88, + 0x5a, 0xc6, 0x8a, 0xd3, 0xfe, 0xb2, 0xa5, 0x2b, + 0x3a, 0x17, 0x07, 0xb6, 0x3d, 0x98, 0xc6, 0x26, + 0x45, 0xcc, 0x94, 0xb9, 0x13, 0x38, 0x5d, 0x46, + 0x5c, 0x73, 0x62, 0x16, 0xa6, 0x96, 0x36, 0xb6, + 0xb2, 0x40, 0x28, 0x23, 0x60, 0x0e, 0x90, 0xcb, + 0x2f, 0x20, 0x46, 0x0a, 0x8c, 0x31, 0xa2, 0xd2, + 0xd6, 0x0d, 0x2c, 0x93, 0x45, 0x8d, 0x5b, 0xa0, + 0x9b, 0x9f, 0xd0, 0x8e, 0xd1, 0xce, 0x57, 0x59, + 0xa9, 0xc1, 0xa6, 0x5a, 0x1c, 0x2d, 0x69, 0x78, + 0xb9, 0xa6, 0x8e, 0x15, 0xd7, 0x54, 0xb4, 0x1b, + 0xde, 0x2a, 0x8a, 0x52, 0x05, 0xf4, 0x90, 0x08, + 0x26, 0x9a, 0x09, 0xf4, 0xd8, 0x83, 0x21, 0x97, + 0x28, 0xdf, 0xda, 0x4b, 0x60, 0xc9, 0x90, 0x9d, + 0x57, 0x38, 0x09, 0x18, 0xf1, 0x84, 0x23, 0xe1, + 0x0d, 0xef, 0x78, 0x3e, 0xb9, 0x2e, 0x23, 0x26, + 0x6e, 0x84, 0xf6, 0xa7, 0x12, 0xb7, 0xce, 0x48, + 0x5c, 0xaf, 0x9f, 0xc4, 0xa7, 0x7d, 0x1f, 0x2d, + 0xae, 0xc1, 0x88, 0x00, 0xec, 0x2f, 0xe4, 0x91, + 0xa7, 0x5d, 0x29, 0x3e, 0xf4, 0x52, 0x55, 0x52, + 0x73, 0x9b, 0xa8, 0x24, 0x71, 0x32, 0xc4, 0x85, + 0x76, 0x62, 0xd4, 0x21, 0x57, 0x26, 0x8b, 0x59, + 0x7f, 0xeb, 0x9f, 0xef, 0xb6, 0x49, 0x46, 0x1d, + 0xab, 0x8a, 0x56, 0xae, 0x90, 0xa2, 0xbd, 0xae, + 0x7b, 0xcf, 0x2f, 0xbe, 0x78, 0xcd, 0xbf, 0xb4, + 0xbd, 0xe0, 0xb6, 0x47, 0x50, 0x3f, 0x8a, 0x13, + 0x2c, 0x2c, 0x5e, 0x2c, 0xb2, 0xcb, 0x21, 0x0b, + 0x22, 0xf2, 0x2f, 0xf5, 0x63, 0xe2, 0xd2, 0x86, + 0x51, 0x83, 0x06, 0x0c, 0x36, 0x63, 0xe1, 0x32, + 0x47, 0x4c, 0x33, 0x19, 0x06, 0x01, 0x52, 0xf7, + 0x9e, 0x21, 0x8b, 0x03, 0x65, 0x63, 0x3f, 0xe2, + 0xbe, 0x83, 0xda, 0x14, 0x54, 0xd1, 0x26, 0x31, + 0xca, 0x35, 0x44, 0xb3, 0x81, 0x70, 0xe1, 0xb2, + 0x1a, 0x3e, 0x64, 0xc9, 0xd8, 0x15, 0x93, 0x7d, + 0xba, 0x66, 0x06, 0x66, 0x59, 0xa7, 0xd6, 0xb1, + 0xc5, 0xe9, 0x08, 0x90, 0x94, 0xb0, 0x0a, 0x9c, + 0x95, 0xb0, 0x2c, 0xde, 0x2f, 0x87, 0x39, 0xfb, + 0xf5, 0x8e, 0xe7, 0x84, 0x2f, 0x7b, 0x46, 0x16, + 0x33, 0x3c, 0x60, 0x20, 0x00, 0x60, 0x02, 0x83, + 0xd2, 0x30, 0x60, 0xc1, 0x80, 0xf9, 0x00, 0xa4, + 0x80, 0x01, 0xf7, 0x1d, 0x15, 0xa2, 0x4e, 0xad, + 0xdc, 0xc1, 0x53, 0x15, 0xaa, 0x59, 0x1e, 0x0d, + 0x1f, 0x39, 0xbc, 0x18, 0x91, 0xdb, 0x16, 0x37, + 0x9f, 0xf5, 0x6b, 0x16, 0x2c, 0x58, 0xb1, 0x62, + 0xc5, 0x8b, 0x16, 0x2c, 0x58, 0xb1, 0x62, 0xc5, + 0x8b, 0x16, 0x2c, 0x59, 0x7d, 0x82, 0xac, 0xbd, + 0x09, 0x40, 0xff, 0x00, 0x7e, 0x86, 0x80, 0x99, + 0x7e, 0x5f, 0x7c, 0xf1, 0x9b, 0x42, 0x52, 0xc0, + 0x00, 0x08, 0xa2, 0xea, 0x29, 0xdd, 0x5f, 0xaa, + 0xbe, 0xf3, 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, + 0xb3, 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb3, + 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb3, 0x3e, + 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb3, 0x3e, 0x07, + 0xfb, 0x33, 0xe0, 0x7f, 0xb3, 0x3e, 0x07, 0xfb, + 0x33, 0xe0, 0x7f, 0xb3, 0x3e, 0x07, 0xfb, 0x33, + 0xe0, 0x7f, 0xb3, 0x3e, 0x07, 0xfb, 0x33, 0xe0, + 0x7f, 0xb3, 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, + 0xb3, 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb3, + 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb3, 0x3e, + 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb2, 0xdf, 0xa0, + 0x87, 0x39, 0x5a, 0x38, 0x58, 0x20, 0xe8, 0xe7, + 0x30, 0xde, 0x63, 0xfd, 0xb3, 0x96, 0x12, 0xe4, + 0x45, 0xb8, 0x11, 0xfd, 0x51, 0xf3, 0xe7, 0xcf, + 0x9f, 0x3e, 0x7c, 0xf9, 0xf3, 0xe7, 0xcf, 0x9f, + 0x3e, 0x7c, 0xf9, 0xf3, 0xe7, 0xdf, 0xb7, 0xbf, + 0xe1, 0x02, 0xfe, 0x42, 0x10, 0xdc, 0x09, 0x4e, + 0x62, 0x49, 0xd2, 0x1e, 0xc1, 0x54, 0x59, 0x21, + 0x1b, 0x6e, 0x25, 0xc5, 0xb6, 0x0c, 0x08, 0xc2, + 0xe9, 0x8f, 0x25, 0x77, 0x9e, 0x4a, 0xef, 0x15, + 0x51, 0x21, 0xe9, 0x9d, 0x9a, 0xac, 0x84, 0x19, + 0x45, 0xd8, 0x0c, 0x1a, 0xbd, 0x04, 0x02, 0x64, + 0x9b, 0x7e, 0xa5, 0x07, 0xb8, 0x25, 0x86, 0x79, + 0x26, 0x4c, 0xac, 0x84, 0x45, 0x25, 0x56, 0x82, + 0x34, 0xf4, 0x42, 0xe4, 0x02, 0xcc, 0x83, 0x67, + 0xc0, 0xbc, 0x4e, 0x4f, 0x1c, 0xb2, 0xa2, 0x20, + 0x65, 0x63, 0x0d, 0x5d, 0xac, 0x30, 0xce, 0x2f, + 0x19, 0x82, 0x80, 0xaa, 0x12, 0x01, 0x56, 0x98, + 0x05, 0x96, 0x16, 0x96, 0x6f, 0x07, 0x3f, 0x8a, + 0x88, 0x53, 0xda, 0xe8, 0x43, 0x0d, 0xc2, 0x10, + 0x39, 0x76, 0xec, 0x2c, 0x61, 0x32, 0x41, 0x31, + 0x5c, 0x47, 0x2b, 0xe9, 0xc5, 0x05, 0x96, 0xbb, + 0x53, 0xfe, 0xa5, 0xa9, 0x85, 0x66, 0xee, 0xa2, + 0x75, 0x48, 0x10, 0x18, 0xc5, 0x9d, 0x69, 0x7d, + 0x28, 0x6e, 0xe1, 0xca, 0x03, 0x23, 0xa1, 0x54, + 0xd9, 0x65, 0x23, 0xa4, 0xd3, 0x5d, 0x2c, 0xd1, + 0x81, 0xd3, 0x32, 0x30, 0x12, 0xa0, 0xfa, 0x45, + 0x85, 0xa5, 0x94, 0x80, 0xd9, 0x92, 0x9c, 0x99, + 0x31, 0x06, 0x00, 0xa0, 0x22, 0x22, 0x23, 0xa2, + 0x23, 0x48, 0xfb, 0x24, 0xf2, 0x57, 0x79, 0xe4, + 0xae, 0xf1, 0x84, 0x08, 0xa0, 0xd1, 0xdd, 0x5a, + 0x14, 0x23, 0x8a, 0x87, 0xad, 0x91, 0x10, 0x4b, + 0x1b, 0xd6, 0x88, 0x16, 0x8d, 0xda, 0x6c, 0xa9, + 0xd2, 0x96, 0xd6, 0x5d, 0xc5, 0x7a, 0xab, 0x3c, + 0xbe, 0xf9, 0xe3, 0x36, 0xfe, 0xd3, 0x27, 0x82, + 0xd9, 0x18, 0xf7, 0x96, 0x23, 0xab, 0x8a, 0x84, + 0xa9, 0x80, 0x14, 0x57, 0x77, 0x44, 0x22, 0xb9, + 0xf6, 0x23, 0xd1, 0x8a, 0xef, 0xe8, 0x50, 0x64, + 0xc1, 0x48, 0x36, 0x32, 0x63, 0xa9, 0x85, 0xe6, + 0x80, 0xd5, 0x46, 0xc0, 0xf1, 0x53, 0xa8, 0xb5, + 0x88, 0x16, 0xc9, 0xb0, 0xf8, 0xc1, 0xdc, 0x86, + 0x2d, 0x00, 0xf5, 0xd2, 0x26, 0xb5, 0xb8, 0x17, + 0x45, 0xca, 0xf1, 0x5e, 0x2a, 0xbb, 0xac, 0x40, + 0xc9, 0x11, 0x07, 0x30, 0x80, 0xe3, 0x7b, 0xe3, + 0xa1, 0x58, 0x75, 0xdc, 0x01, 0x41, 0xf1, 0xaa, + 0xb2, 0xe1, 0x92, 0xb8, 0x6f, 0xb0, 0x0c, 0x4d, + 0x37, 0x2f, 0x70, 0x26, 0x01, 0x18, 0x5f, 0x84, + 0x04, 0x2f, 0x43, 0xe1, 0xc0, 0x94, 0x19, 0x8a, + 0xea, 0xd2, 0x10, 0x73, 0xfb, 0x81, 0xc3, 0xdf, + 0x40, 0x83, 0x57, 0x0d, 0x10, 0x16, 0x92, 0x4c, + 0x1d, 0x2b, 0x63, 0x9d, 0xa7, 0x08, 0x90, 0x2c, + 0x8c, 0x05, 0x89, 0xb8, 0x20, 0xa0, 0x8d, 0x61, + 0x82, 0x21, 0x1a, 0x92, 0xe9, 0x84, 0x8f, 0xd9, + 0x5a, 0x4a, 0x08, 0x7f, 0x04, 0xc1, 0x10, 0xe6, + 0x4e, 0x72, 0x53, 0xb8, 0x35, 0x9c, 0xfe, 0x63, + 0x5f, 0x4d, 0x71, 0x76, 0xc3, 0xb0, 0x5a, 0x8b, + 0x72, 0x0c, 0x4d, 0x71, 0xfb, 0xea, 0x62, 0x5e, + 0xec, 0x82, 0x19, 0x04, 0x66, 0xbf, 0xa2, 0x7e, + 0x07, 0x6a, 0x3c, 0xbf, 0xc9, 0x32, 0xfc, 0x1b, + 0x9e, 0xa9, 0x0b, 0x8d, 0x4c, 0x72, 0x2a, 0x15, + 0x55, 0xaf, 0x6c, 0x4a, 0x30, 0xaf, 0x50, 0x00, + 0xc2, 0xa8, 0x1a, 0x14, 0x00, 0x0a, 0x23, 0xd6, + 0xd9, 0x4d, 0x5f, 0xf0, 0x9c, 0xf7, 0x57, 0xb4, + 0xe7, 0xba, 0xbd, 0xb8, 0x6d, 0xce, 0xae, 0x92, + 0x09, 0x44, 0x97, 0xeb, 0xf8, 0x00, 0xca, 0x6a, + 0xb9, 0x12, 0x64, 0xf8, 0x71, 0x15, 0x2f, 0xc9, + 0xd2, 0x9b, 0x1c, 0xce, 0x62, 0x16, 0x4f, 0xc2, + 0x8d, 0x8a, 0xad, 0xba, 0x33, 0xd0, 0x3d, 0xb6, + 0x7f, 0x5c, 0x3e, 0x06, 0x7d, 0x2f, 0x71, 0xa4, + 0x72, 0x0a, 0xf7, 0x98, 0x49, 0x36, 0xc4, 0xec, + 0x8b, 0x42, 0xf7, 0x0d, 0x4c, 0x04, 0x41, 0xea, + 0x25, 0x56, 0x30, 0x5e, 0x55, 0x08, 0x36, 0x0a, + 0x8b, 0x62, 0xb5, 0xba, 0x25, 0x08, 0x4e, 0x23, + 0x75, 0xc6, 0xac, 0x4e, 0x58, 0x85, 0x94, 0x50, + 0x49, 0x28, 0x34, 0x14, 0x32, 0x2d, 0x44, 0x0b, + 0x30, 0x57, 0xde, 0x60, 0x73, 0x38, 0x23, 0x20, + 0x6e, 0x53, 0xe2, 0x00, 0x34, 0xe9, 0xa6, 0xd2, + 0xed, 0x11, 0xf5, 0xa9, 0x94, 0x11, 0x43, 0xee, + 0x1b, 0x39, 0x5a, 0x6c, 0x31, 0x04, 0xe5, 0x94, + 0x52, 0x6f, 0x9d, 0x4c, 0x4f, 0x02, 0x3a, 0xe2, + 0x92, 0x1d, 0x7f, 0x99, 0x26, 0x4a, 0x37, 0x3d, + 0xd5, 0xed, 0x39, 0xee, 0xaf, 0x69, 0xcf, 0x75, + 0x7b, 0x41, 0x31, 0xb0, 0x87, 0x5b, 0x0d, 0x7f, + 0xef, 0x13, 0x64, 0x3e, 0x5f, 0x7c, 0xf1, 0x9b, + 0x42, 0x0b, 0x10, 0xe6, 0xc2, 0xcd, 0xce, 0xa4, + 0xb3, 0x73, 0xa9, 0x2c, 0xdc, 0xea, 0x4b, 0x37, + 0x3a, 0x92, 0xcd, 0xce, 0xa4, 0xb3, 0x73, 0xa9, + 0x2c, 0xdc, 0xea, 0x4b, 0x37, 0x3a, 0x92, 0xcd, + 0xce, 0xa4, 0xb3, 0x73, 0xa9, 0x2c, 0xdc, 0xea, + 0x4b, 0x37, 0x3a, 0x92, 0xcd, 0xce, 0xa4, 0xb3, + 0x73, 0xa9, 0x2c, 0xdc, 0xea, 0x4b, 0x37, 0x3a, + 0x92, 0xcd, 0xce, 0xa4, 0xb3, 0x73, 0xa9, 0x2c, + 0xdc, 0xea, 0x4b, 0x37, 0x3a, 0x92, 0xcd, 0xce, + 0xa4, 0xb3, 0x73, 0xa9, 0x2c, 0xdc, 0xea, 0x4b, + 0x37, 0x3a, 0x91, 0x1a, 0x87, 0xd6, 0x36, 0x40, + 0x5a, 0xa5, 0x1c, 0x34, 0xfc, 0x7f, 0x51, 0x52, + 0xf3, 0x23, 0x4c, 0x2b, 0x2a, 0xae, 0xf4, 0x57, + 0x61, 0x76, 0xbf, 0xd7, 0x61, 0xa0, 0x68, 0xbd, + 0xd6, 0x88, 0xf4, 0x87, 0x15, 0x57, 0xd0, 0xad, + 0x70, 0xaa, 0x98, 0xcc, 0x06, 0xeb, 0x8e, 0x9c, + 0x03, 0x4e, 0xbb, 0xe0, 0xfb, 0x5b, 0xc9, 0x92, + 0x4e, 0xd9, 0xbe, 0x1b, 0x14, 0xa7, 0x8e, 0x06, + 0x95, 0x8e, 0xe6, 0xa1, 0x38, 0x15, 0x50, 0x0e, + 0x79, 0xef, 0x02, 0xe1, 0x52, 0x03, 0x81, 0xa6, + 0x80, 0x5a, 0x80, 0xb3, 0x53, 0xb0, 0xe9, 0x63, + 0x1b, 0xe4, 0x1a, 0x8e, 0x2b, 0x86, 0x40, 0x96, + 0x9a, 0x29, 0xc2, 0x69, 0x52, 0x73, 0x33, 0x41, + 0x49, 0x9f, 0xb9, 0x41, 0x36, 0x00, 0x1d, 0xeb, + 0x52, 0xb0, 0x8e, 0x36, 0x58, 0x45, 0xec, 0xeb, + 0xe1, 0x8e, 0xac, 0x95, 0xfb, 0x96, 0x3a, 0x4a, + 0x3b, 0xa9, 0x12, 0x26, 0x2d, 0x3e, 0xc2, 0x7a, + 0x31, 0xb1, 0xae, 0xcf, 0x28, 0x1c, 0x6e, 0xce, + 0x6c, 0xa3, 0x6c, 0xc1, 0x92, 0xcc, 0x65, 0xf0, + 0x93, 0x47, 0x4c, 0x37, 0x40, 0x89, 0xa4, 0x80, + 0x99, 0x2e, 0x7d, 0xda, 0x1e, 0x45, 0x1c, 0x00, + 0x4a, 0x13, 0x10, 0x5c, 0x13, 0xf3, 0xea, 0x84, + 0xf0, 0xc2, 0xa0, 0x70, 0xc1, 0x02, 0x06, 0x04, + 0x06, 0xb2, 0x34, 0x12, 0xc1, 0xeb, 0x32, 0x36, + 0x36, 0x8b, 0x2f, 0xfe, 0xb5, 0x86, 0x59, 0x49, + 0x87, 0x13, 0x05, 0x21, 0x15, 0x89, 0xb1, 0x07, + 0x79, 0xb6, 0xca, 0xba, 0xd8, 0x23, 0xc4, 0x31, + 0x7d, 0xfd, 0x59, 0x7d, 0xfd, 0x59, 0x72, 0xd1, + 0x6f, 0xc4, 0x22, 0xe2, 0x51, 0x84, 0xfc, 0xbf, + 0xad, 0xf6, 0x70, 0x81, 0x72, 0x81, 0xe5, 0x78, + 0xa9, 0x58, 0x33, 0x98, 0xb1, 0xe0, 0xfa, 0x1b, + 0xde, 0x0d, 0x8d, 0x45, 0x13, 0xe6, 0x44, 0x53, + 0x8e, 0xf3, 0x08, 0xe4, 0xc5, 0x70, 0x5b, 0x4f, + 0x7f, 0x56, 0x6f, 0x51, 0x1b, 0x81, 0x0e, 0x7a, + 0xe8, 0x54, 0x0e, 0x0c, 0xc7, 0x3a, 0x11, 0x18, + 0x86, 0x3b, 0xf4, 0x9d, 0x62, 0x33, 0x02, 0x17, + 0x35, 0x65, 0x2d, 0x2a, 0x56, 0xde, 0x2d, 0xd6, + 0x94, 0x8a, 0x52, 0x50, 0x89, 0x4e, 0xd8, 0x78, + 0x3d, 0xed, 0x59, 0x38, 0x20, 0x31, 0xad, 0x93, + 0xd3, 0x09, 0x6d, 0x3c, 0xb9, 0x1f, 0x82, 0xb9, + 0x51, 0xb4, 0x98, 0x92, 0x5b, 0x84, 0xa5, 0x55, + 0x51, 0x1e, 0x46, 0xd8, 0xf1, 0x13, 0x76, 0x4a, + 0x60, 0x04, 0xf1, 0x99, 0x72, 0x52, 0x35, 0x1a, + 0x3c, 0xb5, 0x36, 0x72, 0x99, 0x24, 0xdb, 0x52, + 0x14, 0x52, 0x4e, 0x3b, 0x6e, 0xba, 0xfb, 0xfa, + 0xb2, 0xfb, 0xfa, 0xb0, 0xb0, 0xe6, 0xbd, 0x3a, + 0xe0, 0x6c, 0x36, 0x06, 0x97, 0x33, 0xc3, 0x8d, + 0xcb, 0x10, 0x80, 0x00, 0x0a, 0x88, 0x2d, 0x6a, + 0x33, 0x1a, 0x11, 0xe6, 0x47, 0xcb, 0xef, 0x9e, + 0x33, 0x68, 0x23, 0x70, 0x3b, 0xf3, 0xa3, 0x63, + 0xa1, 0x28, 0xd8, 0xe8, 0x4a, 0x36, 0x3a, 0x12, + 0x8d, 0x8e, 0x84, 0xa3, 0x63, 0xa1, 0x28, 0xd8, + 0xe8, 0x4a, 0x36, 0x3a, 0x12, 0x8d, 0x8e, 0x84, + 0xa3, 0x63, 0xa1, 0x28, 0xd8, 0xe8, 0x4a, 0x36, + 0x3a, 0x12, 0x8d, 0x8e, 0x84, 0xa3, 0x63, 0xa1, + 0x28, 0xd8, 0xe8, 0x4a, 0x36, 0x3a, 0x12, 0x8d, + 0x8e, 0x84, 0xa3, 0x63, 0xa1, 0x28, 0xd8, 0xe8, + 0x4a, 0x36, 0x3a, 0x12, 0x8d, 0x8e, 0x84, 0xa3, + 0x63, 0xa1, 0x28, 0xd8, 0xe8, 0x4a, 0x36, 0x3a, + 0x12, 0x8d, 0x8e, 0x84, 0x26, 0x91, 0xf4, 0x0d, + 0xc8, 0x5f, 0x2e, 0x20, 0xd7, 0xe6, 0x07, 0xe8, + 0x2b, 0xcb, 0x80, 0xde, 0xeb, 0x8b, 0x6b, 0xbc, + 0x80, 0x44, 0x5c, 0x18, 0x21, 0x4d, 0x10, 0x53, + 0xe8, 0x96, 0x96, 0x2b, 0x6c, 0x4c, 0xe1, 0xba, + 0xc4, 0x89, 0xc5, 0x8a, 0x9b, 0x97, 0x37, 0x3f, + 0xa1, 0x62, 0x09, 0x8a, 0x05, 0x09, 0xa2, 0xb2, + 0x7b, 0xe1, 0x6c, 0x67, 0x69, 0xbe, 0x22, 0x9d, + 0x03, 0x6b, 0xca, 0xb9, 0x4a, 0xc4, 0x5a, 0x6d, + 0xc1, 0x5d, 0xd3, 0x05, 0x99, 0x17, 0x22, 0x59, + 0xcc, 0xee, 0x3a, 0x8e, 0x5a, 0x41, 0x96, 0x91, + 0xa2, 0x0a, 0x7b, 0x6a, 0x5b, 0x4c, 0x40, 0x00, + 0x00, 0x56, 0x01, 0x02, 0xdd, 0xa5, 0x60, 0xb6, + 0xe4, 0xdd, 0x81, 0x58, 0x08, 0xb6, 0x02, 0xbb, + 0x0d, 0xbd, 0xcd, 0x83, 0x7a, 0xd8, 0x45, 0x70, + 0xb1, 0x6d, 0x17, 0xcb, 0x5e, 0x63, 0xee, 0xeb, + 0x2a, 0x50, 0x08, 0xa7, 0x29, 0x31, 0x85, 0xc9, + 0x30, 0x6b, 0xb1, 0x0b, 0x88, 0x2d, 0x69, 0x54, + 0x22, 0x36, 0x10, 0x5a, 0x1f, 0x1d, 0xd0, 0xcd, + 0x1f, 0xe1, 0xab, 0x52, 0xff, 0x00, 0xc0, 0x1e, + 0xc9, 0x55, 0x57, 0x96, 0x98, 0xfa, 0x4c, 0x21, + 0x89, 0x58, 0x63, 0x1d, 0xc3, 0x01, 0xe6, 0x66, + 0x04, 0xa0, 0x16, 0xa0, 0x97, 0xea, 0xe4, 0xff, + 0x00, 0xd9, 0x8d, 0xc9, 0x36, 0xe0, 0xae, 0xe9, + 0x85, 0xf3, 0x99, 0xfd, 0x8a, 0xb5, 0x15, 0xb5, + 0xe5, 0x5c, 0xb4, 0x8a, 0x2a, 0xb2, 0xe5, 0x5b, + 0x57, 0x77, 0x86, 0x2a, 0xfc, 0x79, 0xcf, 0x67, + 0x47, 0xd4, 0xc5, 0xbe, 0x12, 0xf5, 0x60, 0x1c, + 0xa8, 0x16, 0xcd, 0x05, 0xf1, 0x8e, 0xe5, 0xc6, + 0x02, 0x68, 0x23, 0x36, 0x01, 0x36, 0x0b, 0x97, + 0xa7, 0x34, 0xfb, 0xa2, 0xd1, 0x23, 0x15, 0x4e, + 0xa5, 0x79, 0x87, 0x02, 0x58, 0xa0, 0x38, 0x60, + 0xe8, 0xe7, 0x42, 0x96, 0x91, 0x28, 0x04, 0x5a, + 0x41, 0x81, 0x05, 0xec, 0x79, 0xda, 0x4a, 0x89, + 0xd5, 0xc6, 0xf4, 0x52, 0x8a, 0x06, 0x74, 0xa5, + 0x80, 0x0b, 0x5b, 0xae, 0x39, 0xf8, 0x6e, 0x88, + 0x49, 0x8e, 0x75, 0x44, 0xb1, 0xb3, 0x58, 0x83, + 0x82, 0x49, 0x17, 0xbe, 0x65, 0x34, 0xf8, 0x26, + 0xbd, 0x94, 0xc2, 0x4b, 0xc1, 0x27, 0xf2, 0xee, + 0x80, 0x71, 0x93, 0x65, 0x63, 0x96, 0x16, 0xdc, + 0x8a, 0x1f, 0x21, 0x0e, 0x59, 0x5d, 0x64, 0x6d, + 0xff, 0x00, 0x7b, 0x16, 0x44, 0xc2, 0x65, 0x73, + 0x55, 0x07, 0x18, 0x4e, 0x7a, 0x28, 0x0f, 0x3b, + 0x0f, 0x18, 0x0f, 0x5c, 0x6f, 0x61, 0xf5, 0xb8, + 0x05, 0x46, 0x1a, 0x9c, 0x0a, 0x34, 0x38, 0x6a, + 0x47, 0x6f, 0x79, 0xe2, 0x8e, 0x11, 0xa4, 0x61, + 0xa6, 0x32, 0x1c, 0x73, 0xed, 0xb6, 0x65, 0xbe, + 0x47, 0xd1, 0xca, 0x03, 0x57, 0x9c, 0xc6, 0xf5, + 0x6c, 0x62, 0xb9, 0x19, 0x28, 0xf9, 0xfd, 0x22, + 0xa8, 0xac, 0x84, 0x76, 0xc4, 0xb4, 0xb1, 0xaf, + 0xd4, 0x80, 0x68, 0x96, 0x81, 0xbb, 0x49, 0xab, + 0xcc, 0x21, 0x83, 0x32, 0x71, 0x6b, 0xf8, 0x05, + 0x60, 0x4e, 0xf2, 0xfb, 0xe7, 0x8c, 0xdb, 0xfb, + 0x45, 0xfe, 0x63, 0x72, 0x64, 0x4e, 0x9e, 0xbf, + 0x90, 0x31, 0x04, 0xf4, 0x78, 0x51, 0x04, 0x8d, + 0x9b, 0x36, 0x6c, 0xd9, 0x80, 0xa9, 0x72, 0x6d, + 0x4d, 0x07, 0x58, 0xae, 0xf0, 0xb2, 0xcc, 0xb4, + 0x25, 0xf4, 0x8c, 0x43, 0xa8, 0x63, 0x71, 0xee, + 0x98, 0x17, 0xe4, 0xe3, 0x10, 0xae, 0x9f, 0x13, + 0x6d, 0x5d, 0xfe, 0x39, 0x59, 0xc2, 0xc1, 0xfa, + 0x95, 0x1f, 0x9e, 0x56, 0xb3, 0xc4, 0x88, 0xc6, + 0xc8, 0x00, 0x35, 0x7f, 0x27, 0xfd, 0x00, 0x46, + 0x34, 0xc8, 0x35, 0x20, 0xf0, 0xc2, 0x4e, 0x1d, + 0x67, 0x7b, 0xb9, 0xc5, 0xa8, 0xb7, 0x50, 0x85, + 0x8f, 0xf8, 0xa4, 0x92, 0x38, 0xb5, 0x21, 0x70, + 0x7f, 0x5b, 0x36, 0x6c, 0xd9, 0xb3, 0x66, 0x2f, + 0x0c, 0xdb, 0xe8, 0x19, 0x56, 0x06, 0xfe, 0x83, + 0x40, 0x23, 0xa0, 0x94, 0x87, 0x22, 0xcb, 0x20, + 0x2c, 0x14, 0xd9, 0x52, 0xb4, 0x4d, 0x70, 0x18, + 0x16, 0x10, 0xc8, 0x9b, 0xe8, 0x61, 0xdc, 0x3f, + 0x0d, 0x61, 0x56, 0x80, 0xf9, 0xc0, 0x74, 0xb9, + 0xc5, 0x9c, 0xac, 0xc3, 0x0e, 0x2e, 0x47, 0xdf, + 0x6a, 0x64, 0x60, 0x16, 0x17, 0x7a, 0x34, 0xbd, + 0xdc, 0x4d, 0x7b, 0x66, 0x46, 0xe0, 0x18, 0xf7, + 0x68, 0x35, 0x6c, 0x80, 0x44, 0x98, 0x1d, 0xe5, + 0xe4, 0xb9, 0xfe, 0x2b, 0x33, 0x1a, 0x2b, 0x98, + 0xb3, 0x51, 0xa2, 0x5d, 0xdc, 0x61, 0xa2, 0x42, + 0x1d, 0xac, 0x69, 0x33, 0xfb, 0xba, 0x4a, 0xde, + 0x8a, 0x2b, 0x53, 0xeb, 0x82, 0x73, 0x4c, 0x66, + 0x04, 0x9c, 0x56, 0x4d, 0x5c, 0x8b, 0x11, 0x24, + 0x2d, 0x3f, 0x93, 0xba, 0x2b, 0x91, 0x52, 0x82, + 0x04, 0xb5, 0xbb, 0x75, 0x7c, 0x9e, 0xa2, 0xa4, + 0xe0, 0x1f, 0x56, 0x9d, 0x2e, 0xfa, 0xe4, 0xad, + 0x80, 0x70, 0x4d, 0xec, 0x41, 0xf9, 0xb3, 0xec, + 0x64, 0x09, 0x81, 0x21, 0x5e, 0x2c, 0x17, 0x9d, + 0x47, 0xa4, 0x9e, 0x02, 0xa2, 0xbb, 0xf4, 0x30, + 0xf4, 0xcf, 0x66, 0xf0, 0xd7, 0xc1, 0x33, 0x1b, + 0x7a, 0x6a, 0xe3, 0x78, 0xb3, 0x86, 0xbf, 0x9f, + 0x79, 0x7d, 0xf3, 0xc6, 0x6d, 0x00, 0x0c, 0xa8, + 0x2d, 0x0b, 0x4d, 0x9f, 0xe2, 0x4e, 0x57, 0x52, + 0x72, 0xba, 0x93, 0x95, 0xd4, 0x9c, 0xae, 0xa4, + 0xe5, 0x75, 0x27, 0x2b, 0xa9, 0x39, 0x5d, 0x49, + 0xca, 0xea, 0x4e, 0x57, 0x52, 0x72, 0xba, 0x93, + 0x95, 0xd4, 0x9c, 0xae, 0xa4, 0xe5, 0x75, 0x27, + 0x2b, 0xa9, 0x39, 0x5d, 0x49, 0xca, 0xea, 0x4e, + 0x57, 0x52, 0x72, 0xba, 0x93, 0x95, 0xd4, 0x9c, + 0xae, 0xa4, 0xe5, 0x75, 0x27, 0x2b, 0xa9, 0x39, + 0x5d, 0x49, 0xca, 0xea, 0x4d, 0x27, 0xf5, 0x0d, + 0xc9, 0xae, 0xcb, 0xae, 0x09, 0x8b, 0x37, 0x20, + 0x0b, 0x42, 0xd8, 0x40, 0x92, 0x5e, 0x95, 0x4e, + 0x0a, 0x5b, 0x9f, 0xea, 0x00, 0x5a, 0x65, 0xf3, + 0x60, 0x54, 0xb0, 0x66, 0x87, 0xb4, 0x6b, 0xab, + 0x46, 0x5d, 0xdd, 0xb9, 0x52, 0x39, 0x92, 0x86, + 0x0c, 0x15, 0x40, 0x70, 0xf1, 0x39, 0xd5, 0x34, + 0x32, 0x18, 0xb0, 0xfe, 0xf1, 0xb3, 0x49, 0x10, + 0x5a, 0x95, 0xdf, 0x3e, 0x06, 0x2a, 0xd1, 0xd7, + 0x28, 0xb4, 0x17, 0x32, 0x6e, 0xbd, 0xc2, 0x32, + 0xc8, 0xc6, 0xb5, 0x3c, 0x7c, 0xd4, 0x93, 0xbf, + 0x21, 0xeb, 0x8b, 0x26, 0x3d, 0x99, 0x85, 0x70, + 0x69, 0x58, 0x04, 0x0c, 0xf5, 0xed, 0x9a, 0x18, + 0x37, 0x1d, 0x5a, 0x09, 0x68, 0x94, 0x0a, 0xa0, + 0x19, 0x57, 0x01, 0x01, 0x81, 0xf0, 0x99, 0x86, + 0x0e, 0x14, 0x8b, 0xd3, 0x85, 0x77, 0xfb, 0xaa, + 0x62, 0xc4, 0x76, 0x9d, 0x95, 0x53, 0xfb, 0xbc, + 0xfe, 0xef, 0x3f, 0xbb, 0xcf, 0xee, 0xf3, 0xfb, + 0xbc, 0xfe, 0xef, 0x3f, 0xbb, 0xcf, 0xee, 0xf3, + 0xfb, 0xbc, 0xfe, 0xef, 0x3f, 0xbb, 0xcf, 0xee, + 0xf3, 0xfb, 0xbc, 0xfe, 0xef, 0x3f, 0xbb, 0xcf, + 0xee, 0xf3, 0xfb, 0xbc, 0xfe, 0xef, 0x3f, 0xbb, + 0xcf, 0xee, 0xf2, 0xde, 0xe1, 0xe4, 0x9f, 0xbb, + 0xb9, 0x0f, 0x36, 0xcf, 0xae, 0x5a, 0x6c, 0xbd, + 0xfa, 0x2f, 0xeb, 0x47, 0xd2, 0x12, 0x9b, 0xd3, + 0xc1, 0x71, 0x3a, 0x77, 0x8d, 0x71, 0x25, 0xe5, + 0xf7, 0xcf, 0x19, 0xb7, 0xf6, 0x92, 0x3c, 0xc6, + 0xe4, 0x4e, 0x1a, 0xc4, 0xda, 0x36, 0x03, 0x04, + 0xc8, 0x16, 0x19, 0xe3, 0x2b, 0xd3, 0x55, 0x68, + 0x61, 0x49, 0x08, 0xfe, 0xa2, 0xed, 0xdb, 0xb7, + 0x6e, 0xdd, 0xbb, 0x76, 0xed, 0xdb, 0xb7, 0x6e, + 0xdd, 0xbb, 0x76, 0xed, 0xdb, 0xaf, 0x1d, 0xfc, + 0x8c, 0x2c, 0x4b, 0xa9, 0x2a, 0xb4, 0xa2, 0x5c, + 0x4d, 0xd3, 0x66, 0x6f, 0x57, 0xad, 0xd8, 0xff, + 0x00, 0x8c, 0x80, 0x68, 0x7e, 0x8f, 0xf9, 0x07, + 0xf5, 0x27, 0xe9, 0xaf, 0xa7, 0x3e, 0x05, 0x25, + 0x80, 0xd9, 0x15, 0x0d, 0x74, 0x38, 0xd2, 0x02, + 0x73, 0x74, 0x16, 0xb6, 0x6f, 0x81, 0x3a, 0x6f, + 0xf2, 0x38, 0x6a, 0x16, 0xbf, 0x97, 0xdf, 0x3c, + 0x66, 0xd0, 0x81, 0x81, 0xa3, 0x6d, 0x2e, 0xf6, + 0x0e, 0xf5, 0xff, 0x00, 0x25, 0xb6, 0x75, 0x45, + 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, + 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, + 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, + 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, + 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, + 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, + 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, + 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, + 0x75, 0x45, 0xb6, 0x75, 0x43, 0x69, 0x3e, 0xa3, + 0x72, 0x31, 0x75, 0x43, 0x66, 0x3c, 0x4e, 0xff, + 0x00, 0x00, 0x91, 0x37, 0x3e, 0xd0, 0x04, 0x6b, + 0xb5, 0x65, 0x0a, 0x2a, 0xb2, 0xdb, 0x9d, 0x58, + 0xb6, 0xe7, 0x56, 0x2d, 0xb9, 0xd5, 0x8b, 0x6e, + 0x75, 0x62, 0xdb, 0x9d, 0x58, 0xb6, 0xe7, 0x56, + 0x15, 0xb1, 0x79, 0x52, 0x08, 0xc4, 0xb0, 0x70, + 0xd9, 0x10, 0x62, 0xb1, 0x6c, 0x08, 0xd6, 0xb4, + 0x5b, 0x28, 0xc5, 0xb7, 0x3a, 0xb0, 0x94, 0xcd, + 0x98, 0xe6, 0x1a, 0x64, 0xf7, 0xa9, 0x42, 0xdb, + 0x9d, 0x58, 0xb6, 0xe7, 0x56, 0x2d, 0xb9, 0xd5, + 0x8b, 0x6e, 0x75, 0x62, 0xdb, 0x9d, 0x58, 0xb6, + 0xe7, 0x56, 0x2d, 0xb9, 0xd5, 0x8b, 0x6e, 0x75, + 0x62, 0xdb, 0x9d, 0x58, 0xb6, 0xe7, 0x56, 0x2d, + 0xfe, 0xdb, 0x84, 0xed, 0xb6, 0x32, 0x6d, 0x4a, + 0x24, 0x28, 0x40, 0x0d, 0x03, 0x02, 0x6e, 0x0c, + 0x0b, 0x8c, 0x4b, 0xe4, 0x62, 0x5c, 0x70, 0x74, + 0x62, 0x21, 0x61, 0xa7, 0xf8, 0x58, 0xf1, 0xe3, + 0xc7, 0x8f, 0x1e, 0x3c, 0x6b, 0x89, 0xa8, 0x54, + 0x62, 0xa6, 0x55, 0x43, 0x5e, 0x99, 0x51, 0x24, + 0xe0, 0x49, 0xca, 0x02, 0x48, 0x11, 0x4b, 0xcb, + 0x07, 0x83, 0x28, 0x9c, 0xfe, 0x12, 0xf1, 0xf3, + 0x63, 0x51, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, + 0xc6, 0x5c, 0x6a, 0xbd, 0xf9, 0xb2, 0x0f, 0x60, + 0x54, 0x6a, 0x35, 0xd2, 0x77, 0x65, 0xad, 0x7b, + 0xdb, 0x3b, 0x46, 0x12, 0x06, 0x5d, 0x6f, 0xed, + 0x93, 0xcb, 0xef, 0x9e, 0x33, 0x6f, 0xed, 0x1e, + 0xf9, 0x8d, 0xc9, 0x41, 0x6d, 0xc7, 0x3a, 0x0f, + 0xf5, 0x3c, 0x17, 0x3c, 0x17, 0x3c, 0x17, 0x3c, + 0x17, 0x3c, 0x17, 0x3c, 0x17, 0x3c, 0x17, 0x2d, + 0xb0, 0x18, 0xdd, 0xc2, 0xf3, 0xf3, 0x08, 0x84, + 0x54, 0x97, 0x37, 0x11, 0xd1, 0x53, 0xdd, 0xa0, + 0xcc, 0xbf, 0x98, 0xc9, 0x60, 0x1c, 0x63, 0x86, + 0x4f, 0xd7, 0x41, 0x6a, 0xb0, 0x42, 0x2b, 0x9d, + 0xd0, 0x4b, 0x02, 0x09, 0xba, 0xe4, 0x2a, 0xf6, + 0xab, 0x9c, 0x23, 0xe8, 0xc4, 0x26, 0x4c, 0x13, + 0xf3, 0xb1, 0x94, 0xcb, 0x91, 0x34, 0x8b, 0x67, + 0x50, 0x0f, 0xc1, 0x73, 0xc1, 0x73, 0xc1, 0x73, + 0xc1, 0x73, 0xc1, 0x73, 0xc1, 0x73, 0xc1, 0x70, + 0x53, 0x64, 0x82, 0xf5, 0x49, 0x32, 0x86, 0x5e, + 0x0a, 0x78, 0x00, 0xe9, 0xc6, 0x5d, 0x95, 0x46, + 0xae, 0x8b, 0xad, 0xbd, 0x45, 0x8b, 0x16, 0x2c, + 0x59, 0xe1, 0x56, 0x23, 0x5f, 0xcd, 0x3c, 0xe3, + 0x94, 0x5c, 0xcd, 0xb1, 0x8c, 0xab, 0x38, 0x33, + 0xcd, 0x35, 0x93, 0x5b, 0x9a, 0xc2, 0x44, 0xa9, + 0x84, 0x45, 0x86, 0xde, 0xc6, 0x02, 0x3a, 0x24, + 0x72, 0x95, 0xe2, 0x45, 0xc3, 0xb0, 0xf7, 0x03, + 0x7d, 0x0e, 0x6d, 0x50, 0xaa, 0xad, 0xa9, 0x5c, + 0xc0, 0xe0, 0x04, 0x86, 0xff, 0x00, 0x77, 0x9f, + 0xbe, 0x32, 0x64, 0xe3, 0xa8, 0x4d, 0x4a, 0x17, + 0x12, 0x8b, 0x04, 0xa2, 0x30, 0xb2, 0x71, 0x1d, + 0xba, 0x21, 0x6d, 0x7e, 0x15, 0xd0, 0xa8, 0x27, + 0xff, 0x00, 0xdf, 0x3a, 0xb1, 0x83, 0x60, 0xfd, + 0x7a, 0x4b, 0x16, 0x2c, 0x58, 0xb1, 0xd0, 0x14, + 0x51, 0x05, 0x1d, 0x41, 0x2c, 0x3e, 0x86, 0xa9, + 0x56, 0xf9, 0x7d, 0xf3, 0xc6, 0x6d, 0x08, 0x19, + 0x50, 0xef, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x1f, 0x48, 0xff, 0x00, 0xa6, 0xe7, 0x38, + 0xaf, 0x6b, 0x77, 0x7d, 0x84, 0xe8, 0x02, 0x33, + 0x13, 0x98, 0xe8, 0x94, 0xdd, 0xd1, 0x29, 0xbb, + 0xa2, 0x53, 0x77, 0x44, 0xa6, 0xee, 0x89, 0x4d, + 0xdd, 0x12, 0x9b, 0xba, 0x23, 0x0a, 0x2f, 0x2a, + 0x5f, 0x81, 0x69, 0x98, 0xe7, 0xe7, 0xb2, 0x96, + 0x0b, 0x01, 0xa3, 0x58, 0x9a, 0x09, 0x1a, 0xce, + 0x98, 0xb7, 0x0e, 0x0a, 0x17, 0x59, 0x24, 0x5f, + 0xa8, 0x87, 0x35, 0x30, 0xf4, 0x70, 0x54, 0xbe, + 0xae, 0x00, 0x02, 0x0e, 0xb5, 0x3d, 0xc1, 0x17, + 0xcd, 0x97, 0xc3, 0x5e, 0x50, 0xed, 0x4c, 0xdd, + 0x69, 0x84, 0xb2, 0x27, 0x4e, 0x03, 0x34, 0x65, + 0x08, 0x34, 0xdd, 0xd1, 0x29, 0xbb, 0xa2, 0x53, + 0x77, 0x44, 0xa6, 0xee, 0x89, 0x4d, 0xdd, 0x12, + 0x9b, 0xba, 0x25, 0x37, 0x74, 0x45, 0xae, 0x6f, + 0xae, 0x08, 0x2d, 0xe9, 0xa0, 0x80, 0x09, 0x8a, + 0xa0, 0x21, 0x75, 0x41, 0x0a, 0x10, 0x03, 0x84, + 0x1b, 0x3d, 0x60, 0x29, 0x2d, 0x04, 0x98, 0xb7, + 0x4a, 0x0c, 0x3c, 0x77, 0xe9, 0xfe, 0x62, 0x43, + 0x27, 0x08, 0xc9, 0x4b, 0x67, 0xae, 0x9f, 0x11, + 0xeb, 0x3c, 0xe4, 0xb3, 0x8c, 0x6c, 0x25, 0x1e, + 0x25, 0xee, 0x24, 0xae, 0xbe, 0x65, 0xd2, 0x21, + 0xc7, 0x83, 0xaa, 0x5b, 0x3a, 0xf8, 0x00, 0x14, + 0x38, 0xaa, 0x02, 0x1a, 0xe6, 0x02, 0xca, 0xe3, + 0xb4, 0xec, 0x78, 0x10, 0x06, 0xba, 0xd3, 0x12, + 0xaf, 0x9b, 0x0c, 0xf4, 0xca, 0x94, 0xc7, 0x69, + 0xd1, 0x7d, 0xc5, 0xd2, 0xd9, 0x59, 0x43, 0x61, + 0x27, 0xf9, 0xce, 0xf6, 0xc1, 0x48, 0x0b, 0xd2, + 0x35, 0x9f, 0xc1, 0x0e, 0x1a, 0xaa, 0x42, 0xb4, + 0x33, 0x14, 0x41, 0xa8, 0x1e, 0x5f, 0x7c, 0xf1, + 0x9b, 0x7f, 0x68, 0x4b, 0xcc, 0x6e, 0x47, 0x62, + 0xd0, 0x55, 0x32, 0x16, 0x3a, 0x6a, 0xf1, 0x59, + 0x06, 0x30, 0x43, 0xf0, 0x18, 0xd4, 0x40, 0x0f, + 0x49, 0x6a, 0xd5, 0xab, 0x43, 0x4d, 0x72, 0x33, + 0x5c, 0xc3, 0x84, 0x4a, 0x20, 0xce, 0x38, 0x2c, + 0x32, 0x92, 0x08, 0x53, 0x76, 0x04, 0x23, 0x3a, + 0x22, 0x1f, 0xa5, 0xe7, 0x08, 0xab, 0x5a, 0x5d, + 0x12, 0xf9, 0x54, 0x60, 0x62, 0x60, 0xf2, 0x64, + 0xcd, 0xaa, 0x0b, 0x30, 0x0a, 0xc8, 0x2a, 0x03, + 0xa9, 0x60, 0x32, 0x9b, 0x95, 0x99, 0xce, 0x0c, + 0x45, 0xa6, 0xa0, 0xc9, 0xf5, 0x0c, 0x7f, 0xec, + 0x08, 0x1c, 0x55, 0x86, 0x2d, 0x4a, 0x92, 0x70, + 0xd2, 0xb3, 0x84, 0x6b, 0x15, 0x8c, 0xa3, 0x38, + 0x44, 0xf2, 0x25, 0x2d, 0x71, 0xcc, 0x24, 0x29, + 0x01, 0x5f, 0xaf, 0xfb, 0xd3, 0x1b, 0xe3, 0xcc, + 0x8c, 0xd4, 0x0b, 0x50, 0x55, 0xa2, 0x69, 0xc8, + 0xe8, 0x14, 0xc8, 0xfa, 0x6d, 0x5a, 0xb5, 0x69, + 0xfd, 0x5b, 0x62, 0x3d, 0xfb, 0x77, 0x28, 0x4a, + 0x70, 0xaa, 0x94, 0x13, 0x38, 0x53, 0x04, 0xa8, + 0xaa, 0x97, 0xa5, 0x9f, 0x3e, 0x76, 0x36, 0xfb, + 0x0c, 0xd7, 0x40, 0x78, 0x66, 0x03, 0xa9, 0x5d, + 0x22, 0x77, 0xcf, 0x50, 0xcb, 0x2d, 0x3f, 0xa1, + 0x1f, 0x0e, 0xfc, 0x20, 0x20, 0x6e, 0x01, 0x51, + 0xee, 0x1c, 0xf7, 0x2c, 0x45, 0x4d, 0x89, 0x4d, + 0xd1, 0x10, 0x73, 0x7b, 0x60, 0x66, 0x20, 0xa3, + 0x60, 0x69, 0xe9, 0x33, 0xc7, 0x8c, 0xac, 0x0e, + 0x33, 0xf7, 0xdf, 0x1e, 0xd0, 0xc6, 0x2c, 0xd4, + 0x00, 0xc3, 0xbd, 0x77, 0x74, 0x2d, 0xd6, 0xc6, + 0x04, 0xa2, 0x90, 0xa5, 0xa0, 0x8f, 0xd4, 0x66, + 0x7f, 0xd2, 0x5b, 0x62, 0x07, 0xb0, 0xce, 0x1a, + 0x79, 0x2b, 0x9f, 0xbe, 0x25, 0xc3, 0xe3, 0xbb, + 0x46, 0x1a, 0xa7, 0xbb, 0x93, 0xda, 0x29, 0x18, + 0xea, 0x3a, 0x4c, 0x2c, 0x40, 0xe8, 0xc1, 0xa2, + 0x61, 0xc2, 0xbd, 0xaf, 0x09, 0xa2, 0xe0, 0xd0, + 0xea, 0x5b, 0x45, 0x7b, 0xad, 0x43, 0x1e, 0xef, + 0xa3, 0x3e, 0x7c, 0xe4, 0xd3, 0x8d, 0xd8, 0x78, + 0x6c, 0xf4, 0xc2, 0xf4, 0x56, 0xa2, 0x10, 0x79, + 0x7d, 0xf3, 0xc6, 0x6d, 0x0e, 0x95, 0x01, 0x48, + 0x3c, 0xdf, 0x7b, 0xf7, 0xb7, 0x1e, 0xeb, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x1f, + 0xf8, 0xc3, 0x73, 0x94, 0x62, 0x0d, 0x02, 0xab, + 0xa0, 0x0e, 0xaf, 0xd0, 0x8c, 0xb6, 0x01, 0x88, + 0x01, 0x1c, 0xfb, 0x6b, 0x13, 0xb0, 0x5f, 0x46, + 0x37, 0x1e, 0x1f, 0xe1, 0x5e, 0x2d, 0xf7, 0xb7, + 0x0c, 0xa8, 0x87, 0xda, 0xb7, 0xa5, 0xe8, 0xb3, + 0x30, 0xc2, 0x85, 0xa1, 0xf3, 0x7e, 0xfd, 0x0c, + 0x53, 0x07, 0x50, 0x1b, 0x85, 0xaa, 0xa4, 0x8b, + 0x8a, 0x7d, 0x4e, 0x99, 0x1f, 0x1a, 0xaa, 0x8c, + 0x8e, 0xb4, 0x59, 0x9b, 0xd3, 0xbb, 0x5d, 0x2d, + 0x17, 0x13, 0xc1, 0xe2, 0x01, 0xde, 0xab, 0x5e, + 0xb4, 0xdf, 0x78, 0x0e, 0x38, 0x54, 0x13, 0x8e, + 0x0f, 0x2f, 0x42, 0x32, 0xb8, 0xa8, 0x6c, 0x44, + 0x84, 0x38, 0x00, 0x15, 0x60, 0x16, 0x1d, 0xf4, + 0xa2, 0x45, 0x91, 0xa4, 0xc2, 0xff, 0x00, 0x02, + 0xe6, 0x3e, 0x6b, 0xdd, 0x4e, 0xac, 0xbe, 0x37, + 0xd8, 0xdd, 0xde, 0x7e, 0x1d, 0x18, 0xcf, 0xa4, + 0x0d, 0x82, 0x22, 0x90, 0x58, 0x1a, 0x73, 0x81, + 0xc9, 0x6a, 0x08, 0x04, 0x78, 0x17, 0x10, 0x98, + 0xb5, 0x56, 0x28, 0xb6, 0x8b, 0x59, 0x0a, 0x1a, + 0xe3, 0x81, 0x5c, 0xb1, 0x25, 0x39, 0x99, 0x44, + 0x0b, 0xaf, 0xa1, 0x5a, 0x6f, 0xdf, 0x00, 0xbb, + 0x46, 0x0d, 0x49, 0x5c, 0xaf, 0xc1, 0x1f, 0x6e, + 0x2f, 0x0a, 0x3e, 0xe5, 0xf3, 0xbc, 0x27, 0xf8, + 0xaa, 0x05, 0x6f, 0xc6, 0x52, 0x0b, 0xa0, 0x35, + 0x6f, 0x83, 0x67, 0x9d, 0x28, 0x3a, 0xec, 0x46, + 0xfd, 0x85, 0x72, 0xce, 0xb5, 0x26, 0x18, 0x33, + 0x58, 0x87, 0x7a, 0xd0, 0xa5, 0x25, 0xa1, 0x9b, + 0xae, 0x86, 0x3e, 0xe2, 0x44, 0x80, 0x58, 0x23, + 0x64, 0x34, 0x74, 0x57, 0x60, 0xb7, 0xa2, 0x72, + 0x91, 0xae, 0xb9, 0x5d, 0x42, 0xa8, 0xdc, 0x41, + 0x4c, 0xe2, 0xbf, 0x6e, 0xb7, 0xf6, 0xb9, 0xc3, + 0xc8, 0x9b, 0x86, 0xe4, 0x57, 0x0c, 0x91, 0x98, + 0xf3, 0x60, 0x9f, 0x36, 0xcf, 0x41, 0xd7, 0xda, + 0x8d, 0xcd, 0x40, 0xb6, 0x9f, 0xcb, 0xd4, 0xdf, + 0x40, 0xfe, 0x7a, 0xc3, 0x25, 0xa0, 0x70, 0x7b, + 0x05, 0xab, 0x40, 0x52, 0x02, 0xc2, 0x40, 0x02, + 0x0d, 0x88, 0xb8, 0x89, 0x84, 0x4c, 0x89, 0xa9, + 0x1a, 0x50, 0xa7, 0xb8, 0x6b, 0x06, 0xe5, 0x57, + 0x7a, 0xbf, 0xca, 0x79, 0x7d, 0xf3, 0xc6, 0x6d, + 0xfd, 0xa6, 0x7f, 0x31, 0xb9, 0xc1, 0x03, 0x3c, + 0x32, 0xba, 0xdc, 0x27, 0x5f, 0xd2, 0x38, 0x71, + 0xe3, 0xc7, 0x8f, 0xca, 0xd1, 0x97, 0xee, 0x32, + 0x56, 0xae, 0xaf, 0x3a, 0xc5, 0x56, 0xe1, 0x08, + 0x94, 0xb1, 0x63, 0x4c, 0x5b, 0x35, 0x8b, 0x89, + 0xb6, 0xb5, 0x14, 0xd3, 0xad, 0x7e, 0xc3, 0xd9, + 0xa1, 0xb4, 0x3a, 0x83, 0xc6, 0x08, 0xc0, 0x0c, + 0x06, 0x80, 0x06, 0xc0, 0x06, 0x20, 0xc5, 0x30, + 0x20, 0x28, 0x2a, 0x24, 0xba, 0x15, 0x45, 0xc8, + 0xab, 0x76, 0xb2, 0x9d, 0x0f, 0xc4, 0xfb, 0x8e, + 0x73, 0x2a, 0x67, 0x64, 0x6e, 0xec, 0x03, 0x96, + 0x72, 0xb9, 0xcc, 0xb5, 0xb3, 0xe7, 0x4f, 0x5b, + 0x13, 0x6f, 0x7a, 0x48, 0xa8, 0x4c, 0x04, 0x2a, + 0xc9, 0x14, 0x39, 0x52, 0x82, 0x97, 0x4a, 0x17, + 0xa4, 0x52, 0xd7, 0xa9, 0x66, 0x03, 0x43, 0xda, + 0x1e, 0xc5, 0x54, 0xa3, 0x97, 0xe1, 0x49, 0xa5, + 0x8d, 0x29, 0xc9, 0x49, 0x4e, 0x4c, 0xfa, 0x78, + 0xf1, 0xe3, 0xc4, 0x56, 0xd2, 0xeb, 0x89, 0x86, + 0xd0, 0x3c, 0x1d, 0x48, 0x76, 0x0c, 0xef, 0xb6, + 0x94, 0xf5, 0x21, 0xf0, 0xa8, 0x75, 0x68, 0x5f, + 0x75, 0x12, 0x5c, 0x7c, 0xcf, 0xe1, 0x79, 0x6b, + 0xae, 0x10, 0x03, 0xab, 0x4c, 0x26, 0xde, 0x1c, + 0x78, 0xd1, 0x6b, 0x2d, 0x0b, 0x7a, 0xd5, 0xb5, + 0x7e, 0xf5, 0x0f, 0x12, 0xaa, 0x09, 0x2b, 0x6a, + 0x00, 0xb5, 0xcb, 0x8c, 0xb1, 0x41, 0x15, 0x1c, + 0x22, 0x82, 0x6c, 0x8e, 0x52, 0xd1, 0xaf, 0x16, + 0x21, 0xea, 0x1c, 0x17, 0xb8, 0x52, 0x7b, 0x54, + 0x44, 0xfb, 0x63, 0x26, 0xe2, 0x6b, 0xc9, 0x75, + 0x15, 0xd5, 0x2d, 0xab, 0x5c, 0xb5, 0xcf, 0x5f, + 0xdf, 0xa9, 0x15, 0xc9, 0xee, 0x5a, 0x98, 0x9b, + 0x83, 0x01, 0x6d, 0x29, 0x5a, 0x11, 0x4b, 0x5f, + 0x1c, 0x97, 0xea, 0x3f, 0x49, 0x9c, 0x7b, 0x43, + 0xe6, 0xa0, 0x43, 0x95, 0x7e, 0x6c, 0x88, 0xa1, + 0xcc, 0xf0, 0xb5, 0x1d, 0x8d, 0xd0, 0xe6, 0xe9, + 0xca, 0xe5, 0x0b, 0x65, 0xa2, 0xd1, 0x39, 0x20, + 0xab, 0x4e, 0x32, 0xef, 0x03, 0x28, 0x14, 0xa0, + 0x47, 0xb0, 0xac, 0x6b, 0xd8, 0xd0, 0xf6, 0xa8, + 0x2d, 0x00, 0xd5, 0x46, 0xd0, 0xa2, 0x94, 0x55, + 0xdd, 0x56, 0x26, 0xa1, 0x62, 0x91, 0x89, 0x74, + 0xe4, 0x51, 0x61, 0x43, 0x45, 0xe8, 0x7a, 0x38, + 0xf1, 0xe3, 0x63, 0x57, 0xe4, 0xdf, 0x37, 0x98, + 0x11, 0x1e, 0x72, 0x09, 0x75, 0xa8, 0x9b, 0x54, + 0x4f, 0x29, 0x45, 0x57, 0x8f, 0x2b, 0x7e, 0x5f, + 0x7c, 0xf1, 0x9b, 0x43, 0x0b, 0x90, 0xdd, 0x9d, + 0x9b, 0x9d, 0x49, 0x70, 0x04, 0x0c, 0x8e, 0x9a, + 0x88, 0x54, 0xb7, 0xc8, 0x5d, 0xb4, 0x52, 0xf0, + 0xb5, 0x53, 0xda, 0xcb, 0xd3, 0xca, 0xda, 0xdd, + 0x96, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, + 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, + 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, + 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, + 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, + 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, + 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, + 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x08, + 0x06, 0x8d, 0x23, 0x56, 0x2e, 0x9b, 0xd6, 0xdf, + 0xe7, 0xfe, 0x89, 0x26, 0x34, 0xa3, 0xb5, 0x3f, + 0x2f, 0xbe, 0x78, 0xcd, 0xa0, 0x0d, 0x80, 0xee, + 0x40, 0x2e, 0x5e, 0xb0, 0xe9, 0x26, 0xbd, 0x41, + 0x88, 0xc2, 0x03, 0xde, 0x46, 0xba, 0x40, 0x2d, + 0x8a, 0x00, 0x5a, 0x00, 0xa3, 0xfb, 0x0e, 0x72, + 0xea, 0x44, 0x99, 0xa0, 0xd2, 0x61, 0x65, 0x17, + 0x4a, 0xa5, 0x5a, 0x30, 0xd2, 0xb2, 0x28, 0x80, + 0x6b, 0xfa, 0x8e, 0xdd, 0xbb, 0x76, 0xed, 0xdb, + 0xb7, 0x6e, 0xdd, 0xbb, 0x76, 0xed, 0xdb, 0xb7, + 0x6e, 0xdd, 0xbb, 0xdd, 0xaf, 0xde, 0x85, 0xeb, + 0xa7, 0xeb, 0x06, 0xa5, 0x2d, 0xaa, 0x13, 0xfd, + 0x2f, 0xe4, 0x98, 0x34, 0xd1, 0x7b, 0x58, 0x90, + 0xa9, 0x27, 0x02, 0xa1, 0x33, 0x16, 0xc4, 0xa7, + 0xab, 0x54, 0x35, 0x37, 0xfa, 0xa7, 0x3b, 0x76, + 0xed, 0xdb, 0xb7, 0x6e, 0xdd, 0xbb, 0x76, 0xed, + 0xdb, 0xb7, 0x6e, 0xdd, 0xbb, 0x76, 0xed, 0xd9, + 0xc4, 0x48, 0x37, 0x2a, 0x18, 0x16, 0xa9, 0xd4, + 0x00, 0x03, 0x07, 0x3d, 0x2e, 0x2c, 0x40, 0x44, + 0xba, 0x3c, 0x9e, 0x0f, 0xb2, 0x15, 0x81, 0x0f, + 0xcb, 0xef, 0x9e, 0x33, 0x6e, 0x00, 0x0a, 0x25, + 0x03, 0xf1, 0x80, 0x43, 0xf6, 0xea, 0x6f, 0x65, + 0xca, 0x1d, 0x97, 0x68, 0x91, 0x84, 0x8d, 0x29, + 0x18, 0x1a, 0x38, 0xcb, 0x1f, 0x34, 0x11, 0x42, + 0xa6, 0x86, 0x90, 0x7f, 0xab, 0x36, 0x6c, 0xd9, + 0xb3, 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb3, + 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb5, 0x9d, + 0x14, 0xb6, 0xe5, 0x6e, 0x10, 0x8e, 0xe5, 0x26, + 0xb5, 0x6f, 0xac, 0x9f, 0xe5, 0x66, 0x66, 0x04, + 0x14, 0x19, 0x4d, 0xbd, 0x1d, 0xe2, 0xc0, 0xb8, + 0xfb, 0x74, 0x04, 0xb5, 0x50, 0x00, 0xaa, 0x80, + 0x2e, 0x22, 0x1b, 0xeb, 0x1b, 0x62, 0xa9, 0xbe, + 0xf3, 0x8e, 0xbe, 0x4d, 0x01, 0x9a, 0x2f, 0x4d, + 0xb5, 0x2e, 0x20, 0xb2, 0xff, 0x00, 0xf4, 0xb2, + 0x87, 0x76, 0x59, 0x19, 0xeb, 0x5a, 0x13, 0x0a, + 0xec, 0xdf, 0xe3, 0x41, 0x28, 0x45, 0xd8, 0x74, + 0x9f, 0xe0, 0x15, 0x1a, 0x25, 0x21, 0x0f, 0xd4, + 0xf0, 0xcb, 0x82, 0x70, 0xd4, 0x1c, 0x4d, 0xee, + 0xbd, 0x01, 0xc5, 0x45, 0x33, 0x08, 0xc0, 0x26, + 0xb3, 0xde, 0x47, 0xfc, 0x9c, 0x21, 0x84, 0xa7, + 0x87, 0x6e, 0x58, 0xdc, 0x97, 0x75, 0xa3, 0x7a, + 0xc5, 0x1c, 0x1f, 0xe0, 0x03, 0x22, 0x2a, 0x22, + 0x45, 0x6c, 0x54, 0x00, 0xa8, 0x59, 0x82, 0x3c, + 0xe9, 0x51, 0x21, 0xe8, 0x35, 0x72, 0x73, 0x9c, + 0x19, 0x42, 0x37, 0x71, 0x17, 0x02, 0x68, 0x41, + 0xbe, 0x37, 0x1d, 0x74, 0x65, 0x10, 0x43, 0xfc, + 0x69, 0xe5, 0x79, 0x68, 0xd4, 0x88, 0x9b, 0x71, + 0xd4, 0x3f, 0x61, 0x52, 0x19, 0x51, 0x84, 0xc6, + 0x5c, 0x80, 0x1f, 0xba, 0x64, 0x02, 0x2c, 0x17, + 0xeb, 0xc8, 0x8c, 0x24, 0x4e, 0x25, 0x70, 0x0b, + 0x5a, 0xea, 0xb2, 0x16, 0x38, 0x33, 0x03, 0xd4, + 0xdb, 0xd1, 0xde, 0x6f, 0xa8, 0xe4, 0x05, 0xe9, + 0xb2, 0x83, 0x16, 0x35, 0x08, 0x41, 0x82, 0x85, + 0x10, 0x44, 0x4d, 0x11, 0xc2, 0x26, 0x11, 0xc2, + 0x45, 0xc4, 0x57, 0x7c, 0xd6, 0x49, 0x6d, 0x71, + 0xab, 0x3f, 0x78, 0x4f, 0xde, 0x13, 0xf7, 0x84, + 0xfd, 0xe1, 0x3f, 0x78, 0x4f, 0xde, 0x13, 0xf7, + 0x84, 0x70, 0xda, 0xc7, 0x58, 0x40, 0xae, 0x51, + 0x55, 0x54, 0x86, 0x96, 0x4a, 0x18, 0x47, 0x00, + 0xac, 0x52, 0x83, 0x0a, 0xd6, 0xac, 0xb4, 0x3a, + 0x4e, 0x90, 0x06, 0x01, 0xbf, 0x1a, 0x6c, 0xc0, + 0x91, 0x61, 0x3e, 0x95, 0x56, 0x77, 0x6e, 0xd5, + 0x3a, 0x0e, 0xcc, 0x90, 0x89, 0x85, 0x5a, 0xb2, + 0xd6, 0xb5, 0x7c, 0xe2, 0x79, 0x61, 0xec, 0x37, + 0x29, 0x4b, 0x36, 0xb5, 0x5f, 0x27, 0xef, 0x09, + 0xfb, 0xc2, 0x7e, 0xf0, 0x9f, 0xbc, 0x27, 0xef, + 0x09, 0xfb, 0xc2, 0x7e, 0xf0, 0x8c, 0x47, 0xb8, + 0xdb, 0x00, 0x89, 0xa1, 0x6b, 0x25, 0x2a, 0xa6, + 0xca, 0xe2, 0xed, 0x9f, 0x97, 0xdf, 0x3c, 0x66, + 0xd0, 0x45, 0x8f, 0x52, 0x15, 0x9b, 0xca, 0x06, + 0x1d, 0x73, 0xdb, 0x61, 0x95, 0x4b, 0xd2, 0x16, + 0xda, 0xab, 0x05, 0x00, 0xe8, 0xd6, 0xa9, 0x5c, + 0x14, 0xa0, 0x51, 0xa6, 0x98, 0x1a, 0xe6, 0xa1, + 0x70, 0xa5, 0x77, 0x38, 0x82, 0x85, 0x8c, 0x77, + 0xd7, 0x0a, 0x0b, 0xbc, 0x9f, 0xad, 0x8a, 0xda, + 0x00, 0xb2, 0x7d, 0x01, 0x7d, 0xe3, 0x8d, 0xb2, + 0x21, 0x83, 0xce, 0xa4, 0x28, 0xfd, 0xcf, 0x98, + 0x35, 0x3b, 0x01, 0xd9, 0x71, 0x4f, 0xef, 0xcd, + 0x30, 0x96, 0x21, 0x92, 0x96, 0x86, 0x22, 0x3a, + 0x2b, 0x77, 0x42, 0x86, 0x84, 0x0c, 0xd8, 0xdf, + 0x5d, 0x7c, 0x93, 0x1f, 0x2a, 0xa2, 0x64, 0xb6, + 0xc1, 0x34, 0x12, 0xac, 0x87, 0x06, 0x80, 0x65, + 0x4d, 0xd4, 0x89, 0x80, 0x5e, 0x4a, 0xb3, 0x24, + 0x69, 0x24, 0xba, 0x61, 0x23, 0x4f, 0x8b, 0x38, + 0x65, 0xf1, 0xd8, 0xea, 0xcc, 0x7d, 0x4d, 0x5c, + 0x71, 0x19, 0x89, 0x18, 0x83, 0xf9, 0x6b, 0x31, + 0xbc, 0x3e, 0x48, 0x73, 0x4c, 0x78, 0x70, 0x75, + 0x4a, 0x51, 0xa8, 0x61, 0x22, 0x75, 0x29, 0x7a, + 0x91, 0x7c, 0x7d, 0x2f, 0xc2, 0x2e, 0x9a, 0x5e, + 0x2a, 0x33, 0x66, 0xc5, 0x7a, 0x17, 0xb9, 0x85, + 0x56, 0x97, 0xb6, 0x82, 0x51, 0x3f, 0xa4, 0x42, + 0x8e, 0x60, 0x53, 0x42, 0x22, 0x45, 0x35, 0x52, + 0x11, 0x46, 0xaa, 0x59, 0x2c, 0x58, 0x62, 0x22, + 0x18, 0x4a, 0x93, 0x6b, 0x19, 0x6d, 0x9d, 0x7c, + 0x47, 0x9f, 0xb2, 0x77, 0x97, 0x35, 0x30, 0x4c, + 0x35, 0x6d, 0xbc, 0x08, 0x4f, 0x64, 0x23, 0x41, + 0x1b, 0x67, 0x60, 0x3a, 0x21, 0x0c, 0x8c, 0xaa, + 0x17, 0x96, 0x71, 0xad, 0x6d, 0x4c, 0x5a, 0xed, + 0x15, 0xaf, 0x91, 0xf2, 0x11, 0xaa, 0x77, 0x28, + 0x64, 0xf8, 0x27, 0x9a, 0xc7, 0x41, 0xab, 0x4a, + 0x10, 0x66, 0x3d, 0xac, 0x7e, 0xef, 0xd6, 0x8f, + 0x0f, 0xa1, 0x86, 0xdb, 0xf0, 0x76, 0xae, 0x51, + 0x25, 0x00, 0x2a, 0x77, 0x64, 0xde, 0xb7, 0x92, + 0x23, 0xf6, 0x35, 0x98, 0x27, 0xec, 0x09, 0x9d, + 0x94, 0xd3, 0xe0, 0x95, 0xff, 0x00, 0xd5, 0xb5, + 0x14, 0x4f, 0xc9, 0xdb, 0x6b, 0xa1, 0x5f, 0x77, + 0x41, 0x6a, 0xd4, 0xcd, 0xe0, 0x8c, 0x1a, 0x08, + 0x47, 0x29, 0x81, 0xa1, 0x0e, 0xc8, 0xc6, 0x76, + 0xa1, 0x6d, 0x9c, 0xf0, 0xa4, 0xe0, 0x28, 0x2d, + 0x9e, 0x06, 0x62, 0xa1, 0xa1, 0x88, 0xf7, 0xf8, + 0xef, 0x9a, 0x3c, 0x2c, 0x45, 0x03, 0x21, 0xd8, + 0xa0, 0x28, 0x24, 0x90, 0x10, 0x13, 0x8c, 0x9e, + 0x7c, 0x3a, 0x52, 0x0a, 0x19, 0x0d, 0xf5, 0x6e, + 0x52, 0xcf, 0x37, 0x30, 0x4a, 0xfa, 0xde, 0x29, + 0xe4, 0x0d, 0xda, 0xd4, 0x18, 0x51, 0x30, 0x3e, + 0xfe, 0xc9, 0xde, 0x51, 0x69, 0xd8, 0x08, 0xe1, + 0xcb, 0x30, 0xb1, 0x24, 0x85, 0x27, 0xd0, 0x7b, + 0xce, 0x0e, 0x7b, 0xed, 0x2e, 0x55, 0xfa, 0x15, + 0x20, 0x08, 0x95, 0x54, 0x86, 0x3d, 0x8d, 0x25, + 0xbf, 0x6f, 0x69, 0x6f, 0xdb, 0xda, 0x5b, 0xf6, + 0xf6, 0x96, 0xfd, 0xbd, 0xa5, 0xbf, 0x6f, 0x69, + 0x6f, 0xdb, 0xda, 0x24, 0x2d, 0x94, 0x2d, 0x06, + 0x5a, 0xf6, 0x2c, 0x0b, 0x7d, 0xb2, 0x47, 0x5c, + 0xf9, 0x13, 0x9b, 0xb4, 0x0e, 0x13, 0x66, 0x05, + 0xe0, 0x23, 0x9d, 0x3e, 0x4a, 0xb7, 0xce, 0xfa, + 0xc2, 0xea, 0xc2, 0xd4, 0xb0, 0xa5, 0x4e, 0x85, + 0xc1, 0xd0, 0xcf, 0x3b, 0xb9, 0x75, 0xd2, 0xfa, + 0x62, 0x90, 0x13, 0x4e, 0x53, 0x1a, 0x3c, 0xab, + 0x79, 0x11, 0x73, 0xcc, 0x2e, 0xc9, 0xdc, 0x72, + 0xd8, 0x85, 0x50, 0x6c, 0x2b, 0x04, 0x97, 0xc6, + 0xc5, 0xa9, 0x40, 0xdb, 0xf6, 0xf6, 0x96, 0xfd, + 0xbd, 0xa5, 0xbf, 0x6f, 0x69, 0x6f, 0xdb, 0xda, + 0x5b, 0xf6, 0xf6, 0x96, 0xfd, 0xbd, 0xa5, 0xbf, + 0x6f, 0x68, 0x9f, 0x68, 0xf1, 0x37, 0xbd, 0x45, + 0x01, 0x83, 0x90, 0xa5, 0x8e, 0x98, 0x5f, 0x2c, + 0x9a, 0x5e, 0xac, 0x7c, 0xbe, 0xf9, 0xe3, 0x36, + 0xe0, 0xd7, 0xa9, 0x3c, 0x58, 0x19, 0x72, 0xd5, + 0xdd, 0x0f, 0x69, 0xa7, 0xe7, 0x3b, 0xca, 0x7e, + 0x73, 0xbc, 0x41, 0xa8, 0xea, 0xbf, 0x26, 0x72, + 0x5f, 0xea, 0x70, 0x92, 0xce, 0xe0, 0x95, 0x58, + 0x58, 0x52, 0x93, 0xf5, 0x33, 0x8a, 0x4e, 0xc3, + 0x1a, 0x3b, 0xce, 0x03, 0x18, 0xd1, 0x51, 0x81, + 0x72, 0x46, 0x47, 0x20, 0x15, 0x40, 0x45, 0xef, + 0xc8, 0x42, 0x99, 0x14, 0x43, 0x9c, 0x2b, 0xf7, + 0x65, 0xa7, 0x2e, 0x20, 0xd9, 0xfa, 0xc1, 0xe0, + 0x75, 0x11, 0x14, 0x5b, 0x93, 0x45, 0x9d, 0x31, + 0x57, 0x27, 0x2e, 0xda, 0x1d, 0x4d, 0x11, 0x54, + 0x12, 0xe5, 0x28, 0x30, 0x29, 0x9c, 0xc8, 0x32, + 0x45, 0xd2, 0xc4, 0xb1, 0xe6, 0x74, 0xda, 0x81, + 0x19, 0x05, 0x27, 0x1d, 0x60, 0xb1, 0x82, 0x17, + 0xd1, 0x50, 0x03, 0xab, 0xb9, 0x38, 0xbb, 0x8f, + 0x90, 0xda, 0xba, 0x33, 0xf0, 0x0b, 0x66, 0x53, + 0x9d, 0x10, 0x20, 0x14, 0x90, 0x0a, 0x0a, 0xbb, + 0x60, 0x6f, 0x5c, 0x92, 0x90, 0x2d, 0x24, 0x40, + 0xe3, 0x2a, 0x1a, 0xd1, 0x7f, 0xe0, 0x77, 0x01, + 0x87, 0x5e, 0xb2, 0x4d, 0xfb, 0xc9, 0x40, 0xcd, + 0xcb, 0xde, 0x77, 0x62, 0xf0, 0xaa, 0xcd, 0x27, + 0x9d, 0x0c, 0xa1, 0x8c, 0xcd, 0x13, 0xde, 0x9f, + 0x9c, 0xef, 0x0c, 0x3c, 0x00, 0x12, 0xf1, 0x77, + 0xe7, 0xc1, 0x17, 0x3e, 0xe6, 0x2b, 0x04, 0xd9, + 0x5b, 0x81, 0x15, 0x98, 0x5e, 0xce, 0xb1, 0x62, + 0x5c, 0x59, 0x83, 0xd5, 0x12, 0x24, 0x48, 0x91, + 0x22, 0x15, 0x17, 0x3f, 0xba, 0x80, 0x6a, 0x30, + 0x01, 0x57, 0x01, 0x1b, 0x2d, 0x83, 0x42, 0x96, + 0x03, 0xa2, 0x22, 0x58, 0x58, 0xdc, 0xab, 0x58, + 0x4d, 0x1f, 0x77, 0x4f, 0x7b, 0xe9, 0xee, 0x9a, + 0xbe, 0xce, 0xbe, 0xd7, 0xd7, 0xd9, 0x0c, 0x7d, + 0x09, 0x9d, 0x67, 0xd1, 0x1e, 0xe4, 0xfa, 0xfd, + 0x7b, 0x2f, 0xd5, 0x72, 0xea, 0x2d, 0x44, 0xff, + 0x00, 0x81, 0x91, 0x22, 0x44, 0x89, 0x12, 0x24, + 0x47, 0x0c, 0x49, 0x65, 0x7e, 0xcf, 0x6e, 0x9f, + 0x90, 0x25, 0x18, 0x94, 0x63, 0x21, 0x04, 0xd6, + 0x02, 0xc4, 0xb2, 0x0e, 0xe9, 0xee, 0x35, 0x08, + 0x78, 0x39, 0xf7, 0xf3, 0x30, 0x30, 0x60, 0xc1, + 0x83, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc1, 0xd0, + 0xef, 0xed, 0x17, 0x2a, 0x90, 0xc1, 0xa2, 0x57, + 0xe5, 0x8a, 0x82, 0x1d, 0xec, 0x7b, 0xfe, 0xb4, + 0x40, 0x60, 0xc1, 0x83, 0x06, 0x0f, 0x11, 0x79, + 0x7e, 0x72, 0x66, 0xc1, 0xab, 0x26, 0x85, 0x74, + 0xad, 0x90, 0x2e, 0x51, 0x21, 0x2a, 0xdc, 0x55, + 0x6e, 0xa0, 0x8b, 0x3c, 0xbe, 0xf9, 0xe3, 0x36, + 0x80, 0x01, 0x1c, 0x69, 0x97, 0xee, 0x7b, 0x7d, + 0x63, 0x2b, 0x91, 0x4c, 0xb1, 0x2d, 0xbb, 0xfc, + 0x17, 0xc2, 0x1d, 0xbf, 0xe3, 0x9e, 0x1e, 0x21, + 0x32, 0x80, 0xb0, 0xa0, 0x60, 0xa2, 0xdd, 0xf1, + 0xab, 0x99, 0xa7, 0x0b, 0xc2, 0x01, 0x6a, 0xc0, + 0x22, 0xe1, 0x41, 0x69, 0x4c, 0x59, 0x15, 0x1b, + 0x65, 0x9a, 0x2a, 0x55, 0x95, 0x12, 0xb1, 0x55, + 0x55, 0x88, 0x02, 0x20, 0xee, 0xc9, 0x2b, 0x6d, + 0xb3, 0x75, 0xb9, 0x6c, 0xcb, 0xac, 0xf7, 0x5c, + 0x32, 0x14, 0x52, 0xb9, 0xa1, 0x84, 0x41, 0x58, + 0xa8, 0x03, 0x41, 0xa6, 0x81, 0x6b, 0x69, 0x72, + 0xf5, 0x55, 0x35, 0x16, 0xd3, 0x96, 0x08, 0x05, + 0xab, 0x00, 0x8b, 0x85, 0x05, 0xa5, 0x31, 0x64, + 0x5d, 0x2a, 0x68, 0xee, 0x22, 0x82, 0x58, 0x26, + 0x1a, 0x4b, 0x30, 0xc5, 0x8a, 0x40, 0x82, 0xae, + 0x9b, 0x46, 0x02, 0x72, 0x83, 0x4b, 0xed, 0x14, + 0x00, 0x11, 0x00, 0x38, 0x44, 0x50, 0x89, 0x84, + 0x70, 0xca, 0x48, 0xde, 0x02, 0x8b, 0x4c, 0x2b, + 0x2b, 0x61, 0x76, 0xad, 0xe6, 0x1f, 0x17, 0x18, + 0xd1, 0x80, 0xd8, 0x94, 0x18, 0x4c, 0x03, 0x0b, + 0x79, 0x1b, 0x4f, 0x68, 0x13, 0x41, 0x73, 0x4a, + 0xa5, 0xae, 0x5c, 0xc4, 0x74, 0x96, 0xc0, 0xd8, + 0xbb, 0x06, 0xf1, 0x32, 0xe3, 0xd6, 0x06, 0xc6, + 0xd2, 0xdc, 0x81, 0xc2, 0x64, 0x20, 0x48, 0x15, + 0x86, 0x66, 0x28, 0x05, 0xa8, 0x60, 0xb5, 0xa3, + 0x04, 0x14, 0x2a, 0x0a, 0x10, 0x51, 0x16, 0x09, + 0x83, 0x90, 0xd5, 0x30, 0xe2, 0x2c, 0x84, 0x2a, + 0x2b, 0x37, 0x6a, 0xd4, 0xb6, 0xdd, 0x05, 0xdb, + 0xbc, 0x04, 0x00, 0x80, 0x00, 0x08, 0x03, 0x00, + 0x05, 0x00, 0x34, 0x38, 0x5e, 0x4f, 0x78, 0xf0, + 0x2f, 0xf8, 0x86, 0xcd, 0x60, 0x4b, 0xb2, 0xf8, + 0xcb, 0xb7, 0x6d, 0xa6, 0xa7, 0x61, 0x35, 0x9c, + 0x4c, 0xf5, 0x5d, 0x11, 0xbb, 0xfb, 0xa6, 0xc2, + 0xb2, 0x55, 0x94, 0x56, 0xdd, 0x44, 0xcf, 0x9c, + 0xc5, 0x4a, 0xbd, 0xbd, 0xcb, 0x20, 0x14, 0x2d, + 0x93, 0xcd, 0x1c, 0x07, 0xbb, 0x3d, 0x67, 0xec, + 0x19, 0xcc, 0xb7, 0x29, 0x26, 0x30, 0x7d, 0xcc, + 0x14, 0x80, 0x22, 0x6d, 0x4b, 0xbe, 0x83, 0x1c, + 0x75, 0x90, 0x0a, 0x69, 0xba, 0x7f, 0x33, 0x68, + 0x1b, 0x62, 0xf5, 0x1e, 0x1c, 0x95, 0xec, 0x5d, + 0xcd, 0xb0, 0x97, 0x4b, 0x4c, 0x8b, 0x92, 0xc8, + 0xb1, 0xfd, 0xcc, 0xde, 0xa2, 0xca, 0x04, 0x29, + 0x52, 0xf3, 0x2d, 0xbc, 0x13, 0x12, 0x7e, 0x8a, + 0x24, 0x8a, 0x7f, 0x31, 0x85, 0xa2, 0xe6, 0xdd, + 0xea, 0x72, 0x4f, 0xe4, 0x3b, 0x10, 0x76, 0x57, + 0x35, 0x3d, 0xbd, 0x91, 0x50, 0x81, 0x3b, 0x71, + 0x64, 0xa3, 0x03, 0x09, 0x6a, 0x59, 0x30, 0x80, + 0x29, 0x6c, 0x8d, 0x5d, 0x51, 0xd6, 0xdc, 0x5a, + 0x5f, 0xc8, 0x2e, 0xe5, 0x56, 0x06, 0xe0, 0x64, + 0xd1, 0x66, 0x82, 0x78, 0x61, 0x22, 0x74, 0x71, + 0xc6, 0x56, 0xeb, 0x5f, 0x03, 0x3f, 0x03, 0xbb, + 0x90, 0x75, 0xa2, 0x67, 0x08, 0x8b, 0xe4, 0xa2, + 0xd8, 0x53, 0xa8, 0xe9, 0x39, 0x30, 0xd5, 0x07, + 0xdf, 0xc7, 0x45, 0x93, 0x29, 0x11, 0x12, 0x00, + 0x05, 0x02, 0x20, 0x0a, 0x04, 0x40, 0x44, 0x44, + 0x1f, 0x4d, 0xf3, 0xc4, 0xa6, 0xf9, 0x25, 0xc0, + 0xc4, 0x0f, 0x3c, 0xa8, 0x79, 0x7d, 0xf3, 0xc6, + 0x6d, 0xe8, 0x65, 0xf1, 0x61, 0x55, 0x54, 0x5c, + 0xaa, 0xea, 0xee, 0xae, 0x5e, 0x9b, 0xf7, 0xef, + 0xdf, 0xa2, 0x7d, 0x8b, 0x4a, 0x19, 0x02, 0x87, + 0x56, 0x3a, 0x8a, 0x86, 0x73, 0xa1, 0xb8, 0x21, + 0xd6, 0x40, 0x92, 0x2b, 0x42, 0x12, 0x35, 0x52, + 0x96, 0x9b, 0x9c, 0x16, 0x5b, 0x52, 0x6a, 0xea, + 0xfb, 0xa2, 0x29, 0x11, 0xdd, 0x71, 0xf8, 0xc9, + 0x43, 0xaf, 0xb9, 0x90, 0xf8, 0xe8, 0x27, 0x08, + 0xf4, 0x87, 0x7c, 0xfe, 0xc7, 0x7c, 0x8f, 0x0c, + 0x1c, 0x3d, 0x8b, 0x59, 0xb4, 0x3c, 0xa8, 0xc5, + 0x42, 0xb6, 0x1d, 0xa0, 0xf6, 0xe4, 0xab, 0x92, + 0x91, 0x77, 0x4a, 0xfb, 0xe3, 0x73, 0x12, 0x05, + 0x06, 0xac, 0x7a, 0xaf, 0xdf, 0xbf, 0x7e, 0xfd, + 0xf1, 0x8a, 0xeb, 0x10, 0x5b, 0xb4, 0x00, 0x5a, + 0xab, 0x46, 0x55, 0x75, 0x78, 0xaf, 0x65, 0xff, + 0x00, 0x75, 0x0e, 0x22, 0xf1, 0x65, 0x02, 0x22, + 0x3e, 0xbc, 0xf9, 0xf3, 0xe7, 0xcf, 0x9d, 0xa1, + 0x90, 0x0c, 0xa9, 0x98, 0xff, 0x00, 0x95, 0xdd, + 0x4c, 0x17, 0x5c, 0x07, 0x20, 0x67, 0x71, 0x54, + 0x45, 0x6e, 0x1e, 0xf6, 0x8a, 0xc4, 0x9d, 0x2e, + 0x62, 0x98, 0xb2, 0x6d, 0x3d, 0xa7, 0xe7, 0xb2, + 0xef, 0xc6, 0x80, 0x18, 0x08, 0xe4, 0x31, 0xaa, + 0xc6, 0x13, 0xf8, 0xd8, 0x13, 0x28, 0x5c, 0x50, + 0x82, 0x76, 0x2c, 0xef, 0x28, 0x7a, 0x52, 0x37, + 0xd8, 0xe5, 0x31, 0x4c, 0x7f, 0x82, 0x33, 0xe7, + 0xcf, 0x9f, 0x3e, 0x7c, 0xea, 0xa8, 0xd3, 0x45, + 0xde, 0x61, 0x64, 0x29, 0x16, 0x22, 0xfa, 0x60, + 0x21, 0x57, 0xc0, 0x0a, 0xe4, 0x8c, 0x0f, 0x85, + 0x9b, 0x24, 0x1f, 0x7b, 0x0d, 0x5c, 0x98, 0x76, + 0xac, 0x5a, 0x0e, 0xd5, 0xdb, 0x3a, 0x69, 0x09, + 0xdd, 0x60, 0x43, 0xa4, 0x18, 0x55, 0xaa, 0xd9, + 0x0e, 0xa2, 0xa5, 0x10, 0x1c, 0x82, 0x89, 0x11, + 0x8a, 0x7a, 0x84, 0x55, 0x78, 0x88, 0x82, 0x88, + 0xee, 0x84, 0xcc, 0x9b, 0xd6, 0x4a, 0x40, 0x45, + 0x75, 0x01, 0x33, 0x75, 0x21, 0x65, 0xd1, 0x93, + 0x02, 0x4a, 0x4c, 0x0d, 0xa4, 0xc2, 0xe7, 0x0e, + 0x1e, 0xb4, 0x0a, 0x38, 0x60, 0xd3, 0x7e, 0x48, + 0xc0, 0xf5, 0xe1, 0xa8, 0x87, 0x00, 0xd6, 0x48, + 0x81, 0x08, 0x4b, 0xa9, 0x03, 0xaa, 0x92, 0x41, + 0x0d, 0x20, 0x5e, 0x51, 0x36, 0x3b, 0x13, 0xe0, + 0x71, 0x46, 0x26, 0x34, 0xec, 0xe9, 0x82, 0x03, + 0xda, 0xc5, 0x7a, 0x40, 0x26, 0xfe, 0xf9, 0x1a, + 0x7b, 0xa3, 0x00, 0x8e, 0x10, 0xc0, 0x01, 0x82, + 0x0a, 0xfa, 0xef, 0x9e, 0xd9, 0x17, 0xcb, 0xef, + 0x9e, 0x33, 0x68, 0x70, 0xc0, 0xc1, 0xe5, 0x7d, + 0xdb, 0xd8, 0xe7, 0x18, 0x68, 0x19, 0xb0, 0xbf, + 0x74, 0xf5, 0xd8, 0x6e, 0x9a, 0xd6, 0xb1, 0xf5, + 0x8a, 0xad, 0x4e, 0xa4, 0x51, 0x6d, 0xcb, 0x5b, + 0x2d, 0x0a, 0x9d, 0xd3, 0xd6, 0xa0, 0x62, 0x58, + 0xc7, 0x6e, 0x19, 0x55, 0x1a, 0x7d, 0x59, 0xc1, + 0x1e, 0x09, 0xed, 0x9f, 0x01, 0x3d, 0x67, 0x9f, + 0x43, 0x43, 0x86, 0x19, 0xe1, 0xdc, 0xbe, 0x91, + 0x8c, 0xc7, 0x96, 0x54, 0xaa, 0x18, 0x19, 0xb1, + 0x24, 0xbf, 0x71, 0x20, 0x76, 0xdf, 0x04, 0x24, + 0x1b, 0xd5, 0x5d, 0x20, 0xec, 0xcc, 0xef, 0xa9, + 0x47, 0x88, 0x63, 0xa9, 0x6e, 0x91, 0xe5, 0x23, + 0xe0, 0x82, 0xc4, 0x7f, 0xc4, 0x96, 0x16, 0x44, + 0x2e, 0xaf, 0x37, 0x06, 0x3f, 0x98, 0xec, 0xce, + 0xd8, 0x88, 0x3d, 0x2d, 0xdb, 0xb7, 0x6e, 0xdd, + 0x4d, 0xd0, 0x88, 0xc2, 0xe1, 0xf5, 0x2b, 0xc0, + 0x85, 0x5a, 0x19, 0x7a, 0xc2, 0x38, 0x48, 0x48, + 0xc2, 0x2a, 0x23, 0xf2, 0xc1, 0xb4, 0xed, 0xcb, + 0xa6, 0x05, 0x16, 0x14, 0xf6, 0x32, 0xfc, 0xfa, + 0x04, 0x46, 0xdb, 0xaf, 0x5a, 0x98, 0xb4, 0x3b, + 0x7a, 0xe0, 0xe2, 0x8e, 0x03, 0x57, 0xd5, 0x2a, + 0xfd, 0x33, 0x87, 0x8b, 0xe2, 0x67, 0x67, 0x4a, + 0x20, 0x0c, 0x9e, 0x00, 0x72, 0x7e, 0xec, 0x7b, + 0x35, 0x38, 0x15, 0x7a, 0x3d, 0x25, 0x05, 0x3f, + 0x62, 0xfa, 0xcc, 0x72, 0x04, 0xd8, 0xdd, 0xbb, + 0x76, 0xed, 0xdb, 0x85, 0x2d, 0x8e, 0x11, 0x52, + 0x0d, 0x72, 0x89, 0x21, 0xeb, 0x80, 0x30, 0x40, + 0x94, 0x53, 0x28, 0x51, 0x41, 0x64, 0x02, 0xc3, + 0x1b, 0x8c, 0x02, 0x7d, 0x57, 0x7f, 0x21, 0x11, + 0x46, 0x88, 0x75, 0x50, 0xbe, 0xf7, 0xc7, 0x24, + 0x75, 0x74, 0x14, 0x02, 0x88, 0x69, 0x0c, 0x45, + 0x35, 0xd0, 0xb2, 0xf9, 0x3c, 0x26, 0x85, 0x38, + 0xb9, 0x38, 0x10, 0x00, 0xaf, 0x4c, 0x23, 0x6b, + 0x34, 0x19, 0x17, 0xb0, 0x98, 0xb3, 0xf8, 0x28, + 0x62, 0xe5, 0x94, 0x14, 0xb0, 0x2e, 0x40, 0x10, + 0x2f, 0x8b, 0x59, 0x6c, 0xa2, 0x6a, 0x17, 0x14, + 0x03, 0x7c, 0x7d, 0x02, 0xbf, 0x87, 0xd0, 0xa7, + 0xd9, 0xab, 0x34, 0x28, 0x52, 0x45, 0x26, 0xdf, + 0x3c, 0xd4, 0x00, 0xb5, 0xe7, 0x48, 0x20, 0x50, + 0x32, 0xe1, 0x7e, 0xf9, 0x3c, 0xbe, 0xf9, 0xe3, + 0x36, 0xe2, 0x92, 0x4c, 0xaf, 0xcb, 0xeb, 0xd9, + 0xbb, 0x68, 0xae, 0x82, 0xb3, 0x2e, 0x5c, 0xb9, + 0x72, 0xe5, 0xf2, 0xb1, 0x5e, 0xc3, 0xa5, 0x7b, + 0x4a, 0xc5, 0x5f, 0x09, 0x7a, 0x11, 0x05, 0x82, + 0x85, 0x4b, 0x32, 0x05, 0x50, 0x70, 0x2a, 0xfb, + 0xcd, 0x66, 0x52, 0x1e, 0xd8, 0x08, 0x1e, 0xc8, + 0x14, 0x06, 0xc0, 0x53, 0x49, 0x9a, 0x10, 0xb9, + 0x41, 0xd5, 0xa0, 0x2d, 0xf7, 0x61, 0x6b, 0x28, + 0xaa, 0x8e, 0xd6, 0xaa, 0xb3, 0x5f, 0x75, 0xcb, + 0xef, 0x2a, 0x44, 0x58, 0x2c, 0xb0, 0xb4, 0x1c, + 0xa8, 0x2a, 0x82, 0xd1, 0x6d, 0x6b, 0x03, 0x00, + 0x02, 0x10, 0x02, 0xda, 0x86, 0x02, 0x51, 0x19, + 0xcb, 0x9c, 0xb0, 0x1a, 0xa2, 0xc0, 0x02, 0xad, + 0xa2, 0xb0, 0xb1, 0xb1, 0x96, 0xdb, 0xbb, 0x7d, + 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5a, 0x58, 0xc8, + 0x51, 0xfc, 0x3a, 0x0a, 0x25, 0xe8, 0x95, 0xf1, + 0xaf, 0x40, 0x17, 0x79, 0x09, 0x2f, 0x4e, 0x1a, + 0x15, 0x6c, 0x08, 0x4d, 0xc0, 0x81, 0x7c, 0x1e, + 0x10, 0x4b, 0x67, 0xa4, 0x0c, 0xa2, 0x4a, 0xfa, + 0x0c, 0x2a, 0x5b, 0x0d, 0xaa, 0x46, 0x38, 0xb0, + 0xce, 0x49, 0x1c, 0x23, 0xe6, 0x62, 0xb8, 0x4a, + 0x3e, 0x97, 0xc1, 0x44, 0x74, 0x92, 0xff, 0x00, + 0x5c, 0x76, 0x9a, 0x01, 0x25, 0xe5, 0xf7, 0x8f, + 0x54, 0xf5, 0x00, 0x11, 0x48, 0x8c, 0xaa, 0xb3, + 0xaa, 0x79, 0x0f, 0x16, 0x54, 0x09, 0xd5, 0xe8, + 0x3f, 0x9c, 0x51, 0xde, 0x87, 0x03, 0xb3, 0x68, + 0x06, 0x3f, 0x9c, 0x18, 0x02, 0x01, 0x3b, 0x91, + 0x29, 0xed, 0x27, 0x0a, 0x65, 0x26, 0x9c, 0xcb, + 0x3c, 0x9f, 0xb5, 0xf9, 0x0f, 0x25, 0x91, 0x61, + 0xf9, 0xaa, 0xc2, 0x34, 0x5c, 0x16, 0xa5, 0x6d, + 0x08, 0xca, 0x0b, 0xe5, 0x6b, 0xc7, 0x53, 0x70, + 0xd1, 0xc8, 0xc5, 0x5a, 0xb7, 0x3a, 0x91, 0xee, + 0xb4, 0xd0, 0x11, 0xae, 0x84, 0xf5, 0x7a, 0x08, + 0x6a, 0xa9, 0xe4, 0xc4, 0x52, 0x04, 0x8a, 0xb0, + 0x01, 0x31, 0xb8, 0xc8, 0x0d, 0x7d, 0x30, 0xbc, + 0x37, 0x80, 0x72, 0x0c, 0xc8, 0x7e, 0x05, 0xba, + 0x7a, 0x8f, 0x8e, 0x67, 0x23, 0xb7, 0xf1, 0x6f, + 0x9e, 0x6e, 0xff, 0x00, 0xcb, 0xef, 0x9e, 0x33, + 0x68, 0x01, 0x08, 0x72, 0x2f, 0xef, 0xca, 0xca, + 0x88, 0x3d, 0x2a, 0xab, 0x7d, 0xb8, 0x71, 0xb0, + 0x46, 0x5c, 0x5b, 0x36, 0x6c, 0x64, 0x61, 0x3e, + 0x9a, 0x26, 0x9c, 0xb1, 0x8f, 0x0d, 0x7d, 0x78, + 0x81, 0x1c, 0x06, 0x25, 0x11, 0x07, 0x41, 0x4e, + 0xfc, 0x6d, 0x68, 0x36, 0x95, 0x67, 0x1a, 0x31, + 0xd6, 0x49, 0x1d, 0x79, 0xb3, 0xee, 0x0d, 0x9b, + 0xc6, 0xd1, 0xed, 0x72, 0x62, 0xaa, 0xe2, 0xb1, + 0xda, 0xfb, 0xcb, 0x84, 0xe1, 0xc1, 0x4b, 0x52, + 0x3c, 0xd2, 0x28, 0xb6, 0x5d, 0x50, 0xba, 0x0c, + 0xce, 0xfe, 0x9d, 0x50, 0x2f, 0x9c, 0x73, 0xe9, + 0xb9, 0xf0, 0xe0, 0x41, 0xca, 0xf1, 0xea, 0x22, + 0x3f, 0x25, 0x75, 0x26, 0x7e, 0x57, 0xf0, 0x58, + 0x6c, 0x73, 0x8b, 0x53, 0x13, 0xe0, 0x67, 0x1d, + 0x60, 0xec, 0x4c, 0x92, 0x16, 0x0d, 0xeb, 0xba, + 0xa8, 0xe5, 0x19, 0x30, 0x94, 0x28, 0xd6, 0x0a, + 0x0d, 0x07, 0x69, 0x14, 0x41, 0xe9, 0x34, 0xa6, + 0xa6, 0xda, 0x66, 0xd4, 0x69, 0xa2, 0xd0, 0xd5, + 0x2c, 0xe8, 0x11, 0x00, 0x7e, 0x12, 0x84, 0x90, + 0xfc, 0x51, 0xa4, 0x0e, 0x58, 0x02, 0x6b, 0x14, + 0xb1, 0x36, 0x2f, 0x45, 0xf7, 0xb8, 0x73, 0xd5, + 0xae, 0x25, 0xbc, 0x80, 0x4f, 0x43, 0x88, 0x1e, + 0x9f, 0x13, 0x5e, 0x2e, 0x40, 0x63, 0xfb, 0x45, + 0xbd, 0x7c, 0x4f, 0x70, 0xfb, 0xf7, 0xef, 0xdf, + 0xab, 0x47, 0x02, 0x30, 0x00, 0x06, 0xc0, 0x00, + 0xff, 0x00, 0x91, 0xa1, 0x1a, 0x46, 0x1d, 0x12, + 0x90, 0x67, 0x53, 0x45, 0x12, 0xab, 0x4a, 0x81, + 0x58, 0x59, 0x34, 0xe2, 0x78, 0x45, 0x17, 0x52, + 0x4e, 0xea, 0xec, 0x59, 0xba, 0x35, 0x7d, 0x88, + 0xed, 0xb0, 0xa8, 0xd5, 0x25, 0x83, 0x44, 0xc2, + 0x51, 0xdf, 0x04, 0x38, 0xb9, 0xbd, 0xa7, 0xc8, + 0x22, 0x98, 0x10, 0x09, 0x40, 0x03, 0x55, 0x02, + 0x85, 0xbd, 0xf5, 0x8d, 0x6c, 0x22, 0x25, 0xa5, + 0x26, 0x89, 0x78, 0x27, 0xb2, 0x67, 0xd7, 0xf7, + 0xef, 0xdf, 0xbf, 0x7e, 0xdb, 0xe3, 0xf1, 0xf2, + 0xf8, 0x25, 0xae, 0xc5, 0x98, 0x7d, 0xa0, 0xfa, + 0x3e, 0x10, 0xf7, 0x91, 0xe4, 0xc1, 0x73, 0xab, + 0x9d, 0x65, 0xd4, 0x05, 0xa6, 0x50, 0x74, 0x6b, + 0x2a, 0xe7, 0x14, 0x58, 0x74, 0x58, 0x5b, 0x74, + 0x29, 0xbe, 0x60, 0xb6, 0x5a, 0xd0, 0x88, 0xbb, + 0x5a, 0x33, 0x29, 0x2d, 0x89, 0x7a, 0x2a, 0xde, + 0xf0, 0xae, 0x71, 0x14, 0xee, 0xeb, 0x01, 0xe6, + 0x66, 0x6e, 0x16, 0xa8, 0x40, 0x54, 0x03, 0x2a, + 0x88, 0x1b, 0xab, 0x84, 0x14, 0x58, 0xa3, 0xa2, + 0x28, 0xff, 0x00, 0xd8, 0xb9, 0xd5, 0xce, 0xa8, + 0xf3, 0x7a, 0x64, 0x2b, 0x5a, 0xb1, 0x75, 0x07, + 0xb1, 0x37, 0x51, 0xd4, 0x44, 0xb9, 0xd5, 0xce, + 0x85, 0x50, 0x44, 0xd4, 0x2d, 0x3e, 0xa6, 0x89, + 0x73, 0xab, 0x9d, 0x5c, 0xea, 0xe7, 0x47, 0x90, + 0x98, 0x0a, 0x29, 0x52, 0xb0, 0x69, 0xc5, 0x89, + 0x7e, 0xcc, 0x6b, 0x85, 0x54, 0xd0, 0xce, 0x96, + 0x94, 0xb1, 0x41, 0xa5, 0x38, 0x76, 0xae, 0x6c, + 0x15, 0x1e, 0x4d, 0x7d, 0xf9, 0xe5, 0xf7, 0xcf, + 0x19, 0xb7, 0x12, 0x2c, 0xd7, 0x3f, 0xdc, 0xe9, + 0x08, 0x7b, 0x1b, 0xa4, 0x89, 0xd4, 0xfd, 0x93, + 0xa5, 0xd1, 0x82, 0x51, 0x82, 0x46, 0x8b, 0x6c, + 0x01, 0xe0, 0xe2, 0x68, 0xed, 0x5c, 0x1b, 0x99, + 0x42, 0x44, 0xa4, 0x74, 0xc3, 0xb5, 0xdf, 0xc3, + 0x44, 0x20, 0xb1, 0x7a, 0x71, 0x64, 0x06, 0xa0, + 0x4f, 0x78, 0x4a, 0xc0, 0x81, 0xf4, 0xef, 0x6b, + 0xcf, 0xb1, 0x26, 0x00, 0x06, 0x34, 0xe2, 0x67, + 0x86, 0x80, 0x73, 0x44, 0xe2, 0xa2, 0x02, 0x11, + 0xd0, 0xa3, 0xc0, 0x66, 0xf3, 0x0d, 0xff, 0x00, + 0xdc, 0x37, 0xd6, 0x9e, 0xdf, 0x1d, 0x21, 0x12, + 0x1c, 0x3a, 0x98, 0xd1, 0x66, 0xdf, 0x17, 0x3a, + 0xca, 0x64, 0x10, 0xaa, 0xf3, 0x00, 0x21, 0xed, + 0x32, 0x1b, 0x03, 0x01, 0x4c, 0x3b, 0x36, 0xff, + 0x00, 0x7a, 0x01, 0x35, 0x8e, 0x2a, 0x38, 0x4d, + 0x54, 0xc8, 0xe1, 0x16, 0xc2, 0xed, 0xd4, 0x5e, + 0xbc, 0x54, 0x0c, 0x48, 0xbf, 0xc7, 0x05, 0x02, + 0x2d, 0x96, 0xb9, 0xbb, 0x5b, 0xda, 0x61, 0xc9, + 0x24, 0x3b, 0xc9, 0xe6, 0x44, 0x7f, 0xc2, 0x1f, + 0x16, 0x5e, 0x9d, 0x15, 0x06, 0x13, 0x98, 0xf8, + 0x34, 0xbd, 0xe5, 0x23, 0x04, 0x7a, 0x73, 0x74, + 0x90, 0xba, 0x8c, 0x3a, 0x6e, 0x71, 0x97, 0xf9, + 0x96, 0x5c, 0x38, 0x00, 0x53, 0xf9, 0x22, 0xdf, + 0x86, 0xc8, 0x74, 0x41, 0xa0, 0x6c, 0xf7, 0x53, + 0x3d, 0xb3, 0x17, 0x13, 0x90, 0x38, 0xfa, 0xb7, + 0x28, 0x15, 0x84, 0xa1, 0x43, 0x1f, 0xc8, 0x2f, + 0x8c, 0xdd, 0xb8, 0xd4, 0xa3, 0x82, 0xaf, 0x7d, + 0x31, 0x08, 0x0c, 0x03, 0x78, 0x94, 0x38, 0xe8, + 0x5f, 0x79, 0xb5, 0x5b, 0xb3, 0x89, 0x1c, 0x6c, + 0x33, 0xa3, 0x2b, 0x50, 0xe7, 0xc8, 0x6c, 0x5b, + 0x49, 0x25, 0xa0, 0x41, 0xfe, 0x65, 0x59, 0x0a, + 0xa7, 0xf8, 0x59, 0xe1, 0x54, 0x96, 0xcb, 0x76, + 0xd5, 0xff, 0x00, 0x29, 0x28, 0xd9, 0x9b, 0x00, + 0x18, 0x84, 0x1a, 0x07, 0x5a, 0xb5, 0xc8, 0x8b, + 0x89, 0x4c, 0xd3, 0x5e, 0x0b, 0x4b, 0x71, 0x9f, + 0xeb, 0x64, 0x19, 0x2d, 0x14, 0x9b, 0x47, 0x26, + 0x4e, 0x8c, 0x8a, 0x87, 0x9c, 0xbe, 0x37, 0x84, + 0x91, 0x25, 0x73, 0x28, 0xa8, 0x25, 0x6c, 0x02, + 0xbb, 0xb2, 0x22, 0xc0, 0x06, 0x3b, 0x41, 0xe7, + 0x06, 0xd6, 0x93, 0x57, 0x10, 0xab, 0x23, 0xae, + 0xe0, 0xb0, 0x78, 0xe9, 0xaa, 0x12, 0x28, 0x1a, + 0xbc, 0x57, 0x3a, 0xf8, 0x42, 0x11, 0x0b, 0x70, + 0x15, 0x31, 0x20, 0xa2, 0x01, 0x9e, 0x61, 0x84, + 0xdc, 0x68, 0x34, 0x44, 0xd5, 0x4b, 0x40, 0xa5, + 0xbb, 0x9e, 0x40, 0x7e, 0x89, 0x56, 0x56, 0xa4, + 0xc5, 0xd7, 0x87, 0x2c, 0xdf, 0x65, 0xf8, 0x27, + 0x2a, 0x54, 0x25, 0x0d, 0x1c, 0x19, 0x57, 0xdc, + 0x20, 0x23, 0xb8, 0xd0, 0x14, 0x06, 0xc7, 0x86, + 0xd1, 0xef, 0xc5, 0x74, 0x70, 0x40, 0x20, 0x7d, + 0x31, 0xb6, 0x95, 0x2f, 0xa2, 0x40, 0xb6, 0x21, + 0xb1, 0x4a, 0x88, 0x23, 0x44, 0x63, 0xfc, 0x2c, + 0x22, 0x20, 0xa0, 0x24, 0xf4, 0xb3, 0x34, 0xcb, + 0xcb, 0xef, 0x9e, 0x33, 0x68, 0x69, 0x5a, 0x9c, + 0xf9, 0x25, 0xb1, 0x5e, 0x74, 0x41, 0x44, 0x4c, + 0xc6, 0xac, 0x2a, 0x49, 0xc8, 0x20, 0xc5, 0x45, + 0xbb, 0x74, 0x09, 0xd8, 0x85, 0xfd, 0x02, 0x9c, + 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb3, 0x66, + 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xae, 0xd6, 0x18, + 0x00, 0x03, 0x02, 0x80, 0x30, 0x0d, 0x00, 0xd2, + 0x1c, 0x73, 0x66, 0x4b, 0x56, 0x69, 0x19, 0xc0, + 0x5c, 0x96, 0xf1, 0xc9, 0xc9, 0x70, 0x04, 0xcd, + 0x53, 0x36, 0x23, 0x00, 0xc9, 0x5e, 0x0b, 0xd9, + 0x4a, 0xd2, 0x01, 0x61, 0x1c, 0x37, 0x1f, 0xe0, + 0xc8, 0x37, 0x6e, 0xdd, 0xbb, 0x76, 0xed, 0xcc, + 0xcd, 0x49, 0x7c, 0xb8, 0xa6, 0xf1, 0x2c, 0x67, + 0x02, 0x12, 0x1f, 0x92, 0x92, 0xa9, 0x6a, 0xd0, + 0x6a, 0x64, 0xd9, 0xfb, 0x64, 0x09, 0x93, 0x6a, + 0xd8, 0x83, 0x53, 0x5b, 0xf1, 0x8f, 0x73, 0x45, + 0xea, 0x41, 0x37, 0x5e, 0x59, 0x86, 0x36, 0xc4, + 0xb9, 0xb9, 0x4e, 0x84, 0x15, 0x4a, 0x26, 0x57, + 0xf0, 0x47, 0x12, 0x8f, 0x5e, 0xed, 0xdb, 0xb7, + 0x6e, 0xdd, 0xb8, 0x49, 0x06, 0xf1, 0xda, 0x71, + 0x11, 0xa1, 0x89, 0x3c, 0x04, 0x69, 0x68, 0x12, + 0x66, 0xca, 0xa2, 0x19, 0x1c, 0x45, 0xdb, 0xb4, + 0x78, 0xd9, 0x8a, 0xd9, 0x3f, 0x8d, 0xb8, 0x54, + 0x3d, 0xc6, 0xef, 0x11, 0x6c, 0x2a, 0x18, 0x95, + 0x1c, 0x33, 0x82, 0xce, 0x1e, 0xec, 0xc8, 0x5a, + 0x4c, 0xdb, 0x82, 0x71, 0x49, 0xc2, 0x80, 0xef, + 0xf1, 0xc1, 0xbf, 0x9a, 0xe5, 0x7e, 0x8b, 0xc0, + 0x0d, 0xc2, 0x24, 0x57, 0xe7, 0xd8, 0x6e, 0x81, + 0x45, 0x0c, 0x4c, 0xca, 0xd5, 0x48, 0x1b, 0xc5, + 0x17, 0x3c, 0x15, 0xfa, 0xa6, 0x44, 0x5d, 0x68, + 0x0e, 0xa0, 0x91, 0xba, 0x96, 0x53, 0x71, 0xe2, + 0x5b, 0xf0, 0x98, 0xd0, 0x89, 0x88, 0x1a, 0x4c, + 0x06, 0x13, 0x16, 0x91, 0x42, 0xd4, 0xb2, 0xa0, + 0x9c, 0xf4, 0xc2, 0xb1, 0x0a, 0x11, 0xe4, 0xb1, + 0x89, 0x30, 0x55, 0x64, 0x0e, 0x27, 0x1c, 0xa6, + 0x45, 0xea, 0x93, 0x6d, 0x7f, 0xc2, 0xa3, 0x52, + 0x42, 0xa9, 0x08, 0x95, 0x86, 0x4d, 0x83, 0x39, + 0x23, 0x0a, 0x5b, 0x48, 0xb5, 0x18, 0x84, 0x11, + 0x09, 0x09, 0xc5, 0xac, 0x25, 0xa5, 0x82, 0x28, + 0x40, 0x69, 0x95, 0xc6, 0xdd, 0xba, 0x09, 0x12, + 0x45, 0xa6, 0xf4, 0x24, 0x24, 0xe8, 0xd2, 0xa6, + 0xa0, 0x35, 0xb1, 0x5d, 0xe6, 0x3e, 0x5f, 0x7c, + 0xf1, 0x9b, 0x7f, 0xe1, 0xbe, 0x89, 0x5f, 0x19, + 0xd1, 0xad, 0x7d, 0xb8, 0x08, 0x59, 0x21, 0x23, + 0x36, 0x8c, 0x31, 0xd8, 0x76, 0x87, 0x2c, 0x7c, + 0x5e, 0x1d, 0xc3, 0x83, 0x39, 0x87, 0x82, 0xb1, + 0xa3, 0x44, 0x18, 0x09, 0xc1, 0x4e, 0x09, 0xa9, + 0xb3, 0x84, 0x3b, 0xf1, 0x80, 0x37, 0x00, 0x22, + 0x17, 0xde, 0x3b, 0x10, 0x39, 0x20, 0x90, 0x51, + 0x8b, 0xf8, 0xae, 0x0b, 0x47, 0xa0, 0x83, 0x65, + 0x9a, 0xbb, 0x22, 0x66, 0x02, 0xc0, 0x22, 0xb4, + 0xac, 0xdc, 0x60, 0x40, 0x20, 0xd4, 0x75, 0x51, + 0x51, 0x1d, 0x30, 0x0d, 0x01, 0x6e, 0xb4, 0x94, + 0x03, 0x2f, 0x0b, 0x13, 0xa2, 0x04, 0xe9, 0x9c, + 0xc0, 0x94, 0x32, 0x18, 0xbb, 0xae, 0xe2, 0x4b, + 0x4a, 0xf8, 0x36, 0xef, 0xaa, 0xb9, 0xe2, 0x80, + 0x0d, 0xa2, 0x4d, 0x55, 0x11, 0x2d, 0x6c, 0x3d, + 0xe3, 0x0c, 0x53, 0xb0, 0x24, 0x92, 0xd0, 0x7c, + 0x09, 0x87, 0x8a, 0xa1, 0xcb, 0xa6, 0xb0, 0xc3, + 0xa4, 0xe2, 0x6a, 0xf4, 0xf6, 0x6f, 0x23, 0x1b, + 0x08, 0xc8, 0x11, 0x62, 0x11, 0x8a, 0xbc, 0x53, + 0x84, 0xa4, 0x50, 0x96, 0xb6, 0x7b, 0x57, 0x9a, + 0xca, 0x7d, 0xb6, 0x75, 0x4e, 0x01, 0x44, 0x35, + 0x00, 0xbb, 0x9c, 0x33, 0x63, 0x42, 0x49, 0xd7, + 0xed, 0x6a, 0xae, 0xdc, 0x26, 0x72, 0x29, 0xb3, + 0x6a, 0x46, 0x2c, 0x84, 0x4b, 0x1f, 0x69, 0x6f, + 0xf4, 0x9c, 0xca, 0x56, 0x63, 0x23, 0x65, 0x8c, + 0x45, 0x48, 0xa2, 0xb0, 0x3a, 0xd0, 0x67, 0xac, + 0x13, 0x2e, 0xea, 0x4b, 0xe3, 0xd8, 0xba, 0xcf, + 0xe2, 0x92, 0x54, 0x08, 0x0a, 0xda, 0xa9, 0x5a, + 0x64, 0x34, 0xc9, 0x94, 0x2a, 0xf1, 0xc1, 0x27, + 0xcb, 0xef, 0x9e, 0x33, 0x68, 0x37, 0xab, 0xc9, + 0x53, 0xa3, 0x05, 0x6b, 0xf3, 0xd5, 0xea, 0x45, + 0x14, 0x8e, 0x7b, 0xaa, 0x48, 0x97, 0x1d, 0x55, + 0x90, 0x00, 0xc0, 0xd1, 0xe9, 0x42, 0x88, 0x63, + 0x45, 0x60, 0x7f, 0x53, 0x8f, 0x1e, 0x3c, 0x78, + 0xf1, 0xe3, 0xc7, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, + 0xe3, 0xc7, 0x8f, 0x1e, 0x21, 0x83, 0x40, 0x20, + 0x95, 0xa1, 0x19, 0x67, 0x20, 0x19, 0x40, 0x2c, + 0x4a, 0x23, 0x8b, 0x62, 0x22, 0x38, 0x23, 0x89, + 0x8c, 0x8b, 0xc2, 0xc4, 0x48, 0x08, 0x80, 0x88, + 0xd8, 0x47, 0x08, 0xe4, 0x71, 0xeb, 0xe1, 0xc3, + 0x87, 0x0e, 0x1c, 0x1a, 0x9a, 0x76, 0x9a, 0x12, + 0x17, 0xd8, 0x5b, 0x51, 0x7e, 0xf5, 0x05, 0x1a, + 0xb0, 0xa1, 0xd8, 0x48, 0x0f, 0x2a, 0x08, 0x5c, + 0xe5, 0x70, 0x8c, 0xd5, 0x33, 0xe0, 0xc4, 0x11, + 0x2c, 0x6e, 0x2a, 0x1a, 0x29, 0x70, 0x65, 0xa2, + 0x57, 0xeb, 0x36, 0x85, 0x3b, 0xc3, 0xe8, 0x6c, + 0x48, 0x9b, 0xb5, 0x85, 0x67, 0x8e, 0xd9, 0x2e, + 0xc5, 0xa2, 0xab, 0x8a, 0x9f, 0xc0, 0x4c, 0x34, + 0x62, 0x18, 0xa6, 0xe1, 0xc3, 0x87, 0x0e, 0x1c, + 0x38, 0x3d, 0x15, 0x48, 0x92, 0x81, 0xa4, 0x51, + 0xa4, 0x47, 0x38, 0x71, 0xc0, 0x9b, 0xaa, 0xb4, + 0xbe, 0x19, 0x29, 0x87, 0x12, 0x61, 0x9a, 0xda, + 0x8a, 0x24, 0x8d, 0x80, 0x2e, 0x80, 0x82, 0xec, + 0xc2, 0xfd, 0x92, 0xee, 0x2c, 0x09, 0x11, 0x00, + 0xb6, 0x25, 0xb3, 0xb8, 0x53, 0xa4, 0xcb, 0x5d, + 0xb3, 0xd5, 0x8c, 0x5d, 0xa7, 0x9a, 0xfe, 0x5b, + 0xc2, 0xb4, 0x58, 0x43, 0x63, 0x03, 0xe8, 0x50, + 0xd8, 0x5c, 0x38, 0x6e, 0x2e, 0x5f, 0xa1, 0x5a, + 0x48, 0x72, 0x64, 0x18, 0x42, 0x72, 0x31, 0xfd, + 0xc1, 0x41, 0x52, 0x93, 0xb4, 0xb6, 0x57, 0x7e, + 0x72, 0x5d, 0x36, 0x3c, 0x49, 0x68, 0x33, 0xfc, + 0xaf, 0x53, 0x6e, 0xac, 0xb2, 0x4d, 0xfe, 0x0e, + 0x7e, 0x28, 0x5c, 0x10, 0x78, 0x56, 0x08, 0xbd, + 0x31, 0xd4, 0xde, 0xe3, 0x68, 0x9a, 0x16, 0xf8, + 0x0b, 0x20, 0xce, 0xe8, 0x60, 0x4e, 0x1d, 0x34, + 0xfa, 0xe8, 0xec, 0x2a, 0x84, 0x46, 0x99, 0x11, + 0x7e, 0xe5, 0x47, 0x33, 0xda, 0xa6, 0x40, 0x6b, + 0x54, 0x4a, 0x8d, 0xdf, 0x2e, 0xc9, 0x15, 0x49, + 0x16, 0xd6, 0x0a, 0x71, 0x61, 0xf1, 0x64, 0xb0, + 0xe6, 0x23, 0xa9, 0xe3, 0xe4, 0x3c, 0xc0, 0xed, + 0x8e, 0x11, 0x9b, 0x9e, 0xd0, 0x98, 0x97, 0x17, + 0x05, 0x01, 0x2c, 0xcc, 0x79, 0xf5, 0x2c, 0xae, + 0xa0, 0xd1, 0x9a, 0x9f, 0x34, 0x74, 0x60, 0xad, + 0x4e, 0x72, 0xbd, 0x4f, 0xab, 0x3c, 0xbe, 0xf9, + 0xe3, 0x36, 0xe2, 0xab, 0xb0, 0xad, 0x02, 0x83, + 0xfd, 0x2b, 0xaf, 0xa3, 0x51, 0x5d, 0xb7, 0x75, + 0x7b, 0xc4, 0x9a, 0xbf, 0x56, 0x7e, 0xf2, 0xdb, + 0xfa, 0xbb, 0xcc, 0xd3, 0x0c, 0x7a, 0x7b, 0xfc, + 0x92, 0x7a, 0xc3, 0x15, 0x8f, 0x79, 0x2a, 0xb7, + 0x41, 0x4d, 0x09, 0x46, 0xa6, 0xd0, 0x4c, 0x82, + 0x04, 0x55, 0xa2, 0xa4, 0x29, 0x21, 0x83, 0xcf, + 0x01, 0x00, 0x67, 0x98, 0x93, 0x43, 0x2a, 0x45, + 0x9c, 0x02, 0x4a, 0x60, 0x94, 0x50, 0x02, 0xa4, + 0x18, 0x24, 0xdb, 0x92, 0x93, 0xf2, 0x87, 0x25, + 0x6c, 0x06, 0x2b, 0x15, 0xbe, 0xea, 0xc4, 0x10, + 0x05, 0xc9, 0x0f, 0xad, 0x73, 0xd4, 0x95, 0x02, + 0xbd, 0xa0, 0x6d, 0x0d, 0x50, 0x53, 0xa0, 0x26, + 0x96, 0x3d, 0xad, 0xdf, 0x2a, 0x25, 0x3b, 0xa0, + 0x41, 0xd7, 0x8b, 0xac, 0xe8, 0x82, 0x11, 0xa0, + 0xdb, 0xed, 0x23, 0x0f, 0x0e, 0x0e, 0x3f, 0x73, + 0x4e, 0x8e, 0x7b, 0x03, 0xe5, 0xfc, 0xe9, 0xa8, + 0xa2, 0x84, 0xef, 0xb0, 0x2f, 0x80, 0x2c, 0x84, + 0x42, 0x38, 0xfc, 0xc1, 0x88, 0xf4, 0x02, 0x42, + 0x60, 0x4b, 0x39, 0x99, 0xcd, 0xb2, 0xc1, 0xe4, + 0x5d, 0x4e, 0x5b, 0x7f, 0x57, 0x79, 0x6d, 0xfd, + 0x5d, 0xe0, 0xd0, 0x6d, 0x9e, 0x6f, 0x78, 0xff, + 0x00, 0x49, 0xae, 0xb3, 0xb7, 0xec, 0x51, 0x63, + 0x8a, 0x57, 0xbc, 0x6d, 0x2b, 0x85, 0x38, 0xda, + 0x5c, 0xe0, 0xf5, 0x64, 0x12, 0xe8, 0x35, 0xeb, + 0xe8, 0xa2, 0x49, 0xcf, 0xf6, 0x35, 0x7b, 0x8f, + 0x72, 0xf5, 0xdb, 0xec, 0xd5, 0x2c, 0x05, 0x4e, + 0x77, 0x34, 0xf2, 0xf3, 0x50, 0x8d, 0x20, 0x5e, + 0x1e, 0xba, 0xab, 0x8b, 0x6a, 0x36, 0x21, 0x42, + 0x24, 0x53, 0xe3, 0xae, 0x86, 0x67, 0x74, 0x25, + 0x1c, 0xe4, 0x99, 0x67, 0x31, 0x1e, 0x03, 0x16, + 0x39, 0xc5, 0xff, 0x00, 0x0a, 0x22, 0x76, 0x78, + 0xee, 0x52, 0x79, 0xab, 0x7b, 0x92, 0xe5, 0x49, + 0x3c, 0x78, 0x2f, 0x32, 0x22, 0x4c, 0x94, 0x57, + 0x09, 0xb0, 0x1a, 0x06, 0x48, 0x3a, 0x41, 0x21, + 0x1f, 0x31, 0x41, 0x04, 0x49, 0x0a, 0xc6, 0x10, + 0x89, 0xc2, 0x44, 0x7c, 0x13, 0xeb, 0xe7, 0x6a, + 0x5f, 0x33, 0xf8, 0xf4, 0xec, 0x31, 0xb1, 0x29, + 0x10, 0x0f, 0x70, 0xda, 0x02, 0xdd, 0x0b, 0xa0, + 0x94, 0x40, 0x81, 0xae, 0x3a, 0xf9, 0xf7, 0x3e, + 0x90, 0x0e, 0x0b, 0xf9, 0x2a, 0xc1, 0x22, 0x94, + 0x3d, 0x76, 0x97, 0x51, 0xa1, 0x65, 0x6f, 0xd2, + 0x4f, 0xda, 0x9a, 0x2a, 0xac, 0x9a, 0x2a, 0x83, + 0x46, 0x30, 0xa2, 0xeb, 0x35, 0x76, 0xab, 0xd2, + 0xfd, 0xb8, 0x32, 0xbc, 0xa3, 0x14, 0x70, 0x46, + 0x86, 0x44, 0x3c, 0x21, 0xc6, 0x0f, 0x3d, 0xfd, + 0xe2, 0x39, 0xdc, 0xe8, 0x9d, 0x65, 0x1e, 0xe3, + 0x68, 0x55, 0xac, 0x59, 0x90, 0x1c, 0xff, 0x00, + 0x04, 0xf9, 0xf3, 0xe7, 0xcf, 0x9f, 0x3e, 0xc3, + 0x11, 0xd6, 0xd8, 0xc0, 0x24, 0xaa, 0xa0, 0x2a, + 0x96, 0x03, 0x80, 0xcd, 0x8e, 0x39, 0xf3, 0xe7, + 0x30, 0x10, 0x3b, 0x07, 0xa3, 0x05, 0x02, 0x25, + 0x88, 0xc7, 0x31, 0x07, 0xff, 0x00, 0x57, 0x89, + 0x14, 0x14, 0x2a, 0xab, 0xeb, 0x7c, 0xf9, 0xf3, + 0xe7, 0xcf, 0x8d, 0x32, 0x6d, 0x98, 0xe8, 0xa4, + 0x06, 0x11, 0xed, 0x0f, 0x5a, 0xa9, 0x5d, 0x52, + 0x4e, 0x24, 0xe4, 0x52, 0xf1, 0x13, 0xe3, 0xcb, + 0xef, 0x9e, 0x33, 0x68, 0xb0, 0x50, 0xdd, 0x8d, + 0x46, 0x8d, 0x4e, 0xb8, 0x4b, 0x62, 0x9a, 0xbf, + 0xab, 0x34, 0x9f, 0x19, 0xde, 0x16, 0xd6, 0xca, + 0xa6, 0x9f, 0xb0, 0x51, 0xac, 0xe6, 0xbc, 0x7d, + 0x21, 0x36, 0x57, 0x1a, 0x41, 0x00, 0x07, 0x2b, + 0x40, 0x6a, 0xfd, 0x90, 0x9f, 0x78, 0x14, 0x02, + 0xca, 0x7c, 0xdf, 0x58, 0xd0, 0x2a, 0x15, 0x6e, + 0xf6, 0xeb, 0x29, 0x42, 0x48, 0x68, 0x59, 0x5f, + 0x20, 0xa3, 0x2c, 0xc0, 0x86, 0x98, 0xe2, 0x4c, + 0x3d, 0x59, 0x41, 0x67, 0x04, 0x2d, 0x3f, 0xb7, + 0x72, 0x8c, 0x8c, 0xfd, 0xa5, 0xc3, 0x40, 0x84, + 0x3f, 0x2d, 0x62, 0x59, 0xd3, 0x05, 0x56, 0xec, + 0x9e, 0xb2, 0x1f, 0x37, 0x75, 0x38, 0x92, 0x82, + 0xa4, 0x6e, 0xcf, 0x95, 0x82, 0x63, 0x87, 0x01, + 0x28, 0xcd, 0x22, 0x15, 0x43, 0xd5, 0x3c, 0x61, + 0xd2, 0x82, 0x14, 0x28, 0xa2, 0xab, 0x80, 0x82, + 0x2d, 0xa8, 0x0e, 0x87, 0xc0, 0xe4, 0xba, 0x59, + 0x60, 0xc9, 0x25, 0x56, 0xf5, 0xe3, 0x55, 0x87, + 0x2d, 0x27, 0x59, 0x14, 0xdf, 0x2e, 0xb5, 0x0a, + 0x70, 0xef, 0x40, 0xd1, 0x02, 0xf5, 0x1e, 0xd5, + 0x07, 0x81, 0xf1, 0x5c, 0x24, 0xb9, 0xaf, 0x1f, + 0x49, 0x6f, 0xba, 0x01, 0x03, 0x48, 0xaf, 0x17, + 0x17, 0xc1, 0x40, 0x6d, 0xa9, 0xef, 0xed, 0xcb, + 0xf0, 0xfa, 0x17, 0xc6, 0x2c, 0x7d, 0xd9, 0xe9, + 0x3a, 0x1a, 0x8a, 0x0a, 0x48, 0x0c, 0x7d, 0x58, + 0xb5, 0x01, 0xdd, 0x67, 0x87, 0xea, 0x80, 0xcb, + 0x88, 0x05, 0xb9, 0x09, 0x90, 0xf8, 0x71, 0x7f, + 0xf8, 0xb2, 0x01, 0xed, 0xf3, 0x22, 0x12, 0x45, + 0xba, 0x82, 0x57, 0xa1, 0x7b, 0x28, 0x11, 0x8b, + 0x54, 0x73, 0x93, 0x46, 0x89, 0xe0, 0xa7, 0x24, + 0x5d, 0xc9, 0x60, 0x63, 0x80, 0x65, 0x7a, 0x9d, + 0x90, 0x3f, 0x60, 0x27, 0xfe, 0xb8, 0xfa, 0x4c, + 0xfa, 0x16, 0x35, 0xaf, 0xb5, 0x14, 0x32, 0xc6, + 0x12, 0xab, 0xc1, 0x08, 0xd9, 0x72, 0x1d, 0x2c, + 0xfc, 0xbe, 0x80, 0xc0, 0x95, 0xa0, 0x83, 0x38, + 0xb5, 0x12, 0x26, 0x36, 0x47, 0xa3, 0x0f, 0xce, + 0xf0, 0x93, 0x6e, 0x75, 0x13, 0x29, 0xd1, 0xbd, + 0xc4, 0x3e, 0x90, 0xfc, 0x82, 0x31, 0xc8, 0x7e, + 0xa7, 0xae, 0xfb, 0x54, 0x72, 0xc5, 0xc1, 0x32, + 0x77, 0x75, 0xcd, 0xe1, 0x40, 0xc6, 0xc1, 0x2e, + 0x1a, 0x6a, 0xb1, 0x88, 0xc2, 0x91, 0x3c, 0x14, + 0x73, 0x0d, 0x42, 0xc5, 0x7a, 0x10, 0x9f, 0xed, + 0xb6, 0x42, 0x96, 0x89, 0xb5, 0x12, 0x35, 0x23, + 0xcb, 0xef, 0x9e, 0x33, 0x6e, 0x25, 0xdd, 0xf5, + 0x6d, 0x41, 0x2a, 0xc9, 0x57, 0xa0, 0xd9, 0x21, + 0x92, 0xdc, 0xcd, 0x42, 0x53, 0x48, 0xc0, 0x10, + 0x08, 0x91, 0xd6, 0x1a, 0xd2, 0xcf, 0xee, 0x07, + 0xe2, 0x72, 0x6f, 0x3f, 0x79, 0x7f, 0x58, 0xf9, + 0x0b, 0xe6, 0x02, 0xc3, 0x55, 0xd4, 0xde, 0xd8, + 0x9a, 0x43, 0x05, 0x32, 0xae, 0x71, 0x84, 0x67, + 0x0c, 0x9c, 0x9c, 0x19, 0x12, 0x05, 0x51, 0xb6, + 0x12, 0x32, 0x8c, 0x9f, 0x40, 0x26, 0x04, 0x1e, + 0xf8, 0xd3, 0xe2, 0x20, 0xc4, 0x40, 0x79, 0xc2, + 0x0b, 0xa9, 0x17, 0x30, 0x00, 0x11, 0x68, 0x96, + 0xc4, 0x68, 0x08, 0x2e, 0x97, 0x33, 0x12, 0xb4, + 0x1a, 0xe8, 0xdd, 0xce, 0xaf, 0x68, 0x41, 0xc5, + 0xe5, 0x22, 0xc1, 0xae, 0xc3, 0x1e, 0x62, 0x48, + 0x9d, 0xb1, 0x48, 0x39, 0x85, 0x30, 0x85, 0xb0, + 0xe3, 0x20, 0x89, 0xa4, 0xe9, 0x17, 0xff, 0x00, + 0x70, 0xa6, 0x49, 0x5b, 0xcc, 0x24, 0xe2, 0x76, + 0xc3, 0xdb, 0x5b, 0x1a, 0x6c, 0x4a, 0x83, 0xfc, + 0xfc, 0x49, 0x2c, 0x84, 0x51, 0x2c, 0x23, 0x31, + 0x16, 0x52, 0xdc, 0xd9, 0x34, 0x3f, 0x62, 0xc0, + 0x83, 0x42, 0x01, 0x50, 0x47, 0x02, 0x95, 0x92, + 0x9c, 0x1b, 0x80, 0x9b, 0x0d, 0xde, 0xff, 0x00, + 0xf5, 0xf5, 0xd7, 0x86, 0x4b, 0x02, 0xd3, 0x43, + 0x24, 0x05, 0x9a, 0xd9, 0x0f, 0xe1, 0xa5, 0xf1, + 0x90, 0x1e, 0x9f, 0x9f, 0x99, 0x77, 0x27, 0x86, + 0x9a, 0xdc, 0xb1, 0xfe, 0x50, 0xbb, 0xfd, 0x46, + 0xf1, 0x21, 0x1d, 0x0d, 0xba, 0x45, 0x2d, 0xe8, + 0x96, 0xb7, 0x70, 0x0e, 0x50, 0x1f, 0x59, 0x80, + 0x4e, 0xae, 0x24, 0x6b, 0x66, 0xad, 0x1c, 0xc4, + 0xc9, 0x96, 0x15, 0xe4, 0xfa, 0x62, 0xa6, 0x06, + 0xa9, 0x83, 0x31, 0x02, 0x72, 0xa0, 0xdf, 0xb6, + 0xdd, 0x96, 0x7f, 0x2d, 0xd0, 0x7c, 0xf4, 0x99, + 0x6b, 0x2e, 0x2d, 0x2a, 0x40, 0x29, 0x61, 0xbf, + 0xd5, 0xba, 0xad, 0xfc, 0x47, 0x79, 0x8d, 0x84, + 0xe6, 0x1f, 0x94, 0x9a, 0x5c, 0xec, 0x18, 0x35, + 0xcb, 0x00, 0x3d, 0xe9, 0xf6, 0xa7, 0xff, 0x00, + 0xeb, 0xb8, 0xec, 0x97, 0x25, 0xb1, 0xf0, 0x53, + 0x25, 0xca, 0x43, 0x05, 0xb5, 0xb3, 0xd8, 0x09, + 0x8e, 0xf0, 0xe1, 0xa0, 0xf9, 0x7d, 0xf3, 0xc6, + 0x6d, 0xc4, 0xbb, 0xb9, 0x11, 0x4b, 0x34, 0xd9, + 0x5d, 0x8a, 0x69, 0x7b, 0x43, 0xd0, 0xcb, 0x32, + 0xa0, 0xbc, 0x71, 0xe3, 0xc6, 0x20, 0x44, 0x00, + 0x2a, 0x8d, 0x00, 0x5d, 0x55, 0x00, 0x32, 0xad, + 0x10, 0x70, 0xf9, 0x41, 0x2d, 0xad, 0xf5, 0x69, + 0x9d, 0xf2, 0xfd, 0x92, 0xb0, 0xef, 0x1a, 0xe7, + 0x89, 0x20, 0x80, 0xdd, 0xad, 0xff, 0x00, 0x5d, + 0x08, 0x1a, 0xd1, 0x4d, 0x41, 0x53, 0xd3, 0x68, + 0x00, 0x2c, 0xa1, 0xe8, 0x88, 0x6b, 0x14, 0x27, + 0x72, 0x23, 0xef, 0x89, 0x70, 0x56, 0x70, 0x85, + 0x8e, 0x87, 0x44, 0x13, 0x21, 0xbe, 0xae, 0xc0, + 0x3f, 0x76, 0xdd, 0x44, 0x1b, 0xd7, 0xc6, 0x2c, + 0x56, 0x9d, 0x16, 0xd7, 0x3a, 0x83, 0x1e, 0x19, + 0x9b, 0xa1, 0xab, 0xf7, 0xf6, 0x12, 0xf1, 0x18, + 0x4b, 0x6a, 0x4c, 0x5c, 0x2f, 0x8c, 0x8c, 0x59, + 0x65, 0xa8, 0xab, 0xb4, 0x14, 0x80, 0x19, 0xd0, + 0xb3, 0x6a, 0xbe, 0x78, 0x21, 0x8a, 0x6a, 0x71, + 0x07, 0xd1, 0xf9, 0x8f, 0x1e, 0x30, 0x11, 0x10, + 0x88, 0x4c, 0x6c, 0x18, 0xa5, 0x28, 0x10, 0x14, + 0x20, 0xc2, 0x05, 0xf0, 0xc1, 0x1e, 0x40, 0x1f, + 0x65, 0xff, 0x00, 0x87, 0xa5, 0xf1, 0x87, 0x0b, + 0x01, 0x21, 0xae, 0xb0, 0x19, 0xd0, 0x36, 0x05, + 0x5e, 0xf1, 0xa6, 0x46, 0xf7, 0xaa, 0x60, 0x05, + 0x13, 0x88, 0x1f, 0x26, 0x61, 0xd0, 0x45, 0x20, + 0x56, 0xb0, 0x30, 0x40, 0x49, 0x7b, 0xaa, 0x7d, + 0xd4, 0x81, 0x2b, 0x58, 0x17, 0x83, 0x65, 0xa8, + 0x6b, 0xf3, 0x09, 0x40, 0x23, 0x9e, 0xc0, 0x10, + 0x1c, 0x59, 0x2c, 0xa5, 0x3e, 0x4a, 0xc8, 0x7b, + 0x0a, 0x77, 0x5e, 0xca, 0x21, 0x6e, 0x27, 0x18, + 0xed, 0xf1, 0xff, 0x00, 0x76, 0x76, 0x83, 0x9b, + 0x1f, 0x01, 0xbb, 0xc2, 0x09, 0x12, 0x37, 0xfc, + 0x00, 0x39, 0x49, 0x90, 0xfa, 0x1f, 0xc2, 0xd8, + 0x30, 0x07, 0x0b, 0x81, 0x34, 0xb1, 0x45, 0x4b, + 0x62, 0xc2, 0xac, 0xbb, 0xe1, 0x7d, 0x25, 0xf5, + 0xdf, 0x79, 0x43, 0xb8, 0x81, 0x66, 0x0a, 0x06, + 0xd0, 0x60, 0x52, 0xc6, 0xe2, 0xdd, 0x69, 0xd5, + 0xcb, 0x84, 0xd2, 0xa6, 0x23, 0x1e, 0x19, 0xbd, + 0xdc, 0x2b, 0x81, 0xc6, 0xee, 0xb5, 0xc8, 0x51, + 0xc3, 0x8c, 0xf7, 0xc9, 0x99, 0xe0, 0x22, 0xdc, + 0xd5, 0xac, 0x8d, 0xf8, 0xea, 0x04, 0x8a, 0x22, + 0xef, 0x25, 0x14, 0x8c, 0x80, 0xeb, 0x8f, 0xe8, + 0xc3, 0x41, 0xf2, 0xfb, 0xe7, 0x8c, 0xda, 0x28, + 0x15, 0x79, 0x36, 0xd6, 0x16, 0x85, 0x6a, 0x5a, + 0xf3, 0x36, 0xe5, 0xea, 0x3d, 0x7e, 0x92, 0x89, + 0x72, 0xdf, 0x93, 0x6e, 0xaf, 0x0e, 0x32, 0x59, + 0x23, 0xe6, 0xf5, 0x91, 0x57, 0x0d, 0x77, 0xc0, + 0x91, 0xfe, 0xa6, 0xa9, 0x92, 0x78, 0x1e, 0x4d, + 0x67, 0x7b, 0x41, 0xf4, 0x7b, 0x2c, 0x5c, 0xc2, + 0xe6, 0x54, 0x46, 0xf5, 0x4c, 0x7f, 0xa3, 0x02, + 0xe9, 0xe5, 0xc9, 0x07, 0xbd, 0x0a, 0xdc, 0x84, + 0xf9, 0xc3, 0x63, 0x47, 0x50, 0x81, 0x20, 0x81, + 0x37, 0x41, 0x86, 0x07, 0xac, 0x61, 0x45, 0x55, + 0x59, 0xd4, 0x96, 0x2e, 0x89, 0x9c, 0xf7, 0xd6, + 0x46, 0x4a, 0x73, 0x51, 0xc2, 0xef, 0xc9, 0x83, + 0x22, 0x89, 0xc9, 0x50, 0x7a, 0x04, 0x52, 0x2f, + 0x2f, 0x78, 0x39, 0xcb, 0xb9, 0xf6, 0xc2, 0xf5, + 0x2f, 0x85, 0x59, 0xf8, 0x5e, 0x7a, 0x6a, 0x2c, + 0x7f, 0xdf, 0x18, 0x3f, 0x5a, 0x50, 0xbc, 0x2a, + 0x88, 0xc6, 0x98, 0xa3, 0xe1, 0xaa, 0x21, 0x0b, + 0xa2, 0xe8, 0xc6, 0x62, 0xd8, 0xa0, 0x7b, 0x4a, + 0xf3, 0x4f, 0x93, 0xd5, 0x7b, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xf7, 0x45, 0xa1, + 0x1c, 0xc9, 0x5e, 0xda, 0xa6, 0x15, 0x66, 0x16, + 0x29, 0x1c, 0x54, 0x5c, 0xaf, 0x86, 0xf8, 0x34, + 0xa6, 0x87, 0x1b, 0xc5, 0x11, 0x5f, 0x0e, 0x14, + 0xa9, 0x44, 0xc9, 0x34, 0x89, 0x82, 0x8a, 0x40, + 0xff, 0x00, 0xc4, 0xcf, 0xd2, 0xfa, 0x63, 0x29, + 0x3b, 0x0f, 0x90, 0x2b, 0xb0, 0x4a, 0x92, 0x16, + 0xc0, 0x13, 0x56, 0x3b, 0xff, 0x00, 0x3b, 0x75, + 0x20, 0x58, 0x02, 0x52, 0xd1, 0xf4, 0x25, 0x60, + 0x4e, 0x0a, 0x7a, 0x28, 0x95, 0x19, 0xa0, 0xb7, + 0x1c, 0x99, 0xee, 0x08, 0x0f, 0xad, 0xff, 0x00, + 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, + 0xde, 0x0d, 0x1d, 0xd7, 0xf8, 0xef, 0x2e, 0xbd, + 0x7e, 0x1a, 0x07, 0xb6, 0x89, 0x99, 0x68, 0x81, + 0x72, 0x55, 0x5d, 0x15, 0x11, 0x3a, 0x1a, 0xa8, + 0x10, 0xa4, 0xa1, 0xae, 0xad, 0x3e, 0x29, 0x53, + 0xc0, 0x38, 0xff, 0x00, 0x0e, 0x42, 0xa5, 0x7d, + 0xb0, 0x74, 0x1e, 0xaa, 0xd5, 0xd8, 0xaf, 0x26, + 0xc6, 0xbd, 0xbe, 0x20, 0x22, 0x92, 0xfa, 0x10, + 0xb5, 0x99, 0xf3, 0x9e, 0x33, 0x82, 0x6a, 0xfb, + 0x8a, 0xa5, 0x3c, 0x46, 0x19, 0x5f, 0xd0, 0x22, + 0x35, 0x33, 0xa1, 0x0d, 0x8e, 0x68, 0x18, 0x95, + 0xba, 0xbc, 0x32, 0xa0, 0x55, 0x64, 0xd7, 0xe3, + 0xfa, 0x4f, 0x2f, 0xbe, 0x78, 0xcd, 0xb8, 0xb6, + 0x3b, 0xc2, 0x17, 0x7f, 0x72, 0x1f, 0xf3, 0x3a, + 0xf7, 0xaa, 0xb3, 0x58, 0xa6, 0x78, 0xc8, 0xe4, + 0xa1, 0x51, 0x68, 0x50, 0xb4, 0x5e, 0xb4, 0x69, + 0xfc, 0x40, 0xc1, 0x83, 0x06, 0x0c, 0x18, 0x30, + 0x60, 0xc4, 0x06, 0x70, 0x68, 0x9a, 0xf8, 0x2a, + 0x80, 0x9c, 0x4b, 0x06, 0x0c, 0xc3, 0xa1, 0x73, + 0x11, 0x48, 0x34, 0xeb, 0x05, 0x36, 0xb9, 0xa5, + 0x77, 0x8a, 0x48, 0x02, 0xe8, 0x05, 0x1e, 0xb0, + 0x60, 0xc1, 0x83, 0x06, 0x0c, 0x67, 0x19, 0x39, + 0xb8, 0x91, 0x50, 0x2b, 0x34, 0xbd, 0x47, 0x31, + 0x89, 0xc5, 0xe8, 0x71, 0x4b, 0xc0, 0x6a, 0x64, + 0xc0, 0x14, 0xca, 0x35, 0xd5, 0x02, 0x38, 0x3c, + 0xb1, 0xa0, 0x67, 0x43, 0x56, 0x00, 0xa1, 0x12, + 0xc5, 0xd9, 0x12, 0x1e, 0x02, 0x87, 0x08, 0xb3, + 0x5b, 0x8c, 0xc4, 0x10, 0xd7, 0x6f, 0x1f, 0x1f, + 0x9b, 0x19, 0xfd, 0x46, 0x04, 0x45, 0x8c, 0x1a, + 0x01, 0x63, 0xa8, 0x52, 0x61, 0x52, 0xbd, 0xbf, + 0xf1, 0x01, 0x6b, 0x53, 0xc5, 0x02, 0xcc, 0x11, + 0x4c, 0x7b, 0xd2, 0x31, 0x8b, 0x38, 0x2a, 0xe6, + 0x44, 0xe5, 0xa6, 0x36, 0xff, 0x00, 0xef, 0x51, + 0x49, 0x41, 0x3f, 0xba, 0xee, 0x8a, 0x07, 0x74, + 0x48, 0xcd, 0xd1, 0x5a, 0x01, 0x64, 0x8e, 0xde, + 0xe4, 0xe1, 0x8e, 0x2f, 0x6b, 0x8f, 0x3a, 0x2f, + 0xfd, 0xc6, 0xd5, 0x5e, 0x42, 0x78, 0x25, 0xb7, + 0x62, 0xa0, 0xa9, 0x08, 0x18, 0x4b, 0xc4, 0xf1, + 0xae, 0xb4, 0x60, 0x08, 0xf8, 0x8b, 0x52, 0xa1, + 0xec, 0x67, 0xb2, 0x67, 0x32, 0x1f, 0x43, 0xd5, + 0x87, 0x42, 0x2c, 0x13, 0x10, 0xc3, 0x56, 0x2a, + 0x01, 0x47, 0x7b, 0xb7, 0x99, 0xf7, 0x05, 0x60, + 0x14, 0xdd, 0x33, 0xdf, 0xb1, 0x59, 0x64, 0x05, + 0x75, 0xe6, 0x8d, 0x4c, 0xb9, 0x04, 0xb9, 0xc2, + 0xd5, 0x05, 0x72, 0xce, 0x98, 0xa2, 0xbd, 0xb6, + 0x88, 0x1c, 0xfd, 0x7b, 0x72, 0xec, 0xab, 0x14, + 0x85, 0x61, 0x1d, 0xb0, 0x83, 0x01, 0x2c, 0x29, + 0xcd, 0xc1, 0xe3, 0x47, 0x02, 0x61, 0xa0, 0x3c, + 0xed, 0x5b, 0x28, 0x2b, 0x88, 0xe0, 0x31, 0xe1, + 0x17, 0xe8, 0x44, 0x85, 0xf3, 0x69, 0xa3, 0x01, + 0x06, 0xa9, 0x5a, 0x73, 0x4f, 0x3a, 0x0a, 0xc3, + 0x2a, 0x32, 0x03, 0x85, 0xc6, 0xa8, 0x84, 0x58, + 0x52, 0xcb, 0x80, 0x51, 0xc1, 0x0c, 0x4c, 0x0f, + 0xfd, 0xb6, 0x12, 0x5d, 0x4b, 0x1f, 0xc5, 0x8a, + 0x9e, 0x03, 0x7f, 0x52, 0x74, 0x6c, 0xe2, 0x90, + 0x63, 0x66, 0x83, 0xc9, 0x76, 0x48, 0xd4, 0xbe, + 0x10, 0x66, 0x13, 0x46, 0xc9, 0xb9, 0x72, 0xea, + 0x06, 0xcf, 0xe6, 0xae, 0x87, 0xa1, 0x1a, 0x6a, + 0x60, 0x40, 0xe7, 0x60, 0x8e, 0xc7, 0xd0, 0xe0, + 0xd8, 0xcf, 0x0b, 0x8a, 0x12, 0x62, 0xa7, 0x29, + 0x22, 0x98, 0xca, 0xf1, 0x1a, 0xf1, 0x84, 0x8d, + 0x0b, 0x53, 0xbe, 0x87, 0xf1, 0x77, 0x97, 0xdf, + 0x3c, 0x66, 0xd0, 0x42, 0x03, 0xbb, 0x7f, 0x62, + 0x28, 0x10, 0xc9, 0x61, 0x77, 0x3d, 0xce, 0x5f, + 0xde, 0x6b, 0x7e, 0x5b, 0x98, 0xcc, 0x81, 0xeb, + 0xba, 0x80, 0x9b, 0x22, 0x8c, 0x1b, 0xa5, 0x33, + 0xb2, 0x82, 0xb5, 0xd5, 0x17, 0x81, 0x87, 0xa0, + 0x04, 0x79, 0x40, 0xcb, 0x02, 0x32, 0xac, 0x71, + 0xb3, 0x94, 0x6d, 0x14, 0x90, 0x87, 0x4b, 0x1d, + 0x4a, 0x9a, 0x06, 0xa7, 0xa6, 0x12, 0xc5, 0xbc, + 0x11, 0x94, 0x4e, 0x3f, 0x0a, 0xa6, 0x63, 0x1c, + 0x5f, 0x5d, 0xaf, 0x0b, 0x0c, 0x75, 0x32, 0x9c, + 0x33, 0x36, 0x4a, 0xee, 0xa4, 0x47, 0xac, 0x71, + 0x5a, 0x09, 0x77, 0x2d, 0xc5, 0x03, 0x6c, 0x91, + 0x16, 0x6b, 0x16, 0xa9, 0x95, 0x42, 0xc5, 0x67, + 0x5b, 0x04, 0x32, 0x66, 0xce, 0x0d, 0x25, 0xf0, + 0x95, 0xcc, 0x6d, 0xc5, 0x94, 0xee, 0xb0, 0xbc, + 0x8e, 0x75, 0xcb, 0xa9, 0x37, 0xa7, 0x2d, 0x11, + 0x84, 0xda, 0xb2, 0x99, 0x48, 0x8e, 0xa6, 0x7c, + 0xf8, 0x70, 0x2f, 0x67, 0x33, 0x65, 0xdb, 0x18, + 0xb6, 0x4a, 0x56, 0x72, 0x68, 0x98, 0x0f, 0xa1, + 0xea, 0xc2, 0x28, 0x88, 0xd2, 0x22, 0x26, 0xa2, + 0x36, 0x23, 0xec, 0x8e, 0x47, 0xd9, 0x88, 0xce, + 0x2d, 0x46, 0xaa, 0xb4, 0x29, 0xa0, 0x2d, 0x5c, + 0x1c, 0x1d, 0xd7, 0x98, 0x11, 0xd0, 0xb4, 0x56, + 0x30, 0x11, 0x5a, 0x42, 0x00, 0x03, 0xce, 0x90, + 0x59, 0x28, 0xeb, 0x5a, 0x44, 0x9f, 0x19, 0x4f, + 0x4c, 0x35, 0x5e, 0xb8, 0x0a, 0x67, 0x44, 0x1d, + 0xc6, 0x81, 0xdc, 0xb1, 0xb0, 0x66, 0x19, 0xac, + 0xde, 0x8d, 0x14, 0x19, 0x34, 0x74, 0x55, 0x78, + 0x68, 0x0c, 0x9b, 0x2f, 0xc2, 0x6b, 0xfd, 0xcb, + 0xf0, 0xf7, 0x31, 0x06, 0x1f, 0xa2, 0x7d, 0xa1, + 0xa5, 0x1e, 0x94, 0xb5, 0x6e, 0x6d, 0x02, 0x9c, + 0x3a, 0xfd, 0x8b, 0x34, 0x6e, 0x01, 0xf5, 0x5b, + 0xaf, 0x2e, 0x0b, 0xc8, 0x04, 0x2d, 0xe6, 0xcc, + 0x80, 0xf6, 0xfa, 0x89, 0x9b, 0x27, 0xbe, 0x50, + 0x30, 0xa6, 0x17, 0x6b, 0x39, 0xc0, 0x2e, 0x1b, + 0x5c, 0x1a, 0x0a, 0xa4, 0x1d, 0x14, 0x1c, 0xb3, + 0x6a, 0xdd, 0x9f, 0xa5, 0x8e, 0x16, 0x97, 0x4b, + 0x02, 0x14, 0x8f, 0xd8, 0xeb, 0xbb, 0xdc, 0x60, + 0x44, 0x10, 0xc2, 0x83, 0xf5, 0x02, 0x99, 0xc4, + 0x80, 0x8d, 0xae, 0x3d, 0x96, 0xef, 0xdc, 0x2f, + 0x10, 0xf2, 0xc3, 0xe6, 0x89, 0xf9, 0x4f, 0x8c, + 0x67, 0x29, 0xc2, 0x94, 0x94, 0xbe, 0xec, 0x5a, + 0xd8, 0x15, 0x55, 0x2f, 0xdf, 0x9e, 0x5f, 0x7c, + 0xf1, 0x9b, 0x7f, 0x00, 0xa2, 0x76, 0xb7, 0xf4, + 0x85, 0xc1, 0x38, 0xca, 0xb6, 0xab, 0x98, 0x03, + 0xc8, 0x19, 0x0d, 0x64, 0x95, 0x88, 0x70, 0xf9, + 0xdd, 0x5e, 0x30, 0x81, 0x31, 0xdd, 0x36, 0x62, + 0xc8, 0x81, 0xe7, 0x6c, 0x63, 0x8c, 0xae, 0xb4, + 0xb2, 0xde, 0x3a, 0x34, 0x14, 0xb0, 0xbd, 0x2c, + 0x6c, 0xe9, 0x10, 0x55, 0x4a, 0x84, 0xae, 0x55, + 0x83, 0x60, 0xb2, 0xc5, 0x35, 0x37, 0x94, 0x50, + 0x90, 0x8b, 0xba, 0x09, 0x91, 0xed, 0x4b, 0x71, + 0x3e, 0x1b, 0x32, 0x26, 0xd0, 0xb0, 0xd5, 0x93, + 0x48, 0x8d, 0xb0, 0x8d, 0x85, 0xe0, 0x0b, 0x42, + 0xc5, 0xca, 0x1e, 0xe4, 0x1a, 0x8e, 0x58, 0xc3, + 0xe0, 0xc8, 0x16, 0x03, 0x30, 0x61, 0x21, 0x88, + 0x7f, 0xbd, 0x90, 0xec, 0x50, 0xcc, 0xdd, 0xc4, + 0x82, 0x0c, 0x02, 0xa7, 0xb8, 0x06, 0x43, 0x51, + 0xf5, 0xcb, 0x04, 0x80, 0x88, 0xe0, 0x01, 0xd5, + 0x76, 0x0c, 0xb1, 0xe2, 0xa9, 0x68, 0xb7, 0x19, + 0x6f, 0x1e, 0xf7, 0x53, 0x74, 0xe3, 0xd0, 0x9e, + 0xc9, 0xa2, 0x2c, 0x35, 0xa5, 0xc7, 0x57, 0x70, + 0xf7, 0x3c, 0x6b, 0x22, 0x5d, 0xb4, 0x84, 0xfb, + 0xb7, 0x64, 0x58, 0x68, 0xcb, 0x71, 0x14, 0x35, + 0xb1, 0x51, 0x67, 0x93, 0x74, 0xe4, 0x51, 0x3b, + 0x94, 0x8e, 0x8e, 0x07, 0x22, 0xce, 0xf7, 0xa6, + 0xf4, 0x70, 0x43, 0x68, 0xb9, 0xae, 0xbc, 0xc3, + 0xc8, 0x67, 0x79, 0xf6, 0x20, 0xd1, 0xdd, 0xd0, + 0x54, 0x80, 0x29, 0x94, 0xd4, 0x47, 0x13, 0x4c, + 0x7e, 0xba, 0xd9, 0x48, 0x38, 0x26, 0x3a, 0x28, + 0x56, 0x96, 0x0c, 0x65, 0x2d, 0x0c, 0x99, 0x4a, + 0xc9, 0x04, 0xef, 0x05, 0x91, 0x78, 0x43, 0x44, + 0xe6, 0x40, 0x78, 0x48, 0x44, 0x21, 0x2a, 0x32, + 0xe7, 0x02, 0x99, 0x8a, 0x4e, 0xa8, 0x3a, 0xf2, + 0x4a, 0x13, 0xb0, 0x53, 0xc5, 0x7a, 0xec, 0x72, + 0xf4, 0xb5, 0xe9, 0x7d, 0xd1, 0x2b, 0x56, 0xaf, + 0xdc, 0x58, 0x0f, 0xa0, 0xa5, 0x16, 0x85, 0xfe, + 0xd5, 0x55, 0x7e, 0x5f, 0x7c, 0xf1, 0x9b, 0x43, + 0x71, 0x29, 0xb7, 0x5f, 0xe7, 0x13, 0x95, 0x5d, + 0xfa, 0xff, 0x00, 0x28, 0xff, 0x00, 0x92, 0xaf, + 0x5b, 0xd8, 0xc1, 0x21, 0x55, 0x2a, 0x65, 0x10, + 0x2c, 0x57, 0x76, 0xc2, 0xac, 0x10, 0x06, 0x5b, + 0x88, 0xd2, 0x29, 0x74, 0xdd, 0x6f, 0x5e, 0xdf, + 0xf6, 0x01, 0x93, 0x18, 0xa1, 0x7a, 0xbc, 0x9b, + 0x48, 0xea, 0x8d, 0x95, 0xe7, 0xdf, 0xc8, 0x9d, + 0x6e, 0xbe, 0x69, 0x28, 0x33, 0xcb, 0x1d, 0xda, + 0xdf, 0x6f, 0x80, 0x63, 0x0d, 0x5e, 0xee, 0x0c, + 0x0b, 0x82, 0x0e, 0x6c, 0x2b, 0x04, 0xaf, 0x9a, + 0xe4, 0x5a, 0x5c, 0x44, 0x14, 0xb4, 0x08, 0x15, + 0x44, 0x32, 0x9f, 0xab, 0x63, 0x96, 0x07, 0x62, + 0x99, 0x44, 0x54, 0xb8, 0x86, 0xc4, 0xb8, 0x64, + 0x7c, 0xc6, 0x4c, 0xe4, 0x8c, 0x0c, 0x9b, 0x17, + 0x7d, 0x58, 0x26, 0xf1, 0xb9, 0x27, 0x14, 0x48, + 0x86, 0x2f, 0x58, 0x42, 0x98, 0x73, 0x68, 0xce, + 0x3e, 0xe1, 0xd3, 0x90, 0x17, 0x06, 0x9d, 0x6d, + 0x0c, 0x25, 0xa6, 0x34, 0x7e, 0x4a, 0xa7, 0xa5, + 0x20, 0xad, 0x49, 0x53, 0xd4, 0x5a, 0xac, 0x9f, + 0x04, 0x42, 0x9e, 0xc2, 0x1c, 0xa6, 0x00, 0x52, + 0x00, 0x88, 0xd8, 0x82, 0x42, 0x4e, 0xb9, 0xca, + 0x0d, 0x42, 0xe7, 0x16, 0x62, 0xfe, 0x85, 0xc9, + 0x80, 0xdd, 0x50, 0x82, 0x01, 0x0d, 0x02, 0xdb, + 0x7d, 0xf4, 0x9a, 0xa1, 0x97, 0x3c, 0x25, 0x6b, + 0x02, 0x75, 0x96, 0x94, 0xa3, 0x93, 0x55, 0xc8, + 0xe0, 0xe5, 0xb5, 0x3e, 0x90, 0x63, 0x47, 0xce, + 0x53, 0x81, 0x25, 0x58, 0x24, 0x8b, 0x34, 0x40, + 0x58, 0x9e, 0x51, 0x8e, 0x71, 0x53, 0xcd, 0x2f, + 0x77, 0x96, 0x16, 0x80, 0x93, 0x05, 0x9c, 0x4c, + 0x67, 0xb8, 0x18, 0x1d, 0x8b, 0x7e, 0x36, 0x66, + 0xbf, 0x3f, 0x45, 0x0e, 0x62, 0xd4, 0x57, 0x00, + 0x34, 0xdb, 0xd4, 0x1e, 0x1f, 0x1f, 0x12, 0xa8, + 0x73, 0x3d, 0x5f, 0x62, 0xa6, 0x81, 0x5b, 0x6d, + 0x82, 0x10, 0xcb, 0x84, 0xf0, 0xe2, 0xa0, 0x0e, + 0x4d, 0x89, 0x5b, 0x96, 0x55, 0x32, 0x80, 0xc9, + 0x34, 0x8c, 0x10, 0xce, 0x67, 0x9f, 0x7d, 0xdb, + 0x5e, 0x8a, 0xbb, 0xcd, 0xd6, 0xf9, 0xe2, 0x6e, + 0xf8, 0x2e, 0x31, 0xe2, 0x7c, 0x1a, 0x80, 0xa8, + 0x34, 0x94, 0x8a, 0x84, 0xae, 0xb2, 0xfe, 0x3f, + 0xd9, 0x69, 0x2b, 0x52, 0xc3, 0x1f, 0x5b, 0xe2, + 0x37, 0x22, 0xbb, 0x9f, 0x8e, 0x79, 0x7d, 0xf3, + 0xc6, 0x6d, 0xc1, 0x6c, 0xd0, 0x85, 0x43, 0xdd, + 0x14, 0x07, 0xbd, 0x2c, 0xd8, 0x4f, 0xb7, 0x0a, + 0x68, 0x82, 0xb3, 0x02, 0x87, 0x0b, 0x94, 0x45, + 0x14, 0x4f, 0x62, 0x10, 0x3e, 0xfc, 0x11, 0x52, + 0xa0, 0x7a, 0x2e, 0xdd, 0xbb, 0xee, 0xe4, 0xde, + 0x1f, 0xfa, 0xba, 0xf0, 0x20, 0x6d, 0xd5, 0x61, + 0x57, 0x55, 0xfa, 0xc3, 0xec, 0xe0, 0xdb, 0xd4, + 0x50, 0xa1, 0x43, 0x44, 0x0d, 0x3a, 0x0f, 0x13, + 0x76, 0xe9, 0x44, 0xe0, 0x19, 0x5f, 0x0d, 0x85, + 0x19, 0x64, 0x34, 0xb3, 0xaa, 0xa6, 0x84, 0x60, + 0xad, 0x0a, 0x66, 0x11, 0x00, 0x47, 0x7b, 0x20, + 0xb5, 0x99, 0x48, 0x48, 0x8c, 0xe2, 0x80, 0x12, + 0x66, 0x4d, 0x90, 0xe0, 0x54, 0x10, 0x34, 0x26, + 0x54, 0xaa, 0x24, 0xd9, 0x83, 0xd0, 0xd4, 0x5f, + 0xa8, 0x03, 0x90, 0x5d, 0x65, 0x84, 0xe8, 0x7d, + 0x80, 0xd2, 0xf0, 0x1f, 0x42, 0xfc, 0xa2, 0xd6, + 0xdc, 0x9e, 0x90, 0x61, 0x19, 0xff, 0x00, 0x93, + 0xa7, 0xb7, 0xe8, 0xf3, 0xe7, 0xcd, 0x6d, 0x57, + 0xeb, 0xe9, 0xf3, 0xf9, 0xf3, 0xc7, 0x8a, 0xb0, + 0xed, 0x8e, 0x7d, 0xac, 0x3b, 0x4e, 0xd9, 0x2d, + 0x0a, 0x40, 0x3c, 0x4a, 0x13, 0xe2, 0x20, 0x3c, + 0x7d, 0xe7, 0x71, 0x66, 0xb2, 0x02, 0xb4, 0xc0, + 0x74, 0x10, 0x16, 0xe5, 0x2a, 0x2e, 0x60, 0x19, + 0xd1, 0x12, 0x5f, 0x7a, 0x1f, 0x4a, 0xe9, 0x21, + 0xc4, 0x9c, 0x09, 0x7f, 0xb2, 0xc7, 0x54, 0xe3, + 0x0c, 0x3a, 0x0e, 0x84, 0x8c, 0x06, 0x87, 0x83, + 0x17, 0x97, 0xdf, 0x10, 0x06, 0xbf, 0x04, 0x3f, + 0x53, 0x22, 0x58, 0xe7, 0x4f, 0x2f, 0x57, 0x29, + 0x23, 0x3e, 0xb5, 0x08, 0x89, 0x22, 0x06, 0x08, + 0x88, 0x36, 0x23, 0x4c, 0x59, 0x73, 0x7b, 0xc4, + 0x13, 0xa8, 0x19, 0xfa, 0xf8, 0xf0, 0xab, 0xe4, + 0xf2, 0xaf, 0x98, 0x6a, 0xc1, 0x39, 0x6b, 0x83, + 0xfa, 0x2d, 0x5a, 0xb5, 0x6a, 0xd5, 0xab, 0x56, + 0xad, 0x5a, 0xb5, 0x6a, 0xd5, 0xab, 0x56, 0xad, + 0x41, 0x94, 0xab, 0x58, 0x52, 0x80, 0x13, 0x08, + 0x88, 0x98, 0x63, 0xdf, 0x26, 0x67, 0x1b, 0x54, + 0x4f, 0xa8, 0x51, 0x55, 0xf4, 0xb4, 0xa3, 0x4d, + 0x03, 0x96, 0xd2, 0x63, 0x96, 0x5a, 0x08, 0x40, + 0x08, 0x28, 0x01, 0x00, 0xc0, 0x01, 0x50, 0x0c, + 0x7f, 0x45, 0xab, 0x56, 0xad, 0x5a, 0xb5, 0x6a, + 0xd5, 0xab, 0x56, 0xad, 0x5a, 0xb5, 0x6a, 0xd6, + 0x94, 0xea, 0xc2, 0xa5, 0x06, 0x56, 0xdb, 0xa8, + 0xa8, 0xa5, 0xfe, 0xcd, 0x67, 0x48, 0x71, 0x90, + 0x3c, 0x4b, 0x2d, 0x20, 0x6a, 0x68, 0x42, 0xde, + 0x60, 0x65, 0x0b, 0x40, 0x41, 0x69, 0xa2, 0x9f, + 0x22, 0x7d, 0xe9, 0x06, 0x56, 0x69, 0x21, 0x6e, + 0x89, 0x08, 0x0e, 0xa7, 0xfb, 0xe1, 0x28, 0x59, + 0xf4, 0xe5, 0x1a, 0xcf, 0xbe, 0xb7, 0x5a, 0xe7, + 0x6b, 0x63, 0xde, 0x65, 0xbd, 0xda, 0x77, 0x03, + 0xb6, 0x48, 0xbf, 0xfc, 0x49, 0x62, 0xd2, 0xe5, + 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, + 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, + 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, + 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, + 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, + 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, + 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, + 0xcb, 0x97, 0x2d, 0xb1, 0x61, 0x20, 0x23, 0x80, + 0x55, 0x86, 0xc1, 0x2b, 0x02, 0x94, 0x14, 0x33, + 0xf0, 0x09, 0xf4, 0x04, 0xc6, 0x0d, 0x31, 0xed, + 0xef, 0xec, 0xc4, 0x1d, 0x7c, 0xf3, 0x7d, 0x76, + 0x8b, 0xb6, 0x8e, 0x87, 0x69, 0xca, 0xf4, 0x3b, + 0x4e, 0x57, 0xa1, 0xda, 0x72, 0xbd, 0x0e, 0xd3, + 0x95, 0xe8, 0x76, 0x9c, 0xaf, 0x43, 0xb4, 0xe5, + 0x7a, 0x1d, 0xa7, 0x2b, 0xd0, 0xed, 0x39, 0x5e, + 0x87, 0x69, 0xca, 0xf4, 0x3b, 0x4e, 0x57, 0xa1, + 0xda, 0x72, 0xbd, 0x0e, 0xd3, 0x95, 0xe8, 0x76, + 0x9c, 0xaf, 0x43, 0xb4, 0xe5, 0x7a, 0x1d, 0xa7, + 0x2b, 0xd0, 0xed, 0x39, 0x5e, 0x87, 0x69, 0xca, + 0xf4, 0x3b, 0x4e, 0x57, 0xa1, 0xda, 0x72, 0xbd, + 0x0e, 0xd3, 0x95, 0xe8, 0x76, 0x9c, 0xaf, 0x43, + 0xb4, 0xe5, 0x7a, 0x1d, 0xa7, 0x2b, 0xd0, 0xed, + 0x39, 0x5e, 0x87, 0x69, 0xca, 0xf4, 0x3b, 0x4e, + 0x57, 0xa1, 0xda, 0x72, 0xbd, 0x0e, 0xd3, 0x95, + 0xe8, 0x76, 0x9c, 0xaf, 0x43, 0xb4, 0xe5, 0x7a, + 0x1d, 0xa7, 0x2b, 0xd0, 0xed, 0x39, 0x5e, 0x87, + 0x69, 0xca, 0xf4, 0x3b, 0x4e, 0x57, 0xa1, 0xda, + 0x72, 0xbd, 0x0e, 0xd3, 0x95, 0xe8, 0x76, 0x9c, + 0xaf, 0x43, 0xb4, 0xe5, 0x7a, 0x1d, 0xa7, 0x2b, + 0xd0, 0xed, 0x39, 0x5e, 0x87, 0x69, 0xca, 0xf4, + 0x3b, 0x4e, 0x57, 0xa1, 0xda, 0x72, 0xbd, 0x0e, + 0xd3, 0x95, 0xe8, 0x76, 0x9c, 0xaf, 0x43, 0xb4, + 0xe5, 0x7a, 0x1d, 0xa7, 0x2b, 0xd0, 0xed, 0x39, + 0x5e, 0x87, 0x69, 0xca, 0xf4, 0x3b, 0x4e, 0x57, + 0xa1, 0xda, 0x72, 0xbd, 0x0e, 0xd3, 0x95, 0xe8, + 0x76, 0x9c, 0xaf, 0x43, 0xb4, 0xe5, 0x7a, 0x1d, + 0xa7, 0x2b, 0xd0, 0xed, 0x39, 0x5e, 0x87, 0x69, + 0xca, 0xf4, 0x3b, 0x4e, 0x57, 0xa1, 0xda, 0x72, + 0xbd, 0x0e, 0xd3, 0x95, 0xe8, 0x76, 0x9c, 0xaf, + 0x43, 0xb4, 0xe5, 0x7a, 0x1d, 0xa7, 0x2b, 0xd0, + 0xed, 0x39, 0x5e, 0x87, 0x69, 0xca, 0xf4, 0x3b, + 0x4e, 0x57, 0xa1, 0xda, 0x72, 0xbd, 0x0e, 0xd3, + 0x95, 0xe8, 0x76, 0x9c, 0xaf, 0x43, 0xb4, 0xe5, + 0x7a, 0x1d, 0xa7, 0x2b, 0xd0, 0xed, 0x39, 0x5e, + 0x87, 0x69, 0xca, 0xf4, 0x3b, 0x4c, 0xc4, 0x18, + 0x17, 0x43, 0xb7, 0xe6, 0x00, 0x79, 0xe7, 0xdb, + 0x9c, 0xff, 0xd9, +}; + +static const uint8_t data_ek_tm4c1294xl_jpg[] = +{ + /* /ek-tm4c1294xl.jpg */ + 0x2f, 0x65, 0x6b, 0x2d, 0x74, 0x6d, 0x34, 0x63, + 0x31, 0x32, 0x39, 0x34, 0x78, 0x6c, 0x2e, 0x6a, + 0x70, 0x67, 0x00, + 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, + 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0xf0, + 0x00, 0xf0, 0x00, 0x00, 0xff, 0xdb, 0x00, 0x43, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0xff, 0xdb, 0x00, 0x43, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xc2, + 0x00, 0x11, 0x08, 0x00, 0xac, 0x00, 0xd0, 0x03, + 0x01, 0x11, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, + 0x01, 0xff, 0xc4, 0x00, 0x1e, 0x00, 0x00, 0x01, + 0x04, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, + 0x05, 0x06, 0x07, 0x00, 0x02, 0x08, 0x01, 0x09, + 0x0a, 0xff, 0xc4, 0x00, 0x1c, 0x01, 0x00, 0x02, + 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x03, 0x05, 0x02, 0x04, 0x06, 0x07, 0x08, 0xff, + 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x10, + 0x03, 0x10, 0x00, 0x00, 0x01, 0xfb, 0x32, 0x96, + 0x06, 0x07, 0xa1, 0xe8, 0x6c, 0x1b, 0x06, 0xc1, + 0xb0, 0x28, 0x0a, 0x06, 0xe0, 0xa8, 0x28, 0x0a, + 0x8d, 0x51, 0x2a, 0x0a, 0x82, 0xc0, 0xa8, 0x6c, + 0xde, 0x06, 0x06, 0x06, 0x06, 0x05, 0x6e, 0x96, + 0x06, 0x07, 0xac, 0xf5, 0x3d, 0x85, 0xb0, 0xf7, + 0x16, 0xec, 0xd8, 0x15, 0x46, 0xe0, 0xab, 0x14, + 0x1a, 0xa2, 0x54, 0x16, 0x42, 0xa0, 0xb0, 0x2c, + 0x0b, 0x33, 0x61, 0xe0, 0x60, 0x60, 0x60, 0x55, + 0xe9, 0x78, 0xcf, 0x51, 0x81, 0xe8, 0xf6, 0x66, + 0xe9, 0x6c, 0x1b, 0x82, 0x83, 0xdd, 0x8a, 0xa4, + 0xa0, 0x2a, 0xc5, 0x50, 0xb0, 0x2a, 0x35, 0x84, + 0xb0, 0x2c, 0x0b, 0x02, 0xcc, 0xd8, 0x78, 0x18, + 0x18, 0x15, 0x32, 0x5e, 0x0f, 0xd1, 0x63, 0x7b, + 0x23, 0x60, 0xd8, 0x37, 0x6b, 0x74, 0x28, 0x35, + 0x04, 0xa0, 0x2a, 0x0a, 0x36, 0xb2, 0x4a, 0x82, + 0xc3, 0x58, 0x16, 0x62, 0xe9, 0x2c, 0x35, 0xda, + 0x58, 0x3d, 0x1e, 0x06, 0x05, 0x3a, 0x97, 0x8c, + 0xf5, 0x1e, 0x8f, 0xd1, 0x6c, 0x3d, 0xc5, 0xb8, + 0xf7, 0x12, 0x80, 0xa0, 0x28, 0xc5, 0x53, 0x58, + 0x4a, 0x82, 0xcc, 0x59, 0x0b, 0x31, 0x64, 0x2e, + 0x35, 0x9a, 0x5d, 0x0b, 0x82, 0xa3, 0xf5, 0x98, + 0x1c, 0xbf, 0x0c, 0xf0, 0x28, 0x37, 0xb4, 0x59, + 0xb6, 0xd7, 0x76, 0xac, 0xfa, 0xb7, 0xda, 0x0d, + 0x79, 0xf4, 0xb3, 0x7b, 0x92, 0x75, 0xcf, 0x4d, + 0x63, 0x12, 0xcc, 0x7c, 0x59, 0x47, 0xf0, 0xb0, + 0x90, 0x28, 0x62, 0xf8, 0xd8, 0xa2, 0x64, 0xfd, + 0x9e, 0xb3, 0xb6, 0x7a, 0xee, 0xc6, 0xab, 0x04, + 0x7b, 0xef, 0xb3, 0x56, 0x8f, 0x96, 0x0f, 0x04, + 0x7b, 0x64, 0x9d, 0xf1, 0x7d, 0x27, 0xbb, 0x47, + 0xf3, 0x5e, 0x13, 0x9c, 0x63, 0x9d, 0xb7, 0x1c, + 0xa8, 0x4e, 0x57, 0xe8, 0xea, 0x5b, 0x99, 0xfa, + 0x31, 0xf2, 0xdf, 0xcd, 0x65, 0xb7, 0x9e, 0x32, + 0xcd, 0x59, 0x6d, 0x03, 0xce, 0xeb, 0x4c, 0xa3, + 0x31, 0x57, 0x91, 0x24, 0xb8, 0xf3, 0xd7, 0x5a, + 0xd9, 0xa7, 0x47, 0xa1, 0xd4, 0x5d, 0x43, 0xd1, + 0x79, 0x75, 0x17, 0x5d, 0xd9, 0x4d, 0xab, 0x37, + 0x6a, 0x0d, 0x9b, 0x0b, 0x4b, 0x7f, 0x8b, 0x88, + 0x4f, 0xa4, 0xf5, 0x9e, 0x9c, 0xad, 0xd6, 0x2e, + 0xb3, 0xfd, 0x00, 0xf5, 0x5e, 0x23, 0xc4, 0x10, + 0xe5, 0xce, 0x51, 0xca, 0x34, 0x79, 0x72, 0x2e, + 0xbf, 0x5f, 0xcd, 0x5b, 0x32, 0x5c, 0xda, 0xd6, + 0xb6, 0xbd, 0x87, 0x98, 0x55, 0x9c, 0xe7, 0xb2, + 0xc6, 0x69, 0x3d, 0x02, 0x73, 0xa1, 0xd3, 0x87, + 0x3e, 0xd2, 0xe4, 0x5d, 0x45, 0x7b, 0xe6, 0xb5, + 0xb6, 0x9d, 0xf1, 0x9b, 0x3c, 0xdc, 0x58, 0xb0, + 0x02, 0xbf, 0xb7, 0xb9, 0xb7, 0x79, 0x68, 0x4c, + 0x68, 0x1c, 0xe0, 0x8f, 0xe8, 0xde, 0xdc, 0x9b, + 0xfc, 0xdd, 0x1b, 0xa5, 0x67, 0x61, 0x59, 0xf1, + 0x97, 0x8d, 0x8f, 0x2f, 0xf5, 0xf6, 0xfb, 0xcd, + 0x38, 0x62, 0x1c, 0xf9, 0xde, 0x29, 0x00, 0xc3, + 0x3e, 0x4f, 0xd0, 0xf4, 0xba, 0xa6, 0x68, 0xa3, + 0xf3, 0x6a, 0xc7, 0xed, 0x7c, 0xee, 0xef, 0xe5, + 0xfd, 0x82, 0xc0, 0x8a, 0x51, 0x6b, 0x2f, 0xe1, + 0x7b, 0xb9, 0x35, 0x52, 0x7b, 0x14, 0x96, 0x6a, + 0xa9, 0xfd, 0x97, 0x09, 0x1b, 0xe8, 0x3c, 0x82, + 0x9b, 0x9a, 0x91, 0xea, 0x97, 0xad, 0x37, 0x69, + 0xd8, 0x79, 0x28, 0x9d, 0x67, 0x6e, 0xf5, 0x57, + 0x6f, 0x64, 0xe7, 0x5e, 0xb6, 0xfc, 0x2c, 0xb8, + 0x6b, 0xfd, 0x1e, 0xe9, 0x3c, 0x3b, 0xaa, 0xb7, + 0x74, 0xa8, 0x5d, 0x1e, 0x93, 0xe5, 0xde, 0x87, + 0x4b, 0xcc, 0x92, 0xc9, 0x38, 0x53, 0x5b, 0xb9, + 0xf3, 0x95, 0xe5, 0x5f, 0xa2, 0x6b, 0x0e, 0xdc, + 0xc6, 0x5d, 0x18, 0xaa, 0xcf, 0x9e, 0x3b, 0x0f, + 0x10, 0x8d, 0x67, 0x17, 0x66, 0x73, 0x1e, 0xa9, + 0xe5, 0x0f, 0xa1, 0xc4, 0xb6, 0x72, 0x03, 0x7f, + 0x49, 0x8a, 0x6a, 0xae, 0x82, 0xd5, 0xd8, 0xab, + 0xb5, 0x3a, 0x08, 0xf5, 0x6f, 0x48, 0x81, 0x2d, + 0xb5, 0x27, 0x0b, 0x50, 0xf5, 0x5e, 0x70, 0xfb, + 0x06, 0x36, 0x25, 0x4f, 0x73, 0x6a, 0x59, 0xd1, + 0xfd, 0x97, 0xe9, 0x7c, 0x7f, 0x9a, 0xeb, 0xfa, + 0x7e, 0x40, 0xd3, 0xdc, 0xe1, 0xb9, 0xe6, 0x86, + 0xe1, 0x71, 0xf4, 0x5e, 0x2e, 0x3f, 0xe7, 0x15, + 0x6f, 0xb1, 0x74, 0x35, 0x4c, 0xac, 0xe7, 0x49, + 0x45, 0x76, 0xfe, 0x03, 0x4f, 0x59, 0xf1, 0xcf, + 0x11, 0x66, 0x9e, 0xc2, 0xe9, 0x8e, 0x13, 0xe8, + 0x36, 0x8b, 0xef, 0x3b, 0xaa, 0xa4, 0x9a, 0x45, + 0x0a, 0xba, 0x35, 0xfa, 0x88, 0x15, 0x1f, 0x54, + 0x16, 0xbd, 0xcb, 0x94, 0xd0, 0xcc, 0xac, 0xb8, + 0x8a, 0x13, 0xae, 0xf0, 0xbc, 0xca, 0x3e, 0xf0, + 0xe4, 0x7d, 0x9d, 0xd3, 0x1d, 0x8f, 0xb5, 0x5d, + 0x57, 0x8b, 0xd1, 0xa9, 0xfc, 0xe3, 0xa9, 0xef, + 0xf9, 0x8f, 0x9e, 0xf4, 0x25, 0x34, 0x6d, 0x1c, + 0xaf, 0xb9, 0xd0, 0xe0, 0xb3, 0xbc, 0xd5, 0x5a, + 0xef, 0x0a, 0xde, 0x1c, 0xb9, 0x17, 0xb1, 0xf1, + 0x9a, 0xef, 0x77, 0x47, 0xb0, 0xf9, 0x1f, 0x52, + 0x71, 0xac, 0xef, 0x1b, 0x2d, 0x6a, 0x60, 0xbb, + 0xfc, 0xbd, 0x62, 0x55, 0x5a, 0x15, 0xbe, 0x86, + 0xff, 0x00, 0xce, 0xd8, 0xd5, 0x73, 0xf5, 0x84, + 0x12, 0xcc, 0xf6, 0xf9, 0xe6, 0x8e, 0x9f, 0xc3, + 0xd8, 0xe7, 0xaf, 0xb1, 0xb4, 0xbb, 0x17, 0xf9, + 0x69, 0xbf, 0x45, 0x56, 0x3c, 0x55, 0x0b, 0x86, + 0x5f, 0x2d, 0x6a, 0xbd, 0x01, 0x93, 0x9c, 0xec, + 0x63, 0xd5, 0x5d, 0xe4, 0x57, 0x7f, 0x61, 0x97, + 0x56, 0xde, 0xdf, 0xb1, 0xe3, 0x5d, 0xb6, 0x29, + 0xb6, 0xd5, 0xb5, 0xa9, 0xa0, 0xb9, 0x82, 0x6d, + 0xd2, 0x74, 0x0c, 0x5b, 0x95, 0xfd, 0x75, 0xfc, + 0x5f, 0x76, 0x46, 0x15, 0x0c, 0x73, 0x7a, 0x8e, + 0xc9, 0x9a, 0x89, 0x5a, 0x1d, 0x9a, 0x3f, 0x77, + 0xad, 0x91, 0x40, 0x3d, 0x47, 0x61, 0x76, 0x43, + 0xcf, 0x33, 0x5b, 0xf2, 0x14, 0xaf, 0x51, 0xc6, + 0x31, 0xef, 0x79, 0xf7, 0xea, 0x77, 0x3d, 0x6e, + 0x6f, 0xd5, 0xb7, 0xf8, 0xdb, 0xcf, 0xfa, 0xdb, + 0xec, 0x39, 0xaf, 0x1e, 0xe4, 0x36, 0x6d, 0xdf, + 0x75, 0x6f, 0x6b, 0x2a, 0xbf, 0x43, 0x95, 0x45, + 0x2d, 0x97, 0x27, 0x35, 0x74, 0xd9, 0xf2, 0x50, + 0xc8, 0x2e, 0x22, 0xda, 0xbb, 0x51, 0x47, 0x3c, + 0x1b, 0x62, 0x69, 0x39, 0x4d, 0x60, 0xef, 0x73, + 0xcd, 0xb1, 0xb1, 0xa8, 0xe6, 0xa0, 0xb7, 0xba, + 0x89, 0x5e, 0xae, 0xd5, 0xc7, 0x6d, 0xca, 0x87, + 0x9e, 0x48, 0xd8, 0x72, 0xd5, 0x6d, 0xa7, 0x2d, + 0x51, 0x5c, 0xf9, 0x4f, 0xea, 0xf2, 0x07, 0xcd, + 0x58, 0xc9, 0xc8, 0x75, 0x76, 0x3c, 0x93, 0xb4, + 0xe7, 0x5a, 0xb6, 0xfc, 0x33, 0x45, 0xef, 0x5d, + 0x33, 0x06, 0x05, 0x49, 0x5e, 0xdb, 0x16, 0xf9, + 0x66, 0xb3, 0xec, 0xf4, 0x80, 0x41, 0xbe, 0xd4, + 0xae, 0x50, 0x25, 0x60, 0xd5, 0xbc, 0x9f, 0x3a, + 0xb6, 0x17, 0xb7, 0x68, 0x6f, 0xf3, 0xcc, 0xfa, + 0xb2, 0xd5, 0xa5, 0xd4, 0x0c, 0xd8, 0xe8, 0x3d, + 0xde, 0x1e, 0x2a, 0xf5, 0x63, 0xbb, 0x1a, 0xa3, + 0x4f, 0x5f, 0x3a, 0x92, 0xbb, 0xf4, 0x1b, 0x7d, + 0xe4, 0xfc, 0xd5, 0xa7, 0x7d, 0xf3, 0x23, 0x9f, + 0xf4, 0xea, 0x63, 0x4e, 0xfa, 0x3f, 0x96, 0xe3, + 0x1e, 0x8f, 0x41, 0xd1, 0xbb, 0x9c, 0x6b, 0xa4, + 0xba, 0x54, 0xe5, 0x3f, 0x72, 0x96, 0x13, 0x31, + 0x6d, 0x64, 0x36, 0x7a, 0xc3, 0xb8, 0x9d, 0xa6, + 0xd1, 0x9c, 0xc5, 0x84, 0x92, 0x1d, 0xf6, 0xb8, + 0xad, 0x9e, 0x64, 0xae, 0x93, 0x4d, 0xaf, 0x25, + 0x96, 0xa2, 0x39, 0xaf, 0x70, 0x84, 0xda, 0x55, + 0x7e, 0x36, 0x91, 0xa8, 0xdb, 0xee, 0x5c, 0xed, + 0xc3, 0x6b, 0xcc, 0x7d, 0xbe, 0xeb, 0x3c, 0x6f, + 0x9f, 0x74, 0xed, 0x78, 0x17, 0x94, 0xf5, 0xb6, + 0x60, 0x45, 0xb5, 0x70, 0x7a, 0x3c, 0x5c, 0x21, + 0x99, 0x30, 0xd2, 0x40, 0xbc, 0x70, 0xf1, 0xe2, + 0x8e, 0x46, 0x19, 0x6d, 0x80, 0x2b, 0x33, 0x1c, + 0xfc, 0xc2, 0x45, 0x0c, 0x36, 0x58, 0xae, 0xb0, + 0x4e, 0x58, 0x49, 0xcb, 0x25, 0xdb, 0x74, 0xc6, + 0x02, 0x26, 0x5f, 0x5e, 0x7b, 0x7f, 0x17, 0xe7, + 0xb4, 0x6a, 0x3d, 0x84, 0xa0, 0x2c, 0xc5, 0xd0, + 0xbb, 0x64, 0x20, 0x80, 0x20, 0x08, 0x68, 0x80, + 0x24, 0x08, 0x41, 0x20, 0x40, 0x10, 0xd9, 0x22, + 0x21, 0x04, 0x81, 0x23, 0x20, 0x44, 0x81, 0x20, + 0x48, 0x14, 0x1c, 0x78, 0x3f, 0x05, 0xb0, 0x2c, + 0xc5, 0xc0, 0x84, 0x10, 0x04, 0x30, 0x81, 0x92, + 0x91, 0x20, 0x48, 0x10, 0x04, 0xb0, 0x84, 0x12, + 0xc2, 0x50, 0x48, 0x12, 0x04, 0x01, 0x20, 0x48, + 0xc9, 0x11, 0x20, 0x40, 0x12, 0x1c, 0x6a, 0x1a, + 0x82, 0x80, 0xb8, 0xc8, 0x11, 0x20, 0x40, 0x12, + 0x32, 0x40, 0x91, 0x10, 0x32, 0x44, 0x40, 0x12, + 0xc2, 0x90, 0x48, 0x10, 0x32, 0x5a, 0x25, 0x04, + 0x8c, 0x81, 0x12, 0xc2, 0x53, 0x24, 0x09, 0x11, + 0x03, 0xe3, 0x16, 0x93, 0x05, 0xc0, 0x94, 0x12, + 0x32, 0x44, 0x40, 0x12, 0x04, 0x81, 0x20, 0x48, + 0x12, 0x04, 0x01, 0x20, 0x48, 0x12, 0x04, 0x81, + 0x20, 0x43, 0x09, 0x4c, 0x91, 0x12, 0x04, 0x81, + 0x0d, 0x94, 0x22, 0x11, 0xc6, 0xa3, 0xd0, 0x4a, + 0x8d, 0x70, 0x5d, 0x85, 0x24, 0x48, 0xc9, 0x02, + 0x58, 0x40, 0x89, 0x41, 0x20, 0x48, 0x10, 0xc2, + 0x86, 0x4a, 0x44, 0x36, 0x4a, 0x44, 0x30, 0xa4, + 0xc9, 0x11, 0x03, 0x24, 0x44, 0x0c, 0x96, 0x89, + 0x0f, 0xff, 0xc4, 0x00, 0x2a, 0x10, 0x00, 0x01, + 0x04, 0x03, 0x01, 0x00, 0x00, 0x06, 0x02, 0x02, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, + 0x01, 0x03, 0x04, 0x02, 0x06, 0x11, 0x07, 0x10, + 0x12, 0x13, 0x14, 0x15, 0x17, 0x20, 0x36, 0x16, + 0x26, 0x21, 0x25, 0x30, 0x35, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x01, 0x00, 0x01, 0x05, 0x02, 0xea, + 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, + 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, + 0xea, 0xef, 0xfe, 0x1d, 0x5d, 0x5d, 0x5d, 0x5d, + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, + 0x5d, 0x5d, 0x5d, 0x5d, 0x4c, 0xe9, 0x9d, 0x77, + 0xf9, 0xf5, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, + 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, + 0x75, 0x33, 0xa6, 0x4c, 0xff, 0x00, 0x0e, 0xff, + 0x00, 0x2e, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, + 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, + 0xae, 0xae, 0xa6, 0x75, 0xd4, 0xce, 0x99, 0x33, + 0xff, 0x00, 0x1e, 0xae, 0xae, 0xae, 0xae, 0xae, + 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xa6, + 0x4c, 0xeb, 0xab, 0xa9, 0x9d, 0x32, 0xea, 0x6f, + 0x83, 0x7f, 0x02, 0x9b, 0x00, 0xd1, 0x09, 0xfd, + 0x08, 0x13, 0x2f, 0xd8, 0x80, 0x15, 0xaf, 0x4f, + 0xd6, 0xe9, 0x37, 0xed, 0xfd, 0x3d, 0x7e, 0xe2, + 0xd3, 0x99, 0x47, 0xeb, 0xfa, 0x94, 0xaa, 0x9f, + 0xb0, 0xe9, 0xf7, 0x6d, 0xd7, 0xf5, 0x8d, 0x46, + 0xca, 0xc3, 0xd5, 0xf5, 0x2c, 0x95, 0x5f, 0x53, + 0xd5, 0x6e, 0x3b, 0xfa, 0xb6, 0xa7, 0x1b, 0x7e, + 0xec, 0xd1, 0xd7, 0xed, 0x9d, 0x6b, 0xe6, 0x9b, + 0xdd, 0xb4, 0x6a, 0xd2, 0xfe, 0xfd, 0xd0, 0x16, + 0x1e, 0xe1, 0xa2, 0x3c, 0x75, 0x7d, 0x8f, 0x54, + 0xb9, 0x66, 0x4f, 0x59, 0xd7, 0x21, 0x92, 0xf7, + 0xb7, 0xea, 0x43, 0x31, 0xcb, 0xd9, 0x35, 0x18, + 0xa2, 0xfd, 0xe1, 0xa1, 0xf2, 0x3f, 0x65, 0xd3, + 0x24, 0xc2, 0x2f, 0x68, 0xd2, 0x26, 0x6a, 0xfe, + 0xb9, 0xa7, 0xdb, 0xce, 0x19, 0xa3, 0xb1, 0x1f, + 0xa0, 0x65, 0xff, 0x00, 0x6b, 0x23, 0xbf, 0xc3, + 0x62, 0x31, 0x68, 0x69, 0x3b, 0x36, 0x6d, 0xd4, + 0x50, 0x12, 0x7a, 0x23, 0x69, 0x7e, 0x74, 0x25, + 0xe8, 0xef, 0xd8, 0x9f, 0x62, 0xc6, 0xdf, 0x66, + 0x8b, 0xef, 0x23, 0x76, 0xae, 0x54, 0x72, 0x86, + 0x79, 0x1f, 0x33, 0x31, 0x4e, 0x1f, 0x28, 0x4c, + 0x08, 0xcd, 0xec, 0x5b, 0x96, 0xe2, 0x91, 0xa0, + 0x89, 0xf5, 0x32, 0xda, 0x95, 0x2b, 0x96, 0x27, + 0x96, 0xb4, 0xf2, 0xec, 0x56, 0xec, 0x52, 0xc3, + 0x09, 0x66, 0xce, 0x6a, 0x77, 0x22, 0x9b, 0x3f, + 0xba, 0x6c, 0x07, 0xc5, 0x66, 0xcc, 0xdf, 0x8f, + 0xb3, 0x1c, 0x83, 0xa9, 0x5a, 0x5a, 0x57, 0x5f, + 0x5f, 0xf4, 0x0f, 0xfe, 0xa6, 0x69, 0xbe, 0x56, + 0x7f, 0x4c, 0xca, 0x26, 0xcc, 0x1b, 0xe7, 0x67, + 0x3a, 0x72, 0xcf, 0x3e, 0xbe, 0x6b, 0x2b, 0x59, + 0x66, 0x44, 0x9e, 0x75, 0xf6, 0xf8, 0x09, 0xcd, + 0xf7, 0xcc, 0x4c, 0x9d, 0x59, 0x66, 0x30, 0x73, + 0x0c, 0xab, 0x17, 0x35, 0x2e, 0x65, 0x29, 0x46, + 0x5f, 0x18, 0xf5, 0x61, 0x09, 0xf2, 0xab, 0x5e, + 0x59, 0xe7, 0xc5, 0xe6, 0x88, 0xb9, 0x21, 0xf3, + 0xc1, 0x52, 0x46, 0x80, 0x3d, 0x03, 0x45, 0x11, + 0x19, 0xb6, 0x0d, 0x7e, 0x90, 0xf3, 0x04, 0xbf, + 0x27, 0xba, 0x92, 0xb5, 0x46, 0x19, 0xb6, 0x72, + 0xd4, 0x1c, 0x95, 0xf9, 0x49, 0x81, 0xd3, 0x35, + 0x16, 0x20, 0x3f, 0x56, 0x78, 0xaa, 0x8e, 0xdf, + 0xf8, 0xe5, 0x73, 0x5f, 0xf2, 0xb7, 0xe0, 0xc4, + 0xaf, 0xde, 0x93, 0x59, 0xa3, 0x88, 0x2b, 0x36, + 0x23, 0x83, 0x5d, 0x88, 0x89, 0x08, 0x95, 0xba, + 0xe2, 0x8d, 0x10, 0x16, 0x36, 0x90, 0xcc, 0x32, + 0x80, 0x54, 0xb9, 0x07, 0xa5, 0x54, 0xe0, 0xfa, + 0xc3, 0x49, 0x58, 0xca, 0xc6, 0xc8, 0x6b, 0x19, + 0x35, 0xfb, 0xb8, 0xde, 0x1a, 0x5f, 0x9f, 0x21, + 0x3f, 0xb8, 0xbb, 0x4b, 0x5f, 0xd7, 0x4e, 0xe5, + 0x5f, 0xea, 0x91, 0x99, 0xa9, 0x16, 0xb4, 0x0e, + 0x91, 0x5b, 0x95, 0x48, 0x0d, 0xd6, 0x84, 0xe7, + 0xb1, 0xc9, 0x46, 0xb5, 0x4b, 0x82, 0x48, 0x93, + 0xf9, 0x2e, 0xdb, 0x92, 0x4b, 0xe1, 0x7c, 0xf0, + 0x97, 0xd3, 0x0a, 0x0f, 0x3c, 0x32, 0xd9, 0x3d, + 0x0e, 0x9d, 0x09, 0xb5, 0x8b, 0xfa, 0x85, 0xd2, + 0x0b, 0x61, 0x0e, 0x64, 0x16, 0x3a, 0x41, 0x4b, + 0x85, 0x55, 0x6d, 0x4a, 0x48, 0x69, 0x19, 0x6a, + 0x77, 0xc8, 0xe4, 0x22, 0x77, 0xad, 0x1e, 0x10, + 0x0c, 0x7a, 0x14, 0x2b, 0x51, 0x5b, 0x2e, 0xcd, + 0x6b, 0x63, 0xb7, 0x05, 0xc9, 0x83, 0xdc, 0xa5, + 0xb0, 0x4c, 0x70, 0x78, 0xb0, 0x70, 0x91, 0xa3, + 0x15, 0xda, 0xc2, 0x28, 0x54, 0x36, 0xc6, 0x23, + 0xc8, 0x65, 0x32, 0x16, 0xac, 0xcf, 0xf6, 0x34, + 0x85, 0xdb, 0x96, 0x7c, 0x2e, 0x82, 0x28, 0x3a, + 0xbe, 0x51, 0x4d, 0x04, 0xa2, 0xb3, 0x98, 0x6e, + 0x16, 0x0d, 0x85, 0x79, 0xe6, 0xdc, 0x07, 0xce, + 0xc3, 0x73, 0x2d, 0x4e, 0x16, 0x84, 0x35, 0x72, + 0x3a, 0x30, 0xca, 0x95, 0xc4, 0xfa, 0x4c, 0x38, + 0xd9, 0xd2, 0x34, 0x7d, 0xc0, 0x7e, 0x8a, 0x37, + 0xd1, 0xf2, 0xa7, 0xbc, 0x91, 0xf3, 0xe0, 0x70, + 0xc1, 0x7b, 0x66, 0xf5, 0x10, 0xbb, 0x18, 0x7c, + 0xf5, 0xab, 0xee, 0xff, 0x00, 0x4a, 0x0a, 0xf4, + 0xad, 0x6b, 0xd6, 0x6f, 0xd6, 0xda, 0xe0, 0x2f, + 0xf8, 0xda, 0x58, 0xe5, 0x8e, 0x13, 0xe1, 0x1f, + 0xd1, 0x03, 0x19, 0x57, 0x26, 0x1e, 0xf5, 0xaf, + 0xac, 0x62, 0x03, 0x3f, 0x73, 0x14, 0x57, 0xea, + 0x90, 0x19, 0x56, 0x1a, 0xd3, 0x46, 0x27, 0xe9, + 0xbb, 0x08, 0x93, 0xed, 0xa8, 0x14, 0xbe, 0xf2, + 0x64, 0x5c, 0xd9, 0x2a, 0x61, 0xc2, 0x67, 0x4c, + 0x95, 0x9c, 0x32, 0xcc, 0xb4, 0xb2, 0xfd, 0x57, + 0x93, 0xee, 0xa9, 0x99, 0x01, 0xa8, 0x14, 0xcc, + 0x46, 0x9f, 0xfd, 0x78, 0xd1, 0x3a, 0x22, 0xc7, + 0xfa, 0xc0, 0x5c, 0xeb, 0xd1, 0x0a, 0x20, 0x24, + 0xc4, 0x31, 0xd5, 0xa1, 0xae, 0x5a, 0xdc, 0x46, + 0x24, 0xb0, 0xd1, 0x16, 0xcc, 0xa4, 0x35, 0xe6, + 0x9f, 0x01, 0x19, 0x6c, 0x76, 0x6a, 0x44, 0x2e, + 0xc4, 0x50, 0x6d, 0x1a, 0xcc, 0xe1, 0x32, 0xa5, + 0x46, 0xe9, 0x3b, 0x01, 0x82, 0xd6, 0xab, 0x5c, + 0xee, 0xb3, 0x8c, 0x17, 0x3f, 0x30, 0x6e, 0x35, + 0x24, 0xf3, 0x5b, 0xc6, 0x17, 0x2b, 0x23, 0x65, + 0x53, 0x1b, 0x18, 0xc3, 0x5d, 0x99, 0xe4, 0xa3, + 0x96, 0x36, 0x20, 0x83, 0x09, 0xdb, 0x03, 0x25, + 0x84, 0xc3, 0x5f, 0x52, 0xb0, 0x4e, 0x22, 0x5a, + 0xf4, 0x82, 0x6b, 0x81, 0xf4, 0x29, 0xec, 0x59, + 0x13, 0xeb, 0x39, 0xdc, 0x31, 0xa8, 0x7f, 0x5e, + 0x38, 0xf5, 0x7f, 0x15, 0xe9, 0xbb, 0x40, 0x03, + 0x94, 0x85, 0x8d, 0xc2, 0xa2, 0x2f, 0x56, 0xfd, + 0x7c, 0xc8, 0x98, 0x80, 0xab, 0x55, 0x15, 0x72, + 0xc4, 0x22, 0xef, 0xec, 0x51, 0xdf, 0x94, 0x89, + 0xd8, 0x1b, 0x0b, 0x04, 0x6a, 0x41, 0x04, 0x05, + 0x69, 0xd6, 0xa1, 0x9c, 0x63, 0x21, 0xc2, 0x10, + 0xf4, 0xe1, 0xa3, 0xb1, 0x4d, 0xf5, 0x67, 0x33, + 0x6e, 0x55, 0x64, 0x9c, 0xd3, 0xc7, 0x1d, 0x36, + 0x7b, 0x92, 0x0c, 0xc2, 0xcc, 0x31, 0xd5, 0xf9, + 0x1e, 0x48, 0x31, 0x82, 0x58, 0xe3, 0xc2, 0xe1, + 0x19, 0x69, 0x30, 0xfb, 0x55, 0xdb, 0x53, 0xa7, + 0x09, 0xb9, 0x72, 0xd8, 0xd8, 0x20, 0xb1, 0xd0, + 0x5c, 0xd4, 0xb5, 0xa9, 0x31, 0xd8, 0x34, 0xf7, + 0xff, 0x00, 0x5e, 0xd9, 0x60, 0x82, 0xd8, 0x3a, + 0x1a, 0xdc, 0x7f, 0x9f, 0x8a, 0xbe, 0x57, 0xe9, + 0x3c, 0x12, 0x44, 0x13, 0x57, 0x9c, 0x0f, 0xdc, + 0xec, 0x79, 0x0b, 0xca, 0xd6, 0x33, 0x47, 0x1e, + 0x58, 0x60, 0x47, 0x39, 0xe0, 0xbf, 0x58, 0x85, + 0xcf, 0xf1, 0x98, 0x32, 0xc6, 0xf8, 0xac, 0xab, + 0x65, 0x30, 0xd7, 0x8e, 0xd1, 0xfd, 0x54, 0xa8, + 0x56, 0x1e, 0x24, 0xf1, 0x45, 0x1c, 0x3a, 0xd6, + 0x76, 0x6a, 0x8c, 0x1c, 0x04, 0x38, 0x9a, 0x2f, + 0xb2, 0x0d, 0xc3, 0xe7, 0xc6, 0x3c, 0x68, 0x5c, + 0xad, 0x3b, 0x63, 0x24, 0xd7, 0xa7, 0x8e, 0xe5, + 0xe5, 0x2d, 0x6b, 0x4a, 0x20, 0x84, 0x4b, 0x54, + 0x15, 0x95, 0x39, 0x22, 0xd4, 0xc9, 0xdb, 0xcf, + 0x70, 0xd3, 0x5f, 0xfd, 0x7b, 0x67, 0x6f, 0x9f, + 0x5f, 0x35, 0xea, 0x9a, 0xd1, 0x4d, 0x4b, 0xc9, + 0x76, 0x1a, 0x3a, 0x51, 0x3f, 0x4b, 0xda, 0x07, + 0x6f, 0x36, 0x43, 0x4b, 0x6a, 0x14, 0x18, 0x44, + 0xa7, 0x86, 0xc9, 0xa6, 0xd9, 0xb2, 0xc2, 0xc6, + 0x5f, 0xaa, 0x70, 0x65, 0x49, 0xfe, 0xa0, 0xbb, + 0x67, 0x33, 0x8a, 0xdc, 0x99, 0x64, 0xab, 0x41, + 0x06, 0x6b, 0x29, 0xe2, 0x2d, 0x91, 0x1d, 0x86, + 0x9d, 0x8c, 0x47, 0x61, 0x9c, 0x70, 0xd3, 0xd8, + 0x88, 0xb1, 0x6d, 0x64, 0x55, 0xb2, 0x97, 0x6f, + 0xea, 0x9b, 0x18, 0x8b, 0x39, 0xea, 0xfb, 0x04, + 0x0f, 0x7e, 0x22, 0x14, 0x6e, 0x5b, 0xa9, 0x35, + 0xf8, 0xad, 0x52, 0xa9, 0x92, 0x83, 0x08, 0xe0, + 0xac, 0xf4, 0xc6, 0x57, 0x8c, 0x38, 0xe1, 0x4c, + 0x4b, 0x4c, 0xfe, 0xbd, 0xb1, 0xb4, 0xd9, 0x84, + 0x9b, 0x58, 0xa1, 0x5c, 0xbd, 0x31, 0xb6, 0xf0, + 0xc5, 0xc3, 0x97, 0xa9, 0x07, 0xf8, 0xd9, 0x57, + 0x40, 0x47, 0xe0, 0x3a, 0x0a, 0x94, 0xe6, 0x8a, + 0x58, 0xe9, 0x15, 0xc6, 0xcc, 0x23, 0x6e, 0x33, + 0xe0, 0x34, 0xb7, 0xd7, 0xfc, 0x39, 0xab, 0x35, + 0x62, 0x14, 0x46, 0x59, 0x01, 0xd2, 0xb1, 0x1e, + 0x35, 0xaa, 0xe0, 0x23, 0x29, 0x87, 0xd8, 0x37, + 0x1c, 0x3a, 0xcc, 0x4a, 0x81, 0x73, 0x00, 0x32, + 0x21, 0xb2, 0x94, 0x34, 0x5f, 0x12, 0x63, 0xd5, + 0xda, 0x9a, 0xd5, 0x8b, 0xb2, 0xe0, 0x05, 0x9c, + 0xad, 0x6b, 0x78, 0xd9, 0xc6, 0x89, 0x39, 0x71, + 0x8c, 0x65, 0xfa, 0xd7, 0x29, 0x0e, 0xab, 0x29, + 0x5d, 0x2f, 0xfa, 0xf1, 0x4a, 0xbf, 0x7c, 0x3e, + 0xe7, 0x9c, 0x5f, 0x7b, 0x3f, 0xae, 0x09, 0xf7, + 0x1f, 0x36, 0x2a, 0x9b, 0xce, 0x4b, 0xb3, 0xc5, + 0xe6, 0xc5, 0xf1, 0x7f, 0xd7, 0x45, 0x1b, 0x3c, + 0x3c, 0xf0, 0xdf, 0xcf, 0x5f, 0xce, 0x0c, 0xc4, + 0xf8, 0x79, 0xd9, 0xcf, 0xab, 0x1f, 0x9d, 0x1f, + 0xfa, 0x95, 0x7c, 0xd0, 0xe4, 0x2f, 0x5f, 0xcd, + 0x4f, 0x44, 0xb1, 0xf3, 0x63, 0x78, 0x4b, 0x5f, + 0xcd, 0x76, 0x18, 0x94, 0x3e, 0x71, 0xb1, 0x46, + 0xa1, 0xf3, 0x9d, 0x8e, 0x35, 0x1f, 0x9d, 0x6c, + 0x58, 0x2c, 0x3c, 0xef, 0x62, 0x5f, 0xaf, 0xb6, + 0x47, 0x8f, 0xf5, 0xb6, 0xc4, 0xb1, 0xf3, 0x8d, + 0x89, 0x9d, 0xfc, 0xe3, 0x63, 0x77, 0x97, 0x41, + 0xd9, 0x32, 0xac, 0x37, 0xcf, 0x36, 0x58, 0x08, + 0xeb, 0x91, 0x67, 0x08, 0xbe, 0xfc, 0x59, 0x32, + 0x64, 0xc9, 0x93, 0x26, 0x4c, 0x99, 0x32, 0x64, + 0xc9, 0x99, 0x93, 0x33, 0x26, 0x66, 0x4c, 0xcc, + 0x99, 0xb1, 0x4c, 0xcc, 0x99, 0x99, 0x33, 0x32, + 0x66, 0x64, 0xcc, 0xc9, 0x97, 0x57, 0x57, 0x53, + 0x26, 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, + 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, 0x4c, + 0x99, 0x32, 0x64, 0xdf, 0x0e, 0xa6, 0x4c, 0x99, + 0x32, 0x64, 0xc9, 0x93, 0x26, 0x4c, 0x99, 0x32, + 0x64, 0xc9, 0x93, 0x26, 0x4c, 0x99, 0x32, 0x64, + 0xc9, 0x93, 0x27, 0xf8, 0x32, 0x64, 0xc9, 0x93, + 0x26, 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, + 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, 0x4c, + 0x99, 0x3f, 0xc1, 0x93, 0x26, 0x4c, 0x99, 0x32, + 0x64, 0xc9, 0x93, 0x26, 0x4c, 0x99, 0x37, 0xc5, + 0x93, 0x26, 0x4c, 0x99, 0x32, 0x6f, 0x87, 0xff, + 0xc4, 0x00, 0x4b, 0x11, 0x00, 0x02, 0x02, 0x01, + 0x03, 0x03, 0x03, 0x02, 0x02, 0x06, 0x03, 0x0c, + 0x06, 0x0b, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, + 0x11, 0x05, 0x12, 0x13, 0x00, 0x06, 0x21, 0x14, + 0x22, 0x31, 0x23, 0x41, 0x15, 0x32, 0x07, 0x24, + 0x33, 0x42, 0x51, 0x61, 0x34, 0x71, 0x81, 0x16, + 0x17, 0x25, 0x35, 0x43, 0x52, 0x53, 0x63, 0x91, + 0x95, 0xd1, 0xf0, 0x10, 0x44, 0x62, 0xa1, 0xd4, + 0xf1, 0x26, 0x30, 0x55, 0x60, 0x70, 0x72, 0x92, + 0x94, 0xb1, 0xc1, 0xd3, 0xff, 0xda, 0x00, 0x08, + 0x01, 0x03, 0x01, 0x01, 0x3f, 0x01, 0xff, 0x00, + 0xe0, 0x14, 0x10, 0xac, 0xd2, 0x04, 0x7b, 0x10, + 0x56, 0x52, 0x09, 0xe5, 0xb1, 0xcb, 0xc6, 0xb8, + 0x07, 0xc3, 0x08, 0x22, 0x9e, 0x5c, 0xb7, 0xc0, + 0xc4, 0x67, 0xcf, 0xce, 0x07, 0x9e, 0xbf, 0x0d, + 0x87, 0xff, 0x00, 0x6b, 0xe9, 0x87, 0xfd, 0xe3, + 0xff, 0x00, 0xef, 0x4f, 0x1d, 0x26, 0x95, 0x0b, + 0xb0, 0x5f, 0xc6, 0x74, 0x98, 0xf3, 0xfb, 0xd2, + 0x1d, 0x45, 0x50, 0x7f, 0x5b, 0x7e, 0x1c, 0x40, + 0xfe, 0xdf, 0x1d, 0x68, 0x5f, 0xa2, 0x7e, 0xe2, + 0xee, 0x6a, 0xf2, 0xda, 0xd0, 0xae, 0x68, 0x5a, + 0x94, 0x10, 0x4b, 0xc1, 0x34, 0x90, 0xdf, 0x94, + 0x08, 0xe6, 0xd8, 0xaf, 0xc6, 0xc2, 0x5a, 0x88, + 0xdb, 0xb6, 0x3a, 0xb0, 0xf1, 0x8c, 0x1f, 0x9e, + 0xbf, 0xbc, 0x0f, 0xe9, 0x03, 0xfd, 0x1e, 0x8f, + 0xfe, 0xf1, 0x3f, 0xf8, 0x7e, 0xbf, 0xbc, 0x07, + 0xe9, 0x03, 0xfc, 0xcd, 0x1f, 0xfd, 0xe2, 0xdf, + 0xf8, 0x7e, 0xae, 0xfe, 0x84, 0x7b, 0xd3, 0x4f, + 0x8f, 0x96, 0xe3, 0xe8, 0x70, 0x26, 0x1c, 0xe6, + 0x4d, 0x55, 0x53, 0x3c, 0x6a, 0x5d, 0xf6, 0xef, + 0x85, 0x77, 0x61, 0x41, 0x27, 0x1f, 0x6e, 0xae, + 0xf6, 0x2e, 0xb5, 0x46, 0xb9, 0xb5, 0x33, 0xe9, + 0xe6, 0x1d, 0xe2, 0x30, 0xf0, 0xda, 0x32, 0xee, + 0x72, 0xc5, 0x02, 0x8d, 0x91, 0x7c, 0xee, 0x04, + 0x12, 0x70, 0x06, 0x0e, 0x48, 0xea, 0x6e, 0xd4, + 0xd4, 0x60, 0x16, 0x8b, 0xcb, 0x4c, 0xfa, 0x49, + 0x22, 0x86, 0x5d, 0xb3, 0x48, 0x73, 0x34, 0xc7, + 0xd9, 0x1c, 0x7f, 0x44, 0x07, 0x3e, 0x3d, 0xcc, + 0x0e, 0xc5, 0xfb, 0xbf, 0xcf, 0x52, 0x76, 0xb6, + 0xa3, 0x1f, 0xab, 0xfa, 0x94, 0xd8, 0xd3, 0x96, + 0x38, 0x25, 0xdb, 0x33, 0xf9, 0xb1, 0x2e, 0x71, + 0x0a, 0x66, 0x15, 0x0c, 0xc3, 0x1e, 0xe6, 0xf1, + 0x10, 0xff, 0x00, 0x49, 0xd4, 0xdd, 0xb3, 0x7e, + 0x01, 0x61, 0x9e, 0x5a, 0x78, 0xad, 0x34, 0x55, + 0x9f, 0x13, 0x3f, 0x9b, 0x33, 0x16, 0x0b, 0x5d, + 0x33, 0x10, 0xcb, 0x82, 0xa7, 0x73, 0x1d, 0xb0, + 0x8f, 0xf4, 0xa7, 0xa3, 0xda, 0xda, 0x80, 0x36, + 0xc0, 0x96, 0x9b, 0x9a, 0x72, 0xad, 0x79, 0x76, + 0xcd, 0x27, 0x9b, 0x4d, 0x9f, 0xd5, 0xe3, 0xdf, + 0x0a, 0x06, 0x91, 0x71, 0xee, 0x6f, 0x10, 0x8f, + 0xb4, 0xa7, 0xaa, 0xfd, 0x85, 0xae, 0xd9, 0xf5, + 0x8d, 0x11, 0xa3, 0xc7, 0x41, 0x77, 0x59, 0x95, + 0xad, 0x6d, 0x8d, 0x76, 0x87, 0x69, 0x15, 0x73, + 0x1f, 0x24, 0x8d, 0x18, 0x43, 0xbb, 0x62, 0x32, + 0xe7, 0xc2, 0x96, 0x3e, 0x3a, 0x1d, 0x97, 0xa9, + 0x34, 0x22, 0x74, 0xb3, 0xa7, 0xbc, 0x46, 0x4e, + 0x2d, 0xcb, 0x25, 0xa3, 0xef, 0x05, 0x41, 0x05, + 0x7d, 0x26, 0xf0, 0x32, 0xeb, 0xe4, 0xae, 0x0f, + 0xdb, 0x38, 0x38, 0x8f, 0xf4, 0x6d, 0xdc, 0x52, + 0xc6, 0xb2, 0x46, 0xda, 0x73, 0x24, 0x8a, 0x19, + 0x4f, 0xaa, 0x61, 0x90, 0xc3, 0x23, 0x20, 0xc2, + 0x18, 0x1c, 0x63, 0xc3, 0x00, 0xc3, 0xe0, 0x80, + 0x7a, 0xfe, 0xf6, 0x7d, 0xc9, 0xe7, 0xce, 0x9d, + 0xff, 0x00, 0xdd, 0x9f, 0xff, 0x00, 0x8f, 0x4d, + 0xfa, 0x3d, 0xee, 0x2d, 0xec, 0x91, 0xc7, 0x56, + 0xc3, 0x47, 0xe2, 0x4e, 0x09, 0xf7, 0x2c, 0x67, + 0xc1, 0xc3, 0x3b, 0xa2, 0x26, 0xfc, 0x10, 0x78, + 0xd5, 0x9a, 0x5c, 0x63, 0xd9, 0xf1, 0x99, 0xfb, + 0x27, 0x55, 0xab, 0x0a, 0xcf, 0x3c, 0xf4, 0x52, + 0x37, 0x93, 0x84, 0x7d, 0x4b, 0x2c, 0xeb, 0x28, + 0xf9, 0x47, 0x89, 0x6a, 0x19, 0x63, 0x61, 0xfe, + 0xb1, 0x17, 0xc1, 0x04, 0x64, 0x11, 0xd2, 0xf6, + 0xad, 0xd6, 0x8d, 0xe5, 0x16, 0x6a, 0x04, 0x49, + 0x0c, 0x4d, 0xb9, 0x35, 0x14, 0x6d, 0xe2, 0x36, + 0x94, 0xe1, 0x1a, 0x80, 0x90, 0x8d, 0x88, 0xc7, + 0x78, 0x5d, 0x9e, 0x31, 0xbb, 0x76, 0x07, 0x50, + 0xf6, 0x1e, 0xb1, 0x62, 0x49, 0x61, 0x86, 0x7d, + 0x3a, 0x49, 0x20, 0x0a, 0x65, 0x4e, 0x79, 0x90, + 0xa0, 0x6d, 0xc1, 0x77, 0x09, 0x2b, 0x27, 0xdd, + 0x5b, 0xfd, 0x9d, 0x1e, 0xd8, 0xbc, 0x24, 0x68, + 0xc4, 0xd5, 0x5b, 0x6c, 0xcf, 0x5b, 0x90, 0x3c, + 0xdc, 0x66, 0xd2, 0x67, 0x35, 0x94, 0xb4, 0x2a, + 0x4b, 0xf8, 0x3e, 0xed, 0xbc, 0x3f, 0x1f, 0x53, + 0xc8, 0xe8, 0xf6, 0xd6, 0xa2, 0x3e, 0x78, 0x87, + 0x93, 0x19, 0xf3, 0x2e, 0x39, 0xc7, 0xfd, 0x5c, + 0x11, 0x17, 0xba, 0x4f, 0x1f, 0x99, 0x73, 0x0f, + 0xfa, 0xdf, 0x3d, 0x1d, 0x02, 0xe2, 0xb2, 0xab, + 0x3c, 0x23, 0x74, 0x8d, 0x01, 0x20, 0x4e, 0xca, + 0x96, 0x57, 0xfe, 0xae, 0x4a, 0xc0, 0x73, 0x27, + 0xcf, 0xe4, 0xdf, 0x1f, 0xf1, 0x71, 0x95, 0xc9, + 0xd0, 0x2e, 0x83, 0x10, 0x73, 0x1a, 0x72, 0x48, + 0x61, 0xf2, 0x27, 0xf6, 0x4e, 0x09, 0x02, 0x16, + 0xdb, 0x09, 0xcb, 0xb6, 0x0e, 0x36, 0x6f, 0x4f, + 0x8f, 0x70, 0xdc, 0x32, 0x34, 0x0b, 0x9e, 0xc0, + 0xec, 0x91, 0x97, 0x95, 0xe0, 0x3b, 0xa2, 0xb8, + 0xc2, 0x39, 0x97, 0x3f, 0x4d, 0xcc, 0x55, 0x9c, + 0x12, 0xd8, 0x38, 0xe3, 0xe4, 0x1f, 0x76, 0x2a, + 0x08, 0xcf, 0x40, 0x74, 0xbd, 0x1f, 0x3f, 0xc0, + 0x75, 0xfa, 0x1a, 0x68, 0x1b, 0x41, 0xd5, 0x12, + 0x7b, 0x77, 0x6b, 0xa4, 0x36, 0xdd, 0x9d, 0x68, + 0xda, 0xb1, 0x58, 0xb2, 0x4b, 0x03, 0x07, 0xdf, + 0xc2, 0x41, 0x79, 0x02, 0xaf, 0xd3, 0x2b, 0xe4, + 0x0d, 0xb8, 0xf7, 0x01, 0xd5, 0x3e, 0xe9, 0xa3, + 0x6d, 0x4f, 0x04, 0x8d, 0x26, 0xc5, 0x52, 0x4b, + 0x24, 0x89, 0xe1, 0x9a, 0x44, 0x18, 0xe4, 0x55, + 0x24, 0xee, 0x89, 0xf2, 0x31, 0x9c, 0x6d, 0x6f, + 0x87, 0x52, 0x7f, 0x49, 0x5f, 0xa4, 0xbb, 0x3d, + 0xbf, 0x4f, 0x7e, 0x89, 0x7e, 0x11, 0x7a, 0x39, + 0x63, 0x82, 0x6a, 0x46, 0x10, 0xcc, 0xa2, 0x64, + 0xe4, 0x5b, 0x06, 0x56, 0x89, 0xd0, 0x6c, 0x46, + 0x5f, 0xa6, 0x7f, 0x39, 0x2b, 0x82, 0x36, 0xba, + 0x9e, 0xe1, 0xfd, 0x37, 0x6a, 0xbd, 0xc7, 0x4d, + 0x29, 0xd8, 0xd1, 0xaa, 0x54, 0x2a, 0xe3, 0xf5, + 0xaa, 0x77, 0x66, 0x13, 0x95, 0x23, 0x13, 0x45, + 0x89, 0x21, 0x78, 0xf8, 0xe7, 0x50, 0x04, 0x8b, + 0xb7, 0xec, 0x31, 0x82, 0xbd, 0x0b, 0x69, 0x2e, + 0x95, 0x5c, 0x52, 0xbd, 0x24, 0x6c, 0x4f, 0xb2, + 0xcb, 0xaa, 0xce, 0xc4, 0xe4, 0x35, 0x90, 0x57, + 0xe9, 0xab, 0x3b, 0xba, 0xb1, 0x2e, 0x57, 0x72, + 0x48, 0xe7, 0x69, 0x50, 0x72, 0x3f, 0x05, 0xd4, + 0xa7, 0x4b, 0x32, 0x9d, 0x5e, 0x8b, 0x8b, 0x06, + 0x06, 0x1c, 0x73, 0xd7, 0x3e, 0x9f, 0x6f, 0xdb, + 0xe5, 0x40, 0x27, 0xe3, 0x90, 0x7b, 0x8e, 0xd0, + 0x37, 0xe3, 0x6e, 0x1f, 0xb7, 0x35, 0x8c, 0x59, + 0x71, 0xaa, 0x55, 0x29, 0x26, 0xc9, 0x47, 0x19, + 0x88, 0xf1, 0xc5, 0x16, 0x7c, 0xfb, 0x4b, 0x7b, + 0xf2, 0x40, 0xe4, 0x51, 0xbc, 0xe0, 0x2e, 0xef, + 0x2b, 0x81, 0x05, 0xc9, 0xde, 0xc2, 0xd6, 0xd5, + 0xa2, 0x40, 0xc6, 0x39, 0x1a, 0x49, 0x23, 0x8a, + 0xbc, 0x4a, 0xa0, 0xf8, 0xc3, 0xd8, 0x30, 0xa9, + 0x93, 0xca, 0x8e, 0x4d, 0xc5, 0xce, 0x17, 0xcf, + 0xf9, 0xad, 0x53, 0x54, 0x51, 0x68, 0xfe, 0x39, + 0xa7, 0xb6, 0xf7, 0x0f, 0x12, 0xad, 0x9d, 0x2c, + 0x32, 0x44, 0xa0, 0xfb, 0x77, 0x35, 0x93, 0xf5, + 0x4e, 0x40, 0xe5, 0xf0, 0xde, 0xd5, 0xc9, 0xff, + 0x00, 0x37, 0x48, 0xba, 0xb6, 0x16, 0xe1, 0x3a, + 0xa2, 0x5c, 0x6b, 0x11, 0x1f, 0x4e, 0xd0, 0x46, + 0x03, 0xe9, 0xe4, 0x86, 0xe2, 0xe7, 0xac, 0x44, + 0x5c, 0x92, 0x0d, 0xca, 0xcd, 0xbf, 0x01, 0xd4, + 0x47, 0xee, 0x20, 0xf8, 0xab, 0x05, 0xe6, 0x88, + 0x20, 0xd5, 0xe6, 0x9a, 0x55, 0x90, 0x33, 0x39, + 0xd3, 0xeb, 0x57, 0x52, 0x99, 0x4c, 0xa6, 0xee, + 0x69, 0x11, 0x5b, 0x68, 0x70, 0xac, 0x63, 0x6f, + 0xcc, 0x0b, 0x0f, 0x6f, 0x50, 0x56, 0x45, 0x00, + 0x35, 0x61, 0x24, 0xa5, 0x57, 0x91, 0xfd, 0x6c, + 0x49, 0xca, 0xe0, 0x1d, 0xd2, 0xf1, 0x26, 0xd4, + 0x56, 0x90, 0xe5, 0x9f, 0x68, 0x19, 0x3f, 0x24, + 0xe0, 0x75, 0x3d, 0x79, 0x38, 0x83, 0x2d, 0x35, + 0x80, 0x86, 0xdc, 0xf8, 0xb4, 0x2c, 0x92, 0x83, + 0x39, 0x50, 0xa3, 0x6e, 0x33, 0xe1, 0xb7, 0x60, + 0xed, 0xf8, 0xc7, 0x5d, 0xc3, 0xa5, 0x77, 0x0e, + 0xa4, 0x9a, 0x48, 0xd0, 0xae, 0x9a, 0xcf, 0x41, + 0xe6, 0x5b, 0xf0, 0x7a, 0xa6, 0xa8, 0xe2, 0xd3, + 0x4b, 0xbf, 0xd6, 0xbf, 0xc7, 0xa8, 0x8a, 0x51, + 0x97, 0x00, 0xee, 0x1b, 0x5c, 0x6c, 0x56, 0xdc, + 0xd8, 0x8e, 0xa2, 0xea, 0x2f, 0x62, 0x16, 0xdb, + 0x62, 0x17, 0x86, 0xa4, 0x36, 0x1c, 0x16, 0x11, + 0x49, 0x62, 0x05, 0x6f, 0x53, 0x22, 0x91, 0x81, + 0xb4, 0xe6, 0x24, 0x3b, 0x0f, 0x96, 0x8d, 0xa3, + 0x3e, 0x54, 0x81, 0x0f, 0x6d, 0x56, 0x82, 0x78, + 0xec, 0xd3, 0x08, 0x8f, 0x19, 0x42, 0xcf, 0x24, + 0xf6, 0xc4, 0xc4, 0xaf, 0xb1, 0x88, 0x54, 0x26, + 0x33, 0x19, 0x84, 0x95, 0x58, 0x48, 0xd8, 0xc7, + 0x3b, 0x87, 0x92, 0x7a, 0x9a, 0xb6, 0xc4, 0x92, + 0x53, 0x34, 0x99, 0x54, 0x2e, 0xd8, 0xa9, 0x31, + 0x73, 0xb4, 0x13, 0xe3, 0x31, 0xf9, 0x3f, 0xc3, + 0xc8, 0xe9, 0xea, 0xc9, 0x6e, 0x36, 0xb4, 0xfa, + 0xd4, 0xf0, 0xa9, 0xb6, 0xd5, 0xd7, 0xd5, 0x50, + 0x9a, 0xba, 0xed, 0x62, 0xbf, 0x96, 0x30, 0x84, + 0x02, 0x37, 0xaf, 0xeb, 0x5b, 0x43, 0xc6, 0xa0, + 0x33, 0x48, 0x14, 0x75, 0x26, 0x9f, 0xb3, 0x6a, + 0xb6, 0xbd, 0x09, 0xc3, 0x90, 0x31, 0xb5, 0x81, + 0x84, 0xfc, 0x67, 0xdc, 0x18, 0xcc, 0xbf, 0x69, + 0xdc, 0x97, 0xfe, 0x67, 0xcf, 0x56, 0x74, 0xf6, + 0x8e, 0xb9, 0xb0, 0xba, 0xfc, 0x41, 0x20, 0x76, + 0x99, 0xc1, 0xd8, 0xee, 0xd5, 0x94, 0x6e, 0x65, + 0x11, 0xef, 0x2f, 0x25, 0x8c, 0x0f, 0xa7, 0x2e, + 0x1a, 0x4c, 0xf8, 0x19, 0xce, 0x0b, 0x43, 0x37, + 0x1c, 0x52, 0xc3, 0xac, 0xb4, 0xe9, 0xea, 0x1a, + 0x40, 0x62, 0x89, 0x67, 0x3e, 0x9b, 0x70, 0x1c, + 0x53, 0xa8, 0xf7, 0x25, 0x91, 0x9d, 0xaa, 0xf2, + 0x80, 0xca, 0xca, 0xc1, 0x80, 0x20, 0xa9, 0x86, + 0x6d, 0xd2, 0x15, 0x1a, 0xa5, 0xd8, 0x44, 0x6e, + 0xd0, 0x83, 0x2d, 0x39, 0x80, 0x95, 0xe6, 0x16, + 0x12, 0x38, 0x8e, 0xf8, 0x36, 0x48, 0xee, 0x61, + 0x91, 0x52, 0xc3, 0x1d, 0xb1, 0x80, 0xac, 0x76, + 0xef, 0x05, 0xba, 0x1f, 0xf3, 0xfe, 0xd3, 0xd0, + 0xeb, 0xec, 0x7f, 0xe7, 0xe7, 0xad, 0x1b, 0x51, + 0xb9, 0x47, 0xb7, 0x75, 0x41, 0x56, 0xed, 0x8a, + 0x65, 0xe6, 0x27, 0xf5, 0x72, 0xe8, 0x5c, 0xf1, + 0xc7, 0x8c, 0xc8, 0x84, 0x6d, 0xc7, 0xbb, 0x07, + 0xed, 0x9f, 0xf6, 0xf6, 0xbf, 0x72, 0x6b, 0x6b, + 0xa9, 0xaf, 0x2e, 0xad, 0x7e, 0x48, 0xfe, 0x96, + 0xe4, 0x96, 0xe4, 0xef, 0x19, 0x5e, 0x68, 0xf7, + 0x64, 0x49, 0x21, 0x18, 0xdb, 0x90, 0x4f, 0xd8, + 0x1f, 0x3e, 0x33, 0xd7, 0x7d, 0x5b, 0x7b, 0x89, + 0x3c, 0x8d, 0x2e, 0xfd, 0xd3, 0x54, 0x2a, 0x04, + 0x99, 0x00, 0x7a, 0x64, 0xf2, 0x17, 0xd4, 0x38, + 0x19, 0xc7, 0xe6, 0x10, 0x45, 0x9f, 0x9d, 0xcf, + 0xd7, 0x9f, 0xec, 0xcf, 0xff, 0x00, 0x81, 0xd6, + 0x9d, 0x58, 0xdb, 0xd0, 0x0c, 0x5c, 0xa5, 0x4f, + 0x2c, 0x5e, 0xec, 0xef, 0x1e, 0x27, 0x67, 0x1f, + 0x12, 0x4b, 0xf3, 0xe4, 0x30, 0xdd, 0xf7, 0xfc, + 0xab, 0xf1, 0xd6, 0x99, 0x5a, 0x07, 0xab, 0x0c, + 0x16, 0xab, 0x1b, 0x25, 0x1f, 0x32, 0x47, 0xbe, + 0xbb, 0x42, 0x0b, 0x1f, 0x93, 0x14, 0x9b, 0x15, + 0x8a, 0xab, 0xef, 0x01, 0x93, 0x3b, 0xbf, 0x2f, + 0x9c, 0x1e, 0xa3, 0xd3, 0x74, 0x09, 0x61, 0x45, + 0x9a, 0xa0, 0xa5, 0x23, 0x2b, 0x25, 0x75, 0x6d, + 0x37, 0x4c, 0x92, 0x6d, 0xa1, 0x41, 0x25, 0x15, + 0x4c, 0xca, 0xea, 0x84, 0xe7, 0x8e, 0x45, 0x65, + 0xdc, 0xa0, 0x98, 0xfc, 0x29, 0xe9, 0x34, 0x7d, + 0x1a, 0x55, 0x2d, 0x1e, 0x91, 0xb9, 0x72, 0xc3, + 0x27, 0x43, 0xd2, 0xc6, 0x76, 0x92, 0x33, 0x86, + 0x55, 0xf0, 0x71, 0x95, 0x38, 0xf2, 0xa4, 0x11, + 0xe3, 0xab, 0x14, 0x34, 0xaa, 0x71, 0xf2, 0x1d, + 0x0e, 0x8b, 0xc0, 0xbb, 0xb9, 0x9a, 0xde, 0x93, + 0x5d, 0x64, 0x03, 0x18, 0x51, 0x02, 0xd4, 0x8d, + 0xbd, 0xc5, 0xbf, 0x33, 0x48, 0x48, 0x03, 0xe0, + 0x78, 0x39, 0xd3, 0xf5, 0xf4, 0xd3, 0x5d, 0xdf, + 0x48, 0xed, 0x9d, 0x2e, 0x38, 0xa7, 0x45, 0xc5, + 0x8b, 0xd6, 0x54, 0x6a, 0x0d, 0x5a, 0x1c, 0x6d, + 0xde, 0x5e, 0xec, 0x63, 0x8c, 0x04, 0x97, 0xe9, + 0xa2, 0x45, 0x16, 0xed, 0x8d, 0xe5, 0xbf, 0x35, + 0x9e, 0xed, 0xd4, 0x82, 0xa3, 0xc7, 0xa3, 0xd2, + 0xae, 0x56, 0x30, 0x93, 0x3a, 0x4e, 0xb2, 0x3d, + 0x7b, 0x3c, 0x1c, 0xa6, 0x57, 0xe3, 0xb6, 0xe8, + 0x90, 0x61, 0x59, 0xd7, 0x70, 0x13, 0xaa, 0x02, + 0x3c, 0x38, 0xdd, 0xd6, 0xa1, 0xdd, 0xfa, 0x75, + 0x64, 0x79, 0x2f, 0x2d, 0xf8, 0xb5, 0x39, 0xac, + 0xef, 0xad, 0x3d, 0x1b, 0x8a, 0xf1, 0xe7, 0x3c, + 0x8c, 0x93, 0x4a, 0x6f, 0x3b, 0xa4, 0x24, 0xcb, + 0x23, 0xec, 0x06, 0x34, 0xc3, 0x2e, 0xd5, 0x0e, + 0x0b, 0x75, 0xdb, 0xfd, 0xd7, 0xa3, 0x6b, 0x51, + 0x4d, 0xea, 0x75, 0x0b, 0xf4, 0xa7, 0x81, 0xbd, + 0xf9, 0xb2, 0xc9, 0xcc, 0x92, 0x00, 0x58, 0xa0, + 0x49, 0x67, 0x2e, 0xdc, 0xdc, 0xc4, 0x7c, 0x64, + 0x1d, 0xca, 0xa0, 0x01, 0xb1, 0x74, 0x3e, 0xd8, + 0xbf, 0x5e, 0x1b, 0x92, 0x4f, 0x24, 0xd1, 0x3c, + 0x7b, 0xd2, 0x49, 0xac, 0x2e, 0xe6, 0x1e, 0xc9, + 0x4e, 0x56, 0x48, 0xf7, 0x2b, 0x8d, 0x9e, 0xe4, + 0x00, 0x78, 0x77, 0x46, 0x5c, 0x60, 0x09, 0xcd, + 0x51, 0x2f, 0x0e, 0x9e, 0x2f, 0x35, 0x0e, 0x5a, + 0xc0, 0x16, 0xb1, 0x77, 0xd5, 0xb4, 0x72, 0x15, + 0x86, 0xc6, 0xd0, 0xb2, 0xe5, 0x55, 0x52, 0x36, + 0x09, 0x00, 0x8f, 0x69, 0x9d, 0x38, 0xc4, 0x59, + 0xdc, 0x3a, 0xd7, 0xac, 0xe9, 0xb4, 0xde, 0x16, + 0xb8, 0x2e, 0x1e, 0x68, 0x7d, 0x55, 0x64, 0x3a, + 0xd4, 0xd5, 0x9e, 0x58, 0x62, 0x78, 0x64, 0x13, + 0x70, 0x4b, 0x34, 0x7b, 0x09, 0x75, 0x01, 0x44, + 0x98, 0x05, 0x7d, 0xab, 0x95, 0x7d, 0xbd, 0x50, + 0x8f, 0x4c, 0xd4, 0x6e, 0x14, 0x82, 0xb5, 0xa9, + 0x2d, 0x55, 0x41, 0x23, 0x2c, 0x77, 0x0c, 0xb2, + 0x44, 0x55, 0xc0, 0x61, 0x27, 0x0a, 0xef, 0x57, + 0x59, 0x9b, 0x0d, 0xbb, 0x28, 0x64, 0x46, 0x55, + 0x63, 0xb5, 0xfa, 0xbf, 0x0d, 0x0a, 0xba, 0x7e, + 0xa2, 0x96, 0x20, 0x9a, 0xd5, 0xb4, 0x86, 0xcc, + 0x9c, 0x76, 0xac, 0xc5, 0x32, 0xd5, 0x9c, 0xc3, + 0xbc, 0x0e, 0x5b, 0xdf, 0xb2, 0x97, 0x05, 0x43, + 0xba, 0x32, 0xf1, 0xa0, 0x48, 0x4c, 0xa3, 0x8b, + 0x6c, 0x7d, 0xb3, 0x1d, 0x19, 0xa6, 0xbf, 0x1d, + 0x9a, 0xb1, 0x2e, 0xc8, 0x51, 0x63, 0x72, 0x34, + 0xad, 0x4d, 0xc3, 0x89, 0xa7, 0x8f, 0x78, 0x84, + 0x3c, 0xdb, 0x1b, 0x28, 0xec, 0x5d, 0x95, 0x56, + 0x42, 0xd8, 0x39, 0xd9, 0xb1, 0x2d, 0x68, 0xba, + 0x1d, 0xa3, 0x2f, 0x30, 0x98, 0x94, 0x90, 0x8f, + 0xd5, 0xe9, 0xd4, 0xa6, 0x25, 0x01, 0x24, 0x64, + 0x89, 0xb8, 0x64, 0x65, 0x8d, 0x76, 0x58, 0x01, + 0xa4, 0x10, 0xac, 0xae, 0xc8, 0x8e, 0x47, 0x84, + 0xe8, 0xdc, 0x9f, 0x4d, 0xd7, 0x6c, 0x45, 0x46, + 0xc2, 0xc3, 0x24, 0xab, 0xcb, 0xe9, 0x82, 0x03, + 0x5d, 0xa4, 0x94, 0x48, 0x1d, 0xe4, 0x91, 0x24, + 0x1f, 0x50, 0x7a, 0x76, 0x24, 0xb5, 0x75, 0x6c, + 0xf1, 0xa2, 0x96, 0x54, 0xdc, 0x2f, 0xf7, 0xdb, + 0xcd, 0x7d, 0x06, 0xa3, 0xa7, 0xc5, 0x7a, 0x5a, + 0x61, 0xa3, 0x47, 0x99, 0x9e, 0xb8, 0x89, 0xbc, + 0xb7, 0x34, 0x4b, 0xef, 0x2b, 0x2e, 0xe5, 0xfa, + 0x45, 0xcb, 0xa1, 0x5f, 0xcd, 0x1f, 0xb8, 0x6d, + 0x07, 0x3d, 0x0e, 0x97, 0xac, 0xff, 0x00, 0x5f, + 0x5d, 0x8f, 0x3e, 0x9d, 0x1e, 0x9b, 0xa8, 0x25, + 0xe8, 0xb9, 0x91, 0xe6, 0x5c, 0xab, 0xd7, 0x13, + 0x26, 0x36, 0xe1, 0x80, 0xf9, 0xc6, 0x55, 0x81, + 0x3b, 0xb6, 0xfc, 0x13, 0x9f, 0x03, 0xa3, 0x6e, + 0x0a, 0xba, 0xe4, 0xb5, 0xd3, 0x45, 0x82, 0xad, + 0x61, 0x2b, 0xc2, 0xd2, 0x22, 0x29, 0xc2, 0x21, + 0xca, 0x4e, 0x14, 0x45, 0x9c, 0x10, 0xa1, 0xf6, + 0xff, 0x00, 0x07, 0xce, 0x70, 0x01, 0xeb, 0xba, + 0x84, 0xb6, 0x69, 0xcb, 0x66, 0x15, 0x76, 0xab, + 0xcf, 0x59, 0x14, 0x8c, 0xec, 0x0c, 0xb0, 0xaa, + 0x90, 0xa9, 0xce, 0x7c, 0x82, 0x3c, 0xe2, 0xba, + 0x0f, 0xfb, 0x47, 0xee, 0x16, 0x5d, 0xd8, 0xd8, + 0xff, 0x00, 0xfd, 0x27, 0xfe, 0x1d, 0x50, 0xbf, + 0x36, 0x95, 0x42, 0xba, 0x5b, 0xab, 0x1c, 0xb4, + 0xe7, 0x59, 0x56, 0x53, 0xca, 0x3d, 0x50, 0x94, + 0x0d, 0xd0, 0x08, 0xe3, 0x69, 0x25, 0xde, 0x98, + 0x24, 0x96, 0xdc, 0x11, 0x10, 0x36, 0xe0, 0x98, + 0x03, 0xa8, 0xb5, 0x2b, 0x72, 0x4f, 0x07, 0x2a, + 0x59, 0x8a, 0x0b, 0x8e, 0x4d, 0x2f, 0xa6, 0x36, + 0xcc, 0x41, 0xe3, 0x59, 0x94, 0x18, 0x8e, 0xfd, + 0x92, 0x2e, 0xd8, 0xbc, 0xb3, 0xa4, 0x6c, 0xf2, + 0x58, 0x11, 0xc4, 0x03, 0x9d, 0x6f, 0xbd, 0x66, + 0xed, 0xfa, 0x14, 0xa9, 0xfa, 0xa6, 0xb3, 0xa8, + 0x83, 0x14, 0xcf, 0x1f, 0x2e, 0x4c, 0x35, 0x86, + 0x08, 0x4b, 0x72, 0xa8, 0x57, 0x12, 0xbe, 0x31, + 0x1a, 0x2e, 0xe6, 0xc7, 0x99, 0x19, 0x90, 0x0d, + 0xfa, 0x37, 0xe9, 0x74, 0xde, 0xd4, 0xa3, 0xa9, + 0x32, 0xc7, 0xa6, 0xd2, 0x97, 0x8e, 0x35, 0xb3, + 0x31, 0xe6, 0x68, 0xa4, 0xf3, 0xb9, 0xa7, 0x6c, + 0x05, 0xe3, 0x62, 0x55, 0x55, 0xf0, 0x36, 0x1f, + 0x32, 0xfb, 0x58, 0x94, 0x9a, 0xdc, 0x75, 0x96, + 0x37, 0xb7, 0xa9, 0x55, 0x61, 0x38, 0xc4, 0x46, + 0x48, 0x88, 0xdc, 0xa7, 0x60, 0x3b, 0x04, 0x72, + 0x6c, 0xf2, 0x5d, 0x06, 0xe2, 0xa7, 0xf3, 0x0f, + 0x9e, 0x97, 0xb7, 0x34, 0x56, 0x8d, 0x1a, 0x29, + 0xef, 0xf0, 0xb2, 0xa3, 0xa2, 0x2e, 0xab, 0x77, + 0x80, 0xa7, 0x92, 0x9f, 0x4b, 0x9f, 0x6e, 0xcd, + 0xac, 0xd8, 0x52, 0x31, 0xb5, 0x88, 0x23, 0x0c, + 0x41, 0xee, 0x7d, 0x32, 0x96, 0x9f, 0x6e, 0xba, + 0xd5, 0x7d, 0x51, 0x92, 0xc5, 0x4b, 0xd3, 0x4e, + 0x91, 0xea, 0xb3, 0x85, 0xdf, 0x15, 0x8d, 0x3d, + 0x11, 0x8a, 0xcd, 0x6e, 0x31, 0xb4, 0x47, 0x3c, + 0xb1, 0x88, 0xd3, 0x39, 0x0e, 0x17, 0x6a, 0x8c, + 0x32, 0xf7, 0x28, 0x96, 0x24, 0xae, 0x36, 0x58, + 0x00, 0x4b, 0x2f, 0xf4, 0x99, 0xf9, 0x96, 0x55, + 0xc4, 0x58, 0x5f, 0x36, 0x66, 0xe3, 0x39, 0x3b, + 0x9f, 0x1b, 0x73, 0xb8, 0x1d, 0xc7, 0xed, 0xa5, + 0x41, 0x6b, 0x50, 0xce, 0x97, 0x5d, 0x23, 0x13, + 0x5b, 0x24, 0x42, 0xdb, 0xb6, 0xec, 0xe1, 0x53, + 0x2b, 0xee, 0x6d, 0xfe, 0x22, 0x0b, 0x9c, 0x36, + 0xd3, 0x9f, 0x38, 0x27, 0x1d, 0x76, 0xc1, 0x4d, + 0x28, 0x5d, 0xad, 0x6b, 0x52, 0x8a, 0x27, 0x36, + 0xa2, 0xae, 0x03, 0xc1, 0x3c, 0xb0, 0xb4, 0xce, + 0xd2, 0x42, 0x14, 0x48, 0xca, 0xb8, 0x0e, 0xd1, + 0xb2, 0xb1, 0x0b, 0xee, 0x50, 0xa5, 0xb2, 0x31, + 0xd4, 0xfd, 0xbd, 0xdd, 0x32, 0xea, 0x0e, 0xcd, + 0xa9, 0xc3, 0xea, 0xf6, 0xef, 0x27, 0xf1, 0xda, + 0xbc, 0xc0, 0x2a, 0x87, 0x27, 0x1e, 0xb0, 0x48, + 0x32, 0x30, 0xec, 0x4a, 0x02, 0x3c, 0x31, 0x23, + 0xa7, 0x5d, 0x56, 0x8d, 0x59, 0xfd, 0x7c, 0x56, + 0x35, 0x13, 0x4d, 0x08, 0x86, 0x76, 0x99, 0xec, + 0xc2, 0x77, 0x5a, 0x2a, 0x6b, 0xac, 0xd9, 0xb0, + 0xad, 0x16, 0x5b, 0x73, 0x22, 0xcc, 0x0b, 0x05, + 0x4c, 0x80, 0x07, 0x5d, 0xa7, 0x2e, 0xa7, 0x3d, + 0x48, 0xee, 0x36, 0x9f, 0xc6, 0x96, 0xe7, 0xb2, + 0xd3, 0x4f, 0xe4, 0xd9, 0x8d, 0x86, 0x02, 0x40, + 0xb8, 0xc4, 0x82, 0xb1, 0x68, 0xde, 0x46, 0xdf, + 0xb8, 0x19, 0x64, 0xdc, 0x0e, 0x58, 0x91, 0xab, + 0xda, 0x3a, 0x50, 0xad, 0x1c, 0xcf, 0x56, 0x08, + 0xee, 0xb7, 0x0c, 0x70, 0x4a, 0x93, 0xf3, 0x99, + 0x66, 0x32, 0x60, 0x16, 0x47, 0x41, 0x17, 0x33, + 0x32, 0xed, 0x67, 0xc1, 0x1b, 0x9a, 0x46, 0x65, + 0x1b, 0x49, 0xd4, 0xb5, 0x18, 0x68, 0x6a, 0x74, + 0x20, 0xaa, 0x2e, 0x83, 0x6d, 0x95, 0x37, 0xb3, + 0x56, 0x96, 0x19, 0x26, 0x17, 0x24, 0x49, 0x1e, + 0x48, 0x18, 0x48, 0xe6, 0x1d, 0xd2, 0x2a, 0x08, + 0xd6, 0x50, 0xfb, 0x77, 0x65, 0xf7, 0x2a, 0xa7, + 0x5a, 0x74, 0x56, 0x2c, 0xd3, 0xf5, 0x11, 0x2c, + 0xc7, 0x7d, 0x5b, 0x93, 0x14, 0x4d, 0x32, 0x3b, + 0x4b, 0xb7, 0x95, 0xe0, 0x2a, 0x9c, 0x6f, 0x1c, + 0x5e, 0xa8, 0x36, 0xe2, 0x98, 0x01, 0xb8, 0x0f, + 0x1a, 0x8c, 0x82, 0x7a, 0x90, 0x34, 0x7a, 0x9f, + 0x0d, 0xc3, 0x20, 0xad, 0xa5, 0xd6, 0x88, 0x49, + 0x69, 0xab, 0x85, 0x2f, 0x98, 0x58, 0x9d, 0xd3, + 0x08, 0xd7, 0xd3, 0xfd, 0x49, 0x58, 0x48, 0x79, + 0x5c, 0xed, 0x5e, 0x1d, 0xf9, 0xf6, 0xf5, 0xaa, + 0xc6, 0xc3, 0x52, 0xb4, 0x87, 0x38, 0x0e, 0x46, + 0xe6, 0x04, 0x78, 0x19, 0x20, 0x79, 0x19, 0xf8, + 0xf8, 0xcf, 0xcf, 0x82, 0x3c, 0x11, 0xd2, 0xfc, + 0x75, 0xda, 0x85, 0x3f, 0x1d, 0xa4, 0x26, 0x85, + 0x2c, 0xc2, 0x3d, 0x53, 0xbd, 0x79, 0xa2, 0x9e, + 0x78, 0x64, 0x09, 0x52, 0x77, 0x01, 0xa0, 0xae, + 0x44, 0xd2, 0xf9, 0x40, 0x42, 0xc6, 0x43, 0x16, + 0xc7, 0x90, 0x3a, 0xbf, 0xa9, 0xe9, 0xbe, 0xaa, + 0xed, 0x63, 0xa1, 0x56, 0xae, 0x8d, 0x01, 0x8d, + 0x25, 0x8a, 0x09, 0xa1, 0xb5, 0x0c, 0xd2, 0x45, + 0x16, 0x1b, 0x82, 0xe4, 0xae, 0xa1, 0x51, 0xb7, + 0x94, 0xca, 0x2b, 0x15, 0x2a, 0xc0, 0x29, 0x27, + 0x3a, 0x2d, 0x9e, 0xdf, 0x5a, 0xab, 0x05, 0xaa, + 0x0f, 0x2d, 0x94, 0x66, 0x53, 0x61, 0xab, 0x0d, + 0xcf, 0xbd, 0x89, 0x1e, 0xf8, 0x90, 0xac, 0x60, + 0x0f, 0x68, 0xde, 0xdb, 0xb0, 0x33, 0xbf, 0xef, + 0xd6, 0xad, 0x6f, 0x4a, 0x82, 0xb8, 0x8a, 0xa5, + 0x39, 0x38, 0x86, 0x65, 0x71, 0xb3, 0x76, 0x65, + 0x60, 0xd0, 0xaf, 0xd6, 0x96, 0xbc, 0xd0, 0xae, + 0xd4, 0x76, 0x3e, 0x0a, 0xc9, 0xe1, 0x46, 0xec, + 0x7b, 0x4b, 0xea, 0xd6, 0xe4, 0xd5, 0x9a, 0xf3, + 0xfe, 0xc6, 0x79, 0x98, 0x71, 0x6d, 0x0c, 0xcb, + 0x14, 0x80, 0xc4, 0xaa, 0x40, 0x5f, 0x71, 0x54, + 0x2a, 0x30, 0x06, 0x5b, 0x1e, 0x32, 0x4f, 0x9d, + 0x08, 0xd9, 0x4a, 0x8d, 0x56, 0xa6, 0x9f, 0x56, + 0x7a, 0x8d, 0x37, 0x2b, 0x49, 0xa9, 0x47, 0x25, + 0x55, 0x8d, 0x84, 0x30, 0xab, 0x16, 0x56, 0xa0, + 0x91, 0xe3, 0x03, 0x02, 0x4d, 0xb9, 0x92, 0x43, + 0xc6, 0x1b, 0xc8, 0x1d, 0x0a, 0xfa, 0x5d, 0xa9, + 0xaf, 0x56, 0x96, 0xea, 0x57, 0xb9, 0x5b, 0xc7, + 0xa7, 0xaf, 0x4e, 0x27, 0x48, 0xda, 0x5d, 0xb3, + 0x44, 0xcf, 0x30, 0xaa, 0xee, 0xb8, 0x64, 0x68, + 0x7d, 0x91, 0x90, 0xa8, 0x4b, 0x7e, 0x62, 0x00, + 0x5d, 0x32, 0xd4, 0xa3, 0xd7, 0xc9, 0x58, 0xea, + 0x2c, 0x88, 0x16, 0x7a, 0xd2, 0x49, 0x5c, 0x48, + 0x95, 0x58, 0xb8, 0x00, 0xc8, 0x48, 0x46, 0xf5, + 0x12, 0xc0, 0x63, 0x9d, 0x61, 0x8f, 0x90, 0x36, + 0xc9, 0x3d, 0xa2, 0x20, 0x7a, 0xee, 0x3e, 0xe5, + 0x87, 0x48, 0xab, 0x25, 0x18, 0xa9, 0xac, 0x37, + 0x19, 0xd6, 0xc5, 0x44, 0x73, 0x13, 0x9a, 0x3b, + 0xf9, 0x16, 0x69, 0x25, 0xda, 0xb8, 0x1c, 0x9f, + 0x01, 0x63, 0x65, 0x36, 0x06, 0xd6, 0x6c, 0x47, + 0x9d, 0xd6, 0x2c, 0xc9, 0x6a, 0x56, 0x79, 0x1c, + 0x96, 0x76, 0x24, 0xb1, 0xf3, 0x92, 0x7e, 0x58, + 0xff, 0x00, 0xc0, 0x78, 0x51, 0xe0, 0x60, 0x01, + 0xd6, 0x76, 0x10, 0x57, 0xe4, 0x7c, 0xff, 0x00, + 0x0f, 0xfc, 0xbe, 0x7f, 0xdb, 0xd7, 0x67, 0xf7, + 0x3e, 0x9d, 0x60, 0x45, 0xa4, 0x77, 0x22, 0xcd, + 0x2d, 0x7d, 0xab, 0x15, 0x3b, 0x4b, 0x7a, 0xcd, + 0x43, 0x5f, 0xda, 0xc8, 0xb0, 0x5a, 0x78, 0x64, + 0x5e, 0x5a, 0xe1, 0x58, 0xa5, 0x79, 0x24, 0xdc, + 0x6b, 0x6e, 0x29, 0x91, 0x11, 0x05, 0x35, 0x6d, + 0x74, 0x69, 0x97, 0xe0, 0x8e, 0xa1, 0xab, 0x0e, + 0x9f, 0x18, 0xab, 0x13, 0xc5, 0x70, 0x34, 0xa4, + 0x4a, 0xcf, 0x3c, 0x68, 0x8c, 0x1e, 0xb8, 0x9e, + 0x45, 0x9b, 0x6a, 0x61, 0x96, 0x78, 0xfd, 0xbe, + 0xfc, 0x95, 0xda, 0x5e, 0x69, 0x62, 0xd4, 0xad, + 0xc2, 0x6f, 0x43, 0x56, 0xb5, 0x98, 0x16, 0x48, + 0x55, 0x69, 0xde, 0x6a, 0xf1, 0x32, 0x58, 0x51, + 0x29, 0x0e, 0x91, 0xc8, 0x2c, 0x6e, 0xcc, 0x10, + 0x65, 0x08, 0x91, 0x19, 0x64, 0x2d, 0xf6, 0xeb, + 0xb9, 0x25, 0xed, 0x1d, 0x2a, 0x9d, 0x73, 0x6e, + 0x91, 0xb5, 0x66, 0x7d, 0xea, 0x89, 0x24, 0xb7, + 0xee, 0x40, 0x98, 0xd9, 0xcb, 0x80, 0x6d, 0x47, + 0x8d, 0xce, 0x62, 0xda, 0x7f, 0x36, 0x3e, 0x7e, + 0x3c, 0xe8, 0x3a, 0xf7, 0x66, 0x34, 0xb1, 0x45, + 0x5f, 0x4b, 0xf4, 0xd7, 0xe4, 0xe6, 0x53, 0x2a, + 0xd7, 0x48, 0xe2, 0x58, 0x90, 0xb1, 0x50, 0x8f, + 0x6e, 0xe1, 0x28, 0xec, 0x98, 0x07, 0x0f, 0x97, + 0x24, 0x0c, 0xf9, 0xd8, 0x2a, 0x69, 0x94, 0x5e, + 0x7b, 0xf3, 0x30, 0x01, 0x22, 0x7e, 0x66, 0x96, + 0xbc, 0xda, 0x54, 0xb2, 0x46, 0x16, 0xcc, 0x92, + 0x6e, 0x92, 0x3f, 0x58, 0x4f, 0x22, 0x86, 0x71, + 0xbb, 0x6b, 0x92, 0x4e, 0x51, 0x59, 0xb7, 0x3c, + 0x97, 0x29, 0x53, 0xa5, 0x25, 0x5f, 0x55, 0x3a, + 0xcf, 0x63, 0x8f, 0x8d, 0x2c, 0xac, 0xfe, 0x9e, + 0x49, 0xd7, 0x91, 0xb7, 0xf2, 0x2c, 0x70, 0x4c, + 0xb9, 0x44, 0x92, 0x38, 0x87, 0xbf, 0x7c, 0x89, + 0x80, 0x70, 0x06, 0x7a, 0xa1, 0xdc, 0xda, 0x7c, + 0xad, 0x35, 0x2a, 0xf2, 0x56, 0x59, 0xab, 0x47, + 0x1c, 0xd6, 0x21, 0x80, 0xca, 0x22, 0x8c, 0x4a, + 0xaa, 0x43, 0xef, 0xe3, 0x44, 0x71, 0xf1, 0x97, + 0x1f, 0xcb, 0x38, 0xe8, 0x5d, 0xab, 0x6b, 0x3c, + 0x1a, 0xa5, 0xf8, 0xd9, 0x99, 0x8b, 0x47, 0x16, + 0x0e, 0x3d, 0xa5, 0x0a, 0x22, 0x3c, 0x42, 0x44, + 0x50, 0xde, 0xf0, 0x4f, 0xbf, 0x23, 0x3b, 0x8a, + 0xb6, 0x0e, 0xbd, 0x77, 0x4e, 0x8f, 0xd5, 0x3c, + 0x76, 0x9d, 0xda, 0xa4, 0x95, 0xa6, 0x96, 0x7b, + 0xb4, 0x5f, 0x8c, 0x3d, 0xa4, 0x8c, 0x57, 0x9a, + 0x09, 0x4a, 0xb8, 0xb1, 0x2a, 0xed, 0x24, 0xb4, + 0x65, 0x4a, 0xee, 0x0b, 0x95, 0x3e, 0xee, 0xa7, + 0xfd, 0x22, 0xea, 0x50, 0xce, 0xeb, 0x5a, 0x0a, + 0x82, 0x24, 0x7f, 0x69, 0x78, 0x5c, 0x92, 0xf8, + 0xfa, 0xaf, 0xfb, 0x6f, 0x68, 0x96, 0x4d, 0xd2, + 0x6d, 0xfb, 0x02, 0x17, 0x27, 0x19, 0xea, 0xaf, + 0xe9, 0x23, 0x51, 0x8d, 0xa3, 0x49, 0xeb, 0x56, + 0x35, 0x44, 0x85, 0x9d, 0x60, 0x59, 0x62, 0x95, + 0x43, 0x2b, 0x03, 0xc4, 0xe6, 0x77, 0xda, 0x41, + 0x62, 0xe3, 0x20, 0xfb, 0x89, 0xf8, 0xc8, 0x22, + 0x5b, 0x93, 0xea, 0x35, 0xc4, 0xda, 0x44, 0x42, + 0x7a, 0x96, 0x63, 0xdd, 0x73, 0xeb, 0xfa, 0x5d, + 0xb1, 0xc9, 0x21, 0x46, 0x73, 0x0f, 0x1f, 0x25, + 0x87, 0x59, 0x4b, 0xb8, 0x8c, 0x7e, 0x69, 0x72, + 0xdb, 0xb1, 0x9d, 0xd5, 0x21, 0xd5, 0x5e, 0x35, + 0xdb, 0xa7, 0x41, 0x7a, 0x28, 0xe6, 0x69, 0xab, + 0xd8, 0x9a, 0x18, 0xe6, 0x31, 0x47, 0xcc, 0xde, + 0xaa, 0x4e, 0x47, 0x9c, 0xec, 0x96, 0xac, 0x6e, + 0x44, 0x4c, 0x5d, 0x76, 0xec, 0xfa, 0x51, 0x4a, + 0x42, 0x81, 0xd7, 0x66, 0xb3, 0x27, 0x72, 0x69, + 0xae, 0x91, 0x49, 0x61, 0x94, 0xdb, 0x2b, 0x0c, + 0x5b, 0x39, 0x25, 0x22, 0x8d, 0x93, 0xb1, 0x39, + 0x19, 0x13, 0x71, 0xfb, 0x6e, 0x75, 0x1f, 0xc4, + 0xf5, 0xdc, 0x66, 0xdf, 0xe3, 0x97, 0x1e, 0x6d, + 0x3e, 0xcd, 0x63, 0x61, 0xa2, 0x68, 0xe1, 0x7e, + 0x39, 0x24, 0xfd, 0x8c, 0x63, 0xfc, 0x93, 0xbc, + 0x6d, 0x90, 0x03, 0x7b, 0x1c, 0xe3, 0x3e, 0x7a, + 0xd2, 0xe0, 0xb5, 0x14, 0x76, 0x1e, 0xc5, 0x1b, + 0x30, 0xc4, 0x5c, 0x33, 0x4b, 0x28, 0x48, 0xe3, + 0x8e, 0x34, 0x5c, 0x16, 0x90, 0xc8, 0xe8, 0x42, + 0xa8, 0xf2, 0xcc, 0xaa, 0xd8, 0x1f, 0xcc, 0x63, + 0xad, 0x66, 0x03, 0x1e, 0x97, 0x32, 0x43, 0x52, + 0xcc, 0xe5, 0xa3, 0x82, 0x4f, 0x53, 0x19, 0x84, + 0xd7, 0xc7, 0x2a, 0x9f, 0xc8, 0x65, 0xe7, 0x21, + 0x82, 0xf8, 0x61, 0x11, 0x07, 0x20, 0xff, 0x00, + 0x10, 0x2b, 0x0b, 0x12, 0xcf, 0x5d, 0x63, 0xa9, + 0x66, 0x52, 0xb3, 0x42, 0xee, 0x8a, 0x87, 0xc2, + 0xa4, 0xa8, 0xcc, 0x37, 0x78, 0x00, 0x9f, 0x8d, + 0xcd, 0xb4, 0x0f, 0x92, 0x7a, 0xa7, 0xae, 0x45, + 0x2b, 0xb4, 0x76, 0xe4, 0x1a, 0x7e, 0x1d, 0x11, + 0x2a, 0xdb, 0x9a, 0xb2, 0x08, 0x90, 0xa6, 0x51, + 0xfe, 0x9d, 0x97, 0x50, 0xad, 0x86, 0x3b, 0x9c, + 0xef, 0x27, 0x27, 0xe3, 0x07, 0xaa, 0x91, 0x6f, + 0x97, 0x52, 0xd4, 0xed, 0x6a, 0xda, 0x75, 0x2a, + 0x92, 0x7b, 0x60, 0x08, 0x91, 0x49, 0x64, 0x1a, + 0xec, 0x6b, 0x3c, 0x93, 0x28, 0x0c, 0x6c, 0x56, + 0x63, 0x24, 0x65, 0x77, 0x83, 0x9d, 0xc8, 0x70, + 0x3d, 0xa5, 0xab, 0x6a, 0xba, 0x6d, 0x56, 0xf4, + 0xb1, 0x5c, 0x5b, 0xd3, 0xbd, 0x85, 0x82, 0x53, + 0x15, 0x64, 0x86, 0x11, 0xcd, 0x2c, 0xdb, 0x4b, + 0xca, 0x13, 0x72, 0xcd, 0x9d, 0xc6, 0x4c, 0x95, + 0xae, 0x9e, 0x4e, 0xe0, 0x77, 0x31, 0xef, 0xb8, + 0x5a, 0x3e, 0xe1, 0xbf, 0x8a, 0xf6, 0x6b, 0x02, + 0xe1, 0xe5, 0x8e, 0xcb, 0x6f, 0x76, 0x95, 0x86, + 0x5a, 0x55, 0x6c, 0x90, 0xd0, 0xc9, 0xf3, 0x11, + 0x47, 0x64, 0xc7, 0xe5, 0x20, 0x78, 0x08, 0x31, + 0x93, 0x8f, 0x1f, 0xc7, 0x3f, 0x1f, 0xd7, 0xfc, + 0xbf, 0xb3, 0xa6, 0x1e, 0x31, 0xff, 0x00, 0x23, + 0xfa, 0xbf, 0x88, 0x3d, 0x42, 0x1c, 0xb8, 0xd9, + 0x9c, 0xe7, 0xfe, 0xee, 0xbf, 0x0e, 0xbe, 0x9a, + 0x45, 0x2b, 0x36, 0xc3, 0x2d, 0x28, 0x6a, 0x55, + 0xc4, 0x76, 0xa1, 0x06, 0x48, 0x50, 0x1a, 0xea, + 0x9b, 0xdd, 0x91, 0xa6, 0x56, 0x4c, 0xb3, 0x89, + 0x03, 0x6e, 0x50, 0x36, 0xe3, 0xc8, 0xc5, 0xad, + 0x1b, 0xb9, 0x1a, 0x49, 0x6e, 0x09, 0xe5, 0x31, + 0xbc, 0xca, 0x39, 0x7d, 0x69, 0xce, 0xe9, 0x10, + 0xec, 0x42, 0x56, 0x41, 0xb4, 0xba, 0x7c, 0x30, + 0x5c, 0x63, 0xc6, 0xe1, 0x91, 0xd5, 0xae, 0xdd, + 0xee, 0x0b, 0xba, 0x65, 0x35, 0x91, 0xa2, 0x9d, + 0x21, 0x69, 0xc6, 0x65, 0xb2, 0xa8, 0xe3, 0x74, + 0xb9, 0x3b, 0xde, 0x76, 0x52, 0xdb, 0x8a, 0xfb, + 0x48, 0x66, 0x20, 0x7f, 0x0e, 0xb4, 0x8e, 0xd5, + 0xd5, 0x69, 0xdc, 0x8a, 0xcb, 0xa4, 0x3b, 0x47, + 0x24, 0x78, 0x49, 0x2b, 0x5a, 0x2f, 0x95, 0x60, + 0x50, 0x09, 0x24, 0xe1, 0x1b, 0x02, 0x9d, 0xec, + 0xee, 0xb8, 0xf8, 0x1e, 0xee, 0xa3, 0x96, 0x36, + 0x67, 0x85, 0xae, 0x46, 0x1a, 0xd2, 0x70, 0xc5, + 0x14, 0x7f, 0x85, 0xae, 0xf7, 0x38, 0x8d, 0x63, + 0xcc, 0x56, 0xda, 0x52, 0xa1, 0x99, 0x17, 0x1b, + 0x19, 0xfc, 0xff, 0x00, 0x50, 0xe8, 0xcb, 0x4f, + 0xd5, 0x20, 0x3a, 0x8e, 0x9b, 0x2d, 0x41, 0x60, + 0x51, 0x60, 0xf1, 0x48, 0x6c, 0xad, 0x89, 0x11, + 0x81, 0x83, 0x2d, 0x94, 0x67, 0x62, 0x62, 0xf6, + 0x85, 0x1b, 0xc3, 0x48, 0x18, 0x7e, 0x5e, 0xa4, + 0xd2, 0xe8, 0x71, 0x4e, 0x12, 0x24, 0x94, 0xda, + 0x8d, 0x6b, 0xcc, 0xab, 0x50, 0xaa, 0xbc, 0x7b, + 0x4a, 0x81, 0x3e, 0x78, 0xb3, 0x02, 0x0f, 0x94, + 0x52, 0x5b, 0x1f, 0x94, 0x74, 0x9a, 0x55, 0x2a, + 0x1b, 0x5e, 0x1a, 0xeb, 0x0c, 0x31, 0x99, 0x26, + 0x24, 0x16, 0x8a, 0x08, 0xe5, 0x77, 0x52, 0x5b, + 0x88, 0xbf, 0x1e, 0xe6, 0x62, 0x58, 0x3e, 0x3d, + 0xac, 0x3e, 0xcc, 0x41, 0xeb, 0xbb, 0x75, 0x08, + 0xec, 0xe8, 0xda, 0x8c, 0x21, 0x5c, 0x3d, 0x7b, + 0xc9, 0x01, 0xfa, 0x6d, 0xb3, 0x11, 0x58, 0x8c, + 0x67, 0x95, 0x4b, 0xc7, 0xb9, 0xbc, 0xe1, 0x0b, + 0xa4, 0xb8, 0x04, 0x98, 0x94, 0x75, 0x27, 0xed, + 0x5f, 0xff, 0x00, 0x9c, 0x9f, 0xfb, 0xfa, 0x27, + 0xad, 0x1d, 0xeb, 0x59, 0xed, 0xda, 0x5a, 0x7d, + 0xb2, 0x2b, 0x41, 0xc7, 0x3c, 0xc6, 0xcc, 0x51, + 0xc3, 0x2d, 0x89, 0xe4, 0x33, 0x4a, 0x12, 0xa4, + 0x0b, 0x21, 0xc9, 0x93, 0x72, 0x09, 0x02, 0xa8, + 0x25, 0xf6, 0x81, 0xed, 0x03, 0x3d, 0x5c, 0xee, + 0x7a, 0x70, 0xea, 0xd1, 0xd4, 0xa5, 0x2c, 0xf0, + 0x87, 0xd9, 0x0c, 0xf0, 0xb5, 0x72, 0x82, 0xcb, + 0x58, 0x8e, 0x48, 0x83, 0xbf, 0x1c, 0x9b, 0x4e, + 0x22, 0x95, 0x31, 0xc8, 0x37, 0x89, 0x23, 0x43, + 0x8d, 0x80, 0xe7, 0xa5, 0x96, 0x48, 0x9b, 0x74, + 0x6e, 0xc8, 0xf8, 0x75, 0xdc, 0xa4, 0xa9, 0xda, + 0xe8, 0xc8, 0xe3, 0x23, 0xec, 0xe8, 0xc5, 0x5b, + 0xf8, 0xa9, 0x20, 0xf8, 0xeb, 0xb3, 0x75, 0x79, + 0x66, 0xb9, 0xe8, 0xb5, 0x06, 0xad, 0x35, 0x24, + 0xaa, 0x7c, 0xda, 0xae, 0x92, 0x49, 0x0c, 0x70, + 0x64, 0x22, 0xc4, 0xdb, 0x37, 0xb9, 0xcb, 0x84, + 0x54, 0x91, 0xb6, 0xaa, 0xfb, 0x54, 0xaf, 0x46, + 0xe4, 0x52, 0xe9, 0x9a, 0xa5, 0xca, 0x5a, 0xcd, + 0x5a, 0xe6, 0x8f, 0x34, 0x79, 0xb7, 0x51, 0xdb, + 0x86, 0x68, 0xde, 0x00, 0xad, 0xba, 0x1a, 0x82, + 0x27, 0x45, 0xdc, 0x50, 0xae, 0xd9, 0x37, 0x19, + 0x10, 0x82, 0x42, 0x90, 0xd1, 0x24, 0x77, 0x68, + 0xd3, 0x8d, 0xac, 0xef, 0x9a, 0x75, 0x80, 0x2c, + 0xf5, 0x32, 0x86, 0xd3, 0xba, 0x57, 0xf3, 0x0b, + 0x16, 0x88, 0x44, 0xce, 0xd3, 0xb3, 0x88, 0x5d, + 0x5f, 0x31, 0xa1, 0x6c, 0x03, 0x81, 0xd4, 0x5f, + 0xa3, 0xcd, 0x27, 0x92, 0x79, 0xa6, 0xee, 0x16, + 0x64, 0x36, 0x5a, 0x2d, 0xd0, 0x57, 0xb9, 0x1e, + 0xd9, 0x5e, 0x49, 0xb3, 0x1c, 0x8f, 0xc3, 0x32, + 0x16, 0xfa, 0x6f, 0xf0, 0x70, 0x36, 0x17, 0xce, + 0xd6, 0x1d, 0x2f, 0x63, 0x6c, 0xa6, 0x26, 0xd1, + 0xe7, 0xd3, 0x75, 0x1a, 0xe8, 0x62, 0x12, 0x1d, + 0x72, 0x1b, 0xbc, 0x68, 0x2d, 0xec, 0x68, 0x64, + 0x88, 0x9a, 0xcb, 0x94, 0x6e, 0x51, 0xbd, 0xb0, + 0xa0, 0x2e, 0x7c, 0xe4, 0x11, 0xd4, 0xd5, 0x74, + 0x8a, 0x08, 0x9e, 0xaa, 0xcc, 0x86, 0x24, 0xa7, + 0x71, 0x6c, 0xb0, 0xc0, 0x48, 0x1a, 0xd5, 0xf8, + 0x2d, 0x70, 0xc5, 0x1a, 0x4a, 0x4c, 0x48, 0x4a, + 0xb2, 0xab, 0x4a, 0x16, 0x4f, 0x64, 0x6a, 0xe8, + 0x86, 0x41, 0xd6, 0xa1, 0x27, 0x68, 0x69, 0xf2, + 0xbd, 0x7b, 0x4d, 0x34, 0x8f, 0x37, 0x1c, 0xea, + 0x42, 0x33, 0xe2, 0x1b, 0x0c, 0x48, 0xb3, 0x0f, + 0x35, 0x69, 0xe3, 0x77, 0x54, 0x96, 0x5c, 0x46, + 0x00, 0xdc, 0xa4, 0x2b, 0x1d, 0xca, 0xa3, 0xad, + 0x79, 0xf4, 0x8e, 0xe6, 0x8a, 0x9d, 0x6a, 0xb4, + 0xde, 0x19, 0x66, 0x92, 0xdb, 0xc3, 0xa8, 0xcc, + 0x23, 0x47, 0x85, 0xcc, 0xea, 0xad, 0x14, 0xa9, + 0x5e, 0x11, 0x0c, 0xb5, 0xe4, 0x91, 0xd9, 0x9b, + 0x32, 0xb5, 0x85, 0x6f, 0x76, 0x37, 0xef, 0x51, + 0xa8, 0x69, 0xf6, 0x34, 0xf9, 0xe5, 0xaf, 0x32, + 0x14, 0x68, 0xce, 0x19, 0x7e, 0xdf, 0xc8, 0xa9, + 0xfd, 0xe4, 0x6f, 0x95, 0x61, 0xf3, 0xf1, 0xe0, + 0x82, 0x3a, 0x54, 0x67, 0xc2, 0x0f, 0xfc, 0xba, + 0xd0, 0x34, 0x18, 0xb4, 0x48, 0xeb, 0xea, 0xba, + 0xb5, 0x6b, 0x12, 0x59, 0x97, 0x6c, 0x9a, 0x75, + 0x3e, 0x10, 0x50, 0xf8, 0xdd, 0xea, 0x6c, 0xc9, + 0x2b, 0x44, 0x91, 0x84, 0x52, 0x25, 0x43, 0xbf, + 0x31, 0x01, 0xbf, 0xcc, 0xb8, 0x55, 0xd3, 0x7b, + 0xbb, 0x7d, 0x6b, 0x1f, 0x8b, 0xc7, 0xb2, 0xb1, + 0x5a, 0xd0, 0xab, 0x59, 0x78, 0xe7, 0x85, 0xa7, + 0x9c, 0x3b, 0x70, 0x48, 0xb8, 0x76, 0x7d, 0xc0, + 0xc4, 0xbe, 0x41, 0x4c, 0x82, 0xff, 0x00, 0x04, + 0x81, 0x61, 0xeb, 0x3b, 0x31, 0x06, 0x85, 0x69, + 0x1a, 0x7b, 0x80, 0x24, 0x8a, 0xd8, 0x6d, 0xb6, + 0xe4, 0x58, 0xf1, 0x0c, 0x41, 0x36, 0xa8, 0x8b, + 0x11, 0x8d, 0x87, 0xc0, 0x3b, 0xdb, 0x3f, 0x97, + 0xae, 0xeb, 0xb9, 0x7e, 0xad, 0x3a, 0xd5, 0xe0, + 0xb7, 0xb6, 0x17, 0x19, 0x31, 0xd6, 0x79, 0x63, + 0x5f, 0xcb, 0x03, 0x0f, 0x9c, 0x32, 0x2b, 0x6e, + 0x2e, 0x8a, 0x08, 0x1e, 0x49, 0x23, 0xae, 0xd6, + 0xd4, 0xef, 0x49, 0xae, 0x54, 0xf5, 0x56, 0x26, + 0x75, 0xd9, 0x65, 0x54, 0x4d, 0x33, 0xcb, 0x1e, + 0xfe, 0x02, 0x11, 0x4c, 0x65, 0xf0, 0x70, 0x4f, + 0xc8, 0xf7, 0x13, 0x81, 0x9e, 0xa0, 0xb8, 0xa6, + 0xd4, 0x38, 0xd4, 0x74, 0x05, 0xdd, 0x3a, 0x83, + 0x5d, 0xab, 0x66, 0xc4, 0x99, 0x96, 0x30, 0x12, + 0x29, 0x43, 0x20, 0xe6, 0x2a, 0x42, 0xe4, 0xc4, + 0xdb, 0x5d, 0xa3, 0xf0, 0x48, 0xf2, 0x27, 0xce, + 0xec, 0x5e, 0xd0, 0x86, 0x35, 0xa8, 0xe3, 0xc7, + 0xa7, 0x1b, 0x86, 0x76, 0xfe, 0xac, 0xc7, 0xef, + 0x7c, 0xe7, 0xdb, 0x27, 0xf3, 0x1e, 0x3c, 0x75, + 0x0c, 0x76, 0x0a, 0x23, 0x84, 0x12, 0x6f, 0x38, + 0xdd, 0x0c, 0x5e, 0x3e, 0xfe, 0xe2, 0x18, 0x65, + 0x40, 0xc6, 0x0f, 0x93, 0xee, 0xe9, 0xa1, 0x9c, + 0x17, 0x76, 0x82, 0x43, 0x1e, 0xc5, 0xfa, 0x68, + 0x87, 0x7e, 0xfd, 0xcd, 0xb9, 0xbf, 0x7b, 0x72, + 0xb0, 0x28, 0x02, 0x04, 0x1b, 0x76, 0xb1, 0xdc, + 0x73, 0x81, 0xab, 0xf6, 0xcc, 0x1a, 0xb0, 0x62, + 0xc9, 0x36, 0xc9, 0xa3, 0x5f, 0x30, 0x32, 0x4a, + 0x0b, 0x24, 0xac, 0xfb, 0xd2, 0x75, 0x47, 0x1b, + 0x58, 0xf8, 0x74, 0x19, 0x19, 0x51, 0x82, 0xbe, + 0x73, 0xaa, 0x76, 0x5e, 0xb5, 0x56, 0xed, 0x88, + 0xa3, 0xa5, 0x72, 0x78, 0xd5, 0xfd, 0x92, 0xa5, + 0x69, 0x36, 0xc8, 0xa7, 0x0d, 0x91, 0xfc, 0x71, + 0x9c, 0x1c, 0x7d, 0xc1, 0xea, 0x0e, 0xd5, 0xd5, + 0x65, 0x9e, 0x38, 0x64, 0xad, 0x62, 0x04, 0x66, + 0xc3, 0x4b, 0x24, 0x0c, 0xa8, 0x83, 0x05, 0xb2, + 0x49, 0xf1, 0xe7, 0x6e, 0x00, 0xcf, 0x96, 0xf1, + 0x8e, 0xb5, 0x0a, 0xd0, 0xe8, 0xb4, 0xc3, 0x99, + 0x2d, 0x34, 0x22, 0x0f, 0x4b, 0xc7, 0x16, 0x09, + 0x19, 0x33, 0x39, 0x91, 0xce, 0xe4, 0x57, 0x1f, + 0x50, 0xfd, 0x27, 0x01, 0x49, 0x03, 0x24, 0xf4, + 0x75, 0xee, 0xde, 0x77, 0x49, 0x9e, 0x85, 0xa7, + 0xb9, 0xcf, 0xbc, 0x59, 0x31, 0x40, 0xa4, 0xb6, + 0xf1, 0xc0, 0xac, 0x39, 0xdf, 0xf6, 0x4b, 0xed, + 0xca, 0xed, 0xde, 0x70, 0xcc, 0x3c, 0x0f, 0xfa, + 0x12, 0x19, 0x6c, 0x38, 0x8a, 0x14, 0x69, 0x24, + 0x21, 0x88, 0x44, 0x52, 0xcc, 0xc1, 0x14, 0xbb, + 0x61, 0x54, 0x12, 0x70, 0xaa, 0x4f, 0x8f, 0xe1, + 0xd7, 0x69, 0xe8, 0xba, 0x8d, 0x1b, 0x10, 0x6a, + 0x93, 0x54, 0x66, 0xad, 0x3a, 0x32, 0x46, 0xa8, + 0x8e, 0xd3, 0x36, 0xf2, 0x76, 0xb6, 0xc3, 0xb0, + 0x44, 0x03, 0xa2, 0xb7, 0x24, 0x9e, 0xdd, 0xbf, + 0x97, 0xc9, 0xcf, 0x4b, 0x6a, 0x3f, 0x49, 0xae, + 0xd7, 0x8a, 0x7d, 0x3e, 0xb8, 0x86, 0xbd, 0xa6, + 0xb3, 0x25, 0xdd, 0x3e, 0x09, 0xb8, 0xa5, 0xe7, + 0x8a, 0x0c, 0xcc, 0xca, 0x92, 0xbe, 0x25, 0x31, + 0xbe, 0x57, 0x67, 0xbc, 0xed, 0x6f, 0xdc, 0xd9, + 0xd6, 0x91, 0x2e, 0x9c, 0xf5, 0x29, 0xb4, 0xb3, + 0xd1, 0x33, 0x25, 0x3a, 0xc6, 0x29, 0x60, 0xad, + 0x6a, 0x33, 0x62, 0xd0, 0x82, 0x33, 0x03, 0x56, + 0x58, 0xe2, 0x8e, 0x28, 0xeb, 0xa4, 0x8d, 0x0b, + 0x3b, 0x1d, 0xde, 0xe5, 0x23, 0x62, 0xbc, 0x7b, + 0x86, 0x96, 0x29, 0x50, 0x6b, 0x2b, 0xaa, 0x3d, + 0xcb, 0xad, 0x3b, 0xc3, 0x62, 0x38, 0x60, 0xb1, + 0x7e, 0xc6, 0xd9, 0xa3, 0x9e, 0xcc, 0xad, 0x3f, + 0x04, 0xaf, 0x64, 0x45, 0x96, 0x78, 0xca, 0x98, + 0xd5, 0x00, 0x75, 0x60, 0x5d, 0x86, 0xc0, 0xb3, + 0x6a, 0xfa, 0x53, 0x08, 0xa1, 0xaf, 0x2c, 0x8a, + 0xac, 0x56, 0x19, 0xb4, 0xf9, 0xe3, 0xb5, 0xce, + 0xd1, 0x3c, 0xb1, 0x44, 0x9c, 0x61, 0x54, 0x2c, + 0x65, 0x1a, 0x51, 0xb2, 0xbc, 0xb0, 0x9e, 0x70, + 0xf9, 0x8d, 0xd7, 0x69, 0xce, 0xaf, 0x43, 0x41, + 0x35, 0x27, 0xac, 0x97, 0x27, 0x8a, 0x6d, 0xc9, + 0xc7, 0x6c, 0xc5, 0x2c, 0xf5, 0xe7, 0x88, 0xc9, + 0x01, 0x71, 0x36, 0xea, 0xb2, 0xab, 0x4d, 0x1c, + 0x6c, 0xa2, 0x27, 0x4c, 0xab, 0x6d, 0x44, 0x99, + 0x7d, 0x9b, 0xd6, 0xbf, 0x6f, 0xf6, 0xed, 0xc1, + 0x1b, 0xeb, 0x77, 0x6b, 0x5c, 0xd4, 0x26, 0x22, + 0xa5, 0x65, 0xff, 0x00, 0x0a, 0x42, 0xcb, 0x89, + 0x64, 0x48, 0x55, 0x9e, 0x28, 0x04, 0x52, 0xbb, + 0x3a, 0xb2, 0x80, 0x91, 0xd7, 0xe3, 0x55, 0xda, + 0xdb, 0xcf, 0xd5, 0xea, 0x2e, 0xde, 0x8b, 0x90, + 0xdc, 0xd5, 0xed, 0x55, 0xfc, 0x26, 0x29, 0x1d, + 0x29, 0x59, 0xa3, 0x5a, 0x19, 0xda, 0x17, 0xc4, + 0x4d, 0x15, 0x68, 0xda, 0x5a, 0x49, 0x6a, 0x3b, + 0x05, 0xd0, 0xcb, 0x1f, 0x31, 0x94, 0x29, 0x44, + 0x95, 0xec, 0x3f, 0xdf, 0xb9, 0xb4, 0x6e, 0xdb, + 0xee, 0xf4, 0x8e, 0x05, 0x47, 0xd3, 0xf5, 0x04, + 0x18, 0xa3, 0x76, 0x3d, 0x92, 0xd7, 0x92, 0x15, + 0x95, 0x4d, 0x98, 0x59, 0x22, 0x85, 0x7d, 0x9b, + 0xa5, 0x6d, 0xfc, 0x82, 0x33, 0x0c, 0x9b, 0xa6, + 0x1e, 0xd5, 0x97, 0xad, 0x27, 0xf4, 0x63, 0xa7, + 0x50, 0xbc, 0x35, 0x18, 0x24, 0x92, 0xd4, 0x30, + 0xac, 0x12, 0xd5, 0x4b, 0x10, 0x0b, 0x55, 0x9e, + 0x50, 0xdb, 0x9e, 0x62, 0x62, 0xf1, 0x32, 0x14, + 0x5c, 0xc0, 0xa7, 0xd8, 0xae, 0xe1, 0xdb, 0x7e, + 0x15, 0x44, 0x96, 0x3b, 0x9e, 0x7b, 0x34, 0xe1, + 0xb1, 0xdb, 0x11, 0xbe, 0x90, 0x81, 0x95, 0x42, + 0xd3, 0x7d, 0xa7, 0x99, 0x22, 0x5d, 0xed, 0x1a, + 0xd9, 0xf6, 0xb2, 0xee, 0x9d, 0x86, 0x29, 0xa3, + 0x46, 0x32, 0xb9, 0xfb, 0x9b, 0x9d, 0xbd, 0x51, + 0xd4, 0xbc, 0x15, 0xe6, 0x8d, 0x0a, 0x09, 0x38, + 0x2d, 0x69, 0xa6, 0xe7, 0xd4, 0x06, 0xc4, 0x89, + 0x85, 0x29, 0x24, 0x8a, 0x44, 0x92, 0xc6, 0x42, + 0xae, 0xe2, 0x9b, 0x08, 0xdb, 0x92, 0x4f, 0x49, + 0xda, 0xf5, 0x10, 0x13, 0x2c, 0x57, 0xb9, 0x26, + 0xb1, 0x34, 0x8e, 0xd0, 0x29, 0x48, 0xa3, 0xdf, + 0x2c, 0xd3, 0xa3, 0x30, 0x3b, 0x18, 0x2c, 0x79, + 0xc0, 0x65, 0x43, 0x87, 0x23, 0x68, 0xf3, 0x9e, + 0xac, 0x76, 0x26, 0x93, 0x65, 0x01, 0xbd, 0x28, + 0xb0, 0xcb, 0xca, 0xd9, 0x1b, 0x91, 0xe4, 0x57, + 0xda, 0x30, 0x77, 0xb3, 0xb1, 0x65, 0x44, 0x54, + 0x52, 0x19, 0x7e, 0xe4, 0x05, 0x24, 0x61, 0xbb, + 0x63, 0x43, 0xd2, 0x2b, 0xcd, 0x6f, 0x4c, 0x41, + 0x52, 0xd0, 0x83, 0x02, 0x4d, 0x44, 0x3c, 0x8b, + 0x5b, 0x38, 0x60, 0x5f, 0x6b, 0xba, 0xa9, 0x04, + 0x8d, 0xd8, 0x7c, 0xfd, 0xb3, 0xf6, 0xea, 0x38, + 0xe4, 0x86, 0xcd, 0x68, 0x9f, 0x52, 0xed, 0xd5, + 0xe6, 0x96, 0x22, 0xb0, 0x98, 0x5f, 0x9e, 0xc0, + 0x77, 0x83, 0xcc, 0x12, 0xc8, 0xe1, 0xb9, 0x1c, + 0x9c, 0x44, 0x76, 0x49, 0x8d, 0xd0, 0xe3, 0xc2, + 0xe3, 0xa3, 0x95, 0xdd, 0xfa, 0xee, 0x81, 0xed, + 0xd7, 0x23, 0x8c, 0xe2, 0x20, 0xc5, 0x0f, 0xb7, + 0xf5, 0x67, 0xc0, 0xf3, 0xa9, 0x1f, 0xb4, 0x87, + 0xf8, 0x8f, 0xe7, 0xd4, 0x47, 0x2b, 0x99, 0x04, + 0x91, 0x67, 0x23, 0x0e, 0xb1, 0xee, 0xf0, 0x71, + 0xf0, 0x15, 0xbe, 0x47, 0x91, 0xe7, 0xc0, 0x3f, + 0x63, 0xe3, 0xad, 0x90, 0x47, 0x17, 0xb5, 0xa4, + 0x60, 0xa9, 0xed, 0xfd, 0xac, 0x99, 0x03, 0xf9, + 0xac, 0x72, 0x48, 0xff, 0x00, 0xd8, 0x18, 0x9e, + 0xa3, 0x5a, 0xb2, 0xd6, 0x7f, 0x4d, 0xa9, 0xdb, + 0xa9, 0xed, 0x22, 0x2d, 0xe8, 0xd1, 0x00, 0xc5, + 0x72, 0x18, 0x21, 0x04, 0x15, 0x56, 0x38, 0x6c, + 0xaf, 0xe6, 0x56, 0x52, 0x32, 0x0f, 0x57, 0x74, + 0xee, 0xe3, 0xb9, 0xc5, 0xf8, 0x7d, 0xda, 0xf6, + 0x6a, 0x3b, 0x41, 0x24, 0xd6, 0xe4, 0x51, 0xb2, + 0x7a, 0x92, 0x09, 0x43, 0xac, 0x32, 0x8c, 0x96, + 0x60, 0x36, 0x92, 0xbe, 0x77, 0x26, 0xd6, 0x47, + 0x4d, 0xe5, 0x12, 0x4a, 0x27, 0x48, 0x89, 0xa6, + 0xfc, 0x4a, 0x1b, 0xa1, 0x62, 0xf3, 0x1a, 0x69, + 0xfe, 0x96, 0x49, 0x70, 0x4b, 0x06, 0x69, 0x22, + 0xde, 0xca, 0x15, 0x49, 0xe3, 0x12, 0x29, 0x5c, + 0x03, 0xb4, 0x0d, 0xdd, 0x77, 0x35, 0xb7, 0x97, + 0x4a, 0x49, 0x4c, 0x7c, 0x71, 0xcc, 0xf2, 0xae, + 0xdc, 0x87, 0xdd, 0xc6, 0x50, 0x2b, 0xe5, 0x84, + 0x6e, 0xa3, 0x26, 0x41, 0xf9, 0x0f, 0xd8, 0x90, + 0x32, 0x3a, 0xa7, 0x4f, 0xd6, 0x59, 0xab, 0x5e, + 0x33, 0xb6, 0x49, 0xa6, 0x5c, 0x33, 0x1f, 0x68, + 0xdb, 0xc8, 0xcc, 0x4f, 0xf6, 0x2e, 0x00, 0x19, + 0x24, 0xfc, 0x7c, 0xff, 0x00, 0xd1, 0xa1, 0x5e, + 0x1a, 0x66, 0xab, 0x56, 0xf1, 0x7e, 0x23, 0x5b, + 0xd4, 0x48, 0x92, 0x6d, 0x2f, 0xb6, 0x5f, 0x4d, + 0x30, 0x84, 0xed, 0xda, 0xf9, 0x1c, 0xa5, 0x33, + 0xed, 0x23, 0xf8, 0xfb, 0x73, 0xd5, 0xae, 0xff, + 0x00, 0xd2, 0x9f, 0x4b, 0x5e, 0x3b, 0x13, 0x0d, + 0x48, 0xc1, 0x5f, 0x7b, 0x7a, 0x49, 0x55, 0x0c, + 0xd9, 0x8b, 0xd4, 0xe1, 0xf8, 0xf8, 0xc0, 0x23, + 0x97, 0x05, 0x47, 0x8f, 0xdc, 0xc1, 0xc7, 0x4b, + 0xdd, 0x7a, 0x0d, 0x2b, 0x5a, 0x7d, 0x1b, 0x42, + 0x63, 0xa2, 0x9a, 0x96, 0x7d, 0x44, 0x46, 0x03, + 0x6a, 0x5b, 0x88, 0x59, 0x0d, 0x14, 0x2d, 0x27, + 0x3c, 0xe7, 0xf7, 0xc3, 0xbc, 0x92, 0x06, 0x3b, + 0x8c, 0x8d, 0x18, 0x3b, 0x54, 0x49, 0xde, 0xba, + 0x56, 0xab, 0xac, 0x53, 0x86, 0x9e, 0xf5, 0xab, + 0x52, 0x0a, 0xe2, 0x85, 0x68, 0xe3, 0x96, 0x94, + 0x55, 0x6c, 0x93, 0x3d, 0x69, 0x39, 0x21, 0xcc, + 0x02, 0xcc, 0x4b, 0x56, 0x58, 0xe3, 0x58, 0xa4, + 0x72, 0xa0, 0xfd, 0x44, 0x1b, 0xc3, 0x6e, 0xee, + 0x58, 0xf5, 0x9b, 0x74, 0x2f, 0x45, 0xa0, 0x4c, + 0xe9, 0xa8, 0xb5, 0xda, 0xd3, 0xba, 0xc3, 0x28, + 0x86, 0xc4, 0xda, 0x60, 0xac, 0xa8, 0x16, 0xb4, + 0xac, 0xc8, 0x14, 0x25, 0x9f, 0x32, 0x2a, 0xba, + 0x9c, 0xf2, 0x79, 0xfa, 0x80, 0x37, 0x6d, 0x55, + 0xd4, 0xd5, 0x34, 0x98, 0xf5, 0x37, 0x59, 0x75, + 0x58, 0x28, 0x4f, 0xf8, 0x94, 0x8c, 0x56, 0x5e, + 0x35, 0x92, 0x78, 0xde, 0x9c, 0x76, 0x24, 0x5c, + 0xab, 0x4c, 0x21, 0xde, 0x09, 0xce, 0x58, 0xf2, + 0x10, 0x4e, 0xf0, 0xc6, 0x17, 0xd1, 0xea, 0xab, + 0xc6, 0xfe, 0x43, 0x67, 0x7c, 0x53, 0x01, 0x24, + 0x63, 0xf8, 0x95, 0x52, 0x30, 0x01, 0x18, 0xc8, + 0x3f, 0x6c, 0x06, 0xf2, 0x3a, 0x36, 0x7b, 0x7c, + 0x45, 0xcb, 0xc5, 0x49, 0x63, 0x60, 0xdb, 0x66, + 0x48, 0x20, 0xfb, 0x2b, 0xbb, 0x15, 0x70, 0x3e, + 0x55, 0x56, 0x47, 0x38, 0xf8, 0x01, 0x98, 0xfd, + 0xcf, 0x46, 0x37, 0xd3, 0xaa, 0xcf, 0x34, 0x1a, + 0xc5, 0x9b, 0x51, 0xe5, 0x5d, 0xab, 0xc7, 0x44, + 0x5a, 0x91, 0x8b, 0x32, 0xb2, 0x85, 0xf7, 0xc9, + 0x2e, 0x4c, 0x2c, 0xbb, 0x79, 0x1b, 0x60, 0x5c, + 0x64, 0x08, 0x89, 0xe8, 0x77, 0x6d, 0xa4, 0x90, + 0xc6, 0x25, 0xbd, 0x12, 0xd6, 0x12, 0x0b, 0x27, + 0x8d, 0x10, 0x36, 0xfb, 0x4d, 0x1a, 0x1f, 0xe8, + 0xd2, 0x08, 0x58, 0x45, 0x27, 0x90, 0x91, 0x81, + 0xe5, 0x9b, 0x1c, 0xe3, 0x60, 0xa1, 0xac, 0x0b, + 0x11, 0xb4, 0x90, 0xea, 0xb7, 0x2b, 0x46, 0x93, + 0x4a, 0xe6, 0xa7, 0xe1, 0xfa, 0x8d, 0xbe, 0x65, + 0x7d, 0xa6, 0x26, 0xe5, 0x8a, 0x14, 0xe1, 0x81, + 0x93, 0xf2, 0xa8, 0x2b, 0x22, 0xc8, 0x1c, 0xe4, + 0xab, 0x63, 0xa6, 0xd7, 0x6e, 0x3d, 0x78, 0x60, + 0x5b, 0x4d, 0x23, 0x57, 0x9f, 0x95, 0xe5, 0x14, + 0x75, 0xa9, 0x2c, 0x38, 0x8e, 0x63, 0x24, 0x09, + 0x38, 0x82, 0xbc, 0x06, 0x00, 0xf1, 0x85, 0x12, + 0x46, 0xfb, 0xb9, 0x22, 0x3e, 0x0f, 0x9e, 0x53, + 0xa6, 0xf7, 0xc4, 0xda, 0x99, 0x94, 0x47, 0x00, + 0x8d, 0xe0, 0xab, 0x15, 0x8b, 0x11, 0x9a, 0x96, + 0xc8, 0x84, 0x49, 0x93, 0x96, 0x9c, 0xe2, 0x22, + 0x59, 0x76, 0x15, 0x87, 0x0b, 0x30, 0x5f, 0x76, + 0xd6, 0x52, 0x08, 0xb9, 0xdd, 0xd1, 0xd4, 0xcc, + 0x77, 0x27, 0x85, 0x24, 0xf8, 0x5a, 0xf0, 0x63, + 0xd6, 0xc8, 0xfe, 0xd2, 0xb1, 0x43, 0x01, 0x2f, + 0x24, 0x8e, 0xfb, 0xd1, 0x42, 0x04, 0xc9, 0x2e, + 0xb8, 0x23, 0x23, 0xa9, 0x35, 0x6d, 0x5a, 0x04, + 0x33, 0x2e, 0x95, 0xc2, 0x0c, 0xc2, 0x69, 0x16, + 0x5b, 0xd1, 0x5a, 0xb7, 0x12, 0xb3, 0x86, 0x90, + 0xc9, 0x14, 0xd5, 0x84, 0x28, 0xa1, 0x32, 0x64, + 0x8a, 0xad, 0xdd, 0xc8, 0xa0, 0xf0, 0x97, 0x60, + 0x14, 0xd9, 0xd6, 0x6d, 0xeb, 0x57, 0xe2, 0xa7, + 0x46, 0xa6, 0x9c, 0x2a, 0xca, 0xf3, 0x26, 0xa6, + 0x5e, 0x39, 0x7d, 0x56, 0x16, 0x36, 0x11, 0xca, + 0x59, 0x4e, 0x1f, 0x85, 0x82, 0x7e, 0xae, 0x49, + 0x2e, 0x4c, 0x6a, 0xce, 0x22, 0xdf, 0xb7, 0x51, + 0xb2, 0x74, 0xad, 0x42, 0x95, 0x38, 0x23, 0xd3, + 0x78, 0xa6, 0x29, 0x22, 0x47, 0x6a, 0xac, 0x7e, + 0xae, 0x52, 0xd6, 0xa2, 0x4e, 0x3a, 0xae, 0xd6, + 0x03, 0xf2, 0xe1, 0x4a, 0xc6, 0x78, 0x1a, 0x35, + 0x73, 0x02, 0xae, 0x0a, 0x84, 0x32, 0xed, 0x2e, + 0xed, 0xeb, 0x3b, 0x6b, 0x70, 0xd7, 0xa3, 0x83, + 0x1c, 0x2d, 0xed, 0x56, 0x68, 0xc9, 0xad, 0x20, + 0x01, 0x47, 0xe2, 0xcc, 0x70, 0x04, 0xdf, 0x23, + 0xc0, 0xcf, 0x51, 0xd5, 0x5b, 0x0a, 0xab, 0x1c, + 0xd1, 0xb0, 0x98, 0xbc, 0x6a, 0x07, 0x31, 0x24, + 0xae, 0xe0, 0xe3, 0x72, 0x46, 0x54, 0x15, 0xda, + 0xc3, 0x3b, 0x87, 0x91, 0xf6, 0x3d, 0x7a, 0x0d, + 0x42, 0xbc, 0x48, 0xcd, 0xf4, 0x16, 0x34, 0xc1, + 0x81, 0x7e, 0xac, 0x69, 0x1e, 0x40, 0x3e, 0xca, + 0xea, 0xcc, 0x48, 0x40, 0x78, 0xf6, 0x2f, 0x82, + 0x7c, 0x8f, 0x9c, 0x47, 0x5a, 0xc4, 0x25, 0xa2, + 0x87, 0x59, 0x52, 0x22, 0x6d, 0xac, 0x16, 0x95, + 0x92, 0x03, 0x7c, 0xf9, 0xe1, 0x52, 0x99, 0x39, + 0x12, 0x93, 0xee, 0xdf, 0x27, 0xb9, 0xf7, 0xc6, + 0xec, 0x8e, 0x7d, 0x6c, 0x6a, 0x9b, 0xf5, 0xed, + 0x9b, 0x14, 0x87, 0xc5, 0x39, 0x13, 0x70, 0x1c, + 0xa1, 0x4f, 0xbe, 0xb3, 0x05, 0xc7, 0x22, 0x67, + 0x6a, 0xa8, 0x25, 0x3f, 0x77, 0x08, 0xab, 0xab, + 0x6a, 0x2f, 0xa7, 0xda, 0x80, 0x2e, 0xa8, 0x59, + 0x2e, 0x4b, 0x62, 0x49, 0xa5, 0x5a, 0xed, 0x26, + 0xdd, 0xf2, 0xc0, 0xb0, 0x23, 0xe5, 0x22, 0x9c, + 0xc2, 0x39, 0x04, 0x6a, 0x61, 0xe4, 0x90, 0x1c, + 0xb1, 0x60, 0x0f, 0x8e, 0xec, 0x49, 0x45, 0x69, + 0xe2, 0xb1, 0x63, 0x7f, 0x1a, 0x1b, 0x09, 0x90, + 0x76, 0xc8, 0xb2, 0x3a, 0xf8, 0xfd, 0xa0, 0xf2, + 0x9f, 0x03, 0x7a, 0xc8, 0x48, 0xf2, 0x36, 0x7e, + 0xf0, 0xb6, 0xd0, 0x14, 0x92, 0x12, 0xd1, 0xcb, + 0x1b, 0x8d, 0xb2, 0x23, 0x05, 0x61, 0x9d, 0xc0, + 0xe0, 0xa8, 0x0d, 0xe5, 0x5b, 0x07, 0xdd, 0xe4, + 0x7c, 0xe4, 0x1f, 0x1d, 0x46, 0x8f, 0x23, 0x6c, + 0x8d, 0x5d, 0xdc, 0x86, 0xc2, 0xc6, 0xa5, 0x98, + 0xfb, 0x49, 0x38, 0x51, 0xe4, 0xf8, 0xc9, 0x3f, + 0xcb, 0x3d, 0x48, 0x92, 0x70, 0x0f, 0xd5, 0xac, + 0x0d, 0xc8, 0xb8, 0xcc, 0x0e, 0x17, 0xdd, 0x82, + 0xad, 0xbc, 0x8c, 0x63, 0xee, 0xa4, 0x7c, 0xf8, + 0xe8, 0xc7, 0x61, 0x26, 0x84, 0x3c, 0x12, 0xb3, + 0x04, 0x65, 0xc2, 0xa1, 0x66, 0x04, 0x6d, 0x27, + 0xda, 0x06, 0x72, 0x00, 0xf2, 0x31, 0x9c, 0x1e, + 0xb4, 0x78, 0xe5, 0xfc, 0x5a, 0x16, 0x35, 0x27, + 0xda, 0x23, 0xd9, 0xb9, 0x91, 0xe3, 0xda, 0xf2, + 0x48, 0x04, 0x52, 0x28, 0xc7, 0xbb, 0x63, 0xfe, + 0x44, 0xfd, 0xf2, 0x08, 0xc6, 0x3a, 0xa5, 0x1c, + 0x0e, 0xb1, 0xfa, 0xca, 0xf9, 0x3c, 0x9b, 0x62, + 0x26, 0x43, 0x19, 0x0c, 0xde, 0x14, 0x24, 0x9b, + 0x43, 0x2b, 0x38, 0xf9, 0x0a, 0x46, 0x71, 0x8c, + 0x9e, 0xb5, 0x1e, 0xe6, 0xab, 0xa1, 0xcd, 0x25, + 0x2a, 0xd5, 0x64, 0x8e, 0x28, 0x2a, 0x9b, 0xd3, + 0xf0, 0x3c, 0x3b, 0xac, 0xbc, 0xa2, 0x74, 0xcb, + 0x3b, 0xa9, 0x66, 0x31, 0xf1, 0xef, 0x06, 0x4f, + 0x4f, 0x96, 0xd8, 0xdc, 0xcc, 0xbf, 0x4d, 0xbf, + 0xbb, 0x3a, 0xd5, 0x4c, 0xc7, 0xd3, 0xc9, 0x33, + 0xa5, 0x54, 0x98, 0xb6, 0x22, 0x0e, 0x63, 0x4e, + 0x50, 0x62, 0x76, 0x79, 0xf6, 0xbc, 0xaa, 0xf1, + 0xbb, 0xb4, 0xa4, 0x45, 0x1b, 0x72, 0x80, 0x3f, + 0x29, 0xea, 0xee, 0xac, 0x6e, 0xe9, 0x97, 0x5d, + 0x9e, 0x8e, 0x9e, 0xb4, 0x6e, 0x44, 0xb1, 0xcf, + 0x6c, 0x09, 0x22, 0x56, 0x06, 0x26, 0x0e, 0x63, + 0x41, 0xed, 0x67, 0x12, 0x18, 0xb6, 0x10, 0xfe, + 0x58, 0x86, 0x0c, 0x0e, 0x3a, 0xbf, 0xad, 0x5b, + 0xd9, 0xa8, 0x6e, 0xd6, 0x74, 0x7a, 0xe1, 0x12, + 0xa3, 0xab, 0xc0, 0x8c, 0x0c, 0x22, 0x54, 0x48, + 0xdc, 0xd8, 0xe1, 0x65, 0x92, 0xc2, 0xce, 0x1c, + 0xf1, 0x65, 0xa4, 0x31, 0x6e, 0x8d, 0x94, 0x29, + 0x5c, 0x9b, 0x56, 0x2b, 0x09, 0x35, 0x27, 0x69, + 0xf4, 0x15, 0x7b, 0x09, 0x17, 0x34, 0x9e, 0x90, + 0xba, 0x28, 0x9a, 0x4a, 0xce, 0x4d, 0xb3, 0x8c, + 0xd8, 0x79, 0x98, 0x6f, 0x81, 0xdb, 0x71, 0x89, + 0x89, 0x65, 0x2a, 0x46, 0x7a, 0xab, 0xac, 0xdd, + 0xaa, 0x67, 0x5a, 0x5a, 0x96, 0x87, 0x50, 0x52, + 0x35, 0x78, 0x20, 0x0a, 0x4a, 0x51, 0x88, 0xc4, + 0x04, 0x8a, 0xd1, 0x82, 0x62, 0x93, 0x9b, 0x73, + 0x7b, 0xf6, 0x9f, 0xcc, 0x1b, 0xc3, 0x28, 0xe9, + 0xbb, 0xc3, 0x59, 0x4f, 0x54, 0xc9, 0xdc, 0x3d, + 0xbf, 0x0f, 0xd5, 0x81, 0x93, 0xf5, 0x47, 0x3c, + 0x30, 0x9d, 0xbb, 0x92, 0x4f, 0xa0, 0x4c, 0x9c, + 0x9e, 0x7e, 0xa6, 0x4e, 0xdc, 0x9c, 0x15, 0xc7, + 0x8a, 0x7d, 0xd7, 0x7b, 0x4e, 0x49, 0x6b, 0x57, + 0x9b, 0x40, 0xb1, 0xc9, 0x62, 0x35, 0xa3, 0x47, + 0x4f, 0xac, 0x6b, 0xec, 0x79, 0x49, 0x66, 0x69, + 0x99, 0x16, 0x35, 0xd9, 0xc6, 0x92, 0xcd, 0x2c, + 0xc4, 0x33, 0xfb, 0x4e, 0xdd, 0xe4, 0x08, 0x8d, + 0x09, 0x90, 0x1b, 0xb6, 0xb5, 0x09, 0x6a, 0xfa, + 0xdb, 0xb7, 0x05, 0x89, 0x25, 0x81, 0xec, 0x1f, + 0xa1, 0x18, 0x8d, 0x6b, 0xd4, 0xe4, 0x92, 0xb2, + 0x3f, 0x04, 0x2a, 0x98, 0x29, 0x85, 0x12, 0x17, + 0x79, 0x30, 0xaf, 0x23, 0x75, 0x76, 0xed, 0x2b, + 0x73, 0x3d, 0x6a, 0x95, 0x20, 0x92, 0xa4, 0x28, + 0x8c, 0xcc, 0xa9, 0x24, 0xd5, 0xe4, 0x77, 0xdb, + 0x10, 0x96, 0xc3, 0x6e, 0x27, 0xd3, 0x57, 0x44, + 0x7c, 0x2b, 0x27, 0x1b, 0xc9, 0x03, 0x82, 0x24, + 0x09, 0x22, 0x19, 0xb4, 0xdd, 0x28, 0xd0, 0x92, + 0x0a, 0xd1, 0xc1, 0x5e, 0xfa, 0x88, 0xda, 0x0d, + 0x41, 0x63, 0x90, 0xd8, 0xab, 0x75, 0x48, 0x78, + 0x2c, 0x45, 0xb2, 0x4d, 0xd0, 0x7d, 0x49, 0x37, + 0x14, 0x88, 0xc7, 0xba, 0x37, 0x21, 0x89, 0x56, + 0x27, 0xad, 0x7f, 0x52, 0xa5, 0x05, 0x7b, 0x96, + 0xb5, 0x87, 0x58, 0xf5, 0x7d, 0x2e, 0xbc, 0x26, + 0x1a, 0xf5, 0xee, 0xc3, 0x10, 0xd4, 0x63, 0x76, + 0x67, 0x86, 0x5a, 0xcd, 0x62, 0xb3, 0xcd, 0xca, + 0x5c, 0x4a, 0x24, 0xf6, 0xb4, 0xf1, 0x49, 0x09, + 0xf7, 0xb2, 0xec, 0x95, 0xaa, 0x77, 0x17, 0x6f, + 0xdd, 0x82, 0xe4, 0x8b, 0x50, 0xc3, 0x36, 0x9f, + 0x24, 0x5a, 0x95, 0xb8, 0x97, 0x4c, 0x86, 0xc4, + 0x84, 0x87, 0x74, 0x6b, 0x4a, 0x1a, 0xb8, 0x57, + 0x75, 0x92, 0x07, 0x59, 0x26, 0x1f, 0x56, 0x20, + 0xaa, 0x77, 0xe5, 0x97, 0xaf, 0xee, 0xb2, 0x9c, + 0xb1, 0xa1, 0x8b, 0x50, 0x91, 0x96, 0x68, 0xd1, + 0xcb, 0x0a, 0xf1, 0xc4, 0x63, 0x49, 0x64, 0x10, + 0xc6, 0x58, 0xb4, 0x6a, 0xc3, 0x33, 0x1e, 0x2c, + 0xa6, 0xed, 0x92, 0x7e, 0x62, 0x3e, 0x7a, 0xad, + 0x7e, 0x6b, 0x55, 0xd6, 0x7a, 0xb3, 0xdd, 0x9a, + 0x09, 0x01, 0xdb, 0x30, 0x05, 0x83, 0xed, 0xf6, + 0xb1, 0xdd, 0xe3, 0x27, 0x23, 0xc9, 0xfb, 0xfc, + 0xe7, 0xef, 0xd0, 0xd6, 0x6f, 0xe9, 0x9c, 0xb1, + 0x53, 0xd5, 0x74, 0x28, 0xb7, 0xea, 0x92, 0x44, + 0xf1, 0xa4, 0xb3, 0x6e, 0xe1, 0x87, 0x11, 0x2c, + 0x6c, 0xbb, 0xfd, 0x96, 0x22, 0x54, 0x11, 0xc9, + 0x18, 0xf6, 0xee, 0x56, 0x3c, 0xc3, 0x3d, 0x37, + 0x70, 0xea, 0x4c, 0xce, 0x7f, 0x13, 0xd0, 0xd9, + 0x9a, 0xf3, 0x97, 0x39, 0x9d, 0xbe, 0x86, 0x48, + 0x21, 0x4b, 0x4a, 0xde, 0xff, 0x00, 0x80, 0xc8, + 0x32, 0xbe, 0x3f, 0x6d, 0xee, 0xea, 0xce, 0xa9, + 0x24, 0xd2, 0xd7, 0x98, 0xd8, 0xd0, 0x64, 0x96, + 0xbd, 0x87, 0xdb, 0x24, 0x88, 0xc6, 0x48, 0xab, + 0xb7, 0x89, 0x84, 0x04, 0xc8, 0xe5, 0x58, 0xed, + 0x4d, 0xcb, 0xf7, 0xda, 0x47, 0x2f, 0x93, 0xd5, + 0xe7, 0xfc, 0x44, 0x28, 0xb0, 0xfd, 0xbb, 0x30, + 0x6b, 0x58, 0xc9, 0x57, 0x67, 0x15, 0x14, 0xb7, + 0xe4, 0x25, 0xc9, 0x2c, 0x32, 0x33, 0x19, 0x05, + 0x7f, 0xd7, 0x79, 0xe8, 0x69, 0x7a, 0x7a, 0xac, + 0x8d, 0xc5, 0xda, 0xf9, 0xdf, 0x60, 0xfb, 0x83, + 0xe7, 0xd2, 0x08, 0xdf, 0x0c, 0x9b, 0x9c, 0x86, + 0xb1, 0xbb, 0x18, 0x4f, 0x80, 0xfb, 0x71, 0x36, + 0x3e, 0x3a, 0xed, 0x9e, 0x3f, 0xc7, 0x74, 0xee, + 0x66, 0x55, 0x8b, 0x95, 0xc4, 0xac, 0xe7, 0x6a, + 0x2c, 0x66, 0x19, 0x43, 0x96, 0x3f, 0x65, 0x0b, + 0x92, 0x4e, 0x41, 0xfe, 0x63, 0xa9, 0x5c, 0xbd, + 0x28, 0xe9, 0x3c, 0x14, 0xda, 0x11, 0xa6, 0x41, + 0x6d, 0x02, 0x31, 0xc4, 0xda, 0x5c, 0x42, 0x31, + 0xea, 0xe0, 0x66, 0x97, 0x9c, 0x14, 0x6d, 0xeb, + 0x34, 0xd3, 0xba, 0x44, 0x51, 0x53, 0x67, 0xb8, + 0x3b, 0x49, 0x62, 0x0d, 0x18, 0xfa, 0x6b, 0xd0, + 0x8a, 0xad, 0x76, 0x2a, 0x52, 0x6a, 0x8a, 0x8d, + 0x67, 0x8d, 0x4e, 0x9b, 0x2f, 0xcd, 0x89, 0x0e, + 0xef, 0x74, 0x68, 0x42, 0x27, 0x87, 0x11, 0x79, + 0x70, 0xbe, 0xd3, 0x9e, 0xab, 0x47, 0xa2, 0x4b, + 0x2b, 0x5d, 0xb8, 0xf5, 0x22, 0x9d, 0x34, 0xef, + 0x5a, 0xc9, 0xcb, 0x1b, 0xa0, 0xd2, 0xd6, 0xc3, + 0x35, 0x7b, 0x81, 0x51, 0x99, 0x76, 0x39, 0xc7, + 0xbc, 0x9f, 0xe4, 0x57, 0xe3, 0x2b, 0x63, 0x44, + 0x8c, 0x48, 0xcd, 0xa8, 0x40, 0x9b, 0x69, 0xa6, + 0xa7, 0x26, 0x66, 0x52, 0x12, 0x94, 0xff, 0x00, + 0x92, 0xc9, 0xcf, 0xe5, 0x85, 0xf1, 0xed, 0xdb, + 0xed, 0xfe, 0x03, 0xad, 0x6c, 0xa4, 0xd6, 0x35, + 0x99, 0x05, 0xb4, 0x0b, 0x06, 0x93, 0x56, 0x4a, + 0xf2, 0xef, 0x5d, 0x95, 0xe2, 0xb1, 0x2c, 0xeb, + 0x1e, 0xa3, 0x13, 0x09, 0x4b, 0xc4, 0x5e, 0x29, + 0xc6, 0x66, 0x45, 0xc3, 0xac, 0x47, 0xdd, 0xe4, + 0x2a, 0xd8, 0x8b, 0xd9, 0xaa, 0x1e, 0x58, 0xe0, + 0xe1, 0xd1, 0xe9, 0x48, 0x8e, 0xb2, 0xc6, 0x9e, + 0x88, 0xdc, 0x79, 0x09, 0xbc, 0xbe, 0xe0, 0x23, + 0x36, 0x05, 0x8c, 0xc9, 0x2c, 0x6e, 0xa2, 0x46, + 0x89, 0xf2, 0xfe, 0xe5, 0xea, 0x19, 0x74, 0x3a, + 0xf5, 0x66, 0x5d, 0x41, 0xea, 0xc9, 0xc4, 0x2b, + 0x5b, 0xbe, 0x81, 0xeb, 0xc6, 0x04, 0x36, 0x87, + 0xd3, 0x9e, 0xf2, 0xba, 0x4b, 0x1b, 0x02, 0xbb, + 0x4f, 0x9f, 0x74, 0xce, 0x8a, 0xca, 0x57, 0xc0, + 0x33, 0xbf, 0x6c, 0x32, 0xcf, 0x1c, 0xe9, 0x40, + 0x45, 0x4b, 0x85, 0xaf, 0x1b, 0x96, 0xd1, 0x24, + 0x58, 0x24, 0x11, 0x8a, 0x73, 0xca, 0x21, 0xaf, + 0xc7, 0x22, 0x4c, 0xad, 0x21, 0x58, 0xe6, 0xd8, + 0x03, 0xa2, 0x1f, 0xde, 0x52, 0xb3, 0x2f, 0x6e, + 0xc4, 0xb7, 0x15, 0xed, 0x68, 0x81, 0x2b, 0xa4, + 0x1e, 0xa4, 0x58, 0x57, 0x95, 0xa2, 0x32, 0xe7, + 0xd3, 0x1b, 0x4e, 0x7f, 0x3a, 0xbf, 0xb0, 0xc2, + 0x0e, 0xd2, 0x07, 0x85, 0x6c, 0x63, 0x13, 0x0e, + 0xda, 0x8a, 0x49, 0xa4, 0xb1, 0x76, 0x9c, 0x52, + 0xc7, 0xc6, 0x97, 0x78, 0x51, 0x44, 0x6a, 0xd2, + 0x04, 0xf4, 0xe6, 0xce, 0xe8, 0x5d, 0x91, 0x98, + 0x6d, 0xe0, 0xe4, 0x93, 0x24, 0x12, 0x17, 0x71, + 0xea, 0x79, 0xb4, 0x28, 0x16, 0xc2, 0x9f, 0xc2, + 0xa7, 0x5a, 0xcd, 0x56, 0x29, 0xcd, 0x93, 0x89, + 0x43, 0xcb, 0xb0, 0x45, 0xea, 0x59, 0xe2, 0xc6, + 0xf2, 0xa4, 0x18, 0xb3, 0x96, 0x7f, 0x8f, 0x1f, + 0x3d, 0x6a, 0x12, 0xd3, 0x56, 0x13, 0xd4, 0x3a, + 0x45, 0x79, 0xb4, 0xeb, 0x51, 0xf3, 0x07, 0x93, + 0x87, 0x33, 0x58, 0x8d, 0xa1, 0x8e, 0x09, 0x26, + 0x08, 0x78, 0x9e, 0x58, 0xec, 0x39, 0x85, 0x9a, + 0x39, 0x36, 0xc9, 0xc6, 0x76, 0xb2, 0x06, 0x06, + 0x4b, 0xf2, 0xdb, 0x59, 0x2b, 0x5c, 0x96, 0x1d, + 0x3e, 0x9c, 0x32, 0xc3, 0x52, 0xf8, 0x97, 0x51, + 0xaf, 0x62, 0xc4, 0x92, 0xc8, 0x51, 0x92, 0x00, + 0xd1, 0xd7, 0xc5, 0x59, 0x26, 0x3b, 0x17, 0x94, + 0x4a, 0x24, 0xe3, 0x77, 0x11, 0x41, 0x1c, 0x85, + 0x65, 0x8f, 0x4f, 0xd4, 0xb4, 0xfd, 0x21, 0xae, + 0x1f, 0x47, 0xca, 0xbf, 0x88, 0x20, 0x59, 0x2a, + 0xea, 0x15, 0x29, 0xf0, 0x19, 0x22, 0x8e, 0x3a, + 0xda, 0x7d, 0xa8, 0x6d, 0x59, 0xa8, 0xb1, 0xcb, + 0x59, 0x08, 0x8a, 0xbc, 0x47, 0x70, 0x68, 0xf6, + 0xb8, 0x55, 0x90, 0x3e, 0x25, 0xee, 0x8a, 0x27, + 0x90, 0xb6, 0x99, 0x6a, 0x27, 0x8a, 0xcc, 0x50, + 0x4a, 0xcb, 0xac, 0x68, 0x71, 0xb7, 0xaa, 0x3b, + 0x78, 0xab, 0x4a, 0xff, 0x00, 0x8a, 0x6e, 0xdd, + 0x2f, 0xb0, 0x71, 0x9f, 0x2c, 0x3c, 0x7c, 0x75, + 0x72, 0xbe, 0x91, 0xab, 0xb5, 0xb9, 0x35, 0xa3, + 0xa3, 0xfd, 0x4b, 0x1a, 0x7d, 0x25, 0x8d, 0xac, + 0x2d, 0x93, 0x52, 0x4a, 0xbc, 0xae, 0xb5, 0x1e, + 0x4e, 0x68, 0x09, 0xbb, 0x24, 0x97, 0x67, 0xc9, + 0x0f, 0xb3, 0x1c, 0x49, 0xc7, 0x2a, 0xa1, 0xdd, + 0x4f, 0x49, 0xd0, 0x34, 0xdd, 0x23, 0x57, 0x88, + 0xd9, 0xd3, 0xec, 0xea, 0xf6, 0xe3, 0x9b, 0x49, + 0xf5, 0x81, 0xab, 0xd7, 0x46, 0xb0, 0x50, 0x8a, + 0x94, 0xde, 0x38, 0xdc, 0xc5, 0x14, 0xdf, 0xb3, + 0x69, 0x57, 0x66, 0x5d, 0xf2, 0xc4, 0x37, 0xc7, + 0x4d, 0x5f, 0xea, 0x29, 0xdf, 0xdb, 0x9b, 0x62, + 0x30, 0x69, 0xe7, 0x09, 0x07, 0xb2, 0xc3, 0x71, + 0x89, 0xa9, 0xb2, 0x4a, 0xd2, 0xe6, 0xc6, 0x1a, + 0x52, 0xb1, 0xc6, 0x42, 0x97, 0x0b, 0x24, 0x60, + 0xb3, 0x85, 0x8e, 0xa6, 0xab, 0xaf, 0xd6, 0xa8, + 0x21, 0x8a, 0xd7, 0x69, 0xc1, 0x8b, 0xb2, 0xc2, + 0x71, 0x33, 0xaa, 0xb4, 0xd3, 0xaa, 0xb2, 0x56, + 0x78, 0xfd, 0xaf, 0x1d, 0xe5, 0x72, 0x5e, 0x45, + 0x3e, 0xf9, 0x1d, 0x95, 0x0a, 0xaa, 0x82, 0xc4, + 0xc3, 0xca, 0x66, 0x32, 0xc9, 0xdb, 0x11, 0xe7, + 0x52, 0x9b, 0x19, 0x8e, 0x93, 0x3b, 0xea, 0x65, + 0xad, 0x34, 0x5b, 0x48, 0x3b, 0x05, 0x93, 0xfa, + 0xa0, 0x94, 0x4e, 0xbc, 0xc4, 0xb4, 0x8e, 0xad, + 0xed, 0xc3, 0x50, 0xa9, 0xa0, 0x7a, 0x76, 0xfc, + 0x4b, 0xf0, 0x4e, 0x7f, 0xc5, 0xe5, 0x58, 0xda, + 0x2f, 0x4f, 0x86, 0xb7, 0xbb, 0x31, 0x29, 0x55, + 0xca, 0xad, 0xcc, 0x7e, 0xe8, 0x67, 0x93, 0x01, + 0x59, 0x88, 0x63, 0xb4, 0x59, 0xa5, 0xda, 0xe7, + 0x06, 0xbd, 0xba, 0x15, 0x48, 0xbb, 0x22, 0xbc, + 0x70, 0xa5, 0x69, 0x39, 0xef, 0x0f, 0x74, 0x90, + 0xed, 0x20, 0xb7, 0xaa, 0xc2, 0xb6, 0x16, 0x32, + 0x1f, 0x2c, 0x72, 0xac, 0x71, 0x8b, 0x15, 0xf4, + 0xd0, 0x8b, 0xc3, 0x1e, 0x9a, 0x09, 0xd4, 0xa5, + 0x58, 0xb6, 0x4b, 0x5a, 0x46, 0x36, 0xd5, 0x24, + 0x3b, 0x86, 0xf8, 0xeb, 0x98, 0xae, 0x6e, 0x1e, + 0xe4, 0x45, 0x96, 0x58, 0xd8, 0x63, 0x07, 0xc9, + 0x54, 0xf5, 0x0a, 0xb9, 0xf4, 0xf4, 0x1a, 0x26, + 0xd4, 0xe6, 0xae, 0x1c, 0xa5, 0x5d, 0xbb, 0xd6, + 0x27, 0x69, 0x64, 0x5d, 0xd3, 0x82, 0xb7, 0xb3, + 0xc8, 0x48, 0x3f, 0x5f, 0xc6, 0x16, 0x02, 0x50, + 0x93, 0xd6, 0x87, 0x71, 0x34, 0xfd, 0x5e, 0x85, + 0xd9, 0x18, 0x22, 0x57, 0x9c, 0x48, 0xcc, 0xd0, + 0x7a, 0x95, 0x5f, 0x04, 0x02, 0xd5, 0xf7, 0xc5, + 0xcc, 0xa3, 0x3e, 0xe8, 0xb7, 0xae, 0xf5, 0xca, + 0x93, 0xe7, 0xa3, 0xfa, 0x41, 0xd1, 0xcf, 0x16, + 0xfb, 0x00, 0x94, 0xd1, 0x5a, 0x8b, 0x6d, 0xed, + 0xf5, 0x55, 0x6b, 0xde, 0x38, 0xe4, 0x8c, 0x7a, + 0xdc, 0x2e, 0x9f, 0xe0, 0xef, 0xa9, 0xfb, 0xdf, + 0x3e, 0x3c, 0x6d, 0x1d, 0xfb, 0xa2, 0x6c, 0x00, + 0xdb, 0x1b, 0xbf, 0x06, 0xf4, 0x47, 0xff, 0x00, + 0x47, 0xfc, 0x7e, 0x21, 0xbb, 0x3c, 0x83, 0xf5, + 0xaf, 0xf1, 0x66, 0x3e, 0x69, 0x63, 0xe7, 0xce, + 0x3a, 0x6e, 0xfe, 0xd1, 0x0a, 0xba, 0xfa, 0xa8, + 0xf2, 0xda, 0x28, 0xa4, 0x33, 0xdb, 0xe7, 0x07, + 0x50, 0xc9, 0x25, 0xd8, 0x7a, 0x93, 0x9d, 0x2f, + 0xcf, 0x8a, 0x58, 0x38, 0x3e, 0x71, 0xfc, 0x64, + 0xef, 0xed, 0x0d, 0xd6, 0x5c, 0x59, 0x8f, 0x7b, + 0xe8, 0xd1, 0x53, 0x5d, 0xdd, 0xbe, 0xdb, 0x4e, + 0xa0, 0x99, 0xdd, 0x24, 0xbf, 0xad, 0x30, 0x6d, + 0x37, 0x69, 0xc4, 0x75, 0x31, 0x95, 0xf3, 0x9f, + 0xfb, 0x56, 0x3b, 0xfb, 0x45, 0x95, 0x2d, 0xaa, + 0xda, 0x8c, 0xf3, 0x69, 0x55, 0xea, 0xc5, 0xc9, + 0xa0, 0x33, 0x01, 0x76, 0x32, 0xfc, 0xaf, 0x60, + 0x1b, 0x2d, 0xc9, 0xa7, 0xe1, 0xb1, 0x0d, 0x6f, + 0x2d, 0x1e, 0x4e, 0x41, 0xf3, 0xbe, 0xc7, 0xe9, + 0x03, 0x41, 0xdb, 0x69, 0x20, 0xb2, 0x92, 0xf2, + 0xe9, 0xf5, 0xa0, 0x85, 0xad, 0x76, 0xf9, 0xcf, + 0xab, 0x46, 0x91, 0xa7, 0xf5, 0x21, 0x2c, 0x01, + 0x35, 0x05, 0xde, 0x12, 0xa4, 0x18, 0x2f, 0x1a, + 0x8f, 0xa8, 0x59, 0xb7, 0x16, 0x9f, 0xf4, 0x89, + 0xa2, 0x94, 0xbc, 0xb0, 0x49, 0x5f, 0xeb, 0xd4, + 0xab, 0x0d, 0x61, 0x63, 0x41, 0x79, 0x47, 0x34, + 0x65, 0x8c, 0xe6, 0xe1, 0x36, 0x59, 0xa7, 0xac, + 0x4b, 0x7e, 0xad, 0x16, 0x4f, 0x08, 0xf0, 0x7c, + 0x0f, 0x36, 0xbf, 0x48, 0x9a, 0x34, 0xab, 0xa8, + 0xf1, 0x49, 0x57, 0x36, 0x21, 0xa4, 0x95, 0xbd, + 0x47, 0x6f, 0xc9, 0x20, 0xe4, 0x87, 0xfa, 0x47, + 0xad, 0xfd, 0x60, 0x99, 0xa1, 0x3e, 0x7d, 0x2a, + 0x2e, 0x4c, 0x5f, 0xd9, 0xe6, 0xd7, 0xe9, 0x07, + 0x45, 0x71, 0xa8, 0x88, 0x25, 0xac, 0x7d, 0x40, + 0xa7, 0xe9, 0x3d, 0x5e, 0x83, 0x24, 0xfe, 0x63, + 0x3b, 0xac, 0x8b, 0xcc, 0x65, 0x26, 0x74, 0xdc, + 0x48, 0xa4, 0xa0, 0x9e, 0x05, 0xda, 0xa7, 0xf2, + 0xf5, 0x63, 0xbf, 0xf4, 0x29, 0x06, 0xa0, 0x22, + 0x34, 0xc0, 0x9d, 0xa9, 0x9a, 0xa2, 0xc6, 0x81, + 0x24, 0xbe, 0x21, 0xda, 0x6c, 0x7a, 0xd3, 0xcc, + 0x4c, 0xe7, 0x39, 0xf4, 0x84, 0x1f, 0xa5, 0xe3, + 0x38, 0xc7, 0x56, 0x3b, 0xff, 0x00, 0x42, 0x90, + 0xea, 0x1c, 0x5e, 0x8b, 0xf5, 0x89, 0xa9, 0x35, + 0x6e, 0x7d, 0x06, 0x56, 0xcc, 0x70, 0xec, 0xe7, + 0xf5, 0xd8, 0x98, 0x99, 0xa5, 0xf0, 0xde, 0x95, + 0x94, 0xe2, 0x3f, 0x6e, 0x71, 0xf6, 0x97, 0xbf, + 0xf4, 0x27, 0x37, 0x76, 0x3d, 0x00, 0xb3, 0xdb, + 0xa7, 0x24, 0x1c, 0xda, 0x04, 0xef, 0x98, 0x62, + 0xe3, 0xe7, 0x37, 0x31, 0x21, 0xe5, 0xb2, 0x36, + 0x9f, 0x4c, 0xe9, 0xe1, 0x3d, 0xb9, 0xc7, 0xda, + 0xc7, 0x7d, 0x68, 0x2c, 0x6e, 0xf1, 0x5a, 0xab, + 0x27, 0x2d, 0xea, 0x73, 0xc0, 0xd3, 0xe8, 0x13, + 0x82, 0xf0, 0xc2, 0x22, 0x13, 0x3d, 0xc5, 0x42, + 0xc1, 0xee, 0x65, 0x18, 0xd7, 0x91, 0x49, 0x58, + 0xfd, 0xa3, 0x23, 0x1e, 0x25, 0xef, 0xbd, 0x06, + 0x43, 0x6f, 0x13, 0xd1, 0xfa, 0xba, 0x8d, 0x6b, + 0x10, 0xf2, 0xe8, 0x76, 0xce, 0x6b, 0xc6, 0x22, + 0xe4, 0x36, 0xf6, 0xf9, 0x96, 0xf8, 0xda, 0x78, + 0x25, 0x19, 0x55, 0xf6, 0xe4, 0x8f, 0x91, 0x2f, + 0x7d, 0x76, 0xfb, 0x73, 0x98, 0xe7, 0xa1, 0xef, + 0xd4, 0xa0, 0xb1, 0x17, 0x2e, 0x89, 0x70, 0xfe, + 0xab, 0x18, 0x8f, 0x7b, 0xd8, 0xc2, 0x36, 0xfd, + 0x40, 0x6d, 0x6e, 0x29, 0x57, 0x28, 0xbe, 0xd1, + 0x91, 0xf6, 0x97, 0xbe, 0xbb, 0x76, 0x4e, 0x5c, + 0x58, 0xd3, 0x8e, 0xed, 0x56, 0x1b, 0x51, 0xf2, + 0x68, 0xb7, 0xbc, 0xd5, 0x4e, 0x3d, 0xf2, 0x4e, + 0x44, 0x47, 0x76, 0xa6, 0x36, 0xb7, 0x14, 0xc3, + 0x31, 0x8c, 0x2f, 0xbb, 0x1f, 0x12, 0x77, 0xce, + 0x82, 0xc5, 0xf6, 0xda, 0xd3, 0x0e, 0x75, 0x78, + 0xed, 0xa7, 0x26, 0x8b, 0x77, 0xfa, 0x2a, 0x6c, + 0xfa, 0xd2, 0x7d, 0x03, 0xbb, 0x54, 0x04, 0x1c, + 0x4c, 0x3d, 0x83, 0x03, 0x0d, 0xd3, 0xf7, 0xbf, + 0x6f, 0xe5, 0xb6, 0x58, 0xd2, 0xc8, 0x3a, 0xba, + 0x5a, 0xf7, 0x68, 0xb7, 0xcf, 0xea, 0x8a, 0x17, + 0xeb, 0x36, 0x60, 0xff, 0x00, 0x1a, 0x03, 0x9c, + 0x4a, 0xbf, 0x4c, 0x60, 0x61, 0xba, 0x7e, 0xf2, + 0xed, 0xd2, 0xcc, 0xc2, 0xd5, 0x03, 0xbb, 0x56, + 0x4b, 0x5e, 0x74, 0xad, 0x47, 0x68, 0xa6, 0x9f, + 0xe5, 0xb1, 0xc1, 0xe3, 0x56, 0xc9, 0xfd, 0xa8, + 0x06, 0x33, 0x81, 0xef, 0xf1, 0x8e, 0x8f, 0x79, + 0x68, 0x07, 0xfc, 0xbd, 0x03, 0xfe, 0x17, 0xf5, + 0x7e, 0x74, 0xcd, 0x43, 0xfa, 0x27, 0xda, 0x6f, + 0xd8, 0x7f, 0x8c, 0xff, 0x00, 0xd6, 0x7e, 0xcf, + 0xc7, 0x86, 0xeb, 0xfb, 0xb2, 0xed, 0xdf, 0x1f, + 0x53, 0x4d, 0x6f, 0xf0, 0xc7, 0xab, 0xf3, 0xa6, + 0xea, 0x38, 0x14, 0xfe, 0xd3, 0xa8, 0xe0, 0x18, + 0xd5, 0x73, 0x8c, 0xbf, 0xec, 0xb1, 0xe4, 0x13, + 0xf6, 0xfe, 0xed, 0x74, 0x1f, 0x66, 0x3f, 0x05, + 0xf6, 0xeb, 0x2d, 0x6b, 0xdd, 0xa5, 0x6a, 0x79, + 0x5a, 0x2d, 0xbb, 0xeb, 0x2e, 0x22, 0xff, 0x00, + 0x1a, 0x1f, 0x1b, 0x9f, 0xf6, 0x47, 0x3f, 0x3d, + 0x37, 0x75, 0xf6, 0xfb, 0xc9, 0x14, 0x9c, 0xda, + 0x5c, 0x7b, 0x75, 0x49, 0x67, 0x74, 0x4d, 0x3b, + 0x52, 0x08, 0x2a, 0xb1, 0x73, 0x1d, 0xa4, 0x56, + 0x81, 0xb6, 0xea, 0x99, 0x24, 0x48, 0xea, 0x52, + 0x27, 0x57, 0x6d, 0xdb, 0x98, 0x21, 0x51, 0xdd, + 0x5a, 0x11, 0x84, 0xc5, 0xcf, 0xa3, 0x2e, 0xed, + 0x52, 0xd5, 0x9c, 0xb6, 0x9d, 0xaa, 0x65, 0x2b, + 0x3c, 0x33, 0x2c, 0x76, 0x21, 0xdb, 0x59, 0xb1, + 0xaa, 0x39, 0x71, 0xbd, 0x88, 0xe2, 0xc9, 0x27, + 0x70, 0x1e, 0x7f, 0xf7, 0xdb, 0xfe, 0x1f, 0xfa, + 0xef, 0xff, 0xc4, 0x00, 0x48, 0x11, 0x00, 0x02, + 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x03, 0x07, + 0x08, 0x08, 0x06, 0x03, 0x00, 0x00, 0x01, 0x02, + 0x03, 0x11, 0x12, 0x04, 0x21, 0x00, 0x13, 0x22, + 0x31, 0x05, 0x23, 0x32, 0x41, 0x14, 0x51, 0x61, + 0x33, 0x52, 0x71, 0x06, 0x15, 0x42, 0x62, 0x81, + 0x91, 0xa1, 0x10, 0x24, 0x43, 0x72, 0xb1, 0xc1, + 0xd3, 0xf0, 0x16, 0x30, 0x53, 0x63, 0x64, 0x92, + 0xd1, 0xe1, 0x20, 0x54, 0x60, 0x70, 0x82, 0x93, + 0xd2, 0xe2, 0xf1, 0xff, 0xda, 0x00, 0x08, 0x01, + 0x02, 0x01, 0x01, 0x3f, 0x01, 0xff, 0x00, 0xd8, + 0x29, 0x25, 0x11, 0x83, 0x48, 0xf2, 0x10, 0x47, + 0x44, 0x60, 0x65, 0xbf, 0xf5, 0xd9, 0x17, 0xf1, + 0xea, 0xfe, 0x3c, 0x7c, 0x59, 0xff, 0x00, 0xca, + 0xea, 0xbf, 0xe5, 0x87, 0xfc, 0x6e, 0x3e, 0x37, + 0xfe, 0x13, 0x57, 0xfb, 0x16, 0x1f, 0xf1, 0xb8, + 0xd5, 0x7e, 0x51, 0x68, 0xb4, 0x4e, 0x23, 0xd5, + 0x45, 0xab, 0x85, 0xca, 0x87, 0x0a, 0xd1, 0x29, + 0xb4, 0x24, 0x80, 0x41, 0x59, 0x18, 0x77, 0x52, + 0x3b, 0xf7, 0x1c, 0x7f, 0xa5, 0xde, 0x13, 0xff, + 0x00, 0x15, 0xff, 0x00, 0xd2, 0xbf, 0xe2, 0x71, + 0xfe, 0x97, 0x78, 0x4f, 0xcb, 0x55, 0xff, 0x00, + 0xd2, 0xbf, 0xe2, 0x71, 0x1f, 0xe5, 0x37, 0x87, + 0x4c, 0x6a, 0x34, 0xd5, 0xb9, 0xd8, 0x6d, 0x00, + 0x3d, 0xfb, 0x76, 0x7e, 0x17, 0xc5, 0xb4, 0xcc, + 0xd8, 0x85, 0x9b, 0x2a, 0xb2, 0xad, 0x18, 0x52, + 0x07, 0x7f, 0x76, 0xfe, 0x03, 0x73, 0xed, 0xc0, + 0xf1, 0x38, 0x1b, 0x1a, 0x49, 0xba, 0x94, 0xb0, + 0xe8, 0x5f, 0x48, 0xee, 0x4f, 0x5f, 0xf0, 0xf5, + 0x7d, 0x38, 0xfc, 0xe5, 0x01, 0xc4, 0xe1, 0x30, + 0xc8, 0x16, 0x16, 0xab, 0xe9, 0x1e, 0xfb, 0x39, + 0xef, 0xf2, 0xf5, 0x7d, 0x38, 0x1e, 0x23, 0x09, + 0xae, 0x89, 0xb7, 0x56, 0x7f, 0x4a, 0xfa, 0x17, + 0xf4, 0xbd, 0x7f, 0x5d, 0x87, 0xab, 0xf5, 0x78, + 0xfc, 0xe7, 0x0f, 0x47, 0x44, 0xdd, 0x6b, 0x98, + 0xe9, 0x4f, 0x47, 0xde, 0x34, 0xe6, 0xaf, 0xd8, + 0x6e, 0xdf, 0x4e, 0x1b, 0xc5, 0xf4, 0xca, 0x63, + 0x52, 0x93, 0xe5, 0x29, 0xe9, 0x1c, 0xb1, 0x7d, + 0xc0, 0x16, 0x73, 0xc5, 0x6c, 0x9f, 0x73, 0xdb, + 0x73, 0x43, 0x81, 0xe2, 0xfa, 0x63, 0x2f, 0x23, + 0x19, 0xb9, 0xa2, 0x3e, 0x76, 0x07, 0x94, 0x3c, + 0xab, 0xac, 0xaf, 0x9b, 0x89, 0xdf, 0x6a, 0xbb, + 0xed, 0xb7, 0x1f, 0x9e, 0xf4, 0x76, 0x57, 0x19, + 0xad, 0x58, 0xab, 0x52, 0x21, 0xa2, 0x36, 0x23, + 0x69, 0x0f, 0x6e, 0x3f, 0x3d, 0x69, 0x3e, 0xe4, + 0xff, 0x00, 0xf2, 0x2f, 0xff, 0x00, 0x9f, 0x03, + 0xc5, 0xf4, 0xb4, 0x0b, 0x09, 0x13, 0x2f, 0x4e, + 0x48, 0x2d, 0xbd, 0x86, 0xca, 0xcc, 0x40, 0x3e, + 0xc4, 0xd0, 0x3f, 0x3e, 0x13, 0xc4, 0xa2, 0x72, + 0x55, 0x63, 0x96, 0xc0, 0xcb, 0xfa, 0x20, 0x31, + 0xf9, 0x86, 0x32, 0x62, 0xc3, 0xf0, 0x27, 0xf7, + 0xf0, 0x3c, 0x4e, 0x16, 0xed, 0x1c, 0xbd, 0x81, + 0xfe, 0x86, 0xb7, 0x35, 0xdf, 0x9d, 0x5d, 0xc8, + 0xda, 0xff, 0x00, 0x87, 0x0b, 0xe2, 0xfa, 0x76, + 0x8d, 0x25, 0xe5, 0xce, 0x23, 0x92, 0xf0, 0x25, + 0x14, 0x5e, 0x26, 0x8f, 0x49, 0x7b, 0xfc, 0x2c, + 0x0b, 0xd8, 0xfb, 0xf1, 0xf9, 0xc2, 0x2d, 0xba, + 0x25, 0xed, 0x95, 0x52, 0x58, 0x43, 0xd9, 0xcf, + 0x5d, 0x57, 0xd0, 0x1c, 0xbb, 0xed, 0x5c, 0x7c, + 0x74, 0x5f, 0x76, 0x4f, 0x9f, 0xe8, 0x7a, 0x7e, + 0xf9, 0xeb, 0xd8, 0x7d, 0x3d, 0x7f, 0xab, 0xc7, + 0xc6, 0xc7, 0xdf, 0x09, 0x37, 0x19, 0x57, 0x45, + 0x95, 0xfb, 0xfb, 0xbe, 0xc3, 0xf1, 0xa6, 0xfa, + 0x71, 0xf1, 0xb1, 0xef, 0xd2, 0xfb, 0x0b, 0xfe, + 0x8f, 0x75, 0xfb, 0xc3, 0xaf, 0xb7, 0xd0, 0xd3, + 0x7e, 0xae, 0xdc, 0x1d, 0x74, 0x7e, 0xc8, 0xe7, + 0x60, 0x47, 0x54, 0x42, 0xd6, 0xea, 0xfa, 0xa5, + 0x15, 0xf8, 0x35, 0x1f, 0x90, 0x3b, 0xff, 0x00, + 0x23, 0x7a, 0x9b, 0xf6, 0x7f, 0x67, 0x07, 0x8c, + 0xab, 0xdb, 0x8f, 0x1c, 0x57, 0x6d, 0x52, 0x60, + 0x91, 0x31, 0x28, 0x82, 0xe4, 0x8d, 0x1f, 0x70, + 0xd6, 0x2b, 0x20, 0x69, 0x6c, 0xee, 0x0e, 0xdd, + 0xf8, 0x7f, 0x0c, 0x64, 0xd8, 0x80, 0x3f, 0x02, + 0x0f, 0x60, 0x0f, 0xb7, 0xf5, 0x87, 0xf9, 0x07, + 0x8f, 0x08, 0xf0, 0x38, 0x75, 0x32, 0x84, 0xd4, + 0xc4, 0x4a, 0x32, 0x97, 0x59, 0x32, 0x22, 0xeb, + 0x6c, 0x71, 0x0c, 0x3b, 0x90, 0x77, 0xf6, 0x00, + 0xfc, 0xc7, 0x1a, 0x5f, 0xc9, 0xdd, 0x36, 0x8d, + 0xb9, 0x91, 0xea, 0xa5, 0x72, 0xc3, 0x64, 0x78, + 0x96, 0x86, 0x2d, 0x41, 0xf6, 0x6f, 0x52, 0x92, + 0x40, 0x3b, 0xf7, 0x3f, 0x3e, 0x1a, 0x26, 0x49, + 0x44, 0xfa, 0xb4, 0x66, 0x63, 0x2c, 0x80, 0x79, + 0x8a, 0x23, 0xd3, 0x89, 0x05, 0x46, 0xac, 0xc9, + 0x8a, 0xf2, 0xf6, 0x55, 0x4c, 0x83, 0x9c, 0x98, + 0x0d, 0xcf, 0x11, 0xcd, 0x1e, 0x31, 0xe5, 0xa5, + 0x91, 0x1c, 0x29, 0x04, 0x6e, 0xdb, 0xff, 0x00, + 0x58, 0x77, 0x20, 0xff, 0x00, 0xfc, 0xdb, 0x8f, + 0x89, 0xd2, 0xee, 0x0c, 0x2d, 0x6a, 0xa5, 0x1b, + 0xe7, 0x95, 0x59, 0xdb, 0xbe, 0x55, 0xbd, 0x1f, + 0xd9, 0xc4, 0x73, 0xe9, 0xe6, 0xba, 0xd3, 0x4f, + 0xd2, 0xa3, 0x72, 0x92, 0x85, 0x6c, 0x85, 0xf4, + 0xda, 0x75, 0x6c, 0x77, 0x1b, 0xe3, 0xfb, 0xf8, + 0x63, 0x1d, 0x5a, 0xe8, 0xe6, 0x2d, 0x8d, 0x56, + 0x12, 0x8c, 0x98, 0x5d, 0x6e, 0x55, 0x54, 0x7e, + 0xd3, 0x43, 0x89, 0xe2, 0x28, 0x63, 0x3c, 0x93, + 0x1e, 0x24, 0x06, 0x47, 0x6b, 0x12, 0xfd, 0xec, + 0x64, 0x17, 0xb7, 0xb0, 0x23, 0xeb, 0xc3, 0x8a, + 0x94, 0xb9, 0x48, 0xc4, 0x7c, 0xac, 0x04, 0x56, + 0xc4, 0xf3, 0x37, 0xa9, 0x32, 0xd9, 0xab, 0xb5, + 0xa5, 0x81, 0xb5, 0x86, 0xbe, 0x02, 0xa4, 0x72, + 0x4a, 0xf1, 0xb6, 0x26, 0x42, 0x19, 0x94, 0x21, + 0xc4, 0x55, 0xd1, 0x0a, 0x49, 0xa3, 0xbe, 0xed, + 0x56, 0xdb, 0x5d, 0xf0, 0x8f, 0x33, 0xf2, 0xc9, + 0x94, 0x44, 0xd9, 0x5b, 0xa7, 0x2c, 0x38, 0x64, + 0x0c, 0x76, 0xcf, 0xa6, 0xb3, 0x14, 0x6f, 0xf4, + 0x7b, 0x71, 0xa6, 0xd4, 0x69, 0x61, 0x3a, 0x83, + 0xaa, 0x8b, 0x31, 0x35, 0x18, 0x9b, 0x97, 0xcc, + 0xe8, 0xaa, 0x11, 0x7e, 0xab, 0x2f, 0x6f, 0xc4, + 0x6f, 0x55, 0xc6, 0x66, 0x15, 0x8d, 0xbd, 0x2d, + 0xe6, 0x30, 0x1b, 0x64, 0x15, 0xf6, 0x41, 0xf8, + 0xd6, 0x47, 0xf0, 0x60, 0xc3, 0xbf, 0x12, 0xcd, + 0xa9, 0x7e, 0x5c, 0x6a, 0xd5, 0xa7, 0x40, 0x8a, + 0x22, 0x0d, 0x82, 0x85, 0x59, 0x55, 0xbb, 0x2a, + 0xf7, 0x0a, 0xb5, 0x64, 0xd9, 0xf4, 0x93, 0x8d, + 0xf0, 0x1f, 0xb7, 0x4a, 0xd1, 0xa0, 0x2d, 0xd7, + 0xf0, 0xe0, 0xca, 0x90, 0x77, 0xd3, 0x86, 0xb5, + 0x4f, 0xb1, 0x7e, 0x6d, 0x3b, 0x9a, 0x04, 0xe3, + 0xed, 0x7f, 0xa2, 0x7a, 0x45, 0x9d, 0xb8, 0x56, + 0x24, 0x92, 0xba, 0x57, 0xf4, 0x8e, 0xfb, 0x75, + 0x7b, 0x9e, 0xc4, 0x57, 0xea, 0xf6, 0xe1, 0x1c, + 0x96, 0x09, 0xf0, 0xcd, 0x74, 0x14, 0x36, 0xf8, + 0x87, 0xed, 0x64, 0xe3, 0x41, 0x7d, 0xca, 0xf6, + 0xfe, 0xe6, 0x9e, 0x28, 0xe4, 0xe5, 0x48, 0x84, + 0x39, 0x4f, 0x4f, 0x5b, 0x1b, 0x21, 0xcf, 0x30, + 0x60, 0xad, 0xe5, 0xf4, 0x1d, 0xfd, 0x36, 0x40, + 0x06, 0xcf, 0x06, 0xec, 0x11, 0x14, 0x6c, 0x86, + 0x30, 0xf7, 0xcd, 0x50, 0x41, 0xb8, 0xda, 0xf0, + 0xf5, 0x74, 0x86, 0x07, 0x1b, 0xef, 0xd1, 0x56, + 0x0e, 0x3c, 0x37, 0xa9, 0xbf, 0x67, 0x07, 0x86, + 0x1f, 0xc7, 0x83, 0x14, 0x72, 0x6b, 0x13, 0x34, + 0x0f, 0xd2, 0xbe, 0xa1, 0x90, 0xee, 0xfe, 0xc7, + 0x61, 0xd8, 0x7e, 0x3c, 0x6b, 0x34, 0x7a, 0x7e, + 0x40, 0x2b, 0x04, 0x6a, 0xd9, 0x77, 0x58, 0xd4, + 0x1d, 0xd4, 0xfc, 0x97, 0xf6, 0xfe, 0xce, 0x34, + 0x29, 0x84, 0xea, 0xb5, 0x4a, 0xb1, 0x3f, 0xd0, + 0x1e, 0xa7, 0xbf, 0xf3, 0xbf, 0xe3, 0xed, 0xc0, + 0xae, 0x8d, 0xfb, 0x03, 0xb7, 0xb6, 0xf2, 0x02, + 0x47, 0xf1, 0xdb, 0x7b, 0xf9, 0xf1, 0xa8, 0x29, + 0xa6, 0x96, 0x6d, 0x56, 0x2b, 0x6c, 0x02, 0xb6, + 0x4c, 0xe0, 0x60, 0xb4, 0x9e, 0xd9, 0xe2, 0x57, + 0x22, 0x41, 0x55, 0xb2, 0x7b, 0x9a, 0xdc, 0x48, + 0x8f, 0x12, 0xb8, 0x8d, 0x94, 0xba, 0x6a, 0x66, + 0x70, 0x90, 0xb9, 0x88, 0xe3, 0x34, 0x8c, 0xc0, + 0x48, 0x40, 0x4b, 0xc6, 0x39, 0x33, 0x2a, 0xc5, + 0xb2, 0x22, 0xf2, 0x63, 0x44, 0xf3, 0x65, 0x93, + 0x62, 0x5f, 0x4f, 0x2b, 0xc8, 0xce, 0x99, 0xbd, + 0x48, 0x65, 0x58, 0xf0, 0xe7, 0x0e, 0xa2, 0x18, + 0x88, 0xce, 0x36, 0x7b, 0x0e, 0xfb, 0x70, 0x93, + 0xcc, 0xcb, 0x7c, 0xd6, 0x04, 0x12, 0xb4, 0xf2, + 0x4c, 0xad, 0xd2, 0x6a, 0xfb, 0xfb, 0xf7, 0x04, + 0x6c, 0x47, 0xd3, 0x86, 0x9e, 0x75, 0xc5, 0x8c, + 0xec, 0x10, 0x1e, 0xb2, 0x8f, 0x33, 0x37, 0xc9, + 0x68, 0x6e, 0x4f, 0x55, 0x5e, 0xdd, 0xaf, 0x83, + 0x02, 0xcf, 0x7c, 0xdd, 0x64, 0xf2, 0x34, 0x4e, + 0x51, 0x96, 0x24, 0xf2, 0x56, 0x5e, 0xee, 0x05, + 0x27, 0xaa, 0xd9, 0x77, 0xb6, 0x63, 0xb8, 0x27, + 0xe4, 0xba, 0x38, 0xfc, 0xdc, 0x9e, 0x79, 0x02, + 0x80, 0xf1, 0xd2, 0xa8, 0xf8, 0x85, 0x2c, 0xc3, + 0x94, 0x81, 0xb1, 0x3c, 0xcb, 0x00, 0x1b, 0xa4, + 0x25, 0xd7, 0x7a, 0xba, 0xd3, 0xf8, 0x64, 0xc5, + 0x4c, 0xc4, 0x43, 0x7f, 0x0d, 0xcb, 0x99, 0xfe, + 0x18, 0xa4, 0xa6, 0x3b, 0x6c, 0x15, 0x10, 0x24, + 0x84, 0xba, 0xd0, 0x15, 0x6f, 0xd7, 0x91, 0xdc, + 0x30, 0x1c, 0x4d, 0xa0, 0xd4, 0x40, 0xca, 0x89, + 0x18, 0x99, 0x79, 0x6a, 0xc1, 0xde, 0x22, 0xdf, + 0x35, 0xa6, 0x76, 0x44, 0x5c, 0xf1, 0x0b, 0x90, + 0xf6, 0xf7, 0xef, 0xbb, 0x6a, 0xb5, 0x3a, 0x77, + 0x64, 0xb4, 0x88, 0xd9, 0xda, 0xb1, 0xed, 0x90, + 0x3b, 0xd8, 0xe9, 0xa3, 0xdf, 0xf0, 0x37, 0xc0, + 0xcb, 0x1c, 0xa4, 0x31, 0xe7, 0x8b, 0x9f, 0x44, + 0x7c, 0xb0, 0x47, 0x52, 0x5d, 0xae, 0xf6, 0x48, + 0xb6, 0x27, 0xd1, 0xbd, 0xf1, 0xa2, 0xe7, 0x3a, + 0xc8, 0x2a, 0x38, 0xf1, 0x97, 0x93, 0x97, 0x26, + 0x39, 0x03, 0x64, 0x08, 0x5e, 0xa5, 0x53, 0xde, + 0xdb, 0x6d, 0xce, 0xd9, 0x1a, 0xe3, 0x54, 0xa4, + 0xc2, 0x62, 0x9d, 0x91, 0xa1, 0x96, 0x86, 0xf1, + 0x85, 0x06, 0x80, 0x65, 0x65, 0xb3, 0xec, 0x02, + 0xb2, 0x11, 0xba, 0xec, 0x76, 0x35, 0xc6, 0x9c, + 0xf3, 0xb5, 0x28, 0xd1, 0x4a, 0xc1, 0x63, 0xe4, + 0xe9, 0xda, 0x84, 0x94, 0xc1, 0x37, 0x07, 0x96, + 0x9b, 0x3b, 0x10, 0xd6, 0xcd, 0xb9, 0x72, 0x49, + 0x3b, 0xf7, 0xd7, 0xf3, 0x0a, 0x47, 0xca, 0x95, + 0xd5, 0x98, 0xb6, 0xe0, 0x4b, 0x0d, 0x5a, 0xa9, + 0xfd, 0x25, 0x19, 0x01, 0x62, 0x86, 0xf4, 0x00, + 0xf6, 0x3b, 0xe8, 0xa7, 0xd4, 0x07, 0x9b, 0xcc, + 0x2e, 0xf1, 0x91, 0x13, 0x33, 0xc8, 0x5d, 0x47, + 0xa6, 0x50, 0x56, 0x3b, 0x20, 0x10, 0x0d, 0x1c, + 0xa8, 0x9d, 0xf6, 0xae, 0x34, 0xe2, 0x37, 0xd1, + 0x09, 0x35, 0x14, 0x52, 0x07, 0x96, 0x37, 0x95, + 0xa5, 0x32, 0xc8, 0x02, 0x4c, 0xc8, 0xa9, 0x9b, + 0x2a, 0xec, 0x0b, 0xa0, 0xc3, 0xd2, 0x94, 0x45, + 0x9f, 0x7f, 0xcd, 0x60, 0x22, 0xbc, 0x12, 0xc9, + 0x12, 0x12, 0x49, 0x44, 0xc5, 0x84, 0xbe, 0x9d, + 0x9f, 0x60, 0x69, 0x7b, 0x6c, 0x54, 0xf7, 0xef, + 0xc0, 0x36, 0x2f, 0x86, 0xf5, 0xb5, 0xfd, 0x2b, + 0xf7, 0x70, 0x78, 0xef, 0xc6, 0xa8, 0x4b, 0xce, + 0x56, 0x46, 0x02, 0x90, 0x7e, 0x95, 0x37, 0x73, + 0xbf, 0xf0, 0x35, 0x5c, 0x07, 0x59, 0x23, 0x54, + 0xe7, 0xb4, 0x92, 0xd0, 0x60, 0xac, 0x7d, 0xc8, + 0xbc, 0x77, 0x3e, 0xd7, 0xdf, 0xe9, 0xc6, 0x90, + 0x11, 0xa8, 0x5c, 0xa8, 0x54, 0x67, 0xfb, 0x49, + 0xfe, 0xfb, 0xe1, 0xd6, 0x3c, 0x76, 0xc0, 0x7d, + 0x45, 0x7c, 0xef, 0xf8, 0x9e, 0x0c, 0x29, 0xaa, + 0x33, 0x92, 0xe9, 0x24, 0x2f, 0xb2, 0x26, 0x17, + 0x19, 0x8e, 0x88, 0x94, 0x33, 0x7e, 0x9e, 0x44, + 0x50, 0x50, 0xa3, 0xff, 0x00, 0x96, 0xe7, 0x89, + 0x60, 0x8f, 0x10, 0xc3, 0xe1, 0x32, 0x86, 0x52, + 0xf2, 0xc8, 0xb1, 0xfa, 0x55, 0x73, 0x50, 0x80, + 0xf3, 0x2d, 0x64, 0xe4, 0x10, 0xac, 0xfb, 0xdb, + 0x21, 0x11, 0xaf, 0x65, 0x1a, 0x6f, 0x0a, 0x9f, + 0x5f, 0x2b, 0xbc, 0x8e, 0x62, 0x84, 0xca, 0xcd, + 0x10, 0x87, 0x1c, 0xa4, 0x0c, 0xb7, 0x82, 0x30, + 0x51, 0x8c, 0x71, 0xb7, 0xf4, 0x83, 0xed, 0x53, + 0xa4, 0xd1, 0x27, 0x1d, 0x67, 0x81, 0x4b, 0x04, + 0x41, 0xd2, 0xa5, 0x7c, 0xae, 0x45, 0xdd, 0x41, + 0x4f, 0x94, 0x58, 0xef, 0xcc, 0x1f, 0x23, 0xb3, + 0x0f, 0xae, 0xc4, 0x29, 0x72, 0x42, 0x46, 0xdd, + 0x3d, 0xc0, 0x37, 0x5d, 0xce, 0xf7, 0xfd, 0x52, + 0x7f, 0x67, 0x0f, 0x2c, 0xad, 0x92, 0xb2, 0xc7, + 0xbe, 0x4a, 0xde, 0x4c, 0x59, 0x75, 0x6c, 0xdd, + 0x41, 0x32, 0x04, 0xd7, 0x70, 0x6e, 0xc0, 0x37, + 0xb7, 0x1a, 0x36, 0x63, 0x1d, 0x11, 0x0f, 0x96, + 0xd1, 0xa2, 0x5c, 0x29, 0x78, 0x60, 0xe7, 0x1b, + 0x58, 0xd8, 0xf7, 0x50, 0x6c, 0x9f, 0x6b, 0xb2, + 0x7b, 0xe8, 0x87, 0x43, 0x86, 0x97, 0x26, 0xaf, + 0x5a, 0x46, 0xaa, 0xe8, 0x0b, 0x3d, 0x52, 0xaa, + 0x05, 0x38, 0xad, 0x22, 0xd8, 0x63, 0xd3, 0xda, + 0xef, 0x89, 0xe5, 0x58, 0x66, 0x4d, 0x49, 0x3a, + 0x89, 0x44, 0x68, 0xaa, 0xca, 0x3a, 0x53, 0x19, + 0x64, 0x55, 0xe6, 0x63, 0x8a, 0xab, 0xc9, 0xb1, + 0x67, 0xb7, 0xc9, 0x15, 0x7a, 0x53, 0xac, 0xf1, + 0xe3, 0xf2, 0xc5, 0x32, 0xc0, 0xe6, 0x22, 0x42, + 0xe5, 0x33, 0x0e, 0x48, 0x94, 0xf2, 0x63, 0x02, + 0x49, 0xcb, 0x85, 0x39, 0x08, 0x96, 0x3b, 0xe6, + 0x6e, 0x41, 0x07, 0x12, 0x3d, 0xb8, 0xf8, 0xdd, + 0x14, 0x70, 0x0a, 0x85, 0xf9, 0x61, 0xaa, 0xcc, + 0x08, 0x23, 0xe5, 0x92, 0x7c, 0xdb, 0x61, 0x40, + 0x20, 0x06, 0x86, 0x57, 0xde, 0x90, 0xf0, 0x53, + 0x4d, 0xa9, 0x68, 0xd5, 0x18, 0x46, 0x24, 0x17, + 0xb0, 0x54, 0x61, 0xe5, 0x80, 0x24, 0x14, 0x14, + 0x86, 0xaf, 0x4b, 0x50, 0x1b, 0x9c, 0x4f, 0x1e, + 0x20, 0x34, 0xf0, 0x4c, 0xb0, 0x86, 0x67, 0x65, + 0x09, 0x10, 0xc4, 0x03, 0x18, 0x5c, 0x32, 0xe6, + 0x48, 0x4f, 0xe9, 0x76, 0x4b, 0xef, 0xd8, 0x1e, + 0x03, 0x68, 0xf4, 0xf1, 0xb4, 0x7c, 0xb9, 0xa8, + 0x09, 0x64, 0x63, 0xa7, 0xf4, 0xa4, 0x6b, 0x4d, + 0x34, 0xc7, 0x6c, 0x82, 0xc7, 0x99, 0x67, 0x65, + 0x24, 0xd9, 0x50, 0xa0, 0x9b, 0xe3, 0x45, 0x11, + 0x97, 0x49, 0xa9, 0x92, 0x32, 0x03, 0x06, 0x92, + 0x34, 0x69, 0x9a, 0x59, 0x42, 0x88, 0xbb, 0x51, + 0x12, 0x28, 0xca, 0xf3, 0xde, 0xc3, 0x6c, 0xb7, + 0xb7, 0x0e, 0xc1, 0x67, 0x62, 0xd2, 0x03, 0x19, + 0x68, 0x15, 0x14, 0xca, 0x62, 0x28, 0xea, 0xa5, + 0x99, 0xd9, 0xba, 0x9d, 0xa3, 0x93, 0xa2, 0xd5, + 0xb6, 0x57, 0x4c, 0xef, 0xab, 0x82, 0x55, 0xb4, + 0xd3, 0xee, 0xd3, 0xb4, 0xf3, 0x07, 0x10, 0x44, + 0xc7, 0x9a, 0x8a, 0xd2, 0x8c, 0x55, 0x63, 0x8d, + 0xf9, 0x92, 0x05, 0x31, 0xdd, 0x91, 0x91, 0xea, + 0x62, 0x28, 0x1e, 0x21, 0x70, 0x74, 0xf1, 0xb8, + 0x1d, 0xec, 0x95, 0x02, 0x9a, 0xc9, 0xde, 0xf7, + 0xef, 0xfb, 0xab, 0x85, 0xed, 0xc7, 0x88, 0x8f, + 0xe6, 0xb2, 0x30, 0xe9, 0x6c, 0xa2, 0x19, 0x8c, + 0x15, 0x85, 0xc8, 0x8b, 0xb3, 0xb8, 0x2a, 0x3b, + 0xd5, 0x9f, 0xdd, 0x7c, 0x2c, 0x6c, 0xaa, 0x8c, + 0xda, 0x8e, 0xe4, 0x1a, 0x76, 0x56, 0x46, 0x51, + 0x7d, 0x8c, 0x61, 0x7b, 0xed, 0xda, 0xeb, 0x7b, + 0x2d, 0xc3, 0xa4, 0x8e, 0xdd, 0x2c, 0x30, 0x65, + 0x0c, 0x00, 0x73, 0x54, 0x36, 0xda, 0xda, 0xce, + 0xe2, 0xfe, 0xbf, 0xc3, 0x88, 0xf4, 0xa4, 0x77, + 0x7a, 0xde, 0xbb, 0xd9, 0xf9, 0xf6, 0xc8, 0x37, + 0x7f, 0x9e, 0xd5, 0xfb, 0xf8, 0x58, 0x74, 0xd5, + 0xd0, 0x6e, 0x64, 0x51, 0x67, 0x2a, 0xb2, 0xa0, + 0x5f, 0xbd, 0x0b, 0xed, 0x67, 0x61, 0x7c, 0x4f, + 0x32, 0x44, 0xd1, 0xc9, 0x33, 0xc9, 0x1b, 0x34, + 0x63, 0x3e, 0x5b, 0x2c, 0x88, 0x98, 0xd9, 0xea, + 0x90, 0x49, 0xb2, 0x93, 0xf7, 0xab, 0xd8, 0xd7, + 0x1f, 0x9c, 0x5c, 0xe4, 0xb0, 0x81, 0x78, 0x4a, + 0xcb, 0x2c, 0xe5, 0xa3, 0x89, 0x8c, 0x2f, 0xca, + 0x9a, 0x98, 0xb8, 0x56, 0x58, 0x9d, 0xd3, 0x99, + 0xbf, 0xa8, 0xfb, 0x8b, 0x3c, 0x49, 0xac, 0x8e, + 0x37, 0x64, 0x32, 0x1d, 0x3c, 0x50, 0xd6, 0x05, + 0x29, 0xd2, 0x56, 0x94, 0x29, 0x32, 0x98, 0x51, + 0x4c, 0xd1, 0x72, 0xad, 0x96, 0x12, 0xc5, 0x55, + 0xc1, 0x6f, 0x5d, 0xf1, 0x17, 0x86, 0xa6, 0xb1, + 0x51, 0x72, 0x65, 0x84, 0xb1, 0x32, 0xac, 0x20, + 0xc5, 0xf1, 0x06, 0xc3, 0x14, 0x27, 0xb8, 0x0c, + 0x49, 0x32, 0x36, 0xc7, 0xb8, 0x07, 0x73, 0xc6, + 0x9f, 0x4f, 0x1e, 0x96, 0x25, 0x0a, 0x80, 0x62, + 0x81, 0x40, 0x50, 0x00, 0x54, 0x51, 0x4b, 0x1a, + 0x0e, 0xc0, 0x01, 0x43, 0x81, 0xe6, 0x86, 0x0e, + 0x3a, 0x4f, 0x61, 0xee, 0x3f, 0xef, 0xfe, 0x7b, + 0x71, 0xe2, 0x1e, 0x18, 0xd0, 0xcb, 0x26, 0xab, + 0x48, 0x02, 0xcb, 0x20, 0x5e, 0x68, 0xc1, 0x5b, + 0x9b, 0xcb, 0x62, 0xca, 0x40, 0x20, 0xd4, 0x80, + 0xee, 0xd5, 0x59, 0xd5, 0xf7, 0xee, 0x27, 0x84, + 0xe9, 0x9e, 0x52, 0x26, 0x79, 0xb2, 0xd4, 0x28, + 0x48, 0xd5, 0x95, 0xef, 0x4e, 0x82, 0x59, 0x6d, + 0x45, 0x94, 0x54, 0x8c, 0x34, 0x85, 0x8c, 0x44, + 0x61, 0x44, 0x5d, 0xf1, 0xcb, 0xd4, 0xaa, 0xac, + 0x9a, 0x47, 0x2f, 0x1c, 0x91, 0x96, 0x29, 0x2a, + 0xa9, 0x52, 0xd4, 0x0c, 0x72, 0x2b, 0x98, 0x5c, + 0x9a, 0x27, 0x0d, 0x9a, 0x3e, 0x96, 0x2c, 0x41, + 0x60, 0xa3, 0x8d, 0x24, 0x7e, 0x23, 0x21, 0xda, + 0x51, 0x18, 0x00, 0x17, 0x23, 0x96, 0x9d, 0x54, + 0x7d, 0xf9, 0x7b, 0x81, 0xd5, 0x46, 0xbd, 0xbd, + 0xb8, 0xd4, 0x43, 0xe2, 0x14, 0xc5, 0xe6, 0x12, + 0x46, 0xb8, 0x9c, 0x72, 0x2c, 0x6d, 0x80, 0xdc, + 0x84, 0x4d, 0xc5, 0xdf, 0xb6, 0xd5, 0xfb, 0x78, + 0xd4, 0x54, 0xcb, 0x12, 0xcb, 0x0a, 0xc9, 0xf2, + 0x59, 0x62, 0x9a, 0xaf, 0x00, 0x36, 0xb4, 0xaa, + 0xed, 0x62, 0xc7, 0xc9, 0xb6, 0xd8, 0x34, 0x9a, + 0xa9, 0x04, 0x82, 0x1d, 0x3c, 0x26, 0x2e, 0x83, + 0x84, 0x8d, 0xf3, 0xd9, 0xba, 0x4a, 0x11, 0x40, + 0x0c, 0xc7, 0xb1, 0x66, 0x23, 0x6e, 0x14, 0xe4, + 0xfc, 0xa6, 0x56, 0x12, 0x75, 0xa8, 0x25, 0x4e, + 0x0e, 0xf0, 0x10, 0xb3, 0x24, 0x72, 0x10, 0x04, + 0x9c, 0x96, 0x21, 0x58, 0x2e, 0xea, 0x4f, 0x6f, + 0x6e, 0x30, 0x91, 0xa3, 0xce, 0xcc, 0x71, 0xe4, + 0xcc, 0x4b, 0xa8, 0x43, 0x8d, 0x15, 0xae, 0xb5, + 0xe9, 0x50, 0xc3, 0x30, 0x6b, 0xf6, 0x90, 0x78, + 0x87, 0xc3, 0x04, 0xf8, 0xca, 0x51, 0x35, 0x31, + 0x6a, 0x46, 0x51, 0x2c, 0x72, 0x44, 0x84, 0x0a, + 0x8e, 0x39, 0x27, 0x2e, 0x03, 0x36, 0x78, 0xae, + 0x69, 0xb0, 0x46, 0xdc, 0x60, 0x76, 0xe2, 0x0f, + 0x00, 0x85, 0x63, 0x18, 0x1a, 0x0d, 0x6f, 0x59, + 0x7b, 0xb3, 0x16, 0xb2, 0x6b, 0x73, 0xf5, 0xf7, + 0xef, 0xc4, 0x9f, 0x92, 0xba, 0x53, 0x19, 0x50, + 0xf2, 0x8f, 0x30, 0xcd, 0x1f, 0x9a, 0xfe, 0x5c, + 0x9f, 0x34, 0x23, 0x12, 0x06, 0xe7, 0x62, 0x68, + 0x12, 0x78, 0xe4, 0x69, 0x34, 0x72, 0x3f, 0x5a, + 0xc1, 0xa8, 0x44, 0x63, 0x51, 0x69, 0x92, 0x67, + 0x7c, 0x8b, 0x3a, 0x3b, 0x50, 0x2d, 0xea, 0xe6, + 0x55, 0x35, 0x1c, 0x98, 0x11, 0x78, 0x91, 0x37, + 0xc3, 0xe4, 0xd7, 0x26, 0x0c, 0x02, 0xda, 0xab, + 0x3a, 0x64, 0xc4, 0x0c, 0x15, 0x94, 0x01, 0x68, + 0xe4, 0x02, 0x56, 0xa8, 0x9e, 0xe5, 0x7f, 0x93, + 0xc5, 0x00, 0xf8, 0x19, 0xad, 0x82, 0x0b, 0x87, + 0xa9, 0xae, 0x87, 0x9f, 0x17, 0x7c, 0x41, 0x3f, + 0xb8, 0x1e, 0x12, 0x05, 0xd4, 0x69, 0xa2, 0x31, + 0x4a, 0x8c, 0x23, 0x05, 0x72, 0x39, 0x00, 0x77, + 0xef, 0xba, 0xe4, 0x28, 0xd8, 0xdc, 0x70, 0xa1, + 0x63, 0xe5, 0xc6, 0xb2, 0x09, 0x0a, 0xc7, 0x5d, + 0x20, 0xee, 0xd9, 0xb1, 0xa5, 0xab, 0xef, 0x95, + 0x05, 0xbf, 0x6d, 0xf8, 0x49, 0x91, 0xa7, 0x11, + 0xf3, 0x23, 0xc8, 0xa9, 0xb8, 0xac, 0xf3, 0x02, + 0xb5, 0xa8, 0x6e, 0xd8, 0xf7, 0x1f, 0x3f, 0x98, + 0xdc, 0xf1, 0xf0, 0x7c, 0xbc, 0xdd, 0xa5, 0x45, + 0x18, 0x38, 0x56, 0xdc, 0xd9, 0x65, 0x20, 0x64, + 0x3e, 0x40, 0x6f, 0x43, 0x2d, 0xf8, 0x96, 0x16, + 0x51, 0x96, 0x32, 0xce, 0xb3, 0xb0, 0x03, 0x08, + 0x99, 0xb0, 0xda, 0x98, 0x37, 0x96, 0x0e, 0x25, + 0x94, 0x9b, 0x6d, 0x81, 0x60, 0xbb, 0x71, 0xf0, + 0x05, 0x35, 0x8e, 0x5f, 0x4e, 0x66, 0x0e, 0x64, + 0x32, 0x75, 0x30, 0x49, 0x44, 0x98, 0x3c, 0x28, + 0x63, 0xc1, 0x30, 0x31, 0xc6, 0xb2, 0xac, 0xc1, + 0x9e, 0x45, 0x99, 0xa9, 0xce, 0xea, 0x02, 0xfc, + 0x34, 0xf9, 0x4d, 0xa8, 0x44, 0x6c, 0x47, 0x4b, + 0x45, 0x31, 0xc5, 0x87, 0x2c, 0x66, 0x79, 0x44, + 0xc6, 0xac, 0xe8, 0x33, 0x09, 0x0a, 0xdb, 0x0a, + 0x07, 0xaa, 0xf2, 0xaf, 0x06, 0x91, 0x5f, 0x4d, + 0x19, 0x38, 0xf3, 0x19, 0x07, 0x62, 0xa7, 0x1d, + 0xb7, 0x8f, 0xa4, 0x91, 0x92, 0x1d, 0x9a, 0xbd, + 0xfe, 0x7e, 0xf2, 0x9b, 0xc5, 0x41, 0xde, 0xef, + 0x0f, 0xbd, 0xff, 0x00, 0x7f, 0x96, 0xfc, 0x21, + 0x39, 0x6d, 0xdf, 0xb7, 0xd0, 0xfe, 0x3f, 0x22, + 0x3f, 0xcf, 0xb7, 0x13, 0x94, 0xe5, 0x9e, 0x65, + 0x57, 0xf7, 0xff, 0x00, 0xd7, 0xfb, 0x38, 0xd4, + 0xc3, 0xa4, 0xd5, 0x6a, 0x80, 0x10, 0x23, 0xb7, + 0x59, 0x69, 0xc1, 0x56, 0xdd, 0x49, 0x66, 0x88, + 0x46, 0xc3, 0x16, 0x49, 0xd6, 0xd5, 0xcd, 0x5d, + 0x5f, 0xb1, 0xe2, 0x39, 0xb4, 0x9b, 0x0e, 0x59, + 0x56, 0x8c, 0x72, 0xd7, 0xc9, 0x8b, 0xd0, 0x59, + 0x6d, 0xd0, 0x93, 0x7c, 0xb5, 0x23, 0xa9, 0x4f, + 0xba, 0x8e, 0x83, 0x5c, 0x26, 0xbf, 0x44, 0xa6, + 0x69, 0x44, 0xb8, 0x85, 0xee, 0xe1, 0x2d, 0x54, + 0xc7, 0x62, 0x4b, 0xa1, 0x43, 0x03, 0x60, 0xd8, + 0xe2, 0x4f, 0x12, 0xd3, 0x3c, 0x6a, 0xa2, 0x52, + 0xfc, 0xe7, 0xc1, 0x29, 0x58, 0x2f, 0x35, 0x32, + 0x2e, 0x32, 0x45, 0x24, 0x7a, 0x4e, 0xc6, 0xa8, + 0xad, 0x5d, 0xed, 0xc4, 0x9d, 0x22, 0xf0, 0xa0, + 0x3a, 0x99, 0xcf, 0x3a, 0xc2, 0xf7, 0x2c, 0x32, + 0x8c, 0x0f, 0xec, 0x1e, 0xff, 0x00, 0x3e, 0x22, + 0xd4, 0x2a, 0x42, 0xc1, 0xe5, 0x77, 0x2a, 0xd4, + 0x8f, 0xb8, 0xa4, 0x8c, 0x01, 0x94, 0x8d, 0xfa, + 0x64, 0x32, 0x4c, 0xcd, 0x38, 0xa4, 0xba, 0xed, + 0x8b, 0x1e, 0x1c, 0x18, 0x5d, 0xa7, 0xd3, 0xc0, + 0xbf, 0x12, 0xed, 0xf6, 0xb6, 0xbd, 0x2c, 0xd5, + 0xe6, 0x37, 0x50, 0x34, 0x08, 0x06, 0x4c, 0x3a, + 0x9a, 0xbd, 0xcf, 0x0f, 0xa9, 0x96, 0xea, 0x52, + 0x0a, 0x72, 0xfa, 0xe5, 0x2c, 0xbd, 0x38, 0xd0, + 0x09, 0xbf, 0x55, 0x1b, 0x35, 0xbd, 0x6d, 0x47, + 0x8d, 0x04, 0x4e, 0xb2, 0xdb, 0x18, 0xf1, 0x64, + 0x26, 0x3c, 0x7a, 0x48, 0x42, 0x96, 0x01, 0x52, + 0x6c, 0x91, 0xee, 0xca, 0x30, 0xed, 0x47, 0x85, + 0x35, 0x12, 0xff, 0x00, 0x54, 0x01, 0xfb, 0xb8, + 0x51, 0x59, 0x59, 0xde, 0xaa, 0xbd, 0xbf, 0x7f, + 0x12, 0xe7, 0xf1, 0x85, 0xa2, 0x2d, 0x98, 0xc7, + 0x24, 0x65, 0x71, 0x0f, 0x2d, 0x94, 0xae, 0x4d, + 0x28, 0x14, 0x28, 0x9e, 0xc1, 0xb2, 0x1e, 0xe2, + 0x9b, 0x84, 0xd2, 0x54, 0x72, 0xbf, 0x2a, 0x26, + 0x72, 0x46, 0x52, 0xa6, 0x20, 0x8e, 0x56, 0x25, + 0x46, 0xeb, 0x67, 0x1a, 0x3d, 0xba, 0x71, 0x62, + 0x2f, 0xf9, 0x0a, 0x09, 0x3a, 0x48, 0xb1, 0xb3, + 0x51, 0xfd, 0x56, 0x52, 0x3f, 0x73, 0x53, 0x7e, + 0xce, 0x35, 0xf0, 0xaa, 0x27, 0x36, 0x3c, 0xd1, + 0xb2, 0x27, 0xa1, 0xd9, 0x41, 0xb1, 0x93, 0x33, + 0x6f, 0x40, 0x6c, 0x4e, 0xc3, 0xe6, 0x4d, 0xf1, + 0xaf, 0x94, 0xc4, 0xda, 0x78, 0x04, 0x52, 0xb3, + 0xea, 0x0c, 0x0e, 0xa2, 0x09, 0x1b, 0x39, 0xe1, + 0x67, 0xa7, 0x48, 0x9b, 0x23, 0x52, 0x38, 0x23, + 0x13, 0xb1, 0x5e, 0xe4, 0x00, 0x72, 0x10, 0x6a, + 0x35, 0xcb, 0x4c, 0x23, 0x41, 0x42, 0x52, 0x5f, + 0x50, 0xad, 0x20, 0x58, 0xe3, 0x27, 0x15, 0x94, + 0xaa, 0x82, 0xb2, 0x2b, 0x03, 0x1d, 0x57, 0x53, + 0xa9, 0x3b, 0x5f, 0x0d, 0xe2, 0x93, 0x9c, 0x50, + 0x69, 0xe8, 0xe3, 0x96, 0x2c, 0xf1, 0xf6, 0xe9, + 0xec, 0x01, 0x14, 0x3a, 0x87, 0x71, 0xef, 0xf4, + 0x35, 0xf9, 0xc0, 0x19, 0x2a, 0x75, 0x91, 0x18, + 0x86, 0x20, 0x40, 0xe8, 0x4f, 0x41, 0x21, 0xc6, + 0xc4, 0xee, 0x31, 0xad, 0xb7, 0xbe, 0x26, 0x92, + 0x6e, 0x5b, 0x3a, 0xe4, 0x8f, 0x24, 0xf1, 0x88, + 0xb0, 0x43, 0x33, 0x31, 0x58, 0x5a, 0x31, 0x8a, + 0x94, 0xeb, 0x62, 0x05, 0xf4, 0xda, 0xd1, 0x66, + 0xdf, 0x1e, 0x22, 0x3a, 0x9d, 0x4a, 0xc5, 0xa9, + 0x8d, 0xed, 0x31, 0x67, 0x0a, 0x0e, 0x2a, 0xd6, + 0x18, 0x54, 0xaa, 0xb8, 0x32, 0xfb, 0x11, 0x7b, + 0xa9, 0xb6, 0xaa, 0x3c, 0x68, 0xd6, 0x7f, 0x09, + 0xf8, 0x86, 0x2d, 0xcc, 0x88, 0x4b, 0x1b, 0xe2, + 0x0d, 0xd8, 0x92, 0x8b, 0xb2, 0x2a, 0x2b, 0x4c, + 0xae, 0x9b, 0xe3, 0x9c, 0x61, 0x64, 0xa2, 0x59, + 0xc2, 0x53, 0x71, 0xa1, 0xd6, 0x41, 0xad, 0x8d, + 0x26, 0x46, 0x57, 0xc8, 0x74, 0x3f, 0xde, 0xf9, + 0xec, 0x77, 0x56, 0x53, 0xb3, 0x2b, 0x0b, 0x07, + 0xbf, 0x0c, 0xd1, 0xc6, 0x19, 0xcf, 0xbf, 0xf1, + 0x3c, 0x6b, 0x75, 0xb2, 0x78, 0x8c, 0xef, 0xa6, + 0xd3, 0x31, 0x48, 0x10, 0x03, 0x3e, 0xa0, 0x76, + 0x65, 0x62, 0xc0, 0xe9, 0xe1, 0x22, 0xd8, 0xb1, + 0x00, 0xdc, 0x91, 0x8d, 0x8d, 0x0b, 0x17, 0xbc, + 0xfc, 0xbd, 0x2b, 0x42, 0xaa, 0x92, 0x91, 0x73, + 0x2e, 0x51, 0xdc, 0x92, 0x88, 0xf4, 0xea, 0x0f, + 0x34, 0x80, 0x4c, 0x84, 0x14, 0x49, 0x64, 0x66, + 0x16, 0x54, 0x2f, 0x57, 0x71, 0x71, 0x26, 0x59, + 0x31, 0x05, 0xe2, 0x2b, 0x11, 0x89, 0x95, 0xac, + 0xb2, 0x98, 0x90, 0x92, 0x72, 0x5d, 0x8e, 0x79, + 0x6d, 0xd5, 0x7f, 0xab, 0xc6, 0x86, 0x25, 0x2d, + 0x29, 0x93, 0x16, 0xea, 0x38, 0xb6, 0x20, 0x90, + 0x96, 0xd4, 0x18, 0x1c, 0x83, 0x3e, 0xdd, 0x4d, + 0x54, 0x76, 0xa1, 0xb7, 0x1a, 0xf8, 0xf4, 0xcb, + 0xa5, 0x66, 0x06, 0x34, 0x60, 0xd1, 0x98, 0x9d, + 0xa1, 0x55, 0x09, 0x24, 0x8c, 0x51, 0x5c, 0x12, + 0x14, 0xdb, 0x97, 0xaa, 0x0c, 0x0b, 0x03, 0x40, + 0xd9, 0xe3, 0x90, 0xf1, 0x41, 0x8b, 0xfc, 0x44, + 0x8e, 0xaa, 0xd9, 0x4f, 0x23, 0x01, 0x67, 0x72, + 0x49, 0x40, 0x00, 0x11, 0xa9, 0x27, 0x15, 0xef, + 0x88, 0x00, 0xb3, 0x1b, 0x3c, 0x48, 0xa7, 0x16, + 0xbe, 0x5f, 0xdb, 0x34, 0xc3, 0xa6, 0xd4, 0x95, + 0x32, 0x79, 0xa4, 0x72, 0x4d, 0xc6, 0xb8, 0xf5, + 0x5d, 0x93, 0x84, 0x9f, 0xce, 0x45, 0xf4, 0xae, + 0xa4, 0x18, 0xe3, 0x27, 0xce, 0x2f, 0x21, 0x5c, + 0xe1, 0x46, 0x54, 0x03, 0x26, 0x19, 0x30, 0x67, + 0x2c, 0x15, 0x6a, 0x89, 0xb3, 0xd5, 0xb8, 0xda, + 0xb8, 0x91, 0xb1, 0xcd, 0x8b, 0x86, 0x88, 0x47, + 0xf6, 0x62, 0x3c, 0xdc, 0xb6, 0x5d, 0xfd, 0x5b, + 0x8a, 0xad, 0xab, 0xeb, 0x7c, 0x68, 0xb5, 0x91, + 0xc6, 0x99, 0x44, 0xe8, 0x52, 0x47, 0x67, 0x2c, + 0x18, 0xd3, 0x12, 0x02, 0x9a, 0x05, 0x88, 0xdb, + 0x1f, 0x6d, 0x86, 0xfb, 0x71, 0x0f, 0x8b, 0x69, + 0xb9, 0x69, 0xd4, 0x83, 0x6e, 0xc5, 0xd6, 0xc1, + 0x1e, 0xc7, 0xf1, 0xe3, 0xf3, 0x94, 0x1b, 0xd6, + 0x24, 0xd7, 0x60, 0xe0, 0x9d, 0xf6, 0xed, 0xfe, + 0x7b, 0x71, 0x14, 0x66, 0x79, 0x28, 0x63, 0x76, + 0x5c, 0x16, 0xf9, 0xf4, 0xd5, 0x7c, 0x8f, 0x4f, + 0x71, 0xbf, 0x1f, 0x9b, 0x75, 0x20, 0x10, 0x24, + 0x40, 0xb8, 0x6e, 0xb6, 0xfb, 0xd0, 0xea, 0x6e, + 0xd5, 0xd4, 0x6a, 0xef, 0xf0, 0xfa, 0xff, 0x00, + 0x23, 0xc8, 0xb1, 0x0e, 0x63, 0x9c, 0x40, 0xa0, + 0x4f, 0x6a, 0xc9, 0x82, 0x8f, 0xe2, 0x40, 0xe3, + 0x59, 0xa8, 0x8a, 0x5c, 0xa2, 0x12, 0x2a, 0xb4, + 0x6d, 0x93, 0x33, 0x91, 0x55, 0x8d, 0x50, 0xac, + 0xb2, 0xbb, 0xec, 0x3d, 0xcd, 0x1b, 0x1c, 0x78, + 0x9e, 0x9d, 0x82, 0xe9, 0x0c, 0x89, 0x2e, 0xa1, + 0xc3, 0xe9, 0xd6, 0x29, 0x22, 0x98, 0xa4, 0xd2, + 0x64, 0x43, 0x3c, 0x70, 0x22, 0xa7, 0x95, 0x21, + 0x1c, 0xbc, 0x5d, 0x7b, 0x12, 0x3b, 0x1e, 0xae, + 0x34, 0xdf, 0x19, 0x41, 0x44, 0x6c, 0xba, 0x58, + 0xd9, 0x91, 0xc3, 0x9f, 0x30, 0x0b, 0xea, 0x43, + 0x90, 0x50, 0xcc, 0xab, 0xe5, 0xb3, 0x85, 0xeb, + 0x7c, 0xb6, 0x1d, 0xb8, 0x99, 0x5e, 0x50, 0x86, + 0x15, 0x8e, 0x20, 0x81, 0xd0, 0x96, 0x48, 0x93, + 0x20, 0xe1, 0x7a, 0x72, 0x5e, 0x5e, 0x54, 0x2c, + 0x1b, 0xbe, 0x92, 0x36, 0x1b, 0xf0, 0x74, 0xfa, + 0xe5, 0x68, 0xdc, 0x08, 0x59, 0x01, 0x39, 0xb7, + 0x48, 0xda, 0xaf, 0x25, 0x7b, 0x6b, 0xc4, 0x02, + 0x4d, 0x77, 0xf4, 0x9a, 0xe2, 0x26, 0x93, 0x53, + 0x4c, 0xf1, 0xc5, 0x34, 0x2c, 0x18, 0x85, 0x0c, + 0x80, 0x86, 0xc4, 0xe2, 0x63, 0x60, 0xe0, 0x81, + 0x90, 0xfc, 0x47, 0x56, 0x3d, 0xc8, 0xe2, 0x47, + 0xd4, 0xc6, 0x31, 0xd2, 0xc2, 0xf0, 0xc1, 0x1c, + 0x5e, 0xc6, 0x02, 0xb5, 0x57, 0x78, 0xe5, 0x61, + 0x17, 0x2f, 0x9b, 0x92, 0x3d, 0xfb, 0x28, 0x6d, + 0x4b, 0x44, 0x8d, 0x86, 0x9a, 0xe6, 0x31, 0x21, + 0xd4, 0x1f, 0x37, 0x39, 0x48, 0x0c, 0xae, 0xdc, + 0xa8, 0xd9, 0xc3, 0xc6, 0x15, 0xb1, 0x14, 0xd9, + 0x10, 0xc5, 0x04, 0x75, 0x67, 0x8d, 0x26, 0xaf, + 0x51, 0xe1, 0x99, 0x96, 0x42, 0x20, 0x0e, 0x8a, + 0x41, 0x01, 0x41, 0x92, 0x55, 0xb5, 0x75, 0x0a, + 0x4b, 0x0d, 0xfd, 0x4c, 0x54, 0x29, 0xf7, 0x3e, + 0xfc, 0x6a, 0xfc, 0x67, 0x53, 0xab, 0xd3, 0x84, + 0x8d, 0xe3, 0x8d, 0x9b, 0xbc, 0xab, 0xd5, 0xe5, + 0xd8, 0x24, 0x05, 0xb5, 0xf5, 0x2e, 0xc5, 0x81, + 0xfc, 0x3e, 0xb0, 0x0d, 0x14, 0x3a, 0x5f, 0x2f, + 0x56, 0x79, 0x81, 0x15, 0x81, 0x55, 0x31, 0xde, + 0x00, 0xb7, 0x4c, 0x7c, 0xbb, 0x5c, 0x88, 0x5a, + 0x8f, 0x32, 0x41, 0xfa, 0xed, 0xc3, 0x08, 0x19, + 0x39, 0xda, 0x84, 0x6d, 0x45, 0x06, 0x21, 0x8b, + 0xc9, 0xcf, 0x58, 0xe4, 0x28, 0x5a, 0x25, 0x5d, + 0x9b, 0x0a, 0xc9, 0x79, 0x75, 0xd8, 0x95, 0xed, + 0x7c, 0x36, 0xba, 0x45, 0xe5, 0xa8, 0x00, 0xa9, + 0x0b, 0x18, 0xa5, 0x04, 0x20, 0x58, 0xfb, 0xb5, + 0xf6, 0x53, 0x8d, 0x7b, 0xfb, 0x71, 0x1e, 0xb7, + 0x5b, 0x19, 0x56, 0x1a, 0x87, 0x5c, 0x6e, 0xd6, + 0x24, 0x8d, 0x63, 0x71, 0x91, 0x65, 0xc9, 0x59, + 0x58, 0xec, 0x3a, 0x4e, 0x2c, 0x2e, 0xcf, 0xd2, + 0x93, 0xc4, 0x66, 0xd6, 0x60, 0xb3, 0x86, 0x91, + 0x72, 0x56, 0x68, 0xa9, 0x43, 0xd8, 0xdc, 0x5a, + 0xfd, 0xe1, 0x56, 0x36, 0xdb, 0xb8, 0xf9, 0xf0, + 0x70, 0x10, 0xb0, 0x48, 0x75, 0x45, 0x57, 0x99, + 0x6c, 0xf2, 0x17, 0x0a, 0xc4, 0xbb, 0x1c, 0xaf, + 0x23, 0x8a, 0xd9, 0xe9, 0xc8, 0x00, 0x2d, 0x45, + 0x0a, 0xe1, 0x8d, 0x86, 0xfb, 0x2d, 0xe4, 0x69, + 0x7d, 0x3b, 0x1a, 0xe6, 0xf9, 0xa7, 0xcb, 0x3e, + 0x52, 0xe1, 0xd5, 0xdf, 0xec, 0xe4, 0xf3, 0x85, + 0xf4, 0xab, 0x97, 0x5b, 0xc1, 0x90, 0xf5, 0x5a, + 0x35, 0x02, 0x29, 0x88, 0xbe, 0x97, 0x23, 0xaa, + 0xb2, 0x1b, 0xdd, 0x1d, 0xe8, 0xdf, 0x0c, 0xcd, + 0x16, 0x9c, 0xb4, 0x2a, 0x1f, 0x05, 0xf2, 0xc6, + 0x6d, 0x26, 0x5b, 0xfd, 0xeb, 0x66, 0x6f, 0x7f, + 0x9f, 0x10, 0x6a, 0x04, 0xbd, 0x5c, 0x80, 0x54, + 0x1a, 0x21, 0x90, 0xa5, 0xd7, 0x70, 0x3b, 0x1a, + 0xfc, 0x2b, 0xf7, 0xf0, 0x75, 0x12, 0xf4, 0xe0, + 0x9d, 0x68, 0x19, 0x96, 0x58, 0x59, 0x12, 0x26, + 0x62, 0x57, 0x97, 0x9a, 0xc9, 0x9f, 0x4a, 0x53, + 0xab, 0xac, 0x67, 0x23, 0x6a, 0xc1, 0xb6, 0x23, + 0x88, 0x75, 0x30, 0xea, 0xb5, 0x91, 0xb2, 0x60, + 0xb3, 0xb1, 0xbb, 0x25, 0xe4, 0x31, 0xc1, 0x89, + 0x06, 0x3d, 0xca, 0x81, 0x6e, 0x6c, 0x34, 0x9f, + 0x5a, 0x07, 0x7e, 0x34, 0x8a, 0x79, 0xe0, 0x06, + 0xba, 0xad, 0xea, 0xbd, 0x9a, 0xc6, 0xc4, 0xfe, + 0xaf, 0xfd, 0x78, 0x93, 0x50, 0xe9, 0xce, 0x2d, + 0xba, 0x22, 0xb0, 0xa0, 0x06, 0x5b, 0xf2, 0xc0, + 0xf7, 0xf9, 0x93, 0xde, 0xb6, 0xfc, 0x05, 0xf1, + 0xac, 0x8b, 0x9d, 0xa7, 0x78, 0xab, 0x20, 0xc6, + 0x3c, 0x85, 0xd5, 0xa8, 0x91, 0x0b, 0xef, 0x63, + 0xf4, 0x41, 0xf7, 0x1f, 0x4d, 0xf8, 0x8b, 0xc2, + 0xe6, 0x13, 0x90, 0x42, 0x14, 0x19, 0x95, 0x5e, + 0x62, 0xe4, 0x2c, 0x37, 0x2e, 0xc5, 0xdf, 0x49, + 0xc7, 0xbe, 0xdb, 0x6f, 0x63, 0x89, 0x3c, 0x33, + 0x55, 0x3e, 0x9a, 0x56, 0x94, 0xc7, 0x24, 0xef, + 0x28, 0x93, 0x3f, 0xb0, 0x48, 0xd7, 0x72, 0xc6, + 0x81, 0x00, 0x30, 0x3c, 0xb2, 0x0a, 0x80, 0x41, + 0x51, 0x47, 0x84, 0xf0, 0xa9, 0xf4, 0xda, 0x16, + 0x58, 0x79, 0x68, 0xcd, 0x9e, 0x4f, 0x42, 0x7c, + 0x91, 0x70, 0x75, 0x02, 0xac, 0xa9, 0x2e, 0xae, + 0xc5, 0x87, 0x72, 0x69, 0x8f, 0xcb, 0x4c, 0x74, + 0xf1, 0x4b, 0x0b, 0x6a, 0xd7, 0xc9, 0xe4, 0x95, + 0x19, 0x2e, 0x48, 0xb3, 0x67, 0x6d, 0x92, 0xd1, + 0xdc, 0x8f, 0x7a, 0xec, 0x57, 0xe5, 0xb6, 0xb1, + 0xa0, 0xf3, 0xf9, 0x42, 0xa0, 0x79, 0x94, 0xc0, + 0x37, 0x16, 0x02, 0x11, 0x2b, 0x28, 0xfb, 0x85, + 0xf1, 0xf6, 0xfd, 0xd8, 0xd7, 0x18, 0xc9, 0x56, + 0xb4, 0xaa, 0x3e, 0x5d, 0x3f, 0xb4, 0xd7, 0xf6, + 0xf1, 0x19, 0x69, 0x80, 0x30, 0xc9, 0xcd, 0x17, + 0x5d, 0x0f, 0x98, 0xee, 0x16, 0xb6, 0xdb, 0xb9, + 0x03, 0xf1, 0x20, 0x7b, 0xf1, 0x90, 0x66, 0x6c, + 0x63, 0xe6, 0xc9, 0x1a, 0xba, 0x98, 0xb9, 0xf0, + 0xa6, 0xec, 0x43, 0x80, 0xd6, 0xb1, 0xa2, 0xb2, + 0x8e, 0x94, 0xdd, 0x2d, 0x3b, 0xe4, 0xfd, 0x5c, + 0x4d, 0xa4, 0x21, 0x2d, 0x23, 0x86, 0x59, 0x24, + 0x2d, 0x40, 0xc9, 0x88, 0x5c, 0x60, 0x69, 0x3a, + 0xad, 0xba, 0x95, 0xa4, 0x0a, 0xa7, 0x66, 0x21, + 0x48, 0x6f, 0x40, 0x27, 0x86, 0x8d, 0x50, 0x98, + 0xcc, 0x7a, 0x73, 0x20, 0x54, 0x56, 0x2b, 0x3c, + 0x09, 0xc9, 0x35, 0xe9, 0xc5, 0x98, 0xef, 0xf2, + 0xb5, 0xac, 0x6a, 0x94, 0x7b, 0x22, 0x4c, 0xf2, + 0x4e, 0x40, 0xd2, 0x47, 0xb4, 0x91, 0xaa, 0x1d, + 0x44, 0x2f, 0x83, 0xb2, 0x8e, 0x5b, 0x9e, 0xa5, + 0x1f, 0xaf, 0x88, 0xdf, 0x7a, 0xc8, 0x15, 0xae, + 0x25, 0xd3, 0x36, 0x9c, 0x3c, 0x9a, 0x87, 0xc6, + 0x00, 0x5a, 0x34, 0x3d, 0x19, 0xb9, 0x8d, 0x88, + 0x79, 0x42, 0xa3, 0xca, 0xdc, 0x97, 0xdb, 0x0e, + 0x9b, 0x15, 0x4d, 0xbf, 0x11, 0x69, 0x56, 0x6c, + 0xb9, 0x46, 0xc2, 0x35, 0x48, 0xc4, 0xf9, 0x71, + 0x9a, 0xc8, 0xf3, 0x18, 0x56, 0x3d, 0x27, 0x23, + 0xf4, 0xf6, 0xe1, 0xb4, 0x40, 0xab, 0x26, 0x9f, + 0x53, 0x8c, 0x85, 0xf9, 0x99, 0x3c, 0x6c, 0x62, + 0x90, 0xdd, 0x98, 0xc1, 0xcd, 0x9d, 0x15, 0xfd, + 0x2b, 0xe5, 0x8a, 0xb0, 0x69, 0x78, 0x4d, 0x2c, + 0x7a, 0x41, 0x34, 0x8e, 0x1d, 0x64, 0xf2, 0xcc, + 0x4e, 0xac, 0xb8, 0xc9, 0x60, 0x58, 0x7b, 0x16, + 0x36, 0xb1, 0x9e, 0xf4, 0xa0, 0xd0, 0xca, 0xaf, + 0x4d, 0x06, 0x50, 0xce, 0xd2, 0x48, 0xe7, 0x19, + 0x24, 0x28, 0xcb, 0x24, 0x84, 0x46, 0xac, 0xa5, + 0xcf, 0x34, 0xbe, 0x76, 0x39, 0x85, 0x89, 0xa7, + 0x5a, 0x4d, 0xb1, 0xad, 0xf8, 0x31, 0x2e, 0x4f, + 0x26, 0x08, 0x5c, 0x87, 0x60, 0x4f, 0xa6, 0x87, + 0x30, 0x99, 0x0d, 0x21, 0x06, 0x15, 0xc6, 0xdb, + 0xb9, 0x38, 0x4b, 0xe7, 0x0b, 0xd8, 0xea, 0x60, + 0x91, 0x02, 0x35, 0xba, 0xcb, 0x94, 0x63, 0x03, + 0xea, 0x20, 0x36, 0x42, 0xc3, 0x02, 0xa4, 0x51, + 0xdf, 0x6a, 0xae, 0xf7, 0xc3, 0x3a, 0xa4, 0x2b, + 0x24, 0x71, 0x72, 0x9a, 0x20, 0x7c, 0x8b, 0x26, + 0x3a, 0xc8, 0x5d, 0x88, 0xd4, 0x97, 0x6c, 0x41, + 0x2b, 0x5b, 0xe4, 0x7a, 0xbd, 0xf8, 0x06, 0x00, + 0xb5, 0xf0, 0xa2, 0x30, 0xc0, 0xb0, 0x5c, 0xe2, + 0x41, 0xd5, 0x64, 0x9a, 0x34, 0x77, 0x6b, 0x07, + 0xb6, 0xd7, 0xd9, 0xba, 0x80, 0xe4, 0xf6, 0x5d, + 0x28, 0xf6, 0xa0, 0x1d, 0x08, 0x1e, 0x9d, 0x85, + 0x3a, 0xd8, 0xd8, 0xed, 0x7d, 0x8d, 0x71, 0xa6, + 0x86, 0x39, 0x15, 0xdb, 0xe1, 0xc2, 0x95, 0x54, + 0x51, 0xd4, 0xab, 0x61, 0x55, 0xec, 0xd8, 0xc9, + 0x72, 0x1b, 0x9e, 0xaa, 0x5e, 0xc0, 0x0e, 0x34, + 0x54, 0x64, 0x88, 0xa2, 0xd0, 0x26, 0x8e, 0xfd, + 0xb6, 0x3f, 0x4f, 0x7f, 0xd9, 0xfb, 0x7d, 0xbe, + 0x1a, 0xd9, 0x8b, 0x36, 0x48, 0x55, 0xba, 0x48, + 0x3e, 0xc1, 0x6b, 0xbb, 0x95, 0xdb, 0x13, 0xfa, + 0x3f, 0x2a, 0xad, 0xf2, 0xe2, 0x42, 0x02, 0x92, + 0xc4, 0x01, 0xb6, 0xe7, 0xb7, 0x71, 0xc2, 0x69, + 0xdf, 0xe2, 0xb9, 0x99, 0xa6, 0x01, 0xcb, 0xe4, + 0x24, 0x16, 0x46, 0xfd, 0x35, 0xfc, 0x1a, 0xf6, + 0x02, 0xf8, 0xd4, 0xaf, 0x3a, 0x05, 0x0a, 0xe1, + 0x49, 0xa6, 0xea, 0xe9, 0xb0, 0x7d, 0xaf, 0xf8, + 0x8f, 0xc0, 0x71, 0x14, 0x66, 0x1d, 0x3c, 0x8a, + 0xf2, 0x2d, 0xbb, 0x96, 0x08, 0x0e, 0x54, 0xa1, + 0x3a, 0xac, 0xfe, 0xb5, 0x59, 0x3e, 0xdb, 0x0d, + 0xcf, 0x1a, 0x99, 0x0a, 0x59, 0x2e, 0x91, 0xe4, + 0xf8, 0xa5, 0x1c, 0x83, 0xfd, 0xcc, 0x85, 0x01, + 0x91, 0xfb, 0xb4, 0xd5, 0xf3, 0x3c, 0x0f, 0x0f, + 0x9f, 0x54, 0xd1, 0xcc, 0xda, 0x8a, 0x4a, 0x64, + 0x2b, 0x89, 0xca, 0xff, 0x00, 0x47, 0x7d, 0xe9, + 0x00, 0xb2, 0x04, 0x61, 0x88, 0x6e, 0xf4, 0x2f, + 0x88, 0xfc, 0x22, 0x41, 0x91, 0x79, 0x15, 0xce, + 0xd1, 0x2b, 0x1c, 0x8b, 0x18, 0xc5, 0x56, 0x74, + 0x08, 0x62, 0xc4, 0xb1, 0x24, 0x2f, 0xd0, 0x8e, + 0x21, 0xd3, 0x22, 0x72, 0x96, 0x24, 0x9b, 0x19, + 0xa2, 0xe6, 0xf2, 0xe3, 0xfe, 0x6e, 0xc3, 0x72, + 0x68, 0xe2, 0x57, 0xa6, 0xd4, 0x31, 0xdc, 0x06, + 0x1c, 0x2e, 0x87, 0x4e, 0xe6, 0x33, 0xc9, 0x9f, + 0xa8, 0x31, 0x34, 0xe6, 0x3c, 0x8d, 0x15, 0xbb, + 0x5a, 0xac, 0x06, 0xc2, 0xfe, 0x5b, 0x1e, 0xdc, + 0x72, 0xd8, 0xb4, 0x08, 0x3e, 0x36, 0x84, 0x52, + 0x56, 0x12, 0x90, 0x9e, 0x9c, 0x7d, 0x56, 0x70, + 0x21, 0x7d, 0x23, 0x6b, 0x01, 0xae, 0xef, 0x71, + 0xa0, 0x8a, 0x43, 0x1c, 0xb2, 0xc1, 0xa8, 0x32, + 0xba, 0x17, 0x6c, 0xa6, 0x66, 0x67, 0x70, 0x31, + 0xc8, 0x9b, 0xa3, 0xb7, 0x7f, 0x9f, 0xbd, 0xf0, + 0x34, 0x10, 0xda, 0xd6, 0x9a, 0x72, 0x71, 0xb6, + 0xa9, 0x07, 0x5b, 0x7b, 0x35, 0xfd, 0x3e, 0x5f, + 0x87, 0xed, 0x9b, 0x40, 0x64, 0xea, 0x06, 0x48, + 0xdb, 0x00, 0xcf, 0x24, 0xe4, 0xcb, 0x75, 0x40, + 0x62, 0xb9, 0x06, 0x37, 0x78, 0xaa, 0xe4, 0x06, + 0xe2, 0xc8, 0x16, 0x78, 0xd4, 0xc0, 0xee, 0x42, + 0xd3, 0x47, 0x0c, 0x5c, 0xbe, 0x51, 0x0e, 0x14, + 0xbd, 0x53, 0x48, 0xd2, 0x7b, 0x03, 0x23, 0xd8, + 0x2b, 0x6d, 0x69, 0x4b, 0x7d, 0x80, 0x45, 0x5f, + 0x0c, 0x42, 0xec, 0xaf, 0x0a, 0x35, 0x16, 0x75, + 0x24, 0xb2, 0xb6, 0xcb, 0xcb, 0x08, 0xb9, 0x3a, + 0x9c, 0x42, 0xb3, 0xc8, 0x29, 0x51, 0x58, 0x16, + 0x60, 0x68, 0xf1, 0xf1, 0x98, 0xe5, 0x24, 0x92, + 0x99, 0x20, 0x5e, 0x89, 0xa3, 0x46, 0xb1, 0x84, + 0xa0, 0x0c, 0x1f, 0x10, 0x4e, 0x58, 0xb2, 0x95, + 0x2c, 0xa4, 0xdd, 0x37, 0xb7, 0x1a, 0x3d, 0x3b, + 0xb1, 0x89, 0x20, 0x0c, 0xda, 0x69, 0x0b, 0x03, + 0x24, 0xb1, 0xb3, 0xbc, 0x64, 0x0a, 0x22, 0x4c, + 0x5c, 0x0f, 0xba, 0x6c, 0x90, 0x1b, 0x2b, 0x22, + 0xed, 0x78, 0x9f, 0xc2, 0x66, 0xca, 0x14, 0x0d, + 0x18, 0x13, 0x38, 0xa6, 0x35, 0x8b, 0x55, 0x33, + 0x44, 0x6c, 0x9c, 0x43, 0x2b, 0xd0, 0xfc, 0x5a, + 0x87, 0x7e, 0x1f, 0x45, 0x32, 0xb0, 0x8f, 0x91, + 0x40, 0x99, 0x15, 0x9d, 0x5c, 0x0c, 0x31, 0x42, + 0xf7, 0xea, 0xb3, 0xb6, 0xe2, 0xb7, 0xf7, 0xae, + 0x39, 0x02, 0x1a, 0x8d, 0xc0, 0xb8, 0xc2, 0x8e, + 0xa6, 0xb6, 0xec, 0x37, 0x63, 0xee, 0x7d, 0xc9, + 0xe0, 0xc3, 0x1c, 0xc4, 0x17, 0x8b, 0x50, 0x6a, + 0x10, 0x54, 0x9c, 0x7d, 0x4d, 0xd5, 0x95, 0xd6, + 0xea, 0x49, 0xb0, 0x7b, 0xfe, 0xaf, 0x0b, 0xa2, + 0x82, 0x3f, 0x4c, 0x52, 0xae, 0x69, 0x99, 0xdc, + 0x75, 0x48, 0x40, 0xb7, 0xed, 0xe9, 0xdb, 0xff, + 0x00, 0xd7, 0x6d, 0xd2, 0x10, 0x14, 0xa8, 0xe7, + 0x80, 0xc8, 0xa4, 0x80, 0x76, 0x66, 0x1b, 0x86, + 0x22, 0xbb, 0x0b, 0x35, 0x7f, 0xbb, 0xb7, 0x11, + 0x17, 0x88, 0xda, 0x19, 0xc7, 0x47, 0xb3, 0x0c, + 0x4b, 0x6d, 0xbe, 0xd5, 0x42, 0x87, 0xfd, 0xb8, + 0x3a, 0xbd, 0x49, 0xab, 0x7d, 0x55, 0x74, 0x01, + 0x89, 0xee, 0xf7, 0xbd, 0xd7, 0x64, 0xf7, 0x3d, + 0xcd, 0x5f, 0x4f, 0xf2, 0x78, 0x89, 0xc7, 0x47, + 0x33, 0x6f, 0xb0, 0x43, 0xb0, 0xb3, 0xb4, 0x89, + 0xd8, 0x51, 0xb3, 0xf2, 0x14, 0x6f, 0xe5, 0xc2, + 0x3a, 0xac, 0xad, 0x20, 0xd5, 0x38, 0x2e, 0xed, + 0x03, 0x21, 0x5d, 0xa3, 0xd4, 0x79, 0x99, 0x46, + 0xe0, 0x25, 0x66, 0xdf, 0xa3, 0x1a, 0xdb, 0x0c, + 0x5b, 0xa7, 0xd9, 0x61, 0x9e, 0x4c, 0x0e, 0x9e, + 0x79, 0x65, 0x00, 0xea, 0x31, 0x0d, 0x18, 0x95, + 0x9b, 0x9e, 0x92, 0x12, 0x22, 0x5b, 0xf3, 0x03, + 0x15, 0xbb, 0x8b, 0xbe, 0xd8, 0xe3, 0x5b, 0x70, + 0xfa, 0xb9, 0x06, 0x2a, 0x86, 0x46, 0x06, 0x43, + 0x1a, 0x9e, 0x5b, 0x86, 0x33, 0x90, 0x82, 0x48, + 0xba, 0x80, 0x6e, 0x62, 0x9d, 0xb0, 0xab, 0x17, + 0xf5, 0xe3, 0x9a, 0xc5, 0x8a, 0x85, 0x66, 0x67, + 0x99, 0x94, 0x06, 0xcd, 0x89, 0x9b, 0xa0, 0x34, + 0x68, 0x0d, 0xd3, 0xae, 0x69, 0x71, 0xaf, 0xa7, + 0x21, 0xb0, 0xbe, 0x21, 0x95, 0x99, 0x74, 0xca, + 0x26, 0x8b, 0x29, 0x66, 0x90, 0x32, 0x2a, 0xc9, + 0xb8, 0x5e, 0x59, 0xe5, 0x57, 0x66, 0x9c, 0x73, + 0x22, 0x14, 0x5b, 0x63, 0x22, 0xf4, 0x6e, 0x2e, + 0x3d, 0x42, 0xbe, 0x0a, 0xd3, 0x2b, 0x34, 0x92, + 0x4a, 0x95, 0x1a, 0xc8, 0xea, 0xfc, 0xbc, 0x44, + 0x6b, 0xd8, 0x97, 0x90, 0x2b, 0x43, 0x69, 0x44, + 0xa9, 0x91, 0x28, 0x51, 0x1c, 0x3c, 0xd3, 0x39, + 0x8f, 0x97, 0x2b, 0xc8, 0xcb, 0x36, 0x31, 0x72, + 0xb2, 0x4b, 0x42, 0x54, 0x08, 0x90, 0xf5, 0x19, + 0x30, 0x59, 0x50, 0x95, 0x4a, 0x63, 0x92, 0x6d, + 0xbe, 0xe9, 0xa8, 0xd5, 0xdc, 0x2a, 0x81, 0xa5, + 0x51, 0x21, 0x0a, 0xfc, 0xc6, 0x2c, 0xe0, 0x04, + 0xdd, 0x42, 0x2f, 0x98, 0x6a, 0x4d, 0xd3, 0xdb, + 0x62, 0x6a, 0xc7, 0x11, 0xea, 0x64, 0xc6, 0x91, + 0x9d, 0x86, 0x3e, 0x49, 0xeb, 0x63, 0x91, 0x05, + 0x9b, 0x7b, 0x39, 0xa8, 0xb5, 0xb0, 0x86, 0xd4, + 0x6c, 0x6b, 0x6e, 0x06, 0xa8, 0x96, 0x88, 0x67, + 0x27, 0x52, 0x38, 0x50, 0x99, 0x94, 0x7d, 0xb2, + 0x72, 0x2b, 0xd9, 0x68, 0xd1, 0x07, 0x60, 0x4d, + 0xf0, 0x35, 0x32, 0xa8, 0x21, 0x32, 0x60, 0xa1, + 0x44, 0x40, 0x48, 0xd9, 0x3a, 0x82, 0x79, 0xa4, + 0xb1, 0x06, 0xf0, 0x0a, 0xcc, 0x6b, 0x2f, 0x4b, + 0x65, 0x5c, 0x7c, 0x42, 0x96, 0x2a, 0xf2, 0x39, + 0x89, 0xa2, 0x91, 0x58, 0x81, 0x94, 0x8b, 0x89, + 0xc8, 0x49, 0x18, 0xec, 0xc9, 0x1f, 0x2a, 0x4e, + 0x67, 0xd1, 0x5b, 0x71, 0x47, 0x83, 0xf0, 0xa2, + 0xbc, 0xe6, 0xd5, 0x61, 0x13, 0x0c, 0x5e, 0x15, + 0xe5, 0x12, 0x9b, 0x9d, 0x43, 0xa9, 0xde, 0x53, + 0x1f, 0x26, 0x43, 0xd2, 0x04, 0x4a, 0x55, 0xcb, + 0x5e, 0x35, 0xc4, 0xba, 0x88, 0x35, 0x66, 0x03, + 0xcd, 0x91, 0x4a, 0x23, 0xb7, 0x99, 0x0c, 0xf4, + 0x0c, 0x5c, 0xc5, 0x91, 0xc9, 0x44, 0x6c, 0x83, + 0xd4, 0xd2, 0x31, 0x2b, 0x88, 0x29, 0x21, 0x63, + 0xd1, 0x7c, 0x72, 0xa1, 0x7f, 0x4e, 0xad, 0x00, + 0x2d, 0xcc, 0x3c, 0xb8, 0x75, 0x63, 0x2e, 0x51, + 0x6c, 0xd8, 0xd6, 0x9b, 0xad, 0x17, 0x95, 0x20, + 0x73, 0xe9, 0xa4, 0x70, 0xcc, 0x31, 0x34, 0xba, + 0xd9, 0x61, 0x8e, 0x3e, 0x44, 0xa6, 0x27, 0x8f, + 0x98, 0x65, 0xc5, 0x59, 0xa3, 0x65, 0x67, 0xf3, + 0x19, 0x76, 0x1d, 0x1c, 0xbd, 0x3d, 0x67, 0x54, + 0x8c, 0xb2, 0x12, 0x76, 0x3c, 0x37, 0x89, 0x33, + 0xce, 0x8e, 0xd2, 0x48, 0x34, 0xf1, 0xcc, 0x24, + 0x58, 0xf1, 0x2c, 0x62, 0x5f, 0xe9, 0x08, 0x6a, + 0xb7, 0x4c, 0x96, 0x5a, 0x95, 0x8d, 0x28, 0x04, + 0x58, 0xc4, 0xf0, 0x35, 0x7a, 0x68, 0xd2, 0x52, + 0x1b, 0x54, 0x32, 0x79, 0x65, 0x6e, 0xa9, 0x1b, + 0x22, 0x32, 0xf3, 0x06, 0x3f, 0xa0, 0x39, 0x7b, + 0xb5, 0x56, 0xc4, 0x1f, 0x49, 0xb3, 0xa8, 0xf0, + 0xe9, 0x5b, 0x99, 0x7a, 0xa6, 0x84, 0xc6, 0x94, + 0x48, 0x3c, 0xd0, 0xea, 0x5b, 0x32, 0x55, 0x96, + 0xb9, 0x01, 0x00, 0x19, 0x65, 0xd0, 0x43, 0x83, + 0xdb, 0x81, 0xac, 0xd3, 0x2e, 0xca, 0xfa, 0x93, + 0xd2, 0x10, 0xf5, 0x48, 0x00, 0x8c, 0x60, 0x1a, + 0xc7, 0xdc, 0x04, 0x4b, 0x4c, 0x0f, 0x2c, 0x50, + 0x1f, 0x83, 0xeb, 0x3a, 0xbc, 0xa7, 0x97, 0x11, + 0x1a, 0xab, 0x7a, 0xec, 0x28, 0x14, 0x6c, 0xff, + 0x00, 0xb2, 0xfd, 0x63, 0x49, 0x76, 0x06, 0xdc, + 0x36, 0xb2, 0x7d, 0x9c, 0x49, 0x25, 0x25, 0x06, + 0xd8, 0xb6, 0x49, 0x92, 0x80, 0x0e, 0xd6, 0x14, + 0xde, 0x21, 0x86, 0xdd, 0x55, 0xdf, 0x81, 0xaf, + 0xd4, 0x48, 0x84, 0xee, 0x96, 0xd1, 0xa3, 0x75, + 0x37, 0xd8, 0x49, 0x8d, 0x73, 0x4d, 0xa9, 0x89, + 0x3a, 0xd3, 0x7a, 0x7f, 0x50, 0xa5, 0x37, 0x5c, + 0x73, 0x61, 0xa5, 0x5e, 0x79, 0xf2, 0xa2, 0x85, + 0x5c, 0x5c, 0x8e, 0xe5, 0xc9, 0x88, 0x2e, 0x52, + 0x01, 0x46, 0x23, 0x90, 0x17, 0x80, 0x47, 0xc8, + 0x36, 0x6b, 0x78, 0xff, 0x00, 0x27, 0x88, 0x42, + 0xfa, 0x9d, 0x16, 0xa6, 0x18, 0xc5, 0xbc, 0xb1, + 0x95, 0x50, 0x5b, 0x0b, 0x37, 0xdb, 0x22, 0xae, + 0x16, 0xfe, 0xf1, 0x46, 0xae, 0xf4, 0x78, 0x1e, + 0x03, 0xe2, 0x1e, 0xd1, 0x42, 0x07, 0x30, 0x91, + 0x7a, 0xa5, 0x63, 0xca, 0x39, 0x74, 0x93, 0xf0, + 0xc2, 0xe7, 0xa2, 0xa3, 0x9c, 0x29, 0x36, 0x6f, + 0x2b, 0x7e, 0x0f, 0x81, 0x78, 0x86, 0x56, 0x21, + 0x87, 0x10, 0xc6, 0x97, 0xe2, 0x53, 0xec, 0xbe, + 0xe5, 0xfc, 0x38, 0xf3, 0xbb, 0x79, 0xd5, 0x8f, + 0xfb, 0xaf, 0x7e, 0x07, 0x81, 0xf8, 0x88, 0x23, + 0xcb, 0x88, 0x28, 0x92, 0xe8, 0x6a, 0x93, 0x21, + 0x15, 0xaf, 0x4a, 0x9f, 0x87, 0x00, 0x6a, 0x29, + 0x77, 0x9b, 0xd1, 0xe9, 0xf2, 0xb6, 0xbe, 0x3f, + 0x30, 0xf8, 0x8d, 0x8b, 0x8a, 0x0c, 0x72, 0xde, + 0xb5, 0x29, 0x97, 0x2a, 0xd0, 0xe0, 0xa4, 0xe9, + 0xf6, 0x9b, 0xa4, 0x93, 0x31, 0xb4, 0x3d, 0x1e, + 0x4f, 0x4d, 0x88, 0xfc, 0x07, 0xc4, 0x15, 0x90, + 0xb4, 0x5a, 0x7a, 0x1b, 0x3e, 0x1a, 0x84, 0x53, + 0xcb, 0xf2, 0x69, 0x23, 0x3c, 0x8b, 0x49, 0x3a, + 0x5f, 0x29, 0x0d, 0xab, 0x79, 0x55, 0x18, 0xc7, + 0x68, 0xbf, 0x27, 0x7c, 0x50, 0x5f, 0x35, 0x60, + 0x6b, 0x66, 0xbc, 0x67, 0x8d, 0x4f, 0x2b, 0x28, + 0x8a, 0x44, 0x87, 0xe1, 0xba, 0x59, 0x42, 0xb8, + 0x32, 0x3e, 0x61, 0xaa, 0x1a, 0x45, 0xc0, 0xf1, + 0x17, 0xe4, 0xde, 0xbd, 0x31, 0x0d, 0x1c, 0x18, + 0x8f, 0x5e, 0x3a, 0x80, 0x19, 0x85, 0xc4, 0x6a, + 0x32, 0xd1, 0x36, 0x06, 0xd6, 0x4d, 0xdb, 0x31, + 0xf6, 0x41, 0x55, 0x70, 0xe1, 0x7f, 0x27, 0xfc, + 0x42, 0xfa, 0xe3, 0x84, 0xec, 0x03, 0xf2, 0xf5, + 0x0a, 0x84, 0xd0, 0x4a, 0x11, 0xdc, 0x5d, 0x04, + 0x53, 0x59, 0x6c, 0xaf, 0xa3, 0x10, 0xb5, 0xc4, + 0x5f, 0x93, 0xbe, 0x20, 0x8b, 0x8b, 0x24, 0x4d, + 0x7e, 0xa2, 0xba, 0x95, 0x07, 0x7f, 0x68, 0xee, + 0x26, 0xc0, 0x0e, 0xc7, 0x2c, 0xc1, 0x14, 0x14, + 0x25, 0x70, 0xbf, 0x93, 0xde, 0x22, 0x80, 0x8e, + 0x5c, 0x06, 0xc7, 0xb6, 0xa0, 0x2f, 0x57, 0x51, + 0x18, 0x13, 0x0b, 0x95, 0x19, 0x1e, 0xb0, 0xd9, + 0xd8, 0xb0, 0xb8, 0x70, 0x7c, 0x07, 0xc4, 0xc8, + 0x60, 0x52, 0x16, 0xb1, 0xd8, 0x6a, 0x14, 0x0c, + 0xba, 0xab, 0x0c, 0xa1, 0x6c, 0x57, 0x75, 0x2e, + 0x0e, 0x65, 0xba, 0xe8, 0xad, 0xf0, 0xde, 0x03, + 0xe2, 0x47, 0x33, 0xca, 0x87, 0x26, 0x1e, 0xda, + 0x88, 0xc0, 0x2d, 0x8b, 0x85, 0x22, 0xe1, 0x38, + 0xa7, 0x52, 0xf3, 0x14, 0xe4, 0x5b, 0xcc, 0xa2, + 0x32, 0x1c, 0x2f, 0x81, 0x78, 0xb6, 0x04, 0x3c, + 0x7a, 0x76, 0x62, 0x37, 0x61, 0x32, 0x00, 0x5f, + 0xce, 0xc6, 0x87, 0x2e, 0x96, 0x3e, 0xa4, 0xcd, + 0x3a, 0x8b, 0x5c, 0xd4, 0xc3, 0x31, 0xc1, 0xf0, + 0x2f, 0x13, 0xa7, 0xf2, 0x34, 0xfb, 0x92, 0x7e, + 0xde, 0x3a, 0x24, 0xf3, 0x6b, 0xba, 0x6d, 0x1d, + 0x32, 0x73, 0x14, 0xe4, 0xcf, 0x73, 0xd1, 0x19, + 0x8e, 0x3f, 0x30, 0xf8, 0x9d, 0x4a, 0x0e, 0x9e, + 0x03, 0x93, 0x31, 0x5f, 0x3e, 0x3a, 0xdc, 0xcb, + 0x5e, 0xc2, 0x93, 0xa9, 0x39, 0x8a, 0x72, 0x66, + 0xb9, 0xe9, 0xba, 0xc7, 0x07, 0xc0, 0xbc, 0x5b, + 0xcc, 0xad, 0x36, 0x9f, 0xa9, 0x89, 0x52, 0x27, + 0x8f, 0xfd, 0xed, 0x58, 0xff, 0x00, 0x65, 0xd4, + 0x99, 0xa6, 0xec, 0x6e, 0x6a, 0x6e, 0xa5, 0xe0, + 0xf8, 0x17, 0x8a, 0x53, 0xff, 0x00, 0x36, 0x8a, + 0xd8, 0xdf, 0xdb, 0xc5, 0x44, 0xf5, 0xfd, 0x7e, + 0xc8, 0x86, 0x19, 0x21, 0xb6, 0x37, 0x27, 0xde, + 0x1c, 0x7e, 0x62, 0xf1, 0x52, 0x24, 0xfe, 0x6d, + 0x16, 0x44, 0x9a, 0xa9, 0xe3, 0x0a, 0x77, 0x7e, + 0xfd, 0x5f, 0x65, 0x44, 0x64, 0x9b, 0xb1, 0x25, + 0xfe, 0x7c, 0x47, 0xe0, 0x1e, 0x2a, 0xad, 0x23, + 0x1d, 0x3c, 0x56, 0xc4, 0x74, 0x0d, 0x44, 0x78, + 0x6c, 0x5f, 0x70, 0xb7, 0xb4, 0x6d, 0x97, 0x5a, + 0xfa, 0x9b, 0x7f, 0xa5, 0xfe, 0x64, 0xf1, 0x4d, + 0xc7, 0xc3, 0x42, 0x2d, 0xef, 0x69, 0xa2, 0xaf, + 0xad, 0xf5, 0x7d, 0x91, 0xfb, 0xbe, 0xae, 0xf6, + 0x38, 0x1e, 0x0d, 0xe2, 0xa2, 0xff, 0x00, 0x9b, + 0xc6, 0x2d, 0xbd, 0xa5, 0x84, 0x5d, 0x9d, 0xf2, + 0xea, 0xde, 0x1a, 0xbe, 0x9f, 0x55, 0xf7, 0x03, + 0xdc, 0x78, 0x2f, 0x88, 0xf5, 0x86, 0x80, 0x6e, + 0x41, 0xe9, 0x96, 0x00, 0xa5, 0x81, 0x53, 0xd7, + 0x6d, 0x7c, 0x91, 0x56, 0x05, 0x17, 0xe9, 0x5d, + 0xb8, 0x5f, 0x05, 0xf1, 0x31, 0x24, 0x8f, 0xc8, + 0xf5, 0x72, 0xd7, 0x0e, 0x7c, 0x3c, 0xb6, 0xc5, + 0xe3, 0x36, 0xe3, 0x2f, 0x42, 0xd3, 0x14, 0x03, + 0xae, 0xd6, 0x3c, 0x86, 0xdb, 0x1f, 0x0a, 0xf1, + 0x00, 0x59, 0x86, 0x90, 0xee, 0xd0, 0xec, 0xb3, + 0x41, 0xd7, 0x83, 0xc3, 0x90, 0x96, 0xe4, 0x17, + 0xa7, 0x50, 0x8c, 0x63, 0x5d, 0xdf, 0xa6, 0x3b, + 0x4f, 0x97, 0xfe, 0xa9, 0xff, 0x00, 0xa7, 0xf2, + 0x7f, 0x9f, 0xe1, 0xc0, 0xfe, 0xff, 0x00, 0xf5, + 0x03, 0xfd, 0x4f, 0xb7, 0xfe, 0x2f, 0xff, 0xc4, + 0x00, 0x48, 0x10, 0x00, 0x02, 0x02, 0x01, 0x03, + 0x03, 0x02, 0x03, 0x04, 0x04, 0x09, 0x08, 0x0b, + 0x01, 0x00, 0x00, 0x02, 0x03, 0x01, 0x04, 0x12, + 0x05, 0x11, 0x13, 0x00, 0x14, 0x21, 0x22, 0x23, + 0x06, 0x15, 0x31, 0x24, 0x32, 0x33, 0x41, 0x42, + 0x51, 0x61, 0x91, 0x16, 0x25, 0x34, 0x35, 0x36, + 0x43, 0x52, 0x73, 0x81, 0x10, 0x44, 0x93, 0x94, + 0xc1, 0xd3, 0xd4, 0xf1, 0x40, 0x53, 0x54, 0x60, + 0x64, 0x70, 0x71, 0x72, 0x95, 0xa1, 0xa3, 0xb1, + 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x06, + 0x3f, 0x02, 0xff, 0x00, 0xc8, 0x2c, 0x6d, 0xb0, + 0xf9, 0x71, 0x12, 0x84, 0x28, 0x32, 0x61, 0x09, + 0x4e, 0xd9, 0x46, 0x58, 0x2f, 0x6f, 0xaf, 0xd5, + 0x91, 0x3e, 0x27, 0x6d, 0xe7, 0xaf, 0x21, 0xa8, + 0x7f, 0xab, 0xaf, 0xfd, 0xff, 0x00, 0x5f, 0x76, + 0xff, 0x00, 0xfa, 0x05, 0x7f, 0xc4, 0x74, 0x99, + 0xb4, 0x3a, 0x92, 0xa2, 0xc0, 0x13, 0x11, 0x33, + 0x50, 0x36, 0x60, 0x0b, 0x09, 0x44, 0x43, 0x23, + 0x62, 0x7c, 0x43, 0x00, 0xc2, 0x7f, 0x68, 0xcf, + 0x5f, 0x7f, 0x51, 0xff, 0x00, 0x53, 0x8f, 0xf7, + 0xdd, 0x7d, 0xfd, 0x47, 0xfd, 0x4e, 0x3f, 0xdf, + 0xf5, 0x3c, 0x43, 0xab, 0xba, 0x47, 0x6d, 0xe1, + 0x5a, 0x74, 0xb2, 0x63, 0x79, 0xda, 0x3c, 0x03, + 0x67, 0xeb, 0x3e, 0x23, 0xf5, 0xcf, 0x8e, 0xbb, + 0x15, 0x96, 0xa6, 0xbb, 0x10, 0xb3, 0x71, 0x0d, + 0x8a, 0x1c, 0x38, 0x28, 0x17, 0xcb, 0x25, 0x39, + 0xb7, 0x7f, 0xb9, 0x8c, 0x8c, 0x44, 0x49, 0x16, + 0x51, 0x8c, 0x4e, 0xfd, 0x52, 0xe3, 0x7d, 0xbf, + 0xb7, 0xd7, 0x7d, 0xb4, 0xef, 0x5c, 0x7c, 0x55, + 0xaf, 0x10, 0x46, 0xe6, 0x40, 0xb8, 0xa4, 0x06, + 0x60, 0xa3, 0x10, 0xdb, 0x96, 0x7f, 0x35, 0xc7, + 0x54, 0x77, 0x75, 0xc0, 0xf9, 0x85, 0x56, 0xde, + 0xaf, 0x95, 0x68, 0x9f, 0xb1, 0x2b, 0x1d, 0xec, + 0x94, 0x2d, 0xa7, 0x38, 0x96, 0x51, 0x82, 0xc7, + 0x2b, 0x13, 0xf9, 0xa6, 0x3a, 0xaa, 0x28, 0x65, + 0xe9, 0x9b, 0x75, 0x1d, 0x7d, 0x5f, 0x65, 0xff, + 0x00, 0x31, 0x4f, 0x1c, 0x95, 0xa9, 0xc5, 0xa5, + 0xb8, 0x4f, 0x28, 0x62, 0xa5, 0xe7, 0x67, 0xcf, + 0x94, 0x0f, 0x54, 0x49, 0xac, 0xbc, 0xb1, 0xd4, + 0x6a, 0x1e, 0xa1, 0x5e, 0x66, 0xac, 0x1f, 0xd8, + 0x46, 0x02, 0x7b, 0xa3, 0xe1, 0x6b, 0x36, 0x02, + 0x86, 0x0e, 0x2a, 0x8c, 0xac, 0xc6, 0xfb, 0x9a, + 0x02, 0x3c, 0xf5, 0x53, 0x07, 0xdf, 0x69, 0xde, + 0x28, 0x84, 0x29, 0x75, 0x07, 0x39, 0xcf, 0x08, + 0x5c, 0x9c, 0x93, 0x85, 0x41, 0x0c, 0xe4, 0x1d, + 0xa0, 0x9b, 0x06, 0x31, 0xe5, 0x82, 0x11, 0xe7, + 0xac, 0x65, 0x3a, 0xa0, 0xcc, 0xae, 0x59, 0x12, + 0x49, 0xa5, 0x02, 0x43, 0x1c, 0xbf, 0x74, 0xfe, + 0x61, 0x8c, 0xcf, 0xb2, 0xdd, 0xe2, 0x27, 0xc6, + 0x3e, 0x76, 0x89, 0x1d, 0xcd, 0x2f, 0x9d, 0x61, + 0x6c, 0x59, 0x48, 0x94, 0x4e, 0x9e, 0x3f, 0xa3, + 0x32, 0x3b, 0x8c, 0xc5, 0x8d, 0x88, 0x77, 0x89, + 0xd8, 0x86, 0x64, 0x4b, 0xea, 0x33, 0x31, 0xd7, + 0xe2, 0x6a, 0xff, 0x00, 0xfc, 0x7c, 0x7f, 0xc4, + 0x74, 0x0d, 0x6d, 0x8b, 0xf5, 0x41, 0xbe, 0x53, + 0xdc, 0x53, 0xc4, 0x9b, 0x1e, 0x63, 0x20, 0x5a, + 0xda, 0xd6, 0xc2, 0xb7, 0x89, 0x1e, 0x63, 0x00, + 0x4e, 0xfb, 0xc4, 0x1c, 0xed, 0x3b, 0x15, 0x5a, + 0xeb, 0xd5, 0x58, 0xd1, 0x54, 0x3f, 0xf0, 0x29, + 0x82, 0x8d, 0x25, 0x3b, 0x43, 0x54, 0xf3, 0xbe, + 0x29, 0x68, 0x4c, 0xfe, 0x6b, 0x32, 0xf3, 0x12, + 0x33, 0xb1, 0x0c, 0xc7, 0x50, 0x99, 0xaf, 0xa8, + 0x91, 0xc8, 0x29, 0x9e, 0xd1, 0x69, 0x0d, 0x81, + 0x17, 0xd8, 0xaf, 0x51, 0x59, 0x1a, 0xf5, 0x62, + 0x01, 0x29, 0x7d, 0xa4, 0x04, 0x84, 0xce, 0x43, + 0x9c, 0x99, 0x44, 0x00, 0x30, 0x85, 0x47, 0x72, + 0xa6, 0xb8, 0xa0, 0x7e, 0x50, 0x93, 0x1a, 0xb4, + 0xde, 0x0c, 0x91, 0x11, 0x22, 0xc4, 0x91, 0xa8, + 0x32, 0x3c, 0x41, 0x8f, 0xfc, 0xe2, 0x7a, 0x86, + 0xba, 0x35, 0x35, 0x94, 0xd2, 0x56, 0xa5, 0xc1, + 0xda, 0xad, 0x8f, 0x8d, 0x3d, 0xb8, 0xe3, 0x70, + 0x85, 0x36, 0x18, 0x30, 0xbf, 0x54, 0x6e, 0x19, + 0xcb, 0xe3, 0x62, 0xdd, 0x5b, 0x09, 0x4c, 0x6f, + 0xde, 0x59, 0xf2, 0x00, 0xf1, 0x8e, 0x01, 0xca, + 0x6b, 0x1e, 0xdf, 0x69, 0xdb, 0x97, 0xd0, 0x11, + 0x94, 0x4c, 0xac, 0xf1, 0xb3, 0xf5, 0xf6, 0x3d, + 0x33, 0xb3, 0x58, 0x0f, 0xb4, 0x50, 0xaa, 0xc1, + 0x77, 0x6e, 0x34, 0x41, 0x1d, 0x23, 0x90, 0x88, + 0xb6, 0x22, 0x56, 0x46, 0x61, 0x5e, 0xe0, 0x6e, + 0x2c, 0xc1, 0xd1, 0xbc, 0xfb, 0x5e, 0xdb, 0x30, + 0x7f, 0x0d, 0xab, 0x0d, 0xe0, 0x40, 0xda, 0xd8, + 0x01, 0x1b, 0xb2, 0xa9, 0x61, 0xef, 0xae, 0x0a, + 0xc4, 0x4e, 0x23, 0xc8, 0x19, 0x03, 0x38, 0xdd, + 0x1e, 0xa9, 0xe3, 0xd9, 0x6c, 0xc0, 0xc2, 0xb5, + 0x96, 0x3b, 0x14, 0xaa, 0xc0, 0xe2, 0x55, 0x23, + 0x95, 0x0d, 0x90, 0x88, 0x60, 0x01, 0xdb, 0x16, + 0x6d, 0x12, 0xc0, 0xdc, 0x58, 0x0b, 0x3d, 0xe7, + 0x68, 0x19, 0x91, 0x3c, 0x61, 0xaa, 0x9c, 0x80, + 0xbe, 0x9f, 0xf2, 0xfc, 0xbf, 0xc7, 0xcf, 0x48, + 0xdb, 0xfe, 0xc0, 0xad, 0xff, 0x00, 0xd3, 0xd8, + 0xff, 0x00, 0x66, 0xdf, 0xe4, 0xfa, 0xfd, 0x3f, + 0x5f, 0x4a, 0x04, 0x85, 0x56, 0xf3, 0xf0, 0xca, + 0xe2, 0xd2, 0x57, 0x62, 0x02, 0x40, 0x2b, 0xc0, + 0xc4, 0x73, 0x6e, 0x20, 0x32, 0xcd, 0xe4, 0xa3, + 0x68, 0x19, 0xde, 0x77, 0xfa, 0x96, 0xf1, 0xdc, + 0x62, 0x32, 0x53, 0x31, 0x11, 0x0c, 0x03, 0xf3, + 0x02, 0xb3, 0x9d, 0xf0, 0x99, 0xf1, 0x8b, 0x03, + 0x6f, 0xcb, 0xef, 0x0f, 0xd4, 0x4a, 0x20, 0xb5, + 0x3b, 0x7a, 0x38, 0xdf, 0x41, 0x35, 0x42, 0x83, + 0x6d, 0xd9, 0xae, 0xb2, 0xdd, 0xa4, 0xa6, 0x06, + 0x0a, 0x2e, 0x72, 0xf5, 0x81, 0x7a, 0xc4, 0x76, + 0x0f, 0x39, 0xc7, 0xad, 0x73, 0xd6, 0xa9, 0x0d, + 0x46, 0x9b, 0x85, 0x53, 0x6d, 0x16, 0x91, 0xb9, + 0xb6, 0x51, 0xdd, 0x0e, 0x96, 0xed, 0x61, 0x64, + 0x81, 0xd9, 0x0c, 0x92, 0x42, 0x15, 0x8c, 0x34, + 0xf1, 0x81, 0x37, 0x63, 0x8b, 0x27, 0xc7, 0x57, + 0x01, 0xfa, 0x75, 0x10, 0xce, 0xb2, 0x8c, 0xa9, + 0x36, 0x3b, 0x3a, 0xed, 0x11, 0x1d, 0xaa, 0xb5, + 0x44, 0xf9, 0xbb, 0x8c, 0x21, 0x4c, 0xfc, 0x28, + 0x67, 0x0b, 0x2b, 0x23, 0x79, 0x59, 0xc8, 0xed, + 0x35, 0x55, 0x4e, 0xa5, 0x4b, 0xb1, 0x52, 0x1d, + 0x0c, 0xd8, 0x48, 0x8a, 0xec, 0x9e, 0x23, 0xce, + 0x6b, 0xdc, 0xcc, 0x23, 0x08, 0x2c, 0x52, 0x52, + 0x75, 0x97, 0x97, 0xa5, 0x51, 0xb4, 0xcb, 0x34, + 0xe1, 0x8d, 0x2b, 0x29, 0xab, 0xcc, 0x0c, 0x16, + 0x2c, 0xcf, 0xba, 0xb0, 0xed, 0xb6, 0xde, 0x0d, + 0x5e, 0x00, 0x44, 0x0e, 0x62, 0xb6, 0x46, 0x90, + 0x93, 0x33, 0x10, 0xf0, 0x59, 0xd1, 0x37, 0xe9, + 0xaa, 0x68, 0x2f, 0xbb, 0xe4, 0x52, 0xc9, 0x46, + 0xc3, 0x32, 0xd8, 0x3e, 0xd5, 0x8c, 0x97, 0x12, + 0x20, 0xe0, 0xb8, 0xd0, 0xc8, 0x85, 0x94, 0x93, + 0x26, 0x06, 0x77, 0xdc, 0xf4, 0x90, 0x9d, 0x24, + 0xd5, 0x15, 0x80, 0x82, 0xe3, 0x5d, 0xb3, 0x56, + 0xf7, 0x36, 0x57, 0x12, 0xe2, 0x58, 0x8e, 0x7d, + 0xb0, 0xc0, 0x19, 0xcd, 0x38, 0xcd, 0x7e, 0xe9, + 0xc0, 0x84, 0xed, 0x30, 0xdd, 0x36, 0xb6, 0xa3, + 0xa2, 0x15, 0x7e, 0x2d, 0xca, 0xdb, 0xe0, 0xa2, + 0x55, 0xa8, 0x38, 0x59, 0x02, 0xc5, 0xd7, 0xb6, + 0x99, 0x95, 0xf0, 0x90, 0x2a, 0x66, 0x41, 0x2d, + 0x99, 0xae, 0xc6, 0x98, 0x62, 0x24, 0xa9, 0xdf, + 0x75, 0xe8, 0x47, 0x18, 0xaa, 0x62, 0x63, 0xe6, + 0x2f, 0xe3, 0x26, 0x4f, 0x2e, 0x04, 0x72, 0x70, + 0x45, 0x03, 0xeb, 0x56, 0xe0, 0xb3, 0x02, 0x3e, + 0x1f, 0x0c, 0x1e, 0x42, 0x98, 0x08, 0x35, 0xc7, + 0x12, 0xa5, 0x91, 0x5c, 0x39, 0xa0, 0xe5, 0x2b, + 0x39, 0x89, 0x8a, 0xfc, 0xf3, 0x3c, 0xac, 0x5a, + 0x86, 0x06, 0x14, 0x2c, 0x22, 0xe3, 0x8d, 0xf0, + 0x81, 0xcc, 0xb7, 0x7c, 0x02, 0x4a, 0xca, 0xf8, + 0xb6, 0x4b, 0xb9, 0x65, 0x32, 0x0c, 0x98, 0x09, + 0xe5, 0x95, 0x7b, 0x92, 0x50, 0xb2, 0xc8, 0x30, + 0x99, 0x88, 0x3f, 0xbd, 0x90, 0xf5, 0x71, 0xbf, + 0x14, 0xac, 0x8f, 0x4f, 0xba, 0xb5, 0xb2, 0x9b, + 0x57, 0x56, 0x2c, 0x8b, 0x6b, 0x0d, 0x71, 0x5a, + 0xf4, 0xe0, 0xc7, 0x7e, 0x16, 0xd7, 0x91, 0xed, + 0xcc, 0x27, 0x0c, 0x4d, 0x7b, 0x9e, 0xde, 0x26, + 0x69, 0x15, 0x08, 0x2a, 0x8f, 0x55, 0x9b, 0xf6, + 0xeb, 0xf2, 0x40, 0xcb, 0x2a, 0x51, 0xb0, 0x4a, + 0x8a, 0x70, 0xe8, 0x2d, 0xf6, 0x28, 0xc6, 0xc3, + 0x80, 0x4c, 0x77, 0xd9, 0xc0, 0xd0, 0x8d, 0x9a, + 0x05, 0x36, 0x6a, 0xde, 0xb2, 0x46, 0x4f, 0x87, + 0xfa, 0xbb, 0x2a, 0x27, 0x07, 0x2c, 0x4c, 0x94, + 0x1b, 0x26, 0x42, 0x0c, 0x1b, 0x36, 0xf8, 0xdb, + 0x2d, 0x0f, 0x79, 0x60, 0x21, 0x20, 0x59, 0x8c, + 0x47, 0x4b, 0x54, 0x3d, 0x91, 0x99, 0xc0, 0x0c, + 0xe0, 0xec, 0x46, 0x4a, 0x60, 0x77, 0xfb, 0x93, + 0xb4, 0x47, 0x8d, 0xe7, 0x6f, 0xa7, 0x4a, 0xa3, + 0x5e, 0x95, 0x2b, 0x38, 0x69, 0xfd, 0xe1, 0xe2, + 0x43, 0x67, 0x76, 0x29, 0x6d, 0x99, 0x33, 0xba, + 0xd0, 0x99, 0x90, 0x9e, 0x23, 0xdf, 0x4c, 0xca, + 0x41, 0xe7, 0x32, 0x00, 0x99, 0x61, 0x0f, 0x5b, + 0x37, 0x46, 0x19, 0x93, 0x98, 0x69, 0xf0, 0xe9, + 0xc6, 0xa3, 0x9b, 0x0b, 0xdf, 0x63, 0xda, 0x11, + 0x8a, 0x2a, 0x32, 0x4a, 0x60, 0xa9, 0x2a, 0x05, + 0x12, 0x31, 0xb4, 0x0e, 0xf0, 0x06, 0x3c, 0x13, + 0xf0, 0xd7, 0x29, 0xea, 0x10, 0x00, 0xbc, 0x6b, + 0xf6, 0x42, 0xbb, 0xa6, 0x58, 0x29, 0x80, 0xc9, + 0x5e, 0xd5, 0x68, 0xe5, 0x3e, 0xf5, 0x58, 0xc1, + 0x06, 0x13, 0x25, 0x38, 0x62, 0xb3, 0x1b, 0x61, + 0x6b, 0xe1, 0x7a, 0x75, 0x0c, 0xab, 0x2d, 0x25, + 0x36, 0x2c, 0xab, 0x4e, 0x0e, 0xf6, 0x03, 0x28, + 0xb3, 0x41, 0xa4, 0x70, 0x9e, 0xd9, 0x83, 0xeb, + 0x65, 0x5a, 0x86, 0xc8, 0x62, 0x99, 0x98, 0xfa, + 0x44, 0x18, 0x3c, 0xd6, 0x29, 0x68, 0x52, 0xc2, + 0x7e, 0x6e, 0x5d, 0x2b, 0x3a, 0x71, 0x92, 0x57, + 0x52, 0xa5, 0x6b, 0x5c, 0x88, 0x75, 0x7b, 0xd3, + 0xda, 0x09, 0x93, 0x40, 0x4e, 0xaa, 0x96, 0x44, + 0xf2, 0x27, 0x0c, 0x4c, 0xf1, 0x62, 0x34, 0x88, + 0xb6, 0xdc, 0xc6, 0x4b, 0xc7, 0xed, 0x9e, 0xaa, + 0xfe, 0xda, 0x03, 0x3f, 0xfe, 0xee, 0x8f, 0xf6, + 0x75, 0x3d, 0x46, 0xfd, 0x53, 0xe2, 0x59, 0x2d, + 0xa3, 0x49, 0xbc, 0xcd, 0xdf, 0x2e, 0x42, 0xe5, + 0xdc, 0x38, 0xe3, 0x8c, 0xe5, 0x7b, 0x2e, 0x44, + 0x08, 0xb7, 0x19, 0x29, 0x09, 0x9d, 0xe2, 0x07, + 0x7e, 0xb5, 0x41, 0xc6, 0x6c, 0x10, 0x69, 0xcd, + 0x25, 0x01, 0x7b, 0x93, 0x0c, 0xe3, 0x66, 0x12, + 0x12, 0x49, 0x76, 0x27, 0x96, 0x38, 0xe2, 0x69, + 0x92, 0x9d, 0x86, 0x0a, 0x4b, 0x6e, 0xbe, 0x1e, + 0xa7, 0x8b, 0x2b, 0xb5, 0x9a, 0xc2, 0x54, 0x4c, + 0x95, 0xe2, 0x42, 0xcf, 0x9c, 0xd8, 0x5c, 0x4f, + 0xbc, 0x84, 0xa5, 0x86, 0x99, 0x99, 0xf4, 0xb0, + 0xee, 0x40, 0x4c, 0x62, 0x5c, 0x1f, 0x72, 0x75, + 0xed, 0xd6, 0x5c, 0x67, 0xae, 0xda, 0x6a, 0xd8, + 0x92, 0x57, 0x24, 0xca, 0xfe, 0x16, 0xb2, 0xba, + 0xfb, 0xa1, 0xc5, 0x64, 0xe4, 0x25, 0x49, 0x64, + 0xd9, 0x76, 0x72, 0xb2, 0x91, 0x29, 0x1e, 0x29, + 0x91, 0x5f, 0x55, 0x2c, 0xc2, 0x99, 0x8d, 0x35, + 0x57, 0x31, 0xae, 0xb5, 0x85, 0x66, 0x30, 0xec, + 0x51, 0x6e, 0x7e, 0xa3, 0xa9, 0xa7, 0x91, 0x43, + 0x31, 0xda, 0x4d, 0x9c, 0xd1, 0x31, 0xea, 0x5d, + 0x8b, 0x1b, 0xee, 0x4c, 0xb9, 0x55, 0xd7, 0xa8, + 0x85, 0x9a, 0x4b, 0x58, 0x5a, 0xc9, 0xbc, 0xf8, + 0xd7, 0x4a, 0xc3, 0x64, 0xb3, 0xba, 0x7b, 0xd7, + 0x0d, 0x7d, 0x6e, 0x19, 0x62, 0xdd, 0x03, 0x03, + 0x32, 0x25, 0x02, 0xbc, 0x83, 0xae, 0x50, 0xd6, + 0x2f, 0x6a, 0x28, 0x57, 0x13, 0x6c, 0x12, 0xed, + 0xea, 0x52, 0xa9, 0xdd, 0xb3, 0xed, 0xb5, 0x99, + 0x26, 0xc2, 0xcd, 0x98, 0xe3, 0xc8, 0xb9, 0x06, + 0x62, 0x78, 0x83, 0x3c, 0x94, 0x75, 0x11, 0xf3, + 0xcd, 0x65, 0xbb, 0x88, 0x32, 0x09, 0x3a, 0x95, + 0xa6, 0x07, 0xb8, 0x30, 0x78, 0xe5, 0xdc, 0xf8, + 0x30, 0xdf, 0x13, 0x19, 0xf2, 0x07, 0x12, 0x25, + 0xe6, 0x3a, 0xe2, 0xf9, 0xb6, 0xb5, 0x2e, 0x39, + 0x1e, 0x1e, 0x4d, 0x46, 0xc0, 0x2a, 0x4b, 0x78, + 0x92, 0x86, 0x99, 0x5b, 0x08, 0x18, 0xe3, 0x83, + 0x91, 0x99, 0x29, 0xc8, 0xf1, 0x1d, 0xbc, 0xf4, + 0x8a, 0xfa, 0xf6, 0xa9, 0xaa, 0xd8, 0xb0, 0x93, + 0x92, 0x8a, 0x7a, 0x7d, 0x4b, 0xce, 0xd2, 0x86, + 0xe5, 0x8c, 0xb7, 0xe2, 0x90, 0xd3, 0xd9, 0x10, + 0xd2, 0xc9, 0x51, 0xc8, 0xd3, 0x6d, 0x8c, 0x61, + 0x8b, 0x9f, 0x4f, 0xdd, 0x38, 0x27, 0xea, 0x03, + 0x3c, 0xf2, 0x75, 0xca, 0x2b, 0x5a, 0x54, 0x3e, + 0xa7, 0x72, 0x28, 0x15, 0x84, 0x36, 0x80, 0x91, + 0x5b, 0x2c, 0xc5, 0x64, 0x6b, 0x82, 0x50, 0x17, + 0xac, 0x67, 0x19, 0x88, 0xea, 0xa5, 0x68, 0x72, + 0x9d, 0x45, 0x62, 0x15, 0x49, 0x5a, 0x85, 0x22, + 0x13, 0x06, 0x3b, 0x25, 0x8b, 0x04, 0xed, 0x51, + 0x45, 0x60, 0x64, 0x76, 0xe2, 0xa6, 0xd9, 0x76, + 0xe7, 0x10, 0x33, 0x2c, 0x2c, 0x0a, 0x03, 0xa5, + 0xfc, 0xa4, 0x29, 0xde, 0x06, 0x11, 0x84, 0xd7, + 0xb6, 0xaa, 0xcf, 0x3a, 0x8c, 0x41, 0x63, 0xbc, + 0xc7, 0x1a, 0x78, 0xab, 0x4a, 0x26, 0xb0, 0x0b, + 0x66, 0x65, 0x64, 0x63, 0x86, 0x64, 0x52, 0x52, + 0x6e, 0xab, 0x5e, 0xa5, 0x4a, 0xec, 0x8b, 0x10, + 0xb6, 0x05, 0x54, 0x98, 0x2f, 0x98, 0xa1, 0x88, + 0x1d, 0x89, 0x0e, 0x85, 0x96, 0x7c, 0x93, 0xc7, + 0x3b, 0x97, 0xa8, 0x44, 0xd7, 0x39, 0x6f, 0x33, + 0xdc, 0xb4, 0x34, 0xd5, 0x5f, 0x25, 0x5a, 0x61, + 0xc2, 0x69, 0xd0, 0xec, 0xc9, 0xab, 0x12, 0xb1, + 0x54, 0x98, 0x45, 0x5f, 0xdc, 0x64, 0x93, 0x84, + 0xce, 0xc9, 0x3f, 0x78, 0x43, 0x65, 0xd2, 0xdd, + 0xb0, 0x9e, 0x99, 0xd8, 0x23, 0x49, 0x91, 0x4b, + 0xa2, 0x93, 0xdb, 0x63, 0x48, 0x41, 0x70, 0x59, + 0xb6, 0x16, 0xd1, 0x35, 0x44, 0xc2, 0xab, 0x48, + 0x85, 0x8b, 0xce, 0x60, 0x95, 0x12, 0x6c, 0x99, + 0x86, 0x7f, 0x55, 0x07, 0xd2, 0xed, 0x82, 0xb4, + 0xf6, 0x55, 0xb2, 0xee, 0x18, 0x24, 0x2d, 0xac, + 0x02, 0x86, 0xa0, 0xc9, 0x7e, 0x92, 0x23, 0x5f, + 0x0b, 0xea, 0xe7, 0xc7, 0xe9, 0x13, 0x24, 0x94, + 0x64, 0x31, 0xe8, 0xeb, 0x45, 0x49, 0x4c, 0x69, + 0xd1, 0x6e, 0xd5, 0x6d, 0xc7, 0x4a, 0x58, 0xd7, + 0x92, 0x43, 0x2c, 0xf1, 0x48, 0x39, 0x34, 0xb7, + 0x6b, 0xa3, 0x21, 0x32, 0xed, 0x78, 0x0b, 0x76, + 0x49, 0x32, 0x14, 0xc6, 0xb8, 0xa4, 0xf4, 0xd7, + 0xaf, 0x50, 0xd4, 0x3d, 0x76, 0xcc, 0x88, 0x05, + 0x7a, 0xce, 0x9e, 0x2c, 0x5f, 0x1a, 0x99, 0xc2, + 0x46, 0x75, 0xa8, 0x49, 0x84, 0x84, 0xac, 0x71, + 0x5b, 0x8d, 0x88, 0x8f, 0x54, 0x63, 0xc9, 0xc8, + 0x74, 0xdc, 0xab, 0x4c, 0x24, 0xb9, 0x41, 0x75, + 0x28, 0xb0, 0x56, 0x9e, 0x4b, 0x72, 0xac, 0x29, + 0x6c, 0x64, 0xda, 0xb2, 0x4b, 0x73, 0x39, 0x5f, + 0xa6, 0xe5, 0xc5, 0x9d, 0x9a, 0xaa, 0x53, 0x9c, + 0xa8, 0xf5, 0x1b, 0xa3, 0xaa, 0xb6, 0x2f, 0x57, + 0xb9, 0x6b, 0x05, 0x0c, 0x77, 0x03, 0x0c, 0x4d, + 0xce, 0x39, 0x3a, 0xac, 0x44, 0xd3, 0x4d, 0x8a, + 0xaf, 0xab, 0x15, 0x84, 0x5c, 0xc5, 0x42, 0xd5, + 0xa9, 0xb2, 0x59, 0x06, 0x56, 0xcd, 0x68, 0x22, + 0xe0, 0x66, 0xa3, 0xf2, 0xcd, 0x4e, 0xda, 0x54, + 0x51, 0x5d, 0xcc, 0xd8, 0x13, 0x72, 0x67, 0xb8, + 0x97, 0xa6, 0x2a, 0x83, 0x23, 0x81, 0x6e, 0x09, + 0xaf, 0xbf, 0x77, 0x20, 0x81, 0x20, 0x29, 0xc1, + 0x56, 0xb2, 0x51, 0xef, 0x57, 0x4b, 0x97, 0x01, + 0xd9, 0x4d, 0x71, 0x6c, 0x88, 0xcf, 0xf5, 0x64, + 0x45, 0x10, 0x5f, 0xb3, 0xd4, 0x24, 0x25, 0x1f, + 0x91, 0x44, 0xc7, 0x55, 0x3c, 0xc7, 0xf3, 0x6a, + 0xf7, 0xf3, 0xff, 0x00, 0x8a, 0xb9, 0xe2, 0x7f, + 0xc3, 0xff, 0x00, 0xa9, 0xff, 0x00, 0x2d, 0x42, + 0x5a, 0xe2, 0x14, 0xc5, 0x14, 0x2a, 0x5c, 0xe1, + 0x58, 0x38, 0x47, 0x08, 0x29, 0x01, 0x29, 0xf7, + 0x04, 0x5c, 0x24, 0xb2, 0x88, 0x89, 0xdd, 0xb8, + 0xc6, 0x33, 0xbf, 0x51, 0x7e, 0xa6, 0xac, 0x31, + 0xa9, 0x1a, 0x92, 0xd5, 0x8a, 0x07, 0x84, 0x1f, + 0x2e, 0x8d, 0x8e, 0x8f, 0x2a, 0xd9, 0x11, 0x98, + 0xc9, 0xe0, 0x59, 0xc4, 0x46, 0x6b, 0xe3, 0x8f, + 0x5c, 0x98, 0xf5, 0x5b, 0x4b, 0x6c, 0xc0, 0x6a, + 0xb0, 0xc2, 0x7b, 0x82, 0x63, 0x76, 0xe1, 0xde, + 0x59, 0x30, 0x26, 0x3a, 0x29, 0x2f, 0x7f, 0x07, + 0x18, 0xf2, 0x6a, 0x16, 0xe7, 0xcf, 0xa4, 0x13, + 0xea, 0x18, 0xe5, 0x75, 0xa6, 0x5b, 0x16, 0x72, + 0x09, 0xa9, 0xd7, 0x9a, 0x79, 0x1d, 0x8a, 0xc5, + 0x57, 0xb8, 0x28, 0xe5, 0xf5, 0x1a, 0xd3, 0x31, + 0x10, 0x73, 0x39, 0x62, 0x10, 0xa9, 0xdd, 0x7e, + 0x9e, 0x8d, 0xba, 0x5d, 0xdb, 0x34, 0x35, 0x64, + 0x58, 0xd3, 0x15, 0x04, 0xaa, 0xc6, 0x9a, 0x8a, + 0xda, 0x0f, 0x92, 0xd3, 0x9e, 0xbd, 0x2b, 0x49, + 0x2a, 0x36, 0x6a, 0x1e, 0x30, 0x19, 0xa9, 0xf3, + 0x6d, 0x8c, 0x81, 0xee, 0x59, 0xbf, 0x20, 0xd8, + 0x0a, 0xec, 0x16, 0x1a, 0x2b, 0x82, 0xdd, 0x68, + 0xad, 0xf7, 0x0a, 0xd8, 0x80, 0x2d, 0xc8, 0x4b, + 0x05, 0xb0, 0x35, 0xbb, 0x9e, 0x47, 0xb1, 0xca, + 0x25, 0x29, 0x56, 0x5c, 0xba, 0xf5, 0xe9, 0x59, + 0xb5, 0x79, 0xc4, 0x8e, 0xaf, 0x6a, 0xcc, 0xc6, + 0xb6, 0x9d, 0x0b, 0x68, 0xcb, 0xc8, 0x38, 0x90, + 0x76, 0x57, 0xed, 0xb4, 0xa9, 0x2a, 0x09, 0xe9, + 0x61, 0x4c, 0xce, 0x60, 0xb7, 0x44, 0x41, 0x37, + 0x18, 0x42, 0xc5, 0x9b, 0xf1, 0x36, 0x68, 0x5c, + 0x6f, 0xcc, 0xeb, 0x13, 0x60, 0xe9, 0x98, 0xab, + 0x91, 0xc3, 0x27, 0x03, 0x56, 0x52, 0xad, 0xd8, + 0xe6, 0x41, 0x0e, 0x46, 0xd3, 0xdf, 0x68, 0x3d, + 0x91, 0xb8, 0x9c, 0x2e, 0x6c, 0xb2, 0x2b, 0xac, + 0x9e, 0x55, 0xfc, 0xb3, 0x65, 0x6d, 0x2a, 0xf0, + 0x53, 0xea, 0xf7, 0x22, 0x23, 0xc0, 0x1f, 0xe5, + 0xf4, 0x89, 0xfc, 0xba, 0x68, 0x3d, 0xd5, 0xf9, + 0x84, 0x98, 0x0c, 0x22, 0xd3, 0x34, 0x9e, 0x61, + 0x3d, 0xf1, 0x67, 0xb9, 0xd9, 0x67, 0x07, 0x90, + 0x47, 0xaa, 0x0b, 0x7c, 0x86, 0x0b, 0x7d, 0xc6, + 0x27, 0xab, 0xcc, 0xb7, 0x1a, 0x57, 0x71, 0x5e, + 0xee, 0x9e, 0x9a, 0xcd, 0x7e, 0x8b, 0x48, 0xcf, + 0xde, 0xa9, 0xab, 0x30, 0xc6, 0x0e, 0xb6, 0x98, + 0xd3, 0xde, 0x5a, 0x85, 0x58, 0x36, 0xb3, 0x6f, + 0x52, 0xb9, 0x32, 0x29, 0xc8, 0x49, 0xad, 0x85, + 0xe9, 0x36, 0xb6, 0x66, 0x9e, 0x7d, 0xad, 0x5a, + 0x33, 0x5b, 0x7c, 0x3b, 0xce, 0x49, 0x93, 0x8a, + 0x34, 0x8d, 0x80, 0x58, 0x40, 0x8c, 0x73, 0xee, + 0xbc, 0x08, 0x77, 0x5c, 0x4c, 0xc9, 0x58, 0x0c, + 0x13, 0x42, 0x06, 0xe5, 0xb7, 0x1b, 0xac, 0x57, + 0x91, 0x6b, 0xa5, 0x6a, 0xe1, 0x90, 0xc9, 0x64, + 0xc6, 0x08, 0xc9, 0x92, 0x86, 0xbc, 0x82, 0xbb, + 0x77, 0xe7, 0x91, 0xbf, 0x15, 0x44, 0xc4, 0x3f, + 0x4e, 0x25, 0xda, 0x0e, 0x37, 0x5a, 0x92, 0xa7, + 0xa9, 0x29, 0x6d, 0x4e, 0xe1, 0x5c, 0xab, 0x30, + 0xd1, 0xb9, 0x11, 0xb3, 0x38, 0x82, 0xaf, 0x90, + 0xc1, 0x89, 0x41, 0xe1, 0xb1, 0xe5, 0xd3, 0x0d, + 0x4d, 0xb0, 0x75, 0x5a, 0xe6, 0x31, 0x2d, 0x4c, + 0xeb, 0x15, 0xeb, 0x31, 0x45, 0x73, 0x86, 0x13, + 0x0b, 0xad, 0x54, 0x93, 0x2a, 0x36, 0x98, 0x57, + 0x85, 0xe3, 0x88, 0x99, 0x0a, 0x23, 0x19, 0x9d, + 0xba, 0xdf, 0x81, 0x16, 0x5e, 0xfb, 0x3d, 0xe4, + 0x52, 0xcb, 0x92, 0xd9, 0x8c, 0xe9, 0xf6, 0x2d, + 0x25, 0xeb, 0x86, 0x2e, 0x6d, 0xf2, 0x56, 0xb0, + 0x0b, 0x10, 0xb1, 0x35, 0xdc, 0x91, 0x6c, 0xb7, + 0x62, 0xe5, 0x93, 0xe4, 0xca, 0x45, 0xfa, 0x6d, + 0xc4, 0x2e, 0xb3, 0x43, 0x4c, 0x98, 0xc1, 0x0e, + 0x8e, 0x56, 0xa0, 0x8b, 0xf0, 0xd6, 0x6d, 0xb9, + 0xc6, 0xd1, 0x95, 0xed, 0x5a, 0xb0, 0xaa, 0xaa, + 0x8c, 0x77, 0x90, 0x15, 0xe4, 0xfb, 0x56, 0x1b, + 0x7d, 0x9a, 0x85, 0x2e, 0xd9, 0xd2, 0xc8, 0x3a, + 0x86, 0x22, 0x85, 0x0a, 0x97, 0x50, 0x58, 0xab, + 0x4b, 0x99, 0x69, 0xe2, 0x83, 0x05, 0x57, 0x89, + 0x9e, 0x45, 0x2a, 0x23, 0x0d, 0xbe, 0xf5, 0xb6, + 0xea, 0x55, 0xa2, 0xf3, 0x74, 0xf4, 0xf7, 0x83, + 0xc7, 0xa7, 0xd9, 0xaf, 0x80, 0x33, 0x47, 0x55, + 0x91, 0x01, 0x65, 0x7a, 0x90, 0x81, 0x78, 0xa2, + 0xb4, 0xb7, 0xdf, 0xee, 0x51, 0x2e, 0x25, 0xcf, + 0x11, 0x0b, 0x8e, 0x7a, 0x1a, 0x70, 0xaa, 0x52, + 0x4b, 0xb9, 0x49, 0x7d, 0xd3, 0xad, 0x85, 0x02, + 0x2e, 0x44, 0xa2, 0xea, 0xb9, 0x51, 0x73, 0x4e, + 0x73, 0xd7, 0x46, 0x47, 0xdb, 0x33, 0xde, 0x47, + 0xbb, 0xc9, 0xa7, 0x30, 0x18, 0x87, 0x4c, 0x7d, + 0x7a, 0x75, 0xeb, 0x3b, 0x52, 0x63, 0x67, 0x80, + 0x22, 0x89, 0x2c, 0xdd, 0xde, 0x28, 0x05, 0x20, + 0xb9, 0x36, 0x35, 0xc6, 0x0b, 0xe1, 0xf0, 0x75, + 0xab, 0x8e, 0x67, 0x16, 0x54, 0xa9, 0xce, 0x0f, + 0xa1, 0xae, 0xfa, 0xf0, 0xa8, 0xaf, 0x53, 0x4f, + 0x91, 0x25, 0xdd, 0x4d, 0xb0, 0x7c, 0xe2, 0x75, + 0x88, 0x50, 0x2a, 0x01, 0x5a, 0xf8, 0xf8, 0x33, + 0x7a, 0xc4, 0xcc, 0xc1, 0xb2, 0xd2, 0x66, 0xd9, + 0x09, 0x1e, 0xeb, 0x31, 0x60, 0xce, 0x88, 0xa9, + 0xdc, 0x37, 0xc7, 0x72, 0xb9, 0x70, 0xf1, 0xf3, + 0x11, 0xea, 0x18, 0x38, 0x82, 0xf1, 0xe2, 0x7c, + 0x7e, 0x5d, 0x6a, 0x96, 0xec, 0xd6, 0x49, 0xba, + 0xb2, 0x17, 0xc7, 0x62, 0x62, 0x8a, 0xde, 0xa8, + 0x3b, 0x29, 0x09, 0x85, 0xda, 0xbc, 0x04, 0x94, + 0xc7, 0xae, 0x7c, 0x9f, 0xa7, 0xf5, 0x09, 0x14, + 0xc4, 0x74, 0x82, 0xd1, 0x62, 0x35, 0x32, 0x34, + 0x56, 0xb3, 0x35, 0xd2, 0xea, 0xd7, 0xa9, 0xca, + 0xc1, 0xb7, 0xb9, 0x7e, 0xd1, 0xa2, 0x69, 0xe2, + 0xcf, 0x48, 0x35, 0x10, 0x58, 0x5a, 0xf4, 0x5a, + 0x0b, 0x48, 0x73, 0x1f, 0x00, 0xa1, 0x5a, 0x35, + 0x19, 0x76, 0x9c, 0x85, 0xe1, 0xc7, 0x35, 0x97, + 0xaa, 0xa5, 0x76, 0x79, 0x2a, 0xa0, 0x61, 0xee, + 0x9a, 0x57, 0x2c, 0xae, 0xe1, 0xcb, 0x66, 0x0a, + 0x4f, 0x89, 0x5c, 0x70, 0xfd, 0xeb, 0x40, 0xf2, + 0xfb, 0x64, 0xe7, 0x9d, 0xba, 0x40, 0xe1, 0x91, + 0x21, 0xe6, 0xd4, 0x10, 0x87, 0xf1, 0xd3, 0x62, + 0x6d, 0xcc, 0x2e, 0x88, 0xea, 0x35, 0x6e, 0xbe, + 0x4d, 0xc8, 0x40, 0xcf, 0x1a, 0x9a, 0x20, 0x89, + 0x75, 0x81, 0x01, 0xe3, 0x27, 0x2d, 0x15, 0x6c, + 0xab, 0x82, 0xa1, 0x56, 0x4c, 0xd7, 0xe7, 0xe5, + 0xa7, 0x56, 0x2c, 0x56, 0x95, 0xdc, 0x3b, 0xab, + 0xbd, 0x61, 0x6b, 0xde, 0x09, 0xc9, 0x93, 0x9e, + 0x4b, 0x43, 0x5d, 0x40, 0xd2, 0x61, 0x10, 0xa9, + 0x71, 0xb2, 0x82, 0xc6, 0xaf, 0x61, 0x6e, 0xaf, + 0x55, 0xe8, 0xcb, 0x47, 0x7d, 0x7d, 0x52, 0x1e, + 0x93, 0xbf, 0x7d, 0xcb, 0x1a, 0xc6, 0xad, 0x72, + 0xe4, 0xc9, 0x4d, 0x97, 0x7b, 0xaa, 0x03, 0x18, + 0x5d, 0x39, 0x8b, 0x31, 0xdc, 0x1c, 0xcf, 0x2e, + 0x94, 0xe5, 0x52, 0xb3, 0x66, 0x86, 0xa1, 0x8f, + 0x25, 0xab, 0x56, 0x49, 0x46, 0xd5, 0xf1, 0xb9, + 0x04, 0x22, 0x88, 0xd4, 0x84, 0x76, 0x6a, 0xca, + 0x2e, 0x87, 0x29, 0x4c, 0xb0, 0xd7, 0x03, 0x20, + 0x40, 0x25, 0xc8, 0xea, 0x49, 0x35, 0x69, 0x11, + 0x7a, 0xc5, 0x6d, 0xed, 0xae, 0x2d, 0x95, 0x3b, + 0x36, 0x90, 0x62, 0x0e, 0x39, 0xab, 0xcf, 0xea, + 0xec, 0x28, 0x5f, 0x2b, 0xb4, 0x9c, 0xc6, 0x19, + 0x63, 0xcd, 0x5d, 0x24, 0x45, 0x6e, 0x43, 0xa6, + 0x6b, 0x56, 0x35, 0xd8, 0xd4, 0xf4, 0xec, 0x0b, + 0x95, 0xd6, 0x3b, 0xc0, 0x29, 0x9a, 0x8b, 0x57, + 0x02, 0x40, 0xdf, 0xbc, 0x31, 0xb0, 0xb2, 0xf6, + 0xc1, 0xa0, 0x5c, 0x46, 0x90, 0x5c, 0x2b, 0x9f, + 0x1e, 0x38, 0x50, 0x4c, 0xa7, 0x4f, 0x51, 0xfb, + 0x0a, 0x9c, 0xa3, 0x39, 0x8d, 0xe3, 0xbc, 0xb5, + 0x03, 0x96, 0x4f, 0x90, 0x9f, 0x54, 0xed, 0x38, + 0x0e, 0xfe, 0x48, 0xa4, 0xcc, 0xd1, 0x67, 0x4f, + 0x7b, 0x15, 0x65, 0x51, 0xea, 0x3d, 0xfd, 0x26, + 0x33, 0xe8, 0x35, 0x97, 0xd3, 0x91, 0x2d, 0x8c, + 0xa0, 0xc2, 0x62, 0x22, 0x40, 0xb0, 0x28, 0xde, + 0x37, 0xe8, 0xaf, 0x68, 0x5c, 0x4a, 0xd5, 0x95, + 0x81, 0x6a, 0x3a, 0x57, 0x6f, 0x59, 0xc5, 0x32, + 0x26, 0x86, 0x72, 0xe9, 0xeb, 0x65, 0x77, 0x90, + 0x24, 0x8d, 0x20, 0x6e, 0x2d, 0xe3, 0xba, 0xc7, + 0x0b, 0x19, 0x3a, 0x37, 0xb4, 0x7d, 0xce, 0x90, + 0x4f, 0xbd, 0x68, 0xee, 0xd8, 0xee, 0x91, 0x15, + 0xd8, 0x32, 0xb3, 0x5d, 0x37, 0x03, 0x14, 0xee, + 0xf9, 0x48, 0xe4, 0x06, 0xd8, 0x25, 0x4d, 0x79, + 0xa6, 0xc8, 0x16, 0x4f, 0x14, 0x4e, 0x62, 0xc0, + 0x55, 0x92, 0xd3, 0x4d, 0xa0, 0x97, 0xbe, 0xbd, + 0x86, 0x9d, 0xdd, 0x19, 0x76, 0x0e, 0x26, 0x8b, + 0x19, 0x56, 0x49, 0x12, 0xc5, 0x9d, 0x30, 0x18, + 0x0b, 0x97, 0x66, 0x4c, 0xb0, 0x74, 0x3a, 0xbc, + 0x27, 0x28, 0x06, 0x4c, 0xf5, 0x6f, 0xe6, 0x26, + 0x96, 0xe9, 0xe9, 0x62, 0x79, 0x15, 0x4f, 0x4c, + 0xd3, 0x57, 0x71, 0xc7, 0x3c, 0xfc, 0x18, 0xfd, + 0x88, 0xa0, 0xa0, 0x14, 0x2f, 0x23, 0x1c, 0xfd, + 0x33, 0x22, 0x23, 0x94, 0xc8, 0xcf, 0x53, 0x53, + 0x4d, 0x59, 0xd2, 0xaa, 0x40, 0x56, 0x32, 0xd4, + 0x74, 0xe8, 0xa8, 0xce, 0x50, 0xd9, 0x76, 0xb3, + 0x65, 0x2a, 0x30, 0x6c, 0x88, 0x6c, 0x4c, 0xae, + 0x71, 0x20, 0xc3, 0x66, 0x6f, 0x8f, 0xbb, 0x3a, + 0x5d, 0x4a, 0x97, 0x22, 0x25, 0xe9, 0xec, 0xd6, + 0x9b, 0x0d, 0xd7, 0xab, 0xa6, 0xcf, 0x25, 0x55, + 0xa7, 0x05, 0x33, 0xb5, 0xc2, 0x54, 0xc2, 0x80, + 0x2c, 0x32, 0x08, 0x8f, 0xeb, 0x0c, 0x07, 0x00, + 0x55, 0xb2, 0xd3, 0x74, 0xea, 0xfd, 0xa7, 0x27, + 0x23, 0x6b, 0x76, 0xb5, 0xae, 0x8d, 0x39, 0x14, + 0x24, 0xd1, 0x2b, 0x37, 0xde, 0xae, 0xcc, 0x1c, + 0xea, 0xcc, 0x79, 0xc4, 0x2f, 0x14, 0x34, 0x73, + 0x0c, 0xfc, 0x40, 0xa6, 0xeb, 0x69, 0x98, 0xd4, + 0xb5, 0x62, 0x53, 0x5c, 0xe2, 0x43, 0x96, 0x48, + 0x89, 0x90, 0xa8, 0x6a, 0x14, 0x6c, 0x34, 0x9b, + 0xe1, 0x4c, 0x90, 0x8d, 0xc8, 0x4b, 0x02, 0x81, + 0x33, 0x8c, 0x64, 0xb8, 0xcf, 0x4e, 0xe5, 0x60, + 0xd7, 0x4e, 0xdc, 0x42, 0xe7, 0xab, 0xcb, 0x17, + 0x66, 0x2c, 0x49, 0xd6, 0x7f, 0x1b, 0x8c, 0xd5, + 0x3d, 0xbb, 0x3d, 0x7c, 0x50, 0x07, 0x31, 0x80, + 0x38, 0x32, 0x8a, 0x24, 0xfa, 0xf6, 0xa5, 0x9a, + 0x88, 0xea, 0x34, 0x95, 0x5e, 0x96, 0xaa, 0x2a, + 0xb8, 0x5f, 0x2e, 0xb3, 0x65, 0xaf, 0xd3, 0x6f, + 0x53, 0x2b, 0x49, 0x2a, 0x54, 0x9c, 0xeb, 0x22, + 0x98, 0x0b, 0x7c, 0x92, 0x58, 0x93, 0xb7, 0x21, + 0x82, 0x5c, 0xb5, 0x77, 0x74, 0xed, 0x58, 0x9d, + 0x5c, 0xfb, 0x6c, 0x42, 0xfa, 0x16, 0x0b, 0x4a, + 0x37, 0x5d, 0x64, 0x01, 0x76, 0xad, 0xcc, 0x51, + 0x57, 0x8e, 0xb9, 0x96, 0xde, 0xe1, 0x2e, 0x4b, + 0x7e, 0x99, 0xdb, 0xe9, 0x96, 0x06, 0xdb, 0x2b, + 0x85, 0x4e, 0x4b, 0x0c, 0xa8, 0xf5, 0xb6, 0x37, + 0x0c, 0x7b, 0xc5, 0xcd, 0x61, 0x17, 0xc4, 0xc0, + 0x00, 0x1f, 0xa4, 0x24, 0x80, 0x22, 0x3f, 0x5e, + 0xe5, 0x5b, 0x58, 0xd3, 0xb9, 0x5f, 0x5e, 0xfe, + 0x9e, 0x09, 0xb1, 0x72, 0xe4, 0xcf, 0x12, 0x95, + 0xf2, 0xf9, 0xed, 0xd3, 0x66, 0x49, 0xf4, 0x90, + 0x22, 0x95, 0xd3, 0x03, 0x31, 0x35, 0x92, 0x91, + 0x20, 0x25, 0xf7, 0x17, 0x81, 0xdb, 0xee, 0xdd, + 0xa6, 0x5b, 0x72, 0x25, 0x16, 0x92, 0xbb, 0x93, + 0x53, 0x92, 0x0d, 0x30, 0xaa, 0xc2, 0x2a, 0xab, + 0xa3, 0x00, 0x05, 0x77, 0x4c, 0x7b, 0xdc, 0x22, + 0xf7, 0x3c, 0x99, 0x85, 0x9b, 0x15, 0xc0, 0xd8, + 0x6c, 0xab, 0x78, 0x17, 0xf6, 0xab, 0x0a, 0xf7, + 0x1b, 0x33, 0x32, 0x53, 0x1f, 0xab, 0xcf, 0x5a, + 0xfa, 0x0d, 0xcb, 0xae, 0x2d, 0xae, 0x81, 0x27, + 0xb6, 0x1a, 0x4b, 0x54, 0x77, 0xd5, 0x7d, 0x67, + 0x09, 0x5b, 0x5b, 0x31, 0x1f, 0xa9, 0x6b, 0x32, + 0xfd, 0x9d, 0x42, 0xe0, 0xbe, 0x7b, 0x48, 0xf4, + 0xf5, 0x03, 0xaf, 0x53, 0xa9, 0xa8, 0x25, 0x49, + 0x6a, 0xad, 0xdd, 0x6c, 0x8e, 0xf6, 0x68, 0x83, + 0x46, 0x00, 0xde, 0xd4, 0xba, 0x18, 0x03, 0x12, + 0x69, 0x06, 0x2b, 0x31, 0x31, 0x9e, 0xab, 0xea, + 0x5a, 0x66, 0xaf, 0xa4, 0x9d, 0xeb, 0x76, 0xee, + 0x8a, 0x34, 0x44, 0x0e, 0xa2, 0xcb, 0x6f, 0x65, + 0xa6, 0x01, 0xa2, 0x2b, 0xca, 0xa8, 0x32, 0xbf, + 0xbc, 0xc8, 0xe0, 0x1e, 0x77, 0xa9, 0x84, 0xe9, + 0xe4, 0x20, 0x04, 0x9c, 0x33, 0xa8, 0xd4, 0xec, + 0xea, 0x55, 0x69, 0xd9, 0xa8, 0x5a, 0x8d, 0x55, + 0xe9, 0xb6, 0x2a, 0x6a, 0xa5, 0x62, 0xd5, 0xa5, + 0x55, 0x91, 0x62, 0x92, 0x6a, 0xa2, 0xda, 0x59, + 0x80, 0xba, 0x5b, 0xc6, 0xfb, 0x6a, 0x3c, 0x16, + 0x51, 0xb4, 0x30, 0xd4, 0x06, 0x9d, 0x0a, 0xc0, + 0xd7, 0xd1, 0xc8, 0xc3, 0xdf, 0xb9, 0x76, 0x2c, + 0x70, 0xae, 0x46, 0xa3, 0xeb, 0xe4, 0x81, 0x8a, + 0xd2, 0xc1, 0x57, 0xac, 0x89, 0x98, 0xe6, 0xd9, + 0x58, 0x4a, 0xd4, 0xb6, 0x9c, 0xc4, 0x75, 0x5e, + 0x74, 0x73, 0x56, 0xb1, 0x54, 0x11, 0x68, 0xe3, + 0x52, 0xd2, 0xd1, 0xab, 0x8d, 0x6b, 0x13, 0x56, + 0xd4, 0xa8, 0xa0, 0x26, 0xfd, 0x5a, 0x65, 0x2e, + 0x01, 0x6a, 0xbd, 0x28, 0x5f, 0x95, 0xce, 0xe7, + 0xb3, 0xb9, 0x03, 0xad, 0x0f, 0x4b, 0x0a, 0x3a, + 0x8d, 0xeb, 0x54, 0xd2, 0xb2, 0x71, 0x85, 0x97, + 0xf6, 0xc1, 0xdd, 0x2b, 0xba, 0x31, 0xa8, 0x52, + 0xdc, 0x6a, 0x5b, 0xc9, 0x7e, 0x09, 0x3c, 0x06, + 0x90, 0x07, 0xa2, 0x09, 0xbc, 0x8c, 0x8e, 0xa2, + 0xd2, 0xaa, 0x1d, 0x0a, 0xaa, 0xab, 0x2c, 0x81, + 0xb9, 0x61, 0x87, 0x6c, 0xa5, 0x55, 0x6b, 0x6e, + 0xa1, 0x03, 0x31, 0x18, 0xdd, 0x7c, 0x44, 0xa0, + 0x10, 0xef, 0x8e, 0x09, 0x52, 0x4b, 0x21, 0x35, + 0x44, 0x69, 0xdf, 0x68, 0x1b, 0x7a, 0x4a, 0x57, + 0xe0, 0xeb, 0x46, 0x21, 0xe8, 0x64, 0x82, 0x5f, + 0x61, 0x50, 0x00, 0x51, 0xb4, 0x36, 0x11, 0x0c, + 0x70, 0xc1, 0xf2, 0xe7, 0xc9, 0xe5, 0xab, 0x63, + 0x9a, 0xd9, 0x0f, 0x6f, 0xc0, 0xf3, 0x6f, 0xf8, + 0x65, 0xf4, 0x88, 0x98, 0xfa, 0xc8, 0x4e, 0x51, + 0x9e, 0xc3, 0x3f, 0x4f, 0xfd, 0x7a, 0x9c, 0xfc, + 0x0c, 0x6e, 0x41, 0xf9, 0x92, 0xf7, 0xfb, 0xb2, + 0x13, 0xe2, 0x0d, 0x2d, 0x9f, 0xcb, 0x79, 0xd8, + 0xbe, 0x98, 0xfa, 0xb6, 0x41, 0x69, 0x2c, 0xe2, + 0x78, 0xcf, 0xa9, 0x85, 0xf8, 0x02, 0xa9, 0xf0, + 0x71, 0x6b, 0xf4, 0x49, 0x27, 0xf7, 0x49, 0x65, + 0xbf, 0x27, 0xdc, 0x88, 0x92, 0x98, 0xe9, 0xf4, + 0x3d, 0xc8, 0xd7, 0xad, 0xd9, 0xb8, 0x23, 0x6a, + 0xb1, 0x12, 0xeb, 0x58, 0x69, 0x2a, 0xf1, 0xe7, + 0x00, 0xa3, 0x04, 0x42, 0xe3, 0xd8, 0x47, 0x01, + 0x87, 0x11, 0x94, 0xf2, 0x49, 0x6c, 0xb9, 0xdc, + 0xa8, 0x22, 0xba, 0x49, 0x1e, 0x5d, 0x15, 0x87, + 0xbb, 0x15, 0x32, 0x9d, 0x79, 0x78, 0xb8, 0x02, + 0xb7, 0x6e, 0x4a, 0x09, 0x87, 0x9a, 0x27, 0x78, + 0xdc, 0xc0, 0x91, 0x11, 0x1f, 0x7c, 0xcc, 0x2e, + 0xd2, 0x6a, 0x51, 0x85, 0x88, 0xa2, 0xd8, 0xa4, + 0x11, 0x64, 0xc8, 0xcc, 0x34, 0xd7, 0x80, 0x48, + 0x4d, 0x74, 0x94, 0xfb, 0x6c, 0xb3, 0xca, 0xd8, + 0x9c, 0x60, 0xcb, 0xc6, 0xfb, 0x6f, 0xd5, 0xa9, + 0x7f, 0x63, 0x53, 0x8e, 0x1b, 0x69, 0x8b, 0x06, + 0xfc, 0x45, 0x59, 0xc0, 0xab, 0x0c, 0xad, 0xda, + 0x58, 0x6b, 0x0a, 0xbb, 0x5b, 0x94, 0xf2, 0xaf, + 0xd3, 0x5e, 0x08, 0x0f, 0x39, 0x64, 0xc0, 0x23, + 0x6e, 0x93, 0x63, 0xb1, 0x66, 0x1a, 0x7b, 0xa2, + 0xe3, 0x6c, 0x17, 0xf0, 0x8a, 0xde, 0x20, 0xa0, + 0x3b, 0xae, 0x76, 0x0d, 0xd1, 0x81, 0x42, 0xc9, + 0xaf, 0x5a, 0xcd, 0x89, 0x2e, 0x41, 0x5f, 0x1a, + 0xcc, 0xcb, 0xd2, 0x06, 0x7d, 0x49, 0x26, 0x8e, + 0xb5, 0x53, 0x53, 0x6d, 0x28, 0xd6, 0x30, 0xaf, + 0x31, 0x14, 0x0a, 0xac, 0x3d, 0x6c, 0x55, 0xc5, + 0xa0, 0x56, 0x97, 0x25, 0x02, 0x0d, 0x21, 0x5a, + 0xf3, 0x73, 0x16, 0x5d, 0xb9, 0x81, 0x4e, 0x65, + 0xd5, 0x3e, 0xe3, 0x5d, 0xd4, 0x56, 0x9d, 0x31, + 0x85, 0x7a, 0xae, 0x2c, 0xb5, 0x0e, 0x07, 0x41, + 0x72, 0x17, 0x64, 0x52, 0x2c, 0x15, 0xdc, 0x6e, + 0xe5, 0xc2, 0xd6, 0xc6, 0x02, 0x73, 0xea, 0x28, + 0x19, 0x2d, 0xfe, 0x5e, 0x5a, 0x96, 0xa1, 0x6f, + 0xc5, 0x5a, 0x75, 0x68, 0x4a, 0x8d, 0xc6, 0x75, + 0x12, 0xb6, 0x88, 0x2c, 0x1a, 0x23, 0x24, 0x21, + 0x5d, 0x62, 0x0b, 0x84, 0x44, 0xec, 0x4b, 0x39, + 0x88, 0x89, 0x58, 0x90, 0xf5, 0xf0, 0xf5, 0xf5, + 0x96, 0x69, 0xb9, 0x49, 0x36, 0x5b, 0xc8, 0x7c, + 0x6d, 0x87, 0x59, 0x16, 0xee, 0x2b, 0x43, 0x95, + 0x5d, 0xec, 0x4c, 0x0c, 0x0f, 0xbc, 0x90, 0xb1, + 0x5f, 0x29, 0xdb, 0xba, 0x29, 0x98, 0x8e, 0xad, + 0xc8, 0x46, 0xf8, 0x5d, 0x39, 0x2f, 0xa7, 0xfd, + 0x6c, 0xc7, 0xf8, 0xff, 0x00, 0x87, 0x48, 0x81, + 0x88, 0x80, 0x26, 0x2e, 0x77, 0xfa, 0x1e, 0xf9, + 0x10, 0xef, 0x8c, 0x6f, 0xfa, 0xa7, 0xf3, 0xfc, + 0xa3, 0xad, 0x5f, 0x54, 0xd3, 0xeb, 0xf7, 0x56, + 0x4a, 0xc5, 0x4a, 0xdc, 0x30, 0xd7, 0x22, 0x2b, + 0x21, 0x2b, 0xaf, 0x68, 0xef, 0xda, 0x65, 0x57, + 0xad, 0xd1, 0x4d, 0x42, 0x50, 0x93, 0x22, 0xc1, + 0x41, 0x96, 0x45, 0xc9, 0xb6, 0xd0, 0x56, 0x75, + 0x39, 0x56, 0xa0, 0xb0, 0x1b, 0xcc, 0xa5, 0x66, + 0x75, 0x38, 0x69, 0x51, 0x05, 0x49, 0xc9, 0x2d, + 0x62, 0xf0, 0x22, 0x12, 0x9b, 0xd5, 0xb2, 0x38, + 0x59, 0x62, 0x69, 0x65, 0x8f, 0xab, 0x89, 0x72, + 0x3a, 0x6f, 0xf7, 0x3d, 0x03, 0xef, 0x0e, 0x40, + 0xfb, 0xe8, 0xaa, 0x1b, 0xc2, 0x8a, 0x33, 0x94, + 0xd9, 0xb0, 0x23, 0x22, 0xf3, 0x05, 0xf9, 0x9a, + 0xfb, 0x86, 0xfe, 0x73, 0x11, 0xc7, 0xcc, 0xf4, + 0xad, 0x4b, 0x42, 0xab, 0x6e, 0x80, 0x59, 0xb8, + 0x85, 0xd5, 0xb1, 0xa7, 0xdc, 0x39, 0xad, 0xa9, + 0x58, 0xbb, 0x19, 0xb6, 0x26, 0xb0, 0xda, 0x81, + 0x40, 0x29, 0x54, 0xed, 0x30, 0x9c, 0x94, 0x47, + 0x3d, 0x88, 0x56, 0x44, 0x51, 0x2c, 0x90, 0xd3, + 0x44, 0xb4, 0x29, 0x6d, 0x9c, 0xa0, 0xdd, 0x15, + 0xf5, 0x49, 0x28, 0x5b, 0x81, 0x36, 0x98, 0x7d, + 0xca, 0x2c, 0x88, 0x62, 0x60, 0x4a, 0x87, 0x4c, + 0xf7, 0xa0, 0xaf, 0x61, 0x8a, 0x89, 0x32, 0x28, + 0xeb, 0x52, 0x78, 0x69, 0xcf, 0x45, 0x44, 0x93, + 0x8c, 0x6a, 0xde, 0xaf, 0xcd, 0x5e, 0xa6, 0xcc, + 0xb2, 0x45, 0xca, 0x30, 0xbb, 0xbd, 0xda, 0x21, + 0x75, 0x57, 0x11, 0x6a, 0xbb, 0x03, 0x89, 0x8f, + 0x5a, 0xe4, 0xd9, 0x11, 0x25, 0x23, 0x66, 0xbf, + 0xc2, 0xda, 0x0a, 0xad, 0x31, 0x71, 0x6f, 0x3b, + 0x34, 0x14, 0xc3, 0x95, 0x08, 0x57, 0x21, 0x72, + 0x97, 0x0f, 0x41, 0x07, 0xe2, 0x26, 0x7c, 0x0e, + 0xf2, 0x45, 0x8e, 0x39, 0xc1, 0x44, 0x11, 0x6b, + 0x8e, 0xbf, 0xa7, 0x59, 0x28, 0x32, 0x58, 0x7c, + 0x32, 0x69, 0xa8, 0xf3, 0x2a, 0x40, 0xc5, 0xbd, + 0x2f, 0x29, 0x6d, 0x96, 0x64, 0x3c, 0x51, 0x2a, + 0x89, 0x93, 0x9c, 0xe6, 0x71, 0x1c, 0x48, 0x67, + 0xa6, 0x83, 0x97, 0x5d, 0x8d, 0x8b, 0x3a, 0x71, + 0x2d, 0x13, 0x1d, 0xc8, 0x35, 0x3a, 0x56, 0x96, + 0xdd, 0x33, 0x9a, 0xeb, 0x6c, 0x21, 0x40, 0xe6, + 0x8f, 0x20, 0x94, 0xaf, 0xdc, 0x50, 0x93, 0x58, + 0x6b, 0x93, 0xe1, 0xe8, 0x5d, 0xa6, 0xd5, 0x7a, + 0xe1, 0x56, 0x98, 0x89, 0x87, 0x58, 0xa9, 0x5a, + 0x0f, 0x53, 0xd3, 0x02, 0xbd, 0x7e, 0xda, 0xd7, + 0x67, 0xa8, 0x54, 0x7a, 0x07, 0x92, 0x8d, 0x5d, + 0x9e, 0x70, 0x50, 0x07, 0x19, 0xae, 0x30, 0x39, + 0x2e, 0xad, 0xc5, 0xe7, 0xa6, 0xd2, 0x2b, 0x56, + 0xa4, 0xbb, 0x14, 0x81, 0x67, 0x66, 0xb5, 0x81, + 0x8d, 0x35, 0xe4, 0x92, 0xe4, 0xbf, 0x65, 0x36, + 0xc1, 0x89, 0x40, 0x84, 0x62, 0x14, 0xca, 0x93, + 0x06, 0x71, 0xde, 0x55, 0x03, 0x26, 0x6e, 0xa5, + 0xc8, 0xcd, 0x26, 0xc1, 0x66, 0x31, 0x3e, 0xa3, + 0x44, 0x49, 0x40, 0x0f, 0x2e, 0x39, 0x62, 0x0c, + 0x3f, 0x0a, 0x9c, 0xa6, 0x76, 0xc4, 0x08, 0x8f, + 0x75, 0x35, 0xe9, 0xa4, 0x98, 0xf3, 0xfa, 0xce, + 0x76, 0x52, 0x84, 0xa7, 0x69, 0x23, 0x2f, 0xa0, + 0xc6, 0xff, 0x00, 0xbe, 0x66, 0x06, 0x3c, 0xcc, + 0x47, 0x4c, 0xa9, 0x51, 0xd5, 0x86, 0x57, 0x05, + 0x1a, 0x93, 0xdb, 0xce, 0x76, 0x72, 0xc7, 0x68, + 0x0e, 0xda, 0xa7, 0x72, 0x6f, 0xe4, 0x76, 0xf5, + 0x52, 0x10, 0x99, 0x12, 0x33, 0x80, 0x99, 0x85, + 0xc9, 0xb4, 0xe1, 0x7f, 0x0b, 0x3a, 0xc3, 0xb5, + 0x44, 0xbb, 0x52, 0x71, 0x42, 0xfb, 0xda, 0x9e, + 0xcd, 0x46, 0xa5, 0x01, 0x62, 0xa9, 0xba, 0x16, + 0x15, 0xc0, 0xde, 0x4c, 0x14, 0xac, 0x6c, 0x72, + 0xfb, 0x80, 0x18, 0x7a, 0x7c, 0x80, 0x9a, 0xbe, + 0x20, 0xb6, 0xb0, 0xa5, 0xa6, 0x13, 0x4d, 0x13, + 0xe1, 0x24, 0x7a, 0x6d, 0x76, 0x3b, 0xed, 0x4f, + 0x6b, 0x64, 0xcf, 0x9e, 0x49, 0xa5, 0xca, 0xbf, + 0x2c, 0x89, 0x48, 0x40, 0xc0, 0xe7, 0x37, 0x6f, + 0xc5, 0x47, 0x26, 0xe8, 0x3b, 0x88, 0x6d, 0xdd, + 0x35, 0x03, 0x19, 0xfc, 0xe1, 0x19, 0x05, 0xa4, + 0x46, 0xc6, 0x49, 0x84, 0xac, 0x59, 0x3e, 0x66, + 0x4c, 0x56, 0x19, 0x94, 0x6d, 0x3d, 0x5e, 0xee, + 0xab, 0xf3, 0x40, 0x15, 0x85, 0xb9, 0x74, 0xf5, + 0x00, 0xb6, 0xc9, 0xa3, 0x56, 0xda, 0x98, 0xc5, + 0x10, 0x28, 0xad, 0x48, 0x95, 0x78, 0x5c, 0x91, + 0xcb, 0xa2, 0x45, 0x52, 0x04, 0xd3, 0x54, 0x71, + 0xc4, 0x0d, 0xb3, 0xf9, 0x07, 0xc4, 0xde, 0x8a, + 0x6d, 0x62, 0xb8, 0xde, 0x71, 0x5e, 0xb8, 0x86, + 0x9b, 0x79, 0x92, 0xd6, 0xa4, 0xea, 0x5b, 0x9e, + 0x00, 0x35, 0x15, 0xbb, 0x1f, 0x69, 0x88, 0x2a, + 0xaa, 0xbd, 0xf8, 0x3c, 0xde, 0xca, 0x63, 0xe5, + 0x7f, 0x12, 0xff, 0x00, 0x43, 0xe0, 0xb6, 0x1b, + 0x85, 0x07, 0x31, 0x3c, 0x7f, 0x6a, 0x5f, 0xdc, + 0xdb, 0x47, 0x2c, 0xa7, 0x6a, 0xd0, 0x38, 0x47, + 0x22, 0xf6, 0xac, 0x5f, 0xa7, 0x64, 0x00, 0x3b, + 0x50, 0x42, 0xf9, 0x45, 0x37, 0x0c, 0x0d, 0xf3, + 0xe8, 0x5c, 0xf1, 0x09, 0xa9, 0x00, 0xb6, 0xb4, + 0xf2, 0xc9, 0x63, 0x00, 0x11, 0x87, 0xd6, 0x77, + 0x8d, 0xe5, 0x28, 0x04, 0x1a, 0xad, 0x9b, 0xcb, + 0x7b, 0x2d, 0xb4, 0xb4, 0x54, 0xe2, 0xe3, 0x0e, + 0x31, 0xd8, 0xd3, 0x10, 0x82, 0x13, 0x16, 0x11, + 0x38, 0x9f, 0x22, 0x59, 0x80, 0x40, 0x06, 0x3b, + 0x92, 0xe9, 0x8d, 0x5c, 0x6c, 0xd3, 0x66, 0x4b, + 0xee, 0x32, 0xc4, 0x46, 0x40, 0x31, 0x5b, 0xab, + 0xa8, 0x15, 0xc9, 0x23, 0xb6, 0xe0, 0xc2, 0x64, + 0x1e, 0x2c, 0x28, 0x2c, 0xbd, 0x12, 0x01, 0xa8, + 0x9e, 0xb5, 0xa2, 0x55, 0x75, 0xc9, 0x26, 0xb2, + 0xb5, 0x8b, 0x52, 0x82, 0x49, 0x4b, 0x58, 0x38, + 0xce, 0xf9, 0xcc, 0x49, 0x63, 0x9c, 0x65, 0x8f, + 0x89, 0xe9, 0x96, 0x99, 0xac, 0x69, 0x16, 0x7b, + 0x6d, 0xe1, 0x69, 0xad, 0x6f, 0x94, 0xda, 0xc1, + 0x21, 0xf6, 0x95, 0x11, 0xe7, 0x7d, 0xcf, 0x72, + 0xfe, 0xcc, 0x6e, 0x53, 0xd3, 0xfb, 0xda, 0x35, + 0xd9, 0x71, 0xb7, 0x17, 0x78, 0x18, 0x10, 0x5d, + 0xba, 0x98, 0x0b, 0x45, 0x51, 0x80, 0x49, 0x43, + 0x58, 0x89, 0xf4, 0x0c, 0x95, 0xa4, 0xba, 0x19, + 0xfa, 0x23, 0x8f, 0x89, 0x84, 0xe9, 0x48, 0x76, + 0xa5, 0x09, 0xb1, 0x1d, 0xa0, 0xd2, 0x97, 0x31, + 0xa0, 0x93, 0x21, 0x67, 0x72, 0xce, 0x43, 0x80, + 0xc9, 0x66, 0xd2, 0x96, 0x62, 0xd8, 0x69, 0x29, + 0x70, 0x40, 0xb2, 0xdc, 0xa6, 0x67, 0x4d, 0xfe, + 0xe7, 0xa6, 0x9d, 0xb5, 0xa1, 0x8b, 0xae, 0xe1, + 0xb2, 0x7d, 0xc4, 0x88, 0x2c, 0x14, 0x28, 0xb0, + 0xb6, 0x4e, 0x65, 0xe3, 0x29, 0xe4, 0x80, 0xc7, + 0xf4, 0xe0, 0xe6, 0x3f, 0x64, 0xb7, 0xe1, 0xdd, + 0x3a, 0xdd, 0xb5, 0xd8, 0xab, 0x35, 0x2e, 0x0e, + 0x56, 0x00, 0x34, 0x7a, 0xc0, 0x08, 0x4e, 0xc2, + 0xa2, 0x1e, 0x56, 0x35, 0xbd, 0xbd, 0xab, 0x8a, + 0x7d, 0x7a, 0xe2, 0xa7, 0x77, 0x0c, 0x81, 0x6e, + 0xe3, 0x5e, 0x40, 0xb4, 0x4b, 0x31, 0x4a, 0xd8, + 0x1d, 0xc7, 0xd7, 0xda, 0xbd, 0x2b, 0x4d, 0x4a, + 0x4d, 0x67, 0xa4, 0xbf, 0x52, 0x4b, 0x4c, 0x9a, + 0xe4, 0xf2, 0xca, 0x52, 0xf5, 0xb4, 0x5a, 0xdb, + 0x3e, 0xa4, 0xf2, 0x84, 0xef, 0xcd, 0x97, 0x5a, + 0x85, 0xa6, 0xfc, 0xdd, 0x34, 0x66, 0xdd, 0x99, + 0x65, 0x62, 0xd4, 0x2b, 0x90, 0x2e, 0x9c, 0xbd, + 0xbd, 0xd2, 0xce, 0x7b, 0xa6, 0xb0, 0xad, 0x3a, + 0x05, 0xbb, 0x78, 0x89, 0x8c, 0xc7, 0x63, 0xb1, + 0x16, 0x23, 0x75, 0xb3, 0x4a, 0x45, 0xaa, 0x40, + 0xa2, 0xb0, 0xb6, 0xbd, 0xed, 0xd2, 0xe8, 0x84, + 0xad, 0xf4, 0xe9, 0x55, 0x8a, 0xbd, 0xc0, 0x45, + 0x68, 0x64, 0x42, 0xeb, 0x94, 0xca, 0x64, 0xcb, + 0xf1, 0x09, 0xc2, 0xa1, 0x36, 0xb8, 0xca, 0xd5, + 0x88, 0x5d, 0xd2, 0x35, 0x7b, 0x8a, 0xb4, 0x9b, + 0xc8, 0x60, 0xe4, 0x2b, 0x73, 0x5b, 0x22, 0x42, + 0xd8, 0x87, 0xe4, 0x2a, 0xde, 0x5a, 0x8b, 0x19, + 0x27, 0x88, 0xe2, 0x45, 0xa7, 0x30, 0xbe, 0xaa, + 0xdb, 0xd4, 0xa8, 0xa9, 0xeb, 0x08, 0x6c, 0x2c, + 0x83, 0x88, 0x6c, 0x7e, 0x05, 0xa1, 0x04, 0x39, + 0x31, 0xa8, 0xd3, 0x70, 0xe2, 0xc1, 0x69, 0xcc, + 0xb7, 0xd7, 0x11, 0x27, 0x8f, 0xde, 0xc4, 0x96, + 0xbf, 0x85, 0x79, 0x6b, 0x52, 0xa9, 0x33, 0x72, + 0xfc, 0x5d, 0xf9, 0x5a, 0xc9, 0xaf, 0x95, 0x57, + 0x73, 0xed, 0x00, 0x19, 0x5a, 0x71, 0x0b, 0x85, + 0x8b, 0xb0, 0xf2, 0x6d, 0x9b, 0x30, 0x56, 0x0f, + 0x75, 0xc2, 0x57, 0x23, 0x5f, 0xa4, 0xd1, 0xd2, + 0x6b, 0x71, 0xdd, 0xc4, 0x1f, 0x7e, 0x83, 0x6d, + 0x5a, 0x09, 0xb0, 0x38, 0xd8, 0x17, 0xd9, 0x85, + 0x46, 0xa6, 0x5a, 0x7b, 0x00, 0x94, 0xd8, 0xa6, + 0xc3, 0x05, 0xd3, 0x5f, 0x13, 0x9e, 0x11, 0x54, + 0x46, 0x76, 0x8b, 0x1d, 0xcd, 0x22, 0xb1, 0x4d, + 0xab, 0x20, 0xb3, 0x4a, 0xd1, 0xc8, 0xa9, 0x2c, + 0x94, 0xb0, 0x2b, 0x32, 0x45, 0xa0, 0x22, 0x6c, + 0x25, 0x04, 0xf0, 0xf0, 0x43, 0x84, 0xd7, 0x00, + 0x99, 0xd9, 0x84, 0x91, 0xea, 0xd5, 0x3e, 0xd1, + 0xaa, 0x6b, 0x18, 0xc5, 0xbd, 0x82, 0x66, 0x96, + 0xe0, 0xc1, 0x72, 0xca, 0xb9, 0x66, 0xab, 0x18, + 0x8d, 0x76, 0x6d, 0x3e, 0xb1, 0x96, 0x71, 0xee, + 0x13, 0x83, 0x0c, 0x99, 0xd5, 0xd2, 0xa7, 0xaf, + 0xad, 0x3a, 0x83, 0x1c, 0x33, 0x36, 0x66, 0xeb, + 0x19, 0x60, 0xb8, 0x58, 0xe3, 0xc0, 0x20, 0xb4, + 0xa4, 0xae, 0x60, 0xa0, 0x12, 0xbc, 0xe7, 0x58, + 0x60, 0x1f, 0xa1, 0xb2, 0x1f, 0xa2, 0x23, 0x5a, + 0xe8, 0xbc, 0xdf, 0x2e, 0xe3, 0xee, 0x11, 0x73, + 0xb3, 0x08, 0x8c, 0x6a, 0xa6, 0x72, 0xb0, 0xb7, + 0x05, 0x62, 0x89, 0x55, 0x76, 0x7b, 0x86, 0x5b, + 0x11, 0x1a, 0xcf, 0x38, 0xc0, 0x63, 0xad, 0xa9, + 0xba, 0x6a, 0xd6, 0xad, 0x4e, 0xba, 0x96, 0x97, + 0xa5, 0x59, 0x1f, 0x1a, 0x2b, 0xd4, 0x6c, 0x06, + 0x60, 0xf9, 0x22, 0x6e, 0xd9, 0x9c, 0x13, 0x3d, + 0x49, 0x02, 0xca, 0x67, 0x6c, 0x65, 0x95, 0xa4, + 0x2b, 0x95, 0x76, 0x70, 0x48, 0x0d, 0x85, 0x89, + 0x92, 0x0d, 0x42, 0x79, 0x12, 0xb8, 0xc5, 0x28, + 0xd8, 0xdc, 0xd6, 0xbb, 0x62, 0x41, 0x7d, 0x45, + 0x67, 0xc8, 0x31, 0x39, 0x26, 0x9c, 0x8c, 0xbd, + 0x65, 0x6b, 0x69, 0xf9, 0x65, 0x75, 0x03, 0xad, + 0x0c, 0xee, 0xa6, 0xf6, 0xcf, 0x5d, 0x71, 0x36, + 0xf2, 0x86, 0xf0, 0x22, 0x7b, 0x87, 0x99, 0x92, + 0x08, 0x3e, 0xad, 0x3f, 0xe5, 0xbf, 0x18, 0xd9, + 0xed, 0xeb, 0xd9, 0x41, 0x3b, 0xd9, 0x4d, 0x6a, + 0xfd, 0xbd, 0x0d, 0x43, 0x10, 0x7a, 0x97, 0xa7, + 0x18, 0xe0, 0x90, 0x48, 0xbe, 0xdf, 0xac, 0x25, + 0x95, 0x93, 0xa8, 0xc9, 0xfa, 0xd9, 0x2f, 0x14, + 0xc7, 0x61, 0xf1, 0x47, 0xf4, 0x43, 0x68, 0x80, + 0xb4, 0x50, 0x73, 0xbf, 0x1f, 0xbe, 0xa8, 0xf1, + 0xfc, 0x4a, 0x59, 0xfa, 0x6b, 0x44, 0x40, 0xfb, + 0x8a, 0x98, 0xaf, 0xfd, 0xa9, 0x0e, 0x65, 0x38, + 0x46, 0x17, 0xef, 0x2a, 0x27, 0x8c, 0xe4, 0x80, + 0x4e, 0x44, 0x39, 0x50, 0xb6, 0x4f, 0x1e, 0x5c, + 0x67, 0xb8, 0x40, 0xe4, 0x33, 0xb4, 0xcc, 0x63, + 0x32, 0x23, 0x70, 0xb8, 0x26, 0xc3, 0xfd, 0xf9, + 0xe3, 0xaf, 0x4c, 0x57, 0x9f, 0xd6, 0x70, 0x21, + 0xad, 0x59, 0x11, 0x1f, 0x5f, 0x3c, 0x41, 0x1d, + 0x28, 0x2d, 0x59, 0x87, 0x46, 0xe2, 0xc6, 0x2d, + 0x36, 0x61, 0xb9, 0xaf, 0x3d, 0xb1, 0x26, 0x21, + 0xbe, 0x92, 0x60, 0x46, 0x43, 0xb1, 0xc4, 0xe0, + 0x60, 0x71, 0x3e, 0x7a, 0xb3, 0xdf, 0xd1, 0xbc, + 0x8b, 0x71, 0x2d, 0x47, 0x6a, 0xd6, 0x3d, 0x96, + 0xeb, 0xbd, 0x1c, 0x79, 0x11, 0x81, 0x31, 0x5c, + 0x66, 0x7b, 0x9f, 0x0b, 0x0f, 0xd2, 0x83, 0xcd, + 0x4d, 0x4b, 0x60, 0x05, 0x84, 0xdd, 0x38, 0xf4, + 0xad, 0x43, 0x4c, 0xac, 0x57, 0x20, 0x94, 0xc9, + 0xd5, 0x8a, 0xe2, 0x53, 0x63, 0x8d, 0x60, 0x78, + 0x26, 0xec, 0x0a, 0x5b, 0xca, 0xd8, 0x12, 0x7c, + 0xd4, 0x34, 0x9e, 0xe6, 0xbe, 0x66, 0xe2, 0x11, + 0xbd, 0xee, 0x06, 0xba, 0xe4, 0x82, 0x68, 0x4c, + 0x35, 0x80, 0x75, 0xb8, 0xa6, 0xcb, 0x4c, 0xa5, + 0x66, 0x00, 0x36, 0x14, 0x53, 0xe9, 0xac, 0x7b, + 0xcd, 0x80, 0x8f, 0xbc, 0x01, 0x2c, 0x98, 0x21, + 0xea, 0x96, 0xa7, 0x92, 0x76, 0x4b, 0x58, 0xd7, + 0x62, 0x6d, 0x61, 0x14, 0x61, 0xa9, 0x64, 0x22, + 0x0b, 0x54, 0xc4, 0x65, 0x2a, 0x4c, 0x6f, 0x33, + 0xb0, 0xec, 0x45, 0x25, 0x8e, 0x72, 0x3a, 0x77, + 0xf7, 0x51, 0xd6, 0xa1, 0x5e, 0xd4, 0x41, 0x54, + 0x62, 0x83, 0xbb, 0x12, 0x67, 0x14, 0x4d, 0x51, + 0x72, 0x8a, 0xcc, 0x67, 0x90, 0x4c, 0x4f, 0x00, + 0xb3, 0x6c, 0x4a, 0x0e, 0x67, 0x68, 0x5e, 0xe7, + 0x23, 0x12, 0x56, 0x2e, 0x50, 0x8f, 0xe0, 0xf3, + 0x2d, 0xea, 0x63, 0x56, 0x4a, 0xc8, 0xe0, 0x63, + 0x85, 0x9f, 0x96, 0x07, 0x2c, 0x37, 0x22, 0x9e, + 0x5e, 0xd7, 0x3c, 0x8a, 0x76, 0xf3, 0xdc, 0x7a, + 0x33, 0xeb, 0x51, 0xd6, 0x90, 0x51, 0xfc, 0x20, + 0xb3, 0xad, 0xd1, 0x5d, 0x41, 0xd3, 0xec, 0xad, + 0x47, 0x5a, 0xc5, 0x44, 0x3c, 0x35, 0xb5, 0x2c, + 0x2a, 0xc5, 0x4a, 0x50, 0x0d, 0x63, 0xd1, 0x0a, + 0xe1, 0xaf, 0x29, 0xe3, 0xf6, 0xea, 0xb5, 0xb0, + 0x2c, 0x29, 0xd4, 0x27, 0x55, 0xc0, 0x6f, 0x3a, + 0xcd, 0xb0, 0xd6, 0x3b, 0x86, 0x2d, 0xd6, 0x8a, + 0x8c, 0x26, 0x8d, 0xea, 0x6a, 0x51, 0xb5, 0x57, + 0x19, 0x5a, 0xc4, 0xea, 0x15, 0xad, 0xb1, 0x96, + 0x2b, 0x2c, 0x5b, 0xc6, 0x3c, 0x6f, 0x31, 0x4b, + 0x84, 0xba, 0xd1, 0xdb, 0xad, 0xf1, 0xc6, 0x93, + 0xda, 0xbe, 0xb9, 0xb4, 0xd7, 0xcc, 0x84, 0x6a, + 0x53, 0x71, 0xcc, 0x6c, 0xd8, 0x58, 0x41, 0xcc, + 0x9b, 0x2a, 0x71, 0x4a, 0xc8, 0x86, 0x77, 0x54, + 0x2e, 0x06, 0x3d, 0x92, 0xc7, 0x56, 0x9f, 0x86, + 0xe5, 0x8b, 0xd1, 0x5d, 0xa9, 0xd4, 0x9d, 0x36, + 0x4b, 0x25, 0x83, 0x45, 0x35, 0x1e, 0xbd, 0x51, + 0xe0, 0xb2, 0xc6, 0x7b, 0x42, 0x7f, 0x0c, 0x62, + 0x51, 0xf5, 0xe0, 0x1d, 0xa0, 0x97, 0x88, 0xe3, + 0x0c, 0x6c, 0x9e, 0x70, 0x51, 0x19, 0x11, 0xcc, + 0x33, 0x7f, 0x4c, 0x8e, 0xf3, 0x33, 0x07, 0xbc, + 0xf8, 0xfd, 0x28, 0x99, 0xfe, 0xd6, 0xfd, 0x4d, + 0x61, 0x4e, 0xa3, 0x16, 0x06, 0x06, 0x65, 0x38, + 0xb8, 0x5a, 0x10, 0x58, 0x2c, 0x66, 0x42, 0x76, + 0x21, 0xde, 0x49, 0x40, 0x3e, 0x23, 0xea, 0x03, + 0x1f, 0x97, 0x55, 0xeb, 0x96, 0x95, 0x08, 0x69, + 0x41, 0x02, 0x9b, 0x66, 0xe4, 0x52, 0xac, 0x00, + 0x95, 0x98, 0x33, 0x72, 0x85, 0x2d, 0x42, 0x22, + 0xf1, 0x32, 0x3e, 0x38, 0xe4, 0x96, 0x44, 0xc0, + 0xfb, 0x91, 0x11, 0x10, 0xce, 0x0d, 0x20, 0xe6, + 0xef, 0x0b, 0x2b, 0x81, 0xdf, 0x03, 0xc0, 0x7b, + 0x31, 0x73, 0x31, 0xda, 0xd2, 0xca, 0xc4, 0x11, + 0x24, 0xd9, 0x19, 0x9e, 0xdb, 0x2e, 0x36, 0x3e, + 0x0d, 0xcf, 0xac, 0x2c, 0x69, 0x7a, 0x43, 0xe4, + 0xab, 0xab, 0x8d, 0xe8, 0xd5, 0x74, 0xca, 0xdc, + 0x66, 0x39, 0xc3, 0x72, 0x07, 0xba, 0x41, 0xcd, + 0x83, 0x9d, 0xcc, 0xb6, 0x24, 0xe1, 0x21, 0x1f, + 0x51, 0xdf, 0xa6, 0x58, 0x56, 0x9a, 0x99, 0x55, + 0xaa, 0xe2, 0x02, 0xa9, 0xd4, 0xf4, 0x31, 0xae, + 0xb9, 0x62, 0xb8, 0xed, 0x12, 0x24, 0x9b, 0x66, + 0x1d, 0x2b, 0x66, 0x5c, 0x0e, 0x1c, 0x38, 0xdc, + 0x13, 0x90, 0x96, 0xdc, 0x50, 0x82, 0x85, 0xa5, + 0xe9, 0xb3, 0x7e, 0xcd, 0x3a, 0xf6, 0x46, 0xd5, + 0x7d, 0x9e, 0x4a, 0x80, 0xd8, 0x3b, 0x59, 0x20, + 0x7a, 0xa5, 0x65, 0xc8, 0x2c, 0xb3, 0x32, 0x75, + 0x4c, 0xb1, 0x00, 0x31, 0x38, 0x98, 0x21, 0x9a, + 0xba, 0x6d, 0x82, 0xae, 0x51, 0x06, 0x57, 0x38, + 0x58, 0xaa, 0x69, 0x56, 0x47, 0x04, 0xf7, 0xdb, + 0x64, 0x4d, 0x75, 0x20, 0x38, 0xdb, 0x2c, 0x61, + 0x94, 0x40, 0x8a, 0xce, 0x77, 0xf4, 0xf5, 0xdb, + 0x33, 0x57, 0x75, 0x87, 0x85, 0x73, 0xae, 0xa3, + 0x8d, 0x1f, 0xb7, 0xa0, 0xdb, 0x02, 0xa9, 0x14, + 0x70, 0xd8, 0x53, 0xca, 0xe9, 0x32, 0x4f, 0x18, + 0x4b, 0xed, 0xe9, 0xcb, 0x17, 0x1c, 0x8c, 0xdb, + 0xe3, 0x5c, 0xc9, 0x8b, 0x35, 0x3d, 0x71, 0xf7, + 0x8f, 0x53, 0x40, 0x57, 0x6e, 0x80, 0xba, 0xca, + 0x13, 0xa4, 0x06, 0xcb, 0x0b, 0x37, 0x20, 0x79, + 0x1f, 0x26, 0xb9, 0xb4, 0xb2, 0x69, 0x85, 0xb0, + 0x15, 0x8a, 0xb8, 0xdc, 0xc8, 0x53, 0x1d, 0xc4, + 0x2c, 0xb9, 0xa8, 0xdb, 0x7e, 0xb5, 0x2c, 0x47, + 0x2d, 0x56, 0x18, 0x3f, 0x6a, 0x8b, 0xe3, 0xd2, + 0xef, 0x58, 0xcd, 0x8a, 0x5e, 0x9c, 0xc8, 0xe2, + 0x81, 0x81, 0x6d, 0x88, 0x37, 0x72, 0x1d, 0x44, + 0xea, 0x4c, 0x64, 0x97, 0x2c, 0xbd, 0x4a, 0xab, + 0xdb, 0x7c, 0x4f, 0xc0, 0x5f, 0x0c, 0x43, 0x71, + 0x06, 0xc4, 0x1f, 0x2c, 0x08, 0x84, 0x3d, 0x45, + 0xe0, 0xe3, 0x45, 0x91, 0x64, 0xed, 0x5e, 0x08, + 0x03, 0xd6, 0x82, 0xe0, 0xde, 0x22, 0x4a, 0x4e, + 0x03, 0x89, 0xd4, 0xf8, 0x6c, 0xc8, 0xb8, 0x3c, + 0xaf, 0x22, 0x54, 0xa4, 0xa5, 0x6c, 0x09, 0x16, + 0x09, 0x4b, 0x15, 0x31, 0x18, 0x94, 0x10, 0x94, + 0x4c, 0x8e, 0x3b, 0xf4, 0xf5, 0x3a, 0xd7, 0x7a, + 0x36, 0xdb, 0x94, 0xdf, 0x60, 0x08, 0xd8, 0x36, + 0xc2, 0xd9, 0x21, 0x30, 0x56, 0xd8, 0x3c, 0x40, + 0xc7, 0x18, 0x8d, 0x8e, 0x5f, 0x24, 0x0b, 0x89, + 0x09, 0xf1, 0x11, 0x23, 0x69, 0xda, 0x02, 0x27, + 0x9c, 0x06, 0x56, 0xc7, 0xea, 0x35, 0x16, 0xc2, + 0x54, 0x6c, 0x21, 0x12, 0x36, 0x17, 0xcb, 0x10, + 0x18, 0x76, 0xd0, 0x3b, 0xc7, 0x1a, 0x37, 0x15, + 0xe0, 0xe0, 0x5b, 0x56, 0xd9, 0x8f, 0x87, 0x34, + 0xaf, 0x54, 0xc1, 0x2f, 0x93, 0x52, 0xa9, 0x38, + 0x6f, 0xdb, 0xe7, 0xbe, 0x2c, 0x51, 0x1e, 0x5c, + 0x4d, 0x90, 0x93, 0x33, 0xc3, 0x97, 0xce, 0x5e, + 0xb9, 0x3b, 0xc6, 0x5a, 0x66, 0x8f, 0xdc, 0x69, + 0xf5, 0xa9, 0x26, 0xb2, 0x82, 0xf5, 0x75, 0x91, + 0x88, 0xa2, 0xd1, 0xdc, 0xb0, 0x13, 0x01, 0x62, + 0xa0, 0xd8, 0x28, 0xaf, 0xcd, 0x3d, 0xd4, 0xa6, + 0xb1, 0x0c, 0x0a, 0xc4, 0x08, 0x87, 0xcc, 0xea, + 0x08, 0xaa, 0x15, 0xd8, 0x6c, 0x4d, 0x4b, 0x40, + 0xb7, 0x2e, 0x76, 0xb0, 0x99, 0x88, 0x07, 0x2e, + 0x0a, 0xa1, 0x4e, 0x0e, 0x12, 0x93, 0x2e, 0xdc, + 0xaa, 0x44, 0x1f, 0x82, 0x27, 0x8f, 0x81, 0xd3, + 0x28, 0x9b, 0x6c, 0x12, 0x0b, 0x50, 0x90, 0x64, + 0x1b, 0x60, 0x92, 0xcf, 0x36, 0xfc, 0x48, 0x12, + 0xbf, 0x3e, 0x50, 0x88, 0xdd, 0x93, 0xb4, 0xae, + 0x67, 0xcf, 0xb5, 0x09, 0xd3, 0xff, 0x00, 0xba, + 0xeb, 0x57, 0x1f, 0x1e, 0x68, 0xbf, 0xea, 0x42, + 0x3f, 0xa3, 0xfa, 0xce, 0x62, 0x37, 0xfd, 0x51, + 0xbe, 0xe5, 0x3b, 0x08, 0xee, 0x53, 0x11, 0xd5, + 0x4f, 0x84, 0x6a, 0xd3, 0x15, 0x6b, 0x42, 0xba, + 0x34, 0x0a, 0xa4, 0xcd, 0x71, 0x4d, 0x26, 0xd2, + 0xc0, 0x5c, 0xd5, 0xfa, 0xf3, 0x99, 0x29, 0x51, + 0xc9, 0x0c, 0xac, 0x48, 0x73, 0x3e, 0x5f, 0xa4, + 0xcf, 0x57, 0x75, 0xad, 0x63, 0x8e, 0xdd, 0x04, + 0xeb, 0xda, 0xb2, 0xb9, 0x44, 0xd0, 0x7c, 0x01, + 0x6c, 0x54, 0x9a, 0xf7, 0x91, 0x3c, 0x92, 0x06, + 0x26, 0x62, 0x5c, 0x2f, 0x89, 0xc1, 0xde, 0xe4, + 0x29, 0xa6, 0x43, 0x31, 0xd5, 0xed, 0x5f, 0x40, + 0x85, 0xaa, 0x95, 0x64, 0x21, 0x4e, 0x64, 0x9a, + 0x39, 0xb5, 0x3e, 0xd9, 0x37, 0x65, 0xf0, 0xc1, + 0x02, 0x99, 0x1c, 0x95, 0x64, 0x14, 0x47, 0x19, + 0xb1, 0x0a, 0x81, 0x36, 0x63, 0x18, 0x6f, 0x31, + 0xa7, 0x8d, 0xd3, 0x89, 0xad, 0x0d, 0xba, 0x18, + 0x62, 0xb8, 0x85, 0xfa, 0x9b, 0xc8, 0xaf, 0x7d, + 0x6d, 0x42, 0x7e, 0xb0, 0xe7, 0x08, 0x63, 0xbc, + 0xce, 0x01, 0xf9, 0xf7, 0x45, 0x68, 0x3b, 0x8b, + 0x16, 0xbb, 0x24, 0x32, 0xd5, 0x7d, 0x52, 0xc8, + 0xd7, 0x1a, 0xb2, 0x96, 0xcc, 0xaa, 0x2a, 0xd7, + 0xc1, 0x82, 0x5c, 0x92, 0x01, 0x5e, 0xaf, 0x76, + 0x60, 0xbe, 0x52, 0xec, 0x94, 0x64, 0x2f, 0x0a, + 0xe2, 0x9b, 0xd5, 0x2a, 0xa8, 0xdc, 0xc3, 0x60, + 0xf6, 0x5a, 0xab, 0x17, 0x16, 0x5c, 0x4b, 0x9e, + 0x6a, 0xc0, 0xad, 0x32, 0x5a, 0x29, 0x34, 0x1d, + 0x70, 0x1a, 0x60, 0xcb, 0x76, 0x92, 0x4a, 0x22, + 0x64, 0x7b, 0x83, 0xd6, 0x96, 0x95, 0xcd, 0x9d, + 0x71, 0xba, 0xb6, 0x99, 0x61, 0x8d, 0xab, 0xa6, + 0x1c, 0xd7, 0xba, 0x6a, 0x95, 0xbc, 0x48, 0x01, + 0xef, 0xca, 0x64, 0x13, 0xc1, 0x16, 0x25, 0xbb, + 0x2a, 0x62, 0x15, 0xb8, 0x4a, 0x8c, 0x20, 0xc7, + 0x45, 0x58, 0xfc, 0x31, 0xab, 0x5b, 0xee, 0x9d, + 0xaa, 0xa8, 0xd5, 0xc9, 0x55, 0x91, 0x7a, 0x29, + 0x39, 0xcd, 0x05, 0xd3, 0xe6, 0xaa, 0x50, 0x82, + 0xa5, 0x2b, 0x8e, 0xf5, 0x78, 0x8c, 0x3f, 0x8e, + 0xc4, 0x33, 0x30, 0x61, 0x61, 0xa3, 0xfd, 0x87, + 0xe2, 0x4b, 0x1f, 0x6b, 0xb2, 0x9a, 0xeb, 0xef, + 0xcc, 0x1c, 0x73, 0x49, 0x1a, 0x8d, 0x75, 0xc6, + 0x98, 0x24, 0x81, 0x1a, 0xe9, 0xa3, 0x50, 0xce, + 0xad, 0xea, 0xb1, 0xb2, 0xd8, 0x1e, 0xde, 0xdc, + 0x6c, 0xd8, 0x34, 0xc3, 0xb1, 0xa2, 0x7c, 0x45, + 0x72, 0x35, 0x13, 0xd4, 0x52, 0xcb, 0x67, 0xc4, + 0xb9, 0xd5, 0xdc, 0x0f, 0x31, 0x51, 0xd3, 0x82, + 0xa7, 0xdc, 0x2b, 0xb3, 0xe3, 0x40, 0x76, 0x87, + 0xc6, 0x51, 0x00, 0x61, 0xbc, 0x81, 0x4f, 0x5a, + 0x74, 0x4e, 0x83, 0xaf, 0x9c, 0xb1, 0x37, 0x6b, + 0x33, 0x16, 0x08, 0xf7, 0x57, 0x97, 0xcb, 0x22, + 0x68, 0xfb, 0x18, 0x42, 0xcd, 0x13, 0xb6, 0x54, + 0xfc, 0x11, 0x4c, 0x7d, 0x59, 0x25, 0xea, 0xaf, + 0x6b, 0x51, 0x2d, 0x61, 0x0a, 0xac, 0x9b, 0x1f, + 0x3a, 0xd5, 0xb5, 0x16, 0xb2, 0xce, 0xe1, 0x56, + 0x61, 0x70, 0xaa, 0x83, 0x35, 0x63, 0xed, 0x50, + 0xd7, 0x55, 0x40, 0x53, 0xdf, 0xea, 0xc1, 0x82, + 0xe3, 0x19, 0x97, 0xc6, 0x9f, 0x4f, 0x4b, 0x26, + 0xcd, 0x2a, 0x54, 0x59, 0x58, 0x51, 0x6d, 0x5f, + 0x7e, 0xc3, 0x89, 0xc5, 0x6a, 0xef, 0x0a, 0x8d, + 0xc1, 0xdc, 0x3b, 0x92, 0x27, 0x3d, 0xe4, 0xd4, + 0x20, 0xb5, 0x41, 0x18, 0x28, 0x67, 0xa4, 0xdf, + 0xb7, 0x23, 0xf3, 0x07, 0x9b, 0x56, 0x98, 0x28, + 0x84, 0xdc, 0x05, 0xaf, 0x3b, 0x32, 0x8a, 0xdc, + 0x90, 0xbf, 0xb6, 0xd8, 0x6b, 0x03, 0xc6, 0x42, + 0xe5, 0xaa, 0xd2, 0x48, 0x65, 0x7c, 0xa8, 0x64, + 0x57, 0x73, 0x56, 0x53, 0x55, 0xdc, 0xbc, 0xba, + 0x71, 0x48, 0xa9, 0x77, 0xb4, 0xd8, 0xdc, 0x2c, + 0xd7, 0x69, 0xb8, 0x25, 0x56, 0x22, 0x55, 0x5c, + 0x95, 0x0c, 0x78, 0xb7, 0x16, 0xaf, 0x75, 0x8c, + 0x18, 0x88, 0xf5, 0xa7, 0xd3, 0xd1, 0x00, 0x6c, + 0xe8, 0xfa, 0xdd, 0xd6, 0xf7, 0x56, 0xed, 0x69, + 0x3d, 0xc3, 0x34, 0x77, 0x88, 0x8a, 0xac, 0x2e, + 0xe4, 0x54, 0x6a, 0xd5, 0xc4, 0x09, 0x6a, 0x65, + 0x44, 0x6c, 0x5a, 0x1e, 0x9b, 0x5b, 0x48, 0x01, + 0x4b, 0x52, 0x34, 0x40, 0xae, 0xc5, 0x85, 0x6a, + 0xa9, 0x7e, 0x87, 0xa6, 0x59, 0x9d, 0x40, 0xab, + 0x28, 0x08, 0x94, 0x96, 0xa6, 0xac, 0xf1, 0x91, + 0x48, 0x2f, 0x8e, 0xcd, 0x66, 0xa1, 0x0c, 0xda, + 0xbb, 0xb2, 0xc6, 0x47, 0x65, 0x16, 0xce, 0xca, + 0xbb, 0x0d, 0x95, 0xdb, 0x2a, 0x05, 0xa9, 0x41, + 0x62, 0x1e, 0xd4, 0x0f, 0x33, 0x40, 0x65, 0x63, + 0x21, 0x18, 0x56, 0x8e, 0xe3, 0x17, 0x4a, 0xf9, + 0x13, 0xf8, 0x70, 0x45, 0xe9, 0xe9, 0xa9, 0xb6, + 0x8b, 0x15, 0x2d, 0x41, 0x66, 0x68, 0xe2, 0x18, + 0x80, 0xe4, 0xf7, 0x06, 0x20, 0x46, 0x64, 0x44, + 0x62, 0x0b, 0xc0, 0xef, 0xe9, 0x8f, 0x13, 0xd2, + 0x6c, 0xdd, 0xd2, 0x7e, 0x34, 0xb2, 0x23, 0xa1, + 0xa6, 0xc2, 0xec, 0x02, 0x6b, 0x61, 0xdd, 0x3e, + 0x25, 0xcc, 0x67, 0xf2, 0x7d, 0x8a, 0xad, 0xa6, + 0x94, 0xb2, 0xb3, 0xb2, 0x93, 0x80, 0x28, 0x19, + 0xaa, 0xdd, 0xa2, 0x67, 0x67, 0xfc, 0x3f, 0xf1, + 0x90, 0x12, 0xb4, 0xda, 0xc0, 0xae, 0x40, 0xaa, + 0x32, 0x8b, 0xa4, 0x39, 0xf1, 0x9f, 0xd9, 0x06, + 0x49, 0x6e, 0xf5, 0x92, 0xd8, 0xcc, 0x4f, 0x13, + 0x8c, 0xa9, 0x16, 0x03, 0x96, 0xaf, 0x52, 0xce, + 0x99, 0xf1, 0x7d, 0x4a, 0xd6, 0x15, 0x5e, 0x20, + 0x2a, 0x90, 0x1d, 0x76, 0x5c, 0x89, 0x92, 0xad, + 0x5b, 0x50, 0x1e, 0xd5, 0x20, 0xd1, 0x3c, 0x9f, + 0x2a, 0xdc, 0xa6, 0x06, 0x4f, 0x28, 0xa6, 0x5f, + 0x9d, 0xc5, 0x86, 0x9f, 0xf1, 0x95, 0x55, 0xa1, + 0x09, 0x21, 0xf6, 0xd3, 0x01, 0x57, 0x54, 0x64, + 0x44, 0x12, 0x2c, 0xab, 0x8c, 0x20, 0xe1, 0xd2, + 0x26, 0x2a, 0x7e, 0x69, 0x38, 0xdf, 0xc5, 0x2f, + 0x44, 0x89, 0x57, 0x81, 0xd3, 0x7e, 0x2b, 0x5f, + 0x07, 0x67, 0x0f, 0x3b, 0x14, 0xea, 0xc8, 0xa3, + 0x53, 0x63, 0x17, 0xb2, 0x5b, 0x82, 0xd3, 0x20, + 0xad, 0xb1, 0x25, 0x58, 0x92, 0x03, 0xf5, 0x14, + 0x95, 0x33, 0x9f, 0x25, 0x43, 0xfb, 0xbe, 0xb5, + 0x11, 0xae, 0x24, 0x6f, 0xe1, 0x8e, 0x10, 0x08, + 0x89, 0x32, 0x6c, 0x30, 0x24, 0x20, 0x62, 0x62, + 0x62, 0x4a, 0x4a, 0x23, 0x6d, 0xe2, 0x63, 0xf5, + 0xc6, 0xdd, 0x7c, 0xde, 0x33, 0x4e, 0xad, 0x3a, + 0xf6, 0xa0, 0x44, 0xf6, 0x71, 0xcb, 0x17, 0x7e, + 0xc3, 0x2c, 0xef, 0x5e, 0xe0, 0xf0, 0x76, 0xbc, + 0x46, 0x04, 0x83, 0xa8, 0xaa, 0xa9, 0x63, 0xf9, + 0x5b, 0x63, 0x9e, 0x78, 0x8a, 0xb8, 0xa6, 0xee, + 0x92, 0xea, 0xed, 0x5e, 0x8b, 0x71, 0xf5, 0x74, + 0x83, 0x38, 0xd3, 0xeb, 0x33, 0x3b, 0xb4, 0xb1, + 0xc0, 0x40, 0x05, 0x38, 0xac, 0xce, 0x25, 0xad, + 0x9b, 0x50, 0xa9, 0x7c, 0xec, 0xa6, 0x11, 0xf3, + 0xc6, 0xf3, 0xf2, 0xcd, 0x35, 0x4c, 0x65, 0x09, + 0xd4, 0xb6, 0xe6, 0x1a, 0x92, 0x0c, 0x9d, 0x55, + 0x94, 0x46, 0xbd, 0x9a, 0x90, 0x4f, 0x58, 0x48, + 0xe2, 0x2a, 0x31, 0x8d, 0x87, 0x0c, 0x02, 0x59, + 0x0d, 0x2f, 0x3d, 0x22, 0x67, 0x4f, 0xb0, 0x33, + 0xcb, 0x3a, 0x62, 0xb8, 0xeb, 0xad, 0x51, 0x2f, + 0x44, 0x30, 0x89, 0x05, 0xc6, 0x2b, 0x82, 0x70, + 0x08, 0x36, 0x58, 0x6c, 0xdc, 0xa6, 0x00, 0xb2, + 0x39, 0x80, 0xf1, 0xf0, 0xf4, 0x4a, 0x9d, 0x21, + 0x3a, 0xc6, 0xa0, 0x7a, 0x8d, 0x43, 0x12, 0x16, + 0x5d, 0x34, 0x57, 0xae, 0x67, 0xa5, 0xdd, 0xd8, + 0x38, 0x99, 0x51, 0x6e, 0xd2, 0xed, 0x60, 0x99, + 0x98, 0x78, 0x93, 0x66, 0x7c, 0x88, 0x67, 0x3f, + 0x0f, 0x91, 0x1c, 0xdb, 0x57, 0xcf, 0xb5, 0x39, + 0xd4, 0x02, 0xc4, 0x3b, 0xf8, 0xcd, 0x34, 0xd2, + 0x10, 0xbd, 0x35, 0xfb, 0x44, 0x94, 0xa2, 0x89, + 0xe9, 0x4f, 0x1a, 0xc2, 0x6b, 0x96, 0x2d, 0x6d, + 0xdf, 0x6d, 0xd4, 0x51, 0xd2, 0x98, 0xa4, 0xdf, + 0x59, 0x12, 0xed, 0xe9, 0xda, 0x63, 0x72, 0x7d, + 0x82, 0x07, 0xd0, 0x93, 0x97, 0x45, 0x16, 0xc4, + 0x23, 0xb6, 0x19, 0x62, 0x1c, 0xb0, 0x8d, 0xa4, + 0x10, 0xb3, 0x78, 0x96, 0xf8, 0x11, 0xc0, 0x59, + 0xaa, 0x3a, 0x8d, 0x6b, 0x77, 0xbb, 0x9e, 0xc8, + 0x2a, 0x52, 0x25, 0x88, 0xd9, 0x59, 0xba, 0x6f, + 0x26, 0xbb, 0xd8, 0xd1, 0x34, 0x4a, 0x0e, 0xb8, + 0x8b, 0x1e, 0x8c, 0x8c, 0xc0, 0x9e, 0x19, 0x14, + 0x01, 0x89, 0xe9, 0xef, 0x42, 0x2f, 0x83, 0x1e, + 0xcb, 0x5c, 0x07, 0x5a, 0x0a, 0xb7, 0x22, 0xd3, + 0x88, 0x5c, 0x1a, 0x58, 0x84, 0x0a, 0xcc, 0x71, + 0x78, 0xbc, 0xa6, 0x08, 0x58, 0x5e, 0xa9, 0x19, + 0xf5, 0x64, 0x90, 0x0a, 0xd6, 0xda, 0x89, 0x23, + 0x3d, 0x3b, 0x92, 0x48, 0x9a, 0x2b, 0x5b, 0x1a, + 0x36, 0x22, 0x8a, 0xd9, 0x3e, 0xa0, 0x23, 0xfe, + 0x59, 0xc4, 0x92, 0xf5, 0x80, 0x49, 0x61, 0x13, + 0xea, 0xa4, 0x6b, 0xaf, 0x79, 0x67, 0x69, 0x77, + 0xdd, 0x5e, 0x53, 0x50, 0xe0, 0x64, 0x17, 0x13, + 0xbf, 0x66, 0xb5, 0x4a, 0xe2, 0x16, 0x47, 0x30, + 0xa7, 0x63, 0x01, 0x0b, 0x83, 0x19, 0x11, 0x38, + 0xf1, 0xd4, 0xd4, 0xb7, 0xa6, 0x6a, 0x3d, 0xa6, + 0xaf, 0x54, 0xb8, 0x66, 0xa2, 0x65, 0x98, 0xd7, + 0x4b, 0x93, 0x61, 0xb7, 0x12, 0x83, 0xe2, 0x87, + 0x4a, 0xec, 0x22, 0xa4, 0x18, 0x8b, 0x53, 0x2c, + 0x49, 0xb0, 0x61, 0x90, 0xc3, 0x49, 0x74, 0x16, + 0x74, 0xca, 0xef, 0xd6, 0x35, 0x2b, 0x50, 0xed, + 0x43, 0x4a, 0x95, 0xe9, 0xd7, 0xaa, 0xd4, 0xaa, + 0x98, 0x02, 0x59, 0x36, 0x7b, 0xc3, 0xe5, 0xb4, + 0xa5, 0x43, 0xc4, 0x86, 0xa4, 0xd7, 0x35, 0x93, + 0x21, 0x1c, 0x96, 0xdc, 0xa9, 0x24, 0x58, 0xa4, + 0x56, 0x75, 0x0e, 0xce, 0xcc, 0x69, 0x72, 0x0e, + 0x4d, 0xaa, 0xf7, 0xae, 0x8d, 0xa8, 0xee, 0x3b, + 0xa7, 0xea, 0x94, 0x1d, 0xa7, 0x55, 0xbd, 0xca, + 0x17, 0x8c, 0xd6, 0xeb, 0x16, 0x20, 0x14, 0xc1, + 0x6b, 0x38, 0x24, 0x8d, 0x2c, 0x4e, 0x4b, 0xdb, + 0x5c, 0xa2, 0xee, 0x7a, 0x2c, 0x72, 0x60, 0xf4, + 0xdf, 0x89, 0x99, 0xf6, 0x23, 0xfa, 0xd8, 0x4c, + 0x4e, 0x8b, 0xe9, 0x11, 0x26, 0x89, 0xac, 0xc7, + 0xfa, 0xc6, 0x01, 0x44, 0x4c, 0x9c, 0x6f, 0x51, + 0x3f, 0x0e, 0xaf, 0x55, 0x58, 0x2a, 0x9e, 0xa5, + 0x7e, 0x2e, 0x88, 0x82, 0x5b, 0xa8, 0x0d, 0xe1, + 0xac, 0xb8, 0xb7, 0xc2, 0xd5, 0x3f, 0x1d, 0x3c, + 0x17, 0x57, 0x4f, 0x90, 0x02, 0x9e, 0xe0, 0xf7, + 0x29, 0xc9, 0x24, 0xe0, 0xe3, 0xd0, 0x59, 0x62, + 0x8e, 0xa6, 0x8d, 0x17, 0x4f, 0x65, 0x4d, 0x71, + 0x74, 0x0b, 0x3b, 0xb2, 0xa5, 0x66, 0xb2, 0xb7, + 0x79, 0x2c, 0x3f, 0x7d, 0xa0, 0x50, 0xcc, 0x6b, + 0xe6, 0xcd, 0xc1, 0x64, 0xa0, 0x0c, 0x66, 0x77, + 0x9f, 0xb3, 0x87, 0xc5, 0x0a, 0xb0, 0xe5, 0xb7, + 0x51, 0x0d, 0xc9, 0xeb, 0x86, 0x56, 0xf5, 0x95, + 0x4b, 0xbc, 0x89, 0x85, 0x63, 0x58, 0xe6, 0x6b, + 0x44, 0xb5, 0xa3, 0x2e, 0x85, 0xb6, 0x56, 0xcf, + 0x40, 0x6e, 0xd2, 0x65, 0xa5, 0xfc, 0x48, 0xd9, + 0xec, 0x12, 0xff, 0x00, 0xbb, 0x99, 0x05, 0x64, + 0x96, 0x33, 0x69, 0x6e, 0xc4, 0xd6, 0xca, 0x86, + 0x32, 0xb0, 0x4e, 0x31, 0x88, 0xab, 0xdd, 0x13, + 0x23, 0x60, 0x2e, 0x14, 0x40, 0xbf, 0x89, 0x18, + 0xcf, 0x93, 0xa7, 0x22, 0x17, 0x6a, 0x49, 0x81, + 0xd1, 0x8c, 0x6a, 0x43, 0xe1, 0xb1, 0x31, 0x0c, + 0xed, 0x0b, 0x3b, 0x86, 0xa1, 0xae, 0x50, 0x9d, + 0xb8, 0x84, 0x97, 0xee, 0x64, 0x22, 0x5a, 0x3c, + 0xeb, 0x63, 0x5f, 0xf8, 0x3e, 0xa1, 0x67, 0x31, + 0xdd, 0x92, 0x1d, 0x31, 0xc3, 0xf6, 0x84, 0x89, + 0x1e, 0xc4, 0x5a, 0x79, 0xe5, 0xf7, 0x60, 0x41, + 0x5e, 0xb9, 0x11, 0x1c, 0x20, 0x48, 0x9b, 0x5e, + 0xdd, 0x1b, 0x56, 0x0c, 0xf4, 0x74, 0x02, 0x1b, + 0x61, 0xb7, 0x13, 0x34, 0x74, 0xcd, 0xa4, 0x2b, + 0xb3, 0x7c, 0xe1, 0x3d, 0x8c, 0x49, 0xae, 0x64, + 0x2c, 0x09, 0x27, 0xdb, 0x0f, 0xb9, 0x19, 0x6e, + 0x43, 0x37, 0xb5, 0x96, 0x0a, 0xfe, 0x1b, 0x0e, + 0x73, 0x7a, 0x9b, 0x5a, 0x02, 0x97, 0x2a, 0xc6, + 0x6b, 0xa8, 0x6b, 0xcd, 0xc1, 0xbd, 0xa6, 0x70, + 0x72, 0x48, 0x72, 0x3a, 0x95, 0x7b, 0x01, 0xbf, + 0xba, 0xb8, 0xc7, 0x2a, 0xb6, 0x57, 0x3a, 0x8a, + 0x6d, 0x1e, 0x99, 0xdc, 0x47, 0x1d, 0xdd, 0x40, + 0x78, 0x6a, 0x81, 0x3b, 0xb6, 0xa3, 0xc3, 0x3a, + 0x7b, 0x33, 0xd3, 0x4c, 0x17, 0x5b, 0x18, 0x5b, + 0x99, 0x52, 0x36, 0x60, 0x4d, 0xed, 0xa6, 0x21, + 0x74, 0x7f, 0xf6, 0xcf, 0xff, 0x00, 0xde, 0xad, + 0xd3, 0xf5, 0xfd, 0xa1, 0x52, 0xbf, 0x6d, 0xd3, + 0x5d, 0x9e, 0x76, 0xdf, 0x07, 0xc4, 0x14, 0xa4, + 0xbf, 0xb2, 0xc8, 0x89, 0x91, 0x9f, 0x31, 0xd3, + 0xb6, 0x1b, 0x38, 0xce, 0xb8, 0x37, 0xc3, 0xf8, + 0xe6, 0xd1, 0xcc, 0x51, 0x18, 0xda, 0x44, 0xcf, + 0x83, 0x62, 0xbf, 0xf5, 0x98, 0xb3, 0xf8, 0x9e, + 0x62, 0x39, 0xb6, 0x8f, 0x3b, 0xf1, 0x5a, 0xfe, + 0x7b, 0xf9, 0x8e, 0xff, 0x00, 0x37, 0xb1, 0x1f, + 0x63, 0xc7, 0x69, 0x8f, 0x2b, 0xdf, 0xe6, 0x1b, + 0xff, 0x00, 0x9c, 0x6f, 0x9e, 0xde, 0x39, 0xf6, + 0xe8, 0x27, 0x8a, 0xe6, 0xf1, 0xad, 0x1e, 0xa1, + 0xe3, 0x59, 0x74, 0x7d, 0x8f, 0x19, 0x81, 0x8f, + 0xc3, 0xde, 0x35, 0x0f, 0x3e, 0x6c, 0x6f, 0x9e, + 0x39, 0x47, 0x37, 0xab, 0xc2, 0x27, 0x8f, 0x50, + 0xdd, 0x7a, 0xcb, 0x75, 0x09, 0x91, 0xd6, 0x99, + 0xe2, 0x9c, 0x81, 0xc2, 0xf0, 0xf6, 0xc6, 0x63, + 0x51, 0x89, 0x91, 0xcd, 0xfb, 0xc1, 0x1c, 0x72, + 0x7b, 0xde, 0xbf, 0x4d, 0x69, 0xc3, 0x52, 0xf6, + 0x35, 0x6b, 0x57, 0xcb, 0x6d, 0x68, 0xff, 0x00, + 0x93, 0x37, 0x3e, 0x1e, 0x2d, 0x94, 0x38, 0x6a, + 0x1b, 0xc8, 0x4b, 0xdd, 0x12, 0x32, 0x7b, 0x37, + 0xdc, 0xf7, 0x23, 0x0a, 0x12, 0x35, 0xaf, 0xa4, + 0x6b, 0x5c, 0xb3, 0x69, 0xa2, 0x9d, 0x69, 0xd3, + 0x1c, 0x6c, 0x5c, 0x82, 0xda, 0x8c, 0xe2, 0x49, + 0x7a, 0x83, 0x4f, 0x16, 0xdc, 0x31, 0x35, 0x89, + 0x91, 0x3a, 0x02, 0x60, 0x58, 0x30, 0xba, 0x26, + 0xd4, 0xea, 0x1b, 0xd7, 0xb7, 0x7a, 0xc3, 0xf8, + 0xb5, 0x31, 0x5e, 0xca, 0x74, 0x10, 0xd6, 0x9a, + 0x82, 0x09, 0x08, 0x55, 0xad, 0xb8, 0xe6, 0xe1, + 0xc7, 0x1c, 0xb8, 0xb9, 0x66, 0x4c, 0xa5, 0xbb, + 0x8e, 0x99, 0x92, 0x35, 0x28, 0xed, 0x1d, 0xa8, + 0xb6, 0xc7, 0x16, 0xab, 0x1f, 0x72, 0xd4, 0xb3, + 0xb7, 0x9a, 0x5b, 0x87, 0xb4, 0xe9, 0xdc, 0x3b, + 0xc9, 0xdd, 0x7c, 0xb3, 0xc9, 0x3b, 0x96, 0x71, + 0x23, 0xa5, 0xb1, 0x95, 0xf5, 0x05, 0x76, 0x9d, + 0xef, 0x72, 0x35, 0x35, 0x25, 0x2a, 0x06, 0x1d, + 0x12, 0x35, 0xe6, 0x84, 0x42, 0xe3, 0x89, 0x86, + 0x38, 0x95, 0xf9, 0xf4, 0x4b, 0xd9, 0xc8, 0x52, + 0x47, 0x9f, 0x5a, 0x63, 0x5e, 0xad, 0x4f, 0x3a, + 0xab, 0xbd, 0xdd, 0xca, 0x35, 0x34, 0x86, 0xd3, + 0x63, 0xc2, 0x3b, 0x0c, 0x54, 0x10, 0xa8, 0x90, + 0xdb, 0xbc, 0x8c, 0x43, 0x92, 0x7c, 0xcf, 0x27, + 0x99, 0x9d, 0x2a, 0x58, 0x9d, 0x53, 0xec, 0x75, + 0xef, 0x05, 0xae, 0x1d, 0x51, 0x71, 0x22, 0x76, + 0x4a, 0x78, 0x63, 0x4f, 0x9c, 0x07, 0x89, 0x45, + 0x13, 0xf6, 0xa1, 0xf4, 0xe7, 0x3b, 0x7d, 0xfd, + 0xa7, 0x7d, 0x2f, 0x91, 0x1a, 0xb7, 0xd9, 0x29, + 0x5c, 0x4d, 0x9e, 0x1d, 0x55, 0x51, 0x8b, 0x2c, + 0x4e, 0xea, 0x1d, 0x3f, 0xd2, 0x3c, 0x55, 0x8a, + 0x37, 0x8b, 0x01, 0x38, 0xe5, 0xe8, 0xf0, 0x58, + 0xce, 0xf4, 0x48, 0x6b, 0x6b, 0x49, 0x4d, 0x7a, + 0x17, 0x2b, 0x9a, 0xd5, 0xac, 0x28, 0xe5, 0x0c, + 0x79, 0x64, 0xa4, 0xd1, 0x33, 0x11, 0x98, 0xa7, + 0xb6, 0xe2, 0xd1, 0x2c, 0x64, 0xbd, 0xa9, 0x98, + 0x2c, 0x4b, 0x2d, 0x3f, 0x34, 0xeb, 0x7b, 0x56, + 0xd2, 0x5f, 0x4d, 0xfc, 0x5a, 0xad, 0x6f, 0x45, + 0x96, 0xcc, 0x48, 0xae, 0x8f, 0xd2, 0x17, 0x42, + 0x7d, 0x59, 0xaf, 0xc4, 0xf8, 0x56, 0xe2, 0x58, + 0x16, 0x54, 0xf3, 0x4e, 0xb9, 0x1c, 0x1a, 0x33, + 0x69, 0x3f, 0x8b, 0x54, 0xab, 0xe9, 0xb4, 0xc9, + 0x1d, 0x95, 0x53, 0xe9, 0x8e, 0x9d, 0xf7, 0xb7, + 0x5c, 0xed, 0xf4, 0x4e, 0xe3, 0xe9, 0x2d, 0xea, + 0xe4, 0x9d, 0x7a, 0x38, 0xb4, 0x33, 0xa2, 0xde, + 0x3d, 0x4e, 0xa7, 0xa6, 0xd9, 0x61, 0xec, 0xd6, + 0xf5, 0x46, 0x3a, 0x67, 0x89, 0xf6, 0xfc, 0x4f, + 0x84, 0xe4, 0x3e, 0x99, 0xe9, 0x19, 0x27, 0x5f, + 0x1e, 0x3d, 0x06, 0x68, 0x33, 0x8f, 0x53, 0xa7, + 0xbc, 0x5d, 0x2c, 0x3d, 0x84, 0xfa, 0xbc, 0x69, + 0x7e, 0x27, 0x15, 0xcf, 0xf6, 0x53, 0x94, 0x7a, + 0x67, 0xa5, 0x6e, 0xbd, 0x7c, 0x65, 0x7f, 0x0f, + 0xfc, 0xbc, 0xb6, 0xd4, 0xa9, 0xef, 0xde, 0xce, + 0x3f, 0x67, 0x0f, 0x56, 0xdf, 0x2b, 0xf4, 0xce, + 0xcb, 0xfd, 0x8b, 0xca, 0x23, 0x62, 0xe9, 0x0a, + 0x94, 0x6b, 0x41, 0x09, 0xd0, 0x8a, 0x8c, 0x92, + 0xef, 0x53, 0x17, 0x15, 0xe6, 0xf0, 0xe7, 0x5a, + 0x58, 0x07, 0xee, 0x69, 0x01, 0x0a, 0xf6, 0x56, + 0x53, 0xe8, 0xdf, 0xee, 0xc6, 0xe5, 0xb7, 0xdc, + 0xf8, 0x87, 0xfa, 0x3c, 0x3a, 0x7f, 0xf3, 0x8d, + 0x4f, 0xe5, 0xde, 0x9d, 0xeb, 0x47, 0xab, 0xf9, + 0xab, 0xc7, 0xa0, 0x3e, 0xbe, 0x07, 0x2d, 0xba, + 0xfc, 0x3f, 0x88, 0x7f, 0xa3, 0xcb, 0xd3, 0xa7, + 0xf8, 0xc6, 0xa6, 0xfd, 0xf7, 0x8e, 0x4a, 0xde, + 0x96, 0x7f, 0x36, 0x6d, 0x13, 0x84, 0x7d, 0x76, + 0x88, 0xcb, 0x6e, 0x99, 0xec, 0x6b, 0xf3, 0x13, + 0xf0, 0xf2, 0xb4, 0xf8, 0xde, 0xf5, 0x4d, 0xca, + 0xf8, 0x63, 0xf6, 0x52, 0xf7, 0xbc, 0xe9, 0x63, + 0x1f, 0x85, 0xfa, 0x5e, 0x3d, 0x45, 0xf4, 0xe8, + 0xe9, 0x76, 0x9a, 0xdc, 0xff, 0x00, 0x12, 0x2a, + 0xb2, 0xad, 0x77, 0x74, 0xe2, 0xd7, 0x7d, 0xc5, + 0xc6, 0xdd, 0x34, 0xda, 0x2e, 0xd9, 0xba, 0x29, + 0x6c, 0xa9, 0x58, 0xba, 0x18, 0x6a, 0x95, 0xec, + 0xa6, 0x2e, 0x18, 0xc8, 0x3a, 0x8f, 0x64, 0x7c, + 0x47, 0x2a, 0x4e, 0x97, 0x4a, 0xa9, 0x19, 0x5d, + 0xa2, 0x45, 0x17, 0x10, 0x7b, 0xcd, 0x3f, 0xc6, + 0xde, 0x74, 0x9d, 0xa7, 0xe9, 0xf7, 0xfe, 0xbe, + 0xaf, 0xd6, 0x95, 0xb0, 0x30, 0x28, 0x93, 0xf4, + 0xed, 0xb4, 0x7d, 0x7f, 0x2f, 0xd9, 0xff, 0x00, + 0x40, 0xfa, 0x47, 0x5f, 0x48, 0xeb, 0xe9, 0x1f, + 0xbb, 0xaf, 0xa4, 0x7e, 0xee, 0xbe, 0x91, 0xfb, + 0xa3, 0xaf, 0xa4, 0x7e, 0xee, 0xbe, 0x91, 0xfb, + 0xba, 0xfa, 0x47, 0xee, 0xeb, 0xe9, 0x1f, 0xbb, + 0xaf, 0xa4, 0x7e, 0xef, 0xfb, 0xd5, 0xff, 0xc4, + 0x00, 0x29, 0x10, 0x01, 0x00, 0x03, 0x00, 0x02, + 0x01, 0x01, 0x08, 0x03, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, 0x21, 0x31, + 0x41, 0x51, 0x10, 0x20, 0x30, 0x61, 0x71, 0x91, + 0xb1, 0xe1, 0xf0, 0x81, 0xa1, 0xd1, 0x40, 0xc1, + 0xf1, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, + 0x01, 0x3f, 0x21, 0xf6, 0x00, 0xf5, 0x04, 0x10, + 0x41, 0x04, 0x10, 0x41, 0x04, 0x10, 0x41, 0x03, + 0x7e, 0xf1, 0x04, 0x10, 0x7a, 0x04, 0x10, 0x41, + 0x04, 0x10, 0x41, 0xea, 0x02, 0x07, 0xdd, 0x80, + 0x92, 0x48, 0x20, 0x92, 0x08, 0x20, 0x82, 0x0f, + 0x40, 0xbd, 0x01, 0x84, 0x0f, 0xb9, 0x0f, 0xd7, + 0xef, 0xde, 0x1e, 0xc0, 0x10, 0x41, 0x04, 0x10, + 0x41, 0x07, 0xa0, 0x3d, 0x02, 0xf4, 0x06, 0xfd, + 0xc8, 0x0f, 0x50, 0x41, 0x04, 0x10, 0x42, 0xf4, + 0x08, 0x3d, 0x02, 0x84, 0x28, 0x31, 0x7b, 0x1a, + 0xc5, 0x72, 0x34, 0xae, 0xd5, 0x1a, 0x4d, 0x81, + 0x50, 0x2a, 0x70, 0x6b, 0xf9, 0x7e, 0xd5, 0x9d, + 0xd6, 0x7c, 0x29, 0x7f, 0x8b, 0x37, 0xf7, 0x8b, + 0xa7, 0xab, 0x47, 0x68, 0x35, 0xc5, 0x3c, 0x4a, + 0xe6, 0xae, 0x7e, 0xb1, 0x3d, 0xcf, 0x9b, 0x35, + 0x04, 0x81, 0x1d, 0xc5, 0x7a, 0x3b, 0x86, 0xeb, + 0xd2, 0xd6, 0x5f, 0xd4, 0x40, 0x21, 0x53, 0x94, + 0x56, 0x0d, 0x55, 0x68, 0xe8, 0xb2, 0x3d, 0xea, + 0x73, 0x5d, 0x0c, 0xbc, 0xc0, 0xb2, 0xde, 0xbc, + 0x95, 0x26, 0x17, 0x53, 0x89, 0xd7, 0x47, 0x61, + 0x38, 0x72, 0x42, 0x56, 0xbe, 0xa1, 0x5b, 0x1f, + 0x1c, 0x29, 0x71, 0x95, 0x90, 0x1b, 0x24, 0xa4, + 0x84, 0x05, 0x4c, 0x5e, 0x5f, 0xe7, 0xa0, 0x4c, + 0xaf, 0x2d, 0x80, 0xcf, 0x20, 0x43, 0x60, 0xc5, + 0x81, 0xe0, 0x76, 0xe5, 0x77, 0xb9, 0x4b, 0x64, + 0x24, 0x82, 0xd4, 0x4a, 0xe3, 0x1d, 0x8e, 0x41, + 0x0c, 0xf4, 0xfd, 0xbb, 0x10, 0xc0, 0xc5, 0x97, + 0x9b, 0x8d, 0x43, 0x1c, 0x14, 0x50, 0x5b, 0x2c, + 0x7b, 0xc0, 0x62, 0x82, 0x8a, 0x2a, 0x6a, 0xd8, + 0xdf, 0x70, 0x38, 0x8a, 0xa9, 0xc0, 0xf0, 0x54, + 0xa7, 0x6a, 0x17, 0x85, 0x13, 0xad, 0x5d, 0x39, + 0xa3, 0x01, 0xe7, 0x70, 0x27, 0x5d, 0x16, 0x11, + 0xdd, 0x83, 0x30, 0x00, 0xd7, 0x78, 0xd6, 0x51, + 0x5e, 0x80, 0x4c, 0xfc, 0xa3, 0x18, 0x12, 0x62, + 0x26, 0x2a, 0x06, 0x99, 0xce, 0xd1, 0x28, 0xda, + 0xff, 0x00, 0xc8, 0x21, 0x58, 0x30, 0x54, 0xb9, + 0x86, 0x03, 0x23, 0x4c, 0x2b, 0x88, 0x1d, 0xc2, + 0x84, 0xe7, 0x9c, 0x48, 0x59, 0x75, 0x68, 0x5d, + 0x96, 0xdc, 0x85, 0x28, 0xe8, 0x39, 0x39, 0x21, + 0x67, 0x99, 0x4d, 0xa9, 0x9d, 0x8d, 0x57, 0x86, + 0xf8, 0x49, 0xba, 0x97, 0xfb, 0xce, 0xb7, 0xeb, + 0xf9, 0x86, 0xad, 0x83, 0x95, 0x23, 0x7f, 0x7a, + 0xe7, 0xeb, 0x1d, 0x9e, 0xe8, 0x1b, 0x83, 0x3e, + 0x53, 0x9a, 0x19, 0xc7, 0xa9, 0x1f, 0x50, 0x22, + 0x06, 0x69, 0x07, 0x5a, 0x4f, 0x0a, 0xd5, 0x9f, + 0xe0, 0xb9, 0x21, 0x28, 0xc0, 0x10, 0xd8, 0xc7, + 0x18, 0xc7, 0xfb, 0x3d, 0x87, 0x03, 0x59, 0x27, + 0xde, 0x07, 0x40, 0x37, 0x62, 0xa2, 0x2c, 0xc7, + 0x51, 0xf5, 0x2b, 0xd9, 0x3b, 0xe4, 0xc3, 0xe2, + 0xa0, 0x6b, 0x64, 0x09, 0x6b, 0xd2, 0x6a, 0x1a, + 0x02, 0x98, 0xb1, 0xe3, 0x77, 0xd5, 0xb4, 0xca, + 0xfa, 0xdd, 0xc6, 0x4e, 0x24, 0x98, 0xc3, 0xdf, + 0x6c, 0x89, 0x4f, 0xc1, 0x60, 0xef, 0x32, 0x32, + 0x05, 0xc6, 0xff, 0x00, 0x91, 0x1c, 0x24, 0x94, + 0xd9, 0x12, 0x65, 0x2c, 0x01, 0x0c, 0x5d, 0xea, + 0x7b, 0x15, 0x2a, 0x90, 0xaa, 0xad, 0xc0, 0xf0, + 0x70, 0x35, 0xdf, 0x39, 0x77, 0xc1, 0x15, 0xb0, + 0x0a, 0x77, 0xde, 0xec, 0xf5, 0x0d, 0x42, 0x14, + 0xc4, 0x9c, 0xff, 0x00, 0x71, 0x95, 0x71, 0x4c, + 0xa0, 0xf6, 0xe7, 0x20, 0xe7, 0x3c, 0x35, 0x3d, + 0x1d, 0xf8, 0x11, 0x69, 0x44, 0x26, 0xa4, 0xe9, + 0x02, 0xd5, 0xd8, 0x0a, 0x16, 0x99, 0x1e, 0x9a, + 0x55, 0xd8, 0xf1, 0xe6, 0x41, 0x0b, 0x6c, 0x8c, + 0x49, 0xd1, 0x61, 0x6b, 0x5c, 0x92, 0xd2, 0x0a, + 0x20, 0x81, 0xc5, 0x56, 0x01, 0x65, 0x60, 0x97, + 0xfc, 0x22, 0x2a, 0xff, 0x00, 0x13, 0x41, 0x31, + 0x5b, 0xc3, 0x7e, 0xd3, 0x21, 0xe8, 0x81, 0xc6, + 0x95, 0x5e, 0x3a, 0xd2, 0x98, 0x52, 0xa1, 0xc8, + 0x15, 0xa7, 0x95, 0x68, 0xe0, 0x2d, 0xa3, 0x25, + 0x44, 0x39, 0x4b, 0xc9, 0x9a, 0xfe, 0xbf, 0xe0, + 0xf8, 0x40, 0xde, 0x9b, 0xe7, 0x96, 0xdf, 0x3f, + 0xd7, 0xf3, 0xe2, 0x31, 0x2c, 0xeb, 0x9b, 0xcb, + 0xff, 0x00, 0x9c, 0xbc, 0x6b, 0x36, 0x60, 0x10, + 0x01, 0xbe, 0x74, 0x7c, 0x2d, 0x07, 0x5f, 0x10, + 0x4c, 0x98, 0xa5, 0x18, 0xc0, 0xd5, 0x21, 0x11, + 0x7f, 0xa8, 0x50, 0x78, 0x40, 0xec, 0xd2, 0x7e, + 0xb2, 0x46, 0x58, 0x08, 0x92, 0x54, 0x7a, 0x04, + 0x1b, 0x0d, 0xc5, 0x93, 0x33, 0xe6, 0x18, 0x37, + 0x86, 0x5b, 0x0c, 0x2c, 0x0e, 0xc3, 0xa0, 0xd4, + 0x10, 0x08, 0xdd, 0xa0, 0x20, 0xd8, 0xaf, 0xcf, + 0x0d, 0x69, 0xda, 0x8a, 0xd6, 0x3a, 0x7b, 0x06, + 0x30, 0x09, 0x52, 0x43, 0xe7, 0xf3, 0xb8, 0xb8, + 0x52, 0x01, 0xfc, 0x91, 0xfb, 0x01, 0x0a, 0x1a, + 0x75, 0x4a, 0x66, 0x01, 0x43, 0x66, 0x6a, 0xc4, + 0x17, 0x2b, 0xf2, 0xde, 0xdc, 0x2d, 0x62, 0xcf, + 0x4c, 0x58, 0x4e, 0x5c, 0xbb, 0x75, 0xb3, 0x18, + 0xec, 0x82, 0xb5, 0x17, 0x3f, 0x74, 0x06, 0xc6, + 0x2c, 0x49, 0xca, 0x13, 0xb8, 0x30, 0x09, 0x0d, + 0xd0, 0xac, 0x47, 0x0c, 0xea, 0xc7, 0x78, 0x55, + 0x6d, 0xd4, 0x00, 0x2c, 0x14, 0x15, 0xdc, 0x5e, + 0x01, 0xd2, 0x10, 0xf6, 0x6d, 0xb1, 0xe5, 0x31, + 0x1f, 0x59, 0x2b, 0xb3, 0x34, 0xa0, 0x2c, 0x65, + 0x12, 0x16, 0x14, 0xab, 0x3b, 0xeb, 0x0b, 0xa5, + 0x47, 0x58, 0x94, 0xc4, 0xd5, 0x7f, 0x3b, 0x80, + 0xae, 0x7d, 0x67, 0x95, 0xb7, 0x13, 0x1d, 0x52, + 0x5a, 0xa1, 0xd8, 0x9a, 0x86, 0xa2, 0xf2, 0x63, + 0x17, 0xc8, 0xc2, 0x65, 0xb4, 0x3c, 0x9c, 0xa6, + 0xbc, 0x34, 0x02, 0x0b, 0x15, 0x08, 0x56, 0xb3, + 0x0b, 0x6d, 0x45, 0x5a, 0x31, 0xd0, 0x25, 0x0d, + 0x05, 0x8d, 0xd4, 0x74, 0xd8, 0x69, 0xda, 0x1e, + 0x12, 0xef, 0x6b, 0xf0, 0xf3, 0xd7, 0xcb, 0x8f, + 0xac, 0xab, 0xd9, 0x7b, 0x7d, 0x77, 0x5e, 0x5f, + 0xcd, 0xc1, 0xe2, 0x77, 0xb3, 0x2a, 0xae, 0x68, + 0xd0, 0x51, 0x20, 0xd3, 0x8f, 0x37, 0x23, 0xef, + 0x6a, 0x16, 0x2a, 0xdc, 0x44, 0x61, 0xca, 0xdb, + 0x13, 0x61, 0xd0, 0x9c, 0x2e, 0x5f, 0x10, 0x8a, + 0xd7, 0x46, 0xda, 0x0a, 0x5b, 0x64, 0xdf, 0xbd, + 0xd4, 0xe0, 0xe7, 0xf7, 0x5a, 0x24, 0x73, 0xd6, + 0x5d, 0x61, 0x01, 0x4c, 0x81, 0x5a, 0x74, 0xa6, + 0xe9, 0xc5, 0xb1, 0xd2, 0xd8, 0xbd, 0xd8, 0x60, + 0x95, 0x79, 0x02, 0x8d, 0xb0, 0x61, 0x26, 0x84, + 0xa3, 0x5f, 0x8a, 0x36, 0x20, 0x36, 0xda, 0x9a, + 0xd4, 0x8b, 0x7a, 0x43, 0xed, 0xc8, 0xde, 0xb9, + 0x32, 0xd9, 0xc3, 0xea, 0x56, 0x38, 0x24, 0x8c, + 0x5c, 0x3e, 0x54, 0x56, 0x20, 0x74, 0xf2, 0x11, + 0x21, 0xd9, 0xde, 0xde, 0x75, 0x88, 0xc4, 0xdd, + 0xca, 0xa3, 0xf6, 0xc5, 0x05, 0xca, 0xce, 0x00, + 0xe0, 0x40, 0xae, 0x99, 0x00, 0x28, 0xa4, 0xf4, + 0x5c, 0xcf, 0xec, 0x94, 0x47, 0xe0, 0x3c, 0xbd, + 0x48, 0xc7, 0x46, 0xa6, 0xae, 0x60, 0x58, 0x33, + 0x34, 0x11, 0xab, 0x77, 0xb8, 0x92, 0x84, 0x29, + 0x1e, 0x14, 0x2b, 0xa6, 0xf1, 0x16, 0x13, 0xe6, + 0x43, 0xc2, 0x7f, 0xf5, 0x92, 0xab, 0x64, 0x64, + 0xc2, 0x92, 0xb2, 0xc8, 0x11, 0x56, 0x4e, 0x8a, + 0x2f, 0xe7, 0xb0, 0x11, 0xad, 0x83, 0xa0, 0xc7, + 0x42, 0xab, 0xc0, 0xa6, 0x75, 0xc7, 0xc3, 0xbb, + 0xac, 0xfa, 0x7b, 0x65, 0xe4, 0xb2, 0x64, 0x85, + 0xd3, 0x2d, 0x90, 0x6d, 0x66, 0xf4, 0x88, 0x2d, + 0x98, 0xbe, 0x96, 0x34, 0x86, 0x9b, 0x8b, 0x2d, + 0xe5, 0x62, 0xb3, 0x9b, 0x21, 0x70, 0xd0, 0x8c, + 0x36, 0x93, 0x29, 0x83, 0x17, 0xa2, 0xb4, 0x3c, + 0x45, 0xd5, 0xf4, 0xc1, 0x8b, 0xdc, 0xf6, 0xda, + 0x2f, 0x5e, 0xc8, 0x52, 0x3a, 0xb4, 0xe4, 0x4d, + 0x64, 0x85, 0x18, 0x1b, 0x21, 0x07, 0x92, 0xc6, + 0x74, 0x19, 0xf5, 0xd0, 0x05, 0x99, 0x56, 0x30, + 0x03, 0xc5, 0x57, 0x06, 0x31, 0x58, 0x51, 0x62, + 0x3d, 0x48, 0x0b, 0x19, 0xc8, 0xe6, 0x05, 0x61, + 0xd2, 0xb0, 0x84, 0x02, 0x8a, 0x6d, 0x55, 0x89, + 0x2f, 0x00, 0xda, 0x67, 0x89, 0xf9, 0x65, 0x36, + 0x80, 0x87, 0xd2, 0x65, 0xb4, 0xd6, 0xa2, 0x63, + 0x5c, 0x61, 0xc8, 0x2d, 0x2b, 0x54, 0x4c, 0xed, + 0x46, 0x68, 0xf6, 0xc1, 0x14, 0x1c, 0x39, 0x40, + 0x7f, 0xe4, 0x58, 0xb8, 0x62, 0x94, 0xd3, 0x71, + 0x2d, 0xb3, 0x40, 0x29, 0x39, 0x8b, 0x35, 0x06, + 0xc4, 0xe9, 0x6c, 0xbe, 0x54, 0x2d, 0x88, 0xd0, + 0x52, 0x20, 0xf0, 0xf2, 0x88, 0xd0, 0xa9, 0x48, + 0x33, 0x6e, 0xa1, 0xea, 0xec, 0x9b, 0xf6, 0x48, + 0x54, 0x55, 0x97, 0x08, 0x40, 0x23, 0xf3, 0xe6, + 0xec, 0x56, 0xec, 0x77, 0x6e, 0x47, 0x02, 0x05, + 0xc5, 0x91, 0xde, 0x08, 0x77, 0xad, 0xb7, 0x5d, + 0x77, 0xb9, 0x4a, 0x78, 0x2d, 0xef, 0x1d, 0xcc, + 0x69, 0xc2, 0xf9, 0x34, 0x05, 0xfa, 0x84, 0x9a, + 0x7c, 0xa8, 0x3e, 0x8a, 0x20, 0x65, 0x8f, 0xca, + 0x2e, 0xeb, 0x7a, 0x20, 0x5d, 0xa4, 0x8f, 0x5e, + 0x0c, 0x71, 0x5b, 0xb1, 0x41, 0x7b, 0x80, 0x5a, + 0x8c, 0x38, 0xf4, 0x04, 0x70, 0xb9, 0xe1, 0xef, + 0x3e, 0x4b, 0x78, 0x5c, 0x94, 0xb4, 0x74, 0x75, + 0x1b, 0xfb, 0x63, 0x22, 0x34, 0x67, 0x6a, 0x0e, + 0x9c, 0x2e, 0xe8, 0x24, 0x9d, 0xca, 0x61, 0xea, + 0x06, 0xdc, 0x7d, 0x5a, 0x9d, 0xb9, 0x0d, 0xd1, + 0xc5, 0x09, 0xdd, 0x29, 0x0e, 0x74, 0x96, 0x54, + 0x0f, 0xc8, 0x29, 0x02, 0xd4, 0x8d, 0xcd, 0xec, + 0x18, 0x38, 0xd0, 0x52, 0x9c, 0x57, 0x91, 0x23, + 0x1c, 0xb0, 0x0c, 0x81, 0x54, 0xd1, 0x73, 0x2a, + 0xb5, 0xa8, 0x98, 0xe4, 0xd6, 0x4a, 0x5a, 0x9b, + 0x63, 0x66, 0x82, 0xb4, 0x24, 0x0d, 0x23, 0x28, + 0xfb, 0xda, 0xa0, 0xf0, 0x72, 0x10, 0x20, 0x87, + 0x93, 0xde, 0xd6, 0x85, 0x57, 0xb2, 0x00, 0x58, + 0x51, 0xa8, 0x84, 0x14, 0x03, 0x70, 0xc3, 0x23, + 0x1f, 0x30, 0x82, 0x21, 0xfa, 0x0e, 0xdc, 0x1a, + 0xd2, 0x1c, 0x32, 0x35, 0x28, 0x85, 0x15, 0x52, + 0x00, 0xfd, 0x5b, 0x09, 0x30, 0xb5, 0x45, 0xcc, + 0x1d, 0xc6, 0x38, 0x39, 0x6c, 0x30, 0x24, 0x38, + 0x1f, 0xe2, 0x7d, 0x13, 0xbf, 0x49, 0x5b, 0x18, + 0x13, 0x0e, 0xd8, 0xc3, 0x23, 0x46, 0x84, 0xf0, + 0x91, 0x0d, 0x34, 0xb4, 0x2a, 0x81, 0x74, 0x82, + 0xc3, 0x08, 0xaf, 0xbd, 0x64, 0x12, 0x2e, 0x99, + 0x79, 0x9a, 0x6a, 0xd7, 0x8a, 0xed, 0x23, 0xc5, + 0x68, 0x20, 0x36, 0x95, 0x4e, 0x7f, 0x22, 0x3b, + 0xf3, 0x2b, 0x10, 0x8a, 0xc4, 0xf2, 0x40, 0xd8, + 0x9c, 0x98, 0x20, 0x96, 0x4d, 0x28, 0x25, 0x6d, + 0x78, 0x12, 0x58, 0xbc, 0x96, 0xb9, 0x33, 0x52, + 0x2a, 0xe9, 0x36, 0xc9, 0x43, 0xb0, 0x46, 0x22, + 0x37, 0x32, 0x48, 0x1e, 0x42, 0x1b, 0x2b, 0x26, + 0xa9, 0x40, 0xda, 0x5a, 0xe7, 0xf2, 0x72, 0xaa, + 0xac, 0x8c, 0x13, 0x3f, 0x29, 0xf7, 0x66, 0xd4, + 0xc2, 0x35, 0x80, 0x0a, 0x4b, 0x8d, 0x78, 0x80, + 0xfe, 0xe5, 0xb5, 0x0f, 0x2f, 0x4e, 0x03, 0x39, + 0x95, 0x4d, 0xa0, 0x0c, 0x92, 0x74, 0x60, 0x63, + 0x41, 0x25, 0xde, 0xba, 0x24, 0xb3, 0x11, 0x0c, + 0x42, 0x25, 0xa3, 0x8a, 0x1a, 0x42, 0x13, 0x65, + 0x06, 0xcb, 0x0e, 0x2b, 0x45, 0x2c, 0x4d, 0x35, + 0x8e, 0x9a, 0x42, 0xae, 0x71, 0x64, 0x8e, 0xaa, + 0xc6, 0x53, 0xc1, 0x95, 0x8d, 0x19, 0x32, 0x3b, + 0x07, 0x70, 0xcf, 0x68, 0x4f, 0x89, 0x43, 0xc2, + 0xdc, 0x60, 0x4c, 0xe3, 0xec, 0x2b, 0xa2, 0x1c, + 0x16, 0xad, 0xa2, 0xca, 0x21, 0x29, 0xd4, 0x6b, + 0x29, 0x5e, 0xb7, 0x9a, 0x02, 0xf4, 0xc5, 0x60, + 0xf1, 0x93, 0xb6, 0xf8, 0xf8, 0xa6, 0x6e, 0x86, + 0xe5, 0x9e, 0x20, 0xa5, 0x0d, 0x65, 0x80, 0x3a, + 0x18, 0x32, 0x0a, 0xc1, 0xbb, 0x14, 0x56, 0x6b, + 0x55, 0x05, 0x84, 0xcb, 0xf7, 0x49, 0x2d, 0xa0, + 0x97, 0x0e, 0x11, 0x24, 0x4a, 0x2d, 0x92, 0xdd, + 0x2e, 0x22, 0xd7, 0x34, 0x64, 0xc1, 0xb0, 0x63, + 0xac, 0x8d, 0xe9, 0x28, 0x7e, 0xa8, 0x60, 0x6c, + 0x77, 0x62, 0x7c, 0x8f, 0x2e, 0xd5, 0x82, 0xd6, + 0x22, 0xa5, 0x83, 0x42, 0xbb, 0x01, 0x9b, 0x61, + 0x54, 0xb1, 0x83, 0x18, 0x2c, 0x54, 0xac, 0x44, + 0x28, 0x12, 0xc1, 0x22, 0xa5, 0xbc, 0xfc, 0xf9, + 0xb8, 0x73, 0x48, 0xd9, 0xc4, 0xff, 0x00, 0x7d, + 0x1b, 0x0c, 0x88, 0xb0, 0x70, 0x77, 0x56, 0xf7, + 0x16, 0x29, 0x78, 0x99, 0xa5, 0x2a, 0x4e, 0x09, + 0x8c, 0x45, 0x02, 0x28, 0x75, 0x0f, 0x60, 0x86, + 0x50, 0x8c, 0xe6, 0x96, 0xc1, 0xe2, 0x39, 0xed, + 0x81, 0x82, 0xcd, 0xff, 0x00, 0x51, 0xf7, 0xd8, + 0x3d, 0x81, 0x8e, 0x58, 0xf0, 0x89, 0x57, 0x61, + 0x87, 0x2b, 0xbb, 0x2f, 0x91, 0xd9, 0x05, 0x54, + 0x68, 0x4b, 0x88, 0x51, 0xbe, 0xd2, 0x75, 0xaf, + 0x30, 0x18, 0x1c, 0xd2, 0xfb, 0xf6, 0xf5, 0x94, + 0x38, 0x35, 0x3b, 0xa2, 0x39, 0x06, 0x87, 0x9a, + 0x4b, 0x96, 0xd7, 0x48, 0xd5, 0xbe, 0xc8, 0x34, + 0xf8, 0xc6, 0xeb, 0xbb, 0x54, 0x41, 0xee, 0xcd, + 0x94, 0x03, 0xb6, 0xc4, 0xc2, 0x76, 0x8d, 0x67, + 0x34, 0x2e, 0x19, 0x46, 0x60, 0x1e, 0x05, 0x0e, + 0xe0, 0xcf, 0xfa, 0x71, 0x56, 0x37, 0x1c, 0xfe, + 0x19, 0x9a, 0x98, 0x42, 0xa4, 0xb4, 0xc2, 0x0f, + 0x05, 0xd1, 0x03, 0x2e, 0xa0, 0x28, 0x3d, 0xd4, + 0xb9, 0x9b, 0x3b, 0x21, 0xb3, 0x4a, 0x05, 0xb2, + 0x63, 0xc3, 0x87, 0x5d, 0x9f, 0x5e, 0xed, 0x60, + 0x84, 0xed, 0xc3, 0x51, 0xb0, 0xc1, 0x2b, 0x35, + 0xb0, 0x50, 0x57, 0x37, 0xe4, 0xd6, 0x19, 0x49, + 0x85, 0x53, 0x30, 0xec, 0x03, 0x2a, 0x19, 0x18, + 0xa9, 0x4e, 0xf9, 0x02, 0x21, 0xad, 0xda, 0x9d, + 0xaf, 0x8a, 0xb9, 0xaf, 0xf2, 0x15, 0x52, 0x01, + 0x3a, 0xd2, 0x40, 0xd8, 0x45, 0x42, 0x8a, 0x8a, + 0x9b, 0x92, 0xe0, 0x6c, 0x9c, 0x16, 0xb4, 0xa3, + 0x1d, 0xb8, 0xe8, 0x03, 0xa1, 0xa3, 0x5e, 0x24, + 0x8a, 0x31, 0x3d, 0x5e, 0xd5, 0x2b, 0x6c, 0xec, + 0xbb, 0x86, 0x95, 0xd2, 0x80, 0xc3, 0xaa, 0x00, + 0xb4, 0x37, 0x42, 0x9d, 0x19, 0xfa, 0x06, 0x19, + 0x19, 0xec, 0x6b, 0x64, 0xdb, 0x87, 0x40, 0x49, + 0xb5, 0xe5, 0x64, 0x2d, 0xd5, 0x0e, 0x51, 0x60, + 0xbd, 0x39, 0x83, 0xda, 0x9b, 0xa0, 0x74, 0xcf, + 0x29, 0xf7, 0x7c, 0x8b, 0xfb, 0x80, 0x2f, 0x10, + 0x34, 0xd4, 0xea, 0x0e, 0xe9, 0x0f, 0x80, 0xc1, + 0x99, 0xca, 0x42, 0xa8, 0x20, 0x2a, 0xa1, 0x8f, + 0xe3, 0x40, 0x5b, 0x67, 0x7e, 0x3b, 0x5e, 0x16, + 0xc8, 0x48, 0xf4, 0xef, 0x4d, 0x2c, 0x6b, 0xa1, + 0xdf, 0x4b, 0x84, 0x38, 0xa9, 0x7f, 0x62, 0x60, + 0x1a, 0x4a, 0x24, 0x8a, 0x72, 0x40, 0x2a, 0xa6, + 0xba, 0x17, 0x8f, 0x73, 0x8d, 0x20, 0x10, 0x58, + 0x8d, 0x46, 0xca, 0xea, 0x09, 0x60, 0xee, 0xdb, + 0x6c, 0x99, 0x81, 0xb1, 0x42, 0xd3, 0x12, 0x15, + 0xf0, 0x52, 0xed, 0x74, 0xe5, 0x84, 0xc2, 0x16, + 0x74, 0x29, 0x8e, 0x2b, 0x98, 0xb3, 0xe0, 0x8b, + 0x41, 0x36, 0x1e, 0xa2, 0x8f, 0x75, 0x05, 0x8d, + 0x55, 0x98, 0x30, 0x45, 0xcb, 0x7d, 0xa9, 0xa6, + 0xfa, 0x29, 0xda, 0x4c, 0x12, 0x00, 0x81, 0x50, + 0x95, 0x80, 0x54, 0xa7, 0x04, 0xb0, 0x08, 0xb8, + 0x68, 0xa8, 0xb5, 0x97, 0xec, 0xdf, 0x1e, 0xad, + 0x63, 0x64, 0x5c, 0xc4, 0xe8, 0x53, 0x76, 0x10, + 0xb5, 0x5a, 0x20, 0x3a, 0x46, 0x52, 0xc9, 0x8e, + 0xf4, 0x6c, 0x5a, 0xa4, 0x69, 0x24, 0x55, 0x9b, + 0x3f, 0xe9, 0xa4, 0xb9, 0x9c, 0x36, 0x67, 0x2a, + 0x93, 0xaa, 0xc2, 0x47, 0xb6, 0xaf, 0x63, 0xbe, + 0xa1, 0x90, 0xa2, 0xcc, 0x71, 0xf6, 0xa5, 0xd2, + 0x08, 0xf7, 0x1b, 0x9b, 0x28, 0xa4, 0xa0, 0x2a, + 0x99, 0x41, 0x22, 0x31, 0x6f, 0x89, 0xab, 0x51, + 0x26, 0x82, 0x60, 0x99, 0x1b, 0xd2, 0x36, 0x78, + 0xe9, 0x12, 0x37, 0x0f, 0x0a, 0x78, 0xa0, 0xe7, + 0x00, 0x24, 0x01, 0x69, 0x63, 0xa6, 0x1a, 0x5c, + 0x02, 0x85, 0xb1, 0xb1, 0x72, 0xec, 0x17, 0x87, + 0xf4, 0x5e, 0x59, 0xb3, 0x0c, 0xc9, 0x78, 0x90, + 0x2e, 0xec, 0x37, 0x31, 0x3e, 0xc7, 0xe9, 0xe5, + 0xcc, 0xfa, 0xe4, 0xa6, 0x92, 0x56, 0x09, 0x36, + 0x8d, 0xde, 0x39, 0x99, 0xde, 0x52, 0x31, 0x22, + 0x0c, 0x12, 0xbb, 0x29, 0x4f, 0x1d, 0xe7, 0xe6, + 0xf3, 0x20, 0x48, 0x8a, 0x34, 0xd6, 0x07, 0x96, + 0x30, 0xa0, 0x48, 0x4b, 0xb3, 0xc8, 0xff, 0x00, + 0x61, 0x66, 0x8b, 0x62, 0x5f, 0xe0, 0x07, 0x09, + 0x32, 0x30, 0xbe, 0xc7, 0x3d, 0x8d, 0x77, 0xb0, + 0x12, 0x14, 0x1c, 0xa6, 0xa1, 0x24, 0xf1, 0x54, + 0xe3, 0x61, 0x65, 0x40, 0xfa, 0x53, 0xcf, 0x52, + 0x03, 0x5c, 0x1d, 0x68, 0xd4, 0x02, 0x47, 0xa0, + 0xdf, 0x7a, 0x8e, 0x1e, 0x75, 0x0b, 0x69, 0x44, + 0x89, 0x44, 0x81, 0xae, 0x17, 0x6e, 0xf8, 0x80, + 0xaa, 0x64, 0xb2, 0xce, 0x42, 0x04, 0xfd, 0x9b, + 0xc0, 0x1a, 0x49, 0xf8, 0xd9, 0x3a, 0x8b, 0x1a, + 0xfa, 0xab, 0x01, 0x55, 0xf1, 0x0a, 0xab, 0x4a, + 0xa1, 0x38, 0x27, 0x56, 0x5b, 0x05, 0x51, 0x84, + 0x41, 0x33, 0x18, 0xfe, 0xab, 0x40, 0x71, 0x99, + 0x96, 0x50, 0x69, 0x18, 0x7b, 0x47, 0xa5, 0x59, + 0xb1, 0x83, 0xab, 0xb5, 0xcd, 0x4b, 0xb6, 0x05, + 0x59, 0x01, 0xd4, 0x16, 0x3f, 0xc1, 0x61, 0x3c, + 0x6e, 0xca, 0xe3, 0x14, 0x7f, 0x21, 0x86, 0x02, + 0xca, 0x4a, 0x8d, 0xaa, 0x6b, 0x1d, 0x01, 0x0b, + 0x8b, 0xb8, 0xd3, 0x0c, 0xd1, 0x72, 0x85, 0xaf, + 0x9a, 0xfb, 0x98, 0x03, 0x3c, 0x54, 0xd3, 0x71, + 0x3c, 0x54, 0xd0, 0xbe, 0x4b, 0xa2, 0xb1, 0x5b, + 0x0c, 0x50, 0x65, 0x6c, 0x86, 0x2b, 0x1d, 0x6f, + 0x17, 0x6b, 0xfa, 0xd8, 0xc4, 0xf2, 0x14, 0x8f, + 0x69, 0x00, 0x38, 0xd5, 0x96, 0x22, 0x05, 0xeb, + 0x10, 0xef, 0x58, 0x20, 0x8a, 0x34, 0x46, 0x1a, + 0x16, 0xc7, 0xee, 0xc1, 0x02, 0xbb, 0x93, 0x04, + 0xca, 0x79, 0xc4, 0x4a, 0x05, 0xea, 0x04, 0x14, + 0x3c, 0x9e, 0x54, 0xc7, 0xb0, 0x13, 0x15, 0x9c, + 0xc9, 0x52, 0xf5, 0x07, 0x2e, 0x0d, 0x2e, 0xa1, + 0xd5, 0x12, 0x02, 0xf6, 0x95, 0x1d, 0xc9, 0x59, + 0x6d, 0xb6, 0xc0, 0x03, 0x47, 0x2b, 0x13, 0xf5, + 0x7b, 0x2b, 0x83, 0x98, 0x51, 0xc7, 0x7b, 0x83, + 0xaf, 0x91, 0x36, 0x40, 0x8a, 0x75, 0x72, 0x26, + 0x60, 0x52, 0x3c, 0x28, 0xb8, 0x60, 0xca, 0x9a, + 0xef, 0x04, 0xad, 0xd2, 0x76, 0x08, 0x10, 0xfb, + 0xac, 0xe6, 0xa9, 0x06, 0xd0, 0xa1, 0x07, 0x37, + 0xb6, 0xe1, 0xaa, 0xa5, 0x57, 0x24, 0x20, 0x02, + 0xd3, 0x9a, 0x33, 0xf0, 0x54, 0xba, 0xd4, 0x91, + 0xdb, 0x5c, 0x92, 0x3a, 0x48, 0x0d, 0xb1, 0xa8, + 0x0a, 0xa6, 0xa8, 0x3d, 0x95, 0x0e, 0xa4, 0x80, + 0x89, 0x1a, 0x21, 0xd8, 0x57, 0x69, 0xa2, 0x85, + 0x4b, 0x25, 0x35, 0xc6, 0xd5, 0x89, 0x18, 0x15, + 0x6d, 0x4e, 0x1b, 0x0c, 0x07, 0x7b, 0x01, 0x65, + 0xc0, 0x0c, 0x10, 0x32, 0x54, 0xee, 0x53, 0x48, + 0x1c, 0xc9, 0xe7, 0xe2, 0x9d, 0x1c, 0x0a, 0xc2, + 0x3a, 0x24, 0x2c, 0x2b, 0x34, 0xb6, 0xd8, 0x56, + 0x05, 0x39, 0x89, 0x88, 0xeb, 0x66, 0xcc, 0xad, + 0x83, 0xa4, 0xc7, 0xaf, 0x72, 0x6f, 0xb8, 0xb4, + 0xe1, 0xb7, 0x3d, 0xc1, 0x26, 0x81, 0xfc, 0x00, + 0xb7, 0x04, 0x2e, 0xc4, 0x38, 0x80, 0x0e, 0xf2, + 0xda, 0x50, 0x24, 0xf8, 0x3e, 0x0f, 0x7e, 0x11, + 0x94, 0x21, 0x61, 0x50, 0x90, 0xaf, 0xd1, 0xc1, + 0x3a, 0x93, 0x17, 0xb4, 0x38, 0x1b, 0xe8, 0x0d, + 0x58, 0x5c, 0x8c, 0x33, 0x80, 0xbd, 0xfc, 0x04, + 0x68, 0xa0, 0x56, 0x4e, 0x9b, 0xa0, 0x89, 0xdf, + 0x4d, 0x46, 0x5b, 0x42, 0xe8, 0xa0, 0xae, 0x0a, + 0x90, 0xf2, 0x32, 0x8d, 0xe3, 0x9c, 0xdc, 0x05, + 0x17, 0xc4, 0x43, 0x68, 0xb9, 0x22, 0x08, 0xac, + 0xd0, 0x21, 0x62, 0x5a, 0x22, 0x66, 0xb4, 0x35, + 0x2f, 0x80, 0x30, 0xbb, 0x7d, 0xbc, 0x60, 0x57, + 0x0d, 0x47, 0x1b, 0x99, 0x8a, 0x6f, 0x42, 0x52, + 0xfa, 0x25, 0x41, 0x45, 0x57, 0x43, 0x65, 0x02, + 0xe9, 0x0b, 0xe8, 0x2b, 0x31, 0x6b, 0x4a, 0x58, + 0xd8, 0xb1, 0x00, 0x2e, 0x37, 0x4c, 0xd1, 0xd7, + 0x90, 0xac, 0xb0, 0x14, 0xb6, 0xfe, 0x48, 0xd8, + 0x65, 0x86, 0xd2, 0x49, 0xcd, 0x8a, 0xbe, 0xd6, + 0x96, 0xa2, 0x49, 0x21, 0x36, 0xb3, 0x45, 0x19, + 0xbf, 0xbd, 0x47, 0xd4, 0xd4, 0x93, 0xcc, 0x8e, + 0x0b, 0xb6, 0x8b, 0x8a, 0x10, 0xa2, 0xf3, 0x2e, + 0x29, 0x30, 0x88, 0x5a, 0xeb, 0x42, 0x61, 0xab, + 0x5b, 0xc9, 0x33, 0x56, 0x04, 0xe6, 0xab, 0xd0, + 0x10, 0x4e, 0x72, 0x05, 0xc6, 0xe0, 0x0b, 0x3d, + 0x7c, 0x01, 0x31, 0xd1, 0x04, 0x00, 0x66, 0x21, + 0x66, 0x0e, 0x8e, 0xaa, 0xf5, 0xb2, 0xda, 0xbd, + 0x30, 0x55, 0x9d, 0xd4, 0xdd, 0x68, 0x28, 0xae, + 0xb0, 0xd2, 0x00, 0x1c, 0x0a, 0x5b, 0xa5, 0x29, + 0x57, 0x60, 0xa2, 0x7f, 0x38, 0xa5, 0x9c, 0x37, + 0x2a, 0x21, 0x5c, 0x15, 0x04, 0xda, 0x87, 0xb0, + 0xa8, 0xdd, 0xfa, 0xd0, 0xb3, 0xa1, 0x00, 0xd7, + 0x3a, 0x81, 0x84, 0xf5, 0x2a, 0x63, 0x8a, 0xf7, + 0xb2, 0x28, 0x58, 0x14, 0xac, 0x5d, 0xc2, 0x37, + 0xc2, 0xad, 0xb8, 0x8b, 0x82, 0xc2, 0x34, 0xc1, + 0x61, 0x48, 0x6e, 0x52, 0x18, 0xb3, 0xc4, 0x13, + 0xc4, 0x44, 0x51, 0x0f, 0x52, 0x9e, 0x09, 0x4f, + 0x12, 0x9e, 0x09, 0x4f, 0x07, 0xd2, 0x0f, 0x81, + 0x29, 0xf0, 0x9f, 0x21, 0xf4, 0x80, 0xf0, 0x7d, + 0x08, 0x07, 0xa3, 0xe8, 0x4f, 0xc0, 0x09, 0xf8, + 0x04, 0xfc, 0x31, 0x3f, 0x0f, 0x7f, 0x93, 0xf7, + 0x47, 0xda, 0x7e, 0x3c, 0xff, 0x00, 0x27, 0xe1, + 0xcf, 0xf2, 0x7e, 0x1c, 0x9f, 0x87, 0x27, 0xe1, + 0xc9, 0x53, 0x00, 0x0f, 0x01, 0x1f, 0x40, 0x85, + 0x14, 0x51, 0x45, 0xe8, 0x7e, 0xc0, 0x5e, 0xf4, + 0x28, 0x57, 0xd0, 0xa2, 0xf4, 0x2f, 0xf8, 0x80, + 0x00, 0x07, 0xe6, 0xf4, 0x6d, 0xfb, 0x2d, 0xca, + 0x7e, 0xbf, 0x9f, 0x70, 0x0b, 0xf5, 0xe3, 0xdd, + 0x91, 0x42, 0x04, 0x1e, 0xa7, 0x49, 0xff, 0x00, + 0x4b, 0x9d, 0x7d, 0x3f, 0x77, 0xa3, 0x95, 0x7b, + 0x20, 0x43, 0xd1, 0xe1, 0x39, 0x7a, 0x3a, 0x7a, + 0xe4, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, + 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0xff, + 0x00, 0xb6, 0xdf, 0xed, 0xf6, 0xd3, 0x7f, 0xf0, + 0x00, 0x03, 0xfe, 0x53, 0xcc, 0xd7, 0xcc, 0xb5, + 0xf7, 0xe8, 0x00, 0x07, 0x5b, 0xd1, 0xbe, 0xa3, + 0xf5, 0xb5, 0xdb, 0xf4, 0x00, 0x1e, 0x33, 0x25, + 0x5a, 0x7d, 0xc7, 0xf6, 0x9f, 0x12, 0x00, 0x77, + 0xaf, 0x9e, 0x6d, 0xdc, 0xd9, 0x67, 0xab, 0xfe, + 0x02, 0x64, 0x5f, 0x1e, 0x17, 0x2f, 0x86, 0x9a, + 0xf4, 0x47, 0xb2, 0x21, 0xb8, 0x9b, 0xf8, 0x01, + 0x2d, 0x7b, 0x09, 0x59, 0xe4, 0x13, 0xd5, 0x08, + 0x0b, 0xab, 0x74, 0xe4, 0xb3, 0x18, 0x9c, 0x4a, + 0xd5, 0x7a, 0x75, 0x54, 0x77, 0xf4, 0xa7, 0x61, + 0xed, 0xc1, 0xe3, 0x05, 0xf9, 0x75, 0x1f, 0xd2, + 0x9c, 0x88, 0xd6, 0x4e, 0xf2, 0xa4, 0x67, 0x20, + 0x02, 0x96, 0x8b, 0x96, 0x00, 0x85, 0x8e, 0xa8, + 0x68, 0x8c, 0x10, 0x67, 0xb8, 0x07, 0xdf, 0x35, + 0xb1, 0x9d, 0x79, 0xa9, 0x48, 0x17, 0xb7, 0x8e, + 0xf2, 0x3d, 0xad, 0x71, 0x16, 0xfa, 0xdd, 0x96, + 0x70, 0x8f, 0x92, 0x46, 0x75, 0xc3, 0x73, 0xcb, + 0x90, 0x52, 0xe3, 0xb9, 0x74, 0x7e, 0x77, 0x10, + 0xe8, 0xa5, 0xc9, 0x3e, 0xfc, 0x83, 0xab, 0x9c, + 0xfa, 0xd4, 0x4b, 0xd3, 0x2e, 0xc5, 0xa7, 0xcb, + 0x09, 0x23, 0x6f, 0x7e, 0x16, 0xd7, 0xef, 0xf4, + 0xfd, 0x2d, 0xd9, 0x5b, 0xe7, 0xd6, 0xdf, 0xf9, + 0xbf, 0xdb, 0x79, 0xbf, 0x97, 0xcf, 0xd6, 0xf1, + 0x6b, 0xd4, 0x9e, 0xb6, 0xf4, 0xfb, 0xef, 0xbf, + 0xdf, 0x6e, 0xef, 0xdc, 0x3c, 0x31, 0x27, 0x48, + 0x57, 0xf5, 0x0c, 0x32, 0x9e, 0xfa, 0xdf, 0xff, + 0xc4, 0x00, 0x27, 0x11, 0x01, 0x00, 0x01, 0x03, + 0x03, 0x02, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x21, + 0x31, 0x41, 0x51, 0xf0, 0x61, 0x71, 0x81, 0x91, + 0xa1, 0xb1, 0xd1, 0xe1, 0x10, 0xc1, 0xf1, 0x20, + 0xff, 0xda, 0x00, 0x08, 0x01, 0x03, 0x01, 0x01, + 0x3f, 0x10, 0x9e, 0xfe, 0x5e, 0x3c, 0xf6, 0xc5, + 0x38, 0xd7, 0x6c, 0x7a, 0xc5, 0xa7, 0xc3, 0x3a, + 0x15, 0xe7, 0xb4, 0x47, 0xd7, 0xd5, 0x48, 0x6c, + 0x4c, 0xbd, 0xe3, 0x87, 0x85, 0x47, 0x25, 0xeb, + 0xce, 0xdd, 0x8a, 0xf1, 0xf6, 0xe9, 0x9e, 0xb7, + 0xb5, 0x13, 0xd3, 0x7b, 0x5f, 0x33, 0x7d, 0x26, + 0x6d, 0xb6, 0xb7, 0xad, 0x73, 0xd8, 0xe6, 0xbc, + 0x8a, 0xc7, 0x4e, 0x01, 0xf5, 0x59, 0xfe, 0xdf, + 0x9d, 0x7b, 0x9d, 0xf5, 0xc4, 0xe3, 0xdf, 0xb6, + 0x96, 0x8f, 0x19, 0x6a, 0x34, 0x59, 0xd4, 0xdc, + 0x88, 0xbf, 0x9d, 0xfc, 0x62, 0xa3, 0x6e, 0x9f, + 0x77, 0x85, 0xb9, 0xed, 0xa6, 0x6a, 0x7a, 0x72, + 0xd6, 0xd6, 0x7a, 0xb8, 0x3c, 0xff, 0x00, 0x1f, + 0x3e, 0x67, 0xcc, 0x5f, 0xea, 0x69, 0xf3, 0x8d, + 0x0e, 0x97, 0xf3, 0x6d, 0x6e, 0x31, 0x7f, 0x0b, + 0x66, 0x7c, 0x77, 0xe9, 0xe3, 0xe2, 0x93, 0xce, + 0x67, 0xcb, 0xa5, 0x73, 0x91, 0xdc, 0xf7, 0x7f, + 0xde, 0x86, 0x74, 0xe8, 0xf8, 0xc7, 0xad, 0x79, + 0xeb, 0xad, 0xbe, 0x4f, 0x2b, 0x5f, 0xa5, 0x76, + 0xe6, 0xba, 0xa7, 0x84, 0x58, 0xaf, 0x8c, 0xa7, + 0xbe, 0x3c, 0xbd, 0xad, 0xf8, 0xe6, 0xff, 0x00, + 0x3a, 0x5b, 0xee, 0xb9, 0xf3, 0xe5, 0x56, 0xc3, + 0xf5, 0xb7, 0x6f, 0x0a, 0xfb, 0xd7, 0xbf, 0x7e, + 0xdf, 0xc0, 0xae, 0x9d, 0xef, 0xe3, 0x8b, 0x7f, + 0x6d, 0x5f, 0x5a, 0xc7, 0xeb, 0xfb, 0x7a, 0xfd, + 0x7d, 0x31, 0xe3, 0xe5, 0xbd, 0x7a, 0xf3, 0x98, + 0xdf, 0x6a, 0xe7, 0x39, 0x1b, 0xd3, 0xe9, 0xac, + 0xe2, 0x3f, 0x5e, 0xd9, 0x9c, 0xcd, 0x72, 0xfe, + 0x7c, 0xed, 0xbc, 0xd7, 0x7d, 0xc8, 0xc5, 0xb9, + 0xe7, 0x7b, 0x51, 0x8f, 0xde, 0xfd, 0x6d, 0xbd, + 0x70, 0xb6, 0xbb, 0xf2, 0x2b, 0x9d, 0xec, 0x67, + 0x87, 0x6b, 0x56, 0x3a, 0x1f, 0xe9, 0xe7, 0x3a, + 0x64, 0xf7, 0xcd, 0x16, 0xe9, 0xcd, 0x2b, 0x62, + 0x2d, 0xe5, 0x11, 0x5c, 0xf7, 0xf1, 0xe7, 0x7f, + 0xc4, 0x72, 0x5e, 0xdc, 0xf3, 0xcd, 0x5c, 0xe4, + 0x76, 0xc7, 0xad, 0xbc, 0xb1, 0x51, 0x75, 0xfb, + 0x9b, 0x6d, 0x1e, 0xd9, 0xd6, 0xbd, 0x77, 0x8b, + 0x63, 0xd7, 0x3a, 0x4e, 0xac, 0xd6, 0xf1, 0x6a, + 0xe7, 0xdd, 0xf9, 0xde, 0xad, 0xe2, 0x5b, 0x3b, + 0xef, 0xe5, 0x58, 0xe7, 0x6c, 0xe5, 0xfd, 0x07, + 0x6a, 0x2d, 0xb7, 0x48, 0x3f, 0x57, 0xd6, 0xb9, + 0xe1, 0xf3, 0x1e, 0xb5, 0x6b, 0x79, 0x7f, 0x5d, + 0xbb, 0xfb, 0xc5, 0x73, 0x99, 0xaf, 0x48, 0x8c, + 0x5a, 0xfe, 0x92, 0x5e, 0x9f, 0x1c, 0x3b, 0x7e, + 0xf5, 0xdb, 0x4d, 0xeb, 0x1d, 0xbc, 0x7a, 0x07, + 0x86, 0x67, 0x4d, 0x6b, 0xbf, 0x3b, 0x1d, 0xbb, + 0xc7, 0x5a, 0x3b, 0xcf, 0xce, 0xbf, 0xcd, 0x3f, + 0xcf, 0xdf, 0x7f, 0xdf, 0xd5, 0x88, 0xae, 0x73, + 0xea, 0xaf, 0xfc, 0xe9, 0x8f, 0x17, 0xc0, 0xdf, + 0xaf, 0x39, 0xe9, 0x5c, 0xe6, 0xdf, 0x98, 0xe7, + 0xd4, 0x69, 0x16, 0xee, 0xd7, 0x39, 0x9f, 0xc6, + 0xa3, 0xa6, 0x2f, 0x36, 0x89, 0xf4, 0x7a, 0xc6, + 0x06, 0x5b, 0x57, 0xef, 0xc3, 0x77, 0x1c, 0xb6, + 0x6b, 0x93, 0xc3, 0xae, 0x3e, 0xff, 0x00, 0x13, + 0x07, 0x6d, 0xf9, 0x78, 0xd6, 0x1f, 0x5a, 0xe7, + 0x0d, 0xf8, 0xd7, 0x1a, 0xe7, 0x3d, 0x3f, 0x1c, + 0xf8, 0x99, 0x97, 0xf1, 0xbe, 0xd1, 0x76, 0x5e, + 0xbf, 0x73, 0xb5, 0xbc, 0x0f, 0xbf, 0xaf, 0x0b, + 0x75, 0x7f, 0xc5, 0xe3, 0x31, 0xed, 0xcd, 0xdb, + 0x78, 0x29, 0x5e, 0x24, 0x79, 0xf6, 0xbf, 0xe8, + 0xd7, 0x5a, 0xdf, 0x0e, 0x3c, 0xfa, 0xb7, 0xe9, + 0xa5, 0xbb, 0x7e, 0x0c, 0x6b, 0xda, 0x67, 0x9d, + 0xfc, 0xeb, 0x9e, 0x9a, 0x73, 0x7a, 0xe8, 0xf8, + 0xcf, 0x5d, 0x34, 0x25, 0xe6, 0x4a, 0xe7, 0x3f, + 0xb6, 0xb4, 0x56, 0x7b, 0x47, 0x2d, 0x5b, 0x6b, + 0x7c, 0xfb, 0x7a, 0x5a, 0xdd, 0xf7, 0xa5, 0x8e, + 0x7b, 0xf4, 0xed, 0x2f, 0x4a, 0xc6, 0x7c, 0xe2, + 0x33, 0x7d, 0xd7, 0x3e, 0x2b, 0xa6, 0xb5, 0xce, + 0x73, 0xb5, 0x6b, 0x9f, 0x0e, 0x7f, 0x29, 0xc5, + 0xfa, 0x72, 0xfb, 0xfb, 0x5a, 0xb5, 0xfe, 0xef, + 0x9f, 0x9b, 0x6d, 0x78, 0x86, 0xb9, 0x8d, 0x71, + 0xcf, 0x8a, 0xe4, 0x1d, 0x7c, 0xab, 0x6d, 0xe3, + 0x98, 0xb6, 0xbf, 0x8f, 0x4e, 0xf1, 0x7e, 0x7f, + 0x4a, 0x74, 0xe7, 0xec, 0xfd, 0xf6, 0xb5, 0x86, + 0x79, 0xc7, 0xfc, 0x33, 0xc5, 0x4c, 0x99, 0x80, + 0x21, 0x08, 0xc5, 0x21, 0x53, 0x94, 0x98, 0x3a, + 0xe1, 0x81, 0xae, 0xa9, 0xf0, 0x1c, 0x5e, 0x9d, + 0xd3, 0xb1, 0x2c, 0x3c, 0xe9, 0x82, 0x61, 0xd5, + 0xad, 0x45, 0xbe, 0xb1, 0xc0, 0x46, 0xca, 0x20, + 0xd0, 0xe4, 0x21, 0x34, 0x46, 0x4b, 0xa9, 0xc0, + 0xf7, 0x2c, 0xb6, 0x62, 0x2f, 0x7d, 0x46, 0x10, + 0x8c, 0xcd, 0xa2, 0xf6, 0x62, 0x59, 0xc7, 0xac, + 0xdf, 0x49, 0xbd, 0x2c, 0x23, 0x29, 0xb2, 0x3a, + 0xe8, 0x3a, 0x9c, 0x09, 0x50, 0x24, 0x06, 0xee, + 0x00, 0x6e, 0x34, 0x72, 0xb0, 0xec, 0x66, 0x82, + 0x0d, 0x7f, 0x10, 0x0a, 0x49, 0xbd, 0x05, 0x58, + 0x04, 0x31, 0x2a, 0xed, 0x50, 0x1f, 0x31, 0xf7, + 0xe5, 0x82, 0x99, 0x09, 0x69, 0x05, 0x6a, 0x73, + 0x14, 0x25, 0x3c, 0xc0, 0x23, 0x01, 0x42, 0xb5, + 0x06, 0x0d, 0x80, 0x89, 0x74, 0x8a, 0x20, 0x40, + 0x16, 0x6d, 0x69, 0x01, 0x08, 0xa3, 0xe7, 0x90, + 0x9e, 0x86, 0x99, 0x42, 0xf4, 0x06, 0x31, 0x41, + 0x8c, 0x8a, 0x34, 0x14, 0x91, 0x65, 0x37, 0x0a, + 0xcb, 0x93, 0x93, 0x0a, 0x08, 0x40, 0x51, 0x60, + 0xd2, 0xeb, 0x77, 0x11, 0xa3, 0xdb, 0xad, 0x1d, + 0x60, 0x42, 0xa0, 0x12, 0xc7, 0x2a, 0x1a, 0x49, + 0x03, 0x43, 0xcc, 0x8c, 0x01, 0x8b, 0x3d, 0x44, + 0x52, 0x4a, 0x04, 0x94, 0x03, 0x15, 0x00, 0xd0, + 0x7b, 0x99, 0xb9, 0x22, 0x4c, 0xee, 0xe8, 0x4f, + 0x52, 0x9a, 0xe0, 0x82, 0x61, 0x4a, 0x12, 0x51, + 0x40, 0xa1, 0x59, 0x73, 0x79, 0x56, 0x18, 0xb8, + 0xa5, 0x9d, 0x18, 0x71, 0x30, 0xc0, 0x9a, 0xe0, + 0x19, 0x41, 0x76, 0x81, 0x00, 0xa4, 0x10, 0x3b, + 0x90, 0x24, 0x7a, 0xe9, 0x06, 0x24, 0x08, 0x1a, + 0x8a, 0xc0, 0x9b, 0x70, 0x80, 0xc3, 0x32, 0x76, + 0xd7, 0x35, 0x21, 0x25, 0x20, 0x8a, 0xa8, 0xb9, + 0x7d, 0x58, 0x04, 0x80, 0xa2, 0x43, 0x12, 0x3d, + 0x4c, 0x50, 0x4a, 0xba, 0xc6, 0xf7, 0xb4, 0x1d, + 0x32, 0x3d, 0xf1, 0x40, 0x89, 0x89, 0xf3, 0xd3, + 0x28, 0x9d, 0xae, 0x2d, 0x9b, 0xc4, 0x50, 0x44, + 0x47, 0x71, 0x8d, 0xa3, 0xae, 0x86, 0xdf, 0xaa, + 0x73, 0x24, 0x41, 0xca, 0x2f, 0xc9, 0x5b, 0x1a, + 0x67, 0x96, 0x53, 0x0f, 0xd5, 0xba, 0x00, 0xcb, + 0x91, 0x90, 0x15, 0x73, 0x09, 0xeb, 0x0e, 0x84, + 0x5d, 0x80, 0x21, 0x71, 0x57, 0xab, 0x41, 0x1b, + 0x8c, 0xf8, 0x4f, 0x1a, 0x1c, 0x38, 0xd2, 0xc5, + 0x49, 0x97, 0x4d, 0x21, 0x80, 0x36, 0x43, 0x42, + 0x2c, 0xcb, 0xb8, 0xda, 0x8d, 0x01, 0xd6, 0x29, + 0x3d, 0x10, 0x54, 0xb9, 0x29, 0x51, 0xc9, 0x84, + 0x85, 0x09, 0xaf, 0xa3, 0x46, 0x72, 0x21, 0x06, + 0x53, 0x71, 0xd8, 0xa4, 0x88, 0x90, 0x94, 0x96, + 0xa9, 0xc9, 0x37, 0x5c, 0xdb, 0x8e, 0x28, 0x46, + 0x90, 0xd1, 0xab, 0x44, 0x05, 0xb3, 0x51, 0x30, + 0xae, 0x81, 0x52, 0x8b, 0x8b, 0x5e, 0xa6, 0x22, + 0xc3, 0x2d, 0x55, 0x88, 0x17, 0x64, 0xd7, 0xad, + 0x63, 0xa6, 0x32, 0x64, 0x13, 0x60, 0xf2, 0x87, + 0x31, 0xa8, 0x15, 0x28, 0x58, 0xe4, 0x24, 0x4b, + 0x42, 0x92, 0xd3, 0x75, 0x1c, 0x21, 0x07, 0x89, + 0x6c, 0x5a, 0xb5, 0xf7, 0x01, 0xce, 0x3b, 0x19, + 0x65, 0xa0, 0xfd, 0x3b, 0x7a, 0x82, 0xf4, 0xad, + 0xb1, 0x90, 0x0a, 0x16, 0xe6, 0x31, 0x8a, 0x55, + 0x89, 0x4d, 0x0e, 0xa1, 0x72, 0x0d, 0x04, 0x42, + 0xf0, 0x92, 0x36, 0x87, 0xe2, 0x62, 0x0c, 0xac, + 0x25, 0xea, 0x3b, 0x7c, 0x1b, 0x0f, 0x37, 0xac, + 0x58, 0x92, 0xb8, 0x47, 0x45, 0xac, 0xf9, 0x92, + 0x16, 0x24, 0x09, 0x6a, 0x55, 0x8c, 0x8f, 0x52, + 0x5a, 0x59, 0x15, 0x20, 0xaa, 0x92, 0x03, 0x8f, + 0xe7, 0x02, 0x70, 0x46, 0x8d, 0xba, 0x45, 0x96, + 0x60, 0x31, 0x82, 0x0b, 0x11, 0x8f, 0x7d, 0xdb, + 0xb7, 0xa5, 0x88, 0xba, 0x1e, 0x59, 0x3b, 0x30, + 0xdb, 0xed, 0x2a, 0x71, 0xe1, 0x6c, 0x04, 0x47, + 0xbb, 0x2e, 0x75, 0xa9, 0x8d, 0x82, 0x5c, 0x2c, + 0x42, 0x1b, 0xe9, 0x63, 0x5c, 0xc6, 0xb5, 0x2a, + 0x72, 0x41, 0x68, 0x08, 0xae, 0x5e, 0x8a, 0x40, + 0x8a, 0x14, 0x9c, 0x4f, 0x03, 0x90, 0xc8, 0xd4, + 0x88, 0x24, 0x46, 0x41, 0x50, 0x0f, 0x4f, 0xac, + 0x8c, 0xe1, 0x08, 0x6c, 0x78, 0x00, 0xaa, 0x4a, + 0x46, 0x45, 0x6e, 0x8d, 0xc0, 0xd5, 0xd1, 0x26, + 0x74, 0xc0, 0x4c, 0x82, 0x09, 0xd1, 0x31, 0x4b, + 0x4e, 0x13, 0x62, 0x0d, 0x09, 0x91, 0x1d, 0x5c, + 0x3a, 0xa3, 0x16, 0x84, 0xdf, 0x50, 0x55, 0x07, + 0x31, 0x6c, 0x28, 0x92, 0x04, 0x20, 0x68, 0xc5, + 0x06, 0xc4, 0x25, 0x64, 0xd5, 0x9f, 0xb2, 0xa0, + 0x20, 0x09, 0x59, 0xc9, 0x41, 0x38, 0xb8, 0xbb, + 0xa9, 0x16, 0x00, 0x4c, 0x4a, 0x03, 0x00, 0x2f, + 0xda, 0x6f, 0x8a, 0x03, 0xeb, 0x2a, 0x52, 0x6b, + 0x0c, 0x4b, 0x75, 0x26, 0xb3, 0x48, 0x18, 0xe2, + 0x26, 0x13, 0x7a, 0x00, 0x06, 0xec, 0x16, 0xe4, + 0x2a, 0xc9, 0x40, 0xcd, 0xc3, 0x76, 0x91, 0x06, + 0x62, 0xd5, 0x6c, 0x22, 0x7d, 0xbd, 0x33, 0x51, + 0x25, 0x9c, 0xc4, 0xeb, 0x92, 0x2c, 0x6a, 0xb0, + 0x07, 0xf4, 0xf6, 0x32, 0xec, 0x99, 0x84, 0x82, + 0x67, 0x7f, 0x77, 0x72, 0xa2, 0x65, 0x0b, 0x50, + 0x06, 0xaf, 0x54, 0x34, 0x49, 0x0e, 0xa0, 0xc9, + 0x80, 0xe0, 0xf0, 0x37, 0x81, 0x2e, 0x66, 0x61, + 0xa8, 0x1b, 0x2b, 0xa2, 0xc0, 0xc0, 0xc0, 0x12, + 0x1b, 0x74, 0x96, 0x2b, 0x56, 0x06, 0x84, 0x52, + 0x16, 0xe2, 0x95, 0x06, 0xb0, 0xbc, 0xb7, 0x2d, + 0x10, 0x60, 0x97, 0x35, 0x4b, 0x12, 0x92, 0xe1, + 0x0d, 0x0e, 0x4a, 0x78, 0x80, 0xb5, 0x20, 0x29, + 0x89, 0x8c, 0xcf, 0xa9, 0x9a, 0xc6, 0xe5, 0xe5, + 0x86, 0x22, 0xdd, 0x17, 0x3b, 0x31, 0xae, 0xd5, + 0xdd, 0x6f, 0x43, 0xf7, 0xe5, 0x6b, 0xf9, 0x20, + 0x21, 0x45, 0x99, 0x2d, 0x98, 0x4e, 0xba, 0xb1, + 0x87, 0x38, 0x9b, 0xd1, 0x8e, 0x1d, 0xa9, 0x66, + 0x82, 0x60, 0x10, 0x81, 0x22, 0x47, 0x34, 0xe8, + 0x45, 0x2d, 0x5e, 0x80, 0x50, 0x92, 0xc6, 0x39, + 0xee, 0x0b, 0x25, 0x76, 0x10, 0x34, 0x62, 0xb6, + 0xda, 0x46, 0x25, 0x64, 0xb3, 0x76, 0x60, 0xb4, + 0xdc, 0xfa, 0xd9, 0xa4, 0xb4, 0x2b, 0x77, 0x0f, + 0x3b, 0xb7, 0x91, 0x45, 0x45, 0xc6, 0xd7, 0x55, + 0x39, 0xdc, 0x26, 0xa5, 0x7c, 0x62, 0xfc, 0x1c, + 0xb8, 0xf9, 0xa1, 0x82, 0x4e, 0x68, 0xc2, 0xb0, + 0x2c, 0x71, 0x54, 0x44, 0x13, 0x31, 0xe0, 0xd6, + 0xad, 0xa9, 0xc4, 0x17, 0x91, 0x18, 0x94, 0x11, + 0xc1, 0x31, 0x0a, 0x53, 0x9c, 0x92, 0xac, 0x21, + 0x90, 0xc2, 0x25, 0xea, 0xe1, 0x2c, 0x9e, 0x20, + 0xd0, 0xc8, 0xf9, 0x74, 0x40, 0x14, 0x08, 0x0b, + 0xab, 0x17, 0x45, 0x6e, 0x35, 0xf4, 0x71, 0x06, + 0x82, 0xc6, 0x72, 0xad, 0x07, 0x7b, 0x3f, 0x50, + 0xd2, 0xa3, 0x42, 0x06, 0x5c, 0x80, 0x1a, 0x2e, + 0x20, 0x10, 0x51, 0x48, 0x3a, 0x91, 0x11, 0xff, + 0x00, 0x13, 0x61, 0xda, 0x4a, 0xee, 0x8f, 0xb8, + 0x19, 0x37, 0x2a, 0x29, 0x1e, 0x50, 0xcb, 0x4d, + 0x60, 0x3b, 0xb7, 0x0c, 0x00, 0x15, 0x0b, 0xaa, + 0xb8, 0x92, 0x5c, 0x86, 0xb9, 0x21, 0xb5, 0xb8, + 0xaa, 0x2a, 0xcb, 0xf3, 0xdb, 0x86, 0xad, 0x51, + 0xf0, 0x5d, 0x60, 0x95, 0x75, 0xfa, 0xb5, 0x44, + 0x1c, 0x27, 0x22, 0xd5, 0xa7, 0x0e, 0x9d, 0x76, + 0x11, 0x10, 0x5d, 0x01, 0x92, 0x24, 0xac, 0x44, + 0xc2, 0x60, 0x00, 0x10, 0x30, 0xbc, 0xdf, 0x08, + 0x05, 0x90, 0xb5, 0x94, 0x23, 0x53, 0x26, 0x6f, + 0x31, 0x9e, 0xd8, 0xa8, 0xfa, 0xe4, 0xe1, 0x79, + 0x40, 0x23, 0x08, 0x08, 0x50, 0xa8, 0x09, 0xf7, + 0xbc, 0x2b, 0x29, 0x5e, 0x22, 0xe8, 0xf0, 0x9c, + 0x70, 0x43, 0x4c, 0xac, 0xde, 0xd4, 0x20, 0x0c, + 0x68, 0xd9, 0xc8, 0x82, 0x1b, 0x21, 0x79, 0x8b, + 0x35, 0xd8, 0x54, 0x92, 0xbd, 0x17, 0x96, 0xc5, + 0x2c, 0xc4, 0x2a, 0x2a, 0x88, 0x3d, 0x51, 0xa4, + 0xdb, 0xa2, 0xc9, 0xe0, 0x94, 0x2d, 0x2f, 0x56, + 0x48, 0x80, 0x48, 0x4e, 0x4a, 0x5b, 0xf7, 0x3b, + 0xaf, 0xfa, 0xa8, 0x7f, 0xaa, 0x0a, 0x98, 0xfc, + 0x40, 0x28, 0x44, 0x46, 0x88, 0x92, 0xb3, 0x11, + 0x5b, 0xff, 0x00, 0x30, 0xd3, 0xb0, 0x48, 0x08, + 0xc0, 0x45, 0x0c, 0x0a, 0x83, 0xc6, 0x25, 0x50, + 0xab, 0x7b, 0xb7, 0x56, 0xe8, 0x22, 0x0d, 0xef, + 0x40, 0x0b, 0x87, 0x09, 0x5c, 0xd0, 0xa4, 0xa5, + 0x50, 0xab, 0xfd, 0xd3, 0x6b, 0x2c, 0x73, 0xe2, + 0x05, 0x48, 0x25, 0x88, 0xe7, 0x64, 0xd4, 0xc0, + 0x04, 0x61, 0x2d, 0x0c, 0x92, 0xdc, 0x77, 0xee, + 0x58, 0xc0, 0x88, 0x2d, 0x88, 0xaa, 0x6b, 0x31, + 0x9f, 0x70, 0xbb, 0xcf, 0x1e, 0x2d, 0x14, 0x2c, + 0x5a, 0x92, 0x70, 0x96, 0x0b, 0x85, 0x22, 0x90, + 0x00, 0x86, 0x25, 0xcd, 0x88, 0x93, 0x3f, 0x28, + 0x47, 0x5a, 0x43, 0x28, 0x12, 0x13, 0x08, 0x6a, + 0x40, 0x44, 0xa3, 0xa1, 0x97, 0x10, 0xfb, 0x92, + 0xee, 0x01, 0xf2, 0x45, 0x22, 0xa1, 0x45, 0xfe, + 0x09, 0xd8, 0x67, 0x26, 0x5c, 0xf0, 0x0a, 0x8f, + 0xcb, 0xa1, 0x98, 0x80, 0x49, 0x8e, 0xb4, 0x2a, + 0x84, 0xba, 0x96, 0x88, 0xbc, 0xe6, 0xcb, 0x69, + 0x2a, 0x07, 0x5f, 0x53, 0x60, 0x2e, 0x00, 0x6f, + 0xa9, 0x31, 0x04, 0xd0, 0x89, 0x9c, 0x5e, 0xb4, + 0x69, 0x4a, 0xd3, 0x6a, 0xa3, 0x9f, 0xcf, 0x5a, + 0x3b, 0x64, 0x5b, 0x21, 0x29, 0xf0, 0xc2, 0x2d, + 0x64, 0x4b, 0xd4, 0x19, 0x53, 0x00, 0x47, 0x82, + 0xe8, 0x85, 0x8b, 0x50, 0x62, 0xfc, 0x7b, 0xca, + 0xa4, 0x56, 0x02, 0xc0, 0xc0, 0xd0, 0x00, 0xc3, + 0x4c, 0x2e, 0xd1, 0xde, 0x0b, 0xc3, 0x91, 0x54, + 0x42, 0x9e, 0x32, 0x20, 0x4a, 0x00, 0x14, 0x96, + 0x00, 0xb8, 0xf3, 0x89, 0x63, 0x87, 0x01, 0xd3, + 0xe2, 0x98, 0x94, 0xc6, 0x84, 0xc4, 0x52, 0x41, + 0x3a, 0x53, 0x6c, 0xf5, 0x28, 0x97, 0x71, 0x5a, + 0x85, 0xc0, 0x5c, 0xcf, 0x12, 0xe9, 0x98, 0x2a, + 0x64, 0xb4, 0xaa, 0x52, 0x02, 0x04, 0xb4, 0x56, + 0x9a, 0x22, 0xd6, 0xae, 0xd2, 0x19, 0x54, 0x8b, + 0x12, 0x8b, 0x62, 0x68, 0x19, 0x88, 0x22, 0x4d, + 0x15, 0x16, 0x77, 0x02, 0xe4, 0xe6, 0xf6, 0xbd, + 0x19, 0xab, 0x08, 0x49, 0xd5, 0x0e, 0xe5, 0xec, + 0x12, 0x33, 0x60, 0x95, 0x28, 0x8d, 0xbc, 0xb4, + 0x85, 0x60, 0xf0, 0xc1, 0x04, 0x9a, 0xa4, 0xe8, + 0x8d, 0xad, 0xc5, 0x85, 0xc4, 0x89, 0x58, 0x40, + 0x97, 0xf3, 0x90, 0x98, 0x08, 0x52, 0x62, 0x24, + 0x34, 0x14, 0x21, 0xea, 0xc3, 0x19, 0xc5, 0x28, + 0xb4, 0x06, 0xe9, 0x8a, 0xcc, 0x83, 0x17, 0x35, + 0xd6, 0x34, 0x80, 0x6c, 0x89, 0x36, 0xab, 0x06, + 0x5f, 0xde, 0xf5, 0xca, 0x22, 0x10, 0x35, 0x2d, + 0xf6, 0x08, 0x17, 0x3e, 0xb4, 0x36, 0x38, 0x76, + 0x13, 0x50, 0xa2, 0x11, 0x02, 0x55, 0x60, 0xb2, + 0x45, 0x21, 0xaa, 0xfc, 0x51, 0x4f, 0xa2, 0xc1, + 0x51, 0xc2, 0x20, 0xa5, 0x5b, 0x33, 0x85, 0x66, + 0xf8, 0x34, 0xcd, 0xad, 0xe5, 0x6a, 0x98, 0xb0, + 0x01, 0x9b, 0x99, 0xbe, 0xd3, 0x07, 0x56, 0x7a, + 0x5a, 0x0a, 0x6b, 0x6f, 0x46, 0xb7, 0x88, 0x98, + 0x72, 0x14, 0x2e, 0x2e, 0x9d, 0xae, 0x08, 0x06, + 0x4f, 0x79, 0xa0, 0xeb, 0x3c, 0xe7, 0xb5, 0x02, + 0x72, 0xb5, 0x67, 0x2c, 0x08, 0x0e, 0x2d, 0x26, + 0x26, 0x8a, 0x33, 0x44, 0x09, 0x81, 0xb9, 0xe8, + 0xf2, 0x45, 0x0a, 0x6a, 0x21, 0x67, 0xb2, 0x10, + 0x43, 0xaa, 0x63, 0x98, 0x74, 0x62, 0x43, 0x84, + 0x35, 0x87, 0x1a, 0x71, 0xe9, 0x91, 0x88, 0x00, + 0xed, 0x85, 0x02, 0x4c, 0x40, 0xa4, 0xd6, 0xf4, + 0xc7, 0xdb, 0x57, 0x3a, 0x91, 0x2f, 0x62, 0x70, + 0xd6, 0x23, 0x1b, 0xd6, 0x0a, 0x05, 0x78, 0x84, + 0x48, 0x1b, 0xa0, 0xec, 0x0b, 0x4d, 0x05, 0x11, + 0x0d, 0x26, 0x34, 0xb8, 0x89, 0xc8, 0x6c, 0x55, + 0x85, 0xba, 0x17, 0x0a, 0x35, 0x2c, 0x25, 0x15, + 0x08, 0xc2, 0x10, 0x01, 0x40, 0x96, 0x66, 0xb1, + 0x10, 0xde, 0x2e, 0x99, 0x60, 0x40, 0x9d, 0xc6, + 0xfd, 0x6b, 0x68, 0x58, 0x4a, 0xc8, 0x09, 0x90, + 0x24, 0x21, 0xac, 0xe6, 0x2b, 0xfe, 0xa1, 0x8e, + 0x0f, 0x92, 0x15, 0x69, 0x24, 0x86, 0xb7, 0x20, + 0x38, 0x33, 0xad, 0x31, 0x33, 0x60, 0xd3, 0x65, + 0x3b, 0x50, 0xd5, 0x6b, 0xa2, 0xb0, 0x35, 0x58, + 0x02, 0x34, 0xfa, 0xb7, 0x33, 0x08, 0x91, 0x63, + 0x25, 0x10, 0xa4, 0x82, 0x75, 0xf7, 0x46, 0xd2, + 0xe4, 0x88, 0x96, 0xa2, 0xe5, 0x51, 0xa2, 0x00, + 0x56, 0x38, 0x60, 0x61, 0x99, 0x30, 0x57, 0x88, + 0x67, 0x47, 0x78, 0x2f, 0x55, 0x7b, 0x20, 0xbd, + 0x80, 0x93, 0x22, 0xda, 0xc3, 0xa5, 0xea, 0x1c, + 0xd2, 0x26, 0xb6, 0x7d, 0xb4, 0x86, 0x10, 0xa1, + 0x2c, 0xf8, 0xc4, 0x46, 0xaa, 0x5e, 0xe3, 0x20, + 0xc1, 0x62, 0x2e, 0x19, 0x25, 0xbc, 0xc2, 0x04, + 0x8e, 0xd2, 0xe8, 0xe8, 0xbc, 0xc5, 0x05, 0x09, + 0x25, 0x6a, 0x4f, 0xb4, 0x9c, 0xd5, 0xdc, 0xdc, + 0xc4, 0xa2, 0x6b, 0x50, 0x05, 0xc6, 0x54, 0x0e, + 0x44, 0x23, 0x82, 0x89, 0x5d, 0x23, 0x9c, 0xf3, + 0xa9, 0xc4, 0x2b, 0x0e, 0x3f, 0x9a, 0x10, 0x4c, + 0x2a, 0xb3, 0x7b, 0xaa, 0xb8, 0x94, 0xca, 0xa4, + 0x8c, 0xd9, 0x85, 0xe2, 0x68, 0x28, 0x2c, 0x84, + 0x86, 0x9b, 0x9b, 0x04, 0xf3, 0xd3, 0x7b, 0xbb, + 0x8b, 0x93, 0x08, 0x89, 0x52, 0xbd, 0xa4, 0x46, + 0x62, 0x80, 0xd3, 0xa2, 0xba, 0x2b, 0x0d, 0xb8, + 0x40, 0x19, 0xe3, 0xc2, 0x00, 0x5a, 0xaf, 0x66, + 0x9c, 0xba, 0x16, 0xd8, 0xe2, 0xb0, 0x88, 0xac, + 0x06, 0x07, 0x40, 0xc2, 0xea, 0x1f, 0x85, 0x94, + 0x94, 0x43, 0x09, 0xd4, 0x2c, 0x8c, 0x43, 0x23, + 0x2c, 0x22, 0x85, 0xe0, 0x09, 0x11, 0xef, 0xf1, + 0x53, 0x98, 0x74, 0xd4, 0xf0, 0xbe, 0x39, 0x90, + 0x09, 0xe4, 0x52, 0xd8, 0x57, 0x15, 0x30, 0x9e, + 0x27, 0xb3, 0x75, 0x72, 0xc6, 0xe2, 0x9b, 0xff, + 0x00, 0xaa, 0x15, 0x2a, 0x01, 0x16, 0x84, 0x71, + 0x98, 0x3a, 0x99, 0x8c, 0x95, 0x41, 0x63, 0x8c, + 0xc4, 0x6f, 0x4e, 0xe3, 0x80, 0xec, 0xa6, 0xe9, + 0x75, 0x81, 0x5b, 0x3c, 0x84, 0x3a, 0x46, 0x42, + 0x27, 0x23, 0x64, 0x94, 0xd0, 0xd4, 0x70, 0x85, + 0x75, 0xd3, 0x00, 0x88, 0x50, 0x16, 0xfc, 0x5a, + 0x5a, 0x74, 0xc8, 0x50, 0x92, 0x32, 0x8a, 0x52, + 0x28, 0xaa, 0x81, 0xda, 0x82, 0x16, 0x80, 0x98, + 0x80, 0x27, 0x0a, 0x16, 0x3e, 0x4e, 0xed, 0x80, + 0x9a, 0xd9, 0x74, 0xc5, 0xe6, 0xed, 0x44, 0x40, + 0xa8, 0x23, 0x30, 0xf9, 0x88, 0xc5, 0x02, 0xa4, + 0x09, 0xff, 0x00, 0xb3, 0x70, 0xaf, 0x85, 0x4c, + 0x14, 0x50, 0x38, 0x64, 0x93, 0x18, 0xf2, 0x2c, + 0x4b, 0x15, 0x75, 0x8e, 0xa3, 0x08, 0x68, 0x30, + 0xd0, 0x9c, 0x4d, 0x07, 0x64, 0x81, 0xe3, 0x8b, + 0x8e, 0xe1, 0x00, 0x4b, 0x8c, 0x00, 0x92, 0xa3, + 0xe7, 0xce, 0xdc, 0xdf, 0x15, 0x19, 0x51, 0x72, + 0x13, 0x52, 0xe4, 0x70, 0xc7, 0x64, 0x81, 0x10, + 0x9a, 0x2a, 0x03, 0x40, 0x78, 0x8c, 0x18, 0x4c, + 0x45, 0x8b, 0x77, 0x01, 0x8c, 0x44, 0x92, 0x01, + 0xf7, 0xac, 0x31, 0xb8, 0x74, 0xf1, 0x52, 0xa9, + 0x09, 0x66, 0x2c, 0x55, 0x95, 0xb0, 0x01, 0x54, + 0xa8, 0x12, 0x00, 0xc8, 0xb5, 0x65, 0x72, 0xd7, + 0x28, 0xd2, 0x87, 0x96, 0xc1, 0x47, 0x18, 0x20, + 0x95, 0x6f, 0xd8, 0x19, 0x84, 0x85, 0xa8, 0x34, + 0x03, 0x56, 0x14, 0x20, 0x2c, 0x08, 0xf7, 0xc6, + 0x91, 0xd8, 0x2a, 0x81, 0x0f, 0x7a, 0xfa, 0x18, + 0xda, 0x23, 0xe1, 0x82, 0xc4, 0xeb, 0xd2, 0x15, + 0xa4, 0x40, 0x18, 0x09, 0x90, 0xa0, 0x38, 0xeb, + 0x0e, 0xb9, 0xe6, 0x24, 0x1a, 0x8e, 0xea, 0xb5, + 0x78, 0xef, 0xd4, 0xbc, 0x0a, 0xe3, 0xb6, 0xb4, + 0x40, 0x5e, 0xd9, 0xf7, 0x24, 0xa7, 0x2d, 0x05, + 0x50, 0x26, 0x19, 0xb2, 0xfa, 0x5c, 0xc2, 0x99, + 0x16, 0x6d, 0x2c, 0x81, 0xf7, 0xbe, 0x0e, 0x1c, + 0x53, 0x11, 0x5a, 0x36, 0x91, 0x1e, 0x79, 0x8f, + 0xa3, 0x1c, 0x35, 0x27, 0xf2, 0x00, 0xf6, 0x7f, + 0x51, 0x40, 0x63, 0x20, 0x6e, 0x8c, 0x52, 0x12, + 0x2d, 0x9e, 0x15, 0x65, 0x8d, 0x83, 0x80, 0x66, + 0x28, 0x31, 0x20, 0x87, 0x04, 0xe7, 0x03, 0x51, + 0x41, 0x18, 0x23, 0xe0, 0xd3, 0x03, 0x50, 0xac, + 0xea, 0x89, 0x3e, 0xd4, 0xa8, 0xf2, 0x76, 0x1b, + 0xcc, 0xd8, 0x01, 0xda, 0x87, 0x1a, 0xb4, 0x04, + 0x01, 0x01, 0x7e, 0x96, 0x45, 0xe0, 0xce, 0xac, + 0x0a, 0x19, 0xf0, 0xee, 0x9a, 0x82, 0x82, 0x50, + 0x24, 0x71, 0x28, 0x21, 0x9a, 0x10, 0xa5, 0x08, + 0x88, 0x72, 0xf8, 0x30, 0x91, 0x6a, 0x7e, 0x30, + 0x96, 0x33, 0x89, 0x0c, 0xd9, 0x70, 0x00, 0xa4, + 0x77, 0xc6, 0xec, 0xf9, 0xf3, 0x5d, 0xe8, 0xa8, + 0xdd, 0x84, 0xf8, 0x92, 0xc0, 0x60, 0x0a, 0x15, + 0x08, 0x25, 0x4b, 0xd4, 0xc0, 0x47, 0xac, 0x03, + 0x6d, 0x35, 0x16, 0x32, 0xd5, 0x80, 0xb1, 0x6c, + 0x99, 0x81, 0x84, 0x60, 0x26, 0x26, 0xf5, 0x1d, + 0x51, 0x4a, 0xea, 0x60, 0x19, 0x10, 0x9a, 0x60, + 0x2c, 0x3e, 0x67, 0x2e, 0x9f, 0x34, 0x02, 0x24, + 0x28, 0x10, 0x96, 0x89, 0x88, 0x89, 0x1a, 0xae, + 0xdc, 0x98, 0x83, 0x11, 0xa0, 0x64, 0x74, 0x16, + 0xb4, 0x42, 0x34, 0x4d, 0xb9, 0x4f, 0x3b, 0xdc, + 0x3e, 0x4d, 0x89, 0x5d, 0x79, 0x0f, 0x26, 0x9b, + 0x84, 0x4e, 0x76, 0x33, 0xc6, 0xc0, 0xc7, 0xaa, + 0x4b, 0x01, 0xcc, 0xab, 0xd2, 0xb2, 0x2b, 0x28, + 0xdc, 0x1e, 0x29, 0x73, 0xde, 0x70, 0xbb, 0x0b, + 0x5f, 0x03, 0xa4, 0x57, 0x88, 0x8b, 0x15, 0x93, + 0x03, 0x10, 0x50, 0x75, 0x3f, 0x46, 0x80, 0x3d, + 0x14, 0xd5, 0x79, 0x45, 0x68, 0x60, 0x86, 0xd9, + 0x07, 0xe0, 0x51, 0x62, 0x60, 0x61, 0x28, 0xfa, + 0xef, 0x88, 0xd3, 0xc9, 0x52, 0x96, 0x16, 0x0e, + 0x88, 0xcc, 0xb2, 0x2c, 0x40, 0xb0, 0xa6, 0x0b, + 0x2b, 0x01, 0xc5, 0x5e, 0xa8, 0x71, 0x49, 0xcc, + 0x96, 0x22, 0xcd, 0xf6, 0x80, 0x32, 0x00, 0xa8, + 0x54, 0xa8, 0x75, 0x6f, 0xc0, 0x42, 0x30, 0xb3, + 0x60, 0x25, 0x09, 0x82, 0x12, 0x93, 0x66, 0x07, + 0x22, 0x40, 0x48, 0x44, 0x98, 0x2a, 0x9c, 0x8e, + 0x6f, 0xbe, 0x28, 0xaa, 0x26, 0x43, 0x41, 0x26, + 0xb1, 0xd4, 0xcc, 0x76, 0x42, 0x0f, 0xe7, 0x9d, + 0xd6, 0x05, 0x99, 0x58, 0x9d, 0x46, 0x84, 0x48, + 0xb2, 0x04, 0xa2, 0x57, 0xc0, 0x50, 0xe0, 0x07, + 0x4e, 0x00, 0x92, 0x4b, 0xa8, 0x64, 0x48, 0x22, + 0x21, 0x33, 0x1b, 0x00, 0x41, 0x62, 0xd2, 0x51, + 0x63, 0xf7, 0xdb, 0xbb, 0x07, 0x3a, 0xcd, 0x5a, + 0x9b, 0xb1, 0x84, 0xc7, 0x45, 0xa0, 0x88, 0x0a, + 0x58, 0x41, 0xc4, 0xe0, 0x41, 0x78, 0xc8, 0x64, + 0xc0, 0x45, 0x21, 0x0b, 0xa4, 0xc5, 0x8b, 0x6d, + 0x06, 0x49, 0x40, 0x02, 0xa0, 0x4c, 0x63, 0xd0, + 0x85, 0x3d, 0x97, 0xb8, 0x66, 0xd4, 0x50, 0x95, + 0x80, 0x13, 0x08, 0x98, 0x48, 0x81, 0x81, 0x2e, + 0xb9, 0x48, 0xd9, 0x59, 0x1c, 0xd8, 0x44, 0x43, + 0x34, 0x4e, 0x98, 0x89, 0x8e, 0xc7, 0x1a, 0xd6, + 0xfe, 0xc8, 0xf2, 0x14, 0x0c, 0xfc, 0x4b, 0xa7, + 0x76, 0xe2, 0x09, 0x12, 0x8a, 0x2e, 0xc3, 0x49, + 0x0c, 0xa0, 0xa2, 0xd8, 0x08, 0x05, 0x3c, 0xfb, + 0x63, 0x56, 0xd3, 0x5c, 0xa8, 0xc4, 0x5a, 0x1d, + 0x4f, 0x41, 0x9e, 0x36, 0xc0, 0x81, 0x08, 0xd0, + 0x14, 0x91, 0xf6, 0x92, 0xdc, 0xe5, 0x2a, 0x26, + 0x11, 0x00, 0x96, 0xc0, 0x4d, 0x57, 0xa7, 0x97, + 0xeb, 0x62, 0x8b, 0x54, 0x60, 0x81, 0xc3, 0xe8, + 0x95, 0xc5, 0x44, 0xd4, 0x81, 0xf2, 0xbf, 0x0a, + 0xde, 0x69, 0xb7, 0x6e, 0x2c, 0xe7, 0xac, 0x62, + 0x4d, 0x48, 0xac, 0x62, 0x26, 0x44, 0x22, 0xe2, + 0x8a, 0x47, 0x40, 0x9d, 0xba, 0x60, 0x99, 0xb4, + 0x51, 0x56, 0x2e, 0xa7, 0xdb, 0x33, 0x36, 0xd4, + 0x8f, 0x62, 0xaa, 0x52, 0xe1, 0x44, 0xc5, 0x08, + 0x15, 0x6b, 0x5c, 0x87, 0x96, 0xe3, 0xdc, 0x24, + 0x05, 0x91, 0x70, 0x73, 0xa3, 0x03, 0xae, 0xf5, + 0x3c, 0x1c, 0x4e, 0x8a, 0x51, 0x2a, 0x28, 0x94, + 0x25, 0x26, 0xa3, 0x4b, 0xe8, 0x88, 0x4c, 0x61, + 0x75, 0xc7, 0x78, 0xe4, 0x62, 0x80, 0x00, 0x12, + 0x72, 0x51, 0x74, 0x50, 0x2a, 0x68, 0x9e, 0x24, + 0x24, 0xcf, 0x51, 0xc1, 0x50, 0xdb, 0xb5, 0x80, + 0xc8, 0x31, 0x7c, 0x57, 0x5f, 0xe1, 0x88, 0x79, + 0xcf, 0x21, 0x87, 0x39, 0x38, 0x28, 0x61, 0xa8, + 0xa5, 0x50, 0xfa, 0x49, 0x58, 0x04, 0x72, 0x43, + 0x0e, 0x00, 0x51, 0x45, 0x0e, 0x06, 0xb2, 0x65, + 0x04, 0xc6, 0x10, 0x39, 0x11, 0x00, 0x58, 0x02, + 0xcc, 0x9d, 0x1f, 0x32, 0xcd, 0x85, 0x32, 0x2a, + 0xd5, 0xe9, 0x1b, 0xc9, 0x08, 0x28, 0x48, 0x23, + 0x09, 0x17, 0x50, 0x42, 0x28, 0x82, 0x09, 0x97, + 0xc0, 0x00, 0x69, 0x10, 0xc8, 0x81, 0x43, 0x0f, + 0xcf, 0x2c, 0x00, 0x16, 0xa8, 0x3c, 0xcd, 0x1f, + 0x35, 0x28, 0x61, 0xce, 0x4e, 0x20, 0x4e, 0x58, + 0x08, 0x28, 0x78, 0xb8, 0xc2, 0x49, 0x2d, 0xdc, + 0x4c, 0x81, 0xbc, 0x10, 0xa4, 0x3c, 0xd5, 0x24, + 0x0c, 0x4b, 0x60, 0x88, 0x31, 0x09, 0x53, 0x42, + 0x3b, 0x98, 0xc0, 0xb5, 0x1b, 0x4d, 0x09, 0x70, + 0x14, 0xa7, 0x71, 0x18, 0xa3, 0xb2, 0x22, 0x82, + 0x18, 0xcb, 0x06, 0x80, 0x6c, 0x26, 0xd2, 0xa0, + 0x67, 0xcc, 0xbb, 0x0a, 0x80, 0xd0, 0x70, 0x2b, + 0x50, 0x2d, 0xbc, 0x32, 0xa5, 0x12, 0x1a, 0x20, + 0x3f, 0x03, 0x96, 0x28, 0xb2, 0x14, 0xa4, 0x11, + 0x05, 0x2f, 0xc9, 0xe7, 0xd4, 0x8a, 0xc9, 0xca, + 0x08, 0x21, 0x22, 0x1a, 0x40, 0x46, 0x13, 0x2c, + 0xc2, 0x32, 0x28, 0x0c, 0x12, 0xc1, 0x58, 0x46, + 0x66, 0x1a, 0x48, 0x26, 0xd8, 0x2a, 0xb2, 0xb2, + 0x84, 0x4f, 0x8f, 0x4d, 0xc9, 0x89, 0xde, 0x2d, + 0x18, 0x14, 0xc1, 0x2f, 0x6b, 0x18, 0x04, 0xe2, + 0x3b, 0x4b, 0x22, 0x31, 0x3a, 0x85, 0x21, 0xa4, + 0x44, 0x12, 0x90, 0x44, 0xb8, 0x21, 0x09, 0x0c, + 0x41, 0x1d, 0x12, 0x4a, 0x03, 0x16, 0xa0, 0x93, + 0x30, 0x12, 0xa8, 0x0a, 0x49, 0x4c, 0xb8, 0x26, + 0x24, 0x80, 0x27, 0x52, 0xe4, 0xa4, 0x90, 0x92, + 0xb5, 0x08, 0xd9, 0x27, 0xe5, 0x12, 0x6a, 0xa6, + 0x85, 0x19, 0x7d, 0x01, 0x39, 0x24, 0x48, 0x42, + 0xa0, 0x40, 0x26, 0x25, 0x8f, 0x33, 0xd5, 0xfd, + 0x57, 0xce, 0xbc, 0xdf, 0x1e, 0x96, 0x8a, 0xe3, + 0xce, 0x76, 0xda, 0x23, 0x16, 0x39, 0xa5, 0xa3, + 0x4c, 0x66, 0x5b, 0x6b, 0x5d, 0xba, 0xe9, 0xd4, + 0xfb, 0xf3, 0x9d, 0x2b, 0xda, 0xfb, 0x8c, 0xcf, + 0xb6, 0x7d, 0x22, 0xd5, 0xac, 0xf8, 0x79, 0x4f, + 0xcf, 0xe3, 0x9c, 0xf1, 0xef, 0xeb, 0xf8, 0x69, + 0x83, 0x3c, 0xef, 0xc8, 0xae, 0x91, 0xf1, 0xfc, + 0xa2, 0x3a, 0x1b, 0x1a, 0x67, 0x4e, 0xf2, 0x73, + 0x2a, 0x1e, 0x4f, 0x91, 0xfd, 0xad, 0x71, 0xb3, + 0xd6, 0x6f, 0x3e, 0x91, 0x53, 0xa9, 0x79, 0x8d, + 0x3d, 0x7c, 0xbe, 0x33, 0x5c, 0xd3, 0x9d, 0x37, + 0xf7, 0xae, 0x5b, 0x4d, 0xfd, 0x7f, 0x94, 0xf9, + 0x49, 0x1d, 0xf6, 0xd6, 0x6d, 0x7f, 0x3a, 0xbc, + 0x78, 0x63, 0xbe, 0xec, 0x3e, 0xdb, 0xcf, 0x4d, + 0xfa, 0xf3, 0xe2, 0x97, 0x7c, 0x4f, 0x25, 0xd2, + 0xf2, 0x3c, 0x2b, 0xb6, 0xf7, 0xe7, 0x21, 0xed, + 0x15, 0xd3, 0x3e, 0x5c, 0xd7, 0x6a, 0x3b, 0xc9, + 0x19, 0x9f, 0x0f, 0x0c, 0x6f, 0x99, 0xaf, 0x8f, + 0x3f, 0x8e, 0xb6, 0xdb, 0x6a, 0xe5, 0xeb, 0x98, + 0xef, 0xf1, 0x5d, 0x8b, 0xc4, 0xf4, 0x9e, 0xf6, + 0xfe, 0x56, 0x7a, 0xcf, 0x68, 0xfe, 0x3e, 0x39, + 0xaf, 0x3e, 0xd1, 0xeb, 0xc7, 0xb6, 0x6b, 0x13, + 0xd3, 0x9a, 0xbe, 0xac, 0x57, 0xde, 0xfe, 0xc7, + 0xbf, 0xca, 0xd7, 0x7e, 0x7b, 0x9a, 0x5a, 0x71, + 0x63, 0x39, 0xac, 0xe7, 0xc7, 0x9c, 0x9d, 0x6b, + 0x9f, 0x59, 0xfa, 0xcd, 0x38, 0x7a, 0x77, 0x31, + 0x7e, 0x66, 0xb9, 0xfa, 0xb6, 0x34, 0xcf, 0x7b, + 0x35, 0xfc, 0xfe, 0x63, 0x4f, 0x2d, 0x2b, 0xef, + 0x96, 0xfe, 0xf8, 0xd3, 0xbb, 0xb5, 0xf5, 0xb6, + 0xa4, 0x46, 0x3a, 0x99, 0xb6, 0x95, 0xdf, 0xd6, + 0x31, 0xf5, 0x31, 0x53, 0xce, 0x75, 0xce, 0xda, + 0xd6, 0xa7, 0x7b, 0xf9, 0x6b, 0xcd, 0x71, 0x84, + 0x9e, 0x76, 0xcd, 0x6f, 0x9b, 0xef, 0x7c, 0xe3, + 0x36, 0xe1, 0x99, 0xaf, 0x0e, 0x7d, 0x57, 0xd6, + 0x9f, 0x35, 0xa9, 0x1e, 0x73, 0x9f, 0x9c, 0xaf, + 0x83, 0x6b, 0x8d, 0x6d, 0xd5, 0x7f, 0x7e, 0xd1, + 0xc6, 0xb1, 0xf5, 0xe8, 0x71, 0xaf, 0x7d, 0x97, + 0xfb, 0xb5, 0x7a, 0xe9, 0x36, 0xd8, 0x9c, 0x79, + 0xdc, 0x34, 0x36, 0xa6, 0xdd, 0xbd, 0x72, 0x7b, + 0x5f, 0xf1, 0x6e, 0x9b, 0x7c, 0x15, 0xfc, 0xfb, + 0xe1, 0xae, 0x97, 0xae, 0x59, 0xc7, 0x3b, 0x46, + 0xf9, 0xae, 0x79, 0xfe, 0x3f, 0x9c, 0xdb, 0x1f, + 0xaa, 0xe7, 0x3b, 0xd4, 0x7b, 0x5b, 0xa7, 0xa7, + 0x6e, 0x96, 0xc5, 0xab, 0xcf, 0xf7, 0xa6, 0x81, + 0xe7, 0xf1, 0x8d, 0xf5, 0xe1, 0x8e, 0xde, 0x7b, + 0x69, 0x59, 0xd7, 0x73, 0x4f, 0xbe, 0xfe, 0xfb, + 0x54, 0x9b, 0xfc, 0x6a, 0xfb, 0x5e, 0x6b, 0x4b, + 0xf3, 0xdf, 0xf7, 0x5e, 0x58, 0x3a, 0xff, 0x00, + 0x7d, 0x26, 0x33, 0xb7, 0xbd, 0xbd, 0xe4, 0xee, + 0x6f, 0x7d, 0xe2, 0xb9, 0xf3, 0x5b, 0x63, 0x5f, + 0xb0, 0xb7, 0x4f, 0x4b, 0xe2, 0xbc, 0x3d, 0x63, + 0x5b, 0xfc, 0xe6, 0xf8, 0xfc, 0xe3, 0xce, 0xfd, + 0xdc, 0x7b, 0xe3, 0xaf, 0x4f, 0xc7, 0x7d, 0xd3, + 0xc3, 0x4f, 0x32, 0x33, 0xbf, 0x62, 0x8c, 0x44, + 0x78, 0x7e, 0xb9, 0xa7, 0x48, 0xaf, 0x8e, 0x72, + 0xd9, 0xf2, 0x5e, 0x62, 0x33, 0xaf, 0x23, 0x35, + 0xf5, 0xeb, 0x5c, 0xed, 0xe9, 0xef, 0xbb, 0x5e, + 0x31, 0x98, 0xc7, 0x5f, 0xee, 0xf6, 0xbe, 0xb5, + 0xe5, 0x8b, 0xf3, 0x6c, 0xd6, 0xf8, 0xe4, 0x67, + 0x9b, 0x57, 0xaf, 0x97, 0x23, 0x5d, 0xeb, 0xcf, + 0xd2, 0xf6, 0xf4, 0xf4, 0xb9, 0x5e, 0xd1, 0xb3, + 0xed, 0x1e, 0x99, 0xe9, 0x50, 0x18, 0x89, 0x88, + 0x3b, 0x6d, 0x39, 0xfb, 0xad, 0xfc, 0x3f, 0x97, + 0xb1, 0xf7, 0xa6, 0x6b, 0xe7, 0xcb, 0x49, 0xf7, + 0xfd, 0x4e, 0x1e, 0x1b, 0xfa, 0xeb, 0x5e, 0x3a, + 0x69, 0x8f, 0x99, 0xf1, 0xb5, 0x5f, 0xc3, 0xf9, + 0xf0, 0xce, 0x2c, 0xeb, 0xa3, 0x87, 0xa7, 0x2d, + 0xe7, 0x9c, 0x1a, 0xeb, 0xf8, 0xed, 0x98, 0x5f, + 0x3d, 0x5b, 0x37, 0xb4, 0x13, 0xa4, 0xed, 0x14, + 0x68, 0x06, 0x9e, 0x26, 0x9f, 0x37, 0xe9, 0x69, + 0xa6, 0xc6, 0x96, 0x8c, 0xe3, 0x3b, 0xef, 0xfb, + 0x8f, 0xc7, 0x9f, 0x37, 0x76, 0xd7, 0x91, 0x5e, + 0xbd, 0xa3, 0xae, 0xff, 0x00, 0x3b, 0x75, 0xfc, + 0x36, 0x1e, 0x83, 0x9f, 0xf1, 0xa8, 0x74, 0x7d, + 0x23, 0xe7, 0xf3, 0x1c, 0x96, 0x8b, 0xf8, 0x2f, + 0xa2, 0x94, 0x63, 0xc5, 0x3c, 0x94, 0xa6, 0xd1, + 0xdc, 0xf5, 0x62, 0xa6, 0xd3, 0x88, 0x0d, 0xbb, + 0x3e, 0x86, 0x85, 0x47, 0x39, 0x8f, 0x08, 0xdc, + 0xbf, 0xe0, 0xb8, 0x3a, 0xc7, 0xbf, 0xe3, 0x54, + 0xe8, 0x3e, 0xaf, 0xc5, 0x6a, 0xf6, 0x3f, 0x7f, + 0x1f, 0x88, 0xe7, 0x97, 0x96, 0x34, 0xfc, 0x36, + 0x2d, 0xb8, 0x7a, 0x87, 0xe3, 0x11, 0xd5, 0xd7, + 0xb2, 0xfe, 0xa8, 0xb8, 0x3e, 0x3e, 0x7c, 0xe3, + 0x5f, 0xff, 0xc4, 0x00, 0x27, 0x11, 0x01, 0x00, + 0x01, 0x03, 0x03, 0x03, 0x04, 0x03, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, + 0x00, 0x21, 0x31, 0x41, 0x51, 0xf0, 0x61, 0x71, + 0x91, 0x81, 0xa1, 0xb1, 0xc1, 0xd1, 0xe1, 0xf1, + 0x10, 0x20, 0xff, 0xda, 0x00, 0x08, 0x01, 0x02, + 0x01, 0x01, 0x3f, 0x10, 0x7a, 0x5b, 0x6b, 0x73, + 0xf9, 0x3d, 0xcc, 0xc9, 0xc8, 0xf3, 0xac, 0x66, + 0xde, 0x4a, 0xbf, 0x9e, 0x8d, 0xbb, 0xfe, 0x2d, + 0xad, 0x75, 0xb4, 0x68, 0xf7, 0x8f, 0x9f, 0xc7, + 0xa3, 0xda, 0x7b, 0x7e, 0xde, 0x35, 0x1d, 0x76, + 0xeb, 0xe3, 0x6e, 0x5a, 0xbe, 0x7c, 0x6d, 0xbb, + 0x78, 0x9f, 0x49, 0x8c, 0xe7, 0x72, 0xee, 0xb7, + 0x2d, 0xa4, 0x13, 0x1f, 0x96, 0xa3, 0x3f, 0x97, + 0x6f, 0xef, 0xce, 0x6b, 0xbe, 0x4d, 0xb8, 0x7e, + 0x35, 0xb6, 0x85, 0xff, 0x00, 0x33, 0x98, 0xf0, + 0x5e, 0xf8, 0xc9, 0x19, 0x2b, 0x59, 0xb6, 0xdd, + 0x63, 0x9a, 0x7b, 0xd0, 0x31, 0x7f, 0xdc, 0xfb, + 0x99, 0xc6, 0x85, 0x6f, 0xbe, 0xf1, 0x2f, 0xb7, + 0x98, 0xa2, 0x75, 0xdd, 0xf1, 0xa5, 0x33, 0xa6, + 0xd8, 0xcc, 0xf7, 0x9f, 0x7b, 0xe3, 0xb9, 0x1a, + 0xbc, 0x8d, 0x08, 0xe9, 0x65, 0xcc, 0xf4, 0xbd, + 0x66, 0x2f, 0xef, 0xed, 0xd7, 0x59, 0xe4, 0x7e, + 0xd8, 0x9c, 0xf9, 0xfd, 0x43, 0x1a, 0x57, 0x7f, + 0x4e, 0xdd, 0x79, 0xb6, 0xff, 0x00, 0xf7, 0xe9, + 0xeb, 0x8d, 0x7c, 0xcf, 0x5d, 0x6d, 0x7c, 0x57, + 0x3e, 0x39, 0x60, 0xed, 0x35, 0xe7, 0x9d, 0xad, + 0xce, 0xff, 0x00, 0xe1, 0x70, 0xfa, 0xb7, 0x3b, + 0x7a, 0x35, 0xed, 0xbf, 0x8d, 0xfb, 0x6a, 0x36, + 0x8e, 0x95, 0x91, 0x93, 0xd3, 0xeb, 0xbe, 0x99, + 0xeb, 0x5c, 0xe7, 0x4b, 0xfb, 0x7f, 0x9c, 0xe7, + 0x3d, 0xeb, 0x4b, 0xfb, 0xb3, 0x8d, 0x5d, 0x27, + 0x7f, 0x9a, 0x8f, 0x5f, 0xc7, 0x7c, 0xcc, 0x79, + 0x8d, 0x2b, 0x9f, 0x8a, 0xcf, 0x5f, 0xf3, 0x9c, + 0xe7, 0xd5, 0x73, 0x7f, 0xe6, 0x13, 0xd8, 0xae, + 0x7b, 0x73, 0xf3, 0xa5, 0x5f, 0xe7, 0xa7, 0xcf, + 0xcd, 0xb4, 0xd2, 0x9c, 0x69, 0xad, 0xa7, 0x36, + 0x7c, 0xf6, 0xfc, 0x57, 0x39, 0x1f, 0xaf, 0xfa, + 0xf8, 0xe7, 0x3b, 0xe9, 0x5c, 0xed, 0xcf, 0xb6, + 0x92, 0x67, 0xdb, 0xf5, 0x98, 0xbf, 0xb9, 0x5c, + 0xd2, 0xfc, 0xf4, 0xa7, 0xd2, 0x7a, 0xfb, 0xfb, + 0x53, 0xcf, 0xc7, 0xad, 0x7b, 0xdb, 0xcf, 0x9f, + 0xba, 0xc7, 0x4e, 0xdd, 0xfe, 0xf5, 0xb5, 0xaf, + 0x7d, 0x6b, 0xea, 0xf6, 0xf8, 0xd6, 0x6d, 0xfa, + 0xbe, 0x39, 0xcb, 0xdb, 0xcd, 0x7d, 0x66, 0xaf, + 0xef, 0xb6, 0x91, 0xda, 0xf3, 0xf7, 0x05, 0xc2, + 0xb7, 0xc7, 0x73, 0x99, 0x0b, 0x77, 0xd3, 0x4a, + 0xe7, 0x8f, 0x6f, 0xbf, 0x15, 0xf7, 0x9f, 0x8d, + 0x7e, 0xe6, 0xc4, 0x43, 0x59, 0xe4, 0x6b, 0xdf, + 0xa6, 0x70, 0xe9, 0x66, 0xb9, 0xf9, 0xf8, 0xf4, + 0xae, 0x73, 0x98, 0x7a, 0x5f, 0xbc, 0x77, 0x88, + 0xd3, 0xd7, 0x7e, 0x9a, 0xfa, 0xfe, 0x5f, 0xbe, + 0x7a, 0xd7, 0xa5, 0xdc, 0xfe, 0xf3, 0x83, 0x87, + 0xfd, 0x74, 0x8b, 0x72, 0x67, 0xa7, 0xcb, 0xa6, + 0xb5, 0x65, 0xd3, 0xae, 0xfd, 0x3b, 0x6b, 0xe6, + 0xb5, 0x66, 0x23, 0xad, 0xd7, 0x2d, 0xe7, 0x01, + 0x78, 0x3a, 0x6d, 0x5c, 0x6b, 0x75, 0x93, 0x3b, + 0x79, 0xb4, 0xf3, 0xd2, 0xb4, 0x2f, 0xef, 0xbe, + 0xd9, 0xea, 0x85, 0xca, 0xf3, 0x7d, 0x33, 0xe7, + 0x3f, 0x8a, 0xe7, 0x22, 0x8e, 0xe3, 0xd7, 0xe2, + 0x7c, 0xf4, 0xce, 0x29, 0x9b, 0xe2, 0x23, 0xd4, + 0xf9, 0x9d, 0x74, 0xe9, 0x5e, 0xd7, 0xe9, 0x7c, + 0x67, 0x93, 0x8a, 0xcd, 0xc6, 0xda, 0x78, 0x8f, + 0x53, 0x5d, 0x2f, 0xed, 0x38, 0x7e, 0x2f, 0xcc, + 0x77, 0x9b, 0x6a, 0xd7, 0x3d, 0xb5, 0xdb, 0xf9, + 0xbc, 0x56, 0xbe, 0x3d, 0xfa, 0xfa, 0x36, 0x8f, + 0x5a, 0xb5, 0xbd, 0xb9, 0xf5, 0x5f, 0xde, 0xba, + 0xf0, 0xf5, 0xae, 0x7c, 0xe7, 0xa6, 0x9c, 0xb5, + 0x5f, 0xd3, 0x6e, 0x73, 0x18, 0xbc, 0xe7, 0xb9, + 0xe4, 0xae, 0x73, 0x9e, 0x71, 0x5c, 0x3c, 0x7f, + 0x7d, 0x3f, 0xe2, 0xd9, 0xde, 0x3a, 0xf2, 0xda, + 0xe8, 0x74, 0x9a, 0x9d, 0x79, 0xcf, 0x8a, 0xf8, + 0xd6, 0xdb, 0xf2, 0xf5, 0xb6, 0x22, 0xef, 0xa7, + 0x4f, 0xb7, 0xda, 0xf6, 0xc7, 0x96, 0xdd, 0x5b, + 0xdb, 0xdf, 0xdf, 0x6a, 0xf7, 0xd1, 0xfb, 0x9f, + 0xe7, 0x89, 0xac, 0x7f, 0x17, 0xf6, 0xf2, 0xf5, + 0x16, 0x74, 0xdf, 0x6f, 0xa6, 0xd1, 0xb9, 0x35, + 0xbf, 0x3d, 0x79, 0xb5, 0x75, 0xeb, 0x3b, 0x62, + 0xcc, 0xdb, 0x1a, 0xf5, 0xed, 0x47, 0xa4, 0x5e, + 0xe7, 0x3b, 0xef, 0xe9, 0x8f, 0xf3, 0x8e, 0x9b, + 0xf9, 0xbe, 0x9e, 0x73, 0x7e, 0x5b, 0x9a, 0x6a, + 0x66, 0xbb, 0xf5, 0xdf, 0x13, 0xe3, 0x1b, 0xd7, + 0x3b, 0xf3, 0xad, 0x7b, 0x4e, 0x33, 0xae, 0xff, + 0x00, 0xd1, 0x9b, 0x77, 0x79, 0x3c, 0xd3, 0x91, + 0x5c, 0x3c, 0x39, 0xfd, 0x5f, 0xc3, 0x51, 0xd0, + 0xfe, 0x44, 0x73, 0xa1, 0xfe, 0x6c, 0x78, 0xe9, + 0x11, 0xeb, 0xcb, 0xd4, 0xfe, 0x33, 0xd2, 0x7c, + 0xf9, 0xb5, 0xea, 0x79, 0xcf, 0xe7, 0xfa, 0xe2, + 0x1e, 0x3a, 0x30, 0xc8, 0xa2, 0x02, 0x2a, 0xec, + 0x80, 0x84, 0xad, 0xe3, 0x88, 0xcd, 0xc9, 0xc4, + 0x3e, 0x96, 0x67, 0xe6, 0x94, 0x16, 0x46, 0xf2, + 0x4a, 0x37, 0xb2, 0x7d, 0xaf, 0xeb, 0x4a, 0x56, + 0xec, 0xd1, 0x1a, 0x6e, 0x68, 0x42, 0x0d, 0xaf, + 0x5d, 0x23, 0xc2, 0x33, 0x6f, 0xc6, 0x66, 0xbd, + 0xa3, 0x3a, 0x1d, 0x9b, 0x57, 0xcf, 0x80, 0x11, + 0x2e, 0x25, 0x2a, 0x4a, 0x40, 0xa5, 0xef, 0x13, + 0x48, 0x8b, 0x30, 0x80, 0x01, 0x2c, 0x62, 0xc2, + 0x22, 0x32, 0x10, 0x73, 0x53, 0x48, 0x0d, 0x10, + 0x81, 0x9b, 0x82, 0x5a, 0x22, 0x32, 0xf4, 0xd0, + 0x46, 0x06, 0x36, 0xc3, 0x3f, 0x40, 0xbe, 0x6c, + 0x47, 0x03, 0xe4, 0x28, 0x85, 0xb2, 0x02, 0xa8, + 0x76, 0x40, 0x8c, 0xb1, 0x9d, 0x50, 0x28, 0x93, + 0x99, 0x66, 0x81, 0x8b, 0x6d, 0xa1, 0x93, 0x53, + 0xa0, 0x14, 0xc0, 0x35, 0x52, 0x88, 0x20, 0x24, + 0x47, 0x90, 0xdc, 0xa5, 0xe0, 0xa6, 0xc1, 0x2e, + 0x46, 0xa2, 0x41, 0x82, 0x16, 0xeb, 0x85, 0x80, + 0xcb, 0x0b, 0x02, 0xee, 0x01, 0x29, 0x07, 0xa5, + 0xcb, 0x45, 0x26, 0xc0, 0x96, 0x6f, 0x6a, 0xdd, + 0x73, 0xbe, 0xd8, 0x99, 0xa8, 0x64, 0x84, 0xd8, + 0x09, 0x50, 0x88, 0x86, 0x1c, 0x26, 0x20, 0x30, + 0xbd, 0xe3, 0x52, 0x25, 0x4a, 0x1b, 0x88, 0x65, + 0xc3, 0x66, 0x02, 0x0d, 0x22, 0x49, 0x0a, 0x81, + 0x08, 0x33, 0x54, 0x10, 0x70, 0x5d, 0x2e, 0x68, + 0x6a, 0xa2, 0x6c, 0xcc, 0x8c, 0x24, 0x92, 0xe0, + 0x04, 0x14, 0x12, 0x38, 0xaf, 0x25, 0xb8, 0x70, + 0xb0, 0x72, 0x4c, 0x08, 0x70, 0xad, 0x4d, 0x0d, + 0x00, 0xca, 0x4c, 0x24, 0x96, 0xe0, 0x59, 0x33, + 0x70, 0x74, 0x50, 0xc4, 0x2d, 0x01, 0x45, 0x21, + 0x80, 0x82, 0x18, 0x69, 0x78, 0x68, 0xd3, 0x71, + 0x34, 0x06, 0xf7, 0x31, 0x2d, 0x68, 0x54, 0x9c, + 0x03, 0x92, 0x81, 0x0a, 0x00, 0x95, 0xdc, 0x21, + 0xb1, 0x0b, 0x79, 0x3b, 0x88, 0x20, 0x32, 0x4c, + 0x27, 0x47, 0x34, 0xf4, 0xb1, 0xe5, 0x63, 0x14, + 0xa5, 0xd6, 0x34, 0xeb, 0x9b, 0xec, 0xeb, 0xfd, + 0xab, 0x93, 0x73, 0x93, 0x5b, 0x79, 0x09, 0xf6, + 0xeb, 0xad, 0x2b, 0x89, 0xf8, 0x5a, 0xc1, 0x10, + 0x24, 0x90, 0x99, 0x22, 0x29, 0x50, 0x8c, 0x19, + 0x16, 0x42, 0x4b, 0x24, 0xc5, 0xc4, 0xbd, 0xc5, + 0x90, 0x04, 0x9c, 0xa0, 0x03, 0x15, 0x17, 0xb3, + 0xe2, 0x19, 0x28, 0xca, 0xa4, 0x9a, 0x61, 0x72, + 0x08, 0x10, 0x2a, 0x1a, 0x22, 0x54, 0x00, 0xb0, + 0x26, 0xe5, 0x92, 0x60, 0xed, 0xc5, 0x61, 0x47, + 0x86, 0xc4, 0x36, 0x43, 0x00, 0xe6, 0x1b, 0x00, + 0xa2, 0x05, 0x54, 0x53, 0x48, 0x81, 0x51, 0x64, + 0x61, 0x2c, 0x02, 0x50, 0x64, 0x44, 0x2b, 0x01, + 0xc0, 0x86, 0xc6, 0x62, 0xe1, 0x34, 0x00, 0x16, + 0x21, 0x20, 0x57, 0x60, 0xb2, 0xa9, 0xc8, 0x14, + 0xaf, 0x54, 0xbd, 0x8b, 0xb7, 0x68, 0x60, 0x21, + 0xa2, 0x51, 0x19, 0x0a, 0x36, 0x66, 0x43, 0x0d, + 0x02, 0x3d, 0x70, 0x6a, 0x69, 0x60, 0xa8, 0x80, + 0x5a, 0x00, 0x91, 0x14, 0x6f, 0x05, 0x65, 0x0c, + 0x48, 0x28, 0xcc, 0x32, 0xc0, 0x88, 0x14, 0x0e, + 0x18, 0x84, 0x16, 0xd8, 0x9c, 0x56, 0x4a, 0x14, + 0x53, 0x10, 0x89, 0xe0, 0xd9, 0x93, 0x38, 0x8e, + 0x21, 0x21, 0x50, 0x2a, 0xd2, 0x25, 0x27, 0x28, + 0x68, 0x37, 0x48, 0x84, 0x41, 0x14, 0x00, 0x69, + 0x42, 0x9c, 0xce, 0x08, 0xee, 0x58, 0x80, 0xa7, + 0x0c, 0xa6, 0x4a, 0x22, 0x90, 0x0c, 0x25, 0x04, + 0xcb, 0x00, 0x2d, 0xe3, 0x61, 0x86, 0x0a, 0x79, + 0x15, 0x85, 0x7e, 0x43, 0xa9, 0x6c, 0x12, 0x8c, + 0xc2, 0x19, 0xa8, 0x72, 0x08, 0xa4, 0xa0, 0xe1, + 0x59, 0x1b, 0xa8, 0x21, 0x70, 0x0d, 0x16, 0xc6, + 0x98, 0x33, 0x16, 0x49, 0x48, 0x84, 0x20, 0xbd, + 0xc8, 0x1a, 0x43, 0x9b, 0xb1, 0x48, 0x52, 0x93, + 0x6a, 0x9b, 0x9a, 0x46, 0x5a, 0x36, 0xf1, 0x9c, + 0xb2, 0x44, 0x22, 0xc0, 0x32, 0x0d, 0x55, 0x08, + 0x22, 0x57, 0xbb, 0x2d, 0x23, 0xad, 0xb7, 0x18, + 0x4b, 0xbb, 0xdb, 0x1a, 0x6b, 0xa2, 0xa5, 0x99, + 0xc9, 0x60, 0xbc, 0x4e, 0xfa, 0x46, 0x98, 0x2f, + 0xb5, 0x48, 0xdb, 0x66, 0xa0, 0xd9, 0x8d, 0x6f, + 0x06, 0x7a, 0xef, 0x8a, 0xb3, 0x9e, 0x70, 0x00, + 0xa8, 0xb0, 0x21, 0x02, 0x8a, 0x80, 0x96, 0xe8, + 0x97, 0x08, 0xdd, 0x18, 0x30, 0x5e, 0x65, 0xb0, + 0x5b, 0xb2, 0x2e, 0x08, 0x45, 0x5c, 0x2b, 0x28, + 0x6d, 0x90, 0x99, 0xbb, 0x28, 0x21, 0x50, 0x09, + 0x23, 0x1b, 0x2a, 0xe6, 0x2c, 0x2f, 0xe0, 0x08, + 0x84, 0x72, 0x24, 0x84, 0x8c, 0x4a, 0x32, 0x01, + 0x78, 0x13, 0x02, 0x01, 0x93, 0x08, 0x60, 0x51, + 0x04, 0x1d, 0x03, 0x7e, 0x95, 0x09, 0x72, 0x11, + 0x74, 0x90, 0xc8, 0x3d, 0x09, 0x05, 0x1a, 0x5c, + 0x15, 0x46, 0x01, 0x09, 0x69, 0x2a, 0xc5, 0x05, + 0x19, 0x32, 0x18, 0xc2, 0x28, 0x42, 0x55, 0x6a, + 0x8d, 0x44, 0x04, 0x12, 0x76, 0xc8, 0x0c, 0x1a, + 0x9b, 0x51, 0xe5, 0x0b, 0xfa, 0x92, 0x1d, 0x48, + 0xa5, 0x88, 0xd8, 0x62, 0x80, 0x80, 0x65, 0x04, + 0x12, 0x32, 0x95, 0x8e, 0x18, 0x95, 0xd1, 0xf2, + 0x0c, 0x20, 0x0a, 0x07, 0x22, 0x71, 0xe2, 0x30, + 0x98, 0xb7, 0x84, 0x01, 0x08, 0x00, 0x14, 0x14, + 0x54, 0x99, 0xd6, 0xb5, 0x00, 0xa0, 0x00, 0x18, + 0x50, 0x90, 0xac, 0x94, 0x02, 0x14, 0x2a, 0x9b, + 0x90, 0x82, 0x0e, 0x41, 0x10, 0x89, 0xf9, 0x41, + 0x36, 0x52, 0x94, 0x21, 0x40, 0x9e, 0xa3, 0x4d, + 0xe3, 0x24, 0x3d, 0x99, 0x0a, 0xcd, 0xc2, 0xff, + 0x00, 0x63, 0x96, 0x1a, 0x09, 0x71, 0x10, 0xd0, + 0x9c, 0x50, 0x3c, 0x44, 0x64, 0x56, 0x86, 0x92, + 0x96, 0x97, 0xd0, 0x1b, 0x0c, 0x91, 0x08, 0x66, + 0x6b, 0xac, 0x89, 0x6a, 0x1b, 0x61, 0xdb, 0x85, + 0x2c, 0x91, 0x88, 0x64, 0x5d, 0x1a, 0x6d, 0x4e, + 0xc0, 0x22, 0xad, 0x60, 0x05, 0x19, 0x62, 0x35, + 0x40, 0x1f, 0x38, 0x5b, 0x20, 0x5f, 0x7a, 0xce, + 0x56, 0x40, 0xa2, 0x20, 0x20, 0x98, 0x48, 0x4e, + 0x9e, 0x94, 0x88, 0x2c, 0xec, 0x67, 0x64, 0xbb, + 0x64, 0x23, 0x39, 0xa9, 0x13, 0xea, 0xcb, 0xd2, + 0xd7, 0xd7, 0x48, 0xb6, 0xd6, 0xcd, 0xd1, 0x62, + 0x03, 0x16, 0x57, 0x19, 0x96, 0x3d, 0xa3, 0x5f, + 0xb3, 0x5a, 0xc8, 0x09, 0x4c, 0xa2, 0x08, 0x58, + 0x8d, 0x4a, 0xe6, 0x92, 0xc5, 0xf6, 0x49, 0x00, + 0xbc, 0x05, 0xcd, 0x8b, 0x26, 0x40, 0x02, 0x95, + 0x78, 0x00, 0x59, 0x4b, 0x89, 0x30, 0x05, 0xee, + 0x4a, 0xe7, 0x24, 0xc5, 0x20, 0x4a, 0xca, 0xa0, + 0x22, 0x2e, 0xd9, 0x2c, 0x1d, 0x95, 0x9c, 0xd3, + 0x86, 0x11, 0x85, 0xc0, 0x92, 0xd9, 0x11, 0x04, + 0xb2, 0xd0, 0xba, 0x8a, 0x95, 0xb5, 0x8a, 0x23, + 0x05, 0x54, 0x2b, 0x69, 0x9e, 0xe0, 0x22, 0x12, + 0x01, 0x77, 0xd8, 0x16, 0x00, 0x2e, 0x8d, 0xb9, + 0xa4, 0xf3, 0x75, 0x04, 0xcc, 0x04, 0x65, 0x8c, + 0x10, 0x29, 0x7a, 0xeb, 0x22, 0xa4, 0x42, 0x62, + 0x12, 0x4e, 0x8a, 0x52, 0x5a, 0xae, 0x8f, 0x2f, + 0x49, 0x30, 0xca, 0x00, 0x29, 0xa2, 0x12, 0x08, + 0xd4, 0xe1, 0x73, 0x80, 0x8c, 0x62, 0x97, 0x7d, + 0x91, 0x09, 0x45, 0x84, 0xa3, 0x56, 0x40, 0x2c, + 0xce, 0x8a, 0x05, 0x53, 0x90, 0x42, 0x2f, 0xa1, + 0x06, 0x1e, 0x44, 0x31, 0x81, 0xb2, 0x5c, 0x11, + 0xb7, 0xf1, 0xa5, 0x52, 0x95, 0xc0, 0x40, 0xa1, + 0x88, 0x8a, 0x82, 0x21, 0x18, 0x2e, 0x43, 0x30, + 0x10, 0x02, 0x9f, 0xbf, 0x52, 0xed, 0x0b, 0x5f, + 0xb2, 0x20, 0xb1, 0x2c, 0x91, 0x0c, 0xcd, 0x74, + 0x93, 0xd0, 0x20, 0x42, 0xb8, 0x68, 0x0a, 0x80, + 0x11, 0x29, 0x2f, 0x3d, 0x14, 0x0d, 0x91, 0xdc, + 0x03, 0x2f, 0x81, 0x9d, 0x5c, 0x5d, 0x24, 0xad, + 0x11, 0xe3, 0x2d, 0xa7, 0x40, 0x3a, 0x91, 0x00, + 0x4a, 0x10, 0x12, 0x62, 0x1d, 0x0c, 0x90, 0x0f, + 0xc2, 0x93, 0x89, 0xe5, 0x4a, 0x2b, 0xe2, 0x13, + 0x18, 0x12, 0xee, 0x0c, 0x96, 0x48, 0x50, 0x44, + 0x91, 0xa5, 0x26, 0xc9, 0x69, 0x84, 0x44, 0x55, + 0x59, 0x9c, 0xf7, 0x26, 0x8e, 0x40, 0x8b, 0x41, + 0x10, 0x92, 0x40, 0xb4, 0x20, 0x2c, 0x20, 0x14, + 0xa9, 0x15, 0x4c, 0xc9, 0x86, 0xd6, 0x59, 0x02, + 0xbc, 0x02, 0x3c, 0x6d, 0xf1, 0x40, 0x5a, 0x12, + 0x5b, 0x90, 0x44, 0xa0, 0x09, 0x01, 0x89, 0x93, + 0x12, 0x28, 0x0b, 0xa4, 0x21, 0x44, 0x68, 0x25, + 0x0b, 0xb4, 0x03, 0x8a, 0x3c, 0xc1, 0x04, 0x13, + 0x15, 0x0c, 0x87, 0x22, 0x22, 0x8a, 0xff, 0x00, + 0x0a, 0xd2, 0x20, 0x82, 0xd0, 0x59, 0x5b, 0x55, + 0x95, 0xb7, 0xd0, 0x35, 0x70, 0x2d, 0x21, 0x70, + 0x82, 0x11, 0x21, 0x2e, 0x44, 0x19, 0x50, 0x45, + 0x2c, 0x35, 0x60, 0x48, 0x13, 0x13, 0x0d, 0x29, + 0x64, 0x0b, 0x5d, 0x15, 0x99, 0x60, 0xe0, 0x18, + 0xbc, 0x54, 0x00, 0x02, 0x11, 0x29, 0x1b, 0x51, + 0x8a, 0x11, 0x09, 0xf3, 0x5f, 0x11, 0x61, 0x8b, + 0x4c, 0xa4, 0x8c, 0xa2, 0xa3, 0x8b, 0x25, 0x12, + 0x03, 0xe5, 0x91, 0x20, 0x0b, 0x8a, 0x54, 0xbf, + 0xa7, 0xd9, 0xba, 0x06, 0x11, 0x5c, 0x1b, 0x21, + 0x09, 0x49, 0x7c, 0x20, 0x50, 0xb8, 0x21, 0x1c, + 0x2e, 0xc1, 0x0d, 0x46, 0x3b, 0x20, 0xbc, 0x62, + 0x60, 0x10, 0x40, 0x92, 0x08, 0xf4, 0xe2, 0x3e, + 0x40, 0x04, 0x06, 0x05, 0x01, 0x52, 0x5a, 0x44, + 0x88, 0xe5, 0xe3, 0x44, 0x9d, 0xf2, 0xe6, 0x0b, + 0x48, 0x22, 0x94, 0x98, 0xd6, 0x69, 0x09, 0x60, + 0xb2, 0x35, 0x76, 0x0e, 0x2d, 0xb9, 0xe9, 0x8c, + 0xc7, 0xac, 0x43, 0xc0, 0x12, 0x30, 0x9e, 0x4a, + 0x09, 0x40, 0x79, 0x42, 0xc4, 0x69, 0x52, 0x61, + 0xa4, 0xb0, 0xb8, 0x95, 0x2c, 0xe4, 0xb6, 0x4c, + 0xaa, 0xa8, 0x05, 0x55, 0xb4, 0xf2, 0xa9, 0x98, + 0x65, 0x65, 0x81, 0x2c, 0x0b, 0x54, 0x49, 0x57, + 0xb3, 0x32, 0xc4, 0xa8, 0xa4, 0x84, 0x57, 0x2c, + 0x11, 0xb8, 0xaf, 0x4d, 0x35, 0x5d, 0x04, 0x61, + 0x36, 0xdd, 0x09, 0xa4, 0x85, 0x2a, 0xa8, 0x99, + 0xb0, 0x94, 0x83, 0x79, 0x4d, 0x0b, 0xd7, 0xc5, + 0xd8, 0x42, 0xe4, 0xc1, 0x17, 0x49, 0x68, 0x94, + 0x8c, 0xe9, 0x60, 0xe1, 0x97, 0x10, 0x1b, 0x43, + 0x29, 0x7b, 0x45, 0x43, 0x25, 0x12, 0x99, 0xd6, + 0x90, 0x4a, 0x0a, 0x91, 0x05, 0x5e, 0x69, 0xc1, + 0x35, 0x8d, 0x88, 0x88, 0x39, 0x70, 0xb6, 0xa0, + 0x01, 0x15, 0x2c, 0xd8, 0xaa, 0x47, 0xf0, 0x2a, + 0x8c, 0xb2, 0x08, 0x98, 0x29, 0x35, 0xa6, 0x5c, + 0x92, 0x6e, 0xe6, 0x49, 0x00, 0x90, 0x01, 0x25, + 0xae, 0xf7, 0x3d, 0xa1, 0x40, 0x95, 0x3f, 0x5c, + 0x5d, 0x16, 0x00, 0x6c, 0x42, 0x18, 0x96, 0xa5, + 0x04, 0x0a, 0x85, 0x7d, 0xb0, 0x40, 0x02, 0x48, + 0x4f, 0x51, 0x86, 0x44, 0x34, 0x25, 0x61, 0xe0, + 0x30, 0x0b, 0xb7, 0x48, 0x00, 0x4d, 0x81, 0x8b, + 0x5e, 0x28, 0xed, 0xbe, 0x53, 0xe8, 0xb7, 0x09, + 0x29, 0xb0, 0xc5, 0xc9, 0x99, 0x89, 0x16, 0x22, + 0x82, 0x01, 0x03, 0xa8, 0x89, 0x88, 0x0b, 0x99, + 0x85, 0x96, 0x26, 0x30, 0xc7, 0x30, 0x4b, 0x10, + 0x88, 0xee, 0x06, 0xf6, 0x65, 0x13, 0xa9, 0x02, + 0xa9, 0x81, 0x9b, 0x9e, 0x25, 0x43, 0x19, 0x3d, + 0x73, 0x83, 0x06, 0x28, 0xe0, 0x96, 0x00, 0x8b, + 0x31, 0x0d, 0x2e, 0x31, 0x57, 0x38, 0x47, 0x66, + 0x38, 0x82, 0x10, 0x42, 0x9c, 0x37, 0x25, 0x11, + 0x12, 0x50, 0x05, 0x25, 0x91, 0x46, 0x24, 0x5c, + 0xcb, 0xa3, 0xe8, 0x08, 0x68, 0x4a, 0x54, 0x82, + 0x40, 0x4c, 0x22, 0x9c, 0x28, 0xb0, 0x99, 0x67, + 0xd3, 0xa2, 0x41, 0xb1, 0x20, 0x82, 0x2d, 0x9b, + 0x12, 0x78, 0x13, 0x1b, 0x84, 0x43, 0x2d, 0xa8, + 0x33, 0x00, 0x8d, 0x0c, 0x1f, 0x4c, 0xb0, 0x2e, + 0x43, 0x42, 0xd1, 0x0d, 0x61, 0x58, 0x5b, 0x16, + 0x0c, 0xbd, 0x32, 0xb2, 0x5e, 0x5e, 0x95, 0x7a, + 0x45, 0x30, 0x25, 0x04, 0x0d, 0x90, 0x19, 0x6c, + 0x69, 0x7c, 0x10, 0x51, 0x0a, 0xc4, 0x85, 0xc8, + 0x00, 0xbc, 0xd4, 0x43, 0x0a, 0x85, 0x4f, 0xcc, + 0xb6, 0x20, 0x9a, 0x66, 0x82, 0x08, 0xb0, 0x02, + 0xcd, 0x6c, 0xc6, 0x7c, 0x9d, 0x3a, 0x62, 0xfd, + 0x7b, 0xd1, 0xb1, 0xa6, 0xeb, 0x8c, 0xf5, 0x24, + 0x89, 0xd2, 0xed, 0x2a, 0x74, 0x36, 0x12, 0x38, + 0x4c, 0x83, 0x48, 0x81, 0x54, 0x08, 0x8a, 0x93, + 0x1c, 0x0f, 0x09, 0x9a, 0x9c, 0x8c, 0x1b, 0x29, + 0x5c, 0x64, 0xc9, 0x78, 0x6a, 0xc7, 0x51, 0x08, + 0x00, 0x67, 0x57, 0xf1, 0xa5, 0x4c, 0x61, 0x70, + 0x10, 0xb1, 0x94, 0x04, 0x0d, 0x29, 0xc5, 0xd1, + 0x9b, 0x30, 0x02, 0x15, 0x02, 0x4a, 0x10, 0x43, + 0x2a, 0xd0, 0x4e, 0x8c, 0xe2, 0x6a, 0x62, 0x88, + 0x12, 0x01, 0x54, 0x2f, 0x58, 0x90, 0xcc, 0x62, + 0x02, 0x2d, 0x10, 0xc4, 0xe2, 0x2c, 0xa8, 0x31, + 0x27, 0x78, 0xab, 0x22, 0x62, 0xa6, 0x57, 0xef, + 0xb0, 0x90, 0x0b, 0x12, 0x40, 0x32, 0x60, 0xe8, + 0x44, 0x62, 0x14, 0xcd, 0x50, 0x03, 0x60, 0x0c, + 0x75, 0xdb, 0x1b, 0x94, 0xbf, 0x41, 0x74, 0x60, + 0xd1, 0x37, 0x72, 0x09, 0xf3, 0x49, 0x1c, 0xd3, + 0x98, 0x90, 0x5a, 0xc1, 0x11, 0x4e, 0x56, 0x88, + 0x01, 0xa3, 0x8a, 0xef, 0x86, 0x72, 0x12, 0x08, + 0x43, 0x83, 0x9f, 0xb9, 0x29, 0xa5, 0x60, 0x31, + 0x12, 0x0b, 0x01, 0x02, 0x89, 0x1b, 0xb5, 0x3a, + 0x90, 0x19, 0xb2, 0x2c, 0x51, 0x27, 0xc6, 0x29, + 0x99, 0x8d, 0x32, 0x40, 0x72, 0x4d, 0x65, 0x2d, + 0x0a, 0x89, 0x80, 0x66, 0x01, 0xdf, 0x49, 0x74, + 0x68, 0x7d, 0xd5, 0x12, 0x40, 0x50, 0x62, 0xdf, + 0x2c, 0x82, 0x40, 0x54, 0x34, 0x2f, 0xf2, 0x89, + 0x07, 0x11, 0x6d, 0x21, 0x4a, 0xf5, 0x21, 0x69, + 0xf9, 0x02, 0x66, 0xca, 0x06, 0x44, 0x20, 0xcb, + 0x48, 0x91, 0x11, 0x90, 0xa4, 0x08, 0x22, 0xda, + 0xa2, 0x20, 0x92, 0x58, 0xba, 0x3c, 0x5c, 0x34, + 0xdf, 0x70, 0x14, 0x5e, 0x37, 0x59, 0x91, 0xdf, + 0x35, 0x28, 0x8a, 0x6a, 0x51, 0xb1, 0x01, 0x2c, + 0x62, 0x66, 0x04, 0xda, 0x2d, 0x52, 0x4b, 0x0a, + 0x2c, 0x25, 0x2c, 0x00, 0x82, 0xb9, 0x04, 0x88, + 0x9f, 0xf0, 0x9c, 0x2b, 0x65, 0x35, 0x23, 0xa4, + 0xcc, 0x28, 0x12, 0xad, 0x12, 0x92, 0x60, 0x38, + 0x2a, 0x52, 0x66, 0x00, 0x8a, 0xc1, 0x62, 0x80, + 0xfb, 0x72, 0x17, 0x38, 0x93, 0x30, 0x0c, 0x70, + 0x91, 0x37, 0x4a, 0xd2, 0x68, 0x3b, 0xd0, 0x48, + 0x80, 0xab, 0x2c, 0xb3, 0x04, 0xe4, 0x03, 0x14, + 0x23, 0x02, 0xc0, 0xc8, 0x97, 0x2e, 0x24, 0xb0, + 0x14, 0xd8, 0x52, 0xb2, 0x52, 0x04, 0x9c, 0x85, + 0x11, 0x71, 0x97, 0x0f, 0x74, 0x8b, 0x0c, 0xec, + 0x8c, 0x94, 0x72, 0x2f, 0x02, 0xce, 0x16, 0x11, + 0x8a, 0xc8, 0x00, 0x15, 0x04, 0xd9, 0x82, 0xd4, + 0xb5, 0xae, 0x28, 0xa6, 0x62, 0x3a, 0xed, 0xed, + 0x10, 0x21, 0x25, 0xb3, 0x5e, 0x18, 0x43, 0x11, + 0x17, 0x48, 0xb5, 0x81, 0x08, 0x59, 0x99, 0x40, + 0x25, 0x24, 0xa1, 0x44, 0x4f, 0x48, 0x93, 0xda, + 0x5d, 0xa1, 0xc0, 0x64, 0xd2, 0x46, 0xe3, 0x18, + 0x08, 0x06, 0xf1, 0xa0, 0xaa, 0x24, 0x2c, 0x96, + 0x9a, 0x59, 0x06, 0x61, 0x34, 0xa8, 0xb9, 0x4a, + 0x06, 0x10, 0xd2, 0xd4, 0x60, 0x26, 0x52, 0x75, + 0x82, 0x64, 0x16, 0xa9, 0xb9, 0x70, 0x5b, 0x88, + 0xcc, 0x41, 0x03, 0xdd, 0x01, 0x04, 0x02, 0x91, + 0x61, 0x8e, 0x90, 0xac, 0x19, 0xac, 0x46, 0x00, + 0x9c, 0x83, 0x80, 0x93, 0xd5, 0x12, 0x45, 0x4d, + 0x92, 0x2a, 0x74, 0x03, 0x28, 0x41, 0x60, 0x03, + 0x32, 0xc8, 0xa1, 0xb5, 0xa2, 0x00, 0x18, 0xf4, + 0x65, 0x31, 0xbe, 0x4b, 0x52, 0xdc, 0x30, 0x48, + 0xb0, 0x45, 0x04, 0x6a, 0xdc, 0x60, 0x26, 0xbc, + 0x19, 0x16, 0xc2, 0x2d, 0xa5, 0x4c, 0x25, 0x32, + 0x6c, 0x16, 0x18, 0xc5, 0x2a, 0x39, 0x42, 0x53, + 0x64, 0x8c, 0x21, 0x87, 0x2d, 0xcc, 0x66, 0x5b, + 0xa4, 0x12, 0x6d, 0x9d, 0x50, 0x22, 0xc0, 0x4b, + 0x6d, 0x82, 0xc5, 0xc1, 0x42, 0xd0, 0xea, 0x20, + 0x4a, 0x80, 0x00, 0x89, 0xb2, 0xd4, 0x41, 0x2a, + 0x42, 0xd3, 0xd7, 0x7e, 0x7a, 0x54, 0x95, 0x13, + 0x61, 0x55, 0x61, 0xc3, 0x6c, 0x96, 0x0c, 0x14, + 0xd9, 0x76, 0x61, 0x05, 0x31, 0x9a, 0x57, 0x0e, + 0x44, 0x26, 0x23, 0x26, 0x0b, 0x56, 0xc1, 0x8e, + 0x1d, 0x18, 0x34, 0x0b, 0x4a, 0x39, 0x8e, 0x3c, + 0xb5, 0xca, 0x28, 0x81, 0x32, 0xe0, 0xa1, 0x50, + 0x42, 0xe8, 0x9a, 0x62, 0x45, 0x4a, 0x25, 0xa0, + 0x86, 0xd1, 0xd3, 0x50, 0xb4, 0x9a, 0xf9, 0x48, + 0x85, 0x04, 0x10, 0x04, 0x24, 0x12, 0x08, 0x6a, + 0x89, 0x00, 0x12, 0xb0, 0x02, 0xd7, 0x58, 0x33, + 0x91, 0x86, 0xe7, 0x04, 0xc0, 0x51, 0x50, 0x12, + 0x48, 0xc5, 0x9a, 0x00, 0xc0, 0x6e, 0x26, 0x68, + 0x0a, 0x46, 0xb5, 0x44, 0x8c, 0x84, 0xa0, 0xa8, + 0x85, 0xe0, 0x74, 0x77, 0x54, 0x91, 0xfd, 0x00, + 0x0b, 0x19, 0x70, 0x2c, 0x25, 0x2c, 0x04, 0x39, + 0x49, 0x42, 0x01, 0x4b, 0xa4, 0x42, 0x89, 0xe4, + 0x2e, 0x05, 0x52, 0x24, 0x89, 0x6a, 0x12, 0x66, + 0x41, 0x95, 0xf7, 0x44, 0x84, 0x83, 0x28, 0x20, + 0x51, 0x36, 0x54, 0x79, 0x85, 0x21, 0x06, 0x45, + 0x2c, 0xe5, 0x25, 0x2a, 0x2c, 0x48, 0x16, 0x91, + 0x03, 0xfa, 0xe3, 0x7a, 0x0e, 0x51, 0x99, 0x80, + 0xb8, 0x96, 0x19, 0x71, 0x4e, 0x64, 0xc4, 0x8d, + 0x17, 0x41, 0x17, 0xce, 0xa9, 0xe8, 0x54, 0x8c, + 0x81, 0x56, 0xc9, 0x21, 0x4c, 0xa2, 0xda, 0xc6, + 0x2c, 0x10, 0x51, 0x54, 0x62, 0xd0, 0x65, 0x90, + 0x02, 0x64, 0x1a, 0x19, 0x20, 0x01, 0x4d, 0x70, + 0xf0, 0x12, 0x67, 0x0a, 0xc0, 0x67, 0x42, 0x45, + 0x51, 0x00, 0x71, 0x86, 0x8e, 0x11, 0x99, 0x62, + 0x48, 0x56, 0x01, 0x41, 0x33, 0x93, 0x51, 0x32, + 0xa4, 0x66, 0x0c, 0x6a, 0xcb, 0x05, 0x95, 0x99, + 0x36, 0x41, 0x0a, 0x91, 0x26, 0x81, 0x22, 0x1a, + 0x98, 0xcc, 0x95, 0xa3, 0x0a, 0xc9, 0xb1, 0x71, + 0x29, 0x62, 0x03, 0x65, 0x54, 0x62, 0x32, 0x45, + 0x92, 0xe6, 0x59, 0x42, 0x63, 0x13, 0x70, 0x55, + 0xcf, 0x5d, 0x3b, 0x47, 0xdf, 0x4a, 0xb0, 0x65, + 0x15, 0x00, 0xa4, 0x4a, 0xc1, 0x2a, 0x81, 0x39, + 0x60, 0xd6, 0x8a, 0x8c, 0xed, 0x64, 0x30, 0x61, + 0xb8, 0xef, 0x09, 0x01, 0x60, 0x01, 0x2f, 0x00, + 0x10, 0x01, 0x6c, 0xcd, 0xac, 0xc9, 0x96, 0xb6, + 0x81, 0x0b, 0x14, 0x35, 0x8b, 0x34, 0x00, 0x8b, + 0x01, 0xa4, 0xa1, 0x30, 0x76, 0x61, 0xba, 0xb9, + 0x06, 0x79, 0x8d, 0x02, 0x19, 0x43, 0x3e, 0x40, + 0x0c, 0x24, 0x4d, 0x01, 0x08, 0xd1, 0x60, 0xb5, + 0x31, 0x24, 0xc6, 0x23, 0xb7, 0x88, 0x1a, 0x42, + 0x80, 0x09, 0xa0, 0x89, 0x5a, 0x34, 0x82, 0x71, + 0x02, 0x93, 0x23, 0x63, 0x21, 0x07, 0x5f, 0xa7, + 0x34, 0x68, 0x61, 0x96, 0x6e, 0x68, 0x8a, 0x83, + 0x56, 0x4d, 0x64, 0x02, 0x5c, 0x2a, 0x01, 0x23, + 0x90, 0x85, 0x12, 0xe5, 0x4a, 0xce, 0x2f, 0x9d, + 0x3d, 0x4a, 0x82, 0x68, 0x1a, 0x21, 0x4c, 0xb0, + 0x02, 0xc9, 0x74, 0x58, 0x60, 0xcb, 0x60, 0xc9, + 0x34, 0x3e, 0xf3, 0x90, 0x0a, 0x88, 0x20, 0xc4, + 0x14, 0xac, 0x8f, 0x62, 0x1f, 0x23, 0x50, 0x31, + 0x7c, 0x8d, 0x8b, 0x21, 0x42, 0x1b, 0x0d, 0xab, + 0x11, 0x96, 0x00, 0x83, 0x66, 0xcd, 0x69, 0x42, + 0x31, 0x10, 0x92, 0x48, 0x46, 0x11, 0x85, 0xc0, + 0x4e, 0x51, 0x83, 0xdf, 0x4a, 0xc2, 0x93, 0x00, + 0xc0, 0x02, 0x02, 0x90, 0xa1, 0x89, 0x91, 0x74, + 0x88, 0x67, 0xc9, 0x26, 0x6e, 0x5c, 0x1c, 0x81, + 0x26, 0x8d, 0xe1, 0x62, 0x8a, 0x13, 0x09, 0x25, + 0x35, 0x9d, 0xd1, 0x04, 0x2c, 0xa4, 0x21, 0x65, + 0x65, 0xd4, 0xab, 0x41, 0x49, 0x45, 0x85, 0x81, + 0x7a, 0x5a, 0x28, 0x4b, 0xac, 0xac, 0xb8, 0x70, + 0xc4, 0xd8, 0x9b, 0x14, 0x92, 0x1c, 0xb6, 0x9a, + 0x68, 0x09, 0x06, 0x3a, 0x64, 0x04, 0x64, 0xd5, + 0x09, 0x86, 0x66, 0x88, 0x38, 0xfa, 0xf4, 0x04, + 0x14, 0xda, 0xc8, 0x27, 0xbe, 0x24, 0x8f, 0x03, + 0x22, 0x2a, 0x31, 0x70, 0x27, 0x22, 0x8a, 0x12, + 0x94, 0x17, 0xa7, 0x67, 0x9e, 0x3c, 0x52, 0x9c, + 0xcc, 0x86, 0xf2, 0xa2, 0x29, 0x06, 0x0b, 0x82, + 0x09, 0x4c, 0x33, 0xc0, 0xc4, 0xd3, 0xb5, 0xa6, + 0x88, 0x11, 0x88, 0x49, 0x49, 0xc1, 0xd0, 0x0c, + 0x89, 0xe3, 0x62, 0x61, 0x45, 0x5c, 0x27, 0x5c, + 0x41, 0x69, 0x8a, 0x24, 0x45, 0x44, 0xc2, 0x80, + 0x20, 0x96, 0x22, 0x32, 0x07, 0x40, 0x4b, 0x99, + 0x29, 0x9a, 0x3f, 0x52, 0x4e, 0x1a, 0xa2, 0xf0, + 0x08, 0x24, 0xae, 0xd1, 0x28, 0x98, 0x2a, 0xf3, + 0x63, 0x90, 0x02, 0xe9, 0x0c, 0xb3, 0x83, 0x16, + 0x30, 0x8d, 0xb4, 0xb8, 0x0c, 0x4a, 0x44, 0xc4, + 0x5c, 0xd1, 0x29, 0xad, 0xe4, 0x17, 0xc5, 0x09, + 0x52, 0x56, 0xe2, 0xcb, 0xa4, 0x12, 0x96, 0x19, + 0x25, 0x59, 0x41, 0xe4, 0xa8, 0xaa, 0xc5, 0x40, + 0xaa, 0x2e, 0x0e, 0xb1, 0x24, 0x5f, 0x31, 0x9d, + 0x40, 0xd5, 0xb2, 0x30, 0xdc, 0xc6, 0x49, 0xa9, + 0x7a, 0xf7, 0x5e, 0x19, 0xb5, 0x38, 0x11, 0x8e, + 0x73, 0xa5, 0x12, 0xc2, 0x09, 0xfe, 0x49, 0x43, + 0x46, 0x65, 0x26, 0x13, 0xcf, 0x9a, 0x0e, 0xbd, + 0x80, 0x5d, 0xc4, 0x58, 0x32, 0x25, 0xb2, 0xca, + 0x60, 0x14, 0xdd, 0x26, 0x8a, 0xa4, 0xae, 0x6e, + 0x41, 0x40, 0xa7, 0xb4, 0x2a, 0x0b, 0xa9, 0x8d, + 0xcf, 0x5b, 0x08, 0xb1, 0x30, 0xf7, 0x40, 0x09, + 0x50, 0xf3, 0x24, 0x6b, 0x82, 0xed, 0x45, 0xb4, + 0x06, 0x45, 0x21, 0x29, 0x73, 0xff, 0x00, 0x95, + 0x8a, 0xe0, 0x32, 0x74, 0x43, 0x22, 0x80, 0x00, + 0x00, 0xb8, 0x40, 0x3c, 0x12, 0xc6, 0x18, 0x9a, + 0xe5, 0xa0, 0xae, 0x24, 0xd4, 0x88, 0x52, 0x91, + 0x21, 0x62, 0x01, 0x52, 0x00, 0xa8, 0x95, 0x98, + 0x42, 0x22, 0x15, 0xc0, 0x14, 0x25, 0x02, 0xc0, + 0xab, 0xd0, 0xd8, 0x30, 0x00, 0x2f, 0x20, 0x8c, + 0xc1, 0x12, 0x0a, 0x90, 0xb9, 0x91, 0x76, 0x54, + 0x0a, 0xb4, 0x94, 0xf6, 0x2a, 0xbd, 0x97, 0x6b, + 0xfd, 0x7c, 0xf6, 0xa3, 0xac, 0x6b, 0xc5, 0x03, + 0x75, 0x20, 0x40, 0x07, 0x08, 0x88, 0xa0, 0x40, + 0x18, 0x41, 0xa9, 0x32, 0x12, 0x20, 0x19, 0x44, + 0xca, 0x96, 0x41, 0x4a, 0xe5, 0x39, 0x0c, 0x34, + 0x6e, 0x3a, 0xb0, 0xd6, 0xaf, 0x4b, 0x45, 0xcc, + 0xdf, 0x44, 0x23, 0x29, 0x00, 0x22, 0x06, 0x61, + 0xb9, 0x83, 0x27, 0x22, 0x23, 0xc2, 0x91, 0x0d, + 0xca, 0xa4, 0x2a, 0x78, 0x9d, 0x17, 0x06, 0x95, + 0xd5, 0x0a, 0x6e, 0x74, 0x6d, 0x4f, 0x84, 0x6e, + 0xe2, 0x40, 0x47, 0x8c, 0x8a, 0x4a, 0x92, 0x68, + 0x03, 0x3d, 0x02, 0x22, 0x90, 0xcd, 0x88, 0x18, + 0xd1, 0x83, 0x3c, 0xa9, 0x51, 0xda, 0xa2, 0x22, + 0xa4, 0x91, 0x6e, 0x50, 0x06, 0x2a, 0xeb, 0x90, + 0x8c, 0x61, 0xc8, 0x82, 0xcb, 0x42, 0x89, 0xf9, + 0x8c, 0x72, 0xa4, 0x04, 0x4a, 0x84, 0xb0, 0x42, + 0x03, 0x90, 0x92, 0xcb, 0x42, 0x4c, 0x95, 0x22, + 0x98, 0x44, 0xc0, 0x17, 0xb3, 0x2d, 0xf4, 0xa3, + 0x09, 0xb0, 0x4d, 0xdd, 0x01, 0x4b, 0xde, 0x0e, + 0x9b, 0x8a, 0x1c, 0x76, 0xea, 0x22, 0x06, 0x88, + 0xd1, 0x80, 0x09, 0x18, 0x0d, 0x6d, 0x2b, 0x02, + 0xf8, 0xbc, 0x02, 0x50, 0x29, 0x42, 0x8b, 0xc8, + 0x32, 0x93, 0x42, 0x20, 0x03, 0x38, 0x01, 0x8a, + 0x8c, 0x68, 0x36, 0x49, 0x5b, 0x15, 0xa8, 0x40, + 0x49, 0x11, 0x30, 0x4d, 0xc2, 0x40, 0x06, 0x65, + 0x85, 0x86, 0x54, 0x50, 0xd9, 0xe1, 0xe0, 0x81, + 0x9b, 0xd9, 0x86, 0x1b, 0x20, 0x23, 0x87, 0x10, + 0x22, 0x24, 0x44, 0x16, 0x28, 0xd1, 0x6e, 0x50, + 0x08, 0xd0, 0x12, 0x01, 0x4c, 0xb6, 0xe5, 0x71, + 0x22, 0x2f, 0xb8, 0xa1, 0x18, 0xbb, 0xa0, 0x84, + 0x23, 0x07, 0x24, 0x80, 0x27, 0x0b, 0x85, 0xa0, + 0xc4, 0x51, 0x51, 0xc5, 0x90, 0x0b, 0x04, 0x88, + 0x2e, 0x24, 0x5c, 0xca, 0x37, 0x78, 0xb2, 0xe0, + 0xa4, 0x2f, 0x00, 0xc0, 0x4a, 0x35, 0x23, 0x86, + 0x49, 0x64, 0x8d, 0x06, 0x45, 0x00, 0x86, 0x9d, + 0xf9, 0xcb, 0xd2, 0x2c, 0xf5, 0x23, 0xa7, 0x8b, + 0x75, 0xd7, 0x6f, 0x48, 0xf3, 0xce, 0xfa, 0xf7, + 0xab, 0xf3, 0xd3, 0xdf, 0x3b, 0xef, 0xd2, 0xbd, + 0xf7, 0x9d, 0xb9, 0xe7, 0x0e, 0xf5, 0xc9, 0xac, + 0x74, 0xd5, 0xfc, 0xe9, 0x5d, 0x3f, 0xb5, 0x8d, + 0x6e, 0x7a, 0x65, 0x79, 0x18, 0x9d, 0x0b, 0x56, + 0xbe, 0x27, 0xdf, 0xb1, 0x69, 0xeb, 0xb6, 0xd5, + 0x8f, 0xe6, 0xff, 0x00, 0x37, 0xdb, 0xeb, 0xfc, + 0xe7, 0xc6, 0x6b, 0xe2, 0xb4, 0xdf, 0xdb, 0xf9, + 0xcd, 0x6a, 0xdb, 0x75, 0xf7, 0x9d, 0x32, 0xce, + 0xd3, 0xef, 0x7e, 0x18, 0xd3, 0x6f, 0x8a, 0xb6, + 0xbd, 0xbc, 0xe9, 0xeb, 0xfe, 0x1d, 0xe6, 0x7d, + 0x39, 0x98, 0xae, 0x7a, 0xf4, 0x2f, 0xcd, 0xeb, + 0xd6, 0xfe, 0xd6, 0xfe, 0x96, 0x9f, 0xba, 0xf1, + 0xd7, 0xeb, 0x6c, 0xc6, 0x7a, 0x6b, 0x58, 0x8e, + 0xf6, 0xeb, 0xbb, 0x8c, 0xe7, 0xbf, 0xad, 0xbe, + 0xed, 0x8d, 0xa7, 0x3d, 0x3f, 0x3d, 0x6b, 0xa7, + 0x8f, 0xd7, 0x6a, 0xe6, 0x7b, 0x63, 0x3f, 0x57, + 0xef, 0x35, 0x6e, 0x59, 0xb7, 0xbe, 0xbe, 0xf5, + 0xf1, 0xbc, 0xf8, 0xf3, 0xbc, 0xd7, 0xb6, 0xd8, + 0xf1, 0xf7, 0xf7, 0x15, 0xce, 0x73, 0xdf, 0xfc, + 0xf2, 0xe9, 0x8c, 0xfb, 0x60, 0x9d, 0x3f, 0x34, + 0x6b, 0xe3, 0x3e, 0xbf, 0x78, 0xd9, 0xf4, 0xae, + 0x95, 0xcf, 0xe6, 0xd5, 0x79, 0xc8, 0x69, 0x39, + 0x96, 0x59, 0x9f, 0x43, 0xd2, 0x5b, 0xd7, 0xb5, + 0xb3, 0xfa, 0xe9, 0xaf, 0xa6, 0x74, 0xea, 0x13, + 0xa9, 0xc5, 0xd9, 0xb1, 0xe9, 0x6a, 0xfc, 0xf3, + 0x7e, 0xf6, 0x8f, 0x9a, 0xe7, 0x39, 0xda, 0xb5, + 0xcf, 0x4f, 0xef, 0x0f, 0x7a, 0xe7, 0x8e, 0x45, + 0x4f, 0xf7, 0x4e, 0x7c, 0xe9, 0x5e, 0x73, 0xce, + 0xe7, 0x9f, 0x6b, 0x3f, 0x7d, 0xf3, 0x9f, 0x9f, + 0x4e, 0xd5, 0xa0, 0x3d, 0xaf, 0xaf, 0x7d, 0xeb, + 0xc5, 0xbd, 0x8d, 0x3e, 0x3e, 0xf4, 0x8a, 0xfd, + 0x31, 0xce, 0xdc, 0xd3, 0x4b, 0x6b, 0xce, 0x37, + 0xa3, 0x5d, 0xe6, 0xff, 0x00, 0x1f, 0x5d, 0xa4, + 0xb6, 0x2b, 0x83, 0xce, 0x46, 0xb7, 0xa6, 0x63, + 0xaf, 0xa8, 0x4f, 0xa6, 0x9f, 0xca, 0xbf, 0xe7, + 0x6e, 0x6d, 0x5d, 0x9d, 0xf9, 0x68, 0xc5, 0x3c, + 0xd2, 0x37, 0xbf, 0x8d, 0xb7, 0x9a, 0xef, 0xf8, + 0xcb, 0x6b, 0xcf, 0x4c, 0x17, 0x6d, 0x62, 0xaf, + 0xdf, 0x99, 0xf4, 0xbd, 0xab, 0x3f, 0x8f, 0x9f, + 0xae, 0x35, 0x9f, 0x1a, 0x13, 0x27, 0x8b, 0xdb, + 0x43, 0x12, 0xee, 0x53, 0xa8, 0x30, 0xf3, 0x4e, + 0x6b, 0xb5, 0x58, 0x2d, 0x8f, 0xcd, 0xd7, 0xdf, + 0xb7, 0x6a, 0xb7, 0xaf, 0xe7, 0x2e, 0x9d, 0x6f, + 0xdc, 0x36, 0xaf, 0x7c, 0xed, 0xbe, 0x36, 0xb6, + 0x3b, 0x94, 0x5e, 0x3e, 0xcb, 0xcf, 0x3f, 0x55, + 0x69, 0x8e, 0x98, 0xe9, 0xfe, 0x5f, 0xdf, 0x8d, + 0xb4, 0xe8, 0x8d, 0xfa, 0x13, 0x5a, 0xfa, 0x5f, + 0xeb, 0x4d, 0x2f, 0x6d, 0x26, 0xb4, 0xdc, 0x8e, + 0xf3, 0xea, 0xfd, 0xd7, 0xb7, 0x3e, 0xfe, 0x36, + 0x6b, 0x1b, 0xb2, 0xf8, 0xf3, 0x81, 0x8b, 0x75, + 0x6b, 0xef, 0xa6, 0x3c, 0xf2, 0x74, 0xa9, 0xef, + 0xde, 0x32, 0x71, 0xd3, 0x29, 0x6a, 0xe6, 0x9c, + 0xb6, 0x39, 0x35, 0xbf, 0x2d, 0x7f, 0x5d, 0xfe, + 0xb5, 0xad, 0xe7, 0x7c, 0x19, 0x2f, 0x69, 0x8d, + 0xf3, 0xa5, 0xb3, 0x5b, 0x74, 0xfc, 0x3b, 0xff, + 0x00, 0x7d, 0xea, 0xcf, 0x5c, 0x9f, 0x99, 0xfc, + 0x6f, 0x5e, 0xf5, 0xef, 0xcc, 0xd6, 0x2b, 0x7f, + 0xdf, 0x4e, 0x5b, 0xe6, 0x6b, 0x57, 0x5d, 0xba, + 0x74, 0xf8, 0x79, 0x6d, 0xfb, 0xf2, 0x79, 0x88, + 0xa8, 0xee, 0xe7, 0x3f, 0xcf, 0xd5, 0xed, 0x68, + 0xaf, 0x36, 0xb7, 0x37, 0xe4, 0xde, 0xa7, 0xdb, + 0x7b, 0x17, 0xe7, 0xd5, 0x6f, 0x1f, 0x6d, 0xe7, + 0xeb, 0x69, 0xef, 0x05, 0x7d, 0xf5, 0xb6, 0x37, + 0x8e, 0x9b, 0x3e, 0x2b, 0x69, 0x6f, 0x72, 0xda, + 0xf2, 0x3d, 0x31, 0x3b, 0xeb, 0xe7, 0xd9, 0xb6, + 0x9c, 0xeb, 0x91, 0xb5, 0xfc, 0xf6, 0x2b, 0x5e, + 0x69, 0xae, 0x3f, 0x96, 0xde, 0xb9, 0xeb, 0xce, + 0xf3, 0x3b, 0x67, 0x1d, 0x33, 0x98, 0xc1, 0xdb, + 0x4a, 0x71, 0xe9, 0x63, 0x5b, 0x6b, 0x9e, 0xda, + 0xe9, 0x9a, 0xe5, 0xeb, 0x8e, 0xbc, 0xef, 0xb5, + 0x72, 0xe4, 0xfc, 0x6d, 0xcb, 0xb3, 0x5d, 0xcf, + 0x12, 0xe7, 0xd3, 0xa1, 0xf7, 0xa4, 0xf6, 0x88, + 0xe7, 0xeb, 0xfc, 0xe7, 0x37, 0xe6, 0xb7, 0xae, + 0xaf, 0x5b, 0xf4, 0x26, 0x3b, 0x5b, 0x5f, 0x76, + 0x86, 0x50, 0xde, 0x54, 0xe4, 0xea, 0xdf, 0xc3, + 0xf8, 0x2b, 0x43, 0xaf, 0xb5, 0xd8, 0xda, 0xae, + 0x9e, 0x8b, 0x8f, 0x36, 0xdb, 0xfc, 0x6c, 0x2e, + 0xc2, 0xd1, 0x7f, 0x29, 0xee, 0x9c, 0xeb, 0x4d, + 0x83, 0xb9, 0xd7, 0x58, 0xfd, 0xf7, 0xff, 0x00, + 0x71, 0x1d, 0x54, 0xf6, 0x5f, 0xaa, 0x52, 0x0e, + 0xf3, 0xf3, 0x4f, 0xe0, 0xf2, 0xc7, 0xdf, 0xfa, + 0xd8, 0x5d, 0x85, 0x3c, 0x7f, 0x86, 0x07, 0xa6, + 0x34, 0xbc, 0x7e, 0x2d, 0xeb, 0x5c, 0xe7, 0x22, + 0xa3, 0xdb, 0x9c, 0xd7, 0xcb, 0x33, 0x96, 0xb1, + 0x3e, 0xd4, 0xd8, 0x63, 0x42, 0xde, 0x94, 0xd8, + 0x5d, 0x86, 0x9d, 0x3a, 0xbf, 0x4b, 0xf5, 0xfe, + 0xff, 0x00, 0xff, 0xc4, 0x00, 0x27, 0x10, 0x01, + 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x05, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x11, 0x21, 0x00, 0x31, 0x41, 0x51, 0x61, 0x71, + 0x81, 0x91, 0xa1, 0x10, 0xb1, 0xc1, 0xd1, 0xf0, + 0xe1, 0xf1, 0x20, 0xff, 0xda, 0x00, 0x08, 0x01, + 0x01, 0x00, 0x01, 0x3f, 0x10, 0x9e, 0x9b, 0xe6, + 0x35, 0x2d, 0x1c, 0xf9, 0x5b, 0xdb, 0xf8, 0xcd, + 0xea, 0xe3, 0x56, 0x7d, 0x1e, 0x55, 0x1d, 0xb1, + 0xdd, 0xd9, 0x1e, 0x6c, 0x89, 0x67, 0x82, 0x08, + 0xf1, 0xf9, 0xbe, 0x35, 0x04, 0xea, 0x66, 0x3f, + 0xea, 0x0c, 0x6f, 0xa1, 0x8e, 0xf5, 0x18, 0x3e, + 0xab, 0xe2, 0xcf, 0xee, 0x51, 0xd6, 0xde, 0x53, + 0x0a, 0xd9, 0x0d, 0xa7, 0x3e, 0xaa, 0xc7, 0xb6, + 0xd8, 0x9b, 0xc3, 0xde, 0x9f, 0x4b, 0x11, 0xe1, + 0xeb, 0xd4, 0xc3, 0x11, 0xa1, 0xde, 0x9f, 0x89, + 0x8e, 0xe9, 0xdb, 0x31, 0xc4, 0x37, 0xd1, 0x92, + 0xfe, 0xfd, 0xcf, 0x2e, 0xb7, 0x3f, 0x7d, 0x67, + 0x4d, 0xdf, 0xdf, 0x14, 0x4b, 0xd2, 0xd7, 0x41, + 0x2d, 0x48, 0x90, 0x4d, 0xed, 0x3f, 0x0f, 0x3a, + 0xaf, 0x73, 0x45, 0xe7, 0x2c, 0xf9, 0x46, 0xa5, + 0x96, 0x6b, 0xc4, 0x54, 0xdb, 0x1d, 0xe5, 0xa5, + 0x4d, 0x95, 0x3f, 0xee, 0xfb, 0xe7, 0x91, 0x70, + 0xa0, 0xbf, 0x89, 0x6f, 0xcc, 0xf0, 0xfc, 0xcf, + 0x79, 0x55, 0x6b, 0xfe, 0x37, 0xe0, 0xf9, 0xfa, + 0xdb, 0x76, 0xc0, 0xf8, 0xf0, 0xe8, 0xed, 0xef, + 0x9f, 0xac, 0xee, 0xa9, 0x37, 0xbf, 0xb7, 0x84, + 0xaf, 0x49, 0x6e, 0x7a, 0xa6, 0x7f, 0xe7, 0x3d, + 0xb1, 0xad, 0xc1, 0xc6, 0x45, 0x11, 0xdf, 0xd0, + 0xef, 0x57, 0x3f, 0xbd, 0xdf, 0x38, 0x3f, 0x0d, + 0xcd, 0x77, 0xe3, 0xc7, 0x8e, 0x7a, 0xff, 0x00, + 0xed, 0xbc, 0x0c, 0x5f, 0xc6, 0xb9, 0x74, 0x9b, + 0xf3, 0x38, 0xfc, 0x2d, 0x9e, 0xf6, 0xf8, 0x4a, + 0xfe, 0x39, 0xd6, 0x45, 0xdb, 0x05, 0x6a, 0xb7, + 0xd4, 0xea, 0x39, 0x98, 0xe2, 0x23, 0x9e, 0xf2, + 0x31, 0x2b, 0xe6, 0xfe, 0xfd, 0x77, 0xe7, 0x37, + 0xb8, 0xfe, 0x78, 0xfe, 0xfd, 0xaa, 0x73, 0x79, + 0x0a, 0x93, 0xb9, 0x37, 0xdb, 0xc0, 0x56, 0xfb, + 0xe2, 0x38, 0x68, 0x7b, 0x8e, 0x56, 0xa2, 0xf5, + 0x3e, 0x23, 0xbd, 0x1d, 0xcc, 0xe2, 0x90, 0x91, + 0x3c, 0x4c, 0xad, 0x49, 0x30, 0xaf, 0xba, 0xa3, + 0xf6, 0x0f, 0x6f, 0xcd, 0x48, 0x45, 0x7f, 0x5f, + 0x33, 0x33, 0x9e, 0x7b, 0xeb, 0x98, 0x4a, 0x53, + 0x73, 0xf1, 0xc9, 0x57, 0x92, 0xd4, 0xf8, 0x82, + 0xa2, 0x7e, 0x7d, 0x9d, 0x9c, 0x12, 0xd7, 0xf8, + 0xfc, 0x4c, 0x7d, 0xff, 0x00, 0x13, 0x70, 0x6c, + 0x5a, 0x1d, 0xf1, 0x30, 0x71, 0xfd, 0xf0, 0x16, + 0x70, 0xfd, 0xc3, 0x33, 0xcf, 0xfa, 0x5e, 0x79, + 0xac, 0x22, 0x2c, 0xd1, 0xd4, 0xed, 0xf5, 0x3f, + 0xf4, 0x4e, 0x9d, 0x1e, 0x5d, 0xcc, 0x47, 0xf5, + 0x5c, 0x11, 0xe8, 0xca, 0x8f, 0xbe, 0xa6, 0xb6, + 0xea, 0xb9, 0x8b, 0x8f, 0x04, 0xe0, 0x1c, 0x5d, + 0x7a, 0x36, 0xf3, 0xfd, 0x47, 0xbb, 0xcd, 0x11, + 0x44, 0x1a, 0x8a, 0xbb, 0xeb, 0x5c, 0x8c, 0xf6, + 0xb5, 0x39, 0x75, 0x2d, 0x7b, 0xab, 0xf7, 0xd1, + 0x51, 0xff, 0x00, 0x92, 0xd4, 0x7e, 0xff, 0x00, + 0xb3, 0x7f, 0xee, 0xb5, 0xff, 0x00, 0xca, 0x67, + 0xba, 0xf3, 0x1e, 0xbb, 0x57, 0x91, 0xae, 0xf4, + 0x19, 0xa8, 0x2a, 0x7f, 0x77, 0xce, 0xd8, 0xdf, + 0x50, 0x6a, 0x6b, 0x2b, 0xcc, 0xc3, 0xde, 0xc9, + 0x84, 0xfe, 0xbf, 0xa8, 0x83, 0x9c, 0xd7, 0xad, + 0x59, 0x5e, 0x5f, 0xba, 0x9c, 0x0d, 0xf5, 0xf8, + 0xe8, 0xba, 0xa9, 0x9b, 0xb9, 0xb0, 0xc9, 0x17, + 0x83, 0x88, 0x8b, 0x5a, 0x9a, 0x37, 0xa7, 0x9f, + 0xac, 0x07, 0x97, 0x6c, 0x77, 0x7b, 0x63, 0x7f, + 0x53, 0x5e, 0x4c, 0xd3, 0xcf, 0x87, 0xcd, 0xff, + 0x00, 0xcd, 0x31, 0xc5, 0x39, 0xd3, 0xf1, 0xb6, + 0xbb, 0xdc, 0x76, 0xcf, 0x01, 0xf6, 0x15, 0xd4, + 0x77, 0x64, 0xec, 0x8d, 0xf9, 0x9d, 0xd6, 0xa9, + 0xca, 0xe0, 0x37, 0x1b, 0xdd, 0x6a, 0x34, 0xaa, + 0xbc, 0x1e, 0x4c, 0xac, 0xea, 0x97, 0x8f, 0x0f, + 0x3a, 0x14, 0x99, 0x97, 0x55, 0x06, 0x7f, 0xb2, + 0xf8, 0x74, 0x7e, 0x7c, 0xf7, 0x79, 0x6f, 0xcf, + 0x33, 0x7c, 0xd4, 0x7a, 0x82, 0xaa, 0xb5, 0x79, + 0xab, 0xc4, 0x54, 0xc9, 0xae, 0xc9, 0x76, 0x68, + 0x8e, 0x58, 0x88, 0x32, 0xad, 0xd7, 0x37, 0xfc, + 0x6c, 0x5f, 0x11, 0x1c, 0xe8, 0x9e, 0x87, 0xd7, + 0x9a, 0x61, 0xeb, 0xdc, 0x75, 0x35, 0xac, 0x5b, + 0x85, 0xb2, 0xee, 0x79, 0x8a, 0xeb, 0x7b, 0x98, + 0xa9, 0xd6, 0x05, 0x5e, 0xec, 0x3f, 0xb1, 0x89, + 0x21, 0x98, 0x8b, 0x8f, 0x18, 0xf1, 0x7d, 0x1e, + 0x6b, 0x9f, 0x0f, 0x1e, 0xf5, 0x73, 0x19, 0x71, + 0xeb, 0x4e, 0xae, 0x35, 0x35, 0x4f, 0x2c, 0x73, + 0xe3, 0x24, 0xdf, 0xc6, 0xe7, 0xe7, 0x9a, 0xed, + 0xfe, 0x1f, 0xfe, 0x7b, 0x90, 0x30, 0x68, 0xf8, + 0xd3, 0xd1, 0x31, 0xf3, 0x6c, 0xc6, 0x4c, 0xb1, + 0xaa, 0x45, 0x77, 0xaa, 0xfd, 0xfb, 0x2b, 0x4e, + 0x6a, 0x77, 0xeb, 0x5c, 0x7e, 0x0e, 0x79, 0xae, + 0x88, 0xf7, 0x69, 0x9d, 0xfc, 0x44, 0xcc, 0xfc, + 0x1c, 0xee, 0x36, 0x1a, 0x83, 0xc4, 0x5d, 0xdb, + 0xa9, 0xee, 0x6b, 0x4f, 0x8c, 0xda, 0xf5, 0x47, + 0x7c, 0x4f, 0x5c, 0x90, 0xef, 0x7f, 0x29, 0xe7, + 0xaf, 0x8e, 0x19, 0x99, 0xd7, 0x64, 0x1c, 0x31, + 0xe0, 0xb9, 0x67, 0xbf, 0x5e, 0x6b, 0xba, 0x66, + 0x18, 0xdf, 0x61, 0x8f, 0xeb, 0xd7, 0xc3, 0x33, + 0xe3, 0x61, 0xd6, 0x69, 0x8f, 0xe0, 0x1d, 0x2e, + 0xd3, 0x9f, 0xda, 0x1e, 0x4c, 0xd7, 0xcf, 0xfe, + 0xdd, 0x1d, 0x7d, 0xda, 0xc6, 0xf1, 0xc8, 0x95, + 0xfc, 0xae, 0xcf, 0x14, 0xf5, 0x15, 0xe9, 0x8c, + 0x6d, 0x93, 0xf2, 0xf3, 0x35, 0xbb, 0xbf, 0x47, + 0x3c, 0xe7, 0x92, 0xe2, 0x12, 0x69, 0x66, 0x58, + 0xef, 0xf3, 0xdb, 0x9f, 0x34, 0xe9, 0x20, 0x7d, + 0x78, 0xf7, 0xf0, 0xd4, 0xe3, 0x76, 0xf7, 0x33, + 0x2d, 0xbb, 0x2a, 0x3f, 0x1f, 0x36, 0xb9, 0x51, + 0xe6, 0xbc, 0xc4, 0x6a, 0x23, 0x8d, 0xf7, 0xc9, + 0x39, 0x41, 0x63, 0x33, 0xe7, 0x5c, 0xc3, 0x1f, + 0x27, 0x37, 0xd5, 0x45, 0xd9, 0x36, 0xb3, 0x77, + 0xfe, 0xf7, 0xce, 0x41, 0x5f, 0x9a, 0xdc, 0x5d, + 0x54, 0x9c, 0x70, 0x5b, 0xbc, 0xf6, 0xf4, 0x4c, + 0xf7, 0x10, 0xc7, 0x98, 0xe8, 0xef, 0xac, 0x49, + 0xbd, 0xd0, 0xd0, 0xcf, 0x1b, 0xeb, 0xca, 0x3c, + 0xe0, 0x0f, 0xf7, 0xfb, 0xf1, 0x17, 0xff, 0x00, + 0xc3, 0x35, 0x25, 0x82, 0x08, 0xe3, 0xa3, 0x64, + 0x75, 0x06, 0xd7, 0x6f, 0x19, 0xf7, 0xbb, 0xdb, + 0xec, 0xe4, 0x9f, 0x3c, 0xf5, 0x86, 0xbb, 0x90, + 0xa7, 0x74, 0xcc, 0x4e, 0xab, 0xf1, 0xb2, 0xb5, + 0x84, 0x59, 0xb9, 0xfd, 0xfc, 0x4c, 0x93, 0x1b, + 0x88, 0xe1, 0xd9, 0x18, 0x79, 0xf9, 0x5f, 0x1e, + 0x49, 0xd3, 0xad, 0x6f, 0x89, 0x47, 0x29, 0x6e, + 0xde, 0xa6, 0x1a, 0x79, 0xef, 0xb8, 0x9e, 0x3a, + 0xa1, 0x4e, 0xd2, 0x6c, 0x8f, 0x8e, 0x1d, 0x15, + 0xb7, 0x9f, 0xc9, 0x36, 0x26, 0x7f, 0x7e, 0xaf, + 0x8e, 0x92, 0x45, 0xbe, 0x24, 0x98, 0x39, 0xe3, + 0x5a, 0xe6, 0xc9, 0x96, 0x25, 0xf5, 0x13, 0xbd, + 0xe7, 0xec, 0xc4, 0x7b, 0xdc, 0x74, 0xcf, 0x0f, + 0xe5, 0xac, 0xd5, 0xe6, 0x3e, 0x5f, 0x5f, 0x2d, + 0x54, 0x31, 0x88, 0xc4, 0x30, 0x33, 0x1a, 0x59, + 0xe9, 0x22, 0x4d, 0x6d, 0xd1, 0xf5, 0x93, 0x47, + 0x11, 0x56, 0xd7, 0x10, 0x6c, 0x87, 0xa5, 0x37, + 0xc9, 0x13, 0x90, 0xc7, 0x64, 0x53, 0xdb, 0xc7, + 0xbb, 0xf1, 0x10, 0x6a, 0x72, 0x44, 0x4a, 0xe6, + 0xf7, 0xe8, 0x29, 0xed, 0xdf, 0x4f, 0x59, 0xe6, + 0xeb, 0x5c, 0x4d, 0xcf, 0x7b, 0xfe, 0x79, 0x31, + 0x98, 0xda, 0xfc, 0x57, 0xcc, 0xf8, 0x6a, 0xee, + 0x50, 0xce, 0xc6, 0x88, 0x34, 0x75, 0xc6, 0xe6, + 0x4a, 0x8b, 0x8d, 0xb4, 0x5f, 0x86, 0x8e, 0x35, + 0xbe, 0xba, 0xd0, 0x44, 0x51, 0xda, 0xe7, 0x9f, + 0x7b, 0xd9, 0x5c, 0xc5, 0x77, 0xce, 0xb6, 0x56, + 0x0d, 0x4b, 0x3d, 0xac, 0xfd, 0x2f, 0x96, 0x16, + 0xea, 0xe3, 0x6b, 0x9c, 0xfd, 0xd1, 0x1f, 0x7d, + 0x5d, 0x75, 0x1a, 0xdd, 0x99, 0x40, 0x1e, 0x5a, + 0xf1, 0xa7, 0xcc, 0xcb, 0xc9, 0xd3, 0x83, 0x3f, + 0x1f, 0xef, 0xbe, 0xca, 0x4e, 0xb5, 0xfa, 0xba, + 0xcd, 0x27, 0x3e, 0x2d, 0x30, 0xc6, 0x00, 0xb5, + 0xcc, 0xeb, 0xb0, 0x02, 0x66, 0xe2, 0x55, 0xe0, + 0xdb, 0x0a, 0x50, 0xc5, 0x0e, 0x22, 0x32, 0x81, + 0x37, 0xc0, 0x18, 0x60, 0x04, 0x0c, 0x13, 0xa1, + 0x1b, 0x8c, 0x50, 0x92, 0x01, 0xc9, 0x45, 0x3c, + 0xa1, 0x02, 0x87, 0x0e, 0xfb, 0xae, 0x2c, 0x57, + 0x56, 0xe4, 0xeb, 0x5d, 0x98, 0xa9, 0x21, 0x82, + 0xc1, 0xcd, 0x4a, 0x1b, 0x28, 0x46, 0xa2, 0xb7, + 0x7a, 0x7d, 0x68, 0x7a, 0x4d, 0x8a, 0x27, 0x40, + 0x00, 0x88, 0x50, 0xb7, 0x86, 0x00, 0x9a, 0xa2, + 0xb6, 0xd5, 0x60, 0x23, 0xd0, 0xb0, 0x5e, 0xd0, + 0x91, 0x15, 0x90, 0xae, 0x4e, 0x20, 0x74, 0xe9, + 0x3a, 0x78, 0x9e, 0x50, 0xe1, 0x15, 0x55, 0x13, + 0x86, 0x01, 0xdc, 0x8f, 0xd9, 0x69, 0x0f, 0xd4, + 0x06, 0xba, 0x8f, 0xac, 0xa5, 0x83, 0x20, 0xf7, + 0x3b, 0x44, 0x5d, 0xde, 0x87, 0x2b, 0x3c, 0x04, + 0x4f, 0x06, 0x52, 0x33, 0x0f, 0x12, 0x43, 0x8c, + 0x08, 0x6e, 0x1b, 0xe9, 0xbc, 0xfc, 0x60, 0x31, + 0x84, 0x26, 0x1b, 0x91, 0x11, 0xe8, 0x2f, 0xca, + 0x89, 0x16, 0xf7, 0x57, 0x84, 0xaa, 0xa5, 0x85, + 0x66, 0x40, 0x70, 0x3d, 0x57, 0x05, 0x3c, 0xe1, + 0x2c, 0x38, 0x02, 0x4d, 0x0d, 0xb2, 0x30, 0xa7, + 0x71, 0xd9, 0x08, 0x8c, 0x57, 0x21, 0xf2, 0x9c, + 0xf1, 0xc4, 0x91, 0x9f, 0xda, 0x81, 0x5b, 0x38, + 0x96, 0xb3, 0xf1, 0x6f, 0x96, 0x2c, 0xd6, 0x38, + 0xd3, 0x9a, 0xd0, 0x9b, 0x17, 0x95, 0x85, 0x27, + 0x16, 0xec, 0x04, 0x32, 0xa7, 0x87, 0xe1, 0x06, + 0xf5, 0x39, 0x4c, 0x18, 0x84, 0x3f, 0xb3, 0x85, + 0x80, 0x64, 0x04, 0x12, 0xb9, 0xa0, 0xd5, 0x78, + 0x2e, 0x7f, 0x35, 0x78, 0xc5, 0xe5, 0x3f, 0x20, + 0x69, 0xa2, 0x40, 0x90, 0x20, 0x50, 0x05, 0xf0, + 0x70, 0xdd, 0x4a, 0x64, 0xa8, 0x05, 0x52, 0x1a, + 0xd1, 0x48, 0x8c, 0x5a, 0x25, 0x44, 0x6c, 0x2b, + 0x60, 0xcb, 0x52, 0x12, 0x49, 0x8a, 0x65, 0x18, + 0x56, 0xec, 0x80, 0xf5, 0xd9, 0x31, 0x5b, 0x83, + 0x41, 0x48, 0x86, 0x10, 0x68, 0x45, 0x17, 0xca, + 0xd7, 0x54, 0x1c, 0x6c, 0x2a, 0xb2, 0x85, 0xd6, + 0x97, 0xca, 0x15, 0x44, 0xc4, 0x67, 0xc2, 0xab, + 0x94, 0x8b, 0x30, 0x56, 0x40, 0x0a, 0xcf, 0x12, + 0x81, 0xb8, 0x82, 0xc1, 0x8d, 0x31, 0x75, 0xdb, + 0x76, 0x41, 0xf9, 0x8f, 0x78, 0x22, 0xa7, 0xc0, + 0x48, 0xc3, 0x7b, 0xd9, 0xdb, 0x30, 0xf3, 0x96, + 0x98, 0x19, 0x44, 0x01, 0x80, 0x21, 0xd9, 0x44, + 0x83, 0x65, 0xa6, 0x7e, 0xa6, 0x2f, 0x64, 0xab, + 0x3d, 0x24, 0xea, 0xd6, 0x53, 0x2f, 0xe7, 0xf2, + 0xc1, 0x6d, 0xe0, 0xbc, 0xaa, 0x46, 0x62, 0x59, + 0x44, 0x4e, 0xc6, 0xec, 0xac, 0xdf, 0x70, 0xca, + 0xd8, 0x84, 0xc1, 0x99, 0x83, 0xd6, 0xc1, 0x74, + 0x8b, 0xe5, 0xc4, 0xd9, 0x89, 0xa6, 0xc0, 0x1f, + 0x61, 0x4c, 0xc7, 0xa7, 0x13, 0x80, 0xd6, 0x63, + 0x5e, 0x80, 0x03, 0x46, 0x7f, 0x47, 0x48, 0x93, + 0x48, 0x13, 0xf0, 0x76, 0xc0, 0x1e, 0xf9, 0x1e, + 0xa6, 0x94, 0x06, 0xc8, 0xa3, 0x0a, 0xb0, 0xc6, + 0x41, 0x5a, 0x14, 0x1c, 0x19, 0xda, 0x38, 0x85, + 0x01, 0x32, 0x2d, 0xea, 0x50, 0x24, 0x2c, 0x6a, + 0xb7, 0xf8, 0x2f, 0x65, 0xca, 0x49, 0x9e, 0x0a, + 0x64, 0x04, 0x34, 0x25, 0x54, 0x2f, 0x5a, 0xaf, + 0x43, 0x96, 0xe0, 0xb1, 0x85, 0x11, 0xfb, 0xe5, + 0xbd, 0x1e, 0xff, 0x00, 0x13, 0x1a, 0xd9, 0xe7, + 0x03, 0x25, 0xdc, 0x33, 0x7c, 0x85, 0x18, 0x71, + 0xeb, 0x20, 0x20, 0x89, 0x25, 0x20, 0x12, 0xac, + 0x28, 0xa2, 0x62, 0x29, 0x63, 0x99, 0x98, 0x42, + 0x9a, 0x15, 0x05, 0x94, 0x29, 0xb6, 0x0b, 0x4c, + 0x4c, 0x5a, 0x11, 0x10, 0xa4, 0x50, 0x45, 0x28, + 0x99, 0x28, 0x62, 0xc3, 0x99, 0x0a, 0x93, 0x09, + 0x0b, 0x20, 0x96, 0x80, 0x48, 0x84, 0xe0, 0x2a, + 0x07, 0xc9, 0x80, 0xfc, 0x55, 0x71, 0xb5, 0x94, + 0x20, 0x4c, 0xff, 0x00, 0xc7, 0x97, 0x14, 0x72, + 0xe4, 0x4b, 0x8a, 0xc4, 0x59, 0x03, 0xf7, 0x49, + 0x87, 0x90, 0xc3, 0x03, 0xca, 0xfd, 0xb6, 0xb8, + 0xc8, 0xca, 0xdd, 0x56, 0x88, 0xc8, 0x3d, 0x8b, + 0x7a, 0xb3, 0xd2, 0x75, 0x21, 0x99, 0xc9, 0xc8, + 0x64, 0xf7, 0xfb, 0x8c, 0xec, 0x41, 0x13, 0xb1, + 0xd2, 0x94, 0x92, 0x17, 0x80, 0x19, 0x9f, 0xfe, + 0xba, 0x16, 0x9c, 0xe9, 0x60, 0x64, 0xdb, 0x66, + 0x22, 0x68, 0x00, 0xd2, 0xc1, 0x24, 0x60, 0xe7, + 0x6a, 0x49, 0x4a, 0x4b, 0x36, 0xd8, 0x49, 0xc7, + 0x3d, 0x54, 0xf1, 0x16, 0xab, 0x92, 0xc2, 0x36, + 0x9d, 0x23, 0x45, 0xa3, 0x89, 0x7a, 0x1c, 0x65, + 0x37, 0x52, 0x0b, 0xec, 0x38, 0xc7, 0x78, 0x06, + 0x69, 0xa7, 0xb8, 0x52, 0x93, 0xe1, 0x95, 0x54, + 0x72, 0xab, 0x57, 0x33, 0x5d, 0x83, 0xd2, 0xfb, + 0xe7, 0x01, 0xac, 0xb3, 0xad, 0x64, 0x54, 0xbb, + 0xa1, 0xa0, 0x11, 0xe8, 0x15, 0xd6, 0xaa, 0x20, + 0x9b, 0xcf, 0x3c, 0x28, 0x86, 0x26, 0x10, 0x8e, + 0xc7, 0xba, 0x31, 0xe9, 0x57, 0xe7, 0xdb, 0x4d, + 0x39, 0x84, 0xcc, 0x85, 0x22, 0xf9, 0x2e, 0xe2, + 0x27, 0xc9, 0x9f, 0x9c, 0xe5, 0x70, 0xc4, 0x53, + 0x95, 0x49, 0x67, 0x10, 0x72, 0x5b, 0x9c, 0xb7, + 0xb0, 0xe5, 0xa8, 0x3a, 0x60, 0xea, 0xac, 0x7b, + 0x0e, 0xf0, 0xc6, 0x59, 0xd5, 0x13, 0x25, 0xa0, + 0x31, 0x10, 0xc1, 0x0a, 0xb9, 0xe0, 0x38, 0xb7, + 0x22, 0x05, 0xf2, 0xce, 0x4b, 0x02, 0x3b, 0x29, + 0x24, 0xd9, 0x66, 0x38, 0x51, 0x96, 0x43, 0x12, + 0x2d, 0xa2, 0x89, 0x35, 0x0c, 0x2a, 0x8b, 0x27, + 0x61, 0x3d, 0x07, 0x1e, 0x03, 0xf8, 0x7a, 0xb2, + 0x41, 0xb3, 0x15, 0x8b, 0x92, 0x68, 0x7a, 0xd9, + 0xdf, 0xa5, 0x64, 0x2e, 0x56, 0x90, 0x9b, 0xe8, + 0xfc, 0x54, 0xb1, 0x0d, 0x6e, 0xe0, 0x31, 0x28, + 0x0d, 0x1e, 0x31, 0x30, 0xe6, 0xf9, 0x59, 0x28, + 0x01, 0x4b, 0x29, 0x07, 0xcd, 0x03, 0xa4, 0x48, + 0x33, 0x99, 0x28, 0x0e, 0x09, 0x80, 0xba, 0x01, + 0x8f, 0x91, 0x50, 0x11, 0xe1, 0x98, 0x7d, 0x3a, + 0x70, 0x2a, 0xc8, 0x8a, 0x37, 0xd3, 0x3f, 0x9f, + 0x9e, 0x10, 0xf2, 0x60, 0x6c, 0xfe, 0x86, 0x12, + 0x01, 0x18, 0x82, 0x76, 0x68, 0xe8, 0xea, 0xce, + 0x06, 0x41, 0x70, 0xb5, 0x99, 0x8c, 0x36, 0xa1, + 0x0d, 0xc8, 0x01, 0xa2, 0x10, 0x78, 0x06, 0xc0, + 0x28, 0x58, 0x4d, 0x75, 0x7d, 0xf2, 0xae, 0xe2, + 0x8e, 0xf4, 0xe0, 0x5c, 0x64, 0x21, 0xe2, 0x7c, + 0x4b, 0x01, 0xb1, 0x26, 0x47, 0xd9, 0x02, 0xdc, + 0x0e, 0x96, 0x05, 0x50, 0xe4, 0x10, 0x53, 0x01, + 0x07, 0xd9, 0x4a, 0x06, 0xd8, 0x42, 0x7d, 0xb7, + 0xc5, 0xf8, 0x73, 0x97, 0x2d, 0x19, 0x37, 0x46, + 0x4b, 0xa8, 0xe3, 0x5f, 0xa6, 0x4f, 0xe8, 0x42, + 0x84, 0xaa, 0xfe, 0x59, 0x20, 0xe7, 0x30, 0x4c, + 0xc6, 0x05, 0x4e, 0x82, 0x92, 0x8d, 0xfd, 0x52, + 0xff, 0x00, 0x70, 0xad, 0xf3, 0x6c, 0x1c, 0x97, + 0x27, 0xae, 0xff, 0x00, 0x84, 0x31, 0xf9, 0x8a, + 0x2b, 0x7d, 0xcb, 0x43, 0xe7, 0xe2, 0x40, 0xa5, + 0x84, 0x70, 0x8d, 0x13, 0x84, 0x22, 0x9d, 0x55, + 0x54, 0x13, 0xce, 0x27, 0x00, 0xdc, 0x31, 0x15, + 0xd9, 0xaf, 0x1d, 0x90, 0x60, 0xe4, 0xd6, 0x08, + 0xa7, 0x3d, 0x0d, 0x9b, 0xb3, 0x73, 0xe8, 0x78, + 0xf2, 0x70, 0x95, 0x9b, 0x20, 0x74, 0x30, 0x9d, + 0x87, 0x91, 0xc2, 0xb9, 0x74, 0x52, 0x56, 0xdc, + 0x17, 0xde, 0xf7, 0x4e, 0xc3, 0x1c, 0x62, 0x8f, + 0x45, 0x67, 0xf6, 0xd4, 0xc6, 0xb1, 0xc7, 0xa9, + 0x76, 0x73, 0x33, 0x7d, 0xa3, 0x88, 0xe8, 0xe1, + 0x86, 0x7c, 0x27, 0x3a, 0xd2, 0x2e, 0x5a, 0x16, + 0xf2, 0xca, 0x8a, 0xcf, 0x94, 0xd3, 0xdc, 0xce, + 0x34, 0xee, 0x72, 0x0e, 0x88, 0xeb, 0x59, 0x01, + 0xa5, 0x14, 0xae, 0x22, 0xde, 0x44, 0x5e, 0xe5, + 0x35, 0x0d, 0xaf, 0x32, 0x12, 0xcf, 0x30, 0x6b, + 0x7b, 0x93, 0xc0, 0xcb, 0xfc, 0x1f, 0x81, 0x85, + 0x71, 0xfe, 0x12, 0xd8, 0xdf, 0x04, 0x65, 0x01, + 0x96, 0x69, 0x07, 0xea, 0x16, 0xd9, 0xef, 0x27, + 0x91, 0xf1, 0x04, 0xfa, 0x20, 0x83, 0x92, 0x4d, + 0xc3, 0x10, 0xc7, 0x8e, 0x70, 0xbe, 0x27, 0x8e, + 0xcb, 0x76, 0xe5, 0x63, 0xd2, 0x03, 0x9a, 0x97, + 0xf4, 0xa7, 0xac, 0xf1, 0xf2, 0x89, 0x0c, 0x83, + 0x25, 0x0d, 0x6f, 0x59, 0x62, 0x27, 0x43, 0x4e, + 0x40, 0xa7, 0x33, 0x05, 0xf4, 0x40, 0xf2, 0xf6, + 0x17, 0x8f, 0x44, 0x66, 0xb2, 0x5e, 0xbc, 0x25, + 0x8c, 0xab, 0x13, 0x96, 0x57, 0x21, 0x43, 0x5f, + 0x07, 0x59, 0x84, 0x8d, 0x53, 0x39, 0x34, 0xc8, + 0xea, 0x7d, 0x39, 0x85, 0x8f, 0x7e, 0x81, 0xc1, + 0x9e, 0x76, 0x73, 0x34, 0xce, 0x52, 0x8e, 0x5f, + 0x36, 0x51, 0xea, 0x51, 0x02, 0xc6, 0x38, 0x12, + 0xe0, 0x0c, 0x87, 0x2b, 0x1b, 0xa7, 0x2d, 0x4e, + 0xbf, 0x18, 0x45, 0xa0, 0xee, 0xf7, 0x1f, 0xd0, + 0xbe, 0x28, 0x33, 0xd3, 0x29, 0x0b, 0x04, 0xf8, + 0x4f, 0xda, 0x72, 0xed, 0xab, 0xfd, 0x29, 0xb7, + 0xb2, 0xb9, 0xb1, 0xc9, 0xa6, 0x31, 0x70, 0xe0, + 0xc8, 0xa5, 0x2b, 0xf3, 0x29, 0x81, 0x99, 0x4b, + 0xfc, 0xd0, 0x6d, 0x9b, 0x42, 0xc1, 0x83, 0x69, + 0x05, 0x0d, 0x23, 0x18, 0x61, 0x0c, 0xc7, 0x79, + 0x62, 0x88, 0xb0, 0x17, 0x6a, 0x64, 0x0c, 0xb0, + 0x70, 0x35, 0x96, 0x10, 0x59, 0xd0, 0x37, 0xc2, + 0x9e, 0x33, 0x47, 0x4f, 0x4c, 0x91, 0x37, 0x02, + 0xe4, 0x5f, 0x63, 0x05, 0x71, 0xc5, 0x57, 0x9c, + 0x36, 0xa8, 0x5b, 0xce, 0x06, 0xd4, 0x8a, 0x0d, + 0xe2, 0x44, 0x18, 0xa0, 0xc9, 0xcb, 0xc8, 0x1c, + 0xff, 0x00, 0x1f, 0x8b, 0x9b, 0x84, 0x80, 0xbc, + 0xa1, 0xa6, 0x9a, 0x45, 0xc6, 0x74, 0x92, 0x7f, + 0x15, 0xfd, 0x54, 0x35, 0xd1, 0x61, 0x89, 0x5c, + 0x38, 0xed, 0xca, 0x10, 0x2e, 0x4f, 0x77, 0x5b, + 0x38, 0x97, 0x58, 0x3e, 0x6d, 0x8e, 0x1c, 0x71, + 0xbb, 0xfd, 0x04, 0x9a, 0xe8, 0xd2, 0xbc, 0x56, + 0x0c, 0x4b, 0x07, 0x0f, 0xd4, 0x08, 0x7c, 0x08, + 0xe2, 0xc8, 0xc3, 0xe6, 0xa2, 0x10, 0xb2, 0x08, + 0xb8, 0x80, 0x50, 0x6b, 0x5c, 0xd7, 0x1b, 0x58, + 0x59, 0x6a, 0xd1, 0x42, 0xd9, 0x19, 0xbb, 0x81, + 0x56, 0x61, 0x50, 0x60, 0x51, 0xe2, 0x1a, 0x69, + 0x52, 0x58, 0x42, 0x80, 0xc8, 0x75, 0x24, 0xa2, + 0xa9, 0x16, 0xbe, 0xe7, 0x82, 0xe5, 0x69, 0x1a, + 0x3a, 0xbb, 0xb7, 0x52, 0x99, 0xb5, 0x51, 0xbd, + 0xf3, 0x46, 0xcb, 0xde, 0xa4, 0x47, 0xe4, 0xe6, + 0x0d, 0x89, 0x8d, 0x1d, 0xcf, 0xfa, 0x95, 0xf7, + 0xc9, 0x87, 0xc9, 0xf9, 0xa8, 0xa1, 0x71, 0xf0, + 0x61, 0xe1, 0xc3, 0x69, 0xf3, 0xda, 0xe1, 0xa4, + 0x24, 0x14, 0x31, 0x51, 0x9d, 0x7e, 0xde, 0x5d, + 0x48, 0xa2, 0x29, 0x59, 0x7a, 0xe6, 0xc5, 0x59, + 0x24, 0x3d, 0x78, 0xf9, 0x97, 0x6a, 0xa9, 0xd0, + 0xb0, 0x56, 0xe6, 0xdc, 0x7d, 0x89, 0x15, 0x5a, + 0x76, 0x34, 0xbe, 0xde, 0x64, 0xdd, 0x32, 0xc8, + 0x43, 0x55, 0x03, 0xe4, 0xdf, 0xd2, 0x4a, 0xe3, + 0x03, 0x0d, 0xd8, 0x10, 0x98, 0x65, 0x13, 0xa8, + 0x06, 0x5a, 0x43, 0x2f, 0x80, 0xc9, 0x2c, 0x08, + 0xc6, 0xec, 0x71, 0x3e, 0x5a, 0x32, 0x49, 0xcb, + 0xfa, 0x4e, 0xf5, 0x56, 0x0b, 0xc5, 0x08, 0x96, + 0x29, 0x5b, 0x52, 0x2f, 0x50, 0xd4, 0xc0, 0xee, + 0xb0, 0xcc, 0x56, 0x7a, 0xcb, 0x00, 0x8b, 0x32, + 0x27, 0xdf, 0xb0, 0x60, 0x59, 0xd4, 0xf0, 0xe3, + 0x29, 0x29, 0x22, 0x30, 0x3c, 0x1e, 0xfc, 0x68, + 0x61, 0x56, 0x92, 0xfd, 0x28, 0x4f, 0x31, 0xb4, + 0x09, 0xb9, 0x9e, 0xb9, 0x9b, 0x80, 0xa7, 0xea, + 0x69, 0x0b, 0xa2, 0x4e, 0xd9, 0x05, 0xb9, 0x32, + 0x8a, 0x6c, 0x85, 0x9f, 0x01, 0x7e, 0x85, 0x5e, + 0x57, 0xc1, 0xd3, 0xc3, 0x69, 0x8b, 0x96, 0xab, + 0xaf, 0x1c, 0x85, 0xf8, 0x49, 0x2b, 0x37, 0x10, + 0x7c, 0x74, 0x5f, 0xaf, 0x21, 0x28, 0x22, 0x1c, + 0x6d, 0x19, 0x1b, 0x80, 0x46, 0xc1, 0x58, 0xce, + 0xaa, 0x58, 0x0e, 0x9d, 0xf8, 0x12, 0x01, 0x80, + 0x37, 0xec, 0x47, 0xcc, 0x57, 0xb4, 0x00, 0x83, + 0xb8, 0x14, 0x70, 0x38, 0x83, 0x5b, 0xe0, 0xbb, + 0x32, 0xde, 0x91, 0x1a, 0xd1, 0x8c, 0xb2, 0x90, + 0xf1, 0x05, 0x32, 0x5c, 0x40, 0x89, 0xc2, 0x4a, + 0xcb, 0x07, 0xe4, 0x0f, 0xd3, 0x4e, 0x28, 0xd9, + 0x3b, 0x1e, 0xf6, 0x2b, 0x13, 0xa5, 0x09, 0x2c, + 0x6b, 0x45, 0xff, 0x00, 0x31, 0x20, 0x79, 0xfd, + 0x64, 0x4f, 0xd0, 0xa3, 0xec, 0xed, 0x21, 0x2d, + 0x19, 0x3c, 0x18, 0x27, 0x31, 0xaa, 0xd8, 0x73, + 0xfa, 0xb8, 0x74, 0x73, 0x75, 0x57, 0x43, 0x04, + 0x1c, 0xc1, 0xfe, 0x9a, 0x44, 0xee, 0xc3, 0x5c, + 0xca, 0x53, 0x1c, 0xcc, 0x0f, 0x16, 0x1e, 0x8e, + 0x2d, 0xcf, 0xc3, 0x4d, 0x89, 0xa7, 0x6c, 0xb3, + 0x82, 0x0e, 0xd1, 0xce, 0xe8, 0x5c, 0x96, 0x7a, + 0xdc, 0x0c, 0x65, 0x56, 0x06, 0x4b, 0x81, 0x0f, + 0xbc, 0x73, 0x27, 0x73, 0xa4, 0xf2, 0x89, 0x45, + 0xa8, 0x58, 0xf8, 0xca, 0x02, 0x5d, 0x8c, 0x50, + 0xcc, 0x3e, 0x39, 0x4a, 0xcb, 0x54, 0xe4, 0x3e, + 0x6e, 0x6d, 0xe7, 0xfc, 0xb4, 0x30, 0x63, 0x68, + 0x5c, 0x3b, 0x25, 0x85, 0xa0, 0xa6, 0xd9, 0x8d, + 0x4a, 0x64, 0x78, 0x5d, 0x99, 0x6d, 0xb2, 0xe3, + 0x94, 0x35, 0x66, 0x39, 0xec, 0x39, 0x12, 0x56, + 0x00, 0x68, 0xb8, 0xc8, 0x6b, 0x0b, 0x2a, 0x89, + 0x10, 0xa9, 0xcf, 0xa8, 0x9a, 0xf9, 0x9c, 0x14, + 0x5f, 0xdd, 0x26, 0xc3, 0x0c, 0x98, 0x61, 0x6a, + 0x6b, 0x91, 0x7d, 0x38, 0x88, 0x90, 0x32, 0x2d, + 0x06, 0x45, 0xd2, 0x10, 0xef, 0x89, 0xfd, 0x35, + 0x2d, 0x8a, 0x96, 0xa0, 0x58, 0x38, 0x15, 0x72, + 0x72, 0x11, 0x61, 0x0d, 0x79, 0x77, 0x18, 0xf4, + 0x84, 0x1b, 0x96, 0x82, 0x68, 0xde, 0xd0, 0xf5, + 0x8e, 0x0f, 0x01, 0x3b, 0x95, 0xc8, 0x88, 0x22, + 0x10, 0xf7, 0xc6, 0xcc, 0x38, 0xea, 0xf0, 0x6b, + 0xc2, 0x71, 0x31, 0x43, 0x89, 0x53, 0xe4, 0x44, + 0x69, 0x99, 0x1f, 0xda, 0x46, 0x42, 0x19, 0xb6, + 0x65, 0xe6, 0xd5, 0xec, 0x0b, 0x9d, 0x84, 0xc5, + 0x58, 0x14, 0xdd, 0x55, 0xed, 0x04, 0xe4, 0x6d, + 0x45, 0xe0, 0xbe, 0x85, 0xb5, 0xc7, 0x26, 0x44, + 0x70, 0x92, 0xef, 0x15, 0xce, 0x44, 0x0b, 0x1e, + 0x23, 0xe4, 0x8c, 0x51, 0xd0, 0x0b, 0x32, 0x03, + 0x41, 0x46, 0x0c, 0x29, 0x32, 0xcf, 0x15, 0xea, + 0x8c, 0xf0, 0x68, 0x6b, 0xb3, 0x58, 0x96, 0xbc, + 0x71, 0xb5, 0x76, 0x76, 0x3f, 0x83, 0x37, 0xf9, + 0x57, 0x11, 0x12, 0xb2, 0xff, 0x00, 0xec, 0x61, + 0x2d, 0x5b, 0x7b, 0xac, 0x72, 0x20, 0x3d, 0x1a, + 0x95, 0x87, 0xa5, 0x38, 0x44, 0x2c, 0x19, 0xdc, + 0x01, 0xe8, 0x47, 0xaa, 0x0e, 0xc0, 0xe8, 0xcc, + 0xe0, 0xa2, 0x52, 0xaf, 0xc8, 0xd5, 0x14, 0xc4, + 0x43, 0x1f, 0x85, 0x3b, 0x89, 0xc0, 0xd9, 0x23, + 0x18, 0x97, 0xb8, 0xb2, 0x59, 0x14, 0x1f, 0xe1, + 0x80, 0xaa, 0x72, 0xa0, 0x2f, 0x40, 0xa9, 0xe2, + 0x42, 0xce, 0xc7, 0x2e, 0xb6, 0xba, 0x75, 0x73, + 0x17, 0x20, 0x13, 0x1a, 0x91, 0xc7, 0x58, 0x96, + 0x11, 0x38, 0x61, 0x98, 0xa2, 0x4d, 0xce, 0x6d, + 0x4c, 0x28, 0x58, 0xd8, 0xa0, 0x0b, 0x4b, 0xc6, + 0x2e, 0xde, 0x21, 0xbd, 0x26, 0x1a, 0x27, 0xe0, + 0x00, 0xc5, 0x46, 0x4e, 0x0b, 0x4b, 0x3b, 0x0c, + 0xc3, 0x31, 0xea, 0x34, 0x6a, 0xe2, 0xeb, 0x8e, + 0x4b, 0x15, 0xad, 0xb8, 0x21, 0xa3, 0xc4, 0x7b, + 0x14, 0xd3, 0xfd, 0x04, 0x47, 0xbe, 0x86, 0xce, + 0x05, 0x26, 0x5a, 0x7c, 0x04, 0x75, 0xa8, 0x6a, + 0xa3, 0x88, 0xde, 0x2c, 0xff, 0x00, 0x02, 0x31, + 0x54, 0x2d, 0xc5, 0xf1, 0xc6, 0x1a, 0xf2, 0xc3, + 0x13, 0xab, 0x02, 0xeb, 0x74, 0xa3, 0xe3, 0xad, + 0x8b, 0x05, 0xcd, 0x01, 0xb6, 0x43, 0xc8, 0x8b, + 0xcb, 0x60, 0x1b, 0xfc, 0x3a, 0x25, 0x62, 0xc1, + 0xef, 0x4e, 0x23, 0xf6, 0x45, 0x5b, 0xc0, 0x32, + 0xcd, 0xa3, 0x33, 0xc7, 0x83, 0x8d, 0x9a, 0x50, + 0x79, 0x99, 0x35, 0x8a, 0x8e, 0xee, 0x65, 0x8b, + 0x31, 0x70, 0x86, 0xcf, 0x43, 0x80, 0x19, 0x4e, + 0x73, 0xa7, 0xa0, 0xb5, 0x9a, 0x44, 0x67, 0xc5, + 0x33, 0x1c, 0x10, 0x04, 0x58, 0x67, 0xb8, 0x67, + 0x69, 0x32, 0xc9, 0xd9, 0x0c, 0x94, 0x17, 0x36, + 0x47, 0xa6, 0xf3, 0x00, 0x02, 0xb2, 0xd4, 0xa6, + 0x00, 0xa4, 0xac, 0x82, 0x17, 0xf4, 0x0a, 0x47, + 0x91, 0xa9, 0x91, 0x8c, 0x5b, 0xbe, 0xca, 0x03, + 0x69, 0x4e, 0x3e, 0x3a, 0x9e, 0x8a, 0x3c, 0x48, + 0x71, 0x37, 0xa1, 0xe6, 0x0c, 0xcb, 0x65, 0x91, + 0xac, 0x81, 0x06, 0x66, 0xfb, 0x92, 0x3f, 0xa9, + 0x4e, 0xbf, 0x60, 0xed, 0x56, 0x05, 0x51, 0x67, + 0x00, 0x6c, 0x62, 0x2a, 0x28, 0x33, 0x7c, 0x3a, + 0x60, 0xd8, 0x13, 0xaa, 0x4b, 0x7a, 0xf7, 0x42, + 0x03, 0xb7, 0x28, 0x25, 0x69, 0x98, 0xe3, 0x82, + 0x2e, 0xa2, 0x80, 0x0e, 0x49, 0xd7, 0xbe, 0x55, + 0xcc, 0xb0, 0x0c, 0xda, 0x73, 0x71, 0x5e, 0x48, + 0xab, 0x0d, 0xb0, 0x87, 0x3e, 0xc1, 0xab, 0xd5, + 0x70, 0x64, 0x66, 0x38, 0x45, 0xad, 0x1d, 0x83, + 0x51, 0x7a, 0xc7, 0x7a, 0xd2, 0xc5, 0x9e, 0xef, + 0x8c, 0x32, 0x50, 0xe5, 0x89, 0x51, 0xd1, 0xec, + 0x2a, 0x60, 0xf6, 0x8f, 0x51, 0x3d, 0xd0, 0x5a, + 0xdd, 0xac, 0xaf, 0xcf, 0xf3, 0xb8, 0x3c, 0x80, + 0x66, 0x89, 0xa0, 0x62, 0x2c, 0x6b, 0xf9, 0xac, + 0x3e, 0x1a, 0xf0, 0x62, 0x0e, 0x69, 0x77, 0x79, + 0xf6, 0x75, 0x10, 0x5b, 0x8d, 0x8a, 0xeb, 0x9e, + 0x70, 0x9d, 0xae, 0x67, 0xb4, 0x5e, 0xa2, 0xb1, + 0x5c, 0xe2, 0x2c, 0x36, 0x95, 0xfa, 0x19, 0x18, + 0x88, 0x79, 0xb6, 0xbe, 0x53, 0x2a, 0x32, 0x7d, + 0x8f, 0x85, 0x63, 0x2d, 0x98, 0x6b, 0x10, 0x2d, + 0xf0, 0x99, 0xc9, 0x98, 0x85, 0xc7, 0x05, 0x57, + 0xfc, 0x26, 0x02, 0x5b, 0xa6, 0xf0, 0x04, 0x30, + 0xfd, 0x0c, 0x44, 0x09, 0xc8, 0xfa, 0x92, 0xd1, + 0xcd, 0x78, 0x91, 0x3e, 0x3b, 0x68, 0x6b, 0x7f, + 0x43, 0x03, 0x32, 0xaf, 0xac, 0x7d, 0x7f, 0x47, + 0xc3, 0x34, 0x78, 0xd1, 0x8f, 0x24, 0x80, 0x21, + 0x22, 0xbc, 0x26, 0x75, 0xaf, 0x51, 0x18, 0x96, + 0x6e, 0xda, 0x13, 0x4f, 0x31, 0x92, 0x8b, 0x19, + 0xa4, 0x78, 0x93, 0x21, 0x25, 0x91, 0xf1, 0x6f, + 0xa6, 0x98, 0x19, 0x53, 0x28, 0x5f, 0xc1, 0x84, + 0xba, 0x91, 0x88, 0xe6, 0x7e, 0x20, 0x41, 0x3b, + 0x57, 0xd2, 0x75, 0x1d, 0x23, 0x97, 0x37, 0x33, + 0x58, 0x10, 0x25, 0x24, 0x68, 0x9a, 0x72, 0x63, + 0x2f, 0xcc, 0x7a, 0x8c, 0x1f, 0x15, 0xcf, 0xdf, + 0x39, 0x55, 0x60, 0x48, 0x83, 0xdf, 0xa7, 0x44, + 0xf8, 0x61, 0xe5, 0x23, 0xb0, 0x51, 0x6e, 0x63, + 0x0a, 0xcd, 0x76, 0xb8, 0x2c, 0x0a, 0xef, 0x73, + 0x9d, 0x84, 0xee, 0xc9, 0x7d, 0xbe, 0x36, 0xe6, + 0x8a, 0xcb, 0x32, 0x3c, 0x22, 0x27, 0x5c, 0x1b, + 0x41, 0x7b, 0x63, 0x9c, 0x4c, 0xe1, 0x9d, 0xe2, + 0xa5, 0xa4, 0x8a, 0xba, 0x4f, 0x55, 0x4c, 0x03, + 0xaa, 0x3f, 0x46, 0x13, 0x92, 0x3f, 0xe4, 0x0b, + 0x94, 0xcf, 0x71, 0x98, 0x25, 0x14, 0x66, 0xc8, + 0xce, 0x12, 0x8f, 0xfa, 0x66, 0xc1, 0x42, 0x61, + 0x6a, 0x77, 0x5f, 0x92, 0x74, 0xca, 0x0a, 0x33, + 0xb3, 0xbe, 0x30, 0x35, 0x70, 0x83, 0xb8, 0x03, + 0xb8, 0x00, 0xd9, 0xd7, 0xa6, 0x31, 0x74, 0xea, + 0x0e, 0x34, 0x6a, 0x62, 0x33, 0x84, 0x58, 0x94, + 0x18, 0xcc, 0x41, 0x64, 0xc6, 0x25, 0x57, 0xd9, + 0xa0, 0x08, 0x99, 0x24, 0x45, 0x26, 0x78, 0xcd, + 0xa1, 0xb5, 0x76, 0x3b, 0x1c, 0xa2, 0xdb, 0xcc, + 0x92, 0x06, 0xc2, 0x47, 0x88, 0x69, 0x24, 0x7f, + 0x09, 0xe5, 0x82, 0xfb, 0x55, 0x81, 0x31, 0x2a, + 0x67, 0xdb, 0x8e, 0x45, 0x84, 0xf1, 0x92, 0xd8, + 0x66, 0x26, 0xa2, 0xa9, 0x86, 0x50, 0x4e, 0xc3, + 0xa9, 0x14, 0x0b, 0x05, 0x5c, 0x91, 0x27, 0x29, + 0x05, 0xa5, 0x72, 0x28, 0x84, 0x6b, 0x30, 0x87, + 0x21, 0x12, 0x58, 0x23, 0x2d, 0x83, 0x00, 0x21, + 0xaf, 0xfe, 0x44, 0x7a, 0x33, 0xb1, 0x60, 0x28, + 0xf6, 0x36, 0xae, 0x87, 0x16, 0x38, 0xab, 0x6f, + 0x15, 0x06, 0x08, 0x48, 0xff, 0x00, 0x25, 0x14, + 0x1f, 0x51, 0x0a, 0x88, 0xb8, 0x5c, 0xc1, 0x40, + 0xad, 0x97, 0x4a, 0x66, 0xb0, 0xe5, 0x40, 0x2b, + 0x9f, 0xb0, 0x42, 0xc0, 0x85, 0x93, 0x08, 0xb0, + 0xb0, 0x3c, 0xa1, 0xa3, 0xac, 0x05, 0xf8, 0x03, + 0x01, 0xc5, 0x61, 0x6a, 0x3a, 0x12, 0x83, 0x6e, + 0xf2, 0xf0, 0x3d, 0x0e, 0x40, 0xc1, 0xa0, 0x70, + 0x4f, 0x59, 0x8c, 0x80, 0x4b, 0xf8, 0x88, 0x97, + 0x22, 0x55, 0x8a, 0x51, 0xa3, 0x64, 0xdd, 0x42, + 0x28, 0xbd, 0x35, 0x80, 0x24, 0x20, 0x1a, 0xe6, + 0x39, 0xc3, 0x13, 0xb2, 0x0c, 0x21, 0x16, 0x51, + 0x6b, 0xaa, 0xcd, 0x3a, 0x9e, 0x11, 0xe8, 0xd6, + 0xda, 0x75, 0x1e, 0x3a, 0x32, 0x66, 0x50, 0xfb, + 0x05, 0xf7, 0x3e, 0x65, 0x94, 0xbe, 0x66, 0xdc, + 0xda, 0x84, 0x95, 0x41, 0xe6, 0x82, 0x17, 0xcc, + 0xd3, 0xce, 0xc7, 0x29, 0x51, 0x35, 0x0c, 0x68, + 0x7a, 0xe5, 0xd5, 0xc5, 0x74, 0x1a, 0xc0, 0xdc, + 0x0d, 0xd5, 0x17, 0xec, 0x89, 0xa8, 0xb5, 0xfb, + 0x13, 0x28, 0x11, 0x5a, 0x90, 0x9d, 0xc7, 0xf3, + 0xf8, 0x4b, 0xc8, 0xb9, 0x2f, 0xa2, 0x17, 0xb7, + 0xa9, 0x98, 0x6a, 0x7a, 0xa7, 0x1a, 0x86, 0x0c, + 0xd6, 0xbd, 0x8f, 0xc2, 0x6e, 0x1d, 0x60, 0xd2, + 0x49, 0x2e, 0x85, 0x14, 0x36, 0xa4, 0xf8, 0x85, + 0xfe, 0xb0, 0xd0, 0x10, 0xe6, 0x91, 0x5c, 0x45, + 0x00, 0xfa, 0xe7, 0x57, 0x18, 0x54, 0xe8, 0xf0, + 0x4f, 0xbd, 0x13, 0x16, 0x45, 0xee, 0x6d, 0x70, + 0xae, 0x21, 0x5b, 0x1b, 0x46, 0x06, 0xe7, 0xb8, + 0xe6, 0x0a, 0x39, 0xc2, 0x55, 0x88, 0xc5, 0x7e, + 0x1e, 0xaa, 0x3c, 0xfa, 0x8c, 0x6b, 0xc7, 0x5b, + 0xf4, 0x75, 0x75, 0xcc, 0xf8, 0x29, 0xc8, 0x29, + 0x56, 0x62, 0x64, 0x91, 0xd4, 0xf6, 0x3f, 0xeb, + 0xca, 0x85, 0x11, 0xce, 0xe9, 0x67, 0xe5, 0xaf, + 0xb7, 0x26, 0xce, 0xe6, 0x5a, 0xca, 0xf6, 0xd1, + 0x77, 0x2b, 0xa8, 0xd5, 0x86, 0x4c, 0xdf, 0x3b, + 0x54, 0x5b, 0x9e, 0xac, 0xb9, 0xe4, 0xaa, 0x58, + 0x9c, 0x3d, 0xdd, 0x3e, 0x5f, 0x6a, 0xc3, 0x89, + 0x17, 0x4d, 0xf3, 0x94, 0xa0, 0xe2, 0x2e, 0x02, + 0x2e, 0x38, 0x36, 0x4c, 0xef, 0x9d, 0xad, 0xd1, + 0x4e, 0xd9, 0xfa, 0x7d, 0xb4, 0x73, 0x4d, 0x3d, + 0x46, 0xf2, 0x0e, 0x9f, 0x7c, 0x97, 0x75, 0x16, + 0xfc, 0x18, 0xdf, 0xfc, 0x43, 0xcd, 0x4f, 0x52, + 0xed, 0xe3, 0x73, 0x8b, 0xb5, 0x6b, 0x7e, 0x03, + 0x4a, 0x73, 0xe6, 0xef, 0x9b, 0x30, 0xba, 0x9e, + 0x6e, 0x39, 0xdf, 0x44, 0xf3, 0xb8, 0xdf, 0xce, + 0x10, 0x00, 0x38, 0x04, 0x76, 0x21, 0x57, 0xe2, + 0x48, 0x99, 0xc2, 0xdc, 0xdf, 0xd9, 0xe6, 0x36, + 0x6b, 0xe6, 0xa6, 0x1d, 0xe5, 0xd5, 0x6e, 0xf5, + 0xb8, 0xbf, 0xdb, 0xc4, 0x77, 0xa3, 0x24, 0xff, + 0x00, 0xb2, 0xbe, 0x5d, 0xbc, 0x7c, 0x4f, 0xe4, + 0x66, 0xf8, 0xe5, 0xdf, 0x1d, 0xf2, 0x4d, 0x71, + 0xe3, 0x1a, 0x8f, 0x86, 0x19, 0xd7, 0x57, 0xdd, + 0xea, 0x79, 0x75, 0x39, 0x2a, 0x6b, 0xf1, 0xbf, + 0xdf, 0x64, 0x43, 0xbf, 0xac, 0x28, 0x3b, 0xf1, + 0xae, 0xa2, 0xe2, 0x9e, 0xac, 0xa8, 0x25, 0xc6, + 0xad, 0xd3, 0xde, 0xc6, 0xcd, 0xca, 0xee, 0x14, + 0x8f, 0x33, 0x8d, 0xab, 0xe3, 0x7b, 0x9d, 0x3c, + 0xfc, 0xb0, 0xe9, 0x97, 0xce, 0x01, 0x7b, 0xff, + 0x00, 0xa6, 0xf8, 0xb7, 0xea, 0xb8, 0xc6, 0xd6, + 0xb8, 0x6b, 0xf3, 0x7e, 0x78, 0x36, 0x9c, 0x6b, + 0x1f, 0xa2, 0x5f, 0xb6, 0x2a, 0x8f, 0x2f, 0xe2, + 0x46, 0xf1, 0xea, 0x27, 0xaf, 0x8d, 0xea, 0x58, + 0x9a, 0x85, 0x60, 0xea, 0x23, 0x39, 0xb7, 0x3d, + 0xc1, 0xae, 0x37, 0xad, 0xc7, 0x37, 0x73, 0x95, + 0x8d, 0x34, 0x5f, 0x2f, 0xc3, 0x3c, 0x6e, 0xa2, + 0xac, 0xc7, 0x67, 0x6f, 0x72, 0x72, 0x44, 0xc3, + 0xc3, 0x70, 0x8f, 0x30, 0xe3, 0xd7, 0x3c, 0xc1, + 0xdf, 0x04, 0xbc, 0x29, 0x2f, 0x5d, 0x5d, 0x3b, + 0xd1, 0xfb, 0x30, 0xfc, 0xd6, 0xd4, 0xec, 0xd0, + 0x64, 0xae, 0x79, 0xd5, 0x43, 0xdf, 0x1f, 0x3e, + 0x5d, 0xe4, 0xe6, 0x67, 0xb2, 0x4e, 0x27, 0xf3, + 0x1e, 0x62, 0xce, 0x67, 0x13, 0xc5, 0xd3, 0x1d, + 0xb5, 0x6c, 0x9b, 0x6c, 0xf7, 0xc3, 0x8f, 0x51, + 0xdc, 0x3b, 0xd4, 0xea, 0x7f, 0x83, 0xf9, 0x71, + 0xdd, 0xb7, 0x44, 0x7b, 0x48, 0x9f, 0x8b, 0xf3, + 0x10, 0xbc, 0x15, 0xa3, 0x8e, 0x37, 0x13, 0x6d, + 0xf8, 0xae, 0xa6, 0x9e, 0x33, 0xac, 0x71, 0x47, + 0x33, 0xf2, 0x5d, 0xf1, 0xf4, 0x5e, 0x21, 0x8d, + 0x96, 0x04, 0xff, 0x00, 0x73, 0xbf, 0x9a, 0xde, + 0xe7, 0x0f, 0x6e, 0x8f, 0xfd, 0xfe, 0xa6, 0xeb, + 0xd4, 0x18, 0x5f, 0xad, 0x4c, 0xea, 0x3b, 0x44, + 0xd5, 0xfc, 0x3e, 0x44, 0x56, 0xbb, 0x9e, 0xc4, + 0xea, 0x66, 0xee, 0xe0, 0x9f, 0x50, 0x6f, 0x25, + 0x8e, 0x7a, 0x9d, 0x79, 0xa6, 0x4a, 0x8a, 0xe3, + 0x77, 0x38, 0xec, 0x2d, 0xf7, 0x43, 0xab, 0xb8, + 0x99, 0xee, 0x26, 0x36, 0x5d, 0x55, 0x5e, 0xe7, + 0x5b, 0xa8, 0xf1, 0xe6, 0xf1, 0x84, 0x77, 0xe6, + 0x3f, 0xbd, 0x9b, 0x99, 0x3d, 0xc1, 0x93, 0xaf, + 0x9f, 0xae, 0xbe, 0x5e, 0xe2, 0x58, 0xf0, 0xe3, + 0xd4, 0xf5, 0x5e, 0x78, 0x37, 0x07, 0x7c, 0xf5, + 0xde, 0x3f, 0xe1, 0x97, 0x7a, 0xdc, 0x4c, 0x27, + 0x87, 0x97, 0xa2, 0x9b, 0x25, 0xec, 0x05, 0xe2, + 0x52, 0x6f, 0xe2, 0x76, 0x6b, 0x8b, 0xc9, 0xc7, + 0x6d, 0xcd, 0xb1, 0x1f, 0x7a, 0x83, 0x7b, 0x8b, + 0x9b, 0x62, 0x74, 0x94, 0x77, 0x3b, 0xf3, 0x72, + 0x15, 0xe2, 0xfc, 0xe7, 0x9b, 0x1f, 0x2f, 0x70, + 0x1e, 0x75, 0x11, 0xd1, 0x39, 0xc6, 0x5e, 0x99, + 0x6f, 0x71, 0x3b, 0xbf, 0xa7, 0x53, 0x10, 0xb4, + 0xd4, 0x8e, 0x66, 0x37, 0x7d, 0x33, 0xa9, 0xe0, + 0x9e, 0xd4, 0xd6, 0x36, 0x8e, 0xb5, 0x54, 0x43, + 0xdd, 0x6f, 0xd6, 0xac, 0xc8, 0xd2, 0xc3, 0xa8, + 0x4f, 0xbf, 0xa9, 0xf3, 0xe6, 0xc0, 0x9e, 0x31, + 0x01, 0x07, 0x1b, 0xd4, 0xfc, 0xcf, 0xed, 0x3a, + 0xce, 0x32, 0x7f, 0x4a, 0xc5, 0x49, 0xb2, 0x35, + 0x74, 0x1b, 0xa7, 0x27, 0x35, 0x5a, 0x83, 0x99, + 0xa8, 0xfc, 0x37, 0xef, 0x9c, 0xd6, 0xdd, 0x8c, + 0xf7, 0xae, 0x4f, 0x2e, 0xaa, 0xbb, 0x27, 0x28, + 0x49, 0xfd, 0x73, 0x15, 0x24, 0x6b, 0x92, 0xfb, + 0xa3, 0x1c, 0x57, 0xae, 0x08, 0xe1, 0x7a, 0x84, + 0xf9, 0x97, 0xce, 0xa1, 0x5f, 0x3c, 0x40, 0xdd, + 0xf8, 0x38, 0x86, 0x3b, 0x9b, 0xd4, 0xe8, 0x3b, + 0x78, 0xf2, 0x25, 0xfc, 0x11, 0x34, 0x7a, 0xc9, + 0xcd, 0x37, 0xfb, 0xbc, 0x7e, 0x68, 0x87, 0x8f, + 0x68, 0x59, 0x2c, 0x5b, 0x7a, 0xdc, 0x73, 0xbd, + 0x53, 0xc5, 0x72, 0xce, 0x4f, 0x98, 0xe9, 0xfb, + 0x52, 0x24, 0xa9, 0x9e, 0x7c, 0x9a, 0x6a, 0x12, + 0x3e, 0x23, 0xdf, 0x17, 0x36, 0x37, 0x36, 0xab, + 0xc7, 0x19, 0xd3, 0x56, 0xfc, 0xc4, 0xff, 0x00, + 0x7c, 0xf5, 0x51, 0x9f, 0x1a, 0xff, 0x00, 0xd5, + 0xea, 0x9e, 0xa4, 0x3f, 0x6d, 0x55, 0xc7, 0x13, + 0x20, 0x47, 0xaf, 0xda, 0x4f, 0xbc, 0xba, 0x6f, + 0xf9, 0xb5, 0x9b, 0x81, 0xf0, 0xfe, 0xc6, 0x16, + 0xa5, 0x9d, 0x45, 0x7b, 0xb7, 0x55, 0xcc, 0xf8, + 0x6a, 0x37, 0xd5, 0x82, 0x2b, 0x5e, 0x9b, 0x9e, + 0x67, 0xd5, 0xf7, 0xa6, 0x3a, 0x50, 0xbe, 0x8a, + 0x67, 0x65, 0xba, 0x8e, 0x1f, 0x3b, 0x9c, 0xfa, + 0x35, 0x55, 0x5a, 0x8b, 0xfb, 0xf1, 0x57, 0xc6, + 0x3a, 0x9b, 0x9d, 0xc1, 0xb2, 0xbd, 0x7d, 0xf8, + 0xeb, 0x24, 0x57, 0xd4, 0xc7, 0x31, 0x0b, 0xcb, + 0xa5, 0xe1, 0x68, 0x3c, 0x18, 0x8b, 0x77, 0xf1, + 0xeb, 0x7c, 0xfa, 0x99, 0xf5, 0x39, 0x19, 0xaf, + 0xf3, 0xb6, 0xa3, 0xde, 0x8d, 0xee, 0x70, 0xd4, + 0xd4, 0xf8, 0xbb, 0x78, 0xe0, 0x77, 0x3d, 0x2d, + 0xc5, 0x46, 0x46, 0x92, 0x3a, 0x97, 0x50, 0xf5, + 0x49, 0x11, 0xff, 0x00, 0x6a, 0x33, 0x87, 0xdf, + 0x1f, 0x4f, 0xd7, 0xc5, 0x22, 0xf1, 0x1f, 0xae, + 0xdf, 0x11, 0xf9, 0x91, 0x8e, 0x1a, 0x9e, 0x33, + 0xce, 0xc5, 0xb8, 0x7a, 0xdc, 0x4d, 0xbb, 0xb6, + 0xef, 0x9e, 0x85, 0xec, 0x3d, 0xf3, 0x1c, 0xbc, + 0x73, 0xa8, 0x8d, 0x79, 0xcd, 0xbc, 0xdd, 0x91, + 0x3a, 0x3f, 0x1b, 0xfa, 0xa3, 0xa9, 0x8f, 0xc9, + 0x3b, 0xa1, 0x8f, 0xf7, 0x4d, 0x6f, 0x84, 0xd7, + 0x31, 0xfb, 0x78, 0x3e, 0x01, 0xfd, 0x92, 0xf2, + 0xe1, 0x1a, 0xee, 0xdd, 0xec, 0xfc, 0x1e, 0xb5, + 0x17, 0x40, 0x4b, 0xd3, 0x1c, 0x5d, 0x85, 0xe0, + 0xcf, 0x3a, 0x0f, 0xb4, 0x1f, 0xb9, 0x5f, 0xdb, + 0x00, 0xfc, 0xef, 0xc4, 0x6f, 0xe5, 0x5f, 0x7a, + 0xce, 0x04, 0x52, 0x13, 0xf1, 0x7f, 0xbe, 0xfb, + 0xe7, 0x2b, 0x1e, 0x52, 0x68, 0xee, 0x3a, 0xeb, + 0x09, 0x23, 0xc8, 0x7d, 0x8c, 0xfc, 0xd7, 0xe5, + 0xce, 0x3e, 0x6a, 0xe2, 0x49, 0x8f, 0x8f, 0x19, + 0xf9, 0x89, 0xfd, 0xff, 0x00, 0x04, 0x6b, 0xcb, + 0xf0, 0x26, 0x3e, 0xf8, 0xd8, 0xfa, 0xca, 0xc5, + 0x69, 0x6f, 0xc4, 0xfa, 0xce, 0x3e, 0xa7, 0xef, + 0xf1, 0x52, 0xea, 0xfc, 0xe5, 0xfa, 0x21, 0xff, + 0x00, 0x75, 0xf8, 0xf5, 0x87, 0x5e, 0x65, 0xfa, + 0xeb, 0x93, 0x46, 0x2b, 0x3e, 0x3f, 0x74, 0xe3, + 0xfc, 0xf3, 0x38, 0x28, 0xdf, 0x1c, 0xbd, 0x2c, + 0x7a, 0x60, 0xaf, 0xac, 0x37, 0x17, 0xc1, 0xfe, + 0xf2, 0x45, 0x7b, 0x71, 0xdc, 0x41, 0xde, 0xbe, + 0x3f, 0x9c, 0xa8, 0x3d, 0xfa, 0xed, 0xff, 0x00, + 0x78, 0xe3, 0x14, 0x13, 0x05, 0x3f, 0xef, 0x9b, + 0xfc, 0x1d, 0x64, 0x64, 0x81, 0x0b, 0x1e, 0x69, + 0x6f, 0xdd, 0x13, 0x91, 0x81, 0xe4, 0x7f, 0x3f, + 0x5c, 0xb8, 0x4a, 0x9b, 0xb0, 0x7f, 0xdf, 0x3c, + 0x55, 0x15, 0x84, 0x6d, 0x72, 0x0b, 0xf5, 0x31, + 0xea, 0x57, 0x2e, 0xa7, 0x41, 0x16, 0xff, 0x00, + 0x71, 0x7b, 0x73, 0x83, 0xe1, 0xf5, 0xbe, 0xbf, + 0xdd, 0xb7, 0x8e, 0x10, 0xfc, 0xb7, 0xff, 0x00, + 0x38, 0xe7, 0x3f, 0xff, 0xd9, +}; + +static const uint8_t data_favicon_ico[] = +{ + /* /favicon.ico */ + 0x2f, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, + 0x2e, 0x69, 0x63, 0x6f, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x10, 0x10, + 0x10, 0x00, 0x01, 0x00, 0x04, 0x00, 0x28, 0x01, + 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x10, 0x10, + 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x68, 0x05, + 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, 0x28, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x80, + 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x80, 0x80, + 0x80, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, + 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xff, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x97, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x79, 0x97, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x99, 0x97, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x79, 0x99, 0x99, 0x70, 0x00, 0x00, 0x07, + 0x77, 0x99, 0x97, 0x79, 0x97, 0x00, 0x00, 0x09, + 0x99, 0x99, 0x7f, 0xf7, 0x99, 0x70, 0x00, 0x79, + 0x99, 0x99, 0xf9, 0x97, 0x99, 0x97, 0x07, 0x99, + 0x99, 0x99, 0xf9, 0x9f, 0x99, 0x99, 0x79, 0x99, + 0x99, 0x99, 0xf9, 0x9f, 0x99, 0x99, 0x99, 0x99, + 0x99, 0x97, 0xf9, 0x9f, 0x79, 0x97, 0x00, 0x00, + 0x99, 0x97, 0xf7, 0x9f, 0x79, 0x90, 0x00, 0x00, + 0x99, 0x99, 0x7f, 0xf7, 0x99, 0x70, 0x00, 0x00, + 0x99, 0x99, 0x9f, 0x99, 0x00, 0x00, 0x00, 0x00, + 0x99, 0x99, 0x90, 0x99, 0x00, 0x00, 0x00, 0x00, + 0x99, 0x99, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x99, 0x99, 0x00, 0x00, 0x00, 0x00, 0xff, 0x8f, + 0xfc, 0xfd, 0xff, 0x0f, 0xfc, 0xfd, 0xfe, 0x0f, + 0xfc, 0xfd, 0xfc, 0x07, 0xfc, 0xfd, 0xe0, 0x03, + 0xfc, 0xfd, 0xe0, 0x01, 0xfc, 0xfd, 0xc0, 0x00, + 0xfc, 0xfd, 0x80, 0x00, 0xfc, 0xfd, 0x00, 0x00, + 0xfc, 0xfd, 0x00, 0x00, 0xfc, 0xfd, 0xf0, 0x01, + 0xfc, 0xfd, 0xf0, 0x01, 0xfc, 0xfd, 0xf0, 0x0f, + 0xfc, 0xfd, 0xf0, 0x4f, 0xfc, 0xfd, 0xf0, 0x7f, + 0xfc, 0xfd, 0xf0, 0xff, 0xfc, 0xfd, 0x28, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x80, + 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0xc0, 0xdc, + 0xc0, 0x00, 0xf0, 0xca, 0xa6, 0x00, 0xd4, 0xf0, + 0xff, 0x00, 0xb1, 0xe2, 0xff, 0x00, 0x8e, 0xd4, + 0xff, 0x00, 0x6b, 0xc6, 0xff, 0x00, 0x48, 0xb8, + 0xff, 0x00, 0x25, 0xaa, 0xff, 0x00, 0x00, 0xaa, + 0xff, 0x00, 0x00, 0x92, 0xdc, 0x00, 0x00, 0x7a, + 0xb9, 0x00, 0x00, 0x62, 0x96, 0x00, 0x00, 0x4a, + 0x73, 0x00, 0x00, 0x32, 0x50, 0x00, 0xd4, 0xe3, + 0xff, 0x00, 0xb1, 0xc7, 0xff, 0x00, 0x8e, 0xab, + 0xff, 0x00, 0x6b, 0x8f, 0xff, 0x00, 0x48, 0x73, + 0xff, 0x00, 0x25, 0x57, 0xff, 0x00, 0x00, 0x55, + 0xff, 0x00, 0x00, 0x49, 0xdc, 0x00, 0x00, 0x3d, + 0xb9, 0x00, 0x00, 0x31, 0x96, 0x00, 0x00, 0x25, + 0x73, 0x00, 0x00, 0x19, 0x50, 0x00, 0xd4, 0xd4, + 0xff, 0x00, 0xb1, 0xb1, 0xff, 0x00, 0x8e, 0x8e, + 0xff, 0x00, 0x6b, 0x6b, 0xff, 0x00, 0x48, 0x48, + 0xff, 0x00, 0x25, 0x25, 0xff, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x50, 0x00, 0xe3, 0xd4, + 0xff, 0x00, 0xc7, 0xb1, 0xff, 0x00, 0xab, 0x8e, + 0xff, 0x00, 0x8f, 0x6b, 0xff, 0x00, 0x73, 0x48, + 0xff, 0x00, 0x57, 0x25, 0xff, 0x00, 0x55, 0x00, + 0xff, 0x00, 0x49, 0x00, 0xdc, 0x00, 0x3d, 0x00, + 0xb9, 0x00, 0x31, 0x00, 0x96, 0x00, 0x25, 0x00, + 0x73, 0x00, 0x19, 0x00, 0x50, 0x00, 0xf0, 0xd4, + 0xff, 0x00, 0xe2, 0xb1, 0xff, 0x00, 0xd4, 0x8e, + 0xff, 0x00, 0xc6, 0x6b, 0xff, 0x00, 0xb8, 0x48, + 0xff, 0x00, 0xaa, 0x25, 0xff, 0x00, 0xaa, 0x00, + 0xff, 0x00, 0x92, 0x00, 0xdc, 0x00, 0x7a, 0x00, + 0xb9, 0x00, 0x62, 0x00, 0x96, 0x00, 0x4a, 0x00, + 0x73, 0x00, 0x32, 0x00, 0x50, 0x00, 0xff, 0xd4, + 0xff, 0x00, 0xff, 0xb1, 0xff, 0x00, 0xff, 0x8e, + 0xff, 0x00, 0xff, 0x6b, 0xff, 0x00, 0xff, 0x48, + 0xff, 0x00, 0xff, 0x25, 0xff, 0x00, 0xff, 0x00, + 0xff, 0x00, 0xdc, 0x00, 0xdc, 0x00, 0xb9, 0x00, + 0xb9, 0x00, 0x96, 0x00, 0x96, 0x00, 0x73, 0x00, + 0x73, 0x00, 0x50, 0x00, 0x50, 0x00, 0xff, 0xd4, + 0xf0, 0x00, 0xff, 0xb1, 0xe2, 0x00, 0xff, 0x8e, + 0xd4, 0x00, 0xff, 0x6b, 0xc6, 0x00, 0xff, 0x48, + 0xb8, 0x00, 0xff, 0x25, 0xaa, 0x00, 0xff, 0x00, + 0xaa, 0x00, 0xdc, 0x00, 0x92, 0x00, 0xb9, 0x00, + 0x7a, 0x00, 0x96, 0x00, 0x62, 0x00, 0x73, 0x00, + 0x4a, 0x00, 0x50, 0x00, 0x32, 0x00, 0xff, 0xd4, + 0xe3, 0x00, 0xff, 0xb1, 0xc7, 0x00, 0xff, 0x8e, + 0xab, 0x00, 0xff, 0x6b, 0x8f, 0x00, 0xff, 0x48, + 0x73, 0x00, 0xff, 0x25, 0x57, 0x00, 0xff, 0x00, + 0x55, 0x00, 0xdc, 0x00, 0x49, 0x00, 0xb9, 0x00, + 0x3d, 0x00, 0x96, 0x00, 0x31, 0x00, 0x73, 0x00, + 0x25, 0x00, 0x50, 0x00, 0x19, 0x00, 0xff, 0xd4, + 0xd4, 0x00, 0xff, 0xb1, 0xb1, 0x00, 0xff, 0x8e, + 0x8e, 0x00, 0xff, 0x6b, 0x6b, 0x00, 0xff, 0x48, + 0x48, 0x00, 0xff, 0x25, 0x25, 0x00, 0xff, 0x00, + 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xb9, 0x00, + 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x73, 0x00, + 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xff, 0xe3, + 0xd4, 0x00, 0xff, 0xc7, 0xb1, 0x00, 0xff, 0xab, + 0x8e, 0x00, 0xff, 0x8f, 0x6b, 0x00, 0xff, 0x73, + 0x48, 0x00, 0xff, 0x57, 0x25, 0x00, 0xff, 0x55, + 0x00, 0x00, 0xdc, 0x49, 0x00, 0x00, 0xb9, 0x3d, + 0x00, 0x00, 0x96, 0x31, 0x00, 0x00, 0x73, 0x25, + 0x00, 0x00, 0x50, 0x19, 0x00, 0x00, 0xff, 0xf0, + 0xd4, 0x00, 0xff, 0xe2, 0xb1, 0x00, 0xff, 0xd4, + 0x8e, 0x00, 0xff, 0xc6, 0x6b, 0x00, 0xff, 0xb8, + 0x48, 0x00, 0xff, 0xaa, 0x25, 0x00, 0xff, 0xaa, + 0x00, 0x00, 0xdc, 0x92, 0x00, 0x00, 0xb9, 0x7a, + 0x00, 0x00, 0x96, 0x62, 0x00, 0x00, 0x73, 0x4a, + 0x00, 0x00, 0x50, 0x32, 0x00, 0x00, 0xff, 0xff, + 0xd4, 0x00, 0xff, 0xff, 0xb1, 0x00, 0xff, 0xff, + 0x8e, 0x00, 0xff, 0xff, 0x6b, 0x00, 0xff, 0xff, + 0x48, 0x00, 0xff, 0xff, 0x25, 0x00, 0xff, 0xff, + 0x00, 0x00, 0xdc, 0xdc, 0x00, 0x00, 0xb9, 0xb9, + 0x00, 0x00, 0x96, 0x96, 0x00, 0x00, 0x73, 0x73, + 0x00, 0x00, 0x50, 0x50, 0x00, 0x00, 0xf0, 0xff, + 0xd4, 0x00, 0xe2, 0xff, 0xb1, 0x00, 0xd4, 0xff, + 0x8e, 0x00, 0xc6, 0xff, 0x6b, 0x00, 0xb8, 0xff, + 0x48, 0x00, 0xaa, 0xff, 0x25, 0x00, 0xaa, 0xff, + 0x00, 0x00, 0x92, 0xdc, 0x00, 0x00, 0x7a, 0xb9, + 0x00, 0x00, 0x62, 0x96, 0x00, 0x00, 0x4a, 0x73, + 0x00, 0x00, 0x32, 0x50, 0x00, 0x00, 0xe3, 0xff, + 0xd4, 0x00, 0xc7, 0xff, 0xb1, 0x00, 0xab, 0xff, + 0x8e, 0x00, 0x8f, 0xff, 0x6b, 0x00, 0x73, 0xff, + 0x48, 0x00, 0x57, 0xff, 0x25, 0x00, 0x55, 0xff, + 0x00, 0x00, 0x49, 0xdc, 0x00, 0x00, 0x3d, 0xb9, + 0x00, 0x00, 0x31, 0x96, 0x00, 0x00, 0x25, 0x73, + 0x00, 0x00, 0x19, 0x50, 0x00, 0x00, 0xd4, 0xff, + 0xd4, 0x00, 0xb1, 0xff, 0xb1, 0x00, 0x8e, 0xff, + 0x8e, 0x00, 0x6b, 0xff, 0x6b, 0x00, 0x48, 0xff, + 0x48, 0x00, 0x25, 0xff, 0x25, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xb9, + 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x73, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0xd4, 0xff, + 0xe3, 0x00, 0xb1, 0xff, 0xc7, 0x00, 0x8e, 0xff, + 0xab, 0x00, 0x6b, 0xff, 0x8f, 0x00, 0x48, 0xff, + 0x73, 0x00, 0x25, 0xff, 0x57, 0x00, 0x00, 0xff, + 0x55, 0x00, 0x00, 0xdc, 0x49, 0x00, 0x00, 0xb9, + 0x3d, 0x00, 0x00, 0x96, 0x31, 0x00, 0x00, 0x73, + 0x25, 0x00, 0x00, 0x50, 0x19, 0x00, 0xd4, 0xff, + 0xf0, 0x00, 0xb1, 0xff, 0xe2, 0x00, 0x8e, 0xff, + 0xd4, 0x00, 0x6b, 0xff, 0xc6, 0x00, 0x48, 0xff, + 0xb8, 0x00, 0x25, 0xff, 0xaa, 0x00, 0x00, 0xff, + 0xaa, 0x00, 0x00, 0xdc, 0x92, 0x00, 0x00, 0xb9, + 0x7a, 0x00, 0x00, 0x96, 0x62, 0x00, 0x00, 0x73, + 0x4a, 0x00, 0x00, 0x50, 0x32, 0x00, 0xd4, 0xff, + 0xff, 0x00, 0xb1, 0xff, 0xff, 0x00, 0x8e, 0xff, + 0xff, 0x00, 0x6b, 0xff, 0xff, 0x00, 0x48, 0xff, + 0xff, 0x00, 0x25, 0xff, 0xff, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0xdc, 0xdc, 0x00, 0x00, 0xb9, + 0xb9, 0x00, 0x00, 0x96, 0x96, 0x00, 0x00, 0x73, + 0x73, 0x00, 0x00, 0x50, 0x50, 0x00, 0xf2, 0xf2, + 0xf2, 0x00, 0xe6, 0xe6, 0xe6, 0x00, 0xda, 0xda, + 0xda, 0x00, 0xce, 0xce, 0xce, 0x00, 0xc2, 0xc2, + 0xc2, 0x00, 0xb6, 0xb6, 0xb6, 0x00, 0xaa, 0xaa, + 0xaa, 0x00, 0x9e, 0x9e, 0x9e, 0x00, 0x92, 0x92, + 0x92, 0x00, 0x86, 0x86, 0x86, 0x00, 0x7a, 0x7a, + 0x7a, 0x00, 0x6e, 0x6e, 0x6e, 0x00, 0x62, 0x62, + 0x62, 0x00, 0x56, 0x56, 0x56, 0x00, 0x4a, 0x4a, + 0x4a, 0x00, 0x3e, 0x3e, 0x3e, 0x00, 0x32, 0x32, + 0x32, 0x00, 0x26, 0x26, 0x26, 0x00, 0x1a, 0x1a, + 0x1a, 0x00, 0x0e, 0x0e, 0x0e, 0x00, 0xf0, 0xfb, + 0xff, 0x00, 0xa4, 0xa0, 0xa0, 0x00, 0x80, 0x80, + 0x80, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, + 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xff, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, + 0x28, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x28, + 0x28, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x28, 0x28, + 0x28, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x28, 0x28, + 0x28, 0x28, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x25, 0x25, 0x25, 0x25, 0x28, 0x28, 0xf6, + 0xf6, 0x23, 0x28, 0x25, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x28, 0x28, 0x28, 0x28, 0x23, 0x23, + 0x23, 0xf6, 0x23, 0x28, 0x25, 0x00, 0x00, 0x00, + 0x25, 0x28, 0x28, 0x28, 0x28, 0x28, 0x23, 0x28, + 0x28, 0xf6, 0x28, 0x28, 0x28, 0x25, 0x00, 0x25, + 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x23, 0x28, + 0x28, 0xf6, 0x28, 0x28, 0x28, 0x28, 0x25, 0x28, + 0x28, 0x28, 0x28, 0x28, 0x28, 0xf6, 0xf6, 0x28, + 0x28, 0xf6, 0xf6, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x28, 0x28, 0x28, 0x28, 0x28, 0xf6, 0xf6, 0x28, + 0x28, 0x23, 0xf6, 0x28, 0x28, 0x25, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x23, 0x23, + 0x28, 0x23, 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x28, 0x23, + 0x23, 0x23, 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x28, 0x23, + 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x25, 0x00, + 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x8f, + 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xfe, 0x0f, + 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xe0, 0x03, + 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0xf0, 0x0f, + 0x00, 0x00, 0xf0, 0x4f, 0x00, 0x00, 0xf0, 0xff, + 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, +}; + +static const uint8_t data_index_htm[] = +{ + /* /index.htm */ + 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, + 0x74, 0x6d, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0d, + 0x0a, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, + 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, + 0x2d, 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, + 0x78, 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, + 0x49, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, + 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0d, + 0x0a, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0d, + 0x0a, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x6d, 0x65, 0x74, 0x61, 0x20, 0x68, 0x74, 0x74, + 0x70, 0x2d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, + 0x22, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x2d, 0x74, 0x79, 0x70, 0x65, 0x22, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, + 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, + 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, + 0x74, 0x3d, 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, + 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x45, 0x4b, + 0x2d, 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, + 0x34, 0x58, 0x4c, 0x20, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4b, + 0x69, 0x74, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, + 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, + 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x73, 0x73, 0x22, + 0x2f, 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, + 0x6c, 0x3d, 0x22, 0x73, 0x68, 0x6f, 0x72, 0x74, + 0x63, 0x75, 0x74, 0x20, 0x69, 0x63, 0x6f, 0x6e, + 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, + 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x66, 0x61, 0x76, 0x69, + 0x63, 0x6f, 0x6e, 0x2e, 0x69, 0x63, 0x6f, 0x22, + 0x2f, 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, + 0x73, 0x72, 0x63, 0x3d, 0x22, 0x6a, 0x61, 0x76, + 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, + 0x6a, 0x73, 0x22, 0x20, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x4a, 0x61, + 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x31, 0x2e, 0x32, 0x22, 0x20, 0x63, 0x68, 0x61, + 0x72, 0x73, 0x65, 0x74, 0x3d, 0x22, 0x75, 0x74, + 0x66, 0x2d, 0x38, 0x22, 0x3e, 0x3c, 0x2f, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x20, 0x73, 0x72, 0x63, 0x3d, + 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x5f, 0x6c, 0x6f, 0x61, 0x64, + 0x2e, 0x6a, 0x73, 0x22, 0x20, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x4a, + 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x31, 0x2e, 0x32, 0x22, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x22, 0x75, + 0x74, 0x66, 0x2d, 0x38, 0x22, 0x3e, 0x3c, 0x2f, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0d, + 0x0a, 0x20, 0x20, 0x3c, 0x2f, 0x68, 0x65, 0x61, + 0x64, 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x3c, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, + 0x64, 0x3d, 0x22, 0x68, 0x65, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x22, 0x3e, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3d, 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, 0x3e, + 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x64, 0x3e, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x69, + 0x64, 0x3d, 0x22, 0x68, 0x65, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x22, 0x20, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, + 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, + 0x6d, 0x22, 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6d, 0x67, 0x20, + 0x73, 0x72, 0x63, 0x3d, 0x22, 0x74, 0x69, 0x2e, + 0x6a, 0x70, 0x67, 0x22, 0x20, 0x61, 0x6c, 0x74, + 0x3d, 0x22, 0x54, 0x65, 0x78, 0x61, 0x73, 0x20, + 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x22, 0x3e, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x61, 0x3e, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, + 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, + 0x30, 0x30, 0x25, 0x22, 0x3e, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, + 0x69, 0x64, 0x3d, 0x22, 0x68, 0x65, 0x61, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x31, 0x22, 0x3e, + 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x54, 0x69, 0x76, 0x61, 0x26, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x3b, 0x20, 0x43, 0x20, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x20, 0x54, 0x4d, 0x34, + 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, 0x4c, 0x20, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x4b, 0x69, 0x74, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, + 0x76, 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x68, 0x32, 0x22, 0x3e, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x4b, 0x2d, + 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, + 0x58, 0x4c, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, 0x3e, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x61, 0x20, + 0x69, 0x64, 0x3d, 0x22, 0x68, 0x65, 0x61, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x76, 0x61, + 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x69, 0x76, + 0x61, 0x22, 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6d, 0x67, 0x20, + 0x73, 0x72, 0x63, 0x3d, 0x22, 0x74, 0x6d, 0x34, + 0x63, 0x2e, 0x6a, 0x70, 0x67, 0x22, 0x20, 0x61, + 0x6c, 0x74, 0x3d, 0x22, 0x54, 0x4d, 0x34, 0x43, + 0x22, 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x61, 0x3e, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x74, 0x72, 0x3e, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x72, 0x3e, + 0x3c, 0x68, 0x72, 0x3e, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, + 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, + 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6d, + 0x65, 0x6e, 0x75, 0x22, 0x3e, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x75, 0x6c, + 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, + 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x74, + 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x61, + 0x62, 0x6f, 0x75, 0x74, 0x22, 0x3e, 0x41, 0x62, + 0x6f, 0x75, 0x74, 0x20, 0x54, 0x49, 0x3c, 0x2f, + 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6f, 0x76, + 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x68, + 0x74, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, + 0x22, 0x3e, 0x54, 0x69, 0x76, 0x61, 0x26, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x3b, 0x20, 0x43, 0x20, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x4f, + 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, + 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x68, 0x74, 0x6d, + 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x54, 0x4d, 0x34, + 0x43, 0x31, 0x32, 0x39, 0x34, 0x4e, 0x43, 0x50, + 0x44, 0x54, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x44, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, + 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, + 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x6f, 0x6f, + 0x6c, 0x2f, 0x65, 0x6b, 0x2d, 0x74, 0x6d, 0x34, + 0x63, 0x31, 0x32, 0x39, 0x34, 0x78, 0x6c, 0x22, + 0x3e, 0x45, 0x4b, 0x2d, 0x54, 0x4d, 0x34, 0x43, + 0x31, 0x32, 0x39, 0x34, 0x58, 0x4c, 0x20, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x20, 0x50, + 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, + 0x2f, 0x6c, 0x69, 0x3e, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6c, + 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, + 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x74, 0x69, 0x76, 0x61, 0x2d, 0x63, 0x22, 0x3e, + 0x54, 0x69, 0x76, 0x61, 0x26, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x3b, 0x20, 0x54, 0x4d, 0x34, 0x43, + 0x31, 0x32, 0x39, 0x78, 0x20, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x20, 0x50, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x20, 0x50, 0x61, 0x67, 0x65, + 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, + 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x69, 0x6f, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x2e, + 0x68, 0x74, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x69, 0x6f, 0x5f, 0x68, 0x74, 0x74, 0x70, + 0x22, 0x3e, 0x49, 0x2f, 0x4f, 0x20, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x44, 0x65, + 0x6d, 0x6f, 0x20, 0x31, 0x3c, 0x62, 0x72, 0x3e, + 0x28, 0x48, 0x54, 0x54, 0x50, 0x20, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x29, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, + 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x69, + 0x6f, 0x5f, 0x63, 0x67, 0x69, 0x2e, 0x73, 0x73, + 0x69, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x69, + 0x6f, 0x5f, 0x63, 0x67, 0x69, 0x22, 0x3e, 0x49, + 0x2f, 0x4f, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x20, 0x44, 0x65, 0x6d, 0x6f, 0x20, + 0x32, 0x3c, 0x62, 0x72, 0x3e, 0x28, 0x53, 0x53, + 0x49, 0x2f, 0x43, 0x47, 0x49, 0x29, 0x3c, 0x2f, + 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x75, 0x6c, 0x3e, 0x0d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6d, 0x67, + 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x65, 0x6b, + 0x2d, 0x74, 0x6d, 0x34, 0x63, 0x31, 0x32, 0x39, + 0x34, 0x78, 0x6c, 0x2e, 0x6a, 0x70, 0x67, 0x22, + 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x45, 0x4b, + 0x2d, 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, + 0x34, 0x58, 0x4c, 0x22, 0x3e, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, + 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, + 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, + 0x69, 0x64, 0x3d, 0x22, 0x66, 0x6f, 0x6f, 0x74, + 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x72, + 0x3e, 0x3c, 0x68, 0x72, 0x3e, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x26, + 0x63, 0x6f, 0x70, 0x79, 0x3b, 0x20, 0x32, 0x30, + 0x31, 0x33, 0x2d, 0x32, 0x30, 0x31, 0x34, 0x20, + 0x54, 0x65, 0x78, 0x61, 0x73, 0x20, 0x49, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x49, 0x6e, 0x63, 0x6f, 0x72, 0x70, + 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x20, + 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x2e, 0x0d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, + 0x3e, 0x0d, 0x0a, 0x20, 0x20, 0x3c, 0x2f, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x0d, 0x0a, 0x3c, 0x2f, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0d, 0x0a, +}; + +static const uint8_t data_io_cgi_ssi[] = +{ + /* /io_cgi.ssi */ + 0x2f, 0x69, 0x6f, 0x5f, 0x63, 0x67, 0x69, 0x2e, + 0x73, 0x73, 0x69, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0a, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x20, + 0x54, 0x65, 0x78, 0x61, 0x73, 0x20, 0x49, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x49, 0x6e, 0x63, 0x6f, 0x72, 0x70, + 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x20, + 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, + 0x0a, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, + 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, + 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, + 0x75, 0x69, 0x76, 0x3d, 0x22, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3b, 0x63, 0x68, + 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x55, 0x54, + 0x46, 0x2d, 0x38, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x3e, 0x49, 0x2f, 0x4f, 0x20, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x44, 0x65, 0x6d, + 0x6f, 0x20, 0x32, 0x3c, 0x2f, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, + 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, + 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x73, 0x73, 0x22, + 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, + 0x6c, 0x3d, 0x22, 0x73, 0x68, 0x6f, 0x72, 0x74, + 0x63, 0x75, 0x74, 0x20, 0x69, 0x63, 0x6f, 0x6e, + 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, + 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x66, 0x61, 0x76, 0x69, + 0x63, 0x6f, 0x6e, 0x2e, 0x69, 0x63, 0x6f, 0x22, + 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, + 0x73, 0x72, 0x63, 0x3d, 0x22, 0x6a, 0x61, 0x76, + 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, + 0x6a, 0x73, 0x22, 0x20, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x4a, 0x61, + 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x31, 0x2e, 0x32, 0x22, 0x20, 0x63, 0x68, 0x61, + 0x72, 0x73, 0x65, 0x74, 0x3d, 0x22, 0x75, 0x74, + 0x66, 0x2d, 0x38, 0x22, 0x3e, 0x3c, 0x2f, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, + 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x0a, + 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, + 0x21, 0x2d, 0x2d, 0x23, 0x46, 0x6f, 0x72, 0x6d, + 0x56, 0x61, 0x72, 0x73, 0x2d, 0x2d, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, + 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3d, 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x61, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x74, 0x69, 0x22, 0x20, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, + 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x22, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, 0x63, + 0x3d, 0x22, 0x74, 0x69, 0x2e, 0x6a, 0x70, 0x67, + 0x22, 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x54, + 0x65, 0x78, 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, + 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x61, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, + 0x64, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, + 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, + 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x31, 0x22, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x54, 0x69, 0x76, 0x61, 0x26, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x3b, 0x20, 0x43, 0x20, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x20, 0x54, 0x4d, 0x34, + 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, 0x4c, 0x20, + 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x4b, 0x69, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, + 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x68, 0x32, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x45, 0x4b, 0x2d, 0x54, 0x4d, + 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, 0x4c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, + 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, + 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x61, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, + 0x76, 0x61, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, + 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, + 0x69, 0x76, 0x61, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6d, 0x67, + 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x74, 0x6d, + 0x34, 0x63, 0x2e, 0x6a, 0x70, 0x67, 0x22, 0x20, + 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x54, 0x4d, 0x34, + 0x43, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, + 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x68, 0x72, 0x3e, 0x3c, 0x68, 0x72, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, + 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x75, + 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, + 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x74, + 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x61, + 0x62, 0x6f, 0x75, 0x74, 0x22, 0x3e, 0x41, 0x62, + 0x6f, 0x75, 0x74, 0x20, 0x54, 0x49, 0x3c, 0x2f, + 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6f, 0x76, 0x65, + 0x72, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x68, 0x74, + 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6f, + 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x22, + 0x3e, 0x54, 0x69, 0x76, 0x61, 0x26, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x3b, 0x20, 0x43, 0x20, 0x53, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x4f, 0x76, + 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x3c, 0x2f, + 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2e, 0x68, 0x74, 0x6d, 0x22, 0x20, + 0x69, 0x64, 0x3d, 0x22, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x22, 0x3e, 0x54, 0x4d, 0x34, 0x43, 0x31, + 0x32, 0x39, 0x34, 0x4e, 0x43, 0x50, 0x44, 0x54, + 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x44, + 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x3c, 0x2f, + 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, + 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x2f, 0x65, + 0x6b, 0x2d, 0x74, 0x6d, 0x34, 0x63, 0x31, 0x32, + 0x39, 0x34, 0x78, 0x6c, 0x22, 0x3e, 0x45, 0x4b, + 0x2d, 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, + 0x34, 0x58, 0x4c, 0x20, 0x50, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x20, 0x50, 0x61, 0x67, 0x65, + 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, + 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, + 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x69, 0x76, 0x61, + 0x2d, 0x63, 0x22, 0x3e, 0x54, 0x69, 0x76, 0x61, + 0x26, 0x74, 0x72, 0x61, 0x64, 0x65, 0x3b, 0x20, + 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x78, + 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x20, + 0x50, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e, + 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6c, + 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x69, 0x6f, 0x5f, 0x68, 0x74, + 0x74, 0x70, 0x2e, 0x68, 0x74, 0x6d, 0x22, 0x20, + 0x69, 0x64, 0x3d, 0x22, 0x69, 0x6f, 0x5f, 0x68, + 0x74, 0x74, 0x70, 0x22, 0x3e, 0x49, 0x2f, 0x4f, + 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x20, 0x44, 0x65, 0x6d, 0x6f, 0x20, 0x31, 0x3c, + 0x62, 0x72, 0x3e, 0x28, 0x48, 0x54, 0x54, 0x50, + 0x20, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x29, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, + 0x6c, 0x69, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x69, 0x6f, 0x5f, 0x63, 0x67, 0x69, 0x2e, + 0x73, 0x73, 0x69, 0x22, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x69, 0x6f, 0x5f, 0x63, 0x67, 0x69, 0x22, + 0x3e, 0x49, 0x2f, 0x4f, 0x20, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x44, 0x65, 0x6d, + 0x6f, 0x20, 0x32, 0x3c, 0x62, 0x72, 0x3e, 0x28, + 0x53, 0x53, 0x49, 0x2f, 0x43, 0x47, 0x49, 0x29, + 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x75, 0x6c, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6d, 0x67, + 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x65, 0x6b, + 0x2d, 0x74, 0x6d, 0x34, 0x63, 0x31, 0x32, 0x39, + 0x34, 0x78, 0x6c, 0x2e, 0x6a, 0x70, 0x67, 0x22, + 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x45, 0x4b, + 0x2d, 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, + 0x34, 0x58, 0x4c, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, + 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3d, 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x72, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x64, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65, 0x66, + 0x74, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x37, + 0x35, 0x25, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x68, 0x32, 0x20, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x22, 0x3e, 0x49, 0x2f, 0x4f, + 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x20, 0x44, 0x65, 0x6d, 0x6f, 0x20, 0x32, 0x3c, + 0x2f, 0x68, 0x32, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x68, 0x72, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, + 0x22, 0x32, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3d, 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x75, + 0x6c, 0x3e, 0x3c, 0x2f, 0x75, 0x6c, 0x3e, 0x54, + 0x68, 0x69, 0x73, 0x20, 0x64, 0x65, 0x6d, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, + 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x6f, + 0x66, 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, + 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x74, 0x69, 0x6d, 0x65, 0x2c, 0x20, 0x77, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x20, 0x53, 0x69, 0x64, 0x65, + 0x20, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x20, 0x74, 0x61, 0x67, 0x73, 0x20, 0x74, 0x6f, + 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x67, + 0x65, 0x20, 0x61, 0x73, 0x20, 0x69, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, + 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x54, 0x69, 0x76, 0x61, 0x20, 0x43, 0x20, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x45, + 0x4b, 0x20, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x20, 0x48, 0x54, 0x4d, + 0x4c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x6f, 0x20, + 0x61, 0x20, 0x43, 0x47, 0x49, 0x20, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x2e, 0x20, + 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, + 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6c, + 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x77, 0x68, + 0x65, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x64, 0x20, 0x62, 0x75, + 0x74, 0x20, 0x69, 0x74, 0x20, 0x26, 0x6e, 0x62, + 0x73, 0x70, 0x3b, 0x69, 0x6e, 0x76, 0x6f, 0x6c, + 0x76, 0x65, 0x73, 0x20, 0x6c, 0x65, 0x73, 0x73, + 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, + 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x74, 0x6f, + 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x61, 0x73, + 0x6b, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x62, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x31, + 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, + 0x22, 0x38, 0x30, 0x25, 0x22, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3d, 0x22, 0x67, + 0x65, 0x74, 0x22, 0x20, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x3d, 0x22, 0x69, 0x6f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x63, 0x67, + 0x69, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x22, 0x69, 0x6f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x3d, 0x22, 0x63, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3d, 0x22, 0x32, 0x22, 0x20, 0x63, 0x65, + 0x6c, 0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, + 0x67, 0x3d, 0x22, 0x32, 0x22, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, 0x30, 0x30, + 0x25, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, + 0x22, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x62, 0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x3c, 0x2f, 0x62, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, + 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x20, + 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, + 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x62, + 0x3e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x3c, 0x2f, 0x62, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x22, 0x20, 0x76, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, + 0x70, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x62, 0x3e, 0x4e, + 0x65, 0x77, 0x3c, 0x2f, 0x62, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x22, + 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, + 0x22, 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x4c, 0x45, + 0x44, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3c, + 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x64, 0x20, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3d, 0x22, 0x63, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x21, 0x2d, 0x2d, 0x23, 0x4c, + 0x45, 0x44, 0x74, 0x78, 0x74, 0x2d, 0x2d, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, + 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x74, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3d, 0x22, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x22, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x4c, 0x45, 0x44, + 0x4f, 0x6e, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3d, 0x22, 0x31, 0x22, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x62, 0x6f, 0x78, 0x22, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x22, + 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, + 0x22, 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x41, 0x6e, + 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x3c, 0x2f, 0x74, + 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x74, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3d, 0x22, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x22, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x21, 0x2d, 0x2d, 0x23, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x2d, 0x2d, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x20, 0x76, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x74, + 0x6f, 0x70, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3d, 0x22, 0x31, 0x30, 0x22, 0x20, 0x6d, + 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3d, 0x22, 0x33, 0x22, 0x20, 0x73, 0x69, 0x7a, + 0x65, 0x3d, 0x22, 0x34, 0x22, 0x20, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x72, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, + 0x20, 0x63, 0x6f, 0x6c, 0x73, 0x70, 0x61, 0x6e, + 0x3d, 0x22, 0x33, 0x22, 0x20, 0x72, 0x6f, 0x77, + 0x73, 0x70, 0x61, 0x6e, 0x3d, 0x22, 0x31, 0x22, + 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, + 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x20, + 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, + 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x22, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x22, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x20, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x22, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x75, 0x6c, 0x3e, 0x3c, 0x2f, 0x75, + 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x62, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x22, 0x20, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x31, 0x22, + 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x32, 0x22, + 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x32, 0x22, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, + 0x38, 0x30, 0x25, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x74, 0x64, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x22, 0x20, + 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, + 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x66, 0x6f, 0x72, 0x6d, 0x20, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3d, 0x22, + 0x67, 0x65, 0x74, 0x22, 0x20, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x73, 0x65, 0x74, + 0x74, 0x78, 0x74, 0x2e, 0x63, 0x67, 0x69, 0x22, + 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x73, + 0x65, 0x74, 0x74, 0x78, 0x74, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, + 0x22, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x32, + 0x22, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, + 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x32, + 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, + 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x72, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, 0x20, + 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, + 0x74, 0x6f, 0x70, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x62, + 0x3e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x55, 0x41, 0x52, 0x54, + 0x3a, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x2f, 0x62, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x6d, 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3d, 0x22, 0x34, 0x30, 0x22, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x34, 0x30, + 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x44, 0x69, 0x73, 0x70, 0x54, 0x65, 0x78, 0x74, + 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, + 0x53, 0x65, 0x6e, 0x64, 0x20, 0x54, 0x65, 0x78, + 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x22, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x72, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x66, 0x6f, + 0x72, 0x6d, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x64, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x62, + 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, + 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, + 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x66, 0x6f, 0x6f, 0x74, 0x69, 0x6e, 0x67, + 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x68, 0x72, 0x3e, 0x3c, 0x68, 0x72, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0x26, 0x63, 0x6f, 0x70, 0x79, 0x3b, + 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, 0x32, 0x30, + 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, 0x61, 0x73, + 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, 0x6e, 0x63, + 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, + 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x2f, 0x62, 0x6f, + 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, + 0x6d, 0x6c, 0x3e, 0x0a, +}; + +static const uint8_t data_io_http_htm[] = +{ + /* /io_http.htm */ + 0x2f, 0x69, 0x6f, 0x5f, 0x68, 0x74, 0x74, 0x70, + 0x2e, 0x68, 0x74, 0x6d, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0a, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x20, + 0x54, 0x65, 0x78, 0x61, 0x73, 0x20, 0x49, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x20, 0x49, 0x6e, 0x63, 0x6f, 0x72, 0x70, + 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x20, + 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x73, 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, + 0x0a, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x65, + 0x61, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x65, 0x74, + 0x61, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, + 0x71, 0x75, 0x69, 0x76, 0x3d, 0x22, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x74, 0x65, 0x78, + 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3b, 0x63, + 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x55, + 0x54, 0x46, 0x2d, 0x38, 0x22, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x49, 0x2f, + 0x4f, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x20, 0x44, 0x65, 0x6d, 0x6f, 0x20, 0x31, + 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, + 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x73, 0x73, + 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, + 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, + 0x20, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x69, 0x63, 0x6f, + 0x6e, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, + 0x2e, 0x69, 0x63, 0x6f, 0x22, 0x20, 0x2f, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, + 0x30, 0x30, 0x25, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65, + 0x66, 0x74, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, + 0x37, 0x35, 0x25, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x68, 0x32, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x49, 0x2f, + 0x4f, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x20, 0x44, 0x65, 0x6d, 0x6f, 0x20, 0x31, + 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x68, 0x72, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x3d, 0x22, 0x32, 0x22, 0x20, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3d, 0x22, 0x31, 0x30, 0x30, 0x25, + 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x70, 0x3e, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 0x68, + 0x6f, 0x77, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x65, + 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, + 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x20, 0x65, + 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x4a, + 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x6f, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x65, + 0x62, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x69, + 0x74, 0x73, 0x65, 0x6c, 0x66, 0x2e, 0x20, 0x55, + 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x2c, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x20, 0x73, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x20, 0x74, 0x68, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x74, 0x69, + 0x72, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2e, + 0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x3e, + 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x55, + 0x53, 0x45, 0x52, 0x20, 0x4c, 0x45, 0x44, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x4c, 0x45, 0x44, 0x3c, + 0x2f, 0x70, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x22, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, + 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x20, 0x4c, + 0x45, 0x44, 0x22, 0x20, 0x6f, 0x6e, 0x63, 0x6c, + 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x74, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x64, 0x28, + 0x29, 0x3b, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x64, 0x3e, 0x55, 0x53, 0x45, + 0x52, 0x20, 0x4c, 0x45, 0x44, 0x3a, 0x3c, 0x2f, + 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, + 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x65, + 0x64, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x20, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x2d, + 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x3e, + 0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x3e, + 0x53, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6e, 0x69, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4c, + 0x45, 0x44, 0x2e, 0x20, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x61, + 0x73, 0x20, 0x61, 0x20, 0x70, 0x65, 0x72, 0x63, + 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x3c, + 0x2f, 0x70, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x64, 0x3e, 0x43, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x20, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x3a, 0x3c, 0x2f, 0x74, 0x64, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, + 0x64, 0x3d, 0x22, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x22, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, + 0x22, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, + 0x3e, 0x2d, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, + 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x72, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x64, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x69, 0x64, + 0x3d, 0x22, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x74, 0x22, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3d, 0x22, 0x53, 0x65, 0x74, 0x20, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x22, 0x20, 0x6f, + 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, 0x74, + 0x28, 0x29, 0x3b, 0x22, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x64, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x6d, 0x61, + 0x78, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3d, + 0x22, 0x33, 0x22, 0x20, 0x73, 0x69, 0x7a, 0x65, + 0x3d, 0x22, 0x34, 0x22, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x22, 0x3e, 0x25, 0x3c, 0x2f, 0x74, + 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x72, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x70, 0x3e, 0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x0a, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, + 0x3e, 0x0a, +}; + +static const uint8_t data_javascript_js[] = +{ + /* /javascript.js */ + 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x2e, 0x6a, 0x73, 0x00, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6f, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x28, 0x27, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x27, + 0x29, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, + 0x41, 0x62, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x27, 0x6f, 0x76, 0x65, 0x72, + 0x76, 0x69, 0x65, 0x77, 0x27, 0x29, 0x2e, 0x6f, + 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, + 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x76, 0x65, + 0x72, 0x76, 0x69, 0x65, 0x77, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x27, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x27, 0x29, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, + 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x6c, 0x6f, + 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, + 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x79, 0x49, 0x64, 0x28, 0x27, 0x69, 0x6f, + 0x5f, 0x68, 0x74, 0x74, 0x70, 0x27, 0x29, 0x2e, + 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, + 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x4f, + 0x48, 0x74, 0x74, 0x70, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x62, + 0x6f, 0x75, 0x74, 0x28, 0x29, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, + 0x50, 0x61, 0x67, 0x65, 0x28, 0x22, 0x61, 0x62, + 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x22, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x76, 0x65, + 0x72, 0x76, 0x69, 0x65, 0x77, 0x28, 0x29, 0x0a, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, + 0x61, 0x64, 0x50, 0x61, 0x67, 0x65, 0x28, 0x22, + 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, + 0x2e, 0x68, 0x74, 0x6d, 0x22, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, + 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x28, + 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x67, 0x65, + 0x28, 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, + 0x68, 0x74, 0x6d, 0x22, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x61, + 0x64, 0x49, 0x4f, 0x48, 0x74, 0x74, 0x70, 0x28, + 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x67, 0x65, + 0x28, 0x22, 0x69, 0x6f, 0x5f, 0x68, 0x74, 0x74, + 0x70, 0x2e, 0x68, 0x74, 0x6d, 0x22, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x64, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x47, 0x65, 0x74, + 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x47, 0x65, 0x74, + 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, + 0x6d, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x73, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x69, 0x6f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4c, 0x45, 0x44, + 0x4f, 0x6e, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x65, 0x64, 0x20, 0x3d, 0x20, 0x6c, 0x73, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x6f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x65, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x70, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x64, + 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x76, 0x61, 0x72, 0x20, 0x72, 0x65, 0x71, + 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x28, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x66, 0x28, 0x72, 0x65, 0x71, 0x2e, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x20, 0x3d, 0x3d, 0x20, 0x34, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, + 0x72, 0x65, 0x71, 0x2e, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x30, + 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x28, 0x22, 0x6c, 0x65, 0x64, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x22, 0x29, 0x2e, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x3d, + 0x20, 0x22, 0x3c, 0x64, 0x69, 0x76, 0x3e, 0x22, + 0x20, 0x2b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, + 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x54, 0x65, 0x78, 0x74, 0x20, 0x2b, 0x20, + 0x22, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x22, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x58, + 0x4d, 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, + 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x58, + 0x4d, 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x28, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, + 0x69, 0x66, 0x28, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x71, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, + 0x20, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x58, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28, 0x22, + 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, + 0x74, 0x2e, 0x58, 0x4d, 0x4c, 0x48, 0x54, 0x54, + 0x50, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x66, 0x28, 0x72, 0x65, 0x71, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x22, 0x47, + 0x45, 0x54, 0x22, 0x2c, 0x20, 0x22, 0x2f, 0x63, + 0x67, 0x69, 0x2d, 0x62, 0x69, 0x6e, 0x2f, 0x74, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x5f, 0x6c, 0x65, + 0x64, 0x3f, 0x69, 0x64, 0x22, 0x20, 0x2b, 0x20, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x28, 0x29, 0x2c, 0x20, 0x74, + 0x72, 0x75, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x71, 0x2e, 0x6f, 0x6e, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x73, 0x74, 0x61, 0x74, 0x65, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x54, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x71, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, + 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x53, 0x65, + 0x74, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x72, 0x65, + 0x71, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x61, 0x72, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x5f, 0x74, 0x78, 0x74, 0x20, 0x3d, 0x20, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x65, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x28, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, 0x72, + 0x65, 0x71, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x3d, + 0x20, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x66, 0x28, 0x72, 0x65, 0x71, + 0x2e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, + 0x3d, 0x3d, 0x20, 0x32, 0x30, 0x30, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, + 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x22, 0x29, 0x2e, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, + 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x3c, 0x64, 0x69, 0x76, + 0x3e, 0x22, 0x20, 0x2b, 0x20, 0x72, 0x65, 0x71, + 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x54, 0x65, 0x78, 0x74, 0x20, 0x2b, 0x20, + 0x22, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x22, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x58, 0x4d, + 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x20, + 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x58, 0x4d, + 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x28, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, + 0x66, 0x28, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x58, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x71, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x58, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28, 0x22, 0x4d, + 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, + 0x2e, 0x58, 0x4d, 0x4c, 0x48, 0x54, 0x54, 0x50, + 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, + 0x28, 0x72, 0x65, 0x71, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x22, 0x47, 0x45, + 0x54, 0x22, 0x2c, 0x20, 0x22, 0x2f, 0x63, 0x67, + 0x69, 0x2d, 0x62, 0x69, 0x6e, 0x2f, 0x73, 0x65, + 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x3f, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x3d, + 0x22, 0x20, 0x2b, 0x20, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x5f, 0x74, 0x78, 0x74, 0x2e, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x2b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x26, + 0x69, 0x64, 0x22, 0x20, 0x2b, 0x20, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x28, 0x29, 0x2c, 0x20, 0x74, 0x72, 0x75, + 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x2e, + 0x6f, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x2e, + 0x73, 0x65, 0x6e, 0x64, 0x28, 0x6e, 0x75, 0x6c, + 0x6c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x65, + 0x64, 0x73, 0x74, 0x61, 0x74, 0x65, 0x47, 0x65, + 0x74, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x65, + 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x28, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, 0x6c, + 0x65, 0x64, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x3d, + 0x20, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x66, 0x28, 0x6c, 0x65, 0x64, + 0x2e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, + 0x3d, 0x3d, 0x20, 0x32, 0x30, 0x30, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, + 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6c, + 0x65, 0x64, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, + 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x22, 0x3c, + 0x64, 0x69, 0x76, 0x3e, 0x22, 0x20, 0x2b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6c, 0x65, 0x64, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x20, 0x2b, 0x20, 0x22, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x22, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x66, 0x28, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x2e, 0x58, 0x4d, 0x4c, 0x48, + 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, + 0x6e, 0x65, 0x77, 0x20, 0x58, 0x4d, 0x4c, 0x48, + 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x69, 0x66, 0x28, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x6e, 0x65, + 0x77, 0x20, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28, + 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, + 0x66, 0x74, 0x2e, 0x58, 0x4d, 0x4c, 0x48, 0x54, + 0x54, 0x50, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x66, 0x28, 0x6c, 0x65, 0x64, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, + 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x22, + 0x47, 0x45, 0x54, 0x22, 0x2c, 0x20, 0x22, 0x2f, + 0x6c, 0x65, 0x64, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x3f, 0x69, 0x64, 0x3d, 0x22, 0x20, 0x2b, 0x20, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x28, 0x29, 0x2c, 0x20, 0x74, + 0x72, 0x75, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, + 0x64, 0x2e, 0x6f, 0x6e, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x73, 0x74, 0x61, 0x74, 0x65, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x6c, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x64, 0x2e, + 0x73, 0x65, 0x6e, 0x64, 0x28, 0x6e, 0x75, 0x6c, + 0x6c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x47, 0x65, 0x74, 0x28, 0x29, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x65, 0x71, 0x20, 0x3d, + 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x65, 0x64, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, 0x72, 0x65, + 0x71, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x3d, 0x20, + 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x66, 0x28, 0x72, 0x65, 0x71, 0x2e, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x3d, + 0x3d, 0x20, 0x32, 0x30, 0x30, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, + 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x22, 0x29, 0x2e, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, + 0x3d, 0x20, 0x22, 0x3c, 0x64, 0x69, 0x76, 0x3e, + 0x22, 0x20, 0x2b, 0x20, 0x72, 0x65, 0x71, 0x2e, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x54, 0x65, 0x78, 0x74, 0x20, 0x2b, 0x20, 0x22, + 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x22, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x58, 0x4d, + 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x20, + 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x58, 0x4d, + 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x28, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, + 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x58, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x71, 0x20, 0x3d, 0x20, + 0x6e, 0x65, 0x77, 0x20, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x28, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, + 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x58, 0x4d, 0x4c, + 0x48, 0x54, 0x54, 0x50, 0x22, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x66, 0x28, 0x72, 0x65, 0x71, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x71, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x28, 0x22, 0x47, 0x45, 0x54, 0x22, 0x2c, 0x20, + 0x22, 0x2f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x3f, 0x69, 0x64, 0x3d, 0x22, + 0x20, 0x2b, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x28, 0x29, + 0x2c, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x71, 0x2e, 0x6f, 0x6e, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, + 0x3d, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x52, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x71, 0x2e, 0x73, 0x65, 0x6e, + 0x64, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, + 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x50, + 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, 0x67, 0x65, + 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x66, 0x28, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x2e, 0x58, 0x4d, 0x4c, 0x48, 0x74, 0x74, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x78, 0x6d, 0x6c, 0x68, 0x74, 0x74, 0x70, 0x20, + 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x58, 0x4d, + 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x28, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6d, 0x6c, + 0x68, 0x74, 0x74, 0x70, 0x20, 0x3d, 0x20, 0x6e, + 0x65, 0x77, 0x20, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x28, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, + 0x6f, 0x66, 0x74, 0x2e, 0x58, 0x4d, 0x4c, 0x48, + 0x54, 0x54, 0x50, 0x22, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x78, 0x6d, 0x6c, 0x68, 0x74, 0x74, + 0x70, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x22, + 0x47, 0x45, 0x54, 0x22, 0x2c, 0x20, 0x70, 0x61, + 0x67, 0x65, 0x2c, 0x20, 0x74, 0x72, 0x75, 0x65, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, + 0x6d, 0x6c, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x28, + 0x22, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x2d, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x78, 0x2d, 0x77, 0x77, 0x77, 0x2d, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x75, 0x72, 0x6c, + 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x22, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, + 0x6d, 0x6c, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x73, + 0x65, 0x6e, 0x64, 0x28, 0x29, 0x3b, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x78, 0x6d, 0x6c, 0x68, + 0x74, 0x74, 0x70, 0x2e, 0x6f, 0x6e, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x3d, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, 0x28, 0x78, + 0x6d, 0x6c, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x34, 0x29, 0x20, + 0x26, 0x26, 0x20, 0x28, 0x78, 0x6d, 0x6c, 0x68, + 0x74, 0x74, 0x70, 0x2e, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x30, + 0x30, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, + 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x22, 0x29, 0x2e, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x3d, + 0x20, 0x78, 0x6d, 0x6c, 0x68, 0x74, 0x74, 0x70, + 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x54, 0x65, 0x78, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, + 0x0a, +}; + +static const uint8_t data_javascript_load_js[] = +{ + /* /javascript_load.js */ + 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x5f, 0x6c, 0x6f, 0x61, 0x64, + 0x2e, 0x6a, 0x73, 0x00, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6f, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x28, 0x27, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x27, + 0x29, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, + 0x41, 0x62, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x27, 0x6f, 0x76, 0x65, 0x72, + 0x76, 0x69, 0x65, 0x77, 0x27, 0x29, 0x2e, 0x6f, + 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, + 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x76, 0x65, + 0x72, 0x76, 0x69, 0x65, 0x77, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x27, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x27, 0x29, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, + 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x6c, 0x6f, + 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, + 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x79, 0x49, 0x64, 0x28, 0x27, 0x69, 0x6f, + 0x5f, 0x68, 0x74, 0x74, 0x70, 0x27, 0x29, 0x2e, + 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, + 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x4f, + 0x48, 0x74, 0x74, 0x70, 0x3b, 0x0a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x50, + 0x61, 0x67, 0x65, 0x28, 0x22, 0x61, 0x62, 0x6f, + 0x75, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x22, 0x29, + 0x3b, 0x0a, 0x7d, 0x0a, +}; + +static const uint8_t data_overview_htm[] = +{ + /* /overview.htm */ + 0x2f, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, + 0x77, 0x2e, 0x68, 0x74, 0x6d, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0a, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x6d, 0x65, + 0x74, 0x61, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, + 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x22, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3b, + 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, + 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, 0x3e, 0x0a, + 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x45, + 0x4b, 0x2d, 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, + 0x39, 0x34, 0x58, 0x4c, 0x20, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x4b, 0x69, 0x74, 0x3c, 0x2f, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0x0a, 0x3c, 0x6c, 0x69, 0x6e, + 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, + 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, + 0x73, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2e, + 0x63, 0x73, 0x73, 0x22, 0x2f, 0x3e, 0x0a, 0x3c, + 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 0x6c, + 0x3d, 0x22, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, + 0x75, 0x74, 0x20, 0x69, 0x63, 0x6f, 0x6e, 0x22, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x69, + 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x66, 0x61, 0x76, 0x69, 0x63, + 0x6f, 0x6e, 0x2e, 0x69, 0x63, 0x6f, 0x22, 0x2f, + 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x0a, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x0a, 0x3c, 0x70, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x22, + 0x3e, 0x54, 0x69, 0x76, 0x61, 0x26, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x3b, 0x20, 0x43, 0x20, 0x53, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x50, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x20, 0x4c, 0x69, + 0x6e, 0x65, 0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x3c, + 0x68, 0x72, 0x3e, 0x0a, 0x3c, 0x62, 0x72, 0x3e, + 0x0a, 0x41, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x41, 0x52, + 0x4d, 0x26, 0x72, 0x65, 0x67, 0x3b, 0x20, 0x43, + 0x6f, 0x72, 0x74, 0x65, 0x78, 0x26, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x3b, 0x2d, 0x4d, 0x34, 0x20, + 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, + 0x20, 0x28, 0x4d, 0x43, 0x55, 0x73, 0x29, 0x20, + 0x74, 0x6f, 0x20, 0x62, 0x65, 0x0a, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x54, 0x49, 0x27, + 0x73, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x72, 0x69, + 0x65, 0x74, 0x61, 0x72, 0x79, 0x20, 0x36, 0x35, + 0x2d, 0x6e, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x20, 0x74, 0x65, 0x63, 0x68, + 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x2c, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x54, 0x69, 0x76, 0x61, + 0x20, 0x43, 0x20, 0x53, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x73, 0x20, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x73, 0x20, 0x61, 0x6e, 0x20, + 0x6f, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x73, + 0x61, 0x63, 0x72, 0x69, 0x66, 0x69, 0x63, 0x69, + 0x6e, 0x67, 0x20, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x2c, 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2c, 0x20, 0x6f, + 0x72, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x45, 0x76, 0x65, + 0x72, 0x79, 0x20, 0x43, 0x20, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x0a, 0x4d, 0x43, 0x55, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x61, 0x20, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2d, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x20, 0x63, 0x6f, 0x72, 0x65, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x69, 0x67, + 0x68, 0x2d, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x6e, + 0x61, 0x6c, 0x6f, 0x67, 0x20, 0x77, 0x68, 0x69, + 0x6c, 0x65, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, + 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x6c, 0x6f, 0x77, 0x2d, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x20, 0x6d, 0x6f, 0x64, + 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x20, 0x61, 0x20, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, + 0x6f, 0x66, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x54, + 0x6f, 0x64, 0x61, 0x79, 0x27, 0x73, 0x0a, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x73, + 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x73, + 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, + 0x61, 0x6e, 0x20, 0x68, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6f, 0x6e, + 0x65, 0x2e, 0x20, 0x4f, 0x66, 0x74, 0x65, 0x6e, + 0x2c, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x67, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x63, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x20, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6e, 0x64, + 0x0a, 0x3c, 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, + 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, + 0x69, 0x76, 0x61, 0x77, 0x61, 0x72, 0x65, 0x22, + 0x3e, 0x54, 0x69, 0x76, 0x61, 0x57, 0x61, 0x72, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x43, 0x20, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x3c, 0x2f, + 0x61, 0x3e, 0x20, 0x69, 0x73, 0x20, 0x61, 0x0a, + 0x66, 0x72, 0x65, 0x65, 0x20, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x20, 0x6f, 0x66, 0x20, + 0x43, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x20, 0x62, 0x6f, 0x74, + 0x68, 0x20, 0x70, 0x65, 0x72, 0x69, 0x70, 0x68, + 0x65, 0x72, 0x61, 0x6c, 0x2d, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2d, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x52, + 0x4f, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x76, 0x65, 0x72, 0x79, 0x20, 0x54, 0x69, 0x76, + 0x61, 0x20, 0x43, 0x20, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x20, 0x4d, 0x43, 0x55, 0x2e, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x0a, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x65, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x73, 0x20, 0x55, + 0x53, 0x42, 0x2c, 0x20, 0x43, 0x41, 0x4e, 0x2c, + 0x20, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, + 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x20, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x69, 0x65, 0x73, 0x20, 0x73, 0x6f, 0x0a, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x73, + 0x20, 0x63, 0x61, 0x6e, 0x20, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, + 0x20, 0x65, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x73, + 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, + 0x64, 0x20, 0x6f, 0x66, 0x0a, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x69, 0x6e, 0x67, + 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x20, 0x70, 0x65, 0x72, 0x69, + 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x2e, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x54, 0x69, 0x76, + 0x61, 0x20, 0x43, 0x20, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x0a, 0x65, + 0x78, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x6e, 0x74, + 0x20, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x68, 0x6f, + 0x6d, 0x65, 0x2c, 0x20, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74, + 0x72, 0x69, 0x61, 0x6c, 0x20, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x0a, 0x3c, 0x2f, 0x62, 0x6f, 0x64, + 0x79, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, + 0x6c, 0x3e, 0x0a, +}; + +static const uint8_t data_perror_htm[] = +{ + /* /perror.htm */ + 0x2f, 0x70, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, + 0x68, 0x74, 0x6d, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0a, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x20, 0x20, + 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, + 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, + 0x75, 0x69, 0x76, 0x3d, 0x22, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3b, 0x63, 0x68, + 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x55, 0x54, + 0x46, 0x2d, 0x38, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x3e, 0x46, 0x6f, 0x72, 0x6d, 0x20, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3c, 0x2f, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, + 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, + 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x73, + 0x73, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, + 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x68, 0x6f, 0x72, + 0x74, 0x63, 0x75, 0x74, 0x20, 0x69, 0x63, 0x6f, + 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, + 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x66, 0x61, 0x76, + 0x69, 0x63, 0x6f, 0x6e, 0x2e, 0x69, 0x63, 0x6f, + 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, + 0x73, 0x72, 0x63, 0x3d, 0x22, 0x6a, 0x61, 0x76, + 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, + 0x6a, 0x73, 0x22, 0x20, 0x6c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x4a, 0x61, + 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x31, 0x2e, 0x32, 0x22, 0x20, 0x63, 0x68, 0x61, + 0x72, 0x73, 0x65, 0x74, 0x3d, 0x22, 0x75, 0x74, + 0x66, 0x2d, 0x38, 0x22, 0x3e, 0x3c, 0x2f, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x20, + 0x20, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, + 0x0a, 0x20, 0x20, 0x3c, 0x62, 0x6f, 0x64, 0x79, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, + 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, + 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, 0x30, 0x30, + 0x25, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x72, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x69, + 0x64, 0x3d, 0x22, 0x68, 0x65, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x22, 0x20, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, + 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, + 0x6d, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, + 0x72, 0x63, 0x3d, 0x22, 0x74, 0x69, 0x2e, 0x6a, + 0x70, 0x67, 0x22, 0x20, 0x61, 0x6c, 0x74, 0x3d, + 0x22, 0x54, 0x65, 0x78, 0x61, 0x73, 0x20, 0x49, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3d, 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, + 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, + 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, + 0x31, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x54, 0x69, 0x76, 0x61, 0x26, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x3b, 0x20, 0x43, 0x20, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x54, + 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, + 0x4c, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4b, 0x69, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, + 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x68, 0x32, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x45, 0x4b, 0x2d, 0x54, + 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, + 0x4c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x61, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, + 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, + 0x69, 0x76, 0x61, 0x22, 0x20, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, + 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x74, 0x69, 0x76, 0x61, 0x22, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6d, + 0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x74, + 0x6d, 0x34, 0x63, 0x2e, 0x6a, 0x70, 0x67, 0x22, + 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x54, 0x4d, + 0x34, 0x43, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x68, 0x72, 0x3e, 0x3c, 0x68, 0x72, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, + 0x3d, 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x75, 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, + 0x74, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x3e, 0x41, + 0x62, 0x6f, 0x75, 0x74, 0x20, 0x54, 0x49, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6f, 0x76, + 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x68, + 0x74, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, + 0x22, 0x3e, 0x54, 0x69, 0x76, 0x61, 0x26, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x3b, 0x20, 0x43, 0x20, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, 0x4f, + 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2e, 0x68, 0x74, 0x6d, 0x22, + 0x20, 0x69, 0x64, 0x3d, 0x22, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x22, 0x3e, 0x54, 0x4d, 0x34, 0x43, + 0x31, 0x32, 0x39, 0x45, 0x4e, 0x43, 0x50, 0x44, + 0x54, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x20, + 0x44, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, + 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x74, 0x6f, 0x6f, 0x6c, 0x2f, + 0x65, 0x6b, 0x2d, 0x74, 0x6d, 0x34, 0x63, 0x31, + 0x32, 0x39, 0x34, 0x78, 0x6c, 0x22, 0x3e, 0x45, + 0x4b, 0x2d, 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, + 0x39, 0x34, 0x58, 0x4c, 0x20, 0x50, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x20, 0x50, 0x61, 0x67, + 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, + 0x69, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, + 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x69, 0x76, + 0x61, 0x2d, 0x63, 0x22, 0x3e, 0x54, 0x69, 0x76, + 0x61, 0x26, 0x74, 0x72, 0x61, 0x64, 0x65, 0x3b, + 0x20, 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, + 0x78, 0x20, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x20, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x20, 0x50, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x61, + 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x69, 0x6f, 0x5f, 0x68, + 0x74, 0x74, 0x70, 0x2e, 0x68, 0x74, 0x6d, 0x22, + 0x20, 0x69, 0x64, 0x3d, 0x22, 0x69, 0x6f, 0x5f, + 0x68, 0x74, 0x74, 0x70, 0x22, 0x3e, 0x49, 0x2f, + 0x4f, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x20, 0x44, 0x65, 0x6d, 0x6f, 0x20, 0x31, + 0x3c, 0x62, 0x72, 0x3e, 0x28, 0x48, 0x54, 0x54, + 0x50, 0x20, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x29, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, + 0x2f, 0x6c, 0x69, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, + 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x69, 0x6f, 0x5f, 0x63, 0x67, 0x69, + 0x2e, 0x73, 0x73, 0x69, 0x22, 0x3e, 0x49, 0x2f, + 0x4f, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x20, 0x44, 0x65, 0x6d, 0x6f, 0x20, 0x32, + 0x3c, 0x62, 0x72, 0x3e, 0x28, 0x53, 0x53, 0x49, + 0x2f, 0x43, 0x47, 0x49, 0x29, 0x3c, 0x2f, 0x61, + 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x75, + 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, + 0x63, 0x3d, 0x22, 0x65, 0x6b, 0x2d, 0x74, 0x6d, + 0x34, 0x63, 0x31, 0x32, 0x39, 0x34, 0x78, 0x6c, + 0x2e, 0x6a, 0x70, 0x67, 0x22, 0x20, 0x61, 0x6c, + 0x74, 0x3d, 0x22, 0x45, 0x4b, 0x2d, 0x54, 0x4d, + 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, 0x4c, + 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, + 0x64, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, + 0x30, 0x30, 0x25, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65, + 0x66, 0x74, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, + 0x37, 0x35, 0x25, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x68, 0x32, 0x20, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3c, 0x2f, 0x68, + 0x32, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x63, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x72, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x32, + 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, + 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x70, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3d, 0x22, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x70, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, + 0x22, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, + 0x3e, 0x4f, 0x6f, 0x70, 0x73, 0x20, 0x2d, 0x20, + 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x73, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x62, 0x72, 0x3e, + 0x77, 0x61, 0x73, 0x20, 0x65, 0x69, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x2c, 0x20, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x6f, + 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x2e, 0x26, 0x6e, 0x62, 0x73, + 0x70, 0x3b, 0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x70, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, + 0x22, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, + 0x3e, 0x50, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, + 0x74, 0x72, 0x79, 0x20, 0x61, 0x67, 0x61, 0x69, + 0x6e, 0x21, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x62, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x70, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, + 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x72, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, + 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x66, + 0x6f, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x68, 0x72, 0x3e, 0x3c, 0x68, 0x72, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, + 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x26, 0x63, 0x6f, 0x70, 0x79, 0x3b, 0x20, 0x32, + 0x30, 0x31, 0x33, 0x2d, 0x32, 0x30, 0x31, 0x34, + 0x20, 0x54, 0x65, 0x78, 0x61, 0x73, 0x20, 0x49, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x20, 0x49, 0x6e, 0x63, 0x6f, 0x72, + 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, + 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, + 0x3e, 0x0a, 0x20, 0x20, 0x3c, 0x2f, 0x62, 0x6f, + 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, + 0x6d, 0x6c, 0x3e, 0x0a, +}; + +static const uint8_t data_styles_css[] = +{ + /* /styles.css */ + 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2e, + 0x63, 0x73, 0x73, 0x00, + 0x2f, 0x2a, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, + 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, 0x32, 0x30, + 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, 0x61, 0x73, + 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, 0x6e, 0x63, + 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, + 0x20, 0x2a, 0x2f, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, + 0x53, 0x74, 0x79, 0x6c, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x20, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x20, 0x2a, 0x2f, 0x0a, 0x62, 0x6f, 0x64, 0x79, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x62, 0x6c, 0x61, 0x63, 0x6b, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, + 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x3a, 0x20, 0x41, 0x72, 0x69, 0x65, 0x6c, + 0x2c, 0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, + 0x63, 0x61, 0x2c, 0x73, 0x61, 0x6e, 0x73, 0x2d, + 0x73, 0x65, 0x72, 0x69, 0x66, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x53, 0x74, 0x79, + 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x69, 0x76, + 0x2e, 0x20, 0x2a, 0x2f, 0x0a, 0x23, 0x68, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, + 0x72, 0x3a, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x23, 0x68, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x31, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, + 0x3a, 0x20, 0x32, 0x65, 0x6d, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, + 0x62, 0x6f, 0x6c, 0x64, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x23, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x68, 0x32, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x2e, + 0x32, 0x35, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x62, + 0x6f, 0x6c, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x23, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x68, 0x72, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, + 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x20, 0x23, 0x66, 0x66, 0x30, 0x30, + 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, + 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, + 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x66, + 0x66, 0x30, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x23, 0x68, 0x65, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x20, 0x69, 0x6d, 0x67, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x30, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, + 0x53, 0x74, 0x79, 0x6c, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x64, 0x69, 0x76, + 0x2e, 0x20, 0x2a, 0x2f, 0x0a, 0x23, 0x6d, 0x65, + 0x6e, 0x75, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, + 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x32, 0x32, 0x35, 0x70, 0x78, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x23, 0x6d, 0x65, 0x6e, + 0x75, 0x20, 0x75, 0x6c, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x2d, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2d, 0x74, 0x79, + 0x70, 0x65, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x23, 0x6d, 0x65, 0x6e, + 0x75, 0x20, 0x61, 0x3a, 0x6c, 0x69, 0x6e, 0x6b, + 0x2c, 0x20, 0x23, 0x6d, 0x65, 0x6e, 0x75, 0x20, + 0x61, 0x3a, 0x76, 0x69, 0x73, 0x69, 0x74, 0x65, + 0x64, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x66, 0x66, 0x30, 0x30, 0x30, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x3a, 0x20, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x62, 0x6f, 0x6c, 0x64, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x32, 0x70, 0x78, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, + 0x3a, 0x20, 0x32, 0x70, 0x78, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x70, 0x78, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, + 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x32, + 0x30, 0x30, 0x70, 0x78, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x23, 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x61, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x20, + 0x23, 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x61, 0x3a, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x62, 0x66, 0x30, 0x30, 0x30, 0x30, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x53, 0x74, + 0x79, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x69, + 0x76, 0x2e, 0x20, 0x2a, 0x2f, 0x0a, 0x23, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x20, 0x32, 0x32, 0x35, 0x70, 0x78, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x23, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, + 0x2e, 0x35, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x62, + 0x6f, 0x6c, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x2f, 0x2a, 0x20, 0x53, 0x74, 0x79, 0x6c, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x64, 0x69, 0x76, 0x2e, 0x20, + 0x2a, 0x2f, 0x0a, 0x23, 0x66, 0x6f, 0x6f, 0x74, + 0x69, 0x6e, 0x67, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x3a, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x2e, 0x37, + 0x35, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x3a, 0x20, 0x69, 0x74, 0x61, + 0x6c, 0x69, 0x63, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x23, + 0x66, 0x6f, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x68, 0x72, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, + 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, + 0x64, 0x20, 0x23, 0x66, 0x66, 0x30, 0x30, 0x30, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, + 0x70, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x66, 0x66, + 0x30, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, + +}; + +static const uint8_t data_ti_jpg[] = +{ + /* /ti.jpg */ + 0x2f, 0x74, 0x69, 0x2e, 0x6a, 0x70, 0x67, 0x00, + + 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, + 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x00, 0xff, 0xdb, 0x00, 0x43, + 0x00, 0x03, 0x02, 0x02, 0x03, 0x02, 0x02, 0x03, + 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x04, 0x05, + 0x08, 0x05, 0x05, 0x04, 0x04, 0x05, 0x0a, 0x07, + 0x07, 0x06, 0x08, 0x0c, 0x0a, 0x0c, 0x0c, 0x0b, + 0x0a, 0x0b, 0x0b, 0x0d, 0x0e, 0x12, 0x10, 0x0d, + 0x0e, 0x11, 0x0e, 0x0b, 0x0b, 0x10, 0x16, 0x10, + 0x11, 0x13, 0x14, 0x15, 0x15, 0x15, 0x0c, 0x0f, + 0x17, 0x18, 0x16, 0x14, 0x18, 0x12, 0x14, 0x15, + 0x14, 0xff, 0xdb, 0x00, 0x43, 0x01, 0x03, 0x04, + 0x04, 0x05, 0x04, 0x05, 0x09, 0x05, 0x05, 0x09, + 0x14, 0x0d, 0x0b, 0x0d, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xff, 0xc2, + 0x00, 0x11, 0x08, 0x00, 0x4b, 0x01, 0x16, 0x03, + 0x01, 0x11, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, + 0x01, 0xff, 0xc4, 0x00, 0x1c, 0x00, 0x01, 0x00, + 0x02, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, + 0x07, 0x05, 0x08, 0x01, 0x02, 0x04, 0x03, 0xff, + 0xc4, 0x00, 0x1c, 0x01, 0x01, 0x00, 0x01, 0x05, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x02, + 0x03, 0x04, 0x06, 0x07, 0x08, 0xff, 0xda, 0x00, + 0x0c, 0x03, 0x01, 0x00, 0x02, 0x10, 0x03, 0x10, + 0x00, 0x00, 0x01, 0xda, 0x90, 0x62, 0xec, 0xda, + 0x80, 0xea, 0x74, 0xb2, 0xbc, 0xf0, 0x92, 0x4c, + 0xf1, 0x5c, 0xab, 0xd8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0b, + 0xd6, 0xe8, 0x35, 0x63, 0x9d, 0xf6, 0x9b, 0xc2, + 0x67, 0xcd, 0x7d, 0x2d, 0x6b, 0x47, 0x7f, 0x91, + 0xf5, 0xd7, 0x0f, 0xda, 0xeb, 0x7e, 0x27, 0x53, + 0xb1, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x02, 0x90, 0xbd, 0x79, 0xfd, + 0x59, 0xe7, 0x3d, 0xb2, 0x67, 0xb9, 0xcd, 0xe4, + 0x32, 0xe9, 0xe1, 0xb0, 0xc8, 0xc9, 0x33, 0x45, + 0x6c, 0x64, 0xcf, 0x94, 0x54, 0x35, 0xae, 0xbc, + 0x96, 0x91, 0x35, 0x33, 0x86, 0x4c, 0xf2, 0x19, + 0x23, 0xd8, 0x60, 0x8f, 0x11, 0x63, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x16, 0xcd, 0xca, 0x32, + 0x23, 0xd2, 0x31, 0x96, 0x6e, 0xc1, 0x74, 0xba, + 0xad, 0x86, 0x9a, 0xf2, 0x3a, 0xff, 0x00, 0x53, + 0xa9, 0xf9, 0xd3, 0x2c, 0x6b, 0x5e, 0x5f, 0x6d, + 0x7a, 0x3f, 0x0d, 0xf4, 0x56, 0xdd, 0x47, 0x26, + 0x27, 0xb0, 0xb3, 0x8d, 0x50, 0x36, 0xa4, 0xad, + 0x48, 0xd9, 0x8f, 0x24, 0xe6, 0xc5, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x55, 0xb4, 0x74, 0x5f, + 0xa3, 0x53, 0x11, 0x5e, 0x8d, 0xc5, 0x69, 0x62, + 0xee, 0xf1, 0xbc, 0xd6, 0xea, 0xef, 0x43, 0xb0, + 0xeb, 0x75, 0x37, 0x2f, 0xa5, 0xf9, 0xf7, 0xdf, + 0x76, 0x0d, 0x36, 0x56, 0x74, 0x65, 0x8f, 0x69, + 0x16, 0x31, 0x06, 0x64, 0xaf, 0xcb, 0x80, 0xad, + 0x0d, 0xb8, 0x3e, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xe1, 0xb3, 0x2d, 0x3f, 0x1d, 0xdd, 0xfa, + 0xee, 0xc3, 0xf0, 0x64, 0x9d, 0xed, 0x73, 0x34, + 0x44, 0x57, 0xa6, 0x5d, 0xb2, 0x7e, 0x77, 0x37, + 0xda, 0xe7, 0xc6, 0xbe, 0x97, 0xf1, 0xc8, 0x39, + 0x38, 0x3b, 0x1c, 0x00, 0x77, 0x39, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xc2, 0x9d, 0x29, 0x76, + 0xa6, 0x73, 0xde, 0xe1, 0x80, 0xc5, 0x2d, 0xb8, + 0x7d, 0x1f, 0x81, 0x64, 0xb2, 0x6a, 0xf2, 0x0d, + 0x47, 0x33, 0x25, 0x90, 0x57, 0x06, 0x54, 0x90, + 0x95, 0x69, 0x6c, 0x15, 0x31, 0x99, 0x3b, 0x1b, + 0x18, 0x51, 0x24, 0x54, 0xb4, 0x48, 0xe9, 0x0d, + 0x2e, 0x12, 0x86, 0x2e, 0xf3, 0x18, 0x56, 0xa4, + 0xf8, 0xe0, 0xb4, 0x89, 0x70, 0x01, 0x48, 0xde, + 0x09, 0x5a, 0x72, 0x37, 0xbc, 0xd8, 0x29, 0x8f, + 0x31, 0xfa, 0xd6, 0xd0, 0x35, 0x1c, 0xb3, 0xca, + 0xf8, 0xc9, 0x1f, 0x33, 0x2e, 0x47, 0x8d, 0x99, + 0x34, 0xd0, 0xce, 0x19, 0x53, 0x66, 0xca, 0x04, + 0x81, 0x12, 0xa3, 0x2c, 0x57, 0x26, 0xc4, 0x90, + 0xc2, 0x8d, 0x37, 0x00, 0xd7, 0xd3, 0x60, 0x0a, + 0x2c, 0x93, 0x97, 0xc0, 0x00, 0x00, 0x01, 0xc1, + 0x48, 0x92, 0x12, 0xc9, 0x2b, 0x53, 0x08, 0x4d, + 0xc8, 0x71, 0x66, 0x15, 0xf1, 0xd4, 0xfa, 0x98, + 0xa2, 0x6e, 0x7c, 0x4e, 0x86, 0x18, 0x8d, 0x12, + 0x33, 0xde, 0x4a, 0x8f, 0xb9, 0x58, 0x96, 0x01, + 0x5d, 0x13, 0xf2, 0x58, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xff, 0xc4, 0x00, 0x2b, 0x10, 0x00, 0x01, + 0x04, 0x02, 0x01, 0x01, 0x06, 0x06, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x02, + 0x03, 0x04, 0x06, 0x01, 0x07, 0x00, 0x13, 0x10, + 0x11, 0x12, 0x36, 0x37, 0x40, 0x14, 0x15, 0x17, + 0x30, 0x31, 0x34, 0x16, 0x20, 0x50, 0xff, 0xda, + 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x05, 0x02, + 0xec, 0x26, 0x41, 0xb1, 0x70, 0xfe, 0xa1, 0x8d, + 0xe0, 0x53, 0xf1, 0xce, 0xa7, 0xbf, 0x98, 0xf7, + 0xf7, 0x1f, 0x2e, 0xf3, 0x5c, 0xaf, 0x09, 0x6a, + 0xd4, 0x24, 0x89, 0x32, 0x51, 0xfc, 0x11, 0x98, + 0x4b, 0x89, 0x56, 0x78, 0xa7, 0x50, 0x9c, 0xfc, + 0x43, 0x7c, 0x4b, 0xa8, 0x56, 0x7d, 0xcd, 0xc7, + 0xcb, 0xbc, 0xad, 0x8a, 0x91, 0x24, 0x9b, 0x39, + 0xc9, 0x7b, 0x9d, 0x85, 0x12, 0x72, 0x4e, 0x81, + 0x9c, 0xe4, 0xe7, 0x24, 0xeb, 0x68, 0x25, 0x48, + 0x2e, 0xb1, 0x0f, 0x1b, 0x28, 0xc0, 0x10, 0x34, + 0x59, 0xf8, 0xda, 0x21, 0x7c, 0x0f, 0x5e, 0x46, + 0xb0, 0x22, 0xbf, 0x68, 0x85, 0x66, 0x68, 0x75, + 0xc2, 0x19, 0x42, 0x47, 0xec, 0x90, 0x6b, 0x31, + 0x03, 0x19, 0x8a, 0x78, 0x79, 0xdb, 0x98, 0xca, + 0xf3, 0xc2, 0xaf, 0xe2, 0x0b, 0xcb, 0xfb, 0xe5, + 0x9e, 0x90, 0xc0, 0xef, 0xa8, 0x24, 0xb8, 0x46, + 0xe3, 0x38, 0x9c, 0x3e, 0x00, 0x3b, 0x13, 0x00, + 0x69, 0x7e, 0x06, 0xa7, 0xdb, 0xcf, 0x32, 0x69, + 0xc0, 0x85, 0x54, 0x1c, 0x8b, 0x2e, 0x75, 0x9a, + 0xe3, 0xbe, 0xb6, 0x6e, 0xaf, 0x2f, 0x0c, 0xbd, + 0xb4, 0x3a, 0xbb, 0x00, 0x74, 0x29, 0xa1, 0x55, + 0x3a, 0x7e, 0xb1, 0x39, 0x55, 0x04, 0xc8, 0x11, + 0x25, 0xa1, 0x26, 0xef, 0x72, 0xd4, 0x64, 0x57, + 0x02, 0x69, 0xf7, 0xc9, 0x52, 0x6f, 0x10, 0xb6, + 0x1d, 0x7a, 0xcd, 0x37, 0xd8, 0x5d, 0xeb, 0x8d, + 0xb0, 0xdf, 0x60, 0xc4, 0x2a, 0x3d, 0x4e, 0x0c, + 0x57, 0x63, 0xd5, 0x33, 0x8c, 0xa7, 0x3c, 0x83, + 0xfa, 0x7c, 0x70, 0x8c, 0x7c, 0xed, 0xad, 0xcd, + 0x21, 0xb7, 0x84, 0x86, 0xd8, 0x81, 0xe2, 0x03, + 0xfa, 0x88, 0xc3, 0x22, 0x23, 0x55, 0x22, 0x9d, + 0xa5, 0x50, 0xef, 0xd9, 0x1a, 0x16, 0x9b, 0x51, + 0x8c, 0x78, 0x49, 0xc8, 0x88, 0xa3, 0xde, 0xdb, + 0xd8, 0xa8, 0x83, 0x3a, 0xda, 0xec, 0x1b, 0xcc, + 0xf6, 0x51, 0xd3, 0x67, 0xef, 0xcc, 0x8a, 0x89, + 0xb1, 0xa1, 0xeb, 0xdc, 0xa2, 0x75, 0xb2, 0xab, + 0x19, 0x03, 0xea, 0x56, 0x31, 0xf0, 0x85, 0x2a, + 0xce, 0x2b, 0x09, 0x18, 0x0e, 0x55, 0x96, 0x68, + 0xda, 0x80, 0xe1, 0xfc, 0xc6, 0x31, 0x8c, 0x67, + 0xf0, 0xab, 0xc1, 0x24, 0x5a, 0x7c, 0x18, 0xce, + 0x3a, 0x68, 0xe7, 0x4d, 0x1c, 0xf0, 0x27, 0xbb, + 0xa6, 0x8e, 0x61, 0x29, 0x4f, 0x3c, 0x09, 0xcf, + 0x3c, 0x09, 0xee, 0x4a, 0x12, 0x8f, 0x66, 0xa4, + 0x61, 0x69, 0xb0, 0x0a, 0x50, 0x82, 0x6d, 0x23, + 0xaa, 0xe0, 0xe8, 0x4d, 0x8e, 0x87, 0xda, 0xef, + 0xad, 0x9b, 0x26, 0x61, 0x81, 0xa7, 0xe9, 0x96, + 0xe6, 0x6e, 0x22, 0x85, 0xd8, 0xa7, 0x09, 0xaa, + 0xd7, 0x82, 0x4f, 0xb0, 0x0d, 0xc0, 0xab, 0x2c, + 0x98, 0x07, 0x7e, 0x70, 0x26, 0xe0, 0xd0, 0x02, + 0xc2, 0xe4, 0xd0, 0xbe, 0x73, 0x70, 0xe3, 0x67, + 0xcc, 0xd5, 0x2e, 0xe5, 0xe5, 0xce, 0x6f, 0x66, + 0x11, 0x63, 0xac, 0x3e, 0xb4, 0xf4, 0xc2, 0x1a, + 0xf7, 0x5f, 0xdb, 0x49, 0xb3, 0x61, 0xd9, 0x07, + 0x25, 0x0e, 0x1d, 0xac, 0xdf, 0x96, 0x78, 0x0d, + 0x1f, 0x06, 0x2d, 0x92, 0x06, 0x82, 0x28, 0x28, + 0xc4, 0xcb, 0x49, 0xba, 0xd5, 0x96, 0xc8, 0x6d, + 0x05, 0x68, 0xf0, 0xc4, 0x17, 0x37, 0x0c, 0x5e, + 0x4c, 0x4f, 0xbb, 0x16, 0x9c, 0x62, 0x8a, 0x04, + 0x25, 0x7e, 0x79, 0x68, 0x15, 0x76, 0xc8, 0xb0, + 0x2f, 0xfa, 0x1a, 0x06, 0xc1, 0xb8, 0xd9, 0xa0, + 0x91, 0x65, 0xf6, 0xf1, 0x9c, 0x27, 0xb5, 0xdf, + 0x5b, 0x0e, 0xfa, 0x95, 0x75, 0xab, 0xc9, 0xaa, + 0x93, 0xa1, 0x3f, 0x06, 0x7d, 0x4a, 0x66, 0x9a, + 0xe9, 0x2f, 0x58, 0x1c, 0x24, 0xfc, 0xcb, 0x9f, + 0xaa, 0xd3, 0x3f, 0x53, 0x59, 0x0d, 0x27, 0x3d, + 0x14, 0x95, 0xc7, 0x6e, 0xee, 0x73, 0x3d, 0x3d, + 0xc7, 0x31, 0x58, 0x4c, 0x4a, 0x6f, 0xa5, 0x76, + 0x50, 0xeb, 0xc5, 0x24, 0x7b, 0xae, 0xda, 0x60, + 0x69, 0xcf, 0x2b, 0xeb, 0x80, 0x1f, 0x3c, 0x96, + 0x0a, 0xbd, 0x8a, 0xcc, 0x9a, 0xd4, 0x06, 0x09, + 0x9c, 0xb1, 0x8e, 0x23, 0x40, 0x55, 0x5b, 0xcb, + 0x35, 0xbf, 0x58, 0x2c, 0x4d, 0x8e, 0x95, 0x0a, + 0x5e, 0x9c, 0x72, 0x2a, 0xf5, 0x49, 0xf9, 0xc5, + 0x62, 0xfd, 0x9c, 0xfe, 0x33, 0xae, 0x1f, 0x51, + 0xd2, 0x35, 0x19, 0x53, 0xcf, 0xb8, 0xda, 0x5d, + 0x42, 0x68, 0x30, 0x9b, 0x07, 0x9a, 0x01, 0x06, + 0x31, 0x59, 0xaa, 0x43, 0xab, 0x45, 0x2b, 0xaf, + 0xde, 0x2c, 0x7a, 0x64, 0x59, 0x32, 0x06, 0xd4, + 0x68, 0x79, 0xa8, 0xc9, 0xb5, 0x6b, 0xc8, 0xf6, + 0x39, 0xa5, 0x68, 0x4d, 0x9e, 0x85, 0x9a, 0x01, + 0x29, 0x28, 0x95, 0x5a, 0x4f, 0xf1, 0xe1, 0xd5, + 0x8f, 0x86, 0xae, 0xaa, 0xab, 0xd3, 0xab, 0xd7, + 0x29, 0x2f, 0xd6, 0x20, 0x8f, 0xd5, 0xae, 0x8a, + 0x5c, 0x2a, 0x33, 0xed, 0x11, 0x01, 0x52, 0x90, + 0x0c, 0xa9, 0xc0, 0x91, 0xac, 0x03, 0x87, 0x40, + 0x50, 0xe1, 0x30, 0x35, 0xeb, 0xd0, 0x0f, 0xd8, + 0x81, 0x35, 0x63, 0x16, 0xba, 0x01, 0x2c, 0x26, + 0xb7, 0x59, 0x87, 0x57, 0x83, 0xfe, 0x1f, 0xff, + 0xc4, 0x00, 0x33, 0x11, 0x00, 0x01, 0x03, 0x03, + 0x02, 0x04, 0x03, 0x03, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, + 0x00, 0x05, 0x11, 0x12, 0x31, 0x06, 0x21, 0x40, + 0x41, 0x13, 0x14, 0x61, 0x50, 0x52, 0x71, 0x10, + 0x16, 0x22, 0x25, 0x32, 0x33, 0x35, 0x42, 0x51, + 0x60, 0x91, 0xb1, 0xe1, 0xff, 0xda, 0x00, 0x08, + 0x01, 0x03, 0x01, 0x01, 0x3f, 0x01, 0xf9, 0x22, + 0xc6, 0x5c, 0xc7, 0x43, 0x2d, 0xee, 0x6b, 0xe6, + 0xb5, 0xc0, 0x8c, 0x8d, 0x3f, 0xcf, 0xf9, 0x57, + 0x0b, 0x63, 0xd6, 0xd5, 0x25, 0x0f, 0x63, 0x9f, + 0xe9, 0x5b, 0xf6, 0xf6, 0x05, 0x87, 0xf1, 0x16, + 0xeb, 0xf2, 0xd7, 0x16, 0x65, 0x4e, 0xb6, 0xac, + 0x76, 0xab, 0x34, 0xc8, 0x71, 0x23, 0xa8, 0x3c, + 0x32, 0xa3, 0xe9, 0x4e, 0x6a, 0x75, 0xc2, 0xb4, + 0x8e, 0x46, 0x8a, 0x14, 0x9e, 0x6a, 0x1d, 0x75, + 0x84, 0xfd, 0x60, 0xdd, 0x76, 0xab, 0xc4, 0xe6, + 0x1b, 0x8c, 0xea, 0x0a, 0xc6, 0xac, 0x6d, 0x4b, + 0x4f, 0x91, 0xb3, 0x60, 0xfb, 0xbf, 0xdd, 0x59, + 0xd5, 0x1c, 0xc6, 0x43, 0x4d, 0xab, 0x24, 0x6f, + 0x5c, 0x4e, 0x94, 0xa6, 0x17, 0x2f, 0x7b, 0xac, + 0x86, 0x86, 0x9d, 0x7d, 0x08, 0x78, 0xe0, 0x1a, + 0x1c, 0x2d, 0x08, 0x8c, 0x85, 0x9c, 0x54, 0x4e, + 0x1e, 0x8f, 0x11, 0xe4, 0xbc, 0xda, 0x8e, 0x45, + 0x27, 0xb0, 0xab, 0x95, 0xbd, 0xff, 0x00, 0x3c, + 0x16, 0xe6, 0xcb, 0x55, 0x71, 0x06, 0xb5, 0xc7, + 0x6e, 0x22, 0x3e, 0xd2, 0x8e, 0x2a, 0xc3, 0x6b, + 0x76, 0xdc, 0x95, 0x99, 0x1b, 0x9a, 0xba, 0x43, + 0x4c, 0xd8, 0xab, 0x6e, 0x94, 0x9f, 0x0d, 0x65, + 0x1d, 0x5f, 0x3e, 0xd5, 0xc3, 0xb7, 0x65, 0xa9, + 0x5e, 0x55, 0xf3, 0xf0, 0xaf, 0x4a, 0x07, 0x35, + 0x39, 0x68, 0x72, 0xea, 0xca, 0x16, 0x79, 0x24, + 0x13, 0x52, 0x9e, 0x66, 0x45, 0xd5, 0x94, 0xea, + 0xfa, 0x29, 0x19, 0xa4, 0xa8, 0x29, 0x20, 0x8a, + 0x73, 0x48, 0x07, 0x34, 0xff, 0x00, 0xdf, 0x2b, + 0xe3, 0xd6, 0x32, 0xea, 0xa3, 0xb8, 0x97, 0x51, + 0xb8, 0xa7, 0xf8, 0xa0, 0xa9, 0x8d, 0x0d, 0x27, + 0x0b, 0x3d, 0xea, 0xcb, 0x7c, 0x79, 0x52, 0x43, + 0x52, 0x55, 0x90, 0x6a, 0xfd, 0x6a, 0x98, 0xec, + 0xb2, 0xeb, 0x69, 0xc8, 0x22, 0x85, 0xa6, 0x69, + 0x23, 0x2d, 0x9a, 0x97, 0x72, 0x66, 0xcc, 0xc2, + 0x59, 0x3c, 0xd5, 0x8d, 0xaa, 0x55, 0xfa, 0x64, + 0xb2, 0x46, 0xad, 0x23, 0xd3, 0xaf, 0x07, 0x49, + 0x04, 0x76, 0xab, 0x4c, 0xd1, 0x3e, 0x28, 0x20, + 0xf3, 0x1b, 0xd3, 0xae, 0x16, 0xdb, 0x2b, 0xa9, + 0x32, 0x17, 0x29, 0xe5, 0x3a, 0xbe, 0xfe, 0xc1, + 0xb7, 0xdc, 0x1d, 0xb7, 0xb9, 0xe2, 0x37, 0x47, + 0x89, 0xa2, 0x3a, 0xde, 0x95, 0xa4, 0xd2, 0xb0, + 0x49, 0x23, 0x6f, 0xdc, 0x7f, 0xff, 0xc4, 0x00, + 0x27, 0x11, 0x00, 0x02, 0x02, 0x01, 0x02, 0x04, + 0x07, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x03, 0x11, 0x04, + 0x12, 0x10, 0x21, 0x31, 0x40, 0x13, 0x14, 0x22, + 0x32, 0x41, 0x50, 0x61, 0x42, 0x60, 0xff, 0xda, + 0x00, 0x08, 0x01, 0x02, 0x01, 0x01, 0x3f, 0x01, + 0xe0, 0xcc, 0x10, 0x64, 0xcf, 0x37, 0x5e, 0x25, + 0x76, 0xa5, 0xbc, 0xd7, 0xe8, 0x6f, 0xf6, 0x70, + 0xd2, 0x74, 0x9a, 0x94, 0x66, 0x71, 0xb4, 0xc1, + 0x85, 0x18, 0x80, 0x83, 0xdf, 0x5f, 0xec, 0xe1, + 0x45, 0x67, 0x3b, 0xa6, 0x4b, 0xdf, 0xf9, 0x2f, + 0xdc, 0x2c, 0x9a, 0x3c, 0xee, 0xef, 0x1c, 0x95, + 0x19, 0x10, 0xea, 0xdc, 0x46, 0xd4, 0xb3, 0xae, + 0x0c, 0x12, 0x9b, 0x57, 0xc3, 0x38, 0x9a, 0x4e, + 0xac, 0xe6, 0x6a, 0x2e, 0x5b, 0x71, 0x89, 0x43, + 0xec, 0x78, 0x0e, 0x46, 0x7b, 0xcd, 0x55, 0x3f, + 0xd0, 0x83, 0x82, 0x7a, 0x68, 0x62, 0x3e, 0x62, + 0xa9, 0x5a, 0x1b, 0x97, 0x59, 0xd3, 0x94, 0x1d, + 0x62, 0x72, 0x51, 0xde, 0x38, 0xdc, 0x31, 0x06, + 0x93, 0xd5, 0xf9, 0x35, 0x1a, 0x75, 0x0b, 0x94, + 0x9a, 0x7b, 0x50, 0x26, 0xd3, 0x0d, 0xf5, 0xe3, + 0xac, 0x5a, 0x9a, 0xe6, 0xcc, 0x4d, 0x3a, 0x2f, + 0xc7, 0x7e, 0x46, 0x79, 0x19, 0xa8, 0xaf, 0xc3, + 0x7e, 0x50, 0x28, 0x26, 0x22, 0xec, 0x50, 0x3e, + 0x86, 0xda, 0x85, 0x83, 0x13, 0xc9, 0xb2, 0xb0, + 0xc4, 0x1c, 0xbf, 0xd1, 0xff, 0x00, 0xff, 0xc4, + 0x00, 0x49, 0x10, 0x00, 0x01, 0x03, 0x02, 0x03, + 0x04, 0x04, 0x09, 0x06, 0x0a, 0x0b, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, + 0x11, 0x05, 0x12, 0x21, 0x13, 0x31, 0x41, 0x51, + 0x14, 0x22, 0x32, 0x71, 0x06, 0x10, 0x15, 0x23, + 0x42, 0x61, 0x81, 0x91, 0xb1, 0x24, 0x33, 0x40, + 0x72, 0x73, 0xc1, 0x20, 0x43, 0x50, 0x74, 0x83, + 0x92, 0xb2, 0xc3, 0xd1, 0xf0, 0x16, 0x30, 0x34, + 0x52, 0x62, 0xa1, 0xc2, 0xd2, 0xe1, 0xe2, 0xf1, + 0xf2, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, + 0x06, 0x3f, 0x02, 0xf1, 0x2e, 0x4b, 0xa1, 0x45, + 0x08, 0xde, 0x11, 0xbe, 0xbe, 0x66, 0x4f, 0xea, + 0xa7, 0xf8, 0xd3, 0xa6, 0x3a, 0x5c, 0x4e, 0xcf, + 0x7e, 0xd0, 0x01, 0xf9, 0x06, 0x5f, 0x70, 0xf8, + 0xf8, 0xa6, 0xdc, 0x81, 0xd6, 0x4f, 0xdf, 0x49, + 0x31, 0xc8, 0x0d, 0x25, 0x36, 0xf9, 0xdb, 0x53, + 0x6d, 0x15, 0x81, 0x91, 0x20, 0x6a, 0x6b, 0x45, + 0x03, 0xdd, 0xe2, 0xb1, 0x5a, 0x41, 0xf5, 0x9a, + 0xf9, 0xc4, 0xfb, 0xea, 0xc1, 0x69, 0x27, 0xd4, + 0x7e, 0x95, 0x2f, 0xb8, 0x7c, 0x7c, 0x51, 0x1c, + 0xd8, 0xb9, 0xd1, 0xf3, 0xdc, 0xae, 0xdd, 0x5d, + 0x2a, 0xfb, 0xd3, 0xb7, 0xbf, 0xb1, 0x3f, 0xf9, + 0x4f, 0xbe, 0xeb, 0x4e, 0x34, 0x97, 0x16, 0x72, + 0x95, 0x0b, 0x5e, 0x95, 0xaf, 0xe2, 0x8f, 0x8a, + 0x4c, 0xec, 0x49, 0xd7, 0x64, 0x3e, 0xf2, 0xee, + 0x02, 0x15, 0x95, 0x29, 0x1c, 0x05, 0x27, 0x05, + 0x05, 0xde, 0x84, 0x57, 0xbb, 0x3e, 0xbd, 0x8b, + 0xef, 0xa8, 0x53, 0x52, 0xe4, 0xc8, 0x8b, 0x4a, + 0xee, 0x95, 0x6a, 0xe3, 0x6b, 0xe6, 0x93, 0xec, + 0xac, 0xdf, 0x2b, 0x29, 0xe7, 0xd1, 0xd5, 0x4c, + 0xe2, 0x7e, 0x7d, 0x50, 0x9d, 0xfc, 0x6a, 0x1b, + 0xbe, 0x53, 0x7b, 0x58, 0xf2, 0xa7, 0x5d, 0x83, + 0xb5, 0x53, 0x6d, 0x9b, 0x15, 0xad, 0x19, 0x45, + 0xe9, 0xc8, 0x2c, 0x35, 0x24, 0xc8, 0x68, 0xe5, + 0x72, 0xed, 0x68, 0xdf, 0x79, 0xa4, 0xc8, 0x9c, + 0xb2, 0x84, 0x29, 0x59, 0x46, 0x51, 0x72, 0x4d, + 0x37, 0x32, 0x22, 0x8a, 0xd8, 0x5e, 0xeb, 0x8b, + 0x1a, 0x4b, 0x12, 0x5c, 0x52, 0xe4, 0xab, 0x50, + 0xc3, 0x29, 0xce, 0xba, 0x6a, 0x23, 0x6e, 0x3a, + 0xdc, 0xa7, 0x0d, 0x92, 0xcb, 0xcd, 0x94, 0x9d, + 0xd7, 0xfa, 0x03, 0xee, 0x45, 0x48, 0x5b, 0xe9, + 0x17, 0x4a, 0x54, 0x37, 0xd7, 0xcd, 0xc7, 0xfd, + 0x53, 0xfc, 0x69, 0xc8, 0xee, 0xa1, 0x90, 0xda, + 0xf7, 0xe5, 0x49, 0xbf, 0xc7, 0xc4, 0xa6, 0x9a, + 0x2a, 0xcd, 0x15, 0x8c, 0xcb, 0xb8, 0xa9, 0x33, + 0x9f, 0xec, 0x47, 0x68, 0xa8, 0x9f, 0xe7, 0xdb, + 0x51, 0xfa, 0x39, 0x56, 0xcd, 0xb0, 0x7b, 0x42, + 0xda, 0xd3, 0x72, 0x00, 0xcc, 0x06, 0x8a, 0x1c, + 0xc5, 0x21, 0x63, 0x72, 0x85, 0xfc, 0x48, 0xfb, + 0x4f, 0xdd, 0x54, 0x3f, 0xce, 0x7f, 0xd2, 0x6a, + 0x2a, 0x3c, 0x93, 0x89, 0x2f, 0x65, 0x19, 0x23, + 0x30, 0x8d, 0xd4, 0x3d, 0x5e, 0x7c, 0xaa, 0xdd, + 0x15, 0xb4, 0x31, 0x39, 0xbd, 0xab, 0xac, 0xa7, + 0xb3, 0x75, 0x01, 0x7a, 0x9f, 0x87, 0x47, 0x75, + 0x0e, 0x33, 0x21, 0x1e, 0x6c, 0xad, 0x5a, 0x22, + 0xfd, 0x95, 0x77, 0x8a, 0x6d, 0xa4, 0x2f, 0x6e, + 0xeb, 0x9e, 0x71, 0xe9, 0x17, 0xbe, 0xd5, 0x47, + 0x8d, 0x3f, 0x01, 0xcd, 0x60, 0x61, 0xb1, 0xca, + 0x55, 0xf6, 0xab, 0x1f, 0xcf, 0xba, 0xb1, 0x2c, + 0x0a, 0x49, 0xb3, 0xad, 0xa8, 0xad, 0x09, 0x3c, + 0xc6, 0x8a, 0xfb, 0xaa, 0x6e, 0x32, 0x60, 0x74, + 0xc8, 0x92, 0x06, 0x8e, 0xf0, 0x03, 0x4e, 0x3c, + 0x0e, 0x95, 0x10, 0x4d, 0x8c, 0xb8, 0x72, 0xdb, + 0x70, 0x29, 0xa7, 0x97, 0xe8, 0x9f, 0xac, 0x3e, + 0x83, 0xd3, 0xe3, 0xa7, 0x2e, 0xbe, 0x75, 0x23, + 0x77, 0x7f, 0x8f, 0x10, 0x75, 0x29, 0x25, 0x6f, + 0xb8, 0x1a, 0x16, 0x15, 0x88, 0x39, 0xb2, 0x5e, + 0x77, 0x96, 0x94, 0x76, 0x75, 0xb5, 0x58, 0x8b, + 0x1f, 0x5f, 0x89, 0x8f, 0xa8, 0x3e, 0x1e, 0x24, + 0xcf, 0x0e, 0x7c, 0x8c, 0x39, 0x6d, 0xbd, 0xba, + 0xbd, 0x8b, 0x7c, 0x6a, 0x14, 0x64, 0x2b, 0x3b, + 0xfb, 0x5d, 0xa6, 0x44, 0xea, 0x72, 0xd8, 0xeb, + 0x50, 0xe3, 0x3e, 0x24, 0xe7, 0x6d, 0x84, 0xa1, + 0x69, 0xd8, 0x13, 0xc2, 0xa4, 0x4c, 0x4c, 0x55, + 0x34, 0xd0, 0xea, 0x42, 0x8e, 0x45, 0x96, 0xed, + 0xb8, 0xdb, 0x80, 0xa9, 0x53, 0xa7, 0x49, 0x6d, + 0x53, 0xe5, 0x1e, 0x92, 0xb9, 0x67, 0xf1, 0x6a, + 0xe0, 0x9e, 0xee, 0x15, 0x22, 0x1e, 0x22, 0x17, + 0x9a, 0x33, 0x64, 0xc6, 0x25, 0x27, 0xaf, 0xfe, + 0x0a, 0x38, 0x93, 0xf3, 0xa6, 0x22, 0x5c, 0x87, + 0x54, 0xb7, 0xd3, 0x1d, 0xf2, 0x8b, 0x1b, 0xee, + 0x35, 0x12, 0x44, 0x27, 0x5e, 0x94, 0x84, 0xd9, + 0x6f, 0x67, 0x39, 0xd6, 0x2f, 0xda, 0xb9, 0xee, + 0xa9, 0x4c, 0xce, 0x61, 0xd7, 0xa0, 0x85, 0x82, + 0xcc, 0xe6, 0x1b, 0xba, 0x72, 0xab, 0x50, 0x15, + 0x50, 0x63, 0xe0, 0x30, 0x54, 0xb9, 0x19, 0xee, + 0xec, 0x90, 0xce, 0x40, 0x07, 0xae, 0x90, 0x8b, + 0xdf, 0x28, 0xb5, 0xfe, 0x80, 0xe3, 0x0e, 0x0b, + 0xb6, 0xe0, 0xca, 0x6b, 0x34, 0x87, 0x83, 0x91, + 0x46, 0xb9, 0x46, 0xf5, 0x52, 0xa4, 0x43, 0x67, + 0x64, 0xb6, 0xb5, 0x52, 0x53, 0xc5, 0x34, 0x98, + 0xd2, 0x1c, 0xd8, 0xb8, 0x95, 0x1d, 0xe3, 0x43, + 0x47, 0xe5, 0x8d, 0x7b, 0xe9, 0xe7, 0x53, 0xd4, + 0x68, 0xac, 0x95, 0x3a, 0xa1, 0x40, 0xec, 0x76, + 0xee, 0x7f, 0x7d, 0xdd, 0x6a, 0xc3, 0x41, 0x5a, + 0x50, 0xc0, 0x3c, 0x9f, 0x0f, 0xa4, 0x95, 0x65, + 0xda, 0x66, 0x39, 0x37, 0x5e, 0xf4, 0x33, 0x04, + 0xe6, 0xae, 0xc8, 0xf7, 0x57, 0x64, 0x55, 0xac, + 0x2d, 0xca, 0xbb, 0x22, 0xb4, 0x00, 0x57, 0x64, + 0x55, 0xb2, 0x8b, 0x72, 0xae, 0xaa, 0x42, 0x7b, + 0xbe, 0x86, 0x41, 0xd4, 0x1d, 0x2d, 0x4e, 0x32, + 0x47, 0x9b, 0x3d, 0x66, 0xcf, 0x31, 0x48, 0x40, + 0xf4, 0x8d, 0xa9, 0xb8, 0xed, 0x0b, 0x25, 0x03, + 0xf0, 0x11, 0xf6, 0x9f, 0xba, 0xa8, 0xe9, 0xc2, + 0xa6, 0xcb, 0x1b, 0x66, 0x4b, 0xa5, 0x84, 0x2f, + 0x4e, 0xaf, 0x21, 0x4b, 0x42, 0xd5, 0xb1, 0x9c, + 0x84, 0xd9, 0xe4, 0x36, 0xab, 0x1f, 0xac, 0x9a, + 0xc7, 0x31, 0x37, 0x25, 0x3d, 0x36, 0x43, 0x32, + 0x8c, 0x66, 0x83, 0xeb, 0x25, 0x29, 0xd4, 0x6b, + 0x6f, 0x6d, 0x31, 0x88, 0x7f, 0x4a, 0xe5, 0x74, + 0xa7, 0x53, 0x9f, 0x23, 0x44, 0x14, 0xa0, 0xf2, + 0xcb, 0x4d, 0xe1, 0xee, 0xcf, 0x53, 0x2f, 0x09, + 0x4a, 0x53, 0x98, 0x83, 0x7b, 0xd4, 0xd5, 0xae, + 0x2c, 0x3b, 0xcd, 0xad, 0xea, 0xac, 0x3f, 0x07, + 0x47, 0x84, 0x13, 0x96, 0xdc, 0xac, 0x97, 0x71, + 0x4a, 0xd4, 0x66, 0x55, 0xa9, 0xd4, 0xbb, 0x8b, + 0xcb, 0xc4, 0x20, 0x3c, 0xc2, 0x81, 0x59, 0x5e, + 0x57, 0x18, 0x58, 0xd4, 0x1f, 0x8d, 0x4c, 0xda, + 0xf8, 0x41, 0x3a, 0x3e, 0xc3, 0x2d, 0xb2, 0x2a, + 0xf7, 0xbd, 0x46, 0xc2, 0x25, 0x62, 0x0a, 0xc5, + 0x22, 0xbe, 0x50, 0x2e, 0xe0, 0xeb, 0x0c, 0xd5, + 0x1f, 0x0a, 0x46, 0x27, 0x31, 0x10, 0x9e, 0x29, + 0x51, 0x6c, 0x3c, 0x79, 0x5e, 0xc2, 0x9e, 0x40, + 0x71, 0xc6, 0xba, 0x9a, 0x2d, 0xb5, 0x59, 0x43, + 0xdb, 0x53, 0xe7, 0xbd, 0x88, 0xcb, 0x54, 0xbb, + 0x38, 0xa4, 0xbb, 0xb5, 0x37, 0x4e, 0x4d, 0xd6, + 0xa6, 0xe1, 0x62, 0xf2, 0x5d, 0x79, 0x13, 0x1a, + 0x0a, 0x64, 0xbc, 0xab, 0xd8, 0x9d, 0x53, 0x6e, + 0xfa, 0x6a, 0x26, 0x1e, 0xb5, 0x37, 0x3a, 0x49, + 0x24, 0x29, 0x06, 0xc5, 0x28, 0x48, 0xba, 0x8d, + 0x4f, 0x91, 0x37, 0x10, 0x96, 0xeb, 0xa5, 0x45, + 0xa0, 0x76, 0xa7, 0xa8, 0x2c, 0x0d, 0xc7, 0xae, + 0xb1, 0x04, 0x3b, 0xe1, 0x04, 0xe6, 0x13, 0x18, + 0x80, 0x32, 0x2a, 0xf7, 0xdf, 0xfc, 0x29, 0xb2, + 0x71, 0x97, 0xb1, 0x48, 0xab, 0x41, 0x43, 0xcc, + 0xc8, 0x55, 0x94, 0xdf, 0x25, 0x8f, 0x75, 0xaa, + 0x63, 0x89, 0x93, 0x22, 0x76, 0x1b, 0x16, 0x46, + 0xc9, 0x48, 0x7d, 0x79, 0x85, 0x8f, 0x0f, 0xf9, + 0xa7, 0xf1, 0x5c, 0x32, 0x5b, 0xad, 0x14, 0x27, + 0x3a, 0x16, 0xca, 0xf2, 0x90, 0x79, 0x1a, 0xc2, + 0xf2, 0x62, 0xf2, 0xe1, 0xc7, 0xe8, 0xa9, 0x75, + 0xc7, 0xc2, 0xf3, 0x2d, 0xe7, 0x17, 0xad, 0xbb, + 0x85, 0x4a, 0xc0, 0xd5, 0xe1, 0x04, 0xe4, 0xb4, + 0xce, 0x7b, 0x3a, 0x15, 0xd6, 0x36, 0xac, 0x49, + 0x6e, 0xcb, 0x5e, 0x25, 0x75, 0xa3, 0xa2, 0xc9, + 0x7b, 0x7a, 0x6f, 0xbc, 0x1e, 0xeb, 0x54, 0x79, + 0xed, 0xf8, 0x5b, 0x29, 0x52, 0x9c, 0x40, 0x5f, + 0x56, 0xca, 0x6d, 0x27, 0x96, 0x5a, 0x0c, 0xe2, + 0x8a, 0xda, 0x4b, 0x69, 0x6a, 0x4e, 0xda, 0xf7, + 0xda, 0x0e, 0x0a, 0xfc, 0x1d, 0x9b, 0xa2, 0xca, + 0x1d, 0x95, 0x8d, 0xe2, 0x81, 0x69, 0xc6, 0x56, + 0x01, 0xb8, 0x55, 0xed, 0x43, 0x37, 0x6a, 0xda, + 0xfe, 0x02, 0x3e, 0xd3, 0xf7, 0x55, 0x80, 0x7d, + 0x83, 0x9f, 0x7d, 0x0f, 0x08, 0xf0, 0x5b, 0xa1, + 0xb0, 0xac, 0xcf, 0x34, 0x9f, 0x47, 0xfe, 0xa6, + 0xb1, 0x01, 0x8a, 0x84, 0xa6, 0x34, 0xc9, 0xaa, + 0x4a, 0x82, 0xbb, 0x37, 0x55, 0xad, 0xaf, 0x0a, + 0xdb, 0x61, 0x58, 0xa3, 0x91, 0xd7, 0xe8, 0x87, + 0x3f, 0xdc, 0x2b, 0x12, 0xc2, 0x71, 0x17, 0x4c, + 0x85, 0x43, 0xdc, 0xe2, 0x8e, 0x62, 0x35, 0xb1, + 0x17, 0xe3, 0x58, 0x0f, 0xe8, 0x7f, 0x6c, 0xd3, + 0xff, 0x00, 0x50, 0xfc, 0x2b, 0x12, 0xf2, 0x76, + 0x27, 0xe4, 0xe2, 0x9c, 0xb9, 0xbc, 0xd8, 0x56, + 0x6d, 0xf4, 0xfb, 0x38, 0xf2, 0x56, 0xee, 0x36, + 0x16, 0x43, 0x4f, 0xb8, 0xbb, 0xa7, 0x37, 0x77, + 0xc2, 0xb0, 0xe5, 0x2b, 0x40, 0x42, 0x2c, 0x7d, + 0x86, 0x9e, 0x24, 0xd8, 0x04, 0x1f, 0x85, 0x4e, + 0xd3, 0xd0, 0x91, 0xf0, 0x35, 0xe0, 0xee, 0x37, + 0x1a, 0xe1, 0xf8, 0x8d, 0x21, 0x2a, 0x50, 0xe5, + 0xe8, 0x9f, 0x7d, 0x63, 0x9e, 0x11, 0xc8, 0x46, + 0x54, 0x88, 0x66, 0x2c, 0x74, 0x9e, 0x1d, 0x5e, + 0xb9, 0xf7, 0xd4, 0xcf, 0xb7, 0x3f, 0xb2, 0x2b, + 0x16, 0xf9, 0x7c, 0xb8, 0x5b, 0x35, 0x0f, 0xec, + 0xae, 0x65, 0xcd, 0xa9, 0xdf, 0x53, 0x1f, 0x77, + 0x11, 0x76, 0x53, 0x4f, 0x84, 0x00, 0xa9, 0x6b, + 0xba, 0x81, 0x17, 0xd2, 0xfe, 0xda, 0xf0, 0xc2, + 0x34, 0x96, 0xc3, 0xac, 0xb8, 0xfa, 0x42, 0x92, + 0x7b, 0x8d, 0x4f, 0xc3, 0xd2, 0x4b, 0xb8, 0x56, + 0x20, 0x8b, 0x24, 0xab, 0x77, 0xff, 0x00, 0x42, + 0xb0, 0x9f, 0xcd, 0x5a, 0xfd, 0x91, 0x58, 0x9f, + 0xe9, 0x3e, 0xea, 0x4c, 0x2c, 0x4e, 0xdd, 0x1e, + 0x5a, 0xf6, 0x42, 0xfa, 0x75, 0xb7, 0x8d, 0x78, + 0x6e, 0xa2, 0xf6, 0x13, 0x8a, 0xb8, 0xcb, 0x9c, + 0x03, 0x9a, 0x1f, 0xd6, 0x15, 0x88, 0x44, 0x9e, + 0xe1, 0x7d, 0x70, 0xd6, 0x90, 0x97, 0x54, 0x6e, + 0x4d, 0xef, 0xa5, 0xf8, 0xf6, 0x7f, 0xab, 0x18, + 0xc9, 0xc6, 0x55, 0xe5, 0x00, 0xac, 0xd9, 0x84, + 0x71, 0x97, 0x75, 0xb7, 0x5e, 0x98, 0xc5, 0x46, + 0x2b, 0xb2, 0x76, 0x38, 0xca, 0xd2, 0x03, 0x00, + 0xa4, 0x0e, 0x37, 0xd7, 0x5b, 0xeb, 0x4a, 0x42, + 0xc0, 0x52, 0x54, 0x2c, 0x41, 0xe3, 0x58, 0x8e, + 0x14, 0xda, 0xd4, 0x88, 0xb2, 0xdd, 0xda, 0xa7, + 0x4f, 0x9b, 0xdd, 0xf7, 0x8a, 0xd8, 0xc2, 0xf0, + 0x9e, 0x6c, 0x78, 0x7b, 0x83, 0x2a, 0x4e, 0x72, + 0x07, 0xd6, 0xbd, 0x2d, 0xa8, 0xd9, 0x96, 0xe3, + 0x86, 0xee, 0x3c, 0xe6, 0xaa, 0x59, 0xa4, 0x62, + 0xcb, 0xc5, 0x8a, 0x24, 0xb4, 0x41, 0x67, 0x2b, + 0x02, 0xc8, 0xb1, 0xb8, 0xe3, 0xad, 0x29, 0x86, + 0xe4, 0x86, 0x64, 0x29, 0x39, 0x76, 0xfb, 0x3b, + 0xf7, 0x9c, 0xb7, 0xa7, 0x16, 0xc6, 0x22, 0xa7, + 0x9a, 0x77, 0xe7, 0x1a, 0x5b, 0x43, 0x5e, 0x5a, + 0xde, 0x9b, 0x9c, 0xd4, 0x95, 0xe1, 0xf3, 0xd3, + 0x6f, 0x3c, 0x84, 0xde, 0xf6, 0xdd, 0xa7, 0x3a, + 0x8e, 0x31, 0x19, 0x8b, 0x77, 0x11, 0x63, 0xb1, + 0x39, 0x94, 0x06, 0xd5, 0xea, 0xd2, 0xb6, 0x13, + 0x3c, 0x28, 0x99, 0x22, 0x19, 0xd1, 0x4d, 0x25, + 0xb0, 0x92, 0x47, 0x2b, 0xde, 0xbc, 0x91, 0x05, + 0xee, 0x82, 0xc6, 0x4d, 0x99, 0x56, 0x4c, 0xe7, + 0x2f, 0x1f, 0x69, 0xe7, 0x4e, 0x60, 0xf2, 0xa5, + 0x74, 0xc8, 0xe5, 0x05, 0xa4, 0x2b, 0x67, 0x94, + 0xa5, 0x36, 0xff, 0x00, 0x3a, 0x4e, 0x0b, 0x16, + 0x4f, 0x46, 0x6f, 0x26, 0xcd, 0x4e, 0xec, 0xee, + 0x48, 0xf4, 0xbd, 0xf5, 0x2a, 0x2c, 0x4c, 0x52, + 0xe8, 0x7b, 0x51, 0xb4, 0x60, 0x1c, 0x8a, 0xe7, + 0xbf, 0x97, 0x0a, 0x75, 0x50, 0xf1, 0xf9, 0x51, + 0xd4, 0xef, 0x6f, 0x66, 0x80, 0x2f, 0x4c, 0x4a, + 0x99, 0x8d, 0xca, 0xc4, 0x36, 0x17, 0x53, 0x6d, + 0x3c, 0x3a, 0xa1, 0x5c, 0x0d, 0x4a, 0x9a, 0x71, + 0x33, 0x27, 0xa5, 0x9c, 0xcf, 0xa0, 0xb2, 0x00, + 0x51, 0xf5, 0x6b, 0xa5, 0x3b, 0x0e, 0x5a, 0x73, + 0x36, 0xbe, 0x3c, 0x52, 0x79, 0x8a, 0x8d, 0x0d, + 0x2e, 0xe6, 0x53, 0x0c, 0xa5, 0xa0, 0xe1, 0x4f, + 0x21, 0x6b, 0xda, 0x8e, 0x30, 0x9c, 0x58, 0xaa, + 0x62, 0xcd, 0xdc, 0xbc, 0x71, 0x95, 0x57, 0xde, + 0x2d, 0x7d, 0x29, 0x70, 0x5e, 0x51, 0x42, 0x14, + 0xa4, 0xab, 0x32, 0x77, 0x8b, 0x1b, 0xd1, 0x61, + 0x8f, 0x0a, 0x26, 0xb7, 0x0b, 0x70, 0x69, 0x49, + 0xcc, 0xa0, 0x39, 0x66, 0xbd, 0x74, 0x68, 0x60, + 0xd8, 0x9c, 0xcb, 0x5a, 0xfb, 0x4b, 0x3e, 0xbf, + 0xc8, 0x9f, 0xff, 0xc4, 0x00, 0x2a, 0x10, 0x01, + 0x00, 0x02, 0x02, 0x01, 0x03, 0x03, 0x03, 0x04, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x81, + 0x10, 0x71, 0xf0, 0x91, 0xa1, 0xb1, 0x30, 0x40, + 0xc1, 0xd1, 0x20, 0x50, 0xf1, 0xe1, 0xff, 0xda, + 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x3f, 0x21, + 0xf4, 0xa0, 0xdb, 0x20, 0x1d, 0xab, 0x94, 0xf4, + 0x9a, 0x7d, 0x74, 0x1c, 0xe2, 0xf5, 0x4b, 0xd2, + 0x20, 0xde, 0x22, 0xbf, 0xdf, 0xfc, 0x07, 0x44, + 0xe2, 0x05, 0x28, 0xd0, 0x2e, 0xf1, 0x05, 0x3b, + 0xa7, 0x6a, 0xde, 0x71, 0x2e, 0xc2, 0xe4, 0x5c, + 0x12, 0x94, 0xff, 0x00, 0x45, 0x7e, 0x9d, 0x94, + 0x90, 0x13, 0xfe, 0x3e, 0x76, 0x72, 0x40, 0xfe, + 0xe2, 0xe5, 0xcf, 0x80, 0xe8, 0x9c, 0x4b, 0x25, + 0x57, 0x7f, 0x87, 0x77, 0x88, 0x2a, 0xd7, 0x32, + 0x0e, 0x38, 0xa2, 0xc1, 0xc7, 0xc8, 0x07, 0x4f, + 0x10, 0x41, 0x49, 0xca, 0xf7, 0x23, 0x98, 0xcc, + 0xe8, 0xdf, 0x5e, 0x06, 0xf0, 0x06, 0x61, 0xe0, + 0x14, 0xe9, 0x75, 0xf9, 0x10, 0x6e, 0x56, 0xa8, + 0x87, 0xba, 0x17, 0xe1, 0x89, 0x04, 0x49, 0x61, + 0xaa, 0xbd, 0xe3, 0xd4, 0xb6, 0x04, 0x80, 0xc0, + 0xed, 0x59, 0xcc, 0x10, 0x32, 0x48, 0x1d, 0x05, + 0xfc, 0xcc, 0x7d, 0x71, 0x17, 0x18, 0xf1, 0x12, + 0xb1, 0xb7, 0xf0, 0xc5, 0xeb, 0xc4, 0xb0, 0x38, + 0x8a, 0xa1, 0x1a, 0x44, 0xe2, 0x1f, 0x99, 0xb1, + 0xd1, 0xd6, 0x8d, 0x79, 0x88, 0x49, 0xf8, 0x8b, + 0xf0, 0x71, 0xd7, 0xf6, 0x19, 0x72, 0xce, 0x05, + 0x37, 0x8f, 0x6b, 0x95, 0xf6, 0x24, 0x34, 0xc1, + 0x91, 0x36, 0xf4, 0x64, 0x54, 0xf5, 0x25, 0xd5, + 0xfe, 0x62, 0x4c, 0xae, 0xf9, 0xdc, 0x40, 0xe3, + 0x2c, 0xb9, 0x0f, 0xf9, 0x3c, 0xc3, 0x1b, 0x77, + 0xfc, 0x43, 0xb5, 0x01, 0x37, 0xdf, 0xd3, 0xe0, + 0x77, 0x43, 0xf4, 0x71, 0xde, 0x45, 0x12, 0xf0, + 0x67, 0x3f, 0xaa, 0x62, 0x10, 0xb2, 0x09, 0x6a, + 0x1c, 0x78, 0xf7, 0xdc, 0x33, 0xa8, 0x72, 0x05, + 0x85, 0x38, 0xc9, 0x7d, 0x71, 0xda, 0x12, 0x7e, + 0x4c, 0x32, 0x9b, 0xf2, 0x67, 0x1d, 0xa3, 0x48, + 0xd4, 0xcd, 0x62, 0x0f, 0xb8, 0x43, 0x85, 0xc5, + 0x8e, 0x92, 0xb3, 0xee, 0xfa, 0xc4, 0x13, 0x99, + 0x87, 0x0b, 0x84, 0x6a, 0xc3, 0x3c, 0x4a, 0x9f, + 0x22, 0xd5, 0xc2, 0x6e, 0x07, 0x54, 0xe3, 0xac, + 0x3f, 0x5d, 0x2c, 0x89, 0x38, 0xff, 0x00, 0x50, + 0xfb, 0x3d, 0x73, 0x9d, 0x06, 0xb0, 0x65, 0xf1, + 0x96, 0x62, 0xe4, 0x50, 0x58, 0x13, 0x8f, 0xac, + 0x50, 0x82, 0xd9, 0xb4, 0x79, 0xc4, 0xf8, 0xbe, + 0x89, 0x74, 0x5c, 0xb8, 0x61, 0x50, 0x5d, 0xfd, + 0xf4, 0xd2, 0xe5, 0xe5, 0xa3, 0x5b, 0x42, 0xd3, + 0x8b, 0x62, 0x40, 0x56, 0x5c, 0xa1, 0x13, 0xbc, + 0x4f, 0x82, 0xd0, 0xd2, 0x94, 0x75, 0xb8, 0xf1, + 0x16, 0x6b, 0xb4, 0x27, 0x8b, 0x76, 0x0d, 0x8e, + 0xfd, 0x88, 0xdf, 0xee, 0x54, 0x83, 0x5a, 0x6e, + 0xea, 0xbb, 0x7b, 0x42, 0xd2, 0x68, 0x0b, 0xd4, + 0x15, 0xba, 0x79, 0xeb, 0x33, 0x44, 0x58, 0x64, + 0x01, 0xcc, 0xaa, 0xe3, 0x58, 0xa0, 0x0e, 0x55, + 0x9c, 0x20, 0xd6, 0x3a, 0x6a, 0x6c, 0x27, 0x4e, + 0x5a, 0xdb, 0x9e, 0x5b, 0x7a, 0x47, 0x6a, 0xd1, + 0xef, 0x51, 0xfa, 0xf5, 0x2d, 0x97, 0x23, 0xd9, + 0x84, 0xd5, 0x34, 0xb4, 0xe9, 0x0f, 0x48, 0x25, + 0xc7, 0x60, 0xd7, 0x37, 0x93, 0x70, 0x80, 0x30, + 0xcf, 0x97, 0x9b, 0x09, 0x43, 0xbe, 0x16, 0x8d, + 0xa7, 0x0a, 0x48, 0x46, 0x5b, 0xa3, 0xab, 0x06, + 0x60, 0x1f, 0x01, 0xa8, 0x28, 0x28, 0xc0, 0x1c, + 0x4b, 0xdf, 0x0b, 0xac, 0x5c, 0xb4, 0x9d, 0x1e, + 0xbb, 0x8d, 0x57, 0x55, 0xc4, 0x1c, 0x3a, 0x94, + 0xb5, 0xe9, 0x6d, 0x5c, 0x7d, 0xa6, 0x4f, 0x8d, + 0x62, 0x7f, 0xc1, 0x97, 0x99, 0x8e, 0x84, 0x5d, + 0x6a, 0xaf, 0x29, 0x33, 0xf3, 0x1d, 0x18, 0x87, + 0xd0, 0x4f, 0x45, 0x4c, 0x4b, 0x97, 0xe9, 0x72, + 0xfd, 0x2e, 0x5c, 0xb9, 0x7f, 0xe6, 0x97, 0x0c, + 0x70, 0x4a, 0x5c, 0x91, 0xf6, 0x09, 0x63, 0x97, + 0xfa, 0xd4, 0x5d, 0xa8, 0x4f, 0x96, 0xa6, 0x39, + 0x19, 0xee, 0xf2, 0xca, 0xf5, 0xf8, 0x1d, 0xd1, + 0x95, 0x29, 0xca, 0x6c, 0xdb, 0xec, 0x16, 0x93, + 0x2b, 0x44, 0x87, 0x4a, 0xed, 0x83, 0xf6, 0x71, + 0x07, 0xa7, 0x3b, 0x4a, 0x0e, 0xe6, 0xd3, 0x65, + 0xb8, 0x49, 0xb9, 0xdb, 0x8e, 0x98, 0x89, 0xfd, + 0x5b, 0xe0, 0x1c, 0x59, 0x7b, 0x07, 0x54, 0xb5, + 0xde, 0xe6, 0xb8, 0xa8, 0xd7, 0x13, 0x55, 0x09, + 0x64, 0x2e, 0x8e, 0x9a, 0x1e, 0x49, 0xaa, 0xcf, + 0x71, 0x8d, 0xdf, 0xb4, 0xa5, 0x33, 0xd7, 0x42, + 0xa1, 0xbe, 0xa3, 0xe1, 0x98, 0x33, 0x55, 0xa5, + 0xa4, 0x9c, 0x18, 0x96, 0xda, 0x5a, 0xdd, 0xc1, + 0x84, 0x81, 0x35, 0x02, 0x12, 0x06, 0x9d, 0x8f, + 0x3d, 0x65, 0x17, 0x9d, 0x08, 0x16, 0x2e, 0x83, + 0x1e, 0xf5, 0x37, 0x1f, 0x26, 0x87, 0x4e, 0x38, + 0x22, 0x64, 0x49, 0x15, 0x1d, 0x83, 0x6e, 0x66, + 0x73, 0xba, 0xaa, 0xee, 0xd7, 0x19, 0x80, 0x62, + 0x16, 0x5d, 0x5e, 0xfd, 0x0d, 0xd9, 0x75, 0x2f, + 0xf1, 0x2a, 0x6d, 0x04, 0xf0, 0xd6, 0xbb, 0x21, + 0x75, 0x7b, 0x0b, 0x50, 0x6b, 0xf7, 0xd4, 0x7b, + 0x27, 0x5f, 0x10, 0x72, 0x60, 0x7f, 0x3e, 0x66, + 0xff, 0x00, 0x1c, 0x1a, 0x05, 0x63, 0x5c, 0xca, + 0xed, 0x10, 0x56, 0x97, 0x0b, 0x7d, 0xc3, 0x86, + 0xc8, 0xfe, 0x98, 0x0d, 0x41, 0x6b, 0xb7, 0x1a, + 0xac, 0x6a, 0x33, 0x66, 0x1c, 0x0b, 0xec, 0x3c, + 0x35, 0xe3, 0xfc, 0x6e, 0x9b, 0x3b, 0x7f, 0xfe, + 0xbb, 0x43, 0x7a, 0x75, 0x34, 0x53, 0xd2, 0xa6, + 0x2b, 0x60, 0xc3, 0x57, 0xea, 0xcf, 0x81, 0xdd, + 0x10, 0xc2, 0x1b, 0xb4, 0x35, 0xc5, 0x9c, 0xb5, + 0xf5, 0x0e, 0x25, 0xf2, 0x2e, 0x80, 0x12, 0x1e, + 0xe6, 0x9e, 0xb5, 0x01, 0xc1, 0x72, 0x1c, 0x9d, + 0x34, 0xbf, 0x68, 0xe9, 0x0b, 0x6a, 0x07, 0xd2, + 0xd6, 0x62, 0x65, 0xee, 0x4c, 0x4f, 0x97, 0xb4, + 0xf7, 0xb3, 0x41, 0xe9, 0xbd, 0x7f, 0xec, 0xc2, + 0x9f, 0xea, 0xae, 0x0a, 0x6e, 0xb6, 0xfb, 0x10, + 0xb0, 0x9c, 0xa7, 0x36, 0x47, 0xde, 0x00, 0x84, + 0x2a, 0xf1, 0x01, 0x32, 0xb2, 0xc7, 0x78, 0x2c, + 0x5b, 0x6f, 0x4b, 0xdf, 0x83, 0xf3, 0x8a, 0x03, + 0xa5, 0x41, 0x60, 0xf7, 0x5b, 0xf7, 0xe9, 0xe9, + 0xd1, 0x4a, 0x5b, 0x77, 0xba, 0xf2, 0xb5, 0x2d, + 0x70, 0xad, 0x18, 0x3a, 0x14, 0xd2, 0x88, 0x21, + 0xfe, 0xbd, 0xff, 0x00, 0x24, 0x7a, 0x68, 0xdf, + 0x29, 0x13, 0xdb, 0x47, 0x73, 0xed, 0x25, 0x7c, + 0xde, 0xd1, 0x41, 0x00, 0x66, 0x8c, 0x5e, 0xe1, + 0xc1, 0xeb, 0x47, 0x35, 0x08, 0x45, 0x2c, 0x9e, + 0x0c, 0x3f, 0x89, 0x56, 0x95, 0x61, 0x32, 0xae, + 0x83, 0xb7, 0x7f, 0xd2, 0x0a, 0x81, 0xa7, 0x86, + 0x69, 0x67, 0x1b, 0xb6, 0x8e, 0x9d, 0x62, 0xae, + 0x3a, 0xc3, 0x29, 0xa2, 0xc7, 0x6d, 0x9f, 0x77, + 0x68, 0xa4, 0x58, 0x7d, 0x81, 0xd8, 0xca, 0x4e, + 0x80, 0x32, 0x7a, 0x86, 0x72, 0x1f, 0x45, 0xae, + 0xf1, 0x75, 0x07, 0x43, 0xe8, 0x85, 0x1f, 0x89, + 0x92, 0x1c, 0x6f, 0xf4, 0x87, 0x68, 0x67, 0x3e, + 0x29, 0x55, 0x34, 0xe8, 0x5e, 0x77, 0x05, 0xed, + 0x56, 0x18, 0xf0, 0x75, 0x33, 0xce, 0x2f, 0x98, + 0x0f, 0x1e, 0x81, 0x58, 0xbb, 0x1a, 0x2a, 0xe7, + 0x0c, 0x73, 0x2f, 0x31, 0xb1, 0x87, 0x51, 0x96, + 0x21, 0x2c, 0x2a, 0xbb, 0x0d, 0xdb, 0xaf, 0x7f, + 0xa4, 0xa0, 0x4a, 0xef, 0x47, 0xae, 0xfc, 0x46, + 0xef, 0x91, 0x2c, 0x31, 0x0e, 0x53, 0x67, 0xdd, + 0x1d, 0x91, 0xc0, 0x0e, 0xd0, 0x1c, 0xb6, 0x1c, + 0x8e, 0x38, 0x80, 0xd7, 0x8a, 0x83, 0xfc, 0x0b, + 0xc3, 0x6d, 0xe6, 0xa2, 0x28, 0x3d, 0xaa, 0x61, + 0x2b, 0xcf, 0x0f, 0xca, 0x64, 0x8b, 0x8b, 0xaa, + 0x73, 0x9e, 0xec, 0xb1, 0x63, 0x00, 0xc5, 0xa5, + 0x07, 0x35, 0x77, 0xfc, 0xc7, 0x13, 0x6d, 0xba, + 0x69, 0x46, 0x8b, 0x71, 0xed, 0x29, 0xea, 0xb0, + 0x3d, 0x87, 0x78, 0x80, 0x5b, 0x08, 0x62, 0x98, + 0xc9, 0xda, 0xea, 0xfc, 0xc4, 0xfe, 0x3c, 0x18, + 0xf2, 0x91, 0xf4, 0x94, 0xfb, 0x71, 0x5d, 0x0e, + 0x1f, 0x4a, 0xf3, 0x1d, 0x4a, 0xfb, 0x1c, 0x5f, + 0xe2, 0x26, 0x6e, 0xd1, 0x5f, 0x52, 0xbf, 0x8f, + 0xf4, 0x9f, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, + 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, + 0x91, 0x92, 0xac, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0xb8, 0xfb, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x49, 0x26, 0xba, 0x16, 0x58, 0x80, 0x01, + 0x04, 0x00, 0x49, 0x24, 0x92, 0x49, 0x24, 0x90, + 0xd6, 0xc4, 0xe4, 0x40, 0x24, 0x02, 0x00, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x43, 0x1e, 0xf1, 0x31, + 0x60, 0x00, 0x09, 0x00, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x20, 0x29, 0x33, 0x55, 0x92, 0x41, 0x04, + 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x24, 0x5a, 0x09, 0x20, 0x80, 0x00, 0x20, 0x92, + 0x09, 0x04, 0x92, 0x01, 0x24, 0x33, 0x19, 0x04, + 0x12, 0x40, 0x20, 0x12, 0x08, 0x20, 0x00, 0x01, + 0x20, 0x92, 0x49, 0x24, 0x80, 0x48, 0x20, 0x90, + 0x49, 0x20, 0x10, 0x00, 0x00, 0x82, 0x49, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x3f, 0xff, 0xc4, 0x00, 0x27, + 0x11, 0x01, 0x00, 0x02, 0x01, 0x03, 0x03, 0x03, + 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x11, 0x21, 0x31, 0x41, 0x51, + 0x40, 0x61, 0x71, 0x81, 0x91, 0xb1, 0x10, 0x60, + 0xa1, 0xf1, 0xc1, 0xd1, 0xf0, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, 0x10, 0xfa, + 0x53, 0x7f, 0x71, 0xa3, 0x9e, 0xf0, 0xb8, 0xa9, + 0xe5, 0xb4, 0x34, 0x29, 0x37, 0x95, 0xff, 0x00, + 0x04, 0x2f, 0x32, 0xd5, 0x33, 0xab, 0xd7, 0xe0, + 0xbd, 0xdf, 0x86, 0x15, 0x62, 0xb0, 0x67, 0xde, + 0x02, 0x49, 0x05, 0xb7, 0x88, 0xac, 0xac, 0x73, + 0x0e, 0x33, 0x0a, 0x35, 0x45, 0x28, 0xef, 0x32, + 0x40, 0x3c, 0x75, 0x9a, 0xb4, 0x4b, 0x0d, 0x60, + 0x7a, 0xef, 0xc3, 0x32, 0x34, 0xe6, 0xbf, 0x31, + 0xc2, 0x31, 0x1b, 0xad, 0xe2, 0x54, 0x88, 0x34, + 0x34, 0xcd, 0xfe, 0xd0, 0x32, 0x1c, 0xf0, 0x85, + 0x53, 0x94, 0x7b, 0x53, 0xd6, 0x5e, 0xf1, 0x52, + 0xf1, 0xfe, 0x65, 0xab, 0xf9, 0x63, 0xfa, 0x8c, + 0xd9, 0x66, 0xb5, 0x5a, 0x78, 0x82, 0xae, 0xdd, + 0x94, 0xac, 0x6a, 0x19, 0xcd, 0x5f, 0x1e, 0x20, + 0xcf, 0x87, 0xf6, 0x05, 0x42, 0xe8, 0xb8, 0xd3, + 0x38, 0x26, 0xfe, 0x75, 0x3c, 0xc7, 0x4b, 0x66, + 0xbd, 0xba, 0xb6, 0xc1, 0xa1, 0x8e, 0xae, 0x09, + 0xab, 0xe2, 0x50, 0x1d, 0x90, 0x94, 0xaa, 0x8a, + 0x0f, 0x39, 0xa8, 0x15, 0x22, 0xad, 0x7b, 0xd4, + 0x65, 0xae, 0xcd, 0x62, 0x19, 0x56, 0x18, 0x51, + 0x06, 0xcb, 0x7c, 0xc1, 0xbe, 0xab, 0x5c, 0xc7, + 0xa2, 0x96, 0xc9, 0xcf, 0x80, 0xe1, 0xde, 0x24, + 0x7c, 0x11, 0x6b, 0x0f, 0xa6, 0xce, 0x92, 0x8a, + 0xc1, 0xa4, 0x6a, 0xb9, 0x75, 0xef, 0x12, 0x40, + 0xf0, 0x1b, 0x79, 0x8d, 0x44, 0x9b, 0x61, 0xf9, + 0xd7, 0xe2, 0x5a, 0xb6, 0xcd, 0x3a, 0xc6, 0xe9, + 0x08, 0xd8, 0x53, 0xa2, 0x5b, 0x38, 0xa8, 0x6e, + 0x31, 0x5f, 0x80, 0x1f, 0x5a, 0x23, 0xa5, 0x6a, + 0x7f, 0x53, 0x3d, 0x7b, 0x0f, 0xaf, 0x93, 0x64, + 0x8a, 0xc5, 0x51, 0xc6, 0xd6, 0x91, 0xee, 0x49, + 0xab, 0xfb, 0x8f, 0xff, 0xc4, 0x00, 0x1f, 0x11, + 0x01, 0x01, 0x01, 0x00, 0x03, 0x01, 0x00, 0x02, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x11, 0x21, 0x31, 0x40, 0x41, 0x10, + 0x50, 0x51, 0x60, 0x81, 0xff, 0xda, 0x00, 0x08, + 0x01, 0x02, 0x01, 0x01, 0x3f, 0x10, 0xfc, 0x39, + 0xa0, 0xb9, 0x46, 0x4f, 0x5d, 0xb7, 0x3f, 0xe7, + 0xbf, 0xbe, 0xc3, 0x19, 0x06, 0x76, 0x08, 0xe0, + 0x88, 0x9b, 0x3a, 0x83, 0xec, 0xe6, 0xc8, 0xf3, + 0xb4, 0xea, 0x6e, 0x5d, 0x11, 0xb2, 0x31, 0xb3, + 0x64, 0x9e, 0xbe, 0xc6, 0xbd, 0xb2, 0x88, 0x93, + 0xa2, 0x87, 0x1b, 0x00, 0xbe, 0x24, 0x1f, 0x22, + 0x47, 0x0e, 0xb6, 0x5d, 0xfe, 0x46, 0x5e, 0xb1, + 0x99, 0x8c, 0x38, 0xd2, 0xe3, 0x21, 0xc7, 0x5b, + 0x60, 0xfb, 0x59, 0x6f, 0x2c, 0x5f, 0xc8, 0x63, + 0x1d, 0x04, 0x30, 0x7a, 0xde, 0x61, 0xdf, 0x19, + 0xa6, 0x62, 0x4c, 0x4b, 0x7a, 0xc0, 0x7f, 0x73, + 0x37, 0xd4, 0x30, 0xba, 0x63, 0x83, 0x0f, 0x69, + 0xa7, 0x76, 0x07, 0xa1, 0x87, 0x01, 0xc4, 0x7c, + 0x3e, 0xc6, 0x2f, 0xcb, 0x7f, 0x41, 0xa4, 0x42, + 0x47, 0xc1, 0x04, 0x62, 0xff, 0x00, 0x63, 0xff, + 0xc4, 0x00, 0x27, 0x10, 0x01, 0x01, 0x00, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x21, + 0x31, 0x41, 0x51, 0x61, 0x71, 0x81, 0x91, 0xa1, + 0x10, 0x30, 0x40, 0xc1, 0x20, 0x50, 0xb1, 0xf0, + 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, + 0x3f, 0x10, 0xfe, 0x03, 0x67, 0xa4, 0x9a, 0x04, + 0x01, 0xca, 0x72, 0x99, 0xa0, 0xc6, 0x92, 0x53, + 0xe5, 0x14, 0xa3, 0x97, 0xe5, 0xcc, 0xc8, 0x94, + 0x2e, 0xac, 0xde, 0x02, 0x67, 0x8f, 0xf3, 0xde, + 0x4f, 0xfe, 0x98, 0x2f, 0x97, 0x00, 0x7c, 0x0c, + 0xd7, 0x79, 0x3c, 0xfa, 0x53, 0x77, 0xbd, 0x61, + 0x46, 0x15, 0x86, 0xc0, 0x56, 0xbb, 0xf9, 0xce, + 0xdf, 0x84, 0x2a, 0x7d, 0x7f, 0x0b, 0xc2, 0x39, + 0x69, 0xf8, 0x5c, 0xff, 0x00, 0xe5, 0xff, 0x00, + 0xde, 0x09, 0x68, 0xe1, 0xa3, 0xf4, 0x3f, 0xe4, + 0x48, 0x57, 0x59, 0x38, 0xae, 0x4f, 0xb0, 0x21, + 0x59, 0x8c, 0xa9, 0x14, 0x04, 0xca, 0xde, 0x1c, + 0xc7, 0xde, 0x56, 0xbe, 0x46, 0x84, 0xb3, 0xf4, + 0x35, 0x86, 0x28, 0xa6, 0xd7, 0x43, 0x69, 0xd0, + 0x7e, 0xcf, 0x39, 0x60, 0x4a, 0x88, 0x9c, 0x7c, + 0x7d, 0x65, 0x44, 0xd7, 0x9c, 0x0d, 0x83, 0x8d, + 0x60, 0x38, 0x53, 0x51, 0x3b, 0x6e, 0xa6, 0xb1, + 0xbc, 0x61, 0x09, 0x36, 0x63, 0x9c, 0xd5, 0x65, + 0x8e, 0x6e, 0x3a, 0xe7, 0x98, 0x10, 0xe4, 0x05, + 0xea, 0x8c, 0x87, 0x2f, 0xda, 0x14, 0x3f, 0x2d, + 0x24, 0xcb, 0x0e, 0xea, 0x50, 0x21, 0x35, 0x20, + 0x44, 0x69, 0xbd, 0xe1, 0xb1, 0xf3, 0x34, 0xcb, + 0xbd, 0x54, 0x22, 0xea, 0x69, 0xbc, 0x5c, 0x9b, + 0x35, 0x24, 0x4a, 0xbb, 0x89, 0x2a, 0xbd, 0x58, + 0xc2, 0x97, 0xe7, 0xeb, 0x28, 0x0e, 0xe0, 0x25, + 0x7a, 0xfb, 0x31, 0x47, 0xa3, 0x2a, 0x12, 0x0d, + 0xa1, 0x38, 0x7e, 0x78, 0xc2, 0xff, 0x00, 0xd7, + 0x21, 0xd8, 0xb5, 0x06, 0x32, 0x8b, 0x8d, 0x4d, + 0x09, 0xd5, 0x12, 0xd2, 0x08, 0xbd, 0x9c, 0x1a, + 0x5f, 0xef, 0xa2, 0x07, 0x82, 0xc0, 0x98, 0x45, + 0x78, 0x36, 0x6e, 0x62, 0xa4, 0x76, 0x23, 0x46, + 0x23, 0x32, 0x29, 0x90, 0x00, 0x20, 0x48, 0xa8, + 0xe4, 0x3a, 0x73, 0xe3, 0x9c, 0xba, 0x79, 0x5f, + 0xbe, 0x51, 0xed, 0xd8, 0xfa, 0xc8, 0xc5, 0xfc, + 0x2a, 0x3e, 0x81, 0xda, 0x9f, 0x90, 0x66, 0xef, + 0xd8, 0xd5, 0x40, 0xe1, 0xf5, 0xfb, 0x62, 0x3f, + 0x52, 0x5e, 0x78, 0x13, 0xdf, 0x23, 0xe3, 0xe7, + 0x07, 0x30, 0xd8, 0x6c, 0x00, 0x97, 0xde, 0xf3, + 0xac, 0xfd, 0x16, 0x45, 0xa6, 0x18, 0x56, 0xbb, + 0x40, 0x7e, 0x60, 0x22, 0xdd, 0xeb, 0x25, 0x66, + 0x2b, 0xdc, 0xca, 0x2c, 0x9e, 0x2a, 0xd6, 0xc1, + 0xb3, 0xb1, 0x70, 0x91, 0x98, 0xc5, 0x0e, 0x86, + 0x90, 0x12, 0x01, 0x24, 0xc1, 0x03, 0xe3, 0x54, + 0x7a, 0x5e, 0xd3, 0x4b, 0x78, 0x1c, 0xaa, 0xe0, + 0x7c, 0x60, 0xab, 0x75, 0x1c, 0x31, 0x27, 0x85, + 0xf9, 0x4c, 0xe9, 0x8d, 0x96, 0x0d, 0xbc, 0xea, + 0x1e, 0x0f, 0x0c, 0x0c, 0xa0, 0x13, 0xbc, 0x12, + 0x07, 0x00, 0x05, 0xe1, 0xa7, 0x1a, 0x82, 0x9a, + 0xc2, 0xf2, 0xc2, 0x4a, 0x84, 0x63, 0x8e, 0x07, + 0xf7, 0xea, 0xbc, 0xf9, 0xca, 0x12, 0xa4, 0x06, + 0x96, 0x01, 0x3d, 0xb4, 0xcd, 0x36, 0xe0, 0x5c, + 0x75, 0x2b, 0x0f, 0x33, 0x8c, 0x31, 0x7e, 0x8a, + 0xe7, 0xc2, 0x57, 0x86, 0xfc, 0x61, 0x89, 0x27, + 0x90, 0x71, 0xb1, 0x65, 0x70, 0xc7, 0xed, 0x05, + 0x03, 0xd8, 0x9d, 0x60, 0x50, 0x0b, 0x8c, 0x2a, + 0x7c, 0x4b, 0x93, 0x04, 0x3a, 0x60, 0x15, 0x5c, + 0xaf, 0x0d, 0x41, 0x57, 0xaa, 0x48, 0x42, 0xe0, + 0x6f, 0x0c, 0x55, 0x51, 0x04, 0xb6, 0x06, 0x20, + 0x05, 0xe7, 0x24, 0xb4, 0x3f, 0x0c, 0xfa, 0x81, + 0x47, 0x9d, 0x26, 0x58, 0x50, 0x1b, 0xa5, 0x62, + 0x8a, 0x9e, 0xa3, 0xee, 0x62, 0xc3, 0x2e, 0x40, + 0xd5, 0x08, 0x82, 0xfb, 0x7c, 0x1c, 0x84, 0x8c, + 0x96, 0x81, 0xd8, 0x70, 0x21, 0xf4, 0x62, 0xf0, + 0x44, 0xbb, 0xf0, 0xea, 0x4d, 0xb5, 0xad, 0x61, + 0x88, 0xe1, 0x2e, 0xf5, 0x8a, 0x16, 0x0a, 0x3b, + 0xae, 0x1f, 0x0c, 0xbc, 0xa4, 0x04, 0xe4, 0xaa, + 0x5e, 0x75, 0x54, 0x3d, 0x36, 0xf3, 0x89, 0x24, + 0x68, 0x88, 0x1a, 0xd0, 0x5b, 0x96, 0x66, 0xb2, + 0xee, 0x05, 0xfb, 0x9f, 0xdf, 0x19, 0xd5, 0xf8, + 0x46, 0x87, 0x4f, 0x4e, 0x38, 0x1b, 0x86, 0x75, + 0xe9, 0xc1, 0x39, 0x46, 0xb3, 0x52, 0xe8, 0x51, + 0x5e, 0x00, 0xbc, 0x15, 0xd0, 0xed, 0xcb, 0x27, + 0x66, 0x38, 0x1b, 0xf4, 0x0a, 0xa5, 0x80, 0x7a, + 0x47, 0xf7, 0x89, 0x12, 0x48, 0xa5, 0x53, 0x89, + 0x37, 0x97, 0x85, 0xb7, 0x25, 0x78, 0x7c, 0x09, + 0xa3, 0x46, 0xaf, 0x39, 0xc8, 0x15, 0xf9, 0x2f, + 0x93, 0x8f, 0xf1, 0x86, 0xe4, 0x20, 0x50, 0x07, + 0x00, 0x61, 0x87, 0x65, 0x1b, 0x25, 0xea, 0xce, + 0xb1, 0xe0, 0x7c, 0x11, 0xa7, 0x21, 0xa0, 0x6f, + 0x6a, 0x21, 0xc9, 0x80, 0x85, 0x11, 0x59, 0x7b, + 0x0b, 0xb9, 0x57, 0x0e, 0x8f, 0xc2, 0xc6, 0x61, + 0x88, 0x42, 0x9d, 0x0f, 0x26, 0x77, 0xc9, 0xb6, + 0x15, 0xf2, 0x62, 0xf3, 0xeb, 0xd7, 0x09, 0x02, + 0xaa, 0x84, 0x0b, 0xe7, 0x5e, 0xb1, 0x67, 0x31, + 0x02, 0xae, 0xbb, 0x7b, 0xcf, 0x9c, 0xb4, 0x6b, + 0xeb, 0x14, 0x6c, 0x02, 0x18, 0x7f, 0x19, 0x41, + 0xc9, 0xf9, 0xc8, 0xf2, 0x64, 0x79, 0x32, 0x9e, + 0x71, 0x04, 0xa9, 0xbe, 0x3d, 0xe4, 0x0c, 0xa5, + 0xca, 0x79, 0xc8, 0xf2, 0x64, 0x3d, 0x99, 0x1e, + 0x4c, 0x8f, 0x26, 0x52, 0xca, 0x5c, 0x11, 0xef, + 0x29, 0xe7, 0x04, 0x7b, 0xfe, 0x13, 0x14, 0x73, + 0x1e, 0xb0, 0x33, 0xac, 0xb4, 0x42, 0x23, 0xf5, + 0x8a, 0x66, 0x61, 0x69, 0x5a, 0x8f, 0x6f, 0x27, + 0xc0, 0xf7, 0xa5, 0x20, 0x1d, 0x9f, 0x20, 0x3f, + 0xf7, 0x0d, 0xd8, 0xbe, 0xdd, 0xc7, 0x95, 0x6b, + 0x73, 0x97, 0xf0, 0xe7, 0xe8, 0xb2, 0x52, 0x80, + 0x67, 0xec, 0xbe, 0x06, 0x46, 0xd8, 0xc3, 0x73, + 0x1d, 0x73, 0xf3, 0x81, 0xa0, 0x29, 0xa0, 0x74, + 0xee, 0xda, 0x45, 0x1d, 0x3a, 0x19, 0xed, 0xaa, + 0x22, 0x92, 0xf3, 0x03, 0x42, 0xe4, 0x43, 0x93, + 0x6a, 0x23, 0x59, 0x6b, 0x4a, 0x07, 0xa3, 0x26, + 0x5c, 0x46, 0xe8, 0xa8, 0xa3, 0x62, 0x40, 0xbd, + 0x80, 0xb2, 0xf8, 0x19, 0x9a, 0x4c, 0x35, 0x0a, + 0x2e, 0x21, 0xc1, 0xae, 0x04, 0xd9, 0xc3, 0x6a, + 0x03, 0x41, 0x13, 0x65, 0x16, 0x68, 0x14, 0x73, + 0x54, 0xb5, 0x0f, 0xdf, 0x07, 0x90, 0x40, 0xa7, + 0xb8, 0xd8, 0x6d, 0x8a, 0x87, 0x45, 0xd0, 0xda, + 0xef, 0x39, 0xbd, 0x95, 0x58, 0x0b, 0xa1, 0x87, + 0x06, 0x32, 0x6f, 0xde, 0x02, 0x00, 0xd8, 0xd0, + 0xdf, 0x7b, 0xbc, 0xe2, 0xdf, 0xb6, 0x32, 0x72, + 0x30, 0x4b, 0x33, 0xa5, 0xe0, 0x8b, 0xb2, 0x72, + 0x50, 0x69, 0xc2, 0x17, 0x3c, 0x1d, 0x65, 0xd0, + 0xe1, 0x1c, 0x87, 0xe8, 0x2c, 0x74, 0xb9, 0x09, + 0x79, 0xf6, 0x12, 0x0f, 0x23, 0xcf, 0x5a, 0xe1, + 0x6c, 0x41, 0x45, 0x71, 0x7a, 0x9f, 0x40, 0xe0, + 0xdd, 0x70, 0x51, 0x98, 0x92, 0x35, 0x06, 0xfe, + 0x70, 0x1a, 0x68, 0xc6, 0xd7, 0x34, 0x30, 0x95, + 0xf5, 0x89, 0xa1, 0xc8, 0xf8, 0xc0, 0xf9, 0xb4, + 0x54, 0x4e, 0xb7, 0x28, 0x5f, 0x60, 0x9d, 0x65, + 0xbb, 0xfd, 0x23, 0x51, 0x62, 0x24, 0xa7, 0x88, + 0x38, 0xe2, 0x58, 0xa6, 0x0c, 0xa4, 0xf2, 0xe4, + 0xfa, 0xeb, 0x13, 0x59, 0xbf, 0x4c, 0xa2, 0xb8, + 0x04, 0xe6, 0xd5, 0xb4, 0x2a, 0x00, 0x7d, 0x8e, + 0x26, 0xe3, 0x55, 0xd8, 0xb4, 0x71, 0x93, 0x9a, + 0x82, 0xd0, 0xb9, 0x08, 0x3a, 0x48, 0x26, 0xbe, + 0x3f, 0xe0, 0xf0, 0xe1, 0x65, 0x8c, 0xb3, 0xe1, + 0x5e, 0x57, 0x6b, 0x4e, 0x6d, 0xa0, 0x55, 0xa0, + 0x15, 0xbf, 0x07, 0x6f, 0xde, 0x05, 0x58, 0x02, + 0xe6, 0x8d, 0xcf, 0x56, 0xff, 0x00, 0x28, 0x0a, + 0xb0, 0xcd, 0xa3, 0xbd, 0x32, 0x01, 0x51, 0x1f, + 0x6e, 0x2d, 0xac, 0x02, 0xbe, 0xc8, 0xe9, 0xe2, + 0x94, 0x68, 0xf1, 0xb1, 0xa2, 0x7f, 0x30, 0x4e, + 0x7c, 0xe0, 0xa9, 0x39, 0x46, 0x65, 0x5c, 0x4b, + 0x9f, 0x28, 0x14, 0x3e, 0x7f, 0x6c, 0x42, 0xdf, + 0x17, 0x57, 0x05, 0xba, 0x8a, 0x7c, 0x3e, 0x60, + 0x84, 0x88, 0x9d, 0x58, 0xf0, 0x02, 0xe2, 0x53, + 0xc1, 0x10, 0x99, 0x79, 0x52, 0xb2, 0x8f, 0x18, + 0x60, 0x13, 0x09, 0x81, 0x08, 0xd1, 0x2b, 0x44, + 0x89, 0x12, 0x65, 0x54, 0x2b, 0x30, 0x51, 0x4f, + 0xbd, 0x3e, 0x71, 0x37, 0x36, 0xf0, 0x02, 0xaa, + 0xf5, 0x89, 0xef, 0x43, 0x38, 0x72, 0x1e, 0x4f, + 0x79, 0x40, 0xb8, 0x9d, 0x52, 0x7e, 0x69, 0x7c, + 0x7a, 0xe3, 0x3f, 0xc9, 0xa9, 0xaf, 0xdc, 0x69, + 0x00, 0xe6, 0x8c, 0x30, 0xa6, 0xae, 0x78, 0xd9, + 0xcc, 0xfa, 0x25, 0x3a, 0x70, 0xf9, 0x73, 0x97, + 0x94, 0xb6, 0x92, 0x62, 0x43, 0x00, 0x6a, 0x9b, + 0xd6, 0x5e, 0xa8, 0x7a, 0x03, 0xb0, 0xf0, 0x1d, + 0x89, 0xb1, 0x04, 0xcb, 0x85, 0x41, 0xdb, 0x01, + 0x9a, 0x31, 0x5d, 0x20, 0xec, 0xc4, 0xef, 0xe8, + 0xb2, 0x85, 0x0d, 0x93, 0x17, 0x2d, 0xb1, 0xe2, + 0x8d, 0x9f, 0x3e, 0x89, 0x45, 0x14, 0x26, 0x8a, + 0xe5, 0xd6, 0xea, 0x95, 0xbf, 0x3f, 0x86, 0x68, + 0xc3, 0x45, 0x17, 0xf2, 0x28, 0x8a, 0xb0, 0x97, + 0x47, 0xf5, 0x13, 0xa7, 0x11, 0x0a, 0x0f, 0x4c, + 0xef, 0x1c, 0xf0, 0x80, 0x84, 0xc0, 0x35, 0xe7, + 0x6c, 0x8b, 0xbb, 0xbc, 0x68, 0x63, 0x0c, 0x20, + 0xa3, 0x60, 0x4b, 0x44, 0x08, 0x76, 0x47, 0x7b, + 0x85, 0x15, 0x00, 0xe9, 0x13, 0x48, 0xf2, 0x62, + 0x29, 0xc9, 0x36, 0x64, 0xb7, 0x94, 0x0b, 0x34, + 0x6d, 0x2b, 0x80, 0x42, 0x25, 0x53, 0x73, 0x03, + 0x72, 0x18, 0x4f, 0x17, 0x27, 0x8e, 0x8a, 0x81, + 0xda, 0x80, 0x05, 0x60, 0xf3, 0xb5, 0x77, 0x8e, + 0xaf, 0x73, 0xde, 0xad, 0x3b, 0x0a, 0xfd, 0x06, + 0x00, 0x19, 0xb9, 0x50, 0x06, 0x00, 0x46, 0x82, + 0x84, 0x3a, 0x6c, 0xf0, 0x55, 0x02, 0x48, 0x34, + 0xb4, 0x97, 0x48, 0x9a, 0x87, 0x38, 0x9d, 0x46, + 0xcf, 0xce, 0x51, 0xe9, 0x21, 0x74, 0x44, 0x79, + 0xc1, 0x46, 0xe7, 0x83, 0x08, 0x84, 0x69, 0xb0, + 0x36, 0xa3, 0x53, 0x14, 0xf9, 0x46, 0x30, 0x93, + 0x71, 0x35, 0xb7, 0xaa, 0x4c, 0x2d, 0x4c, 0x01, + 0xf3, 0x90, 0x60, 0xaa, 0xbb, 0xd3, 0x7a, 0xa7, + 0xb1, 0x86, 0x70, 0x82, 0xa5, 0xb2, 0x20, 0x8c, + 0xa9, 0xd6, 0x00, 0xa2, 0x8d, 0x29, 0x1c, 0x9a, + 0x76, 0x68, 0x79, 0xc6, 0x15, 0x15, 0x03, 0xb4, + 0x04, 0xd0, 0xa8, 0x54, 0xad, 0x45, 0x5e, 0xa1, + 0x5b, 0x45, 0x1d, 0x3a, 0x61, 0xf2, 0xe1, 0x60, + 0xc1, 0x32, 0x5c, 0x2b, 0xb4, 0x0d, 0x36, 0x69, + 0x37, 0x00, 0xc6, 0x72, 0x76, 0xe1, 0x3c, 0x20, + 0x89, 0x1d, 0x5c, 0xdd, 0x56, 0xcc, 0x4e, 0x6e, + 0x74, 0xdf, 0xec, 0x74, 0xe4, 0xd0, 0x65, 0x55, + 0x83, 0xd6, 0xbf, 0x83, 0xf2, 0xc9, 0x79, 0xcb, + 0x2f, 0x10, 0x01, 0x01, 0x04, 0x6f, 0x2a, 0xe3, + 0x48, 0x94, 0x15, 0xf3, 0x1d, 0x0a, 0x2a, 0xea, + 0xb4, 0xf1, 0x82, 0xab, 0x64, 0x66, 0x48, 0xa2, + 0x4a, 0x50, 0x6a, 0x6b, 0x59, 0x27, 0x13, 0x7c, + 0xc9, 0x20, 0x1a, 0x34, 0x00, 0x03, 0xdd, 0x5f, + 0xfa, 0x3f, 0xff, 0xd9, +}; + +static const uint8_t data_tm4c_jpg[] = +{ + /* /tm4c.jpg */ + 0x2f, 0x74, 0x6d, 0x34, 0x63, 0x2e, 0x6a, 0x70, + 0x67, 0x00, + 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, + 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x00, 0xff, 0xdb, 0x00, 0x43, + 0x00, 0x03, 0x02, 0x02, 0x03, 0x02, 0x02, 0x03, + 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x04, 0x05, + 0x08, 0x05, 0x05, 0x04, 0x04, 0x05, 0x0a, 0x07, + 0x07, 0x06, 0x08, 0x0c, 0x0a, 0x0c, 0x0c, 0x0b, + 0x0a, 0x0b, 0x0b, 0x0d, 0x0e, 0x12, 0x10, 0x0d, + 0x0e, 0x11, 0x0e, 0x0b, 0x0b, 0x10, 0x16, 0x10, + 0x11, 0x13, 0x14, 0x15, 0x15, 0x15, 0x0c, 0x0f, + 0x17, 0x18, 0x16, 0x14, 0x18, 0x12, 0x14, 0x15, + 0x14, 0xff, 0xdb, 0x00, 0x43, 0x01, 0x03, 0x04, + 0x04, 0x05, 0x04, 0x05, 0x09, 0x05, 0x05, 0x09, + 0x14, 0x0d, 0x0b, 0x0d, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xff, 0xc2, + 0x00, 0x11, 0x08, 0x00, 0x4b, 0x00, 0x4b, 0x03, + 0x01, 0x11, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, + 0x01, 0xff, 0xc4, 0x00, 0x1c, 0x00, 0x00, 0x02, + 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, + 0x04, 0x08, 0x01, 0x05, 0x07, 0x03, 0x02, 0xff, + 0xc4, 0x00, 0x19, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, + 0x03, 0x05, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, + 0x00, 0x02, 0x10, 0x03, 0x10, 0x00, 0x00, 0x01, + 0x50, 0xb1, 0x28, 0x0c, 0x81, 0x80, 0x18, 0x7d, + 0x3c, 0xfa, 0xff, 0x00, 0x6f, 0x2f, 0x59, 0xf9, + 0xfd, 0xb4, 0x67, 0x37, 0xa3, 0x2e, 0x0f, 0x01, + 0x50, 0x73, 0x27, 0x8f, 0x7d, 0x7c, 0xab, 0x5d, + 0x1e, 0x1d, 0x4f, 0xe7, 0xf7, 0x54, 0x5c, 0x6f, + 0x70, 0x48, 0x30, 0x49, 0x17, 0x07, 0x9e, 0x9e, + 0x7d, 0xe7, 0xb7, 0x97, 0x85, 0x9d, 0x8f, 0x87, + 0xae, 0xa5, 0xe7, 0x4e, 0xca, 0xb8, 0x41, 0x36, + 0x43, 0x0e, 0xb2, 0xc3, 0xd1, 0xe1, 0xa2, 0xd4, + 0x0e, 0xeb, 0xcb, 0xd1, 0x50, 0xf3, 0x55, 0x54, + 0x02, 0x55, 0x9d, 0x37, 0xdf, 0xc7, 0xda, 0xcc, + 0x81, 0x61, 0x79, 0xfd, 0xaa, 0x3c, 0xaa, 0xaa, + 0x19, 0x1e, 0x3d, 0x7c, 0xb6, 0x56, 0x00, 0x05, + 0x94, 0xf2, 0xf5, 0xa9, 0x51, 0x31, 0x54, 0x8d, + 0xbe, 0xb3, 0xb9, 0xd6, 0x40, 0x00, 0x2d, 0x16, + 0x37, 0x55, 0x25, 0xb2, 0x67, 0x30, 0x49, 0xda, + 0x9e, 0x68, 0x8e, 0x41, 0x3e, 0xc8, 0x85, 0xa8, + 0xce, 0xaa, 0x9a, 0xea, 0x4f, 0x1d, 0x67, 0xa1, + 0x46, 0xbc, 0xfb, 0x25, 0x10, 0x4d, 0x5d, 0x5a, + 0xbc, 0xd9, 0xaa, 0x8c, 0x80, 0x00, 0x18, 0x03, + 0xd8, 0xb1, 0x6b, 0xff, 0xc4, 0x00, 0x25, 0x10, + 0x00, 0x00, 0x06, 0x03, 0x00, 0x01, 0x05, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x01, 0x13, + 0x16, 0x36, 0x07, 0x10, 0x11, 0x15, 0x21, 0x12, + 0x14, 0x31, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, + 0x00, 0x01, 0x05, 0x02, 0xb8, 0x5f, 0x25, 0x73, + 0x60, 0xee, 0x26, 0x87, 0x71, 0x34, 0x3b, 0x89, + 0xa1, 0xdc, 0x4d, 0x0e, 0xe2, 0x68, 0x77, 0x13, + 0x42, 0x12, 0xc5, 0x39, 0x2c, 0xf3, 0xfb, 0xeb, + 0x88, 0x29, 0xa3, 0xbc, 0x8b, 0xb2, 0xe4, 0xa5, + 0xb5, 0xa7, 0x03, 0x02, 0xa4, 0x93, 0x8f, 0x4e, + 0xb4, 0x30, 0x96, 0xab, 0x47, 0xd7, 0x4a, 0xc6, + 0xbc, 0x59, 0x0b, 0x67, 0x1a, 0xcd, 0x9a, 0xce, + 0x3d, 0x3d, 0x66, 0xb2, 0x3f, 0x53, 0x11, 0x5e, + 0x26, 0xc1, 0x56, 0xcf, 0xcc, 0x2d, 0x85, 0x0c, + 0xb9, 0xb7, 0x66, 0x3e, 0x4d, 0x65, 0x9e, 0xc4, + 0xcc, 0xbd, 0x68, 0xdd, 0x79, 0x18, 0xb7, 0x2c, + 0xeb, 0xb2, 0xee, 0xd1, 0x9d, 0xfb, 0x38, 0x51, + 0x04, 0xfa, 0x40, 0x84, 0x55, 0xd9, 0xd6, 0x1b, + 0x05, 0x4f, 0xf6, 0x0a, 0x7d, 0x2c, 0x38, 0xb8, + 0xbb, 0xab, 0xe7, 0x41, 0x20, 0x1d, 0x13, 0x0a, + 0x56, 0xd5, 0xce, 0x33, 0x5a, 0x55, 0x32, 0x34, + 0xa3, 0x91, 0x54, 0x9f, 0xc7, 0x65, 0x89, 0x36, + 0x0d, 0x82, 0xa1, 0xfb, 0x5f, 0xb5, 0x79, 0x37, + 0xc7, 0xbb, 0x66, 0xd9, 0x72, 0xb2, 0x25, 0x2a, + 0x09, 0xff, 0x00, 0x31, 0xb0, 0x6c, 0x14, 0xdf, + 0x1d, 0xb5, 0x79, 0x37, 0xb7, 0xfa, 0x18, 0xa1, + 0x86, 0xa9, 0x6c, 0x1b, 0x06, 0xc1, 0xb0, 0x52, + 0xbc, 0x6a, 0xd5, 0xe4, 0xcd, 0x6a, 0x2f, 0x5e, + 0x40, 0x99, 0xb2, 0xa4, 0x51, 0xa3, 0x43, 0x22, + 0x6d, 0x83, 0x60, 0xd8, 0x36, 0x0d, 0x82, 0x8f, + 0xfb, 0x58, 0xb2, 0x1c, 0xa9, 0xdb, 0x63, 0xa6, + 0x61, 0xd4, 0x87, 0xf5, 0x05, 0xe4, 0x6b, 0xc7, + 0x12, 0x2e, 0xf1, 0xf6, 0x65, 0xd3, 0xf0, 0xf9, + 0xba, 0x8b, 0x3f, 0x49, 0x8b, 0xb7, 0x05, 0x24, + 0x73, 0xd5, 0x4c, 0xb2, 0x4b, 0x37, 0xc5, 0x13, + 0xc5, 0x6d, 0xa5, 0xc9, 0x2d, 0x11, 0x72, 0x8e, + 0xe1, 0x9e, 0x61, 0x5f, 0x8c, 0xad, 0x77, 0x72, + 0xb2, 0x98, 0xb4, 0x98, 0x8e, 0x17, 0xb4, 0xe5, + 0x75, 0xd4, 0xb9, 0xaa, 0xe5, 0x37, 0x16, 0xb5, + 0xdd, 0x62, 0x46, 0x67, 0x32, 0x29, 0xd0, 0x48, + 0x6e, 0x4a, 0xd9, 0x59, 0x8c, 0x7e, 0xfb, 0x8d, + 0x86, 0x1c, 0x6c, 0x38, 0xe3, 0x61, 0x87, 0x1b, + 0x0e, 0x38, 0xd8, 0x61, 0xc6, 0xc3, 0x8e, 0x36, + 0x1c, 0x23, 0x4c, 0x86, 0xda, 0xd5, 0xba, 0x4d, + 0x9b, 0x7f, 0xff, 0xc4, 0x00, 0x21, 0x11, 0x00, + 0x01, 0x04, 0x01, 0x03, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x02, 0x11, 0x20, 0x31, 0x10, 0x12, 0x21, + 0x13, 0x30, 0x32, 0x40, 0x51, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, 0x01, 0xbb, + 0xdd, 0xb4, 0x2e, 0xa3, 0xd3, 0x4c, 0x89, 0xec, + 0x3e, 0x09, 0x50, 0x99, 0xe2, 0x2e, 0xf7, 0x7c, + 0xd2, 0x13, 0x71, 0x62, 0xa1, 0x42, 0x84, 0xdc, + 0x54, 0xf1, 0x51, 0x8a, 0x9e, 0x6a, 0x28, 0x6c, + 0x3d, 0xff, 0x00, 0xff, 0xc4, 0x00, 0x22, 0x11, + 0x00, 0x01, 0x04, 0x00, 0x05, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x02, 0x11, 0x20, 0x03, 0x10, 0x12, + 0x31, 0x32, 0x13, 0x21, 0x30, 0x40, 0x41, 0xff, + 0xda, 0x00, 0x08, 0x01, 0x02, 0x01, 0x01, 0x3f, + 0x01, 0xbe, 0x1b, 0x75, 0x95, 0xd2, 0x62, 0x70, + 0x83, 0x1e, 0x0c, 0x39, 0x01, 0x4a, 0x7f, 0x23, + 0x76, 0x37, 0xe9, 0xca, 0x53, 0xb9, 0x1b, 0x35, + 0x03, 0x9b, 0xb7, 0xa8, 0x13, 0x53, 0xbd, 0x47, + 0x6a, 0x9d, 0xe8, 0x2c, 0x7d, 0xff, 0x00, 0xff, + 0xc4, 0x00, 0x3f, 0x10, 0x00, 0x02, 0x01, 0x03, + 0x01, 0x03, 0x06, 0x0a, 0x09, 0x02, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, + 0x04, 0x11, 0x12, 0x13, 0x21, 0x31, 0x05, 0x22, + 0x34, 0x41, 0x51, 0xd1, 0x14, 0x20, 0x32, 0x61, + 0x71, 0x81, 0x91, 0x92, 0x93, 0xb3, 0x10, 0x15, + 0x23, 0x42, 0x52, 0x62, 0x72, 0x74, 0xa1, 0xa2, + 0xb2, 0x06, 0x24, 0x73, 0x83, 0x94, 0xb1, 0xf1, + 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x06, + 0x3f, 0x02, 0xbc, 0x8a, 0x0b, 0x87, 0xb7, 0x8a, + 0x09, 0x1a, 0x25, 0x58, 0xd8, 0x8e, 0x07, 0x1d, + 0x55, 0xd3, 0xe7, 0xf8, 0xad, 0xdf, 0x5d, 0x3e, + 0x7f, 0x8a, 0xdd, 0xf5, 0xd3, 0xe7, 0xf8, 0xad, + 0xdf, 0x5d, 0x3e, 0x7f, 0x8a, 0xdd, 0xf5, 0xd3, + 0xe7, 0xf8, 0xad, 0xdf, 0x5d, 0x3e, 0x7f, 0x8a, + 0xdd, 0xf4, 0x13, 0xc3, 0xee, 0x04, 0x4b, 0xbe, + 0x46, 0xda, 0xb7, 0x0f, 0x6d, 0x74, 0x8b, 0x8f, + 0xf9, 0x0f, 0xdf, 0x51, 0x49, 0x37, 0x3a, 0x4c, + 0xba, 0x96, 0xed, 0xc3, 0x11, 0x9f, 0xe2, 0xb9, + 0x48, 0xba, 0x97, 0x41, 0x79, 0x26, 0xa5, 0x07, + 0x19, 0x1a, 0xbb, 0x6b, 0x93, 0x60, 0x6b, 0x7b, + 0x98, 0x21, 0x9e, 0xc8, 0xdf, 0x4b, 0x27, 0x84, + 0x6a, 0xd2, 0xba, 0x18, 0xe9, 0xf2, 0x7c, 0xdc, + 0x6a, 0x18, 0x35, 0x37, 0xd6, 0xaf, 0x77, 0xa0, + 0xfe, 0x11, 0x0f, 0xda, 0x6f, 0xc7, 0x13, 0xba, + 0x22, 0xde, 0xba, 0xbb, 0xbc, 0xb9, 0xb5, 0xbb, + 0x9e, 0xd9, 0x4c, 0x09, 0x0c, 0x0e, 0xfb, 0x26, + 0xe7, 0xa6, 0x4b, 0x31, 0xc7, 0x68, 0x23, 0xd3, + 0x4b, 0xc9, 0xf1, 0xc3, 0x77, 0x15, 0xb6, 0x75, + 0xb2, 0x4e, 0x98, 0x99, 0x63, 0xc6, 0xa3, 0xbb, + 0xb7, 0x1c, 0x3d, 0x55, 0xca, 0xed, 0x3c, 0x32, + 0x34, 0x70, 0xac, 0x12, 0xdb, 0xc7, 0x3d, 0xca, + 0xdb, 0x73, 0x64, 0xce, 0xe6, 0x66, 0xeb, 0x1c, + 0x3d, 0x55, 0xca, 0x30, 0xd9, 0x34, 0xe6, 0xfe, + 0x3b, 0xbd, 0x94, 0x0b, 0x21, 0xf2, 0x97, 0x11, + 0xea, 0xf6, 0x6b, 0x27, 0x3d, 0x82, 0x9a, 0xde, + 0xd8, 0x31, 0x47, 0x4d, 0xa0, 0x67, 0x39, 0x66, + 0xcf, 0xd1, 0x1f, 0xfa, 0x92, 0xfc, 0xc6, 0xae, + 0x51, 0x85, 0x70, 0x1a, 0x4b, 0xd7, 0x51, 0x9e, + 0x1b, 0xde, 0x93, 0xc1, 0xee, 0x9a, 0x5d, 0x11, + 0x1b, 0x45, 0x32, 0xae, 0xcc, 0xe9, 0xe7, 0xa9, + 0x41, 0x9e, 0xac, 0x06, 0xff, 0x00, 0xdd, 0xd4, + 0xaf, 0x2d, 0xf4, 0x57, 0x30, 0xcc, 0x23, 0x7c, + 0x99, 0x78, 0x91, 0xa9, 0x17, 0xd3, 0x80, 0x0d, + 0x5d, 0xb1, 0xe5, 0x91, 0x67, 0x7b, 0x18, 0xd8, + 0xcd, 0x13, 0xf5, 0xec, 0xc0, 0x0a, 0x3c, 0xfd, + 0x95, 0x71, 0x7a, 0x2f, 0x31, 0x2d, 0xcc, 0x53, + 0x6d, 0xf3, 0xbd, 0x8f, 0x5e, 0x9c, 0xfe, 0x6c, + 0x1f, 0x61, 0xaf, 0xaa, 0x6e, 0x6e, 0x0b, 0x45, + 0xb2, 0x8f, 0x29, 0xd5, 0x8f, 0x2c, 0x0f, 0x51, + 0x63, 0x42, 0xea, 0x7b, 0x97, 0x33, 0x31, 0xd6, + 0xb9, 0xfb, 0xbc, 0xd0, 0xb9, 0xf4, 0xe9, 0x02, + 0x97, 0x5b, 0x6a, 0xd2, 0xa1, 0x47, 0xa3, 0xe8, + 0x87, 0xf5, 0xcb, 0xf3, 0x1a, 0xaf, 0xe2, 0x27, + 0x48, 0x7b, 0xd7, 0x52, 0x7b, 0x39, 0xf5, 0xb5, + 0x87, 0x95, 0xda, 0x59, 0x1f, 0x56, 0xe6, 0x97, + 0x9d, 0xa1, 0x74, 0xe8, 0x18, 0x1c, 0x58, 0x86, + 0xe1, 0xdb, 0x45, 0x53, 0x95, 0x63, 0x5d, 0x18, + 0xcf, 0xda, 0x32, 0xaa, 0xef, 0x6c, 0x67, 0xb3, + 0x78, 0xf6, 0x91, 0x52, 0xc9, 0x25, 0xd2, 0x8d, + 0x9e, 0x73, 0xb4, 0x07, 0x3b, 0x94, 0x1c, 0x7a, + 0x7c, 0xde, 0x63, 0x48, 0x91, 0xf2, 0x90, 0xc1, + 0xd6, 0xba, 0x06, 0x79, 0xcc, 0x0c, 0xb9, 0x0b, + 0xdb, 0xb9, 0x3f, 0xac, 0x76, 0xd2, 0x5c, 0x35, + 0xf4, 0x72, 0x98, 0x8b, 0x87, 0x05, 0xb2, 0x0e, + 0x8d, 0x38, 0xc7, 0x9b, 0x7d, 0x17, 0xdb, 0x24, + 0xa0, 0x4a, 0x62, 0xe6, 0xf6, 0x8f, 0xa6, 0x0f, + 0xd7, 0x27, 0xcc, 0x6a, 0xe5, 0x6f, 0xdd, 0x49, + 0xfd, 0xc7, 0xc4, 0x08, 0xbe, 0xb3, 0xd9, 0x4a, + 0x88, 0x30, 0xa3, 0xc4, 0xb6, 0xfd, 0x52, 0x7c, + 0xc6, 0xae, 0x55, 0xfd, 0xd4, 0x9f, 0xdc, 0x7c, + 0x4f, 0xce, 0x78, 0xf8, 0xb6, 0xbe, 0x99, 0x3e, + 0x63, 0x57, 0x2b, 0x7e, 0xea, 0x4f, 0xee, 0x35, + 0xf5, 0xb4, 0x6d, 0x0f, 0x83, 0xed, 0x84, 0x3a, + 0x0b, 0xe1, 0xf2, 0x48, 0x1d, 0x98, 0xc6, 0xfe, + 0xda, 0xd0, 0x51, 0xb5, 0x1e, 0x18, 0x1c, 0x7d, + 0x15, 0xae, 0x54, 0x2a, 0x7e, 0xe8, 0x61, 0xe3, + 0x5a, 0x7a, 0x64, 0xf9, 0x8d, 0x5c, 0xa4, 0xcf, + 0x18, 0x99, 0x16, 0xf1, 0xc9, 0x8c, 0x92, 0x03, + 0x0d, 0x5c, 0x37, 0x54, 0x76, 0xdf, 0xe1, 0xfb, + 0x7b, 0xa7, 0x68, 0x19, 0x6e, 0x9e, 0xce, 0x02, + 0x49, 0xc9, 0x07, 0x8e, 0xae, 0x20, 0x36, 0x9f, + 0xe2, 0xb9, 0x32, 0xda, 0xc6, 0x69, 0x66, 0x9a, + 0xca, 0x23, 0x04, 0xd2, 0x31, 0xf4, 0x61, 0x73, + 0xd6, 0x7c, 0xae, 0x14, 0xd9, 0xe4, 0xd9, 0x1e, + 0x65, 0xba, 0x96, 0x46, 0x46, 0xb6, 0x57, 0xda, + 0x0d, 0xaf, 0x93, 0x9d, 0xff, 0x00, 0xa7, 0xaf, + 0x7d, 0x48, 0x13, 0x91, 0x2e, 0xa4, 0xd5, 0x2e, + 0xd1, 0x1d, 0xad, 0x78, 0x11, 0xbb, 0x65, 0x81, + 0xc4, 0x63, 0x3b, 0xf3, 0xc7, 0xaa, 0x9b, 0xc1, + 0xec, 0xee, 0x15, 0x5f, 0xc9, 0x8c, 0xc5, 0xbf, + 0x3c, 0x0e, 0xe1, 0xf9, 0xb7, 0x56, 0xa8, 0xad, + 0x67, 0x95, 0x7b, 0x52, 0x32, 0x45, 0x15, 0x4b, + 0x3b, 0x87, 0x61, 0xc4, 0x2c, 0x4c, 0x71, 0x48, + 0x65, 0x8a, 0x48, 0x83, 0x8c, 0xae, 0xb5, 0x23, + 0x50, 0xf3, 0x55, 0x97, 0xfb, 0x9f, 0x31, 0xab, + 0x95, 0x41, 0x18, 0x3e, 0x13, 0x21, 0xfe, 0x69, + 0x6e, 0xac, 0xa6, 0x30, 0x4e, 0xbb, 0x83, 0x0a, + 0xcf, 0xae, 0x9f, 0xec, 0xd5, 0x63, 0x62, 0xcd, + 0xa7, 0xf0, 0x93, 0x21, 0x72, 0x41, 0xf5, 0xe3, + 0xcf, 0x81, 0x9a, 0xda, 0xa5, 0xb4, 0x49, 0x83, + 0x2f, 0x30, 0x0e, 0x6f, 0x3e, 0x21, 0x19, 0xdd, + 0xc3, 0xab, 0x34, 0x93, 0xec, 0x34, 0xca, 0xb8, + 0xc1, 0x57, 0xdd, 0xe5, 0x87, 0xff, 0x00, 0xb1, + 0xec, 0xa9, 0x16, 0x78, 0x51, 0xb6, 0x9c, 0x74, + 0xe0, 0x7d, 0xe0, 0xdb, 0x81, 0x04, 0x71, 0x1f, + 0xc9, 0xa4, 0x12, 0x22, 0xb0, 0x8d, 0x65, 0x55, + 0xed, 0xc3, 0xa6, 0x9c, 0x67, 0xcd, 0xd5, 0x56, + 0xea, 0xc8, 0x03, 0x44, 0x31, 0xaf, 0xef, 0x36, + 0xe0, 0x38, 0xf9, 0xb1, 0xd7, 0x9a, 0xb0, 0xdc, + 0x77, 0xeb, 0x3f, 0xd6, 0xd4, 0x27, 0x9e, 0xd1, + 0x5e, 0x52, 0x37, 0xb6, 0x48, 0xcf, 0xb2, 0xba, + 0x10, 0xf7, 0xdb, 0xbe, 0xba, 0x10, 0xf7, 0xdb, + 0xbe, 0xba, 0x10, 0xf7, 0xdb, 0xbe, 0xba, 0x10, + 0xf7, 0xdb, 0xbe, 0xba, 0x10, 0xf7, 0xdb, 0xbe, + 0xba, 0x10, 0xf7, 0xdb, 0xbe, 0xba, 0x10, 0xf7, + 0xdb, 0xbe, 0x97, 0xfc, 0x90, 0xe3, 0xf8, 0xdb, + 0xbe, 0xa3, 0x8a, 0x24, 0x09, 0x1a, 0xae, 0x15, + 0x47, 0x55, 0x7f, 0xff, 0xc4, 0x00, 0x24, 0x10, + 0x01, 0x00, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, + 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x11, 0x21, 0x00, 0x31, 0x41, 0x51, 0x61, + 0x71, 0x10, 0x20, 0x81, 0x30, 0x91, 0xa1, 0xc1, + 0xf0, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, + 0x01, 0x3f, 0x21, 0x23, 0x87, 0x57, 0x86, 0x93, + 0x22, 0x56, 0x26, 0xfb, 0xeb, 0xee, 0xc9, 0x93, + 0x26, 0x4c, 0x99, 0x6b, 0xbd, 0xa5, 0x3d, 0x0e, + 0xcf, 0xfd, 0xaf, 0x8a, 0x64, 0x9d, 0x34, 0xaa, + 0xec, 0x3b, 0x49, 0x3e, 0x71, 0x65, 0x91, 0x2f, + 0x9b, 0x21, 0x06, 0x3d, 0xc3, 0x90, 0xa3, 0xe2, + 0x58, 0x28, 0x11, 0xd2, 0x5f, 0xe9, 0x18, 0xcd, + 0x33, 0xe3, 0x96, 0x34, 0x49, 0x24, 0x40, 0x8b, + 0x40, 0x04, 0xe0, 0x18, 0x99, 0xe9, 0x2c, 0xe7, + 0xa8, 0x10, 0xd1, 0x38, 0xcd, 0x38, 0x56, 0xc3, + 0x11, 0x13, 0xd1, 0xda, 0x69, 0x78, 0xb4, 0x62, + 0x80, 0x2e, 0x08, 0x82, 0x0f, 0x92, 0xb2, 0x2a, + 0x63, 0xe4, 0x0a, 0x06, 0x89, 0xa4, 0xe5, 0x2e, + 0x42, 0x96, 0x1b, 0x41, 0x52, 0x21, 0x06, 0xbc, + 0x71, 0xbb, 0x3e, 0x32, 0x1c, 0x26, 0xe5, 0x06, + 0x70, 0x14, 0x09, 0x72, 0x7e, 0x97, 0x37, 0x54, + 0x9b, 0x49, 0xcf, 0x55, 0x58, 0x2a, 0x93, 0x43, + 0x85, 0x08, 0x92, 0xda, 0x1e, 0x1e, 0x5c, 0x96, + 0x5f, 0x80, 0x6a, 0x8e, 0xc6, 0x68, 0xc5, 0x23, + 0x0f, 0x38, 0xd1, 0x86, 0x35, 0x14, 0x2e, 0xe5, + 0xa9, 0x1e, 0x6c, 0xb9, 0x3e, 0x40, 0x6d, 0xd9, + 0x49, 0x4f, 0xd5, 0x9c, 0xd0, 0x2f, 0x2a, 0x65, + 0xc5, 0x6c, 0x0f, 0x47, 0xbc, 0x46, 0x7d, 0xa7, + 0xc1, 0xd1, 0xf1, 0x52, 0x32, 0x3c, 0x22, 0xdc, + 0x4a, 0x27, 0x25, 0x55, 0x2e, 0xfc, 0x87, 0x71, + 0xac, 0x4c, 0xb0, 0x18, 0x7e, 0x9a, 0x40, 0x19, + 0x13, 0xe1, 0x2d, 0xf4, 0xb6, 0xd5, 0x76, 0xc1, + 0x94, 0xdc, 0x27, 0xa3, 0x5d, 0x3a, 0x32, 0x7a, + 0x42, 0x52, 0x20, 0x02, 0x6c, 0xac, 0x14, 0xa8, + 0x62, 0x21, 0x84, 0xf9, 0x01, 0xdf, 0xbb, 0xf0, + 0x32, 0x4b, 0x0d, 0xb2, 0x36, 0x4c, 0x4e, 0xca, + 0x75, 0xe3, 0xbc, 0xf6, 0xcf, 0x6c, 0x72, 0x7e, + 0x13, 0x24, 0x3a, 0xc8, 0x3a, 0xc8, 0x3a, 0xc2, + 0xda, 0x27, 0xf0, 0x77, 0x83, 0xd0, 0x30, 0x7d, + 0x23, 0x96, 0xfa, 0x27, 0x40, 0x50, 0x04, 0xaf, + 0x06, 0x5e, 0xbb, 0xdf, 0xfa, 0xfa, 0x83, 0x95, + 0xf8, 0xcc, 0x92, 0xff, 0x00, 0x81, 0x54, 0x15, + 0x6e, 0x19, 0x0b, 0x46, 0x10, 0xe2, 0xa4, 0x9e, + 0xfd, 0x8f, 0x26, 0x18, 0xda, 0xf0, 0x8f, 0xbf, + 0xb0, 0x14, 0xbc, 0x00, 0xec, 0x0a, 0x84, 0xe5, + 0x36, 0x27, 0x52, 0x5e, 0x04, 0xf6, 0xc7, 0xea, + 0x13, 0xe6, 0x90, 0xd3, 0x22, 0x72, 0x53, 0x82, + 0x29, 0x02, 0xc6, 0xa1, 0xb3, 0x4b, 0xdf, 0x5b, + 0xd5, 0x35, 0x92, 0x04, 0x6c, 0x89, 0x64, 0x94, + 0xa1, 0x95, 0x1e, 0x91, 0xac, 0xd9, 0x54, 0x86, + 0xfb, 0x11, 0x2d, 0x27, 0x26, 0x58, 0x09, 0x23, + 0x51, 0x81, 0xab, 0x8f, 0xc1, 0xbc, 0xaa, 0xd2, + 0xba, 0xb9, 0x86, 0xc3, 0x87, 0x2a, 0xb3, 0x2e, + 0x94, 0x1b, 0x03, 0xa4, 0xfe, 0xcc, 0x94, 0x08, + 0xb1, 0x7b, 0x25, 0xb3, 0xd6, 0x29, 0x4f, 0x38, + 0x16, 0x55, 0x11, 0xe9, 0x69, 0xfe, 0x1c, 0x33, + 0x3c, 0xc1, 0xb4, 0xec, 0x46, 0x93, 0xc3, 0x92, + 0x14, 0x95, 0x94, 0x54, 0xb8, 0xe1, 0x41, 0x16, + 0x55, 0xf2, 0x2a, 0x6e, 0x2c, 0x10, 0x18, 0xc0, + 0x12, 0x02, 0x08, 0xe9, 0x0f, 0x0a, 0x22, 0x25, + 0x68, 0x2b, 0x16, 0xa2, 0xf8, 0x80, 0x68, 0x11, + 0x5c, 0x57, 0x4a, 0x22, 0x87, 0x1a, 0xee, 0x11, + 0x82, 0x15, 0x48, 0x02, 0xcb, 0xad, 0xa5, 0x38, + 0xcb, 0x89, 0xd6, 0xb7, 0xae, 0x45, 0x9e, 0x93, + 0x1a, 0x8c, 0xbe, 0x8e, 0xf8, 0x42, 0x10, 0xc0, + 0x53, 0x4c, 0x91, 0x2d, 0xc4, 0x43, 0x5b, 0xd4, + 0xb8, 0x72, 0xa7, 0x0d, 0xb4, 0xfb, 0x48, 0x9f, + 0xe0, 0x8d, 0x9a, 0x36, 0x68, 0xd9, 0xb3, 0x22, + 0x57, 0x21, 0x4a, 0x98, 0x31, 0x3a, 0x26, 0x01, + 0xd6, 0x7f, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, + 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, + 0x12, 0x01, 0x27, 0x03, 0xc0, 0x00, 0x97, 0x81, + 0x20, 0x90, 0x83, 0xe8, 0x82, 0x2d, 0x20, 0xb2, + 0x48, 0xa9, 0x2c, 0xc8, 0x0e, 0xdb, 0x03, 0x20, + 0xff, 0x00, 0xfe, 0x20, 0x70, 0xe4, 0x93, 0x92, + 0x3c, 0x9f, 0x9c, 0x16, 0xd9, 0xb4, 0x8f, 0xff, + 0xc4, 0x00, 0x1e, 0x11, 0x00, 0x03, 0x00, 0x02, + 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x10, + 0x31, 0x20, 0x21, 0x30, 0x41, 0x51, 0x61, 0xff, + 0xda, 0x00, 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, + 0x10, 0x94, 0x84, 0x21, 0x08, 0x43, 0xb2, 0xf6, + 0x7e, 0xc4, 0x3f, 0xaf, 0x03, 0x50, 0xfc, 0x20, + 0xc6, 0xe3, 0x68, 0x69, 0xbd, 0xe1, 0xaf, 0x93, + 0xf5, 0x10, 0xe7, 0x26, 0x8e, 0x2d, 0x14, 0x7d, + 0xba, 0xc8, 0x42, 0x1a, 0xb8, 0xb5, 0x10, 0x84, + 0x21, 0xa2, 0xe0, 0xde, 0x89, 0x88, 0x42, 0x1a, + 0x65, 0xb9, 0x98, 0x42, 0x32, 0x0b, 0x59, 0x7d, + 0xf2, 0x82, 0xd6, 0x21, 0x08, 0x42, 0x10, 0x84, + 0xc7, 0xff, 0xc4, 0x00, 0x1f, 0x11, 0x00, 0x03, + 0x00, 0x02, 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x11, 0x20, 0x31, 0x10, 0x21, 0x41, 0x51, 0x61, + 0x30, 0x71, 0xff, 0xda, 0x00, 0x08, 0x01, 0x02, + 0x01, 0x01, 0x3f, 0x10, 0xb0, 0xbf, 0x0a, 0x5f, + 0x85, 0x29, 0x4e, 0x97, 0xc7, 0x93, 0xe6, 0x53, + 0xf4, 0xfc, 0x12, 0x45, 0xef, 0x87, 0x7f, 0xed, + 0x9a, 0xd2, 0x86, 0xc4, 0xd2, 0xd7, 0x07, 0xc8, + 0x44, 0xdd, 0x65, 0x4a, 0x53, 0x6e, 0x34, 0x41, + 0x44, 0xa2, 0x29, 0x4a, 0x6e, 0xc5, 0x60, 0xa5, + 0x29, 0x4d, 0x98, 0x27, 0x92, 0x94, 0xa5, 0x29, + 0xb7, 0x29, 0x5e, 0x69, 0x4a, 0x51, 0xef, 0x95, + 0xd6, 0x6f, 0x9a, 0x52, 0xe5, 0xff, 0xc4, 0x00, + 0x24, 0x10, 0x01, 0x01, 0x00, 0x02, 0x02, 0x03, + 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x11, 0x00, 0x21, 0x31, 0x61, + 0x41, 0x51, 0x71, 0x20, 0xa1, 0x10, 0x81, 0x91, + 0xb1, 0xc1, 0xd1, 0xff, 0xda, 0x00, 0x08, 0x01, + 0x01, 0x00, 0x01, 0x3f, 0x10, 0x5a, 0xb8, 0xa5, + 0x42, 0x42, 0xd8, 0x10, 0xa2, 0x81, 0x80, 0x3f, + 0x28, 0x22, 0x64, 0xc9, 0x13, 0x35, 0x4f, 0x26, + 0x1c, 0xdf, 0x93, 0xd6, 0x43, 0xfa, 0xb1, 0x16, + 0x6b, 0x21, 0xa7, 0x08, 0x2e, 0x63, 0x96, 0x2d, + 0x37, 0x58, 0x08, 0x03, 0x00, 0x29, 0x80, 0x40, + 0x95, 0xe6, 0x00, 0x8f, 0xbc, 0x29, 0x43, 0x42, + 0xd8, 0xc9, 0x88, 0x86, 0x61, 0xbd, 0x45, 0xd7, + 0x64, 0x94, 0x18, 0xda, 0x72, 0xe7, 0xca, 0x3a, + 0x50, 0x08, 0x9b, 0x14, 0x29, 0x93, 0x16, 0xd8, + 0x5d, 0x6a, 0x61, 0xa8, 0x85, 0x97, 0x0b, 0xf9, + 0x93, 0x87, 0x26, 0x34, 0xa9, 0x03, 0x77, 0x8d, + 0x05, 0x05, 0xc1, 0x29, 0xa1, 0x52, 0x22, 0x11, + 0x83, 0x70, 0x27, 0x8a, 0x81, 0x6e, 0x9b, 0x90, + 0x88, 0x68, 0x42, 0xb8, 0xd4, 0x1f, 0xd0, 0xb7, + 0x16, 0x1b, 0x6c, 0x13, 0xba, 0xaf, 0x79, 0xd8, + 0xcf, 0x8d, 0x3a, 0xd9, 0xf9, 0x37, 0x80, 0xa9, + 0x5f, 0x06, 0x25, 0x2c, 0x49, 0x6d, 0x13, 0xa1, + 0x2c, 0x5d, 0x52, 0x45, 0x14, 0xaf, 0x43, 0x02, + 0xd1, 0x35, 0xa6, 0xc5, 0x1a, 0xdb, 0x72, 0x93, + 0x1d, 0xc8, 0x2e, 0x1a, 0x3b, 0x73, 0x42, 0xa6, + 0x0a, 0xbc, 0x4f, 0xe7, 0xa8, 0xb9, 0x46, 0x82, + 0xd3, 0x48, 0xf3, 0xaa, 0xcb, 0xb6, 0x94, 0x10, + 0x6e, 0x1a, 0x75, 0xac, 0x42, 0x4e, 0xf2, 0x80, + 0xd9, 0xa2, 0xab, 0xea, 0xf2, 0xe1, 0xb1, 0x34, + 0x5e, 0x36, 0x1f, 0x41, 0x9f, 0x59, 0xdc, 0xc9, + 0x9c, 0xe9, 0xe2, 0xa1, 0x4c, 0xdb, 0x5a, 0x1b, + 0xbc, 0xde, 0xe9, 0xf4, 0x8b, 0xf4, 0x40, 0xd9, + 0x82, 0x41, 0xa6, 0x0b, 0x7e, 0xa1, 0x16, 0x88, + 0x86, 0x91, 0x10, 0xe6, 0x97, 0x15, 0xad, 0x8e, + 0x12, 0x29, 0x48, 0xfd, 0xda, 0xa1, 0x0d, 0xea, + 0xe4, 0x11, 0x15, 0x2a, 0x85, 0x8b, 0xa3, 0x71, + 0x23, 0xaa, 0xd1, 0x8d, 0x31, 0x85, 0x79, 0x29, + 0x01, 0xc8, 0xb2, 0x02, 0x18, 0xe1, 0x70, 0xb4, + 0x72, 0x56, 0x80, 0x6d, 0x18, 0x3f, 0x8a, 0xed, + 0x25, 0xcf, 0x6c, 0x2b, 0xa1, 0xfd, 0xb3, 0x8b, + 0x4d, 0x71, 0xac, 0x0a, 0x40, 0x4e, 0xb0, 0x12, + 0x72, 0xa1, 0x41, 0xe5, 0x7f, 0xcf, 0x70, 0xc2, + 0xec, 0xa0, 0x85, 0x7d, 0xaf, 0xb5, 0x6a, 0xbe, + 0xdc, 0x09, 0xc4, 0x33, 0xeb, 0x3e, 0xf3, 0xb7, + 0x9b, 0xf0, 0xfd, 0x3b, 0x67, 0x40, 0x2a, 0xbe, + 0x8c, 0x93, 0x86, 0x23, 0x78, 0xf4, 0x3a, 0x3f, + 0xcd, 0xcf, 0xaf, 0xde, 0x7d, 0x7e, 0xf3, 0xeb, + 0xf7, 0x9f, 0x5f, 0xbc, 0xed, 0x86, 0xfe, 0x1d, + 0x57, 0x8f, 0x2d, 0x33, 0x02, 0x1b, 0x08, 0xe0, + 0xab, 0x26, 0x2d, 0x95, 0x2e, 0x48, 0xbb, 0x0a, + 0x6a, 0x52, 0x82, 0x6c, 0x66, 0x4b, 0xab, 0xa3, + 0x95, 0x4d, 0x5e, 0xc4, 0x3e, 0x39, 0xf5, 0x9f, + 0x59, 0xf5, 0x9f, 0x59, 0xf5, 0x9d, 0xa4, 0xf8, + 0xa8, 0x5a, 0xba, 0x86, 0xa8, 0x22, 0x29, 0x40, + 0x34, 0x46, 0x39, 0xce, 0xbf, 0x78, 0x07, 0x24, + 0x88, 0xcb, 0x87, 0x13, 0x18, 0x98, 0xab, 0x90, + 0x19, 0x1a, 0x8f, 0x53, 0xa9, 0x31, 0xbf, 0x01, + 0x9f, 0x79, 0x02, 0x52, 0x4c, 0x26, 0xc6, 0x60, + 0x24, 0xe2, 0x4d, 0x71, 0x84, 0x82, 0x52, 0x9e, + 0x25, 0x01, 0xdd, 0x5c, 0x48, 0x26, 0x49, 0x08, + 0x01, 0x45, 0x73, 0x74, 0x8a, 0xa0, 0x9f, 0x02, + 0x5a, 0x08, 0x80, 0xfa, 0x58, 0xe2, 0x8e, 0x75, + 0x09, 0x08, 0x11, 0x4d, 0xbd, 0xf8, 0x6f, 0x26, + 0x76, 0x3e, 0x2f, 0x81, 0x03, 0xed, 0x46, 0x76, + 0xc3, 0x62, 0x82, 0xf4, 0x0c, 0x69, 0x9f, 0x10, + 0x4e, 0x93, 0x05, 0xf4, 0x82, 0x09, 0x41, 0xca, + 0xbd, 0x09, 0x41, 0x94, 0x32, 0xc0, 0xa7, 0xa8, + 0x28, 0x6b, 0xa3, 0x47, 0xfa, 0xcd, 0x07, 0xc0, + 0x2f, 0x79, 0x3b, 0xae, 0x9a, 0x5c, 0xb3, 0xcc, + 0x2f, 0x1a, 0xb6, 0x1c, 0x42, 0xc0, 0x7c, 0x6a, + 0x14, 0xcf, 0x82, 0x5e, 0xd2, 0xe6, 0x50, 0x98, + 0x21, 0x50, 0x3f, 0x97, 0xcc, 0x68, 0x54, 0x93, + 0x4a, 0x98, 0xa0, 0x9b, 0x40, 0xb1, 0xde, 0xb9, + 0x29, 0x5a, 0x0b, 0x4a, 0x80, 0x3b, 0xf6, 0x3d, + 0x19, 0x9e, 0x5d, 0xae, 0x42, 0xb8, 0x61, 0xd2, + 0x50, 0x15, 0x15, 0x01, 0xf8, 0x88, 0x9f, 0x70, + 0xf5, 0xd8, 0x8f, 0x7a, 0x2b, 0x49, 0xdf, 0xe5, + 0x67, 0x6c, 0xdd, 0xb3, 0x4c, 0xda, 0xe6, 0xd0, + 0xed, 0x98, 0x58, 0xdf, 0x91, 0x94, 0xeb, 0x05, + 0x4f, 0xa5, 0x1c, 0xd0, 0x3c, 0x06, 0x7f, 0xff, + 0xd9, +}; + +const struct fsdata_file file_tm4c_jpg[] = +{ + { + NULL, + data_tm4c_jpg, + data_tm4c_jpg + 10, + sizeof(data_tm4c_jpg) - 10 + } +}; + +const struct fsdata_file file_ti_jpg[] = +{ + { + file_tm4c_jpg, + data_ti_jpg, + data_ti_jpg + 8, + sizeof(data_ti_jpg) - 8 + } +}; + +const struct fsdata_file file_styles_css[] = +{ + { + file_ti_jpg, + data_styles_css, + data_styles_css + 12, + sizeof(data_styles_css) - 12 + } +}; + +const struct fsdata_file file_perror_htm[] = +{ + { + file_styles_css, + data_perror_htm, + data_perror_htm + 12, + sizeof(data_perror_htm) - 12 + } +}; + +const struct fsdata_file file_overview_htm[] = +{ + { + file_perror_htm, + data_overview_htm, + data_overview_htm + 14, + sizeof(data_overview_htm) - 14 + } +}; + +const struct fsdata_file file_javascript_load_js[] = +{ + { + file_overview_htm, + data_javascript_load_js, + data_javascript_load_js + 20, + sizeof(data_javascript_load_js) - 20 + } +}; + +const struct fsdata_file file_javascript_js[] = +{ + { + file_javascript_load_js, + data_javascript_js, + data_javascript_js + 15, + sizeof(data_javascript_js) - 15 + } +}; + +const struct fsdata_file file_io_http_htm[] = +{ + { + file_javascript_js, + data_io_http_htm, + data_io_http_htm + 13, + sizeof(data_io_http_htm) - 13 + } +}; + +const struct fsdata_file file_io_cgi_ssi[] = +{ + { + file_io_http_htm, + data_io_cgi_ssi, + data_io_cgi_ssi + 12, + sizeof(data_io_cgi_ssi) - 12 + } +}; + +const struct fsdata_file file_index_htm[] = +{ + { + file_io_cgi_ssi, + data_index_htm, + data_index_htm + 11, + sizeof(data_index_htm) - 11 + } +}; + +const struct fsdata_file file_favicon_ico[] = +{ + { + file_index_htm, + data_favicon_ico, + data_favicon_ico + 13, + sizeof(data_favicon_ico) - 13 + } +}; + +const struct fsdata_file file_ek_tm4c1294xl_jpg[] = +{ + { + file_favicon_ico, + data_ek_tm4c1294xl_jpg, + data_ek_tm4c1294xl_jpg + 19, + sizeof(data_ek_tm4c1294xl_jpg) - 19 + } +}; + +const struct fsdata_file file_block_jpg[] = +{ + { + file_ek_tm4c1294xl_jpg, + data_block_jpg, + data_block_jpg + 11, + sizeof(data_block_jpg) - 11 + } +}; + +const struct fsdata_file file_block_htm[] = +{ + { + file_block_jpg, + data_block_htm, + data_block_htm + 11, + sizeof(data_block_htm) - 11 + } +}; + +const struct fsdata_file file_about_htm[] = +{ + { + file_block_htm, + data_about_htm, + data_about_htm + 11, + sizeof(data_about_htm) - 11 + } +}; + +const struct fsdata_file file_404_htm[] = +{ + { + file_about_htm, + data_404_htm, + data_404_htm + 9, + sizeof(data_404_htm) - 9 + } +}; + +#define FS_ROOT file_404_htm + +#define FS_NUMFILES 16 + diff --git a/boards/ek-tm4c1294xl/enet_io/lwipopts.h b/boards/ek-tm4c1294xl/enet_io/lwipopts.h new file mode 100644 index 0000000..f65e963 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/lwipopts.h @@ -0,0 +1,439 @@ +//***************************************************************************** +// +// lwipopts.h - Configuration file for lwIP +// +// Copyright (c) 2008-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +// +// NOTE: This file has been derived from the lwIP/src/include/lwip/opt.h +// header file. +// +// For additional details, refer to the original "opt.h" file, and lwIP +// documentation. +// +//***************************************************************************** + +#ifndef __LWIPOPTS_H__ +#define __LWIPOPTS_H__ + +//***************************************************************************** +// +// ---------- Stellaris / lwIP Port Options ---------- +// +//***************************************************************************** +#define HOST_TMR_INTERVAL 100 // default is 0 +#define DHCP_EXPIRE_TIMER_MSECS (10 * 1000) +#define LWIP_HTTPD_SSI 1 +#define LWIP_HTTPD_CGI 1 +#define LWIP_HTTPD_DYNAMIC_HEADERS 1 +//#define HTTPD_DEBUG LWIP_DBG_ON +#define EMAC_PHY_CONFIG (EMAC_PHY_TYPE_INTERNAL | EMAC_PHY_INT_MDIX_EN | \ + EMAC_PHY_AN_100B_T_FULL_DUPLEX) +#define PHY_PHYS_ADDR 0 +#define NUM_TX_DESCRIPTORS 24 +#define NUM_RX_DESCRIPTORS 8 + +//***************************************************************************** +// +// ---------- Platform specific locking ---------- +// +//***************************************************************************** +#define SYS_LIGHTWEIGHT_PROT 1 // default is 0 +#define NO_SYS 1 // default is 0 +//#define MEMCPY(dst,src,len) memcpy(dst,src,len) +//#define SMEMCPY(dst,src,len) memcpy(dst,src,len) + +//***************************************************************************** +// +// ---------- Memory options ---------- +// +//***************************************************************************** +//#define MEM_LIBC_MALLOC 0 +#define MEM_ALIGNMENT 4 // default is 1 +#define MEM_SIZE (64 * 1024) // default is 1600 +//#define MEMP_OVERFLOW_CHECK 0 +//#define MEMP_SANITY_CHECK 0 +//#define MEM_USE_POOLS 0 +//#define MEMP_USE_CUSTOM_POOLS 0 + +//***************************************************************************** +// +// ---------- Internal Memory Pool Sizes ---------- +// +//***************************************************************************** +#define MEMP_NUM_PBUF 48 // Default 16 +//#define MEMP_NUM_RAW_PCB 4 +//#define MEMP_NUM_UDP_PCB 4 +#define MEMP_NUM_TCP_PCB 16 // Default 5 +//#define MEMP_NUM_TCP_PCB_LISTEN 8 +#define MEMP_NUM_TCP_SEG 32 // Default 16 +//#define MEMP_NUM_REASSDATA 5 +//#define MEMP_NUM_ARP_QUEUE 30 +//#define MEMP_NUM_IGMP_GROUP 8 +#define MEMP_NUM_SYS_TIMEOUT 8 +//#define MEMP_NUM_NETBUF 2 +//#define MEMP_NUM_NETCONN 4 +//#define MEMP_NUM_TCPIP_MSG_API 8 +//#define MEMP_NUM_TCPIP_MSG_INPKT 8 +#define PBUF_POOL_SIZE 48 // Default 16 + +//***************************************************************************** +// +// ---------- ARP options ---------- +// +//***************************************************************************** +//#define LWIP_ARP 1 +//#define ARP_TABLE_SIZE 10 +//#define ARP_QUEUEING 1 +//#define ETHARP_TRUST_IP_MAC 1 + +//***************************************************************************** +// +// ---------- IP options ---------- +// +//***************************************************************************** +//#define IP_FORWARD 0 +//#define IP_OPTIONS_ALLOWED 1 +#define IP_REASSEMBLY 0 // default is 1 +#define IP_FRAG 0 // default is 1 +//#define IP_REASS_MAXAGE 3 +//#define IP_REASS_MAX_PBUFS 10 +//#define IP_FRAG_USES_STATIC_BUF 1 +//#define IP_FRAG_MAX_MTU 1500 +//#define IP_DEFAULT_TTL 255 + +//***************************************************************************** +// +// ---------- ICMP options ---------- +// +//***************************************************************************** +//#define LWIP_ICMP 1 +//#define ICMP_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- RAW options ---------- +// +//***************************************************************************** +//#define LWIP_RAW 1 +//#define RAW_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- DHCP options ---------- +// +//***************************************************************************** +#define LWIP_DHCP 1 // default is 0 +//#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP)) + +//***************************************************************************** +// +// ---------- UPNP options ---------- +// +//***************************************************************************** +//#define LWIP_UPNP 0 + +//***************************************************************************** +// +// ---------- PTPD options ---------- +// +//***************************************************************************** +//#define LWIP_PTPD 0 + +//***************************************************************************** +// +// ---------- AUTOIP options ---------- +// +//***************************************************************************** +#define LWIP_AUTOIP 1 // default is 0 +#define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP) && (LWIP_AUTOIP)) + // default is 0 +#define LWIP_DHCP_AUTOIP_COOP_TRIES 5 // default is 9 + +//***************************************************************************** +// +// ---------- SNMP options ---------- +// +//***************************************************************************** +//#define LWIP_SNMP 0 +//#define SNMP_CONCURRENT_REQUESTS 1 +//#define SNMP_TRAP_DESTINATIONS 1 +//#define SNMP_PRIVATE_MIB 0 +//#define SNMP_SAFE_REQUESTS 1 + +//***************************************************************************** +// +// ---------- IGMP options ---------- +// +//***************************************************************************** +//#define LWIP_IGMP 0 + +//***************************************************************************** +// +// ---------- DNS options ----------- +// +//***************************************************************************** +//#define LWIP_DNS 0 +//#define DNS_TABLE_SIZE 4 +//#define DNS_MAX_NAME_LENGTH 256 +//#define DNS_MAX_SERVERS 2 +//#define DNS_DOES_NAME_CHECK 1 +//#define DNS_USES_STATIC_BUF 1 +//#define DNS_MSG_SIZE 512 + +//***************************************************************************** +// +// ---------- UDP options ---------- +// +//***************************************************************************** +//#define LWIP_UDP 1 +//#define LWIP_UDPLITE 0 +//#define UDP_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- TCP options ---------- +// +//***************************************************************************** +//#define LWIP_TCP 1 +//#define TCP_TTL (IP_DEFAULT_TTL) +#define TCP_WND 4096 // default is 2048 +//#define TCP_MAXRTX 12 +//#define TCP_SYNMAXRTX 6 +//#define TCP_QUEUE_OOSEQ 1 +#define TCP_MSS 1500 // default is 128 +//#define TCP_CALCULATE_EFF_SEND_MSS 1 +#define TCP_SND_BUF (6 * TCP_MSS) + // default is 256 +//#define TCP_SND_QUEUELEN (4 * (TCP_SND_BUF/TCP_MSS)) +//#define TCP_SNDLOWAT (TCP_SND_BUF/2) +//#define TCP_LISTEN_BACKLOG 0 +//#define TCP_DEFAULT_LISTEN_BACKLOG 0xff + +//***************************************************************************** +// +// ---------- API options ---------- +// +//***************************************************************************** +//#define LWIP_EVENT_API 0 +//#define LWIP_CALLBACK_API 1 + +//***************************************************************************** +// +// ---------- Pbuf options ---------- +// +//***************************************************************************** +#define PBUF_LINK_HLEN 16 // default is 14 +#define PBUF_POOL_BUFSIZE 512 + // default is LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN) +#define ETH_PAD_SIZE 0 // default is 0 + +//***************************************************************************** +// +// ---------- Network Interfaces options ---------- +// +//***************************************************************************** +//#define LWIP_NETIF_HOSTNAME 0 +//#define LWIP_NETIF_API 0 +//#define LWIP_NETIF_STATUS_CALLBACK 0 +//#define LWIP_NETIF_LINK_CALLBACK 0 +//#define LWIP_NETIF_HWADDRHINT 0 + +//***************************************************************************** +// +// ---------- LOOPIF options ---------- +// +//***************************************************************************** +//#define LWIP_HAVE_LOOPIF 0 +//#define LWIP_LOOPIF_MULTITHREADING 1 + +//***************************************************************************** +// +// ---------- Thread options ---------- +// +//***************************************************************************** +//#define TCPIP_THREAD_NAME "tcpip_thread" +//#define TCPIP_THREAD_STACKSIZE 0 +//#define TCPIP_THREAD_PRIO 1 +//#define TCPIP_MBOX_SIZE 0 +//#define SLIPIF_THREAD_NAME "slipif_loop" +//#define SLIPIF_THREAD_STACKSIZE 0 +//#define SLIPIF_THREAD_PRIO 1 +//#define PPP_THREAD_NAME "pppMain" +//#define PPP_THREAD_STACKSIZE 0 +//#define PPP_THREAD_PRIO 1 +//#define DEFAULT_THREAD_NAME "lwIP" +//#define DEFAULT_THREAD_STACKSIZE 0 +//#define DEFAULT_THREAD_PRIO 1 +//#define DEFAULT_RAW_RECVMBOX_SIZE 0 +//#define DEFAULT_UDP_RECVMBOX_SIZE 0 +//#define DEFAULT_TCP_RECVMBOX_SIZE 0 +//#define DEFAULT_ACCEPTMBOX_SIZE 0 + +//***************************************************************************** +// +// ---------- Sequential layer options ---------- +// +//***************************************************************************** +//#define LWIP_TCPIP_CORE_LOCKING 0 +#define LWIP_NETCONN 0 // default is 1 + +//***************************************************************************** +// +// ---------- Socket Options ---------- +// +//***************************************************************************** +#define LWIP_SOCKET 0 // default is 1 +//#define LWIP_COMPAT_SOCKETS 1 +//#define LWIP_POSIX_SOCKETS_IO_NAMES 1 +//#define LWIP_TCP_KEEPALIVE 0 +//#define LWIP_SO_RCVTIMEO 0 +//#define LWIP_SO_RCVBUF 0 +//#define SO_REUSE 0 + +//***************************************************************************** +// +// ---------- Statistics options ---------- +// +//***************************************************************************** +//#define LWIP_STATS 1 +//#define LWIP_STATS_DISPLAY 0 +//#define LINK_STATS 1 +//#define ETHARP_STATS (LWIP_ARP) +//#define IP_STATS 1 +//#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG) +//#define ICMP_STATS 1 +//#define IGMP_STATS (LWIP_IGMP) +//#define UDP_STATS (LWIP_UDP) +//#define TCP_STATS (LWIP_TCP) +//#define MEM_STATS 1 +//#define MEMP_STATS 1 +//#define SYS_STATS 1 + +//***************************************************************************** +// +// ---------- PPP options ---------- +// +//***************************************************************************** +//#define PPP_SUPPORT 0 +//#define PPPOE_SUPPORT 0 +//#define PPPOS_SUPPORT PPP_SUPPORT + +#if PPP_SUPPORT +//#define NUM_PPP 1 +//#define PAP_SUPPORT 0 +//#define CHAP_SUPPORT 0 +//#define MSCHAP_SUPPORT 0 +//#define CBCP_SUPPORT 0 +//#define CCP_SUPPORT 0 +//#define VJ_SUPPORT 0 +//#define MD5_SUPPORT 0 +//#define FSM_DEFTIMEOUT 6 +//#define FSM_DEFMAXTERMREQS 2 +//#define FSM_DEFMAXCONFREQS 10 +//#define FSM_DEFMAXNAKLOOPS 5 +//#define UPAP_DEFTIMEOUT 6 +//#define UPAP_DEFREQTIME 30 +//#define CHAP_DEFTIMEOUT 6 +//#define CHAP_DEFTRANSMITS 10 +//#define LCP_ECHOINTERVAL 0 +//#define LCP_MAXECHOFAILS 3 +//#define PPP_MAXIDLEFLAG 100 + +//#define PPP_MAXMTU 1500 +//#define PPP_DEFMRU 296 +#endif + +//***************************************************************************** +// +// ---------- checksum options ---------- +// +//***************************************************************************** +//#define CHECKSUM_GEN_IP 1 +//#define CHECKSUM_GEN_UDP 1 +//#define CHECKSUM_GEN_TCP 1 +//#define CHECKSUM_CHECK_IP 1 +//#define CHECKSUM_CHECK_UDP 1 +//#define CHECKSUM_CHECK_TCP 1 + +//***************************************************************************** +// +// ---------- Debugging options ---------- +// +//***************************************************************************** +#if 0 +#define U8_F "c" +#define S8_F "c" +#define X8_F "x" +#define U16_F "u" +#define S16_F "d" +#define X16_F "x" +#define U32_F "u" +#define S32_F "d" +#define X32_F "x" +extern void UARTprintf(const char *pcString, ...); +#define LWIP_DEBUG +#endif + +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF +#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_WARNING +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_SERIOUS +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_SEVERE + +//#define LWIP_DBG_TYPES_ON LWIP_DBG_ON +#define LWIP_DBG_TYPES_ON (LWIP_DBG_ON|LWIP_DBG_TRACE| \ + LWIP_DBG_STATE|LWIP_DBG_FRESH) + +//#define ETHARP_DEBUG LWIP_DBG_ON // default is OFF +//#define NETIF_DEBUG LWIP_DBG_ON // default is OFF +//#define PBUF_DEBUG LWIP_DBG_OFF +//#define API_LIB_DEBUG LWIP_DBG_OFF +//#define API_MSG_DEBUG LWIP_DBG_OFF +//#define SOCKETS_DEBUG LWIP_DBG_OFF +//#define ICMP_DEBUG LWIP_DBG_OFF +//#define IGMP_DEBUG LWIP_DBG_OFF +//#define INET_DEBUG LWIP_DBG_OFF +//#define IP_DEBUG LWIP_DBG_ON // default is OFF +//#define IP_REASS_DEBUG LWIP_DBG_OFF +//#define RAW_DEBUG LWIP_DBG_OFF +//#define MEM_DEBUG LWIP_DBG_OFF +//#define MEMP_DEBUG LWIP_DBG_OFF +//#define SYS_DEBUG LWIP_DBG_OFF +//#define TCP_DEBUG LWIP_DBG_OFF +//#define TCP_INPUT_DEBUG LWIP_DBG_OFF +//#define TCP_FR_DEBUG LWIP_DBG_OFF +//#define TCP_RTO_DEBUG LWIP_DBG_OFF +//#define TCP_CWND_DEBUG LWIP_DBG_OFF +//#define TCP_WND_DEBUG LWIP_DBG_OFF +//#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF +//#define TCP_RST_DEBUG LWIP_DBG_OFF +//#define TCP_QLEN_DEBUG LWIP_DBG_OFF +//#define UDP_DEBUG LWIP_DBG_ON // default is OFF +//#define TCPIP_DEBUG LWIP_DBG_OFF +//#define PPP_DEBUG LWIP_DBG_OFF +//#define SLIP_DEBUG LWIP_DBG_OFF +//#define DHCP_DEBUG LWIP_DBG_ON // default is OFF +//#define AUTOIP_DEBUG LWIP_DBG_OFF +//#define SNMP_MSG_DEBUG LWIP_DBG_OFF +//#define SNMP_MIB_DEBUG LWIP_DBG_OFF +//#define DNS_DEBUG LWIP_DBG_OFF + +#endif /* __LWIPOPTS_H__ */ diff --git a/boards/ek-tm4c1294xl/enet_io/readme.txt b/boards/ek-tm4c1294xl/enet_io/readme.txt new file mode 100644 index 0000000..e28fd15 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/readme.txt @@ -0,0 +1,78 @@ +Ethernet-based I/O Control + +This example application demonstrates web-based I/O control using the +Tiva Ethernet controller and the lwIP TCP/IP Stack. DHCP is used to +obtain an Ethernet address. If DHCP times out without obtaining an +address, a static IP address will be chosen using AutoIP. The address that +is selected will be shown on the UART allowing you to access the +internal web pages served by the application via your normal web browser. + +Two different methods of controlling board peripherals via web pages are +illustrated via pages labeled ``IO Control Demo 1'' and ``IO Control +Demo 2'' in the navigation menu on the left of the application's home page. +In both cases, the example allows you to toggle the state of the user LED +on the board and set the speed of a blinking LED. + +``IO Control Demo 1'' uses JavaScript running in the web browser to send +HTTP requests for particular special URLs. These special URLs are +intercepted in the file system support layer (io_fs.c) and used to +control the LED and animation LED. Responses generated by the board are +returned to the browser and inserted into the page HTML dynamically by +more JavaScript code. + +``IO Control Demo 2'' uses standard HTML forms to pass parameters to CGI +(Common Gateway Interface) handlers running on the board. These handlers +process the form data and control the animation and LED as requested before +sending a response page (in this case, the original form) back to the +browser. The application registers the names and handlers for each of its +CGIs with the HTTPD server during initialization and the server calls +these handlers after parsing URL parameters each time one of the CGI URLs +is requested. + +Information on the state of the various controls in the second demo is +inserted into the served HTML using SSI (Server Side Include) tags which +are parsed by the HTTPD server in the application. As with the CGI +handlers, the application registers its list of SSI tags and a handler +function with the web server during initialization and this handler is +called whenever any registered tag is found in a .shtml, .ssi, .shtm or +.xml file being served to the browser. + +In addition to LED and animation speed control, the second example also +allows a line of text to be sent to the board for output to the UART. +This is included to illustrate the decoding of HTTP text strings. + +Note that the web server used by this example has been modified from the +example shipped with the basic lwIP package. Additions include SSI and +CGI support along with the ability to have the server automatically insert +the HTTP headers rather than having these built in to the files in the +file system image. + +Source files for the internal file system image can be found in the ``fs'' +directory. If any of these files are changed, the file system image +(io_fsdata.h) should be rebuilt by running the following command from the +enet_io directory: + +../../../../tools/bin/makefsfile -i fs -o io_fsdata.h -r -h -q + +For additional details on lwIP, refer to the lwIP web page at: +http://savannah.nongnu.org/projects/lwip/ + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/enet_io/rvmdk/enet_io.axf b/boards/ek-tm4c1294xl/enet_io/rvmdk/enet_io.axf new file mode 100644 index 0000000..0ae491a Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/rvmdk/enet_io.axf differ diff --git a/boards/ek-tm4c1294xl/enet_io/rvmdk/enet_io.bin b/boards/ek-tm4c1294xl/enet_io/rvmdk/enet_io.bin new file mode 100644 index 0000000..1df3274 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_io/rvmdk/enet_io.bin differ diff --git a/boards/ek-tm4c1294xl/enet_io/startup_ccs.c b/boards/ek-tm4c1294xl/enet_io/startup_ccs.c new file mode 100644 index 0000000..06bd80a --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/startup_ccs.c @@ -0,0 +1,277 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); +extern void AnimTimerIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + AnimTimerIntHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_io/startup_ewarm.c b/boards/ek-tm4c1294xl/enet_io/startup_ewarm.c new file mode 100644 index 0000000..5bd7ebd --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/startup_ewarm.c @@ -0,0 +1,308 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); +extern void AnimTimerIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + AnimTimerIntHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_io/startup_gcc.c b/boards/ek-tm4c1294xl/enet_io/startup_gcc.c new file mode 100644 index 0000000..d0286a1 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/startup_gcc.c @@ -0,0 +1,324 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); +extern void AnimTimerIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + AnimTimerIntHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_io/startup_rvmdk.S b/boards/ek-tm4c1294xl/enet_io/startup_rvmdk.S new file mode 100644 index 0000000..4ec6b2e --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_io/startup_rvmdk.S @@ -0,0 +1,333 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000400 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN lwIPEthernetIntHandler + EXTERN SysTickIntHandler + EXTERN AnimTimerIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD AnimTimerIntHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD lwIPEthernetIntHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/enet_lwip/Makefile b/boards/ek-tm4c1294xl/enet_lwip/Makefile new file mode 100644 index 0000000..f188a10 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/Makefile @@ -0,0 +1,104 @@ +#****************************************************************************** +# +# Makefile - Rules for building the web server using lwIP. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../third_party/lwip-1.4.1/apps/httpserver_raw +VPATH+=../../../../third_party/fatfs/port +VPATH+=../../../../third_party/fatfs/src +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=. +IPATH+=.. +IPATH+=../../../.. +IPATH+=../../../../third_party/lwip-1.4.1/apps +IPATH+=../../../../third_party/lwip-1.4.1/ports/tiva-tm4c129/include +IPATH+=../../../../third_party/lwip-1.4.1/src/include +IPATH+=../../../../third_party/lwip-1.4.1/src/include/ipv4 +IPATH+=../../../../third_party + +# +# The default rule, which causes the web server using lwIP to be built. +# +all: ${COMPILER} +all: ${COMPILER}/enet_lwip.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the web server using lwIP. +# +${COMPILER}/enet_lwip.axf: ${COMPILER}/enet_fs.o +${COMPILER}/enet_lwip.axf: ${COMPILER}/enet_lwip.o +${COMPILER}/enet_lwip.axf: ${COMPILER}/ff.o +${COMPILER}/enet_lwip.axf: ${COMPILER}/httpd.o +${COMPILER}/enet_lwip.axf: ${COMPILER}/locator.o +${COMPILER}/enet_lwip.axf: ${COMPILER}/lwiplib.o +${COMPILER}/enet_lwip.axf: ${COMPILER}/mmc-ek-tm4c1294xl.o +${COMPILER}/enet_lwip.axf: ${COMPILER}/pinout.o +${COMPILER}/enet_lwip.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/enet_lwip.axf: ${COMPILER}/uartstdio.o +${COMPILER}/enet_lwip.axf: ${COMPILER}/ustdlib.o +${COMPILER}/enet_lwip.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/enet_lwip.axf: enet_lwip.ld +SCATTERgcc_enet_lwip=enet_lwip.ld +ENTRY_enet_lwip=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/enet_lwip/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/enet_lwip/ccs/.ccsimportspec new file mode 100644 index 0000000..483c5e9 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/ccs/.ccsimportspec @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/ccs/.ccsproject b/boards/ek-tm4c1294xl/enet_lwip/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/ccs/.cproject b/boards/ek-tm4c1294xl/enet_lwip/ccs/.cproject new file mode 100644 index 0000000..3ae0c3e --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/ccs/.cproject @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/ccs/.project b/boards/ek-tm4c1294xl/enet_lwip/ccs/.project new file mode 100644 index 0000000..fdc182c --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/ccs/.project @@ -0,0 +1,95 @@ + + + enet_lwip + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + enet_fs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_lwip/enet_fs.c + + + enet_lwip.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.c + + + enet_lwip_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_lwip/enet_lwip_ccs.cmd + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_lwip/startup_ccs.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/locator.c + 1 + SW_ROOT/utils/locator.c + + + utils/lwiplib.c + 1 + SW_ROOT/utils/lwiplib.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + third_party/fatfs/port/mmc-ek-tm4c1294xl.c + 1 + SW_ROOT/third_party/fatfs/port/mmc-ek-tm4c1294xl.c + + + third_party/fatfs/src/ff.c + 1 + SW_ROOT/third_party/fatfs/src/ff.c + + + third_party/lwip-1.4.1/apps/httpserver_raw/httpd.c + 1 + SW_ROOT/third_party/lwip-1.4.1/apps/httpserver_raw/httpd.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/enet_lwip/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/enet_lwip/ccs/Debug/enet_lwip.bin b/boards/ek-tm4c1294xl/enet_lwip/ccs/Debug/enet_lwip.bin new file mode 100644 index 0000000..225863d Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/ccs/Debug/enet_lwip.bin differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/ccs/Debug/enet_lwip.out b/boards/ek-tm4c1294xl/enet_lwip/ccs/Debug/enet_lwip.out new file mode 100644 index 0000000..661ecbb Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/ccs/Debug/enet_lwip.out differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/enet_lwip/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/enet_lwip/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/enet_lwip/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_fs.c b/boards/ek-tm4c1294xl/enet_lwip/enet_fs.c new file mode 100644 index 0000000..b052fa7 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_fs.c @@ -0,0 +1,338 @@ +//***************************************************************************** +// +// enet_fs.c - File System Processing for lwIP Web Server Apps. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include +#include "inc/hw_memmap.h" +#include "driverlib/rom.h" +#include "driverlib/ssi.h" +#include "utils/lwiplib.h" +#include "utils/ustdlib.h" +#include "httpserver_raw/httpd.h" +#include "httpserver_raw/fs.h" +#include "httpserver_raw/fsdata.h" +#include "fatfs/src/ff.h" +#include "fatfs/src/diskio.h" + +//***************************************************************************** +// +// Include the file system data for this application. This file is generated +// by the makefsfile utility, using the following command: +// +// ../../../../tools/bin/makefsfile -i fs -o enet_fsdata.h -r -h -q +// +// If any changes are made to the static content of the web pages served by the +// application, this command must be used to regenerate enet_fsdata.h in order +// for those changes to be picked up by the web server. +// +//***************************************************************************** +#include "enet_fsdata.h" + +//***************************************************************************** +// +// The following are data structures used by FatFs. +// +//***************************************************************************** +static FATFS g_sFatFs; + +//***************************************************************************** +// +// The number of milliseconds that has passed since the last disk_timerproc() +// call. +// +//***************************************************************************** +static uint32_t ui32TickCounter = 0; + +//***************************************************************************** +// +// Initialize the file system. +// +//***************************************************************************** +void +fs_init(void) +{ + // + // Initialize and mount the Fat File System. + // + f_mount(0, &g_sFatFs); +} + +//***************************************************************************** +// +// File System tick handler. +// +//***************************************************************************** +void +fs_tick(uint32_t ui32TickMS) +{ + // + // Increment the tick counter. + // + ui32TickCounter += ui32TickMS; + + // + // Check to see if the FAT FS tick needs to run. + // + if(ui32TickCounter >= 10) + { + ui32TickCounter = 0; + disk_timerproc(); + } +} + +//***************************************************************************** +// +// Open a file and return a handle to the file, if found. Otherwise, +// return NULL. +// +//***************************************************************************** +struct fs_file * +fs_open(const char *pcName) +{ + const struct fsdata_file *psTree; + struct fs_file *psFile = NULL; + FIL *psFatFile = NULL; + FRESULT fresult = FR_OK; + + // + // Allocate memory for the file system structure. + // + psFile = mem_malloc(sizeof(struct fs_file)); + if(psFile == NULL) + { + return(NULL); + } + + // + // See if a file on the SD card is being requested. + // + if(ustrncmp(pcName, "/sd/", 4) == 0) + { + // + // Allocate memory for the Fat File system handle. + // + psFatFile = mem_malloc(sizeof(FIL)); + if(psFatFile == NULL) + { + mem_free(psFile); + return(NULL); + } + + // + // Attempt to open the file on the Fat File System. + // + fresult = f_open(psFatFile, pcName + 3, FA_READ); + if(fresult == FR_OK) + { + psFile->data = NULL; + psFile->len = 0; + psFile->index = 0; + psFile->pextension = psFatFile; + return(psFile); + } + + // + // If we get here, we failed to find the file on the Fat File System, + // so free up the Fat File system handle/object. + // + mem_free(psFatFile); + mem_free(psFile); + return(NULL); + } + + // + // Initialize the file system tree pointer to the root of the linked list. + // + psTree = FS_ROOT; + + // + // Begin processing the linked list, looking for the requested file name. + // + while(NULL != psTree) + { + // + // Compare the requested file "name" to the file name in the + // current node. + // + if(ustrncmp(pcName, (char *)psTree->name, psTree->len) == 0) + { + // + // Fill in the data pointer and length values from the + // linked list node. + // + psFile->data = (char *)psTree->data; + psFile->len = psTree->len; + + // + // For now, we setup the read index to the end of the file, + // indicating that all data has been read. + // + psFile->index = psTree->len; + + // + // We are not using any file system extensions in this + // application, so set the pointer to NULL. + // + psFile->pextension = NULL; + + // + // Exit the loop and return the file system pointer. + // + break; + } + + // + // If we get here, we did not find the file at this node of the linked + // list. Get the next element in the list. + // + psTree = psTree->next; + } + + // + // If we didn't find the file, ptTee will be NULL. Make sure we + // return a NULL pointer if this happens. + // + if(psTree == NULL) + { + mem_free(psFile); + psFile = NULL; + } + + // + // Return the file system pointer. + // + return(psFile); +} + +//***************************************************************************** +// +// Close an opened file designated by the handle. +// +//***************************************************************************** +void +fs_close(struct fs_file *psFile) +{ + // + // If a Fat file was opened, free its object. + // + if(psFile->pextension) + { + mem_free(psFile->pextension); + } + + // + // Free the main file system object. + // + mem_free(psFile); +} + +//***************************************************************************** +// +// Read the next chunck of data from the file. Return the count of data +// that was read. Return 0 if no data is currently available. Return +// a -1 if at the end of file. +// +//***************************************************************************** +int +fs_read(struct fs_file *psFile, char *pcBuffer, int iCount) +{ + int iAvailable; + UINT uiBytesRead; + FRESULT fresult; + + // + // Check to see if a Fat File was opened and process it. + // + if(psFile->pextension) + { + // + // Read the data. + // + fresult = f_read(psFile->pextension, pcBuffer, iCount, &uiBytesRead); + if((fresult != FR_OK) || (uiBytesRead == 0)) + { + return(-1); + } + return((int)uiBytesRead); + } + + // + // Check to see if more data is available. + // + if(psFile->index == psFile->len) + { + // + // There is no remaining data. Return a -1 for EOF indication. + // + return(-1); + } + + // + // Determine how much data we can copy. The minimum of the 'iCount' + // parameter or the available data in the file system buffer. + // + iAvailable = psFile->len - psFile->index; + if(iAvailable > iCount) + { + iAvailable = iCount; + } + + // + // Copy the data. + // + memcpy(pcBuffer, psFile->data + iAvailable, iAvailable); + psFile->index += iAvailable; + + // + // Return the count of data that we copied. + // + return(iAvailable); +} + +//***************************************************************************** +// +// Determine the number of bytes left to read from the file. +// +//***************************************************************************** +int +fs_bytes_left(struct fs_file *psFile) +{ + // + // Check to see if a Fat File was opened and process it. + // + if(psFile->pextension) + { + // + // Return the number of bytes left to be read from the Fat File. + // + return(f_size((FIL *)psFile->pextension) - + f_tell((FIL *)psFile->pextension)); + } + + // + // Return the number of bytes left to be read from this file. + // + return(psFile->len - psFile->index); +} diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_fs.h b/boards/ek-tm4c1294xl/enet_lwip/enet_fs.h new file mode 100644 index 0000000..9a409db --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_fs.h @@ -0,0 +1,56 @@ +//***************************************************************************** +// +// enet_fs.h - Prototypes for the file system module. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __ENET_FS_H__ +#define __ENET_FS_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Prototypes. +// +//***************************************************************************** +extern void fs_init(void); +extern void fs_tick(uint32_t ui32TickMS); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __ENET_FS_H__ diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_fsdata.h b/boards/ek-tm4c1294xl/enet_lwip/enet_fsdata.h new file mode 100644 index 0000000..72eb28e --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_fsdata.h @@ -0,0 +1,31160 @@ +//*************************************************************************** +// +// File System Image. +// +// This file was automatically generated using the makefsfile utility. +// +//*************************************************************************** + +static const uint8_t data_404_htm[] = +{ + /* /404.htm */ + 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, + 0x00, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x0a, 0x3c, 0x68, + 0x31, 0x3e, 0x34, 0x30, 0x34, 0x20, 0x2d, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x2f, + 0x68, 0x31, 0x3e, 0x0a, 0x3c, 0x68, 0x33, 0x3e, + 0x54, 0x72, 0x79, 0x20, 0x3c, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x22, 0x3e, + 0x68, 0x65, 0x72, 0x65, 0x3c, 0x2f, 0x61, 0x3e, + 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, + 0x2e, 0x3c, 0x2f, 0x68, 0x33, 0x3e, 0x0a, 0x3c, + 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, + 0x0a, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, + 0x0a, +}; + +static const uint8_t data_about_htm[] = +{ + /* /about.htm */ + 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, + 0x74, 0x6d, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0a, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x3e, 0x45, 0x4b, 0x2d, 0x54, + 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, + 0x4c, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4b, 0x69, 0x74, + 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, + 0x0a, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, + 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x73, 0x73, + 0x22, 0x2f, 0x3e, 0x0a, 0x3c, 0x6c, 0x69, 0x6e, + 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, + 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x20, + 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x78, 0x2d, 0x69, 0x63, 0x6f, 0x6e, + 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x2e, + 0x69, 0x63, 0x6f, 0x22, 0x2f, 0x3e, 0x0a, 0x3c, + 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x70, + 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x41, 0x62, + 0x6f, 0x75, 0x74, 0x20, 0x54, 0x65, 0x78, 0x61, + 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3c, 0x2f, 0x70, + 0x3e, 0x0a, 0x3c, 0x68, 0x72, 0x3e, 0x0a, 0x3c, + 0x62, 0x72, 0x3e, 0x0a, 0x54, 0x65, 0x78, 0x61, + 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x54, + 0x49, 0x29, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x0a, 0x3c, + 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2e, + 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x2f, 0x64, + 0x6f, 0x63, 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x74, + 0x73, 0x70, 0x3f, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x3d, 0x32, 0x39, 0x35, + 0x36, 0x36, 0x22, 0x3e, 0x61, 0x6e, 0x61, 0x6c, + 0x6f, 0x67, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x61, + 0x6e, 0x64, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, + 0x61, 0x6c, 0x0a, 0x3c, 0x61, 0x20, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, + 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, + 0x77, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x72, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x73, 0x68, 0x74, + 0x6d, 0x6c, 0x22, 0x3e, 0x73, 0x65, 0x6d, 0x69, + 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, + 0x72, 0x20, 0x49, 0x43, 0x20, 0x64, 0x65, 0x73, + 0x69, 0x67, 0x6e, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, + 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x61, 0x6e, 0x75, + 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x69, 0x6e, + 0x67, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, + 0x79, 0x2e, 0x20, 0x49, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x61, 0x6e, 0x61, 0x6c, 0x6f, 0x67, + 0x20, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, + 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x0a, 0x3c, + 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2e, + 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, + 0x73, 0x70, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2f, + 0x64, 0x73, 0x70, 0x68, 0x6f, 0x6d, 0x65, 0x2e, + 0x74, 0x73, 0x70, 0x3f, 0x73, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3d, 0x34, 0x36, + 0x22, 0x3e, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, + 0x6c, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x28, 0x44, 0x53, 0x50, + 0x29, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x61, 0x6e, + 0x64, 0x0a, 0x3c, 0x61, 0x20, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6d, 0x63, 0x75, 0x2f, 0x64, 0x6f, + 0x63, 0x73, 0x2f, 0x6d, 0x63, 0x75, 0x68, 0x6f, + 0x6d, 0x65, 0x2e, 0x74, 0x73, 0x70, 0x3f, 0x73, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x3d, 0x31, 0x30, 0x31, 0x22, 0x3e, 0x6d, 0x69, + 0x63, 0x72, 0x6f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x28, 0x4d, + 0x43, 0x55, 0x29, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, + 0x73, 0x65, 0x6d, 0x69, 0x63, 0x6f, 0x6e, 0x64, + 0x75, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2c, 0x20, + 0x54, 0x49, 0x20, 0x64, 0x65, 0x73, 0x69, 0x67, + 0x6e, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, + 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x20, 0x73, 0x65, 0x6d, 0x69, + 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, + 0x72, 0x20, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x61, 0x6e, 0x61, 0x6c, 0x6f, 0x67, 0x0a, 0x61, + 0x6e, 0x64, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, + 0x61, 0x6c, 0x20, 0x65, 0x6d, 0x62, 0x65, 0x64, + 0x64, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x2e, 0x20, + 0x49, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, + 0x69, 0x63, 0x72, 0x6f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x2c, 0x0a, 0x54, 0x49, + 0x20, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x62, 0x72, 0x6f, 0x61, + 0x64, 0x65, 0x73, 0x74, 0x20, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x6d, + 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x70, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2c, + 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x75, 0x6c, + 0x74, 0x72, 0x61, 0x2d, 0x6c, 0x6f, 0x77, 0x2d, + 0x70, 0x6f, 0x77, 0x65, 0x72, 0x0a, 0x3c, 0x61, + 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, + 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2e, 0x74, + 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x63, + 0x75, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2f, 0x6d, + 0x63, 0x75, 0x70, 0x72, 0x6f, 0x64, 0x6f, 0x76, + 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x74, + 0x73, 0x70, 0x3f, 0x73, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x3d, 0x39, 0x35, 0x26, + 0x74, 0x61, 0x62, 0x49, 0x64, 0x3d, 0x31, 0x34, + 0x30, 0x26, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x49, 0x64, 0x3d, 0x33, 0x34, 0x32, 0x22, 0x3e, + 0x4d, 0x53, 0x50, 0x34, 0x33, 0x30, 0x26, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x3b, 0x3c, 0x2f, 0x61, + 0x3e, 0x0a, 0x4d, 0x43, 0x55, 0x73, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x68, 0x69, 0x67, 0x68, 0x2d, + 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x0a, 0x3c, 0x61, 0x20, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, + 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x66, + 0x6f, 0x63, 0x75, 0x73, 0x2e, 0x74, 0x69, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x63, 0x75, 0x2f, + 0x64, 0x6f, 0x63, 0x73, 0x2f, 0x6d, 0x63, 0x75, + 0x70, 0x72, 0x6f, 0x64, 0x6f, 0x76, 0x65, 0x72, + 0x76, 0x69, 0x65, 0x77, 0x2e, 0x74, 0x73, 0x70, + 0x3f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x3d, 0x39, 0x35, 0x26, 0x74, 0x61, + 0x62, 0x49, 0x64, 0x3d, 0x31, 0x35, 0x33, 0x31, + 0x26, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x49, + 0x64, 0x3d, 0x39, 0x31, 0x36, 0x22, 0x3e, 0x54, + 0x4d, 0x53, 0x33, 0x32, 0x30, 0x43, 0x32, 0x30, + 0x30, 0x30, 0x26, 0x74, 0x72, 0x61, 0x64, 0x65, + 0x3b, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x72, 0x65, + 0x61, 0x6c, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, + 0x65, 0x72, 0x73, 0x2c, 0x20, 0x74, 0x6f, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x33, 0x32, 0x20, 0x62, + 0x69, 0x74, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x6c, 0x2d, 0x70, 0x75, 0x72, 0x70, 0x6f, + 0x73, 0x65, 0x20, 0x41, 0x52, 0x4d, 0x26, 0x72, + 0x65, 0x67, 0x3b, 0x2d, 0x62, 0x61, 0x73, 0x65, + 0x64, 0x20, 0x4d, 0x43, 0x55, 0x73, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x3c, 0x61, + 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, + 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x73, 0x64, 0x73, + 0x2f, 0x74, 0x69, 0x2f, 0x6d, 0x69, 0x63, 0x72, + 0x6f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x2f, 0x74, 0x69, 0x76, 0x61, + 0x5f, 0x61, 0x72, 0x6d, 0x5f, 0x63, 0x6f, 0x72, + 0x74, 0x65, 0x78, 0x2f, 0x63, 0x5f, 0x73, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x2f, 0x74, 0x6d, 0x34, + 0x63, 0x5f, 0x61, 0x72, 0x6d, 0x5f, 0x63, 0x6f, + 0x72, 0x74, 0x65, 0x78, 0x2d, 0x6d, 0x34, 0x2f, + 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, + 0x2e, 0x70, 0x61, 0x67, 0x65, 0x22, 0x3e, 0x54, + 0x69, 0x76, 0x61, 0x26, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x3b, 0x20, 0x43, 0x20, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x20, 0x52, 0x65, + 0x61, 0x64, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x75, 0x73, + 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x77, 0x65, 0x62, 0x20, 0x61, 0x74, 0x0a, 0x3c, + 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x3d, 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x22, 0x3e, 0x77, + 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, + 0x6d, 0x3c, 0x2f, 0x61, 0x3e, 0x2e, 0x0a, 0x3c, + 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, + 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, +}; + +static const uint8_t data_block_htm[] = +{ + /* /block.htm */ + 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x68, + 0x74, 0x6d, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0a, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x3e, 0x45, 0x4b, 0x2d, 0x54, + 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, + 0x4c, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4b, 0x69, 0x74, + 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, + 0x0a, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, + 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x73, 0x73, + 0x22, 0x2f, 0x3e, 0x0a, 0x3c, 0x6c, 0x69, 0x6e, + 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, + 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x20, + 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x78, 0x2d, 0x69, 0x63, 0x6f, 0x6e, + 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x2e, + 0x69, 0x63, 0x6f, 0x22, 0x2f, 0x3e, 0x0a, 0x3c, + 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x70, + 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x54, 0x4d, + 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, 0x4e, 0x43, + 0x50, 0x44, 0x54, 0x20, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x20, 0x44, 0x69, 0x61, 0x67, 0x72, 0x61, + 0x6d, 0x3c, 0x2f, 0x70, 0x3e, 0x0a, 0x3c, 0x68, + 0x72, 0x3e, 0x0a, 0x3c, 0x62, 0x72, 0x3e, 0x0a, + 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, + 0x0a, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, + 0x63, 0x3d, 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x6a, 0x70, 0x67, 0x22, 0x2f, 0x3e, 0x0a, + 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x3e, 0x0a, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, + 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, + 0x3e, 0x0a, +}; + +static const uint8_t data_block_jpg[] = +{ + /* /block.jpg */ + 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x6a, + 0x70, 0x67, 0x00, + 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, + 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0xf0, + 0x00, 0xf0, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x13, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, 0x49, 0x4d, + 0x50, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xdb, + 0x00, 0x43, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0xff, 0xc2, 0x00, 0x11, 0x08, + 0x01, 0xec, 0x02, 0x68, 0x03, 0x01, 0x11, 0x00, + 0x02, 0x11, 0x01, 0x03, 0x11, 0x01, 0xff, 0xc4, + 0x00, 0x1e, 0x00, 0x01, 0x00, 0x01, 0x04, 0x03, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x05, 0x07, + 0x08, 0x01, 0x02, 0x03, 0x09, 0x0a, 0xff, 0xc4, + 0x00, 0x1d, 0x01, 0x01, 0x00, 0x01, 0x04, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x03, 0x04, 0x06, + 0x07, 0x01, 0x02, 0x08, 0x09, 0xff, 0xda, 0x00, + 0x0c, 0x03, 0x01, 0x00, 0x02, 0x10, 0x03, 0x10, + 0x00, 0x00, 0x01, 0xfb, 0xf0, 0x63, 0x52, 0x98, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xb8, 0x99, 0x10, 0xb1, 0x98, + 0xb8, 0xc8, 0xe0, 0x00, 0x00, 0x00, 0xe4, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x72, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x63, 0x23, 0x30, 0x96, 0xd3, 0x17, 0x99, 0x28, + 0xd4, 0xc3, 0xe5, 0xb1, 0xbe, 0xe6, 0x95, 0x9f, + 0x55, 0x0f, 0x9f, 0x86, 0xce, 0x15, 0xa6, 0xb6, + 0x97, 0xb3, 0x72, 0xcf, 0x94, 0x47, 0xd9, 0xe3, + 0x40, 0x4b, 0x81, 0x8f, 0xcc, 0xf2, 0x64, 0x33, + 0x0d, 0x9f, 0x3e, 0x4f, 0xbd, 0x86, 0x81, 0x98, + 0xb8, 0xad, 0x2f, 0x84, 0xd4, 0xa5, 0x35, 0x20, + 0xcc, 0x26, 0xda, 0x1f, 0x36, 0x4f, 0xa5, 0xe6, + 0xe6, 0x00, 0x00, 0x00, 0x02, 0xc0, 0x79, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x05, 0x50, 0x00, + 0x1e, 0x60, 0xf4, 0x00, 0x03, 0xb1, 0x05, 0x33, + 0x31, 0x44, 0x62, 0xd3, 0x25, 0x03, 0xe4, 0xc1, + 0xf4, 0x00, 0xf8, 0xac, 0x6f, 0xc9, 0xaf, 0x25, + 0x31, 0x9c, 0xc8, 0xc9, 0xf5, 0x5c, 0x8b, 0x9f, + 0x38, 0xcf, 0xa9, 0x06, 0x86, 0x1e, 0xe6, 0xb9, + 0x18, 0xc0, 0x9a, 0x12, 0x32, 0x3e, 0x7a, 0x18, + 0x60, 0xfa, 0xca, 0x67, 0x23, 0xe4, 0xc9, 0x3f, + 0x32, 0xe1, 0x82, 0x4d, 0xf1, 0x35, 0x94, 0xc3, + 0xa7, 0xd6, 0x70, 0x00, 0x00, 0x00, 0x0c, 0x7a, + 0x69, 0xd9, 0x75, 0x3b, 0x9e, 0xc7, 0x62, 0x8c, + 0x90, 0x90, 0x72, 0x66, 0x58, 0x8b, 0xe9, 0xb3, + 0xe0, 0x03, 0xc4, 0xa4, 0x35, 0xa4, 0xc9, 0xe7, + 0x63, 0x2b, 0x17, 0x83, 0xb1, 0xaf, 0x04, 0x60, + 0x92, 0x17, 0x53, 0x28, 0x97, 0xe2, 0x20, 0x66, + 0x72, 0x88, 0xc5, 0x86, 0x49, 0x07, 0xcd, 0xf3, + 0x73, 0x4d, 0x45, 0x20, 0x25, 0xd4, 0xcd, 0x84, + 0x14, 0xc5, 0xc7, 0x43, 0x75, 0xcd, 0x7c, 0x36, + 0x4c, 0xf9, 0x42, 0x7d, 0x2a, 0x35, 0x78, 0xc8, + 0x66, 0x57, 0x35, 0xc8, 0x93, 0x17, 0x62, 0x8c, + 0xc1, 0xa7, 0x91, 0x95, 0xcf, 0xa5, 0x27, 0xa9, + 0xf0, 0xcc, 0xca, 0x87, 0xd4, 0x63, 0x43, 0x0f, + 0xa4, 0x00, 0x00, 0x00, 0x00, 0x18, 0xec, 0x83, + 0x98, 0xa0, 0xaf, 0x31, 0xc9, 0x2b, 0x2f, 0x64, + 0x40, 0xbc, 0x82, 0xbc, 0xb7, 0x9b, 0x3a, 0x00, + 0x3c, 0x8a, 0xf2, 0x00, 0x4a, 0x8e, 0xc7, 0xa9, + 0x7a, 0x3b, 0x11, 0xe2, 0x14, 0x49, 0x0b, 0xe1, + 0x6f, 0x24, 0x64, 0x5c, 0xcd, 0x05, 0x11, 0x8b, + 0x0c, 0x92, 0x0c, 0x55, 0x17, 0x9d, 0x6b, 0xec, + 0x26, 0xd1, 0xf2, 0xe3, 0xb8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x2e, 0x32, 0x94, 0x8e, 0x1b, + 0xb1, 0x53, 0xfa, 0x93, 0x83, 0xcc, 0x85, 0x14, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x0e, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x17, 0xe2, 0x52, 0x63, 0x53, 0x34, + 0x14, 0x46, 0x2a, 0x32, 0x41, 0x8c, 0xa3, 0x73, + 0x6f, 0xcd, 0x0e, 0x81, 0xfa, 0xf1, 0x6a, 0xa7, + 0x7b, 0xcb, 0x8e, 0x4e, 0x1c, 0xdc, 0x7b, 0xda, + 0x5f, 0xeb, 0x46, 0x43, 0x6d, 0xa7, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x7d, 0xe3, 0xdc, 0x7f, 0x35, + 0x37, 0x7b, 0x31, 0xf3, 0x76, 0x0f, 0xb9, 0x8b, + 0xc4, 0x5b, 0x17, 0xce, 0x9e, 0x15, 0x2d, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x91, + 0xe2, 0x9b, 0x62, 0xcd, 0x8c, 0x6d, 0x1b, 0xa6, + 0x67, 0xa5, 0xac, 0x13, 0xfa, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0xe9, 0xc5, 0x49, + 0x06, 0x03, 0xbf, 0x73, 0x74, 0x66, 0x51, 0x42, + 0x66, 0xa2, 0x88, 0xc5, 0x26, 0x48, 0x35, 0xb3, + 0x1e, 0xdc, 0x3f, 0x9d, 0x2d, 0x19, 0xf5, 0x6f, + 0x73, 0x32, 0x7d, 0x0b, 0x37, 0xbb, 0xc7, 0xae, + 0x75, 0x2d, 0x06, 0x49, 0xbe, 0xc5, 0x75, 0xa6, + 0x0b, 0x6b, 0xe9, 0xb6, 0x31, 0xbe, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x7d, 0x91, 0xda, 0x5e, 0x06, + 0xfa, 0x61, 0xb0, 0xbc, 0x79, 0xa5, 0xb9, 0xbe, + 0x8f, 0xd6, 0x9d, 0xbd, 0xe3, 0xe0, 0x00, 0x03, + 0x3e, 0x62, 0xbb, 0x5f, 0xd3, 0xaf, 0x7c, 0x7d, + 0x2f, 0x87, 0xdc, 0xa9, 0x5e, 0x58, 0x6e, 0x62, + 0xfd, 0xfa, 0xd5, 0xe1, 0xc4, 0x7a, 0xee, 0x26, + 0xcf, 0x71, 0x1e, 0x00, 0x03, 0x2c, 0x63, 0xbb, + 0x17, 0x32, 0x68, 0xbf, 0x76, 0x6b, 0x17, 0xa2, + 0xfe, 0x72, 0xd8, 0x2e, 0xe2, 0x06, 0x6c, 0xc6, + 0x76, 0x6d, 0x35, 0x5b, 0x7b, 0x05, 0xdc, 0x3c, + 0x66, 0xf6, 0x16, 0x55, 0x63, 0x3b, 0x45, 0x52, + 0xde, 0xfb, 0x69, 0x2d, 0x45, 0x52, 0xda, 0xe3, + 0x46, 0xf6, 0x63, 0x1d, 0x91, 0x62, 0xe9, 0xec, + 0x0e, 0x86, 0xa5, 0xb4, 0xc6, 0x3b, 0x24, 0xe1, + 0xc5, 0xa6, 0xe6, 0x36, 0x8a, 0xa5, 0xb4, 0x5a, + 0xf6, 0x12, 0xdb, 0x5a, 0xcc, 0x6c, 0x06, 0xb6, + 0xf4, 0xae, 0x6b, 0xd6, 0x7e, 0x9c, 0x96, 0x19, + 0xac, 0xa2, 0x31, 0x49, 0x92, 0x0d, 0x6c, 0xc7, + 0xb7, 0x0f, 0xe7, 0x4b, 0x46, 0x7d, 0x5b, 0xdb, + 0x8c, 0x93, 0x48, 0xcc, 0xae, 0x60, 0x71, 0x04, + 0x6e, 0x71, 0x9f, 0xe6, 0x35, 0xae, 0x05, 0x88, + 0xd8, 0xfa, 0xdf, 0x07, 0xb5, 0x8e, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x7d, 0x91, 0xda, 0x5e, 0x06, + 0xfa, 0x61, 0xb0, 0xbc, 0x79, 0xa1, 0x59, 0x8e, + 0x98, 0xd3, 0xdd, 0xa3, 0xe5, 0x80, 0x00, 0x03, + 0x7f, 0x75, 0xe7, 0xa3, 0x2f, 0x76, 0xd2, 0x57, + 0x7a, 0x57, 0x58, 0x76, 0x67, 0x0c, 0xc9, 0xd1, + 0x79, 0x47, 0x77, 0x6c, 0x49, 0x31, 0x86, 0xeb, + 0x0e, 0x53, 0xaa, 0x23, 0x57, 0x71, 0x20, 0x00, + 0x33, 0x44, 0x16, 0x77, 0xb4, 0x9a, 0x67, 0xda, + 0x7a, 0x29, 0xbe, 0xbc, 0x07, 0x1e, 0xb9, 0x8d, + 0x1b, 0x55, 0x88, 0xee, 0x1a, 0xca, 0x57, 0x57, + 0x7e, 0x95, 0xf3, 0x04, 0x2e, 0x6b, 0x1f, 0xaf, + 0x1f, 0x8d, 0xa5, 0x31, 0x7b, 0x55, 0x7b, 0x09, + 0x3d, 0xac, 0xac, 0x1a, 0xff, 0x00, 0x1f, 0x9a, + 0xd9, 0x4d, 0xdc, 0x28, 0xde, 0x48, 0x2d, 0xa5, + 0x2b, 0x29, 0xdc, 0x46, 0xef, 0x21, 0xe4, 0xf6, + 0x73, 0x31, 0xdb, 0xa8, 0x9d, 0x6b, 0xc9, 0xf5, + 0x76, 0x24, 0x98, 0xc3, 0x46, 0xd2, 0x60, 0x3e, + 0x81, 0xd9, 0x6d, 0x77, 0xe8, 0xd9, 0x61, 0x9a, + 0xca, 0x23, 0x13, 0x99, 0x1c, 0xd6, 0xdc, 0x7b, + 0x70, 0xfe, 0x75, 0x34, 0x67, 0xd5, 0xbe, 0xee, + 0x87, 0x3d, 0x1d, 0xb9, 0x71, 0xc3, 0x91, 0x53, + 0xcd, 0x1e, 0xae, 0x7c, 0x38, 0xa9, 0xe8, 0xea, + 0x39, 0xe7, 0x8f, 0x6e, 0x7a, 0x52, 0x75, 0xae, + 0x00, 0x00, 0x7d, 0x90, 0xda, 0x5e, 0x06, 0xfa, + 0x5d, 0xb0, 0xbc, 0x79, 0xa7, 0x12, 0x58, 0xd6, + 0x9a, 0xec, 0x4f, 0x3b, 0x5b, 0xfb, 0xd2, 0x00, + 0x01, 0xd1, 0xc7, 0x27, 0x07, 0x27, 0x00, 0xcd, + 0x11, 0x59, 0x5e, 0x1a, 0x95, 0xc5, 0x40, 0x00, + 0x0d, 0x91, 0xc6, 0xb6, 0x4e, 0x52, 0xc2, 0xf7, + 0x56, 0x04, 0xd8, 0x3e, 0x7b, 0xc2, 0xf3, 0x18, + 0x80, 0xe1, 0xc1, 0xcf, 0x0e, 0x00, 0x03, 0x93, + 0x80, 0x00, 0x38, 0x06, 0xc5, 0x42, 0x67, 0x18, + 0x56, 0x57, 0x14, 0xb1, 0x56, 0xb3, 0xf5, 0xe3, + 0x9d, 0xc0, 0xc1, 0x77, 0xae, 0x61, 0x81, 0xcf, + 0x65, 0x66, 0x6d, 0x28, 0x8c, 0x4e, 0x64, 0x63, + 0x5b, 0x71, 0xed, 0xc3, 0xf9, 0xd5, 0xd1, 0x9f, + 0x56, 0xf6, 0xe3, 0x24, 0xd2, 0x34, 0xfd, 0x6a, + 0x53, 0xf1, 0x5b, 0x37, 0xca, 0xeb, 0xdc, 0x43, + 0x1b, 0x9b, 0xf8, 0x75, 0xa9, 0x11, 0xb6, 0x9b, + 0xdc, 0xfc, 0xa7, 0x42, 0xfc, 0xc2, 0xc0, 0x7d, + 0x79, 0xf4, 0x47, 0x35, 0xf2, 0xed, 0x57, 0x7a, + 0x37, 0xca, 0x91, 0xf8, 0x56, 0x2f, 0x3e, 0xd1, + 0xcc, 0x4f, 0xd1, 0x00, 0x00, 0x07, 0xd9, 0x0d, + 0xa5, 0xe0, 0x6f, 0xa5, 0xbb, 0x0b, 0xc7, 0x9a, + 0x9a, 0x69, 0x09, 0x01, 0x00, 0x03, 0x23, 0x14, + 0xc6, 0x51, 0x3d, 0x08, 0x39, 0x5a, 0x47, 0x09, + 0x41, 0x8a, 0x8b, 0x40, 0x00, 0x03, 0x7e, 0x4b, + 0x81, 0x8a, 0x8d, 0x4b, 0x00, 0x9f, 0x92, 0xf2, + 0x2e, 0x77, 0x38, 0x2b, 0x0a, 0x62, 0x80, 0xbf, + 0x16, 0x63, 0x28, 0x18, 0xd4, 0x90, 0x11, 0x32, + 0x08, 0x00, 0x3e, 0x8b, 0x93, 0xd2, 0x56, 0x66, + 0xd2, 0x88, 0xc4, 0x86, 0x44, 0x35, 0xc3, 0x1e, + 0xdc, 0x3f, 0x9d, 0x7d, 0x19, 0xf5, 0x6f, 0x65, + 0x27, 0x75, 0x36, 0x4a, 0xbe, 0xc4, 0xfc, 0xb8, + 0xa9, 0x1e, 0xa1, 0x27, 0x93, 0x2f, 0xf1, 0x28, + 0xfd, 0x19, 0x3d, 0x2c, 0xc5, 0xb7, 0xed, 0xbb, + 0xa5, 0xd6, 0x59, 0x91, 0xc2, 0xf6, 0xf7, 0x25, + 0xd1, 0xf8, 0xfa, 0xcf, 0x25, 0xc8, 0x17, 0x98, + 0xd7, 0xcf, 0x6c, 0x2f, 0xd3, 0xb4, 0x7d, 0x6e, + 0x00, 0x00, 0x0f, 0xb2, 0x5b, 0x4f, 0xc0, 0x9f, + 0x49, 0xf6, 0x0f, 0x8f, 0xb5, 0x44, 0xd2, 0x52, + 0x04, 0x00, 0x04, 0x98, 0xab, 0x32, 0x49, 0x48, + 0x40, 0x09, 0x51, 0x2f, 0x2c, 0x44, 0x14, 0x86, + 0x80, 0x00, 0x37, 0xd4, 0xaf, 0x31, 0x61, 0xa9, + 0xc0, 0x13, 0x52, 0xa0, 0x9b, 0x9e, 0x05, 0xd4, + 0xee, 0x5a, 0xcc, 0x7e, 0x4c, 0xcb, 0x91, 0x24, + 0x28, 0x4a, 0x02, 0x22, 0x63, 0x00, 0x01, 0xf4, + 0x48, 0x9d, 0x92, 0xa3, 0x38, 0x14, 0x46, 0x24, + 0x32, 0x21, 0xae, 0x18, 0xf6, 0xe1, 0xfc, 0xeb, + 0xe8, 0xcf, 0xab, 0x7e, 0x9c, 0xf4, 0x1e, 0x7c, + 0x77, 0xec, 0xeb, 0xd5, 0xdb, 0xbb, 0xa7, 0xb7, + 0x3d, 0x38, 0x3c, 0x38, 0xab, 0xe9, 0xcf, 0x4f, + 0x6e, 0x7a, 0x78, 0x71, 0x53, 0xcf, 0x8e, 0xe0, + 0x00, 0x00, 0xfb, 0x2d, 0xb5, 0x3c, 0x05, 0xf4, + 0x8f, 0x60, 0x79, 0x03, 0x54, 0x4c, 0x10, 0x44, + 0x00, 0x04, 0xc8, 0xf5, 0x3a, 0x16, 0x12, 0x54, + 0x45, 0x09, 0x09, 0x6f, 0x3d, 0xce, 0x08, 0x91, + 0xc8, 0x00, 0x1b, 0x44, 0x50, 0x11, 0x2b, 0x59, + 0xbd, 0x57, 0x85, 0xda, 0x02, 0x65, 0x2d, 0xaf, + 0xa5, 0xf7, 0xd8, 0xac, 0x7c, 0xe0, 0xf1, 0x3d, + 0xc9, 0x49, 0x0f, 0x2e, 0xa5, 0xa8, 0xb9, 0x9c, + 0x15, 0x27, 0x89, 0x6a, 0x00, 0xf6, 0x3c, 0x4d, + 0xb5, 0x25, 0xe4, 0xa8, 0xce, 0x05, 0x11, 0x88, + 0x4c, 0x86, 0x6b, 0x8e, 0x3d, 0xb8, 0x7f, 0x3b, + 0x5a, 0x33, 0xea, 0xde, 0xc8, 0xce, 0x6a, 0x8c, + 0xd3, 0x2b, 0x80, 0x6b, 0xcc, 0x26, 0xd0, 0xd9, + 0x79, 0xed, 0x4d, 0xac, 0xd0, 0x3b, 0x6f, 0x2a, + 0x48, 0x61, 0xb7, 0x4a, 0x96, 0x59, 0x16, 0xfb, + 0x17, 0xd4, 0x4c, 0x6b, 0x77, 0xed, 0xe6, 0x4b, + 0xa4, 0x32, 0x1d, 0xee, 0x2d, 0xaf, 0xf0, 0xdb, + 0x32, 0x0b, 0x69, 0x91, 0xea, 0xb6, 0x3d, 0xb9, + 0x40, 0x00, 0x0f, 0xb2, 0x9b, 0x53, 0xc0, 0x5f, + 0x48, 0x76, 0x07, 0x90, 0x35, 0x54, 0xd2, 0xf2, + 0x08, 0x00, 0x32, 0x89, 0x91, 0x4a, 0x32, 0xf4, + 0x43, 0x8f, 0x02, 0x78, 0x45, 0xcc, 0x80, 0x5c, + 0x8d, 0x2a, 0x3b, 0x80, 0x01, 0xbd, 0x85, 0x61, + 0xaa, 0xd8, 0x67, 0xa5, 0x75, 0x5f, 0x5f, 0x7b, + 0x0a, 0x87, 0xa5, 0xc4, 0x9b, 0x32, 0xf3, 0x66, + 0xdf, 0xec, 0x5f, 0x19, 0xe4, 0x23, 0xc8, 0x8a, + 0x90, 0xd2, 0x5c, 0x5f, 0x0f, 0x02, 0xd4, 0x48, + 0x4c, 0x20, 0x65, 0x52, 0xb0, 0xb3, 0x17, 0xd3, + 0xa9, 0x23, 0x35, 0xa0, 0xdd, 0x72, 0x76, 0x4a, + 0x4c, 0xe4, 0x51, 0x18, 0x80, 0xc8, 0x66, 0xb8, + 0xe3, 0xdb, 0x87, 0xf3, 0xb7, 0xa3, 0x3e, 0xad, + 0xe7, 0xf9, 0x8d, 0x67, 0x9c, 0x25, 0xb5, 0xe6, + 0xba, 0xc2, 0x6d, 0x2c, 0x9b, 0x7f, 0x88, 0xe3, + 0x3b, 0x1c, 0xba, 0xc7, 0x46, 0x43, 0x2d, 0xc9, + 0x61, 0x35, 0xdd, 0xed, 0xf5, 0xde, 0x13, 0x68, + 0x67, 0xb9, 0x8d, 0x6f, 0x43, 0xd2, 0xbc, 0x3a, + 0xda, 0x7a, 0x65, 0x75, 0x03, 0xac, 0xd0, 0x3b, + 0x70, 0x00, 0x00, 0xfb, 0x29, 0xb5, 0x3c, 0x05, + 0xf4, 0x83, 0x60, 0x79, 0x03, 0x55, 0x8c, 0x02, + 0x43, 0x80, 0x04, 0xa4, 0xa6, 0x3c, 0x0a, 0x12, + 0x4c, 0x46, 0x8b, 0xc1, 0x4e, 0x78, 0x1e, 0xa5, + 0x94, 0x00, 0x01, 0xb5, 0x25, 0x11, 0x62, 0xb4, + 0x9f, 0xd4, 0x88, 0x5d, 0x9f, 0xe4, 0x4a, 0xe5, + 0x70, 0x09, 0xac, 0x86, 0x21, 0x56, 0x70, 0x79, + 0x96, 0x12, 0xf2, 0x7a, 0x14, 0xe5, 0x41, 0xe4, + 0x59, 0x4a, 0xa2, 0xe2, 0x53, 0x9e, 0x05, 0xcc, + 0xe4, 0xf4, 0x36, 0x0c, 0x99, 0x92, 0x93, 0x39, + 0x94, 0x46, 0x1e, 0x32, 0x19, 0x83, 0xac, 0xf2, + 0x3f, 0x88, 0x38, 0xae, 0xff, 0x00, 0x1e, 0xdc, + 0xd3, 0xf1, 0xe2, 0xa5, 0xdc, 0xec, 0x5b, 0xce, + 0x87, 0x88, 0x07, 0x53, 0x22, 0x98, 0xf0, 0x15, + 0x25, 0x79, 0x4c, 0x52, 0x9e, 0x40, 0xfa, 0x91, + 0x3d, 0xa8, 0xf7, 0xa2, 0x63, 0x5c, 0xea, 0xc9, + 0xa4, 0xa4, 0x08, 0x00, 0x64, 0xa2, 0x90, 0xcc, + 0x47, 0x62, 0x18, 0x5d, 0x41, 0x24, 0x22, 0xa4, + 0xa0, 0x8c, 0x1a, 0xfe, 0x00, 0x06, 0xfa, 0x95, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x32, 0x31, 0x29, 0x33, 0xa1, 0x44, 0x61, + 0xe3, 0x21, 0x9a, 0xe0, 0x7e, 0x75, 0x80, 0x07, + 0xd0, 0xd3, 0xd8, 0x8e, 0x18, 0x60, 0xd7, 0x60, + 0x0e, 0x86, 0xca, 0x1a, 0xdc, 0x79, 0x9f, 0x4e, + 0xcc, 0x8c, 0x62, 0xd3, 0x54, 0x8c, 0x02, 0x0f, + 0xb2, 0xa7, 0xd2, 0x43, 0x56, 0x4d, 0x3b, 0x20, + 0xa0, 0x02, 0x44, 0x54, 0x93, 0x63, 0x82, 0x3a, + 0x56, 0x16, 0x93, 0xc4, 0x98, 0x14, 0xa5, 0x69, + 0x87, 0x80, 0x00, 0xde, 0x22, 0xa4, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x46, + 0x25, 0x26, 0x74, 0x28, 0x8c, 0x3a, 0x64, 0x13, + 0x05, 0x1f, 0x0b, 0x40, 0x04, 0xf0, 0xe0, 0xbd, + 0x94, 0x86, 0x34, 0x00, 0xe8, 0x67, 0xf3, 0x01, + 0x9d, 0x4d, 0x95, 0x23, 0xe4, 0x2c, 0x91, 0x18, + 0x78, 0x1f, 0x55, 0x8d, 0xf3, 0x35, 0x6c, 0xd5, + 0xf2, 0x14, 0x00, 0x00, 0x03, 0x2d, 0x96, 0xb3, + 0xb1, 0x6e, 0x20, 0xe0, 0x00, 0x00, 0x37, 0x14, + 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x22, 0x92, 0x83, 0x3b, 0x14, 0x46, + 0x1b, 0x32, 0x11, 0x80, 0x4f, 0xce, 0xf9, 0xb0, + 0x05, 0xd4, 0xf1, 0x3b, 0x98, 0x3c, 0xd8, 0xc3, + 0x54, 0x49, 0xe9, 0x99, 0x8b, 0x99, 0xe2, 0x45, + 0x4d, 0x79, 0x36, 0x58, 0xaf, 0x28, 0x8b, 0xd9, + 0x20, 0x31, 0x79, 0x56, 0x7d, 0x02, 0x3e, 0x87, + 0x9a, 0xba, 0x69, 0x29, 0x02, 0x00, 0x00, 0x01, + 0xb5, 0xc6, 0x3c, 0x32, 0xf1, 0x83, 0x0c, 0x52, + 0x00, 0x00, 0x03, 0x7d, 0x4a, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x14, + 0x93, 0x99, 0xdc, 0xa2, 0x30, 0xd9, 0x90, 0x8c, + 0x00, 0x7e, 0x72, 0x8d, 0x9d, 0x33, 0x79, 0x48, + 0x40, 0x8d, 0x66, 0x33, 0x59, 0xad, 0x26, 0x4d, + 0x36, 0x28, 0xc2, 0xe6, 0xd5, 0x9a, 0xa0, 0x61, + 0x43, 0x61, 0x8c, 0xbc, 0x5d, 0xcb, 0x09, 0x31, + 0x35, 0x48, 0xac, 0x3e, 0x94, 0x1f, 0x48, 0x0d, + 0x5c, 0x35, 0xe0, 0x84, 0x80, 0x01, 0x7c, 0x3d, + 0x4b, 0x79, 0xd4, 0xaa, 0x2e, 0xa5, 0xa4, 0xa4, + 0x3c, 0x8a, 0x70, 0x00, 0x06, 0xda, 0x14, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x29, 0x27, 0x33, 0xb9, 0x44, 0x61, 0x83, + 0x20, 0x9d, 0x0d, 0x30, 0x28, 0x01, 0xc0, 0x39, + 0x26, 0x84, 0x2c, 0x00, 0x00, 0x25, 0xe4, 0x3c, + 0xe4, 0x1c, 0x1c, 0x9c, 0x9b, 0x66, 0x4b, 0xcd, + 0x5e, 0x34, 0xb0, 0xc7, 0xa0, 0x00, 0x64, 0xb3, + 0x3a, 0x16, 0xa2, 0x90, 0xc6, 0x64, 0x9c, 0x8a, + 0x19, 0x7c, 0x8e, 0x9a, 0xe2, 0x76, 0x00, 0x03, + 0x7d, 0x4a, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x19, 0x10, 0x93, 0x19, 0xe4, + 0xa2, 0x30, 0xb9, 0x90, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6a, 0x91, + 0x88, 0x4c, 0x4e, 0x00, 0x04, 0x90, 0x17, 0x82, + 0x2e, 0x49, 0x4e, 0x48, 0xd9, 0x26, 0x3a, 0x90, + 0x50, 0x00, 0x2a, 0x4d, 0xb2, 0x29, 0x89, 0x0d, + 0xec, 0x27, 0x95, 0xfc, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0xa2, 0xce, 0x5e, 0x37, + 0x1f, 0x90, 0xe4, 0x32, 0x4e, 0x67, 0x92, 0x88, + 0xc2, 0x66, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xc9, 0xac, 0xf5, 0xe3, + 0xe8, 0xb3, 0x3d, 0x31, 0xe5, 0xde, 0x88, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xf5, 0x01, + 0xb0, 0x2a, 0x60, 0xb3, 0xad, 0x64, 0xf4, 0x87, + 0xcd, 0x9b, 0x5d, 0xd4, 0x60, 0xbf, 0x5a, 0x4b, + 0xcc, 0x23, 0x72, 0x4c, 0x5f, 0x3b, 0x81, 0xf7, + 0xe3, 0xbd, 0xea, 0xda, 0x4e, 0xc5, 0x75, 0x13, + 0xc7, 0x2b, 0xad, 0xbd, 0xfe, 0x48, 0x84, 0xcd, + 0xa0, 0x52, 0xf8, 0x8d, 0x86, 0xee, 0x22, 0x4f, + 0x63, 0x3d, 0x17, 0xbe, 0x81, 0x95, 0xc7, 0xe4, + 0x31, 0x49, 0x0c, 0x7b, 0x97, 0x3c, 0x82, 0xa6, + 0x9d, 0xc6, 0xd1, 0x79, 0xd3, 0xe8, 0xe4, 0x82, + 0xce, 0x62, 0x4c, 0x67, 0xb2, 0x88, 0xc2, 0x66, + 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xc9, 0xa6, 0xdb, 0x13, 0xce, 0x58, + 0x17, 0x69, 0xf9, 0x5b, 0x26, 0x42, 0x67, 0x17, + 0x4b, 0x79, 0x0c, 0x7b, 0x33, 0x86, 0x4b, 0xe3, + 0xf2, 0x2a, 0x6e, 0xf4, 0x2c, 0xb7, 0x31, 0x9e, + 0xfd, 0x6a, 0xd6, 0x51, 0xbb, 0xca, 0xd0, 0x39, + 0xfe, 0x26, 0xc8, 0x35, 0xe5, 0x05, 0x6b, 0x4e, + 0x9c, 0xf5, 0xe1, 0xc7, 0x7e, 0x3b, 0x76, 0xe3, + 0xb5, 0x7d, 0x2b, 0xab, 0x5d, 0x7b, 0x1e, 0x39, + 0xe2, 0x6b, 0x19, 0x93, 0xe2, 0x89, 0xec, 0x06, + 0x67, 0x17, 0x94, 0xed, 0x07, 0x9f, 0xfe, 0x82, + 0xfc, 0xec, 0xf4, 0x4f, 0xce, 0x5f, 0x4e, 0x3b, + 0x0c, 0xb7, 0x07, 0x9c, 0xe6, 0xfc, 0x7f, 0x62, + 0x48, 0x6d, 0x65, 0x66, 0xf1, 0xb9, 0x25, 0x57, + 0x4a, 0xd1, 0xcb, 0xa8, 0xab, 0x85, 0x2b, 0xcd, + 0x28, 0xd8, 0x5e, 0x75, 0xde, 0x2d, 0x75, 0xe8, + 0xe8, 0x9d, 0xf4, 0x1d, 0x67, 0x4a, 0xd6, 0xaa, + 0xb6, 0x91, 0xeb, 0xc8, 0x8c, 0xb9, 0x05, 0x9d, + 0x53, 0xf6, 0xa7, 0xa9, 0xd9, 0xb6, 0x90, 0xc1, + 0xd9, 0x16, 0xb9, 0x03, 0x78, 0x74, 0x3f, 0xbe, + 0x25, 0xf1, 0xb9, 0x2c, 0x98, 0xcf, 0x65, 0x11, + 0x84, 0x8c, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0xb1, 0xa1, 0x3b, 0x07, + 0xcf, 0x3a, 0xd1, 0xb1, 0x7c, 0xe3, 0x9f, 0x31, + 0xdd, 0x8f, 0x9b, 0xb1, 0xed, 0x85, 0x78, 0xa3, + 0x7b, 0x2e, 0xb2, 0x9b, 0xa7, 0xef, 0x47, 0x1e, + 0xc8, 0xe3, 0x93, 0x2b, 0x19, 0xcd, 0x61, 0xcb, + 0xb5, 0x0e, 0xd7, 0x61, 0xbb, 0x9a, 0xcb, 0x71, + 0x1d, 0x09, 0xbe, 0x83, 0x96, 0x5a, 0xcb, 0x5e, + 0xad, 0xa4, 0x6a, 0x3a, 0xd6, 0xe7, 0x8e, 0x31, + 0x94, 0xae, 0x2d, 0x96, 0x21, 0xf3, 0x0c, 0x45, + 0x35, 0x85, 0xe4, 0x78, 0xbc, 0x9f, 0xe7, 0x7e, + 0xce, 0xf3, 0x04, 0xae, 0xce, 0x67, 0x78, 0x34, + 0x4f, 0xbc, 0xfe, 0x5e, 0xee, 0xdf, 0x10, 0x46, + 0x2b, 0xd8, 0x8b, 0x8d, 0x3b, 0x99, 0xf5, 0x84, + 0xf4, 0xe2, 0xd2, 0x5b, 0x1f, 0xde, 0xc3, 0x56, + 0xf4, 0xad, 0x64, 0xad, 0x65, 0xd9, 0xcc, 0x5a, + 0xea, 0x2a, 0x5b, 0x69, 0x2d, 0xe9, 0xc7, 0x6a, + 0x1e, 0xf4, 0x6b, 0xfa, 0x57, 0xab, 0xe9, 0x5b, + 0xc3, 0xb5, 0x3e, 0xae, 0x22, 0x77, 0x71, 0x36, + 0x5a, 0xd6, 0x42, 0xe7, 0x4e, 0xbf, 0xd3, 0x7d, + 0x2f, 0xed, 0x59, 0x55, 0xb4, 0x9c, 0x94, 0xcf, + 0x85, 0x11, 0x84, 0x0c, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x93, 0x4c, + 0x32, 0x2d, 0x73, 0xa1, 0xfb, 0x1f, 0xce, 0x34, + 0xfc, 0xf4, 0x90, 0x51, 0xbd, 0x93, 0xdb, 0x49, + 0x63, 0x9b, 0xf8, 0x01, 0xc1, 0xc9, 0xc1, 0xc8, + 0x00, 0xc8, 0xf6, 0x13, 0xd5, 0xfd, 0x2b, 0xe2, + 0x99, 0x2c, 0x68, 0x0e, 0x0e, 0x4e, 0x0d, 0x87, + 0x82, 0xce, 0xf6, 0x7f, 0x59, 0x7a, 0x72, 0x25, + 0x5e, 0xc3, 0x5a, 0xae, 0x23, 0xf2, 0xe9, 0x8f, + 0x8b, 0x89, 0x2b, 0x23, 0xc5, 0x39, 0x50, 0x75, + 0x2d, 0x25, 0x01, 0x28, 0x25, 0xe4, 0x74, 0x93, + 0x96, 0x33, 0xc0, 0xa6, 0x2b, 0x48, 0x59, 0x7e, + 0xa3, 0x7b, 0xb4, 0x76, 0xd2, 0x52, 0x12, 0x4a, + 0x67, 0xe2, 0x88, 0xc2, 0x06, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc9, + 0xad, 0x26, 0xb1, 0x10, 0xb0, 0x00, 0x32, 0x81, + 0x15, 0x33, 0x29, 0x71, 0x22, 0x24, 0x28, 0xca, + 0xe5, 0xd8, 0x88, 0x18, 0x20, 0x00, 0x01, 0xb8, + 0x27, 0x43, 0x16, 0x1a, 0x9c, 0x6c, 0xe1, 0x13, + 0x23, 0x06, 0x53, 0x22, 0xa6, 0x49, 0x30, 0x29, + 0x95, 0xca, 0x62, 0xe2, 0x75, 0x31, 0x99, 0x99, + 0x0f, 0x12, 0xd2, 0x44, 0x8a, 0x12, 0xe0, 0x61, + 0xc2, 0x46, 0x6f, 0xa1, 0x21, 0x24, 0xa6, 0x7e, + 0x28, 0x8c, 0x1e, 0x64, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x9a, 0xc6, + 0x6a, 0x79, 0x8b, 0x00, 0x00, 0x91, 0x14, 0xa6, + 0x51, 0x2d, 0x05, 0xb8, 0xe8, 0x56, 0x95, 0x67, + 0x26, 0x28, 0x00, 0x03, 0x83, 0x7e, 0x0e, 0x4e, + 0x0c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x24, 0x26, 0x66, 0x24, 0x24, 0x90, 0xcf, + 0xe5, 0x11, 0x83, 0x0c, 0x82, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x93, 0x57, + 0x49, 0xa5, 0xe4, 0x2d, 0xbe, 0xad, 0xa8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x85, 0x35, + 0x94, 0xdc, 0x76, 0x9d, 0xce, 0x2c, 0x35, 0x38, + 0x00, 0x00, 0x07, 0x06, 0xc1, 0x92, 0x13, 0x13, + 0x98, 0xd0, 0x00, 0x00, 0x04, 0xbc, 0xdf, 0x42, + 0x40, 0x49, 0x0d, 0x80, 0x28, 0x8c, 0x14, 0x64, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x9a, 0xdb, 0x94, 0xea, 0xbd, 0x6c, + 0xde, 0x5e, 0x16, 0xea, 0xe0, 0x00, 0x05, 0x6d, + 0x2b, 0xa9, 0x74, 0x76, 0x45, 0x04, 0x96, 0xc4, + 0xee, 0xb4, 0x2f, 0xed, 0x55, 0xec, 0x00, 0x00, + 0x00, 0x06, 0x49, 0xc7, 0x76, 0x46, 0x46, 0xd0, + 0xde, 0xf6, 0x8b, 0x9a, 0xfc, 0x00, 0x00, 0x00, + 0x64, 0xa2, 0x36, 0x7a, 0x11, 0x50, 0x00, 0x00, + 0x12, 0x63, 0x66, 0x0b, 0xf9, 0x23, 0x36, 0x08, + 0xa2, 0x30, 0x41, 0x90, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6a, 0x06, + 0x6b, 0xa4, 0xb5, 0x57, 0x6b, 0xf9, 0x34, 0x00, + 0x00, 0xc8, 0xf1, 0x39, 0x6e, 0xc2, 0x62, 0xbb, + 0x5b, 0xd7, 0x9e, 0xbe, 0x4e, 0x62, 0x32, 0x18, + 0xec, 0xa2, 0xca, 0x6a, 0x0b, 0x23, 0x8e, 0x6b, + 0xa6, 0x57, 0xaa, 0x00, 0x00, 0x09, 0xa4, 0x7e, + 0x43, 0xb4, 0xfa, 0x0f, 0xdf, 0xd8, 0x5c, 0xd4, + 0xd0, 0x00, 0x27, 0x27, 0x43, 0xa9, 0x7c, 0x04, + 0x04, 0xc9, 0xc4, 0x6c, 0xa4, 0x29, 0x48, 0xc0, + 0x00, 0x13, 0x03, 0x7d, 0x8b, 0xf1, 0x23, 0x36, + 0x0c, 0xa2, 0x30, 0x39, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc9, 0xa7, + 0x19, 0x36, 0xb1, 0xf9, 0xfd, 0xb4, 0xbc, 0xb6, + 0x00, 0x00, 0x48, 0x2d, 0xef, 0xf3, 0x44, 0x36, + 0x69, 0x6a, 0xab, 0x6b, 0x71, 0xa7, 0x71, 0x65, + 0xad, 0x65, 0x91, 0xec, 0x27, 0xee, 0xd4, 0xeb, + 0xe9, 0xc6, 0x5b, 0xa9, 0x40, 0x00, 0x0c, 0xbb, + 0x17, 0x94, 0x6e, 0xd6, 0x9b, 0xf6, 0x56, 0x1f, + 0x35, 0x38, 0x00, 0x09, 0x59, 0xb0, 0x45, 0x90, + 0xbf, 0x96, 0xf3, 0x5c, 0x0c, 0xbe, 0x54, 0x12, + 0xc3, 0x17, 0x98, 0xa8, 0x00, 0x09, 0x79, 0xbe, + 0x85, 0xf4, 0x91, 0x9b, 0x08, 0x51, 0x18, 0x18, + 0x9f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe4, 0xd7, 0xb7, 0x1a, 0xa7, 0x29, + 0x8b, 0x43, 0x3b, 0xd2, 0x00, 0x4c, 0xcb, 0x61, + 0x1e, 0x2f, 0xa7, 0x42, 0xca, 0x09, 0x01, 0x21, + 0x29, 0x0a, 0xf3, 0x1f, 0x9e, 0x60, 0x03, 0x66, + 0xac, 0x66, 0xe5, 0x96, 0xd2, 0x91, 0x93, 0x5f, + 0x00, 0x24, 0x87, 0xa9, 0xe0, 0x4a, 0x88, 0x19, + 0xd8, 0xad, 0x3d, 0x48, 0xd0, 0x32, 0x09, 0x04, + 0x3c, 0x41, 0xc8, 0x04, 0x8c, 0xda, 0x52, 0xf8, + 0x48, 0xcd, 0x85, 0x28, 0x8c, 0x04, 0x4f, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x72, 0x6b, 0xb1, 0xa5, 0x66, 0x3f, 0x00, 0x19, + 0xa4, 0xcc, 0xc7, 0x04, 0x0c, 0xcc, 0x86, 0x35, + 0x38, 0x20, 0x64, 0x64, 0xcd, 0x44, 0x58, 0xc1, + 0xc5, 0x98, 0x00, 0x6d, 0x69, 0x95, 0xcc, 0x54, + 0x6a, 0x80, 0x06, 0x55, 0x32, 0x71, 0x8a, 0x4c, + 0xf0, 0x77, 0x2a, 0xcb, 0x41, 0x70, 0x3a, 0x10, + 0xc3, 0x1b, 0x9b, 0x30, 0x44, 0x8a, 0x43, 0x54, + 0x40, 0x25, 0x66, 0xfb, 0x97, 0xc2, 0x42, 0x6c, + 0x41, 0x44, 0x60, 0x22, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x93, 0x59, + 0x88, 0xd1, 0x89, 0xc0, 0x07, 0x07, 0x53, 0x90, + 0x70, 0x72, 0x01, 0xc9, 0xc0, 0x3b, 0x00, 0x0f, + 0x53, 0x3d, 0x9d, 0x01, 0x81, 0xcf, 0x20, 0x75, + 0x07, 0x27, 0x07, 0x00, 0xe4, 0xe0, 0xaa, 0x24, + 0xc4, 0x44, 0xe0, 0x03, 0xb0, 0x06, 0x4e, 0x26, + 0x24, 0xe0, 0x90, 0x9b, 0x10, 0x51, 0x18, 0x08, + 0x9f, 0x11, 0xf2, 0x28, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x26, 0x33, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x09, 0xd1, 0x21, 0x36, 0x20, 0xa2, 0x35, 0xf8, + 0x95, 0x18, 0x10, 0xf3, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0b, 0xd5, 0xfc, 0x0c, + 0x47, 0x67, 0xf9, 0x73, 0xca, 0xb5, 0xa0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x59, 0x87, + 0x6e, 0x2b, 0x76, 0x19, 0xba, 0xaa, 0x76, 0x0f, + 0x9e, 0x62, 0xf9, 0x1e, 0xb9, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x77, 0xeb, 0x52, 0x67, + 0xad, 0xfd, 0x25, 0x7f, 0x85, 0xcd, 0xa4, 0x26, + 0xc5, 0x14, 0x46, 0xbf, 0x17, 0x03, 0x18, 0x5e, + 0x43, 0x59, 0x36, 0x1f, 0x9d, 0xfc, 0x7b, 0xdb, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, + 0x58, 0xce, 0xcd, 0xb4, 0x62, 0x7b, 0x72, 0x8b, + 0x37, 0xd1, 0xda, 0xc7, 0xb7, 0x7c, 0x85, 0xcb, + 0x9d, 0xac, 0xc0, 0xb7, 0xde, 0x33, 0x9d, 0xc1, + 0x6b, 0xa9, 0xd7, 0x90, 0xda, 0x4b, 0xd9, 0x2e, + 0x63, 0x7b, 0xf1, 0xcd, 0x3f, 0x6a, 0x72, 0x4b, + 0x19, 0xeb, 0xad, 0x1b, 0xb8, 0x6c, 0x96, 0x35, + 0x5f, 0x46, 0xfa, 0x9e, 0xa5, 0xb4, 0xbe, 0x3b, + 0x22, 0xc7, 0x13, 0x38, 0x68, 0xf3, 0xe7, 0xae, + 0x45, 0x87, 0xcc, 0x75, 0xf7, 0x2c, 0xd4, 0x91, + 0xab, 0xc8, 0x7c, 0xbf, 0x8e, 0x6c, 0x7c, 0xd1, + 0xa3, 0x7d, 0xcf, 0xab, 0x3e, 0x8b, 0xf9, 0xcd, + 0x62, 0xba, 0x89, 0x00, 0x00, 0x36, 0x37, 0x0f, + 0xdc, 0x78, 0xc2, 0x73, 0x06, 0xbc, 0x5b, 0xdf, + 0xca, 0xec, 0x32, 0x18, 0xcd, 0xec, 0x15, 0x15, + 0x5b, 0x6b, 0x2d, 0xc4, 0x74, 0x2e, 0x47, 0x1c, + 0x00, 0x00, 0x36, 0x0b, 0x5b, 0xfa, 0x4b, 0x2d, + 0xeb, 0x3f, 0x4e, 0xc8, 0x4d, 0x8a, 0x28, 0x8d, + 0x7d, 0x2b, 0xcc, 0x21, 0x9d, 0xe8, 0x6d, 0x6c, + 0xdb, 0x5e, 0x47, 0x19, 0xcb, 0x17, 0xda, 0x51, + 0xab, 0xe8, 0x2b, 0x5d, 0xc5, 0x85, 0x5d, 0x3b, + 0x89, 0x84, 0x76, 0x45, 0x11, 0x90, 0xc7, 0xbd, + 0xfa, 0x57, 0xbf, 0x5a, 0x4b, 0xf5, 0xe6, 0x9c, + 0x5e, 0xfe, 0x06, 0xfb, 0x69, 0x2f, 0x61, 0xbb, + 0x88, 0x9b, 0x46, 0x64, 0xf8, 0xf2, 0x5f, 0x0f, + 0xa8, 0xeb, 0x56, 0xb6, 0x95, 0xd4, 0x92, 0xca, + 0x6b, 0x0e, 0xe4, 0x5a, 0xee, 0x97, 0xbd, 0x0c, + 0x81, 0x11, 0x98, 0x65, 0xfd, 0x03, 0xf4, 0x06, + 0x25, 0x98, 0x69, 0xdd, 0x2e, 0xda, 0x1e, 0x5b, + 0x1b, 0x7d, 0x86, 0xee, 0x58, 0xe5, 0xcc, 0x74, + 0xaa, 0xce, 0x62, 0x37, 0x75, 0x17, 0xef, 0xd7, + 0xbd, 0xca, 0x95, 0xd4, 0x8a, 0xda, 0x4f, 0x10, + 0xcc, 0x61, 0xbe, 0x7c, 0xf1, 0x9b, 0x60, 0xf3, + 0x9c, 0x43, 0x33, 0x85, 0xe6, 0x98, 0x5c, 0xda, + 0x0d, 0x7d, 0x09, 0x7f, 0xb6, 0x91, 0xc6, 0x92, + 0x98, 0xbe, 0x4f, 0x8b, 0xca, 0x6e, 0xb4, 0x6f, + 0x35, 0x73, 0x2b, 0xd4, 0xd8, 0xc6, 0x57, 0x15, + 0xce, 0x70, 0x19, 0xf6, 0xd4, 0xe9, 0xdf, 0x64, + 0x68, 0x5e, 0xf9, 0xf0, 0x44, 0x76, 0xe6, 0x34, + 0x00, 0x00, 0xdd, 0xbc, 0x13, 0x7c, 0x56, 0x75, + 0xa9, 0x61, 0xb8, 0x8f, 0xc8, 0xb1, 0xb9, 0x36, + 0x30, 0x95, 0xc4, 0xe4, 0x76, 0xb2, 0xb8, 0xee, + 0x4f, 0x18, 0xd6, 0x1c, 0xa7, 0x55, 0x80, 0x00, + 0x1b, 0x55, 0x80, 0xef, 0xfd, 0x86, 0xd7, 0x9e, + 0x8a, 0x90, 0x1b, 0x16, 0x51, 0x1a, 0xf6, 0x57, + 0x1a, 0xe3, 0x9a, 0x69, 0x2d, 0x3f, 0xd9, 0xde, + 0x5e, 0x1b, 0x79, 0x87, 0xee, 0x5a, 0xaa, 0x77, + 0x13, 0xd8, 0xec, 0x8b, 0x1e, 0xc8, 0xe3, 0xd9, + 0x92, 0x17, 0x33, 0xc5, 0xd2, 0xd8, 0x9d, 0x65, + 0x3b, 0x88, 0x4d, 0xec, 0x1d, 0xf2, 0xde, 0x4f, + 0x35, 0xc2, 0xe6, 0xd8, 0x13, 0x21, 0xd7, 0x79, + 0x76, 0x1b, 0x31, 0xe8, 0xe6, 0xb3, 0xa5, 0x6c, + 0x35, 0x37, 0x84, 0x66, 0xc8, 0x3c, 0xe2, 0xf7, + 0x6f, 0x25, 0xa3, 0x39, 0xf7, 0x9f, 0xf1, 0x3c, + 0xbe, 0x1d, 0x92, 0xe2, 0xf2, 0x9d, 0xa3, 0xd2, + 0x3e, 0xe5, 0xac, 0xba, 0x8a, 0xd3, 0x3c, 0xd3, + 0x4b, 0x5a, 0x39, 0xe8, 0x00, 0x03, 0x93, 0x93, + 0xa9, 0xc0, 0x2a, 0xba, 0xd4, 0xb9, 0x74, 0xb8, + 0xb2, 0x55, 0xb3, 0x00, 0x00, 0x36, 0x8e, 0x0f, + 0x39, 0x9c, 0xe3, 0x9b, 0x23, 0x0b, 0x66, 0xfa, + 0x47, 0x02, 0xcb, 0x62, 0x40, 0x00, 0x00, 0x00, + 0x0c, 0xab, 0x1d, 0x91, 0xd9, 0xaa, 0xda, 0xc0, + 0xef, 0x21, 0x80, 0x00, 0x7a, 0xf1, 0xdb, 0x74, + 0x70, 0xbd, 0xd1, 0x3f, 0x87, 0xcc, 0x6f, 0xe6, + 0xc6, 0x94, 0x46, 0xbd, 0x15, 0xc6, 0x18, 0x95, + 0xc5, 0x74, 0xd7, 0x60, 0xf9, 0xea, 0x97, 0xb5, + 0x3e, 0xbc, 0xf1, 0xc9, 0xc1, 0xc9, 0xd5, 0xc7, + 0x2e, 0x79, 0x07, 0x3c, 0x3a, 0xf2, 0xbe, 0x51, + 0xbb, 0xac, 0xeb, 0x56, 0x2f, 0x71, 0x1e, 0x39, + 0x3a, 0xb8, 0x39, 0xef, 0xc7, 0x23, 0x3f, 0x40, + 0xe7, 0xd9, 0x7b, 0x05, 0xde, 0xb7, 0x33, 0x49, + 0x48, 0x10, 0x00, 0x03, 0x25, 0x19, 0x2c, 0x84, + 0x94, 0xe6, 0x46, 0x2f, 0x06, 0x33, 0x30, 0xb0, + 0x00, 0x00, 0x6f, 0xa9, 0x5e, 0x63, 0x23, 0x55, + 0x00, 0x32, 0x69, 0x1c, 0x2e, 0x65, 0xd8, 0xaf, + 0x31, 0x71, 0x2b, 0x2e, 0x47, 0x07, 0x52, 0xa8, + 0xa1, 0x2e, 0x85, 0x8c, 0x80, 0x00, 0x79, 0x1f, + 0x4d, 0x0e, 0x0b, 0xf9, 0xb1, 0xc5, 0x11, 0xaf, + 0x05, 0x69, 0x83, 0xcd, 0x0b, 0x38, 0x00, 0x03, + 0x29, 0x18, 0xec, 0x96, 0x17, 0xc2, 0x26, 0x4a, + 0x4f, 0x43, 0xdc, 0x8b, 0x90, 0x90, 0x00, 0x06, + 0xfa, 0x97, 0x42, 0xe6, 0x69, 0x79, 0x04, 0x00, + 0x00, 0x48, 0xcb, 0x81, 0x61, 0x27, 0x85, 0xbc, + 0xb8, 0x91, 0x02, 0x38, 0x00, 0x00, 0x1b, 0xd8, + 0x56, 0x18, 0xc8, 0xd5, 0x40, 0x0c, 0xa8, 0x56, + 0x10, 0xe3, 0x20, 0x16, 0xf2, 0xc0, 0x5b, 0x49, + 0x89, 0x70, 0x29, 0x0a, 0x02, 0xe6, 0x78, 0x17, + 0xa3, 0x05, 0x9e, 0x00, 0xf2, 0x3e, 0x9a, 0x1d, + 0x4b, 0xf9, 0xb1, 0xe5, 0x11, 0xae, 0xc5, 0x71, + 0x84, 0x0d, 0x0f, 0x00, 0x03, 0x83, 0x69, 0x48, + 0xb1, 0x7d, 0x2f, 0x46, 0xbd, 0x99, 0x30, 0xba, + 0x13, 0xb2, 0x3c, 0x6a, 0xb8, 0x00, 0x03, 0x7c, + 0x4b, 0x99, 0x73, 0x35, 0xa4, 0x85, 0x80, 0x01, + 0x76, 0x2f, 0xe5, 0x90, 0xbe, 0x17, 0x13, 0xb1, + 0x70, 0x28, 0xce, 0xc6, 0x30, 0x00, 0x00, 0x6d, + 0xe1, 0xe4, 0x63, 0x23, 0x55, 0x00, 0x00, 0xec, + 0x7a, 0x97, 0x92, 0xc6, 0x4c, 0x8a, 0x83, 0x92, + 0xb0, 0xe0, 0xa1, 0x20, 0x60, 0x00, 0x79, 0x1f, + 0x4d, 0x0e, 0x85, 0xf8, 0xd9, 0x12, 0x88, 0xd7, + 0x42, 0xbc, 0xc4, 0xa6, 0xa9, 0x80, 0x00, 0x38, + 0x39, 0x38, 0x00, 0xe4, 0xe0, 0x03, 0x90, 0x00, + 0x06, 0xd7, 0x9d, 0x0b, 0x99, 0xa4, 0xa4, 0x08, + 0x00, 0x09, 0xb1, 0xb0, 0x06, 0x20, 0x25, 0xe5, + 0xc4, 0xee, 0x5e, 0xca, 0x72, 0x0a, 0x60, 0xc0, + 0x00, 0x06, 0xfa, 0x95, 0xe6, 0x32, 0x35, 0x50, + 0x00, 0x0c, 0x84, 0x67, 0x92, 0x02, 0x7b, 0x11, + 0xc2, 0x94, 0xc8, 0x47, 0xb1, 0x8c, 0x89, 0x81, + 0xaf, 0xc0, 0x00, 0x79, 0x1f, 0x4d, 0x0e, 0x85, + 0xf4, 0xd9, 0x22, 0x88, 0xd7, 0x22, 0xb8, 0xc2, + 0x86, 0x87, 0x99, 0x30, 0xb8, 0x94, 0x04, 0xcc, + 0xb3, 0x97, 0x02, 0xc2, 0x7b, 0x1e, 0x85, 0x29, + 0x4e, 0x72, 0x4b, 0x08, 0xf1, 0x71, 0x28, 0xce, + 0xc7, 0x04, 0x7c, 0xc7, 0x46, 0xf8, 0x17, 0x42, + 0xe6, 0x6b, 0xa9, 0x0d, 0x00, 0x00, 0x0a, 0x92, + 0xe0, 0x59, 0x0b, 0xc1, 0x6f, 0x29, 0xce, 0xc0, + 0x00, 0x01, 0xb6, 0x45, 0x31, 0x4e, 0x61, 0x10, + 0x0e, 0xa7, 0x27, 0x25, 0xc4, 0xb7, 0x00, 0x0e, + 0x0e, 0x40, 0x00, 0x00, 0x70, 0x6d, 0x11, 0x50, + 0x5f, 0x0d, 0x94, 0x28, 0x8d, 0x72, 0x2b, 0x4c, + 0x62, 0x7c, 0xf8, 0x26, 0xe4, 0xfc, 0xe8, 0x54, + 0x96, 0x62, 0xbc, 0xad, 0x22, 0x45, 0x8c, 0xec, + 0x49, 0x0f, 0x63, 0xd0, 0xf2, 0x23, 0x84, 0xb8, + 0xb8, 0x94, 0x25, 0x80, 0xc5, 0x87, 0xd0, 0x53, + 0xa1, 0x73, 0x34, 0x94, 0x81, 0x00, 0x00, 0x06, + 0x5a, 0x26, 0x27, 0x42, 0xb8, 0x89, 0x98, 0x94, + 0xb7, 0x80, 0x00, 0x06, 0xfa, 0x95, 0xe6, 0x2c, + 0x35, 0x38, 0x19, 0x08, 0x96, 0x17, 0x52, 0x28, + 0x4c, 0xca, 0x22, 0xf2, 0x47, 0x4a, 0x92, 0x84, + 0x90, 0x91, 0x60, 0x49, 0xcb, 0x81, 0x05, 0x31, + 0x19, 0x4c, 0x0f, 0xa2, 0x44, 0x90, 0xbe, 0x9b, + 0x28, 0x51, 0x1a, 0xe0, 0x56, 0x98, 0xb4, 0xb9, + 0x96, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0b, 0x81, 0x6f, 0x3a, 0x17, 0x33, 0x01, 0x90, + 0xe0, 0x00, 0x00, 0xbc, 0x17, 0xe2, 0x16, 0x5e, + 0x8b, 0xf1, 0x09, 0x3c, 0xc0, 0x00, 0x03, 0x69, + 0xca, 0x22, 0x22, 0x6b, 0x78, 0x26, 0xe5, 0xcc, + 0xb7, 0x96, 0x52, 0x48, 0x5e, 0x4f, 0x62, 0x7e, + 0x63, 0xa2, 0x0a, 0x4d, 0x4b, 0xd9, 0x58, 0x59, + 0xca, 0xd2, 0x30, 0x63, 0x20, 0x0d, 0xd5, 0x2f, + 0x45, 0xf0, 0xd9, 0x62, 0x88, 0xd6, 0xf2, 0xb4, + 0xc5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x2e, 0x66, 0x92, 0x90, 0x20, 0x00, + 0x00, 0xcd, 0x25, 0x94, 0xf1, 0x25, 0x47, 0x63, + 0x1e, 0x90, 0xc0, 0x00, 0x00, 0xdf, 0x52, 0xbc, + 0xc6, 0x46, 0xad, 0x83, 0x35, 0x16, 0x33, 0xd8, + 0xf1, 0x29, 0xcb, 0xe9, 0x6a, 0x3c, 0x4f, 0x02, + 0xb0, 0xaa, 0x28, 0x8f, 0x62, 0x98, 0x92, 0x16, + 0xb2, 0x0a, 0x58, 0x81, 0xf4, 0x00, 0x91, 0x17, + 0xb3, 0x65, 0xca, 0x23, 0x5b, 0x4a, 0xb3, 0x1f, + 0xd4, 0xb7, 0xf6, 0xc8, 0xf5, 0xb7, 0x5e, 0xd4, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, + 0xa9, 0x82, 0xcf, 0x2c, 0x56, 0x73, 0x37, 0x33, + 0x48, 0x48, 0x10, 0x00, 0x03, 0x83, 0x2f, 0x96, + 0x13, 0x92, 0x46, 0x5d, 0xc8, 0x19, 0x00, 0x00, + 0x00, 0x0d, 0xf8, 0x2e, 0x06, 0x37, 0x35, 0x0c, + 0x19, 0x50, 0xb6, 0x1d, 0x89, 0x71, 0x22, 0x2c, + 0xc4, 0xb4, 0xc6, 0x07, 0xa1, 0x50, 0x49, 0x81, + 0xe4, 0x78, 0x9e, 0x65, 0x01, 0x19, 0x31, 0xc9, + 0xe8, 0x7d, 0x19, 0x2e, 0xc5, 0xec, 0xd9, 0x92, + 0x88, 0xd6, 0xd2, 0xac, 0xc3, 0xdb, 0x17, 0xce, + 0x38, 0x0f, 0x6a, 0x79, 0x53, 0x83, 0x82, 0x6d, + 0x19, 0x94, 0x4c, 0xe3, 0x32, 0x6c, 0x47, 0x91, + 0x6b, 0xa9, 0x55, 0x84, 0xfc, 0x42, 0x47, 0x1d, + 0xcc, 0x38, 0xde, 0xc9, 0x8a, 0xc8, 0x63, 0xd1, + 0x09, 0x1c, 0x72, 0x47, 0x65, 0x35, 0x15, 0xbf, + 0x81, 0xed, 0xc7, 0x39, 0x32, 0x0f, 0x39, 0xc7, + 0x13, 0x58, 0x57, 0x87, 0x7a, 0x3d, 0x39, 0xeb, + 0xe3, 0xda, 0x98, 0xec, 0x65, 0xbc, 0x47, 0x6f, + 0x4c, 0xf4, 0xa7, 0xb6, 0xee, 0x66, 0x04, 0x21, + 0xe5, 0xfc, 0xca, 0x27, 0xa9, 0x6a, 0x3b, 0x96, + 0xd2, 0xe2, 0x42, 0x0a, 0x92, 0xe2, 0x55, 0x93, + 0x12, 0x06, 0x51, 0x97, 0x42, 0xe2, 0x5c, 0x8c, + 0x1c, 0x72, 0x6d, 0x31, 0x42, 0x5c, 0x0c, 0x76, + 0x52, 0x80, 0x00, 0x07, 0xb1, 0xe2, 0x01, 0xc8, + 0x38, 0x00, 0x00, 0x4c, 0x4a, 0xf2, 0x5a, 0x5e, + 0xcd, 0x99, 0x28, 0x8d, 0x6c, 0x2a, 0xcd, 0x76, + 0xd8, 0xbe, 0x70, 0xd6, 0x4d, 0x87, 0xe7, 0x5e, + 0x8e, 0xdd, 0x78, 0x6c, 0x16, 0x35, 0xb3, 0x64, + 0xd6, 0xd2, 0x79, 0xaf, 0x1e, 0xd8, 0x55, 0xb4, + 0xee, 0x70, 0x26, 0x49, 0xad, 0xae, 0x34, 0x6e, + 0xe4, 0x16, 0x92, 0xf5, 0xdd, 0x6a, 0xcb, 0xec, + 0xa6, 0xee, 0xf4, 0x6f, 0x6c, 0x95, 0xe3, 0xee, + 0x54, 0x6f, 0x20, 0xd2, 0x58, 0xe5, 0x6d, 0x2b, + 0x9c, 0x35, 0x3b, 0x81, 0x6b, 0x7e, 0x55, 0xaa, + 0x47, 0xaf, 0x3d, 0x73, 0x1e, 0x3b, 0xb1, 0xb3, + 0x9e, 0x99, 0xf6, 0x9d, 0xcc, 0xd2, 0x52, 0x04, + 0x56, 0x99, 0xf4, 0xf3, 0x28, 0x8f, 0x72, 0xbc, + 0x94, 0x97, 0x23, 0x1e, 0x93, 0xf2, 0x16, 0x54, + 0x94, 0xa6, 0x35, 0x2f, 0x44, 0xac, 0x88, 0x18, + 0x84, 0x1b, 0xea, 0x57, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x97, 0xa3, + 0x66, 0x8a, 0x23, 0x5a, 0x8a, 0xc3, 0x5a, 0xf2, + 0xdd, 0x49, 0xa1, 0x1b, 0x1b, 0xcd, 0xfd, 0x5c, + 0x75, 0x73, 0x73, 0xa7, 0x73, 0x72, 0xa7, 0x73, + 0xef, 0xd6, 0xa1, 0xc5, 0x0d, 0x4b, 0x7a, 0x5e, + 0xd4, 0xc5, 0x6f, 0x4a, 0xdd, 0x5c, 0x70, 0x7a, + 0xbb, 0x54, 0xf4, 0xa9, 0x4f, 0xda, 0x9d, 0x05, + 0x4a, 0x02, 0xd7, 0x52, 0xdb, 0x93, 0x97, 0x1b, + 0x6b, 0x8a, 0xed, 0x7d, 0x8a, 0xd6, 0xde, 0x95, + 0xb9, 0x9a, 0x4a, 0x40, 0x80, 0x00, 0xaf, 0x25, + 0xe5, 0x30, 0x22, 0x84, 0x94, 0xb8, 0x82, 0xd8, + 0x44, 0x80, 0x00, 0x1b, 0xea, 0x57, 0x83, 0x1f, + 0x90, 0x03, 0x3f, 0x96, 0x03, 0xa1, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0xc5, 0xe8, + 0xd9, 0xb2, 0x88, 0xd6, 0xa2, 0xb0, 0xb4, 0x9a, + 0x31, 0xde, 0xde, 0xa3, 0x9e, 0xa0, 0x0c, 0xce, + 0x62, 0xc2, 0x70, 0x58, 0x81, 0xe0, 0x76, 0x2f, + 0x85, 0xa4, 0xf1, 0x2e, 0x44, 0x78, 0xb2, 0x00, + 0x0d, 0x87, 0xa7, 0x73, 0x21, 0x73, 0x73, 0x34, + 0x94, 0x81, 0x00, 0x01, 0x91, 0x4c, 0xd2, 0x63, + 0x70, 0x62, 0x03, 0x38, 0x13, 0x63, 0xc0, 0xb7, + 0x1a, 0xd2, 0x72, 0x00, 0x06, 0xfa, 0x95, 0xe0, + 0xd5, 0x72, 0x1c, 0x6a, 0x09, 0x97, 0x48, 0x49, + 0x1b, 0x24, 0x45, 0x11, 0xf5, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x2e, 0x2f, 0x46, 0xcd, 0x94, + 0x46, 0xb4, 0x95, 0x65, 0xac, 0xf9, 0x7e, 0x7a, + 0x80, 0x5e, 0x8c, 0xf8, 0x63, 0x62, 0xf2, 0x65, + 0x22, 0x08, 0x4c, 0x8e, 0x86, 0x33, 0x32, 0x61, + 0x6a, 0x2e, 0xa6, 0x3a, 0x30, 0xc0, 0x00, 0xdc, + 0x23, 0x21, 0x17, 0x23, 0x5f, 0x48, 0x68, 0x00, + 0x17, 0xb2, 0xe4, 0x7a, 0x82, 0x38, 0x79, 0x17, + 0x23, 0xb9, 0x52, 0x45, 0xc0, 0x00, 0x1b, 0x56, + 0x53, 0x02, 0xd2, 0x57, 0x11, 0x13, 0x82, 0xb0, + 0xb0, 0x98, 0x54, 0xd8, 0xa2, 0x52, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x96, 0x97, 0xa3, 0x67, 0x0a, + 0x23, 0x5a, 0x0a, 0xa2, 0xd6, 0x69, 0x11, 0xe8, + 0x00, 0x00, 0x00, 0x5c, 0x8b, 0x68, 0x2e, 0x05, + 0x09, 0xd4, 0x00, 0x01, 0xb1, 0x45, 0xe8, 0xb8, + 0x1a, 0x50, 0x40, 0x81, 0x31, 0x32, 0x51, 0xe0, + 0x63, 0xb2, 0x74, 0x5b, 0x49, 0x01, 0x6b, 0x2d, + 0x87, 0xb9, 0x46, 0x70, 0x5b, 0x4f, 0x32, 0x52, + 0x62, 0x03, 0x90, 0x6f, 0x71, 0x76, 0x05, 0x98, + 0x84, 0x99, 0x3c, 0x8e, 0x1a, 0xf4, 0x46, 0x4c, + 0x94, 0x5e, 0x8c, 0x52, 0x53, 0x19, 0xa8, 0xc7, + 0x47, 0x81, 0x25, 0x21, 0xa5, 0xcc, 0xcc, 0xe5, + 0x11, 0x8c, 0x0b, 0xe9, 0x3c, 0x32, 0x09, 0x2c, + 0x2f, 0x26, 0xcf, 0x14, 0x46, 0xb3, 0x15, 0x45, + 0xb0, 0xf9, 0x9c, 0x7a, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0d, 0xb6, 0x32, 0x11, 0x70, + 0x34, 0xa0, 0x81, 0x03, 0x21, 0x12, 0x22, 0x48, + 0x62, 0xa3, 0xdc, 0xcf, 0xc4, 0x2c, 0x89, 0x19, + 0xec, 0xc2, 0x84, 0x30, 0xcd, 0x87, 0x05, 0x31, + 0x69, 0x35, 0xf8, 0xe4, 0x1b, 0xdc, 0x5d, 0x80, + 0x39, 0x38, 0x3c, 0x8c, 0x30, 0x5c, 0x09, 0xd9, + 0x6e, 0x20, 0x06, 0x4a, 0x28, 0x0f, 0x22, 0x20, + 0x49, 0x08, 0xf1, 0x5c, 0x56, 0x12, 0x02, 0x3a, + 0x53, 0x12, 0x12, 0x6e, 0x4a, 0xcb, 0xc9, 0xb3, + 0xe5, 0x11, 0xac, 0xc5, 0x49, 0x6d, 0x3e, 0x67, + 0x1e, 0xa0, 0x03, 0x20, 0x95, 0x05, 0xb0, 0x8c, + 0x12, 0x22, 0x16, 0x0b, 0xe9, 0x62, 0x2a, 0x4e, + 0x87, 0x91, 0xd8, 0x00, 0x6d, 0xb1, 0x90, 0x8b, + 0x81, 0xa5, 0x44, 0x00, 0x02, 0x66, 0x5b, 0x08, + 0xe1, 0x70, 0x32, 0x11, 0x00, 0x2d, 0xc5, 0xf4, + 0xb0, 0x93, 0xb2, 0xf2, 0x58, 0xcf, 0x42, 0x0a, + 0x00, 0x37, 0xc0, 0xba, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x97, 0x83, + 0x68, 0x0a, 0x23, 0x58, 0xca, 0x92, 0x38, 0x68, + 0x81, 0x16, 0x00, 0x19, 0xc8, 0x98, 0x11, 0x02, + 0x1c, 0x67, 0x22, 0xda, 0x5d, 0x8b, 0xb9, 0x1c, + 0x32, 0x09, 0x1d, 0x30, 0xa9, 0x87, 0x80, 0x06, + 0xe7, 0x12, 0xa3, 0x93, 0x5e, 0xcd, 0x7e, 0x00, + 0xd8, 0xe2, 0xb0, 0x90, 0x12, 0x93, 0x09, 0x19, + 0x84, 0x8d, 0x17, 0x42, 0x90, 0x81, 0x17, 0x32, + 0x0c, 0x64, 0x53, 0x57, 0xce, 0xe0, 0xf5, 0x3e, + 0x87, 0x96, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x12, 0x92, 0xf0, 0x6d, 0x11, + 0x44, 0x6b, 0x19, 0x70, 0x31, 0xa9, 0x6a, 0x35, + 0x88, 0x8d, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0xc6, 0x68, 0x33, 0xd9, 0x6c, 0x05, 0x51, + 0xac, 0xa6, 0x33, 0x3c, 0x8b, 0xd1, 0x65, 0x00, + 0x00, 0x00, 0x00, 0xbc, 0x16, 0x70, 0x48, 0x8d, + 0x99, 0x25, 0x07, 0x50, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x12, 0xc2, 0xea, 0x6d, + 0x11, 0x44, 0x6a, 0xa1, 0x27, 0x31, 0xc1, 0x48, + 0x5c, 0x8a, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0xa9, 0x64, 0x3a, 0x80, 0x0f, 0x52, 0xf2, + 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x88, + 0xb6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x21, 0x14, 0x06, 0xd8, 0x9e, + 0xc6, 0xbb, 0x96, 0x40, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x20, + 0x93, 0x9b, 0x04, 0x55, 0x9d, 0x4e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x4e, 0xc7, 0xff, 0xc4, 0x00, 0x37, + 0x10, 0x00, 0x00, 0x05, 0x03, 0x03, 0x02, 0x04, + 0x04, 0x06, 0x03, 0x01, 0x00, 0x03, 0x01, 0x01, + 0x00, 0x00, 0x03, 0x04, 0x05, 0x06, 0x01, 0x02, + 0x16, 0x07, 0x12, 0x14, 0x15, 0x34, 0x11, 0x13, + 0x17, 0x33, 0x18, 0x20, 0x35, 0x36, 0x08, 0x10, + 0x27, 0x31, 0x32, 0x40, 0x21, 0x30, 0x37, 0x24, + 0x25, 0x26, 0x38, 0x46, 0x50, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x01, 0x00, 0x01, 0x05, 0x02, 0xad, + 0x7c, 0x01, 0xb2, 0xf8, 0xf9, 0x06, 0xe6, 0x91, + 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, + 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, + 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, + 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, + 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, + 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, + 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, + 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, + 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, + 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, + 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, + 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, + 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, + 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, + 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, + 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, + 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, + 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, + 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, + 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, + 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, + 0xc6, 0x69, 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, + 0xb1, 0x9a, 0x46, 0xc6, 0x69, 0x1b, 0x19, 0xa4, + 0x6c, 0x66, 0x91, 0xb1, 0x9a, 0x46, 0xc6, 0x69, + 0x1b, 0x19, 0xa4, 0x6c, 0x66, 0x91, 0xb0, 0x96, + 0x54, 0xc4, 0xb0, 0xfa, 0x57, 0xc4, 0x2e, 0xbe, + 0xb6, 0x13, 0x16, 0xbe, 0xb5, 0x6d, 0xdc, 0x37, + 0x0d, 0xc3, 0x70, 0xdc, 0x37, 0x0d, 0xc3, 0x70, + 0xdc, 0x37, 0x0d, 0xd5, 0x1b, 0x86, 0xe1, 0xb8, + 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, 0x86, + 0xe1, 0xb8, 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, + 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, 0x86, 0xe1, + 0xb8, 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, + 0x86, 0xe1, 0xb8, 0x6e, 0x1b, 0x86, 0xe1, 0xb8, + 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, 0x86, + 0xe1, 0xb8, 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, + 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, 0x86, 0xe1, + 0xb8, 0x6e, 0x1b, 0x86, 0xe1, 0xb8, 0x6e, 0x1b, + 0x86, 0xe1, 0x24, 0x32, 0xb6, 0xdc, 0x96, 0xed, + 0xc5, 0x39, 0xf6, 0xf1, 0x4f, 0xa5, 0x89, 0xf6, + 0x96, 0x1b, 0x3a, 0x75, 0x4f, 0x04, 0x7f, 0x37, + 0x5c, 0xbd, 0x38, 0x59, 0xa7, 0x50, 0xff, 0x00, + 0xc2, 0xfc, 0xca, 0x52, 0x4c, 0xa3, 0x55, 0x65, + 0xf4, 0x82, 0x69, 0xf7, 0xe1, 0x41, 0x74, 0xb0, + 0xe5, 0x7a, 0xdf, 0xa8, 0x2e, 0x91, 0xb6, 0x9f, + 0xc3, 0x93, 0x93, 0x8b, 0xbe, 0x8e, 0xa8, 0x7c, + 0x9c, 0x6b, 0x9c, 0xf2, 0x43, 0xa1, 0x52, 0x48, + 0xab, 0x54, 0x1e, 0x66, 0xbd, 0xe3, 0x4f, 0x67, + 0x3a, 0xc7, 0x37, 0x98, 0xbe, 0xcd, 0x1e, 0x17, + 0xc7, 0xa2, 0xf1, 0x8d, 0x22, 0x9a, 0xca, 0xe3, + 0xfa, 0x4f, 0xaa, 0x0f, 0xd6, 0x46, 0x74, 0xfa, + 0x17, 0x36, 0xd5, 0xd6, 0x1d, 0x1f, 0x97, 0xc9, + 0xeb, 0x21, 0xd5, 0xfd, 0x42, 0x53, 0x0c, 0x66, + 0xfc, 0x2c, 0xbb, 0x3c, 0xbc, 0xe9, 0x9a, 0x6d, + 0x57, 0x98, 0x41, 0x35, 0xb1, 0xd9, 0x5d, 0x87, + 0x46, 0x7f, 0x0f, 0xf2, 0xf3, 0xd3, 0x68, 0x5c, + 0x36, 0x3d, 0x3f, 0xd7, 0xb4, 0x92, 0x48, 0x66, + 0xa2, 0xe8, 0xa9, 0xff, 0x00, 0x89, 0x27, 0x27, + 0x83, 0x05, 0xdf, 0x87, 0x75, 0xb4, 0xa6, 0x8a, + 0x4b, 0x66, 0x48, 0xe7, 0xfa, 0x39, 0x06, 0x7d, + 0xd5, 0x36, 0xe9, 0x94, 0x43, 0x55, 0x34, 0x6d, + 0x03, 0x9b, 0x22, 0x4d, 0x71, 0x8a, 0x4b, 0xa0, + 0x6f, 0xf1, 0xed, 0x5b, 0x84, 0xe9, 0x01, 0xd0, + 0xd7, 0xef, 0xf5, 0x18, 0xe2, 0x49, 0x67, 0x75, + 0x32, 0x87, 0x53, 0x28, 0x75, 0x32, 0x87, 0x53, + 0x28, 0x75, 0x32, 0x87, 0x53, 0x28, 0x75, 0x32, + 0x87, 0x53, 0x28, 0x75, 0x32, 0x87, 0x53, 0x28, + 0x75, 0x32, 0x87, 0x53, 0x28, 0x75, 0x32, 0x87, + 0x53, 0x28, 0x75, 0x32, 0x81, 0x6e, 0x85, 0x1b, + 0x77, 0x34, 0x73, 0x47, 0x34, 0x73, 0x47, 0x34, + 0x5e, 0xe1, 0x69, 0x76, 0x58, 0xe1, 0x6d, 0xf6, + 0x73, 0x47, 0x34, 0x73, 0x47, 0x34, 0x73, 0x45, + 0x8b, 0x6c, 0xb8, 0xd9, 0x47, 0xec, 0x8b, 0xd9, + 0x73, 0xed, 0xe2, 0xbf, 0x4b, 0xf1, 0x1e, 0x21, + 0x17, 0xff, 0x00, 0xb0, 0x75, 0x1e, 0xbf, 0xa7, + 0x49, 0xed, 0x32, 0x33, 0xa4, 0x9a, 0xa4, 0x62, + 0x69, 0xd4, 0xf7, 0x4c, 0xe5, 0xad, 0x90, 0x89, + 0x0c, 0x2e, 0x4d, 0x09, 0x31, 0x83, 0xf0, 0xc3, + 0x23, 0x60, 0x51, 0xa5, 0x1f, 0x84, 0x8d, 0x85, + 0xc3, 0x6b, 0x75, 0x29, 0x46, 0xf7, 0x56, 0x39, + 0x1a, 0x1f, 0xc4, 0x9f, 0x85, 0x15, 0xdd, 0x5f, + 0xf3, 0xaa, 0x7a, 0xbd, 0x7b, 0x02, 0xc8, 0x06, + 0x8d, 0x27, 0x8c, 0x69, 0xcc, 0x06, 0x57, 0xa9, + 0xba, 0x52, 0xcd, 0xa7, 0xee, 0xcf, 0x11, 0xed, + 0x71, 0xd3, 0x99, 0xac, 0x31, 0xed, 0xcb, 0xf0, + 0x97, 0x24, 0x8f, 0xd2, 0x11, 0xa6, 0x11, 0xd6, + 0xa9, 0x6c, 0xeb, 0x4d, 0x24, 0x4e, 0xd0, 0x4b, + 0xe2, 0x45, 0xa9, 0x37, 0xf0, 0x6f, 0xa4, 0x06, + 0xa4, 0x33, 0x4a, 0x9c, 0x5d, 0x1b, 0x59, 0xd1, + 0xfe, 0x29, 0x55, 0xaa, 0x32, 0xea, 0xbf, 0x7e, + 0x2c, 0xd4, 0x53, 0x47, 0x34, 0xbd, 0xf6, 0x22, + 0xe9, 0xf8, 0x4c, 0xfb, 0x5f, 0x52, 0x4d, 0x4e, + 0x56, 0x9e, 0x7e, 0x17, 0xad, 0x3a, 0xcd, 0x18, + 0xd4, 0xef, 0xff, 0x00, 0x4d, 0x78, 0x8f, 0x11, + 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, + 0x78, 0x8f, 0x11, 0xe2, 0x2e, 0xfa, 0x8c, 0x85, + 0xe3, 0x52, 0x1b, 0xe7, 0x2f, 0x7a, 0xcf, 0x0d, + 0x8d, 0x3b, 0xb8, 0x6b, 0x24, 0x75, 0xb5, 0x69, + 0x9a, 0xc1, 0x1e, 0x21, 0x32, 0xad, 0x62, 0x8a, + 0x37, 0xa2, 0x23, 0x5a, 0x22, 0x8b, 0x12, 0xbd, + 0x6a, 0x93, 0x3c, 0x71, 0xd1, 0x9b, 0x58, 0xd3, + 0xab, 0x25, 0xdf, 0x56, 0x23, 0x6c, 0xf5, 0x7b, + 0xd6, 0x98, 0x9c, 0x75, 0x6b, 0x0e, 0xac, 0x46, + 0xe4, 0xaf, 0xff, 0x00, 0x23, 0x57, 0x73, 0x2b, + 0x74, 0x3d, 0x92, 0x35, 0x74, 0xaa, 0x53, 0xc5, + 0x4e, 0xea, 0xf1, 0x7a, 0x7e, 0xb7, 0x28, 0xaa, + 0xb6, 0x9a, 0x3e, 0x58, 0x1c, 0x3b, 0x04, 0x1d, + 0x89, 0xd2, 0x97, 0xe6, 0xe9, 0x21, 0x92, 0x49, + 0x53, 0x41, 0x2c, 0xae, 0xef, 0xd6, 0x94, 0x6b, + 0xec, 0xa5, 0xb9, 0x23, 0x65, 0x92, 0x12, 0x15, + 0x9f, 0xde, 0xc9, 0xff, 0x00, 0x64, 0x5e, 0xcb, + 0x9f, 0x6f, 0x15, 0xfa, 0x5f, 0xe4, 0x96, 0x23, + 0x24, 0xb3, 0xf1, 0x35, 0x3a, 0x44, 0xa9, 0xca, + 0x11, 0x09, 0xd3, 0xa5, 0xee, 0x1f, 0x87, 0xcf, + 0xc3, 0xac, 0x16, 0x66, 0xd4, 0x7e, 0x99, 0x69, + 0xca, 0xca, 0xc9, 0xdf, 0xb4, 0x53, 0x4d, 0x2a, + 0xc5, 0xf8, 0x7b, 0xd3, 0x74, 0xf0, 0xe8, 0x33, + 0xc4, 0x27, 0x51, 0x34, 0xbb, 0x50, 0x24, 0x13, + 0xad, 0x71, 0x9d, 0x37, 0x69, 0x84, 0x01, 0x0e, + 0x9a, 0x43, 0x35, 0xda, 0x2b, 0x21, 0x93, 0x2a, + 0xd4, 0xa7, 0x19, 0x53, 0x64, 0x2f, 0x4b, 0xcc, + 0xd4, 0xad, 0x34, 0x45, 0x0b, 0x93, 0x4d, 0x66, + 0x68, 0xe3, 0x93, 0x1d, 0x64, 0x81, 0xb5, 0xe9, + 0x66, 0x98, 0x3a, 0x90, 0x99, 0x4e, 0x8a, 0xe9, + 0x5f, 0x1b, 0xf0, 0xdf, 0xa5, 0xd4, 0x89, 0x47, + 0x34, 0x8a, 0x27, 0x23, 0x61, 0xd4, 0x7d, 0x7e, + 0xd2, 0xb3, 0xf5, 0x02, 0x3b, 0xa0, 0xb0, 0x77, + 0x26, 0xad, 0x1f, 0x8b, 0xa4, 0xd6, 0x0d, 0x09, + 0xb6, 0x4a, 0xdf, 0xab, 0xba, 0xf4, 0x6e, 0xb5, + 0x41, 0x9e, 0x5d, 0x14, 0x0b, 0x3f, 0xc5, 0xfa, + 0x5c, 0xab, 0x58, 0x34, 0xa9, 0x14, 0x9d, 0x26, + 0xbc, 0xeb, 0x29, 0x0c, 0x2c, 0x8d, 0xd1, 0xa6, + 0x59, 0xf4, 0x46, 0x48, 0xe9, 0xaf, 0x7f, 0xeb, + 0x32, 0xeb, 0x6c, 0x70, 0x5c, 0xc2, 0xcc, 0xe2, + 0xfc, 0xe9, 0xa5, 0xb0, 0x87, 0x67, 0xf5, 0x1a, + 0x6d, 0x0f, 0x53, 0x49, 0x66, 0x96, 0x21, 0x77, + 0x56, 0xa3, 0x49, 0xa0, 0xcb, 0x10, 0xb7, 0xe9, + 0xbc, 0x41, 0xb6, 0xae, 0x7a, 0x37, 0x02, 0x76, + 0x79, 0x53, 0xa5, 0x90, 0xf5, 0x24, 0xd3, 0x4a, + 0xa1, 0xbb, 0x5f, 0xf4, 0xca, 0x17, 0x23, 0x7c, + 0xb7, 0x4a, 0x61, 0x19, 0x2f, 0x9c, 0x48, 0xf3, + 0x89, 0x1e, 0x71, 0x23, 0xce, 0x24, 0x36, 0x1a, + 0x55, 0x8a, 0x1d, 0x52, 0x34, 0xbd, 0xb7, 0xdf, + 0x13, 0x63, 0x3e, 0xad, 0x4d, 0x6d, 0x8d, 0x4a, + 0x1d, 0x5a, 0xda, 0x5d, 0xcd, 0x6b, 0x6e, 0x6a, + 0x69, 0xbd, 0x72, 0x82, 0x2e, 0x44, 0x89, 0x41, + 0x16, 0xa3, 0xb9, 0xa9, 0x90, 0xc7, 0x42, 0x21, + 0x91, 0x92, 0xad, 0x6d, 0x63, 0x6a, 0x6e, 0x5e, + 0xee, 0x85, 0xa5, 0xe9, 0x3b, 0x7b, 0x4b, 0x5a, + 0x05, 0xc6, 0x18, 0x59, 0x8b, 0x64, 0xe1, 0x17, + 0xb2, 0xe7, 0xdb, 0xc5, 0x7e, 0x97, 0xf9, 0x49, + 0x26, 0xf1, 0x38, 0x80, 0xbb, 0xf1, 0x03, 0xa6, + 0xd6, 0xd7, 0xe2, 0x0f, 0x4d, 0xc7, 0xc4, 0x1e, + 0x9b, 0x8f, 0x88, 0x3d, 0x37, 0x1f, 0x10, 0x7a, + 0x6e, 0x3e, 0x20, 0xf4, 0xdc, 0x7c, 0x41, 0xe9, + 0xb8, 0xf8, 0x83, 0xd3, 0x71, 0xf1, 0x07, 0xa6, + 0xe3, 0xe2, 0x0f, 0x4d, 0xc7, 0xc4, 0x1e, 0x9b, + 0x8f, 0x88, 0x3d, 0x37, 0x1f, 0x10, 0x7a, 0x6e, + 0x3e, 0x20, 0xf4, 0xdc, 0x7c, 0x41, 0xe9, 0xb8, + 0xf8, 0x83, 0xd3, 0x71, 0xf1, 0x07, 0xa6, 0xe3, + 0xe2, 0x0f, 0x4d, 0xc7, 0xc4, 0x1e, 0x9b, 0x86, + 0x0d, 0x57, 0xd3, 0xf9, 0x22, 0x9a, 0xd2, 0xb4, + 0xa8, 0xba, 0xeb, 0x6c, 0xb4, 0xc9, 0x13, 0x51, + 0x75, 0xc9, 0xdb, 0x06, 0x4e, 0xd8, 0x32, 0x76, + 0xc1, 0x93, 0xb6, 0x0c, 0x9d, 0xb0, 0x64, 0xed, + 0x83, 0x27, 0x6c, 0x19, 0x3b, 0x60, 0xc9, 0xdb, + 0x06, 0x4e, 0xd8, 0x32, 0x76, 0xc1, 0x93, 0xb6, + 0x0c, 0x9d, 0xb0, 0x64, 0xed, 0x83, 0x27, 0x6c, + 0x19, 0x3b, 0x60, 0xac, 0x89, 0x9e, 0xea, 0xe4, + 0x0c, 0xa3, 0x20, 0x65, 0x19, 0x03, 0x28, 0xc8, + 0x19, 0x46, 0x40, 0xca, 0x32, 0x06, 0x51, 0x90, + 0x32, 0x8c, 0x81, 0x94, 0x64, 0x0c, 0xa3, 0x20, + 0x65, 0x19, 0x03, 0x28, 0xc8, 0x19, 0x46, 0x40, + 0xca, 0x32, 0x06, 0x51, 0x90, 0x32, 0x8c, 0x81, + 0x98, 0x64, 0x0c, 0xa3, 0x20, 0x65, 0x19, 0x03, + 0x28, 0xc8, 0x19, 0x46, 0x40, 0xca, 0x32, 0x06, + 0x61, 0x90, 0x33, 0x0c, 0x81, 0x94, 0x64, 0x0c, + 0xa3, 0x20, 0x65, 0x19, 0x03, 0x28, 0x4a, 0xe0, + 0xd0, 0xb2, 0xea, 0x16, 0x5d, 0xb5, 0x93, 0x84, + 0x5e, 0xcb, 0x9f, 0x6f, 0x15, 0xfa, 0x5f, 0x88, + 0x9a, 0x3f, 0x99, 0x17, 0x89, 0xaf, 0x5e, 0xb1, + 0xd1, 0x65, 0x29, 0x5a, 0x8a, 0x52, 0xb5, 0x15, + 0xb6, 0xea, 0x0f, 0x0a, 0xd0, 0x24, 0x44, 0xad, + 0x7a, 0x87, 0x56, 0x07, 0x36, 0x6b, 0x7f, 0xdd, + 0xa0, 0x92, 0xa7, 0x19, 0x1c, 0x3b, 0xc4, 0x3b, + 0x29, 0xaa, 0xf3, 0xef, 0x92, 0x30, 0xd9, 0x5c, + 0x99, 0x9c, 0x64, 0xcc, 0xe3, 0x26, 0x67, 0x19, + 0x33, 0x38, 0xc9, 0x99, 0xc6, 0x4c, 0xce, 0x32, + 0x66, 0x71, 0x93, 0x33, 0x8c, 0x99, 0x9c, 0x64, + 0xcc, 0xe3, 0x26, 0x67, 0x19, 0x33, 0x38, 0xc9, + 0x99, 0xc6, 0x4c, 0xce, 0x32, 0x66, 0x71, 0x93, + 0x33, 0x8c, 0x99, 0x9c, 0x64, 0xcc, 0xe3, 0x26, + 0x67, 0x19, 0x33, 0x38, 0x4e, 0x63, 0x63, 0xc1, + 0x61, 0x5a, 0xb6, 0x86, 0x5b, 0xf2, 0x66, 0x71, + 0x93, 0x33, 0x8c, 0x99, 0x9c, 0x64, 0xcc, 0xe3, + 0x26, 0x67, 0x19, 0x33, 0x38, 0xc9, 0x99, 0xc6, + 0x4c, 0xce, 0x32, 0x66, 0x71, 0x93, 0x33, 0x8c, + 0x99, 0x9c, 0x64, 0xcc, 0xe3, 0x26, 0x67, 0x19, + 0x33, 0x38, 0xc9, 0x99, 0xc6, 0x4c, 0xce, 0x32, + 0x66, 0x71, 0x93, 0x33, 0x8c, 0x99, 0x9c, 0x64, + 0xcc, 0xe2, 0xd9, 0x33, 0x27, 0x89, 0x85, 0xa5, + 0x35, 0x2c, 0x79, 0xc6, 0xf5, 0x89, 0xa4, 0xc1, + 0x17, 0xb2, 0xe7, 0xdb, 0xc5, 0x7e, 0x96, 0x35, + 0x87, 0xfe, 0x62, 0x34, 0xa9, 0x79, 0x11, 0x24, + 0xf1, 0x26, 0x07, 0xc6, 0x19, 0xb3, 0xc1, 0x93, + 0xa6, 0xc8, 0xc6, 0xa8, 0xd9, 0x6b, 0xb4, 0x2e, + 0x47, 0xc6, 0x41, 0x17, 0xd4, 0x13, 0x2d, 0xb0, + 0x8f, 0xf7, 0x7e, 0x19, 0x7e, 0xdf, 0xa7, 0xef, + 0x20, 0x3a, 0xe2, 0xe2, 0xbc, 0x91, 0xc9, 0x1c, + 0x91, 0xc9, 0x1c, 0x91, 0xc9, 0x1c, 0x91, 0x58, + 0xe2, 0x2a, 0xc2, 0xe4, 0x71, 0x82, 0x19, 0xda, + 0x54, 0xc7, 0xe4, 0x28, 0xd6, 0x56, 0x25, 0x2b, + 0xa0, 0x2d, 0x99, 0xec, 0xe7, 0x3e, 0x84, 0xff, + 0x00, 0xd4, 0x9c, 0x58, 0xdf, 0x5a, 0x4a, 0x5e, + 0x4a, 0xc6, 0xc5, 0x5c, 0x91, 0xc9, 0x1c, 0x91, + 0xc9, 0x1c, 0x91, 0xc9, 0x10, 0x65, 0x15, 0xac, + 0xa9, 0xae, 0x9e, 0x2e, 0x6e, 0xaa, 0xab, 0x73, + 0xa7, 0x24, 0x72, 0x43, 0x23, 0x74, 0x7c, 0xe6, + 0x27, 0xb6, 0x22, 0x88, 0xbc, 0xf8, 0xe4, 0x8d, + 0x2a, 0xde, 0x2a, 0xfe, 0x31, 0x51, 0x99, 0x29, + 0xea, 0x11, 0x30, 0xbf, 0x38, 0xa7, 0x88, 0xb4, + 0x27, 0x90, 0xad, 0x95, 0x36, 0xa7, 0x61, 0x73, + 0x65, 0x6a, 0x6d, 0x35, 0xb0, 0x98, 0xcb, 0x3a, + 0xa7, 0xc6, 0xf6, 0x27, 0xc7, 0x7b, 0x5b, 0x9a, + 0x5e, 0x5d, 0x94, 0xa0, 0x60, 0xbe, 0xf4, 0xd6, + 0x33, 0xaa, 0x40, 0x92, 0xe8, 0xcc, 0x9a, 0xc2, + 0x1b, 0x98, 0x5f, 0xdd, 0xd3, 0x2c, 0xb1, 0x4b, + 0x7a, 0xae, 0x48, 0xe4, 0x88, 0x71, 0xd5, 0x31, + 0xa2, 0x2b, 0xf5, 0x09, 0x30, 0x45, 0xec, 0xb9, + 0xf6, 0xf1, 0x5f, 0xa5, 0x8d, 0x61, 0xff, 0x00, + 0x98, 0x8a, 0xcf, 0x71, 0xc8, 0x8b, 0xbc, 0xc2, + 0x3a, 0xec, 0x43, 0x13, 0xe3, 0x62, 0xf8, 0x8b, + 0x64, 0xce, 0x1d, 0x74, 0x86, 0x47, 0x26, 0x48, + 0xf7, 0x0d, 0xff, 0x00, 0x7f, 0xe1, 0x97, 0xed, + 0xfa, 0x7e, 0xf3, 0x03, 0x7c, 0x98, 0x77, 0x38, + 0x73, 0x87, 0x38, 0x73, 0x87, 0x38, 0x73, 0x87, + 0x38, 0x46, 0x8f, 0x4e, 0xad, 0x95, 0x4c, 0x89, + 0x05, 0x14, 0xad, 0x57, 0xc1, 0x73, 0x5d, 0x21, + 0x71, 0xc5, 0x1c, 0x15, 0xf3, 0x1f, 0x1b, 0x96, + 0x51, 0x1b, 0xee, 0x9b, 0xb9, 0x17, 0x21, 0x0f, + 0x2f, 0xd5, 0x75, 0x75, 0xe7, 0x0e, 0x70, 0xe7, + 0x0e, 0x70, 0xe7, 0x0e, 0x70, 0xd3, 0xc5, 0x7e, + 0x64, 0xd1, 0xab, 0xea, 0x8e, 0xcb, 0x7c, 0x1d, + 0xb9, 0xc3, 0x9c, 0x23, 0x92, 0x3b, 0xd9, 0x60, + 0x31, 0x89, 0xd9, 0xaf, 0x52, 0x67, 0x95, 0x8b, + 0xe1, 0xec, 0x1c, 0xa6, 0x0b, 0xdc, 0xe2, 0x6f, + 0x76, 0x48, 0x9b, 0x24, 0x4f, 0xd5, 0xbe, 0x25, + 0xa7, 0x97, 0x98, 0xa9, 0xbb, 0x52, 0xed, 0x65, + 0xb5, 0x04, 0x7e, 0xcb, 0x65, 0xb1, 0x46, 0x06, + 0xa4, 0x11, 0xd9, 0xc3, 0x45, 0xab, 0xa4, 0x2c, + 0x17, 0x39, 0x11, 0x29, 0xb9, 0xad, 0xe2, 0xac, + 0x8e, 0x2b, 0xca, 0xa2, 0x44, 0xfd, 0x59, 0x45, + 0x67, 0x11, 0xfe, 0x5b, 0xbb, 0x24, 0xf1, 0x5e, + 0xc9, 0x8f, 0x38, 0x73, 0x86, 0x9e, 0x1f, 0xe7, + 0x35, 0xc5, 0x7e, 0xa1, 0x26, 0x08, 0xbd, 0x97, + 0x3e, 0xde, 0x2d, 0xf4, 0xc1, 0xac, 0x1f, 0xf3, + 0x21, 0x6d, 0xb7, 0x5f, 0x5b, 0xad, 0xba, 0xda, + 0x8f, 0x0a, 0xd7, 0xf3, 0xb0, 0x93, 0x8c, 0xa7, + 0x94, 0x67, 0x88, 0xba, 0xcb, 0xac, 0xad, 0x6d, + 0xba, 0xd1, 0xb2, 0xff, 0x00, 0x1a, 0xa7, 0x3e, + 0xda, 0x7c, 0xff, 0x00, 0x86, 0x6f, 0xb7, 0xe9, + 0xfb, 0xab, 0x6e, 0x21, 0xfd, 0xa1, 0x4e, 0x9a, + 0xcf, 0x93, 0x1d, 0xe9, 0xec, 0xfc, 0x7a, 0x7b, + 0x3f, 0x1e, 0x9e, 0xcf, 0xc7, 0xa7, 0xb3, 0xf1, + 0xe9, 0xec, 0xfc, 0x7a, 0x7b, 0x3f, 0x1e, 0x9e, + 0x4f, 0x47, 0xa7, 0x93, 0xe1, 0xe9, 0xdc, 0xf4, + 0x7a, 0x79, 0x3e, 0x1e, 0x9e, 0x4f, 0x7c, 0x3d, + 0x3c, 0x9e, 0xf8, 0x33, 0xb6, 0x4f, 0x99, 0x23, + 0xfe, 0x9e, 0xcf, 0xc7, 0xa7, 0xb3, 0xf1, 0xe9, + 0xec, 0xfc, 0x7a, 0x7b, 0x3f, 0x1e, 0x9e, 0xcf, + 0xc7, 0xa7, 0xb3, 0xf1, 0xe9, 0xec, 0xfc, 0x42, + 0xa1, 0x8e, 0x71, 0x43, 0xca, 0x32, 0xe2, 0x4d, + 0x98, 0x69, 0xd3, 0xd2, 0xd7, 0x0f, 0x4f, 0x67, + 0xe3, 0xd3, 0xd9, 0xf8, 0xf4, 0xf2, 0x7c, 0x3d, + 0x3d, 0x9f, 0x8a, 0x69, 0xe4, 0xfa, 0x83, 0xd3, + 0xc9, 0xe8, 0xae, 0x9e, 0x4f, 0xaa, 0x3d, 0x3c, + 0x9f, 0x0a, 0xe9, 0xe4, 0xfa, 0xa3, 0xd3, 0xc9, + 0xf0, 0xae, 0x9e, 0x4f, 0xaa, 0x3d, 0x3c, 0x9e, + 0xf8, 0x57, 0x4f, 0x27, 0xb5, 0x15, 0xd3, 0xc9, + 0xf5, 0x47, 0xa7, 0x93, 0xe1, 0xe9, 0xdc, 0xf4, + 0x7a, 0x77, 0x3d, 0x11, 0xc4, 0xd2, 0xe6, 0x44, + 0x6e, 0x70, 0xfd, 0x49, 0x77, 0x71, 0xf4, 0xf6, + 0x7e, 0x2c, 0xd3, 0xb9, 0xfd, 0xf7, 0x30, 0xc7, + 0xeb, 0x10, 0x64, 0x8b, 0x77, 0xf2, 0x60, 0x8b, + 0xd9, 0x73, 0xed, 0xe2, 0xff, 0x00, 0x4c, 0x1a, + 0xc1, 0xff, 0x00, 0x32, 0x09, 0x5c, 0x54, 0x42, + 0x34, 0xff, 0x00, 0x9e, 0xb7, 0x55, 0xd4, 0x5b, + 0x02, 0x63, 0x75, 0xb2, 0x3b, 0x19, 0x85, 0xb1, + 0x38, 0x37, 0xe9, 0xc3, 0x31, 0xf4, 0x61, 0xd3, + 0x0e, 0xba, 0x8a, 0x2c, 0xe8, 0xad, 0xbd, 0x2b, + 0x43, 0x8a, 0x5a, 0x2b, 0xaf, 0x7d, 0xac, 0xcd, + 0xb7, 0xca, 0x24, 0x1a, 0x8c, 0xd4, 0x54, 0xb5, + 0xf1, 0x42, 0xc4, 0xcb, 0xf5, 0x3e, 0x64, 0x9f, + 0x5a, 0xda, 0xda, 0x7e, 0x7f, 0xc3, 0x37, 0xdb, + 0xd4, 0xfd, 0xd1, 0x77, 0x92, 0xbb, 0x6d, 0xca, + 0x76, 0x58, 0x36, 0x58, 0x36, 0x58, 0x36, 0x58, + 0x36, 0x58, 0x22, 0x69, 0x5a, 0x94, 0xbf, 0xb0, + 0xa1, 0x42, 0xae, 0x42, 0x92, 0x2c, 0xd5, 0x47, + 0xb3, 0xe3, 0xc8, 0xed, 0x26, 0x3a, 0xd4, 0x52, + 0xd6, 0xea, 0x31, 0x5a, 0xb9, 0x0d, 0x22, 0xea, + 0x0c, 0xa2, 0x78, 0xb2, 0x7e, 0x90, 0xbd, 0xb8, + 0xd6, 0xd5, 0x9b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, + 0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x0c, 0x3f, + 0xe2, 0x0c, 0x35, 0x2e, 0x94, 0xab, 0x66, 0xcb, + 0x06, 0xcb, 0x06, 0xcb, 0x04, 0x61, 0x0a, 0x35, + 0xcf, 0x24, 0xc7, 0xec, 0x7e, 0x45, 0x8b, 0x2a, + 0xa8, 0x4f, 0x16, 0x58, 0x65, 0x0f, 0x8b, 0xac, + 0x28, 0xb3, 0x22, 0x8b, 0x2e, 0x56, 0x5c, 0x49, + 0x71, 0x89, 0x5a, 0x90, 0x21, 0xe0, 0xd1, 0x8d, + 0x3b, 0xca, 0x4c, 0x65, 0x45, 0x2f, 0x64, 0x88, + 0x93, 0x5b, 0xa9, 0x19, 0x34, 0xfb, 0x9c, 0x61, + 0xb4, 0x4a, 0xb1, 0x4c, 0x6d, 0x5a, 0x24, 0x1b, + 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x1b, 0x2c, 0x15, + 0xfa, 0x7c, 0x5b, 0xbf, 0x92, 0x84, 0x5e, 0xcb, + 0x9f, 0x6f, 0x17, 0xfa, 0x60, 0xd5, 0xff, 0x00, + 0xf9, 0x90, 0x66, 0x73, 0x8f, 0x3e, 0x45, 0x5b, + 0x65, 0x90, 0x98, 0x82, 0xa6, 0xb7, 0x48, 0x5c, + 0x38, 0xa6, 0x57, 0xe8, 0xf5, 0x65, 0xf6, 0x4b, + 0x23, 0xae, 0x49, 0xe3, 0x72, 0xb8, 0x73, 0x3b, + 0x62, 0xc2, 0x89, 0x21, 0x58, 0x2a, 0x68, 0xfd, + 0x6b, 0x39, 0x7a, 0x83, 0x17, 0x2d, 0xf6, 0xed, + 0x4a, 0x4c, 0xce, 0xc8, 0xa3, 0x52, 0x63, 0x6b, + 0xa4, 0xca, 0x2e, 0xb6, 0xf5, 0x1f, 0x3f, 0xe1, + 0x9e, 0x9f, 0xfd, 0x72, 0x9f, 0xba, 0x2e, 0xf2, + 0x55, 0xf7, 0x4f, 0xca, 0xca, 0xac, 0xa6, 0xf7, + 0x76, 0x65, 0xe4, 0x20, 0x7b, 0x2e, 0x50, 0x8b, + 0xc8, 0xab, 0xc3, 0x45, 0xab, 0x11, 0xae, 0x4e, + 0x4b, 0x2c, 0x79, 0xe1, 0xb1, 0xb9, 0x1e, 0x48, + 0x82, 0x89, 0x9d, 0xa4, 0x0d, 0xeb, 0x5b, 0xa4, + 0x0b, 0xc8, 0x74, 0x78, 0xf9, 0x98, 0x7e, 0xc7, + 0x1a, 0x95, 0xf4, 0xcf, 0xce, 0x3c, 0xe2, 0x53, + 0x53, 0xab, 0x4b, 0xc5, 0xe4, 0x38, 0x27, 0x92, + 0x11, 0xd3, 0xed, 0x78, 0x62, 0x35, 0x6d, 0x64, + 0xad, 0xd5, 0x44, 0xb6, 0x42, 0xcc, 0xe4, 0xe1, + 0x49, 0x2a, 0x3b, 0xd6, 0x36, 0x2e, 0x4e, 0x5a, + 0x44, 0x6f, 0x0d, 0xed, 0xd4, 0x70, 0x7d, 0x68, + 0x74, 0x29, 0x04, 0xad, 0x81, 0x15, 0xa8, 0x64, + 0x6c, 0xc9, 0xc3, 0xab, 0xdb, 0x1b, 0xd5, 0x92, + 0x37, 0xd2, 0x5f, 0x3e, 0x5b, 0xbe, 0x9f, 0x17, + 0xef, 0xe4, 0x81, 0x17, 0xb2, 0xe7, 0xdb, 0xc5, + 0xfe, 0x98, 0x35, 0x7f, 0xfe, 0x64, 0x2b, 0x65, + 0xf4, 0xb6, 0xb6, 0x5f, 0x6d, 0x07, 0x85, 0x69, + 0xf9, 0x52, 0xdb, 0xae, 0x16, 0x12, 0x71, 0x96, + 0xd8, 0x49, 0xa6, 0x5b, 0x4a, 0x56, 0xb5, 0xbe, + 0xcb, 0xcb, 0xba, 0xe2, 0x0f, 0xb0, 0x6c, 0xbe, + 0xb6, 0xff, 0x00, 0xa3, 0xf0, 0xd1, 0xf6, 0xcd, + 0x3f, 0x74, 0x5d, 0xe4, 0x86, 0x57, 0x62, 0x79, + 0x06, 0x63, 0x60, 0xcc, 0x6c, 0x19, 0x8d, 0x83, + 0x31, 0xb0, 0x37, 0xba, 0x9a, 0xe0, 0x4f, 0x54, + 0xa9, 0x49, 0x4b, 0x73, 0x3c, 0xc4, 0x56, 0xc8, + 0x8f, 0xb9, 0x3d, 0x54, 0x3b, 0x5b, 0x5b, 0x24, + 0x6a, 0x0c, 0x59, 0xce, 0x74, 0xaa, 0x85, 0x6f, + 0x2a, 0xd1, 0x27, 0x31, 0xcd, 0xcc, 0xa5, 0x44, + 0x3a, 0x39, 0x29, 0x71, 0xcc, 0x4b, 0x19, 0x8d, + 0x83, 0x31, 0xb0, 0x66, 0x36, 0x0c, 0xc6, 0xc1, + 0x98, 0xd8, 0x12, 0xad, 0xa3, 0x84, 0x50, 0x4e, + 0xe4, 0xc9, 0xa3, 0xac, 0xbe, 0xac, 0xb0, 0x0f, + 0x56, 0x58, 0x03, 0x4c, 0xe0, 0x87, 0xd3, 0x96, + 0x3d, 0xac, 0x40, 0x55, 0x92, 0xfa, 0x9b, 0x53, + 0x25, 0xf5, 0x2a, 0xfc, 0xce, 0xd0, 0x5c, 0xbf, + 0xcd, 0x31, 0x6b, 0xab, 0x83, 0x79, 0x79, 0x9d, + 0xa1, 0x34, 0x98, 0xf5, 0x76, 0x66, 0x76, 0x84, + 0x72, 0x73, 0x9c, 0x15, 0x26, 0x94, 0x1c, 0xb1, + 0x4a, 0x79, 0x12, 0x95, 0x44, 0xa8, 0x93, 0x1e, + 0x92, 0xcc, 0xce, 0xd1, 0x99, 0xda, 0x33, 0x3b, + 0x45, 0x65, 0xf5, 0xb6, 0xdc, 0xce, 0xd0, 0xa8, + 0xee, 0x4a, 0x78, 0xbf, 0x7f, 0x24, 0x08, 0xbd, + 0x97, 0x3e, 0xde, 0x31, 0xf4, 0xd1, 0xab, 0xdf, + 0xf3, 0x20, 0xfb, 0xff, 0x00, 0x32, 0xab, 0x23, + 0x3b, 0xfb, 0x7c, 0xa9, 0x81, 0x91, 0x2b, 0x53, + 0x9b, 0x1c, 0x4d, 0xe1, 0x9e, 0x54, 0xc0, 0xcc, + 0x91, 0xb3, 0x4f, 0x5c, 0x5a, 0x2c, 0x8d, 0xe9, + 0xb4, 0x91, 0xfe, 0xe3, 0x88, 0x90, 0x9a, 0xc0, + 0xa9, 0x32, 0x42, 0x90, 0x6a, 0x04, 0xc9, 0x81, + 0x2c, 0xa7, 0x53, 0x1f, 0x95, 0x24, 0x93, 0xa9, + 0xa3, 0x5c, 0x69, 0xab, 0x4e, 0xe4, 0xcc, 0x30, + 0x94, 0x11, 0x1f, 0x9f, 0xf0, 0xd3, 0xf6, 0xcd, + 0x3f, 0x74, 0x5d, 0xe4, 0xa7, 0xee, 0x8f, 0x92, + 0x3e, 0x90, 0x9b, 0x6d, 0x44, 0xb9, 0x53, 0xd2, + 0x85, 0x69, 0xda, 0xdc, 0x4d, 0x89, 0xa9, 0x6f, + 0x21, 0x86, 0xe2, 0xc8, 0x6d, 0x60, 0x36, 0xe7, + 0x44, 0xf3, 0x76, 0x4b, 0x1b, 0x14, 0x28, 0x46, + 0xd2, 0x4a, 0xc6, 0x8b, 0x54, 0x24, 0x79, 0x5c, + 0x8e, 0xb4, 0xb5, 0xe6, 0x9f, 0xb7, 0xca, 0xc7, + 0xf6, 0x40, 0xd7, 0x8f, 0xb5, 0xac, 0x75, 0x67, + 0x4e, 0xc6, 0xec, 0xa1, 0x2a, 0xc6, 0x9d, 0x20, + 0xfa, 0xfb, 0x7a, 0x74, 0xae, 0xa9, 0xda, 0x6e, + 0x4d, 0xc2, 0x75, 0xb5, 0xb6, 0x8e, 0x05, 0x58, + 0xd5, 0xb1, 0x6a, 0x14, 0x24, 0xbe, 0x98, 0x5a, + 0x67, 0x13, 0x8b, 0x6c, 0x69, 0x72, 0x11, 0x5a, + 0x26, 0x73, 0xb2, 0xe4, 0xe9, 0x51, 0x5a, 0xd3, + 0x62, 0x26, 0xb7, 0xe8, 0xc7, 0x86, 0x53, 0x18, + 0xa3, 0x52, 0xb4, 0x26, 0x50, 0x93, 0xe8, 0xe4, + 0x91, 0x95, 0x21, 0x4f, 0x46, 0xa0, 0x47, 0x43, + 0xdb, 0x90, 0x36, 0xb9, 0x39, 0xa4, 0x40, 0x9c, + 0xb9, 0x0d, 0x11, 0xf3, 0x6b, 0xf4, 0xf8, 0xc7, + 0x7f, 0x23, 0x08, 0xbd, 0x97, 0x3e, 0xde, 0x31, + 0xf4, 0xdf, 0x11, 0xab, 0xdf, 0xf3, 0x30, 0xcb, + 0x28, 0x61, 0xc7, 0x63, 0x12, 0x84, 0x0f, 0x12, + 0x39, 0x44, 0x8d, 0xbd, 0xd1, 0x1a, 0x1d, 0x41, + 0x67, 0x21, 0xbe, 0x53, 0x24, 0x6f, 0x75, 0x49, + 0x1b, 0x7e, 0x2d, 0x88, 0x36, 0xca, 0xa1, 0x65, + 0xc3, 0xd9, 0x67, 0xb1, 0xe4, 0x09, 0x91, 0x3a, + 0x5e, 0x4b, 0xe1, 0xba, 0x91, 0xe2, 0xc4, 0xae, + 0x7a, 0x99, 0x4b, 0x6b, 0x04, 0x91, 0xbd, 0xb5, + 0x96, 0x6d, 0x26, 0x88, 0x4a, 0x4d, 0xf9, 0xff, + 0x00, 0x0d, 0x3f, 0x6c, 0xd2, 0xbf, 0xe5, 0x17, + 0x79, 0x22, 0x68, 0x8d, 0x19, 0x20, 0xe8, 0xb1, + 0x51, 0xd1, 0x62, 0xa3, 0xa2, 0xc5, 0x47, 0x45, + 0x8a, 0x82, 0x68, 0xd0, 0x84, 0xab, 0x6c, 0x68, + 0xa1, 0x34, 0x4a, 0xc9, 0x6a, 0x4e, 0x99, 0x1c, + 0xf2, 0x68, 0x7a, 0x3a, 0x0b, 0x5b, 0x63, 0x96, + 0x9e, 0x65, 0xad, 0x67, 0x1c, 0x8c, 0x86, 0x66, + 0xfb, 0x52, 0xa3, 0x61, 0x42, 0x2c, 0x4c, 0xca, + 0x58, 0xe8, 0xb1, 0x41, 0xd1, 0x62, 0xa3, 0xa2, + 0xc5, 0x47, 0x45, 0x8a, 0x8e, 0x8b, 0x15, 0x1d, + 0x16, 0x2a, 0x11, 0x90, 0x91, 0x34, 0x4c, 0x48, + 0x63, 0xa8, 0x26, 0x6c, 0x77, 0xe8, 0xa3, 0xb5, + 0x97, 0x7a, 0x2e, 0xec, 0x1b, 0x34, 0xca, 0x56, + 0xcd, 0x79, 0xf1, 0x6d, 0x48, 0x53, 0x75, 0xd1, + 0xdd, 0x4f, 0xba, 0xfc, 0x73, 0x53, 0xb7, 0x37, + 0xc3, 0xa6, 0x49, 0xd6, 0x99, 0x05, 0x9c, 0x18, + 0xa1, 0x54, 0x5f, 0x52, 0x56, 0xda, 0x7c, 0x6b, + 0x53, 0x14, 0xda, 0x74, 0x53, 0x51, 0x94, 0x54, + 0xb8, 0xce, 0xa5, 0x94, 0x62, 0x48, 0xb6, 0xa4, + 0x20, 0x05, 0x41, 0x27, 0x24, 0x1c, 0x9e, 0x17, + 0x3f, 0x49, 0x4a, 0xc5, 0xb5, 0x26, 0xe4, 0xb5, + 0x88, 0xea, 0x25, 0xc8, 0xcd, 0x86, 0x6a, 0x01, + 0xf4, 0xb2, 0x33, 0xa9, 0x65, 0xd7, 0x1a, 0xd4, + 0xcd, 0xe9, 0xa0, 0x12, 0x35, 0xcb, 0x55, 0x9c, + 0x51, 0xc7, 0x46, 0x3b, 0xe9, 0x18, 0x45, 0xec, + 0xb9, 0xf6, 0xf1, 0x9f, 0xa6, 0x8d, 0x4b, 0xbd, + 0xb4, 0xb8, 0x0f, 0x37, 0x4a, 0xc7, 0x37, 0x4a, + 0xc5, 0x8e, 0x3a, 0x5e, 0x58, 0xe6, 0xe9, 0x58, + 0x26, 0xdd, 0x3b, 0x51, 0x61, 0x65, 0xe9, 0xe1, + 0xa2, 0xa7, 0xe9, 0x8d, 0xb4, 0xb9, 0x4e, 0x97, + 0xdb, 0x6f, 0x37, 0x4a, 0xc7, 0x37, 0x4a, 0xc7, + 0x37, 0x4a, 0xc5, 0x57, 0x69, 0x5d, 0x04, 0xa9, + 0xb7, 0x4b, 0xe2, 0xef, 0x9c, 0xdd, 0x2b, 0x1c, + 0xed, 0x2b, 0x06, 0x9f, 0xa6, 0x24, 0x56, 0xdb, + 0x34, 0xee, 0xfb, 0xef, 0xbb, 0x4d, 0x4b, 0xbf, + 0x95, 0xa5, 0xfb, 0x39, 0xba, 0x56, 0x39, 0xba, + 0x56, 0x34, 0x14, 0xe8, 0xd9, 0xd1, 0xfa, 0x7e, + 0xe8, 0xbb, 0xc9, 0x57, 0xdd, 0x3f, 0x24, 0x59, + 0x27, 0x25, 0x7c, 0x83, 0x9d, 0x75, 0xf2, 0xf6, + 0x74, 0xd1, 0x9a, 0xc8, 0x90, 0x58, 0x59, 0xcd, + 0x64, 0x1b, 0x8c, 0x12, 0x4a, 0xbe, 0x84, 0x4a, + 0x77, 0x3b, 0x98, 0x96, 0xa0, 0xbe, 0xd4, 0x4b, + 0xc8, 0x6e, 0x47, 0x64, 0x6d, 0x3b, 0x2a, 0xcb, + 0x88, 0x64, 0x21, 0xb9, 0x8b, 0xe5, 0x61, 0xfb, + 0x1f, 0xfb, 0x11, 0x8e, 0xfa, 0x46, 0x11, 0x7b, + 0x2e, 0x7d, 0xbc, 0x67, 0xe9, 0xa3, 0x57, 0xff, + 0x00, 0xe6, 0x5f, 0x23, 0x42, 0xda, 0x24, 0xd3, + 0x58, 0xf1, 0x92, 0x15, 0xd0, 0x09, 0x8b, 0x92, + 0x27, 0x38, 0xfc, 0xae, 0xbf, 0xfd, 0x27, 0xf3, + 0xbb, 0xf8, 0xea, 0xdf, 0xdf, 0x82, 0xef, 0xe3, + 0xa8, 0x0d, 0x65, 0xca, 0xdf, 0x56, 0xb8, 0xb8, + 0xbf, 0x58, 0x63, 0x85, 0x86, 0xa2, 0x2e, 0xbf, + 0xa5, 0xbf, 0x97, 0xe1, 0x9f, 0xed, 0x9a, 0x7e, + 0xe8, 0xbb, 0xc9, 0x42, 0x05, 0xd7, 0xc9, 0xfa, + 0x73, 0x80, 0xe9, 0xce, 0x03, 0xa7, 0x38, 0x0e, + 0x9c, 0xe0, 0x1b, 0x2c, 0x5e, 0x81, 0x43, 0x9d, + 0xaa, 0xd5, 0xd8, 0xa9, 0xd9, 0x62, 0xd3, 0x9c, + 0x57, 0xf2, 0x16, 0x27, 0xff, 0x00, 0x2c, 0xb4, + 0xf2, 0x2a, 0xd4, 0xaa, 0x87, 0x5c, 0xd1, 0x6d, + 0xee, 0x45, 0xb4, 0x2e, 0x72, 0x35, 0xc5, 0x45, + 0xab, 0xd4, 0x90, 0x43, 0x8b, 0xcb, 0x83, 0x85, + 0x3a, 0x73, 0x80, 0xe9, 0xce, 0x03, 0xa7, 0x38, + 0x0e, 0x9c, 0xe0, 0x3a, 0x73, 0x80, 0x66, 0x2c, + 0xc2, 0x61, 0x3f, 0xd8, 0x8c, 0x77, 0xd2, 0x30, + 0x8b, 0xd9, 0x73, 0xed, 0xe3, 0x3f, 0x4d, 0xf1, + 0x1a, 0x9e, 0xde, 0xb9, 0xdb, 0x4f, 0xbd, 0x35, + 0xd4, 0x21, 0xe9, 0xae, 0xa1, 0x0f, 0x4d, 0x75, + 0x08, 0x7a, 0x6b, 0xa8, 0x41, 0x7c, 0x4f, 0x51, + 0xd7, 0xb0, 0x5f, 0x12, 0xd4, 0x7b, 0xe3, 0x11, + 0xa8, 0xe4, 0xf9, 0x88, 0xb9, 0x3c, 0x67, 0x51, + 0xa4, 0x8a, 0x7d, 0x35, 0xd4, 0x21, 0xe9, 0xae, + 0xa1, 0x0f, 0x4d, 0x75, 0x08, 0x57, 0x4d, 0x35, + 0x0b, 0xc3, 0x53, 0xa0, 0x73, 0x57, 0x29, 0xa7, + 0xa6, 0xba, 0x84, 0x2b, 0xa6, 0x9a, 0x85, 0x5a, + 0x1f, 0x5d, 0x55, 0x36, 0xe5, 0x4d, 0xda, 0x98, + 0xa9, 0x92, 0x33, 0x16, 0xd4, 0xa8, 0xcb, 0xac, + 0x8a, 0x3f, 0x3a, 0x77, 0x41, 0xe9, 0xae, 0xa1, + 0x0f, 0x4d, 0x75, 0x08, 0x7e, 0x1f, 0xe3, 0xef, + 0xb1, 0xe8, 0xed, 0x2b, 0xfe, 0x51, 0x77, 0x92, + 0x59, 0x44, 0x94, 0x89, 0x1e, 0x5b, 0x2a, 0x19, + 0x6c, 0xa8, 0x65, 0xb2, 0xa1, 0x96, 0xca, 0x86, + 0x5b, 0x2a, 0x19, 0x6c, 0xa8, 0x65, 0xb2, 0xa1, + 0x96, 0xca, 0x82, 0xa5, 0x2f, 0xe4, 0xad, 0x29, + 0x7c, 0x96, 0xb7, 0x2d, 0x51, 0x34, 0x42, 0xc4, + 0xf6, 0xe5, 0x30, 0x63, 0xbb, 0x2d, 0x95, 0x0c, + 0xb6, 0x54, 0x32, 0xd9, 0x50, 0xcb, 0x65, 0x43, + 0x2d, 0x95, 0x0c, 0xb6, 0x54, 0x32, 0xd9, 0x50, + 0xcb, 0x65, 0x41, 0xb5, 0x62, 0xb5, 0xf0, 0xef, + 0xec, 0x46, 0x7b, 0xe9, 0x10, 0x45, 0xec, 0xb9, + 0xf6, 0xf1, 0x9f, 0xa7, 0x0d, 0x55, 0xbe, 0xf2, + 0xf4, 0xdf, 0x9e, 0xbc, 0x45, 0x62, 0xce, 0x52, + 0x98, 0xda, 0x48, 0xa9, 0x8a, 0xe3, 0x30, 0xd8, + 0xb9, 0x92, 0x32, 0x9b, 0xd9, 0x58, 0xd1, 0xb6, + 0xbb, 0xda, 0xe6, 0xce, 0xe9, 0xa6, 0x8f, 0xef, + 0x97, 0x13, 0xcf, 0x5e, 0x22, 0xd6, 0x9c, 0xf3, + 0x26, 0x7f, 0xc7, 0x9b, 0xa8, 0xed, 0x58, 0x42, + 0x68, 0x94, 0xf6, 0x23, 0x56, 0x35, 0x1a, 0x96, + 0xd0, 0x9a, 0x28, 0xf9, 0xcf, 0x5e, 0x1a, 0x5e, + 0x9e, 0x11, 0x69, 0x7b, 0x4a, 0x44, 0x05, 0xb1, + 0xd1, 0x9d, 0xd0, 0xda, 0xe3, 0xce, 0x36, 0x3c, + 0xaf, 0x65, 0x6a, 0x3d, 0xc5, 0x94, 0xc4, 0x7c, + 0x09, 0xdf, 0x0a, 0x36, 0xe7, 0xf8, 0x71, 0x5a, + 0xb1, 0x6c, 0x6a, 0x9f, 0xba, 0x2e, 0xf2, 0x55, + 0xf7, 0x4f, 0xfa, 0x17, 0xa8, 0x42, 0xe2, 0xf6, + 0xb9, 0x09, 0x8f, 0xae, 0x17, 0xb8, 0x36, 0x3f, + 0x56, 0x54, 0xba, 0xae, 0x55, 0xff, 0x00, 0x43, + 0x0f, 0xd8, 0xff, 0x00, 0xd8, 0x8c, 0xf7, 0xd2, + 0x20, 0x8b, 0xd9, 0x73, 0xed, 0xe3, 0x3f, 0x4e, + 0x1a, 0xad, 0x65, 0xd7, 0xe9, 0xb0, 0x88, 0x3d, + 0x9e, 0xc1, 0x11, 0x94, 0x48, 0x98, 0xd8, 0xd6, + 0x24, 0xab, 0x63, 0x1e, 0xa7, 0x9f, 0x1e, 0xbe, + 0x7e, 0xde, 0xf9, 0x63, 0x49, 0x4f, 0x1a, 0x65, + 0xef, 0x88, 0x52, 0xa4, 0xe8, 0xa6, 0x33, 0x32, + 0xa4, 0x87, 0xa1, 0x76, 0x5c, 0x8c, 0xdd, 0x3f, + 0x3e, 0x57, 0x1a, 0xe7, 0xcd, 0x17, 0xa6, 0x70, + 0xa0, 0x47, 0xff, 0x00, 0x2b, 0x82, 0x11, 0x28, + 0xb1, 0x91, 0x95, 0x74, 0x71, 0x12, 0x43, 0x1d, + 0x90, 0x19, 0x0b, 0x52, 0xc4, 0xa6, 0x33, 0x3a, + 0x7f, 0x32, 0xc2, 0x9c, 0x75, 0x24, 0xd2, 0x8f, + 0x9f, 0xfe, 0x1a, 0x29, 0x5c, 0x5e, 0x9f, 0xba, + 0x3f, 0xf0, 0xae, 0x4a, 0xa6, 0x22, 0x5c, 0x8f, + 0x99, 0x0a, 0x1c, 0xc8, 0x50, 0xe6, 0x42, 0x87, + 0x32, 0x14, 0x39, 0x90, 0xa0, 0x8c, 0x98, 0xd3, + 0x85, 0xbc, 0x58, 0xf5, 0x4d, 0xb3, 0x15, 0x31, + 0x29, 0xf8, 0xa2, 0x6b, 0x52, 0x13, 0x18, 0x70, + 0xba, 0xad, 0xd1, 0xde, 0x4a, 0xdb, 0x22, 0x8d, + 0xc6, 0x27, 0xbe, 0x24, 0xac, 0xd2, 0xce, 0x87, + 0x9b, 0x4e, 0x64, 0x28, 0x73, 0x21, 0x43, 0x99, + 0x0a, 0x1c, 0xc8, 0x50, 0xe6, 0x42, 0x87, 0x32, + 0x14, 0x10, 0x5e, 0x84, 0xc8, 0x8f, 0xf6, 0x23, + 0x3d, 0xf4, 0x88, 0x22, 0xf6, 0x5c, 0xfb, 0x78, + 0xd7, 0xd3, 0x85, 0xd6, 0xd8, 0x65, 0x8a, 0xb4, + 0x03, 0x4d, 0xd4, 0x1f, 0xf0, 0xf3, 0xa7, 0x23, + 0xe1, 0xe7, 0x4e, 0x47, 0xc3, 0xce, 0x9c, 0x8f, + 0x87, 0x9d, 0x39, 0x1f, 0x0f, 0x3a, 0x74, 0x19, + 0x74, 0x5e, 0x0e, 0xc3, 0x77, 0xc3, 0xce, 0x9d, + 0x0f, 0x87, 0x9d, 0x3a, 0x1f, 0x0f, 0x3a, 0x74, + 0x3e, 0x1e, 0x74, 0xe8, 0x7c, 0x3c, 0xe9, 0xd0, + 0xf8, 0x79, 0xd3, 0xa1, 0xf0, 0xf3, 0xa7, 0x40, + 0xbd, 0x14, 0x83, 0x14, 0xc5, 0xf0, 0xf1, 0xa7, + 0x23, 0xe1, 0xe7, 0x4e, 0x47, 0xc3, 0xce, 0x9c, + 0x8f, 0x87, 0x8d, 0x39, 0x1f, 0x0f, 0x3a, 0x72, + 0x3e, 0x1e, 0x74, 0xe4, 0x31, 0x30, 0xb4, 0x46, + 0x5a, 0xe9, 0xfb, 0xa4, 0xee, 0xe5, 0xdf, 0x75, + 0xfc, 0xa8, 0x3e, 0xd4, 0x8d, 0xab, 0x29, 0x2a, + 0x7e, 0x94, 0xa9, 0x3b, 0x0c, 0xb2, 0x88, 0xdc, + 0x1a, 0x55, 0x26, 0x51, 0x7b, 0x29, 0xa9, 0x4e, + 0x72, 0x6b, 0x7d, 0xbd, 0x19, 0xcb, 0x19, 0x88, + 0x40, 0x44, 0xa9, 0xa1, 0x32, 0x15, 0x2b, 0x29, + 0xfb, 0x7c, 0xac, 0x3f, 0x63, 0xff, 0x00, 0x62, + 0x35, 0xdf, 0x48, 0x7f, 0x74, 0x5e, 0xcb, 0x9f, + 0x6f, 0x1a, 0xfa, 0x77, 0xf6, 0x29, 0xfb, 0xd9, + 0x75, 0x6c, 0xbe, 0x5b, 0x0d, 0x73, 0x72, 0x76, + 0xc2, 0x25, 0xe3, 0x08, 0x97, 0x8c, 0x22, 0x5e, + 0x30, 0x89, 0x78, 0xc2, 0x25, 0xe1, 0x0c, 0x7a, + 0x7a, 0xdc, 0x51, 0xb1, 0xfd, 0x41, 0x3e, 0xfb, + 0x1b, 0xf5, 0x36, 0xc5, 0x69, 0xe2, 0xb3, 0x94, + 0xa5, 0x94, 0xc1, 0x32, 0x29, 0xba, 0xc6, 0xdd, + 0x48, 0x29, 0x4a, 0xb8, 0xac, 0xd5, 0x75, 0xf5, + 0x6f, 0xd4, 0xca, 0xdc, 0xd8, 0xc5, 0x34, 0x45, + 0x4c, 0x22, 0x5c, 0x30, 0x89, 0x78, 0xc2, 0x25, + 0xe3, 0x08, 0x97, 0x8c, 0x22, 0x5e, 0x0a, 0x81, + 0xcb, 0xcd, 0xbc, 0xb4, 0xe5, 0x36, 0x34, 0x8a, + 0x37, 0x19, 0x42, 0xf8, 0xa9, 0x07, 0x15, 0x20, + 0xe2, 0xa4, 0x1c, 0x54, 0x83, 0x8a, 0x90, 0x71, + 0x52, 0x0e, 0x2a, 0x41, 0xc5, 0x48, 0x38, 0xa9, + 0x07, 0x15, 0x20, 0xe2, 0xa4, 0x1c, 0x54, 0x83, + 0x8a, 0x90, 0x71, 0x52, 0x0e, 0x2a, 0x41, 0xc5, + 0x48, 0x38, 0xa9, 0x07, 0x15, 0x20, 0xe2, 0xa4, + 0x1c, 0x54, 0x82, 0x8d, 0xb7, 0x1d, 0x68, 0x8d, + 0x77, 0xd2, 0x1f, 0xdd, 0x17, 0xb2, 0xe7, 0xdb, + 0xc6, 0xbe, 0x9f, 0xfd, 0x8a, 0x7e, 0xe9, 0x92, + 0xf9, 0xe2, 0xe7, 0x28, 0xc5, 0x95, 0xea, 0xb1, + 0x91, 0xd5, 0x63, 0x23, 0xaa, 0xc6, 0x47, 0x55, + 0x8c, 0x8e, 0xab, 0x19, 0x1d, 0x56, 0x32, 0x3a, + 0xac, 0x64, 0x75, 0x58, 0xc8, 0xea, 0xb1, 0x91, + 0xd5, 0x63, 0x23, 0xaa, 0xc6, 0x47, 0x55, 0x8c, + 0x8e, 0xab, 0x19, 0x1d, 0x56, 0x32, 0x3a, 0xac, + 0x64, 0x75, 0x58, 0xc8, 0xea, 0xb1, 0x91, 0xd5, + 0x63, 0x23, 0xaa, 0xc6, 0x47, 0x55, 0x8c, 0x82, + 0x8a, 0x40, 0xe2, 0x5b, 0x39, 0x05, 0xa9, 0x72, + 0x5a, 0xec, 0x7b, 0x8a, 0xae, 0x40, 0xe4, 0x06, + 0xc4, 0xcb, 0x1d, 0xd6, 0xbc, 0x47, 0x1c, 0x99, + 0x92, 0xf2, 0x85, 0x8a, 0x2a, 0x65, 0xce, 0x44, + 0x29, 0x69, 0x5b, 0xca, 0x1c, 0xaa, 0x04, 0x74, + 0x31, 0x6a, 0xb3, 0x62, 0xae, 0xe4, 0xbe, 0xba, + 0x10, 0x7b, 0x42, 0xfe, 0x48, 0xbd, 0x1a, 0x8b, + 0x1a, 0x39, 0x41, 0xe5, 0x0a, 0xa6, 0x25, 0x9c, + 0xa1, 0xc9, 0x1c, 0x81, 0xc8, 0x04, 0xaf, 0x39, + 0x39, 0xae, 0x57, 0xd0, 0xf3, 0x23, 0x7d, 0xec, + 0x83, 0xf7, 0x45, 0xec, 0xb9, 0xf6, 0xf1, 0xaf, + 0xa7, 0xff, 0x00, 0x62, 0x9f, 0xbc, 0x8d, 0x4d, + 0xe4, 0xb0, 0xf2, 0x04, 0x69, 0xa4, 0xb7, 0xc3, + 0x9c, 0x59, 0x11, 0x99, 0x42, 0x52, 0x38, 0x29, + 0x25, 0x24, 0x6d, 0xe4, 0xe7, 0x53, 0xd8, 0x5d, + 0xe8, 0xea, 0x95, 0xb1, 0xdd, 0x70, 0x35, 0x9d, + 0xec, 0x92, 0xa3, 0x48, 0x4a, 0x7c, 0x79, 0x41, + 0x0d, 0x21, 0x54, 0x92, 0xd6, 0x57, 0x65, 0x46, + 0xa5, 0x6b, 0x77, 0x5d, 0x62, 0x76, 0xd7, 0x65, + 0x6a, 0x8a, 0x6e, 0x76, 0x39, 0x69, 0xcd, 0x8e, + 0xe9, 0xcf, 0xb9, 0xa9, 0xe2, 0xd5, 0xbd, 0x02, + 0x43, 0x5b, 0xd2, 0x36, 0xbb, 0x2f, 0x35, 0x2b, + 0x73, 0xaa, 0xda, 0x34, 0xc6, 0x1c, 0xdc, 0xaf, + 0xb8, 0xea, 0xd9, 0x74, 0x69, 0x6d, 0xe5, 0x48, + 0x5a, 0xed, 0xa5, 0x92, 0x0b, 0x56, 0x53, 0x6f, + 0x32, 0x83, 0x99, 0x41, 0x09, 0x58, 0xef, 0x47, + 0xd5, 0x37, 0xa3, 0xa4, 0x75, 0xe6, 0x89, 0xda, + 0x89, 0x90, 0x2a, 0xbc, 0xe6, 0xe3, 0x94, 0x1a, + 0x6c, 0x94, 0xd5, 0x88, 0x50, 0x2e, 0x4b, 0x20, + 0xb9, 0x5b, 0x9b, 0x1a, 0x8b, 0x69, 0x28, 0x52, + 0x7d, 0x9b, 0xd5, 0x9c, 0x73, 0x7a, 0xc2, 0x48, + 0x24, 0xd7, 0xa3, 0x9c, 0x9c, 0x1c, 0x1b, 0x15, + 0x26, 0x56, 0x91, 0xb0, 0xcb, 0x53, 0xd8, 0xf8, + 0x9d, 0x4b, 0x62, 0x37, 0x9d, 0x43, 0xb0, 0xc4, + 0x12, 0x5e, 0x65, 0x07, 0x32, 0x83, 0x99, 0x40, + 0x75, 0x77, 0x23, 0x8d, 0xf7, 0xb2, 0x0f, 0xdd, + 0x17, 0xb2, 0xe7, 0xdb, 0xc6, 0xbe, 0x9f, 0xfd, + 0x8a, 0x7e, 0xf3, 0x63, 0xbc, 0x96, 0x6e, 0x68, + 0x80, 0x18, 0xe4, 0x7a, 0xf9, 0x3b, 0xa9, 0xcc, + 0xe4, 0xbb, 0x2a, 0xb2, 0x3c, 0xf6, 0xe0, 0x71, + 0x88, 0xd5, 0xa2, 0xb5, 0xd6, 0x95, 0x7a, 0x90, + 0x28, 0x25, 0x89, 0xcd, 0xd5, 0x71, 0x92, 0x5d, + 0x33, 0x53, 0xe6, 0x4c, 0x9a, 0x16, 0x13, 0xc3, + 0x8c, 0xa7, 0xba, 0xb5, 0x73, 0x77, 0x5e, 0xd1, + 0x1e, 0x70, 0x4b, 0x72, 0x97, 0xd5, 0xf7, 0xab, + 0x52, 0xef, 0x6a, 0xab, 0xd2, 0xbc, 0xa6, 0x56, + 0xa8, 0xa9, 0x0a, 0x29, 0x2b, 0xc9, 0x91, 0x64, + 0xc7, 0x5e, 0xa0, 0xe7, 0x37, 0xf5, 0x04, 0xb0, + 0xd5, 0x4b, 0x82, 0x99, 0x02, 0x85, 0x26, 0x92, + 0xa2, 0x32, 0xb3, 0x74, 0x91, 0x29, 0xe5, 0xa6, + 0x7e, 0x79, 0x4c, 0xb5, 0x81, 0xcb, 0x9e, 0x39, + 0xe1, 0x23, 0xda, 0xa4, 0x0a, 0x5c, 0x67, 0x4f, + 0xb2, 0x1a, 0xcd, 0xe5, 0xac, 0xea, 0xc9, 0x72, + 0x9f, 0x49, 0x9d, 0xd2, 0x57, 0x51, 0xa5, 0x77, + 0x2d, 0x32, 0x68, 0xfa, 0x69, 0xa5, 0xcd, 0x5f, + 0x49, 0x38, 0x97, 0xa5, 0x29, 0x95, 0xdf, 0x38, + 0x7f, 0x30, 0xa2, 0x27, 0x72, 0x24, 0xae, 0xb5, + 0x99, 0x3e, 0xdc, 0xee, 0xe5, 0x3b, 0x91, 0xbc, + 0x5a, 0xbb, 0x50, 0xe5, 0x2e, 0x64, 0xdb, 0x3e, + 0x92, 0xd8, 0xe8, 0x9e, 0x7b, 0x26, 0x48, 0xe4, + 0xe1, 0x20, 0x5c, 0xea, 0xaf, 0x9e, 0x39, 0xe1, + 0x1d, 0xca, 0xdc, 0x55, 0xab, 0x26, 0xa9, 0x29, + 0x1b, 0xef, 0x64, 0x1f, 0xba, 0x2f, 0x65, 0xcf, + 0xb7, 0x8d, 0xf6, 0x1f, 0xd9, 0x92, 0x31, 0x1f, + 0x24, 0x8f, 0x9a, 0xdb, 0x20, 0x22, 0xfe, 0x1b, + 0xd8, 0x6b, 0xb1, 0x7a, 0x45, 0xf2, 0xa7, 0x57, + 0xf9, 0x3b, 0xbf, 0x0d, 0xf0, 0x71, 0x1f, 0x07, + 0x0d, 0xec, 0x70, 0xdf, 0x07, 0x0d, 0xec, 0x70, + 0xdf, 0x07, 0x11, 0xf0, 0x70, 0xde, 0xc7, 0x11, + 0xf0, 0x47, 0x96, 0x1c, 0xd7, 0x7c, 0xad, 0xe9, + 0xe2, 0x46, 0x77, 0x0d, 0xf0, 0x70, 0xde, 0xc7, + 0x11, 0xf0, 0x70, 0xde, 0xc7, 0x11, 0xf0, 0x70, + 0xde, 0xc4, 0x06, 0x2c, 0xee, 0x63, 0xb9, 0xb7, + 0xd4, 0xd3, 0x27, 0x4e, 0xf7, 0x21, 0x6b, 0xc8, + 0xcb, 0x0d, 0xd5, 0x42, 0xb1, 0x2f, 0x3d, 0x6e, + 0xc6, 0xc7, 0xd6, 0x53, 0x01, 0x0a, 0x19, 0xca, + 0x58, 0xdc, 0x7f, 0x3d, 0xdd, 0x21, 0xeb, 0x14, + 0xac, 0x46, 0xb5, 0x2d, 0xee, 0x8b, 0x5c, 0x10, + 0x16, 0x61, 0x8b, 0x5c, 0x4a, 0xa7, 0x57, 0x3e, + 0x89, 0x9b, 0xcc, 0x3d, 0x5a, 0xa2, 0x0a, 0x6b, + 0x5a, 0xb2, 0xcd, 0xf7, 0x34, 0xab, 0x6f, 0xe2, + 0xb3, 0x54, 0xbd, 0xa8, 0xcb, 0x31, 0x10, 0x4c, + 0xa9, 0x05, 0x49, 0xf3, 0xda, 0x93, 0x26, 0x71, + 0x74, 0xb9, 0xb1, 0x7c, 0x7a, 0x58, 0xb8, 0xb7, + 0x87, 0x5f, 0xaa, 0x47, 0x3b, 0xd7, 0xff, 0x00, + 0xdd, 0x17, 0xb2, 0xe7, 0xdb, 0xc6, 0xbb, 0x0f, + 0xec, 0xa2, 0xef, 0x24, 0x92, 0x49, 0x19, 0x32, + 0x3c, 0xa2, 0x4e, 0x32, 0x89, 0x38, 0xca, 0x24, + 0xe3, 0x28, 0x93, 0x8c, 0xa2, 0x4e, 0x21, 0xb2, + 0x97, 0xba, 0xc8, 0xd9, 0xa6, 0x0f, 0xc9, 0x9e, + 0x4c, 0x5a, 0xfe, 0x89, 0xa9, 0xd6, 0xf7, 0xd3, + 0xd5, 0x70, 0xe6, 0x17, 0xa6, 0x43, 0x21, 0x92, + 0x58, 0xca, 0xe5, 0x26, 0x90, 0x5a, 0x94, 0xd7, + 0x07, 0x6b, 0x2e, 0x72, 0x7d, 0x7d, 0xaa, 0x4c, + 0xa2, 0x4e, 0x32, 0x89, 0x38, 0xca, 0x24, 0xe3, + 0x28, 0x93, 0x8c, 0xa2, 0x4e, 0x32, 0x89, 0x38, + 0x6d, 0x56, 0xa9, 0x6c, 0x3c, 0x6a, 0x57, 0xd3, + 0x03, 0x2a, 0xb2, 0xec, 0x43, 0x49, 0x5a, 0x5a, + 0x44, 0xd8, 0x09, 0x51, 0x65, 0xe4, 0x14, 0x89, + 0x3a, 0x98, 0x99, 0xe9, 0x09, 0x7c, 0x64, 0x58, + 0x9d, 0x0a, 0x02, 0x3c, 0x13, 0xca, 0x63, 0xab, + 0x53, 0x10, 0xb1, 0xad, 0xca, 0x9b, 0x17, 0x2e, + 0x2e, 0xa9, 0x9d, 0x5d, 0x7c, 0xc7, 0xc7, 0x77, + 0xe3, 0xed, 0x58, 0xad, 0x6b, 0x59, 0xb2, 0x42, + 0x5d, 0xd2, 0xb8, 0x9a, 0xb9, 0xc1, 0x19, 0xa8, + 0xd6, 0x25, 0x4c, 0xf6, 0xb4, 0xf4, 0xb6, 0xbd, + 0xa7, 0x56, 0xe6, 0x85, 0x03, 0x62, 0x85, 0x07, + 0x2b, 0x3e, 0x3d, 0xf7, 0x03, 0xaf, 0xd5, 0x23, + 0x9d, 0xeb, 0xff, 0x00, 0xee, 0x8b, 0xd9, 0x73, + 0xed, 0xe3, 0x75, 0xff, 0x00, 0xc1, 0xe2, 0x3c, + 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, + 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, + 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, + 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, + 0x08, 0x32, 0x85, 0x1f, 0x36, 0x44, 0x72, 0x29, + 0x4f, 0xca, 0xd0, 0xbf, 0xa5, 0x3a, 0x51, 0xc5, + 0xc6, 0xd4, 0x97, 0x4c, 0x4c, 0x32, 0x44, 0x5c, + 0x9e, 0xfa, 0x22, 0x31, 0xe1, 0x0a, 0x84, 0xcd, + 0xea, 0x2c, 0xb9, 0x94, 0xe7, 0xc4, 0x5e, 0x06, + 0xca, 0x4d, 0x31, 0x61, 0x8e, 0x94, 0x53, 0x67, + 0xcc, 0xdc, 0x41, 0xa8, 0xa2, 0x82, 0x4e, 0x96, + 0x22, 0xa5, 0xa7, 0xa5, 0xe9, 0x30, 0xe9, 0x7a, + 0x4c, 0x3a, 0x5e, 0x93, 0x0e, 0x97, 0xa4, 0xc3, + 0xa5, 0xe9, 0x30, 0xe9, 0x7a, 0x4c, 0x3a, 0x5e, + 0x93, 0x0e, 0x97, 0xa4, 0xc3, 0xa5, 0xe9, 0x30, + 0xe9, 0x7a, 0x4c, 0x3a, 0x5e, 0x93, 0x0e, 0x97, + 0xa4, 0xc3, 0xa5, 0xe9, 0x30, 0xe9, 0x7a, 0x4c, + 0x3a, 0x5e, 0x93, 0x0e, 0x97, 0xa4, 0xc3, 0xa5, + 0xe9, 0x30, 0xe9, 0x7a, 0x4c, 0x3a, 0x5e, 0x93, + 0x0e, 0x97, 0xa4, 0xc1, 0xa1, 0xb7, 0x4b, 0xed, + 0x76, 0x75, 0xfa, 0xa4, 0x73, 0xbd, 0x7f, 0xfd, + 0xd1, 0x7b, 0x2e, 0x7d, 0xbc, 0x6f, 0xb0, 0xfe, + 0xcd, 0xb6, 0xdd, 0x7d, 0xc6, 0x10, 0xb2, 0xc2, + 0xf8, 0xa9, 0x47, 0x15, 0x28, 0xe2, 0xa5, 0x1c, + 0x54, 0xa3, 0x8a, 0x94, 0x71, 0x52, 0x8e, 0x2a, + 0x51, 0xc5, 0x4a, 0x38, 0xa9, 0x47, 0x15, 0x28, + 0xe2, 0xa5, 0x1c, 0x54, 0xa3, 0x8a, 0x94, 0x71, + 0x52, 0x8e, 0x2a, 0x51, 0xc5, 0x4a, 0x38, 0xa9, + 0x47, 0x15, 0x28, 0xe2, 0xa5, 0x16, 0x90, 0x51, + 0x57, 0x2d, 0x4c, 0xe1, 0xf9, 0x6a, 0x57, 0xd3, + 0x3f, 0xd2, 0xef, 0x43, 0x93, 0x13, 0x79, 0x36, + 0x94, 0x7c, 0xa4, 0x82, 0x08, 0x59, 0xfe, 0x88, + 0xf7, 0xdc, 0x0e, 0xbf, 0x54, 0x8e, 0x77, 0xaf, + 0xdf, 0xc9, 0x17, 0xb2, 0xe7, 0xdb, 0xc6, 0xeb, + 0xff, 0x00, 0x87, 0xc4, 0x78, 0x8f, 0x11, 0xe2, + 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, + 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, + 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, + 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x1e, 0xb2, 0xe6, + 0x96, 0x3a, 0xa9, 0xad, 0x6b, 0xc8, 0x1c, 0x81, + 0xc8, 0x1c, 0x81, 0xc8, 0x1c, 0x80, 0x9f, 0xcf, + 0x56, 0x7a, 0xd6, 0x19, 0x03, 0x72, 0x7e, 0x40, + 0x38, 0xa5, 0x69, 0xd3, 0xf2, 0x07, 0x20, 0x72, + 0x07, 0x20, 0x72, 0x07, 0x20, 0x72, 0x07, 0x20, + 0x72, 0x07, 0x20, 0x45, 0x5d, 0x8d, 0x4e, 0xee, + 0x79, 0x7e, 0x51, 0xd3, 0x38, 0xe3, 0xe3, 0xf3, + 0x57, 0xa7, 0xb3, 0x51, 0xe9, 0xec, 0xd4, 0x7a, + 0x7b, 0x35, 0x1e, 0x9e, 0xcd, 0x47, 0xa7, 0xb3, + 0x51, 0xe9, 0xec, 0xd4, 0x7a, 0x7b, 0x35, 0x1e, + 0x9e, 0xcd, 0x47, 0xa7, 0xb3, 0x50, 0xb2, 0x26, + 0xf8, 0xe1, 0x6b, 0xac, 0x3a, 0x68, 0xe6, 0x6b, + 0xbc, 0x42, 0x6a, 0xea, 0x77, 0xa7, 0xb3, 0x51, + 0xe9, 0xec, 0xd4, 0x7a, 0x7b, 0x35, 0x1e, 0x9e, + 0xcd, 0x47, 0xa7, 0xb3, 0x51, 0xe9, 0xec, 0xd4, + 0x7a, 0x7b, 0x35, 0x1e, 0x9e, 0xcd, 0x43, 0x2c, + 0x0e, 0x60, 0x9d, 0xe9, 0xd7, 0xea, 0x91, 0xde, + 0xf1, 0xfb, 0xf9, 0x22, 0xf6, 0x5c, 0xfb, 0x78, + 0xdf, 0x63, 0xfd, 0x99, 0x41, 0x9e, 0x54, 0x47, + 0x97, 0x41, 0xcb, 0xa0, 0xe5, 0xd0, 0x72, 0xe8, + 0x39, 0x74, 0x1c, 0xba, 0x0e, 0x5d, 0x04, 0x41, + 0x4d, 0x2e, 0x94, 0x32, 0x3c, 0x38, 0x2b, 0x9f, + 0xb4, 0x32, 0x46, 0x4b, 0x66, 0xa2, 0xe6, 0x24, + 0x51, 0xe7, 0xb6, 0x36, 0xe6, 0x96, 0x9b, 0x99, + 0xd8, 0x93, 0xbb, 0x49, 0xfa, 0x19, 0x91, 0x7e, + 0x5d, 0x07, 0x2e, 0x83, 0x97, 0x41, 0xcb, 0xa0, + 0xe5, 0xd0, 0x72, 0xe8, 0x39, 0x74, 0x11, 0xb5, + 0x54, 0xac, 0x89, 0x6f, 0x79, 0xa9, 0x74, 0xa5, + 0x5b, 0x36, 0xda, 0x36, 0xda, 0x36, 0xda, 0x36, + 0xda, 0x36, 0xda, 0x23, 0xec, 0xf6, 0x3c, 0xad, + 0x5a, 0xda, 0x92, 0xe2, 0x6b, 0x1b, 0x78, 0xb6, + 0xd7, 0x18, 0xa2, 0xf4, 0x27, 0x15, 0x17, 0x51, + 0x54, 0x15, 0x22, 0xc4, 0xaa, 0xd5, 0xb4, 0xb3, + 0x52, 0x94, 0x8b, 0x3e, 0x54, 0xab, 0x23, 0xaf, + 0x06, 0x1f, 0x56, 0x37, 0x3a, 0x20, 0xdb, 0x68, + 0xdb, 0x68, 0xdb, 0x68, 0xdb, 0x68, 0xdb, 0x68, + 0x8f, 0x52, 0x99, 0x0b, 0xaf, 0xd5, 0x23, 0xbd, + 0xe3, 0xf7, 0xf2, 0x45, 0xec, 0xb9, 0xf6, 0xf1, + 0xbe, 0xc7, 0xfb, 0x32, 0xc4, 0xe7, 0xac, 0x85, + 0xf3, 0xc7, 0x3c, 0x73, 0xc7, 0x3c, 0x73, 0xc7, + 0x3c, 0x73, 0xc3, 0x54, 0x80, 0xd6, 0x87, 0x25, + 0xfa, 0xae, 0xe8, 0xac, 0x86, 0xbd, 0x50, 0x79, + 0x69, 0x6c, 0x6b, 0xd5, 0x67, 0x56, 0xb4, 0x0d, + 0xfa, 0x96, 0xf2, 0x84, 0xc6, 0x09, 0xd3, 0x93, + 0xec, 0xa3, 0x52, 0x64, 0x28, 0xee, 0x64, 0xe7, + 0x8e, 0x78, 0xe7, 0x8e, 0x78, 0xe7, 0x8e, 0x78, + 0xe7, 0x88, 0x25, 0x8a, 0x5d, 0x25, 0xaa, 0x6f, + 0xa1, 0x8a, 0x35, 0x2b, 0xe9, 0x9f, 0x2b, 0x3d, + 0xa9, 0x6e, 0x50, 0x85, 0xd8, 0x97, 0x27, 0x74, + 0xaf, 0xa9, 0x15, 0xda, 0x73, 0xe3, 0x3d, 0xd6, + 0xb0, 0xbd, 0xb5, 0x47, 0x50, 0xac, 0x24, 0xa4, + 0xea, 0xd3, 0x39, 0xa0, 0xb1, 0xc5, 0x73, 0xb2, + 0x13, 0x49, 0x5c, 0xf0, 0xd6, 0xe1, 0x49, 0x0b, + 0xa1, 0x4e, 0x49, 0xfe, 0x58, 0xf7, 0xdc, 0x0e, + 0xbf, 0x54, 0x8f, 0x77, 0x8f, 0xbf, 0xc9, 0x17, + 0xb2, 0xe7, 0xdb, 0xc7, 0x3b, 0x1f, 0xec, 0xb7, + 0x9a, 0x61, 0x2b, 0x64, 0x4e, 0x2c, 0xc9, 0xdf, + 0xfa, 0xab, 0x30, 0xea, 0xac, 0xc3, 0xaa, 0xb3, + 0x0e, 0xaa, 0xcc, 0x13, 0x51, 0x90, 0xe6, 0xd7, + 0x33, 0x5a, 0x9a, 0xd4, 0xf5, 0x66, 0x60, 0xa4, + 0xf6, 0xb4, 0xa9, 0x56, 0x28, 0x6b, 0x41, 0x7f, + 0x56, 0x66, 0x1d, 0x59, 0x98, 0x35, 0x9a, 0xd8, + 0xea, 0xbc, 0xa2, 0xa3, 0xc6, 0xb6, 0x5c, 0x42, + 0x2b, 0x58, 0x49, 0x46, 0xd6, 0x65, 0xf7, 0xb9, + 0xb4, 0x97, 0x7f, 0x55, 0x66, 0x1d, 0x55, 0x98, + 0x75, 0x56, 0x61, 0xd5, 0x59, 0x84, 0x35, 0xcc, + 0xa5, 0x2c, 0x82, 0x6a, 0xea, 0x4b, 0x73, 0x5e, + 0x4e, 0x8c, 0x64, 0xe8, 0xc6, 0x4e, 0x8c, 0x37, + 0xbe, 0x33, 0xa8, 0xb1, 0xd5, 0xcc, 0x86, 0xd5, + 0x88, 0x1d, 0x49, 0x70, 0x39, 0x33, 0x92, 0xa4, + 0xa8, 0x16, 0x48, 0x11, 0xa2, 0x56, 0xb1, 0xf0, + 0xa4, 0x07, 0xab, 0x77, 0x21, 0x1a, 0x66, 0xe7, + 0x42, 0x5c, 0xad, 0xca, 0x11, 0x0c, 0xa1, 0x10, + 0xbd, 0x63, 0x55, 0x8d, 0xc6, 0x49, 0x90, 0x58, + 0x66, 0x50, 0x88, 0x65, 0x08, 0x86, 0x4e, 0x8c, + 0x64, 0xe8, 0xc6, 0x4e, 0x8c, 0x33, 0xc9, 0x52, + 0x5e, 0xf0, 0xeb, 0xf5, 0x48, 0xf7, 0x78, 0xfb, + 0xfc, 0x91, 0x7b, 0x2e, 0x7d, 0xbc, 0x73, 0xb2, + 0xfe, 0xca, 0x4e, 0xea, 0x59, 0x6d, 0x6d, 0x95, + 0x7c, 0x88, 0x54, 0x22, 0x4d, 0x15, 0xa9, 0x07, + 0x26, 0xaa, 0x4e, 0x5d, 0x15, 0x4c, 0x93, 0xa0, + 0x4e, 0xa5, 0xd1, 0x63, 0x89, 0x65, 0x1c, 0xe0, + 0xa5, 0x59, 0x72, 0xf3, 0x4d, 0xa2, 0x48, 0x8b, + 0x62, 0x8b, 0x15, 0xa7, 0xfb, 0x36, 0xea, 0x24, + 0x35, 0x49, 0x8d, 0xa6, 0xbc, 0xbb, 0xb8, 0x96, + 0x98, 0xa7, 0x1f, 0x93, 0x4f, 0xfe, 0x8a, 0x35, + 0x22, 0x95, 0xe9, 0x9f, 0x9c, 0x56, 0x3f, 0x73, + 0xd2, 0x86, 0xe9, 0x61, 0x8c, 0xce, 0xcc, 0xeb, + 0xad, 0x2e, 0x56, 0x82, 0xf4, 0xd6, 0xbc, 0x46, + 0x4a, 0x5d, 0x72, 0x57, 0x4b, 0xe4, 0x87, 0x8b, + 0x16, 0x2b, 0xa5, 0x49, 0xaa, 0xeb, 0x93, 0x5f, + 0x5b, 0xa8, 0xb6, 0x45, 0x90, 0x52, 0x29, 0xff, + 0x00, 0xf3, 0x0a, 0xdc, 0x16, 0x10, 0xfc, 0xd8, + 0xa4, 0xc5, 0x68, 0x5c, 0x9c, 0x97, 0xa3, 0x69, + 0xfc, 0xd8, 0x69, 0x5b, 0x9f, 0x9d, 0x7e, 0xa9, + 0x1f, 0xef, 0x1f, 0x3f, 0x9a, 0x2f, 0x65, 0xcf, + 0xb7, 0x8e, 0x76, 0x5f, 0xda, 0x91, 0xc7, 0x1b, + 0xe4, 0xe6, 0xfa, 0x7a, 0x78, 0xf4, 0xf4, 0xf1, + 0xe9, 0xe9, 0xe3, 0xd3, 0xd3, 0xc7, 0xa7, 0x87, + 0x8f, 0x4e, 0xce, 0x1e, 0x9d, 0x9c, 0x3d, 0x3c, + 0x3a, 0x83, 0xd3, 0xb3, 0x87, 0xa7, 0x67, 0x0f, + 0x4e, 0xce, 0x1e, 0x9d, 0x9c, 0x3d, 0x3c, 0x3c, + 0x7a, 0x76, 0x77, 0x87, 0xa7, 0x67, 0x0f, 0x4f, + 0x4f, 0x1e, 0x9e, 0x9e, 0x3d, 0x3d, 0x3c, 0x7a, + 0x7a, 0x78, 0xb3, 0x4f, 0x0c, 0xad, 0xc9, 0xd2, + 0xb7, 0xb4, 0xb6, 0x85, 0x49, 0x1b, 0xde, 0x5b, + 0x6f, 0xd3, 0xc3, 0x69, 0x77, 0xa7, 0xa7, 0x8f, + 0x4f, 0x4f, 0x15, 0xd3, 0xb3, 0xaa, 0x3d, 0x3c, + 0x3a, 0x83, 0xd3, 0xc3, 0xc7, 0xa7, 0x67, 0x0f, + 0x4e, 0xce, 0x1e, 0x9d, 0x1a, 0x3d, 0x3b, 0x38, + 0x7a, 0x76, 0x77, 0x89, 0x10, 0x15, 0x09, 0xce, + 0x5f, 0x13, 0x52, 0xb4, 0x9f, 0x4f, 0x0f, 0x1e, + 0x9d, 0x9c, 0x3d, 0x3b, 0x38, 0x7a, 0x76, 0x70, + 0xf4, 0xf4, 0xf1, 0xe9, 0xe9, 0xe3, 0xd3, 0xd3, + 0xc4, 0x76, 0x2c, 0xdf, 0x1d, 0x51, 0x5a, 0xd6, + 0xea, 0xc7, 0xfb, 0xc7, 0xcf, 0xe6, 0x8b, 0xd9, + 0x73, 0xed, 0xe3, 0x9d, 0x90, 0x56, 0xe6, 0x99, + 0x1d, 0x72, 0x21, 0x91, 0x0c, 0x88, 0x64, 0x43, + 0x22, 0x19, 0x10, 0xc8, 0x86, 0x44, 0x32, 0x21, + 0x91, 0x0c, 0x88, 0x64, 0x43, 0x22, 0x19, 0x10, + 0xc8, 0x86, 0x44, 0x32, 0x21, 0x91, 0x0c, 0x88, + 0x64, 0x43, 0x22, 0x19, 0x10, 0xc8, 0xbf, 0xff, + 0x00, 0x42, 0x3f, 0xde, 0x3e, 0x7f, 0x34, 0x5e, + 0xcb, 0x9f, 0x6f, 0x1c, 0xec, 0xd6, 0xa8, 0xe2, + 0xa6, 0xba, 0xeb, 0xaf, 0xbb, 0xfa, 0xe9, 0x8b, + 0x4b, 0x69, 0x37, 0xcb, 0x89, 0xb6, 0xec, 0xc6, + 0xe1, 0x98, 0xdc, 0x33, 0x1b, 0x86, 0x63, 0x70, + 0xcc, 0x6e, 0x19, 0x8d, 0xc3, 0x31, 0xb8, 0x66, + 0x37, 0x0c, 0xc6, 0xe1, 0x98, 0xdc, 0x33, 0x1b, + 0x86, 0x63, 0x70, 0xcc, 0x6e, 0x19, 0x8d, 0xc3, + 0x31, 0xb8, 0x66, 0x37, 0x0c, 0xc6, 0xe1, 0x98, + 0xdc, 0x33, 0x1b, 0x86, 0x63, 0x70, 0x42, 0xb5, + 0xbd, 0xfa, 0xca, 0x52, 0xb7, 0x55, 0xc1, 0xd9, + 0xb5, 0x90, 0xdc, 0xb6, 0xa3, 0x2d, 0xa8, 0xcb, + 0x6a, 0x32, 0xda, 0x8c, 0xb6, 0xa3, 0x2d, 0xa8, + 0xcb, 0x6a, 0x32, 0xda, 0x8c, 0xb6, 0xa3, 0x2d, + 0xa8, 0xcb, 0x6a, 0x32, 0xda, 0x8c, 0xb6, 0xa3, + 0x2d, 0xa8, 0xcb, 0x6a, 0x32, 0xda, 0x8c, 0xb6, + 0xa3, 0x2d, 0xa8, 0xcb, 0x6a, 0x32, 0xda, 0x8a, + 0x4b, 0x6d, 0xf1, 0xaf, 0x09, 0x7a, 0x26, 0x0e, + 0xed, 0xef, 0xf9, 0xa2, 0xf6, 0x5c, 0xfb, 0x78, + 0xe7, 0x66, 0xf7, 0xd8, 0xa7, 0x20, 0xab, 0xac, + 0xbe, 0x48, 0xc5, 0x6d, 0x72, 0x66, 0x71, 0x93, + 0x33, 0x8c, 0x99, 0x9c, 0x64, 0xcc, 0xe3, 0x26, + 0x67, 0x19, 0x33, 0x38, 0xc9, 0x99, 0xc6, 0x4c, + 0xce, 0x32, 0x66, 0x71, 0x93, 0x33, 0x8c, 0x99, + 0x9c, 0x64, 0xcc, 0xe3, 0x26, 0x67, 0x19, 0x33, + 0x38, 0xc9, 0x99, 0xc6, 0x4c, 0xce, 0x32, 0x66, + 0x71, 0x93, 0x33, 0x8c, 0x99, 0x9c, 0x64, 0xcc, + 0xe1, 0x29, 0xed, 0x4f, 0x7f, 0x94, 0x84, 0xcf, + 0x2a, 0x23, 0xc9, 0x1c, 0x8f, 0x10, 0xa8, 0xe8, + 0x9c, 0x5d, 0x52, 0x28, 0xfd, 0x1e, 0x14, 0x97, + 0x0d, 0x75, 0xbd, 0xe2, 0xd8, 0x02, 0xeb, 0xef, + 0x6e, 0x86, 0x2f, 0x5c, 0x9d, 0x74, 0x21, 0xd5, + 0x0a, 0x47, 0x58, 0x72, 0xf6, 0xa4, 0x31, 0x02, + 0xd2, 0x5f, 0x1f, 0x7a, 0x8e, 0xf5, 0x23, 0x2d, + 0x85, 0x38, 0x18, 0xe4, 0x73, 0x42, 0x94, 0xcc, + 0x8e, 0x30, 0x77, 0x16, 0xf2, 0x15, 0x43, 0xaa, + 0xe8, 0x43, 0x3c, 0x49, 0xc5, 0xdd, 0x1d, 0x91, + 0x55, 0x7d, 0x19, 0x5c, 0x64, 0xf4, 0x68, 0xde, + 0x62, 0x76, 0xaa, 0x7e, 0x77, 0x48, 0xa5, 0x95, + 0xc7, 0x92, 0x20, 0x47, 0xef, 0x96, 0xb5, 0xfd, + 0x4d, 0xd1, 0x4f, 0xff, 0x00, 0x27, 0xc9, 0x1c, + 0x91, 0xc9, 0x1c, 0x91, 0xc9, 0x1c, 0x91, 0xc9, + 0x10, 0xa6, 0x16, 0xc7, 0x84, 0x8d, 0xcc, 0x6e, + 0xce, 0xaa, 0x96, 0x45, 0x1f, 0xd1, 0x39, 0xb3, + 0x45, 0xaf, 0xa3, 0xf3, 0x4c, 0x4d, 0xf5, 0xf0, + 0x96, 0xa8, 0xcb, 0xeb, 0xba, 0xa7, 0xb6, 0x97, + 0x18, 0xf9, 0xdc, 0x91, 0xc9, 0x1c, 0x91, 0xc9, + 0x1c, 0x91, 0xc9, 0x1c, 0x91, 0x0d, 0x37, 0xcc, + 0x69, 0x60, 0xee, 0xde, 0xff, 0x00, 0x9a, 0x2f, + 0x65, 0xcf, 0xb7, 0x8e, 0xf6, 0x6f, 0x7d, 0x8c, + 0x84, 0xdf, 0x2a, 0x25, 0xc9, 0x1c, 0x90, 0x89, + 0x9d, 0x89, 0x2b, 0x53, 0x93, 0x19, 0xe4, 0xbe, + 0x28, 0x63, 0x7e, 0x4a, 0xe0, 0x64, 0x72, 0x44, + 0x4d, 0xae, 0xf0, 0xa7, 0xb4, 0x6e, 0x89, 0xa3, + 0x52, 0x45, 0xa7, 0xa5, 0x6b, 0xb2, 0xf6, 0x36, + 0x36, 0xe6, 0x03, 0xd8, 0x9e, 0x23, 0xd6, 0xda, + 0x66, 0x3b, 0x22, 0xea, 0x2a, 0x19, 0x56, 0x24, + 0x6c, 0x5f, 0x1e, 0x91, 0x36, 0x23, 0x77, 0x88, + 0x38, 0x93, 0x44, 0x0c, 0xcf, 0x6e, 0x69, 0x09, + 0x61, 0x7e, 0x52, 0xdc, 0x74, 0x75, 0xf5, 0x0d, + 0xab, 0xe2, 0x6e, 0x77, 0x3e, 0x1f, 0x71, 0xc9, + 0x8e, 0xe4, 0x88, 0xa2, 0x9a, 0xe4, 0xa2, 0x64, + 0x65, 0x4b, 0x85, 0x73, 0xc7, 0x3c, 0x1a, 0xf9, + 0x04, 0x92, 0xaa, 0x6d, 0x92, 0xc5, 0x1c, 0x9b, + 0xf3, 0x68, 0xe1, 0x4b, 0x90, 0xcb, 0x59, 0x0a, + 0x21, 0xca, 0x5c, 0xc8, 0x72, 0x25, 0x73, 0x28, + 0xf9, 0x8b, 0x9f, 0xa6, 0x91, 0x65, 0x71, 0xc6, + 0x09, 0x89, 0x4c, 0xf1, 0x18, 0xb4, 0xea, 0xa4, + 0x49, 0x13, 0xce, 0x63, 0xc9, 0x1e, 0xe3, 0xb2, + 0x16, 0xeb, 0x63, 0x12, 0x37, 0x98, 0xab, 0x03, + 0xd2, 0x39, 0x93, 0x09, 0x72, 0x66, 0x39, 0xcc, + 0x7e, 0xe6, 0xa7, 0xd9, 0x73, 0x53, 0x94, 0x6d, + 0xe2, 0x63, 0x18, 0xbd, 0x9e, 0x93, 0x98, 0xed, + 0xd2, 0x49, 0x8b, 0xe3, 0x3a, 0xf9, 0x07, 0x3c, + 0x69, 0xaa, 0xbf, 0x32, 0x6e, 0xd5, 0xf5, 0x47, + 0x75, 0xb5, 0xb5, 0xdf, 0x9c, 0x39, 0xc3, 0x9c, + 0x39, 0xc3, 0x9c, 0x39, 0xc3, 0x9c, 0x2b, 0x2c, + 0x86, 0x47, 0x9a, 0x17, 0x3c, 0x31, 0x27, 0x71, + 0x6d, 0x77, 0x8e, 0x9e, 0x42, 0x57, 0xf6, 0x82, + 0x97, 0x22, 0x56, 0xcb, 0x23, 0x64, 0x53, 0x23, + 0x61, 0x97, 0x59, 0xa9, 0xaa, 0x4b, 0x24, 0xee, + 0x70, 0xe7, 0x0e, 0x70, 0xe7, 0x0e, 0x70, 0xe7, + 0x0e, 0x70, 0xd3, 0xa3, 0xfc, 0xe6, 0xb6, 0x0e, + 0xed, 0xef, 0xf9, 0xa2, 0xf6, 0x5c, 0xfb, 0x78, + 0xef, 0x66, 0xf7, 0xd9, 0x4d, 0x0d, 0xf2, 0x61, + 0xdc, 0xe1, 0xce, 0x05, 0x37, 0x5f, 0x3d, 0x8f, + 0xb1, 0x74, 0x86, 0xc9, 0x01, 0x06, 0xde, 0xd2, + 0xa8, 0xc7, 0xc5, 0x6a, 0x23, 0xce, 0xf7, 0xac, + 0x48, 0xe4, 0xcb, 0x73, 0x84, 0xa6, 0x28, 0xfe, + 0xf0, 0x81, 0x7b, 0x64, 0x6e, 0x47, 0x7b, 0x2c, + 0x0a, 0x21, 0x39, 0x31, 0xf6, 0x50, 0x53, 0x87, + 0x19, 0xf5, 0x89, 0xc4, 0xc5, 0x51, 0x37, 0xae, + 0x4b, 0x45, 0xa9, 0xdd, 0x8f, 0xcd, 0x62, 0x8e, + 0x49, 0x94, 0xc7, 0x9e, 0x9d, 0xad, 0x32, 0x2e, + 0xf4, 0x5d, 0x11, 0xb4, 0x26, 0x54, 0x72, 0x99, + 0x24, 0xe1, 0x62, 0x2b, 0x65, 0x5c, 0xe1, 0x0d, + 0x59, 0xbe, 0x56, 0x28, 0x99, 0x23, 0x9a, 0x55, + 0xf0, 0x96, 0x94, 0x2b, 0xb1, 0x36, 0x81, 0x89, + 0xb4, 0x0c, 0x4d, 0xa0, 0x62, 0x6d, 0x03, 0x13, + 0x68, 0x18, 0x9b, 0x40, 0xc4, 0x9a, 0x6a, 0x2b, + 0x11, 0x6a, 0xa5, 0x71, 0x36, 0x81, 0x89, 0xb4, + 0x0c, 0x4d, 0xa0, 0x11, 0x1a, 0x6c, 0x4c, 0x7b, + 0x93, 0x2a, 0x47, 0x75, 0xf8, 0x9b, 0x40, 0xc4, + 0xda, 0x06, 0x26, 0xd0, 0x31, 0x36, 0x81, 0x89, + 0xb4, 0x0c, 0x4d, 0xa0, 0x62, 0x6d, 0x02, 0x23, + 0x17, 0x6d, 0x8d, 0x20, 0xb2, 0xfb, 0x8b, 0xbe, + 0x6b, 0x03, 0xb5, 0x72, 0xac, 0x19, 0xd8, 0x60, + 0xce, 0xc3, 0x06, 0x76, 0x18, 0x33, 0xb0, 0xc1, + 0x9d, 0x86, 0x0c, 0xec, 0x30, 0x67, 0x61, 0x83, + 0x3b, 0x0c, 0x19, 0xd8, 0x60, 0xce, 0xc3, 0x06, + 0x76, 0x18, 0x33, 0xb0, 0x8d, 0xa6, 0x94, 0x46, + 0x6d, 0x91, 0x34, 0xca, 0x65, 0x0e, 0x38, 0x33, + 0xb0, 0xc1, 0x9d, 0x86, 0x0c, 0xec, 0x30, 0x67, + 0x61, 0x83, 0x3b, 0x0c, 0x19, 0xd8, 0x59, 0x04, + 0x74, 0xba, 0xe6, 0xd6, 0x02, 0xa1, 0xcd, 0x8c, + 0x3d, 0xdb, 0xd7, 0xf3, 0x45, 0xec, 0xb9, 0xf6, + 0xf1, 0xda, 0xff, 0x00, 0xe3, 0x7b, 0xaf, 0xfe, + 0x27, 0x36, 0xd4, 0xef, 0xb1, 0xe3, 0x74, 0xea, + 0x78, 0x5d, 0xde, 0x9f, 0x4f, 0xc5, 0x74, 0xf2, + 0x7b, 0x51, 0xe9, 0xec, 0xf8, 0x7a, 0x79, 0x3d, + 0xf0, 0xf4, 0xf2, 0x7a, 0x3d, 0x3b, 0x9e, 0x8a, + 0xe9, 0xe4, 0xf6, 0xa3, 0xd3, 0xd9, 0xf0, 0xf4, + 0xf6, 0x7c, 0x3d, 0x3d, 0x9f, 0x0f, 0x4f, 0x27, + 0xa1, 0xb6, 0x13, 0x3e, 0x6e, 0x71, 0x7a, 0x87, + 0xcf, 0x9e, 0x1e, 0x3d, 0x3c, 0x9e, 0x8f, 0x4f, + 0x27, 0xa3, 0xd3, 0xd9, 0xf0, 0xf4, 0xee, 0x78, + 0x3d, 0x3c, 0x9e, 0x8f, 0x4f, 0x67, 0xc3, 0xd3, + 0xe9, 0xf8, 0x86, 0x41, 0x5c, 0xe3, 0xcb, 0x82, + 0x2e, 0xf2, 0x55, 0xf7, 0x4f, 0xcd, 0x14, 0xa7, + 0xff, 0x00, 0x29, 0x7b, 0x2d, 0xb2, 0x07, 0x4a, + 0x35, 0x90, 0xd7, 0x36, 0x4c, 0x59, 0x7e, 0x63, + 0xf3, 0x19, 0xa9, 0xe2, 0xef, 0x84, 0xad, 0x4e, + 0xbd, 0x6b, 0x9a, 0xeb, 0xe2, 0x9f, 0x3b, 0x0f, + 0xd8, 0xe3, 0x51, 0xfe, 0x99, 0xf9, 0xb1, 0xb6, + 0xb4, 0xb9, 0x5c, 0xa1, 0x91, 0xd1, 0x22, 0x76, + 0xc6, 0x94, 0xeb, 0x5b, 0x6c, 0x69, 0x6b, 0x56, + 0xdc, 0x8a, 0x1c, 0xe2, 0x71, 0x6a, 0xd2, 0x28, + 0x40, 0xa4, 0xa6, 0x94, 0xf7, 0xc7, 0x97, 0x36, + 0x34, 0xf4, 0xcc, 0x70, 0xf3, 0xd8, 0xdc, 0xd8, + 0x2f, 0x40, 0xd3, 0x1e, 0x61, 0x4c, 0xee, 0x9a, + 0xc4, 0xac, 0xc9, 0x9a, 0x56, 0xb0, 0xa3, 0x67, + 0xa7, 0x44, 0xbd, 0x79, 0xbf, 0x9d, 0xff, 0x00, + 0xc2, 0x49, 0xf5, 0xb6, 0x1e, 0xed, 0xeb, 0xf9, + 0xa2, 0xf6, 0x5c, 0xfb, 0x78, 0xf7, 0x68, 0xf7, + 0xd9, 0xba, 0xfd, 0xb9, 0xb2, 0xd1, 0xb2, 0xc1, + 0xb2, 0xc1, 0xb2, 0xc1, 0xb2, 0xc1, 0xb2, 0xc1, + 0x48, 0xd1, 0x15, 0x47, 0x72, 0x33, 0xac, 0x16, + 0xc7, 0x8c, 0xbe, 0x39, 0x7c, 0x3d, 0x51, 0x65, + 0xad, 0x6b, 0x24, 0x84, 0xb6, 0x46, 0x08, 0xbc, + 0xe4, 0xd1, 0x05, 0x0a, 0x9d, 0x98, 0xe1, 0x8a, + 0x1f, 0x13, 0xa5, 0x60, 0x35, 0x53, 0x2e, 0xcb, + 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, 0x06, 0xcb, + 0x06, 0xcb, 0x03, 0x27, 0xf8, 0x87, 0x84, 0x5d, + 0xe4, 0xa4, 0x83, 0xeb, 0x28, 0xe3, 0x9e, 0x38, + 0xe7, 0x8e, 0x39, 0xe3, 0x8e, 0x78, 0xe3, 0x9e, + 0x38, 0xe7, 0x86, 0xc5, 0x07, 0xb7, 0x1e, 0xb5, + 0xc1, 0x61, 0xf6, 0xf9, 0xae, 0x9c, 0x9b, 0xde, + 0x0b, 0xf3, 0x6d, 0x78, 0x5b, 0x57, 0x1a, 0x3f, + 0xab, 0xea, 0xc6, 0xa8, 0x52, 0x6b, 0x4f, 0x1c, + 0xf1, 0xc7, 0x3c, 0x71, 0xcf, 0x1c, 0x73, 0xc7, + 0x1c, 0xf1, 0xc7, 0x3c, 0x71, 0xcf, 0x0c, 0x76, + 0xdd, 0x6c, 0x20, 0x6a, 0x3f, 0xd3, 0x3f, 0x36, + 0xc5, 0xcd, 0x68, 0xd9, 0x9d, 0x5e, 0x1b, 0x15, + 0xb0, 0x35, 0xae, 0x25, 0x1a, 0x7b, 0x5e, 0x1a, + 0x50, 0x24, 0xab, 0x93, 0x3a, 0x64, 0x0f, 0x46, + 0x12, 0xe2, 0x62, 0x55, 0xa4, 0x14, 0xce, 0xee, + 0xe8, 0xd9, 0x42, 0xd2, 0xbf, 0x36, 0xda, 0x9e, + 0x42, 0xf6, 0xde, 0xee, 0x85, 0x24, 0x92, 0xf6, + 0xa4, 0x2e, 0xab, 0x23, 0x8e, 0x05, 0xaf, 0x7c, + 0x42, 0xf5, 0x6b, 0x5c, 0x85, 0xad, 0xb1, 0x51, + 0xb7, 0x52, 0xf3, 0x3f, 0x2b, 0xff, 0x00, 0x84, + 0x93, 0xeb, 0x6c, 0x5d, 0xdb, 0xcf, 0xb8, 0x8b, + 0xd9, 0x73, 0xed, 0xe3, 0xdd, 0xa3, 0xd7, 0x66, + 0xeb, 0xf6, 0xe7, 0xcd, 0x6d, 0xd7, 0xf4, 0xc7, + 0x49, 0x52, 0x35, 0xd1, 0x98, 0xd5, 0x0a, 0x59, + 0x1e, 0x3d, 0x69, 0x0e, 0x28, 0x17, 0x34, 0x18, + 0xda, 0x91, 0xd1, 0xeb, 0xa6, 0x99, 0x73, 0xa5, + 0x13, 0x46, 0x15, 0xac, 0x21, 0xad, 0xc9, 0xe7, + 0x8a, 0x8d, 0xb3, 0xe6, 0x65, 0xfb, 0x40, 0x22, + 0xef, 0x24, 0x92, 0xd9, 0x42, 0x79, 0x16, 0x69, + 0x2d, 0x19, 0xa4, 0xb4, 0x66, 0x92, 0xd1, 0x9a, + 0x4b, 0x46, 0x69, 0x2d, 0x08, 0x64, 0xf3, 0x47, + 0x15, 0x8f, 0x8f, 0x73, 0x06, 0x97, 0x54, 0xf2, + 0x39, 0xd2, 0x95, 0xe7, 0x3e, 0xc9, 0xb8, 0xeb, + 0x5c, 0xa5, 0xc8, 0xe8, 0xad, 0xc6, 0x5c, 0x94, + 0x18, 0x74, 0xd8, 0xa5, 0x85, 0x38, 0xca, 0x8e, + 0x16, 0xaf, 0x96, 0xa8, 0x49, 0x9a, 0x4b, 0x46, + 0x69, 0x2d, 0x19, 0xa4, 0xb4, 0x66, 0x92, 0xd1, + 0x9a, 0x4b, 0x46, 0x69, 0x2d, 0x0d, 0xcb, 0x96, + 0x38, 0xc4, 0x06, 0xa3, 0xfd, 0x33, 0xe5, 0xa5, + 0x2b, 0x51, 0x42, 0x8d, 0xb8, 0x37, 0xb7, 0x1e, + 0xe4, 0x65, 0x6c, 0xbe, 0xda, 0x36, 0x33, 0x51, + 0x79, 0x6d, 0x11, 0xf5, 0x2e, 0xcb, 0x10, 0x47, + 0x95, 0x38, 0x34, 0x5f, 0x1d, 0xa7, 0x99, 0x7c, + 0x7a, 0x86, 0x55, 0x73, 0x25, 0xa9, 0x8a, 0xf9, + 0x6f, 0xfe, 0x12, 0x4f, 0xad, 0xb1, 0x77, 0x6f, + 0x3e, 0xe2, 0x2f, 0x65, 0xcf, 0xb7, 0x8f, 0x76, + 0x8f, 0x5d, 0x9a, 0x8b, 0x51, 0xde, 0xcd, 0xc5, + 0x84, 0x8e, 0x2c, 0x24, 0x71, 0x61, 0x23, 0x8b, + 0x09, 0x1c, 0x58, 0x48, 0xe2, 0xc2, 0x47, 0x12, + 0x10, 0x38, 0xb0, 0x91, 0xc4, 0x84, 0x0e, 0x24, + 0x20, 0x71, 0x21, 0x14, 0x1c, 0x48, 0x48, 0xe2, + 0x42, 0x07, 0x12, 0x10, 0x38, 0x90, 0x81, 0xc5, + 0x84, 0x8e, 0x2c, 0x24, 0x71, 0x61, 0x23, 0x8b, + 0x09, 0x1c, 0x58, 0x48, 0xe2, 0xc2, 0x42, 0x2b, + 0x51, 0x59, 0x1a, 0x08, 0xbb, 0xc9, 0x57, 0xdd, + 0x3f, 0x2b, 0x32, 0xe4, 0x48, 0x68, 0xaa, 0x48, + 0x86, 0x37, 0x37, 0x6f, 0x72, 0x47, 0x64, 0xad, + 0xb6, 0x32, 0xbd, 0xb1, 0xad, 0xc6, 0xc5, 0x27, + 0x37, 0x38, 0x5a, 0xa8, 0xd4, 0x12, 0x1b, 0x96, + 0x52, 0x5d, 0xbd, 0x3d, 0xb5, 0x69, 0x77, 0xbd, + 0x61, 0x5f, 0x33, 0x0f, 0xd8, 0xe3, 0x51, 0xfe, + 0x99, 0xf2, 0xc6, 0x0e, 0x24, 0x97, 0x33, 0x7c, + 0xde, 0x8c, 0x89, 0xc5, 0x16, 0x57, 0x21, 0x58, + 0x55, 0xe8, 0xe3, 0x49, 0x88, 0x24, 0xa8, 0xeb, + 0x87, 0x4e, 0x39, 0x52, 0xc6, 0x64, 0xe9, 0x6e, + 0x5c, 0x5d, 0xe1, 0xc9, 0xec, 0xf5, 0x2e, 0x0e, + 0xea, 0xb9, 0x0d, 0x9f, 0x2d, 0xff, 0x00, 0xc2, + 0x49, 0xf5, 0xb6, 0x2e, 0xe9, 0xe7, 0xdc, 0x45, + 0xec, 0xb9, 0xf6, 0xf1, 0xfe, 0xd5, 0xeb, 0xb3, + 0x75, 0xfb, 0x70, 0x27, 0xb0, 0xa6, 0xc6, 0x07, + 0x06, 0x62, 0xd5, 0x20, 0xc7, 0x28, 0x59, 0xcd, + 0xb1, 0x42, 0xd0, 0xbe, 0x2d, 0x8c, 0xa6, 0xa1, + 0xc4, 0xc4, 0xd2, 0x5a, 0xde, 0x44, 0x48, 0xf3, + 0xdc, 0x2c, 0x8a, 0x58, 0x60, 0x63, 0x42, 0x71, + 0x44, 0x55, 0xa8, 0xd5, 0xf4, 0x36, 0x35, 0x6a, + 0x43, 0x0a, 0x8b, 0xdd, 0x7d, 0x5a, 0x58, 0x11, + 0xa7, 0x24, 0xd8, 0x82, 0xa2, 0xe8, 0xda, 0xcc, + 0x81, 0x2c, 0x99, 0x5c, 0x47, 0x8e, 0x65, 0x62, + 0x1b, 0xd6, 0xb1, 0x47, 0x12, 0xad, 0x48, 0xf7, + 0x1f, 0xe8, 0x9f, 0x93, 0x27, 0xda, 0x01, 0x17, + 0x79, 0x23, 0x36, 0x17, 0x49, 0x0f, 0x9d, 0x04, + 0x1e, 0x74, 0x10, 0x79, 0xd0, 0x41, 0xe7, 0x41, + 0x07, 0x9d, 0x04, 0x1e, 0x74, 0x10, 0x79, 0xd0, + 0x40, 0x5e, 0x14, 0x70, 0x2d, 0x34, 0x53, 0x8b, + 0xe6, 0xc0, 0xc2, 0x54, 0xb1, 0x25, 0xb7, 0xdb, + 0x84, 0x5f, 0x6f, 0x9b, 0x03, 0x1e, 0x74, 0x10, + 0x79, 0xd0, 0x41, 0xe7, 0x41, 0x07, 0x9d, 0x04, + 0x1e, 0x74, 0x10, 0x79, 0xd0, 0x41, 0xe7, 0x41, + 0x02, 0x1a, 0xa0, 0xba, 0x22, 0x25, 0x58, 0x97, + 0x4a, 0xfd, 0x2a, 0x1f, 0xa5, 0x43, 0xf4, 0xa8, + 0x78, 0xe9, 0x48, 0xfd, 0x29, 0x1f, 0xa5, 0x42, + 0xc5, 0x9a, 0x64, 0x5a, 0x5f, 0xd2, 0xa1, 0xfa, + 0x54, 0x3f, 0x4a, 0x87, 0xe9, 0x50, 0xf1, 0xd2, + 0x91, 0xfa, 0x54, 0x3f, 0x4a, 0x87, 0xe9, 0x50, + 0xfd, 0x2a, 0x1f, 0xa5, 0x43, 0xf4, 0xa8, 0x7e, + 0x95, 0x0f, 0xd2, 0xa1, 0x5f, 0x4a, 0xab, 0x47, + 0x95, 0x05, 0x2d, 0x56, 0xc7, 0xdd, 0x3c, 0x7b, + 0x88, 0xbd, 0x97, 0x3e, 0xde, 0x3f, 0xda, 0xbd, + 0x76, 0x95, 0x45, 0x7b, 0xa2, 0x0b, 0xec, 0xbc, + 0xab, 0xdb, 0x9d, 0x53, 0x92, 0x91, 0xc2, 0x4a, + 0xca, 0xa2, 0x8a, 0x65, 0x2d, 0xaa, 0x6a, 0x6c, + 0xbd, 0xb5, 0x63, 0x95, 0xb2, 0xa2, 0x68, 0xe1, + 0x59, 0x53, 0x75, 0x1a, 0xcb, 0x97, 0xb6, 0x12, + 0xa5, 0x0c, 0x81, 0x39, 0x68, 0x50, 0xb9, 0x24, + 0x2c, 0x8e, 0xa0, 0x81, 0x33, 0x72, 0x89, 0x0a, + 0x07, 0x0a, 0xdb, 0x27, 0x47, 0x72, 0x82, 0xe4, + 0xe8, 0xfc, 0x16, 0x49, 0x92, 0xaa, 0x35, 0x1b, + 0xd9, 0x69, 0x5f, 0x4a, 0x91, 0x14, 0xad, 0xe1, + 0x6c, 0x81, 0x1b, 0x3b, 0xc9, 0x12, 0x56, 0x84, + 0x88, 0xdd, 0x24, 0x04, 0x2b, 0x6b, 0xa5, 0x2b, + 0x75, 0x53, 0xa2, 0x39, 0xa9, 0x8c, 0x22, 0xef, + 0x25, 0x5f, 0x74, 0xfc, 0xf1, 0xe5, 0x86, 0xda, + 0xda, 0x4d, 0x3f, 0xf9, 0x15, 0xb1, 0xb6, 0xb2, + 0x62, 0x89, 0x0d, 0x48, 0x4b, 0x1b, 0x8b, 0x93, + 0x83, 0x59, 0xca, 0xe8, 0x65, 0xaa, 0xfe, 0x76, + 0x1f, 0xb1, 0xc6, 0xa5, 0x7d, 0x33, 0xf2, 0x36, + 0xdb, 0x71, 0x43, 0x9c, 0xd6, 0xb6, 0x34, 0x3d, + 0x97, 0x6c, 0x68, 0xa7, 0x33, 0x6c, 0x4a, 0xa7, + 0xa7, 0x12, 0xd4, 0xad, 0x0c, 0x79, 0x19, 0x4e, + 0xcf, 0x2c, 0x2d, 0x67, 0xa9, 0x51, 0x14, 0x42, + 0xde, 0xb8, 0xa8, 0x4d, 0x6e, 0x31, 0x80, 0x95, + 0xc5, 0x35, 0x2c, 0x63, 0x54, 0xe6, 0x7a, 0xb8, + 0xc2, 0x56, 0xc2, 0xde, 0x62, 0xa4, 0xb5, 0x9a, + 0xe1, 0x1f, 0x22, 0x95, 0xc3, 0xd0, 0x58, 0xdc, + 0x8a, 0x3c, 0xd8, 0xbe, 0x87, 0x79, 0x34, 0x3b, + 0xf2, 0xbb, 0xe9, 0xec, 0x7d, 0xd3, 0xc7, 0xb8, + 0x8b, 0xd9, 0x73, 0xed, 0xd8, 0x3b, 0x57, 0x9e, + 0xd2, 0x95, 0xad, 0xb5, 0x3c, 0xe4, 0x8b, 0x47, + 0x90, 0xc6, 0x3c, 0x86, 0x31, 0xe4, 0x31, 0x8f, + 0x21, 0x8c, 0x79, 0x0c, 0x63, 0xc8, 0x63, 0x1e, + 0x43, 0x18, 0xf2, 0x18, 0xc7, 0x90, 0xc6, 0x3c, + 0x86, 0x31, 0xe4, 0x31, 0x8f, 0x21, 0x8c, 0x79, + 0x0c, 0x63, 0xc8, 0x63, 0x1e, 0x43, 0x18, 0xf2, + 0x18, 0x87, 0x1d, 0x88, 0x79, 0x0c, 0x63, 0xc8, + 0x63, 0x09, 0xcd, 0x44, 0x8a, 0xeb, 0xae, 0xba, + 0xfb, 0x82, 0x2e, 0xf2, 0x43, 0x11, 0xe4, 0x48, + 0x30, 0xb1, 0x85, 0x8c, 0x2c, 0x61, 0x63, 0x0b, + 0x18, 0x58, 0xc2, 0xc2, 0x48, 0xc1, 0xa8, 0xe9, + 0x63, 0x4a, 0xbb, 0x11, 0x61, 0x81, 0x44, 0x6c, + 0xe5, 0x28, 0xd2, 0x35, 0x29, 0x4a, 0x4d, 0xf0, + 0xdb, 0x8c, 0xbf, 0x0b, 0x18, 0x58, 0xc2, 0xc6, + 0x16, 0x30, 0xb1, 0x85, 0x8c, 0x2c, 0x23, 0x43, + 0xd3, 0xa2, 0x62, 0x74, 0xcc, 0xee, 0xea, 0xd7, + 0x87, 0xca, 0xc6, 0x1f, 0x2b, 0x09, 0xd8, 0xdf, + 0xe8, 0xd9, 0x46, 0xb7, 0xca, 0xa7, 0xa3, 0x54, + 0xb1, 0x45, 0xae, 0x4c, 0x13, 0x07, 0x25, 0x0b, + 0x91, 0x4d, 0x17, 0x33, 0x79, 0x72, 0xdb, 0x0e, + 0x3c, 0xb9, 0x3a, 0xd4, 0x69, 0x5a, 0xa4, 0x4f, + 0xaa, 0x15, 0x23, 0x90, 0xa8, 0x52, 0x4b, 0x04, + 0xb8, 0x96, 0xea, 0x15, 0x30, 0x31, 0x2b, 0x74, + 0x69, 0xfd, 0xc8, 0x87, 0x52, 0xdf, 0x8e, 0x79, + 0x3f, 0x2e, 0x57, 0x5b, 0x8e, 0x97, 0x6c, 0xa2, + 0x29, 0x49, 0x05, 0x61, 0xf2, 0xb1, 0x87, 0xca, + 0xc6, 0x1f, 0x2b, 0x0a, 0x09, 0x35, 0x3a, 0x56, + 0x4e, 0xe9, 0xdf, 0xdd, 0x45, 0xec, 0xb9, 0xf6, + 0xec, 0x1d, 0xab, 0xcf, 0x69, 0xfd, 0x84, 0x5d, + 0xe4, 0xab, 0xee, 0x9f, 0x9d, 0x25, 0x52, 0xb8, + 0xb5, 0xba, 0xc5, 0xcf, 0x68, 0x6f, 0xb4, 0xb6, + 0xf6, 0xb6, 0xd8, 0xf3, 0x53, 0x03, 0x83, 0x82, + 0x48, 0xda, 0x75, 0x31, 0x87, 0xd4, 0x89, 0xd1, + 0xac, 0xf9, 0xd8, 0x7e, 0xc7, 0x1a, 0x88, 0x79, + 0xc4, 0xb6, 0xf3, 0x56, 0x0e, 0x6a, 0xc1, 0x1b, + 0x50, 0xa9, 0xc8, 0xae, 0x88, 0xe9, 0xd0, 0xa2, + 0x94, 0x21, 0x4a, 0x9b, 0x18, 0xdd, 0xee, 0xaa, + 0x76, 0x67, 0x93, 0x94, 0x2b, 0x6a, 0x55, 0xc4, + 0x2d, 0x81, 0xf6, 0xaa, 0x50, 0xa5, 0x50, 0x52, + 0xca, 0x1b, 0x57, 0xbb, 0xcb, 0x63, 0x78, 0x38, + 0x1d, 0x1c, 0x7d, 0x2a, 0xe5, 0x4c, 0x6f, 0x69, + 0xcc, 0x25, 0x85, 0xdd, 0x55, 0xe5, 0xb3, 0xba, + 0x1c, 0x1c, 0xa3, 0xaa, 0xd2, 0xac, 0x26, 0x37, + 0x22, 0x36, 0xc5, 0xd4, 0x5c, 0x86, 0xee, 0x6a, + 0xc1, 0xcd, 0x58, 0x2f, 0xad, 0x6e, 0x40, 0xc9, + 0xdd, 0x3b, 0xfb, 0xa8, 0xbd, 0x97, 0x3e, 0xdd, + 0x87, 0xb5, 0x79, 0xed, 0x53, 0xa7, 0x31, 0x4d, + 0xf5, 0xab, 0x15, 0x83, 0x7c, 0x7c, 0x6f, 0x8f, + 0x8d, 0xf1, 0xf1, 0xbe, 0x3e, 0x37, 0xc7, 0xc6, + 0xf8, 0xf8, 0xdf, 0x1f, 0x1b, 0xe3, 0xe3, 0x7c, + 0x7c, 0x6f, 0x8f, 0x8d, 0xf1, 0xf1, 0xbe, 0x3e, + 0x37, 0xc7, 0xc6, 0xf8, 0xf8, 0xdf, 0x1f, 0x1b, + 0xe3, 0xe3, 0x7c, 0x7c, 0x6f, 0x8f, 0x8d, 0xf1, + 0xf1, 0xbe, 0x3e, 0x0e, 0x43, 0xb5, 0x38, 0x45, + 0xde, 0x4a, 0xee, 0xb7, 0x29, 0xdd, 0x68, 0xdd, + 0x68, 0xdd, 0x68, 0xdd, 0x68, 0xdd, 0x68, 0xdd, + 0x68, 0xdd, 0x68, 0x73, 0x74, 0x63, 0x3d, 0x9d, + 0xc2, 0x54, 0xea, 0xe8, 0x90, 0xb5, 0xed, 0x2b, + 0x1b, 0x95, 0x4a, 0xed, 0x29, 0x0b, 0x94, 0xc5, + 0x2d, 0xd7, 0x49, 0x9d, 0x5b, 0xdd, 0x9d, 0xb7, + 0x5a, 0x37, 0x5a, 0x37, 0x5a, 0x37, 0x5a, 0x37, + 0x5a, 0x37, 0x5a, 0x37, 0x5a, 0x18, 0x7f, 0xcc, + 0x18, 0x6a, 0x0a, 0x73, 0x14, 0x30, 0xfe, 0x4d, + 0x4e, 0x6c, 0xcd, 0xd7, 0x65, 0x0f, 0x1d, 0x35, + 0x23, 0xe1, 0xad, 0xac, 0xaf, 0x32, 0x46, 0xe7, + 0x14, 0xc4, 0x4b, 0x1a, 0x2c, 0x5a, 0xba, 0x42, + 0xd0, 0xe4, 0xde, 0x9d, 0x41, 0x32, 0x1b, 0x8c, + 0x75, 0x4a, 0x53, 0xf2, 0x27, 0x66, 0x76, 0xd1, + 0xd7, 0x1b, 0x53, 0xb4, 0xa1, 0x7f, 0x44, 0xa5, + 0xe0, 0xd7, 0x86, 0x56, 0x77, 0x2b, 0xe4, 0xed, + 0xdc, 0x36, 0xb9, 0x23, 0x52, 0x34, 0xae, 0x8f, + 0xac, 0x2f, 0x36, 0x2d, 0x93, 0x26, 0x71, 0x70, + 0x91, 0xbb, 0x94, 0xf0, 0x68, 0xb2, 0xcb, 0xcc, + 0xbd, 0x59, 0x37, 0x24, 0xb1, 0x97, 0xb9, 0x76, + 0xf7, 0x51, 0x7b, 0x2e, 0x7d, 0xbb, 0x0f, 0x6a, + 0xf3, 0xda, 0xc9, 0x0f, 0xb9, 0x1b, 0x17, 0x20, + 0x72, 0x47, 0x24, 0x47, 0xdb, 0xef, 0x7f, 0x73, + 0x71, 0x8c, 0xd1, 0x33, 0x7f, 0xfe, 0x8f, 0x29, + 0xd5, 0xa9, 0x7b, 0x41, 0xa6, 0x18, 0x69, 0x37, + 0x35, 0x46, 0xd3, 0xaf, 0x68, 0x7a, 0x66, 0x5c, + 0xcc, 0xb6, 0xda, 0x2a, 0xbe, 0xf4, 0x6d, 0x8b, + 0x56, 0xb5, 0xef, 0x3a, 0x85, 0x6e, 0x3f, 0xca, + 0xb1, 0x8a, 0xe4, 0xc6, 0xd3, 0xce, 0x36, 0xfb, + 0x2f, 0x38, 0xca, 0x18, 0x69, 0x85, 0x5f, 0xc9, + 0x1c, 0x91, 0xc8, 0x10, 0xc5, 0x86, 0x55, 0xdc, + 0x22, 0xef, 0x24, 0x33, 0xd9, 0x62, 0x49, 0x07, + 0xa8, 0xb3, 0x20, 0xd7, 0x3a, 0x95, 0xad, 0x5c, + 0xa2, 0x54, 0xf2, 0xda, 0xa5, 0xbd, 0xe2, 0x51, + 0x57, 0xb6, 0xd9, 0x5c, 0x84, 0xeb, 0x14, 0xca, + 0x24, 0x84, 0xd8, 0xa6, 0x62, 0xfa, 0x9d, 0x4c, + 0x89, 0xcf, 0x50, 0xd8, 0xae, 0xca, 0x35, 0x30, + 0x29, 0x91, 0x6a, 0x82, 0x22, 0xd0, 0xbd, 0xea, + 0x6a, 0xdb, 0xd4, 0xc9, 0x25, 0xe4, 0x45, 0xba, + 0x9c, 0x9c, 0xb7, 0x7a, 0xca, 0xe5, 0xcd, 0xe4, + 0xdb, 0x31, 0x93, 0x98, 0xf0, 0x54, 0xc9, 0xec, + 0xa4, 0x2b, 0xdf, 0xa5, 0xed, 0xf2, 0x45, 0x2f, + 0x52, 0x84, 0xe6, 0x7a, 0x8b, 0x32, 0x1e, 0xa2, + 0xcc, 0x82, 0x47, 0x25, 0xae, 0xf1, 0x30, 0x41, + 0xf4, 0x2a, 0x87, 0x44, 0xe2, 0x66, 0x5f, 0x88, + 0x45, 0x86, 0x21, 0x16, 0x18, 0x84, 0x58, 0x62, + 0x11, 0x61, 0x88, 0x45, 0x86, 0x21, 0x16, 0x18, + 0x84, 0x58, 0x5b, 0x14, 0x8d, 0x58, 0x31, 0x08, + 0xb0, 0xc4, 0x22, 0xc3, 0x10, 0x8b, 0x0c, 0x46, + 0x2d, 0x41, 0x88, 0xc5, 0xaa, 0x31, 0x08, 0xb0, + 0xc4, 0x22, 0xc3, 0x10, 0x8b, 0x0c, 0x42, 0x2c, + 0x31, 0x08, 0xb0, 0xc4, 0x22, 0xc1, 0xa9, 0xb5, + 0x85, 0x88, 0xca, 0xd6, 0xb7, 0x55, 0x97, 0xba, + 0x76, 0xf7, 0x51, 0x7b, 0x2e, 0x7d, 0xbb, 0x0f, + 0x6a, 0xf1, 0xda, 0xcf, 0x4e, 0xf2, 0x5a, 0x39, + 0xb4, 0x1c, 0xd1, 0xcd, 0x1a, 0x62, 0xa7, 0xcd, + 0x97, 0x31, 0x37, 0xba, 0x31, 0x35, 0xff, 0x00, + 0xea, 0x4e, 0xce, 0xa8, 0xe7, 0xf5, 0xef, 0x9a, + 0x8c, 0xa3, 0xc1, 0x02, 0x37, 0x56, 0x64, 0x5a, + 0x7a, 0xc5, 0x33, 0x3d, 0xce, 0xf6, 0xf7, 0x59, + 0x31, 0xb1, 0x85, 0xcb, 0x55, 0x92, 0x99, 0xdd, + 0x45, 0x85, 0x33, 0xb8, 0x1f, 0x29, 0xb6, 0x88, + 0x9c, 0x1d, 0x95, 0xad, 0x6f, 0x55, 0x20, 0x4f, + 0x1d, 0x70, 0x74, 0x29, 0x8e, 0xdd, 0x47, 0x5d, + 0x53, 0x94, 0x73, 0x47, 0x34, 0x73, 0x68, 0x20, + 0x2a, 0x7c, 0xc9, 0x48, 0x45, 0xde, 0x4a, 0xbe, + 0xe9, 0x09, 0xae, 0xa5, 0xaa, 0x57, 0x9c, 0xdc, + 0xf2, 0xa8, 0xf7, 0xa4, 0x4a, 0xa6, 0xed, 0x4a, + 0xd0, 0xdc, 0x16, 0xb8, 0x23, 0x36, 0xf5, 0xab, + 0xdd, 0x4d, 0x35, 0xe1, 0xe1, 0xb3, 0x2b, 0xb5, + 0xed, 0x09, 0x0e, 0xe9, 0x5d, 0x91, 0x16, 0xb3, + 0xab, 0x37, 0xf3, 0xd9, 0xd7, 0xb4, 0x51, 0xbd, + 0x73, 0xfa, 0x3e, 0x81, 0x20, 0x54, 0x86, 0x42, + 0x87, 0xc5, 0xb5, 0x11, 0xb7, 0xbf, 0x1c, 0x85, + 0x94, 0x89, 0x32, 0xa2, 0x5d, 0xd6, 0xb9, 0xd2, + 0xe6, 0x0f, 0xc9, 0x87, 0xec, 0x7f, 0xec, 0x32, + 0xf7, 0x2e, 0xbe, 0xea, 0x2f, 0x65, 0xcf, 0xb7, + 0x61, 0xed, 0x9e, 0x3b, 0x59, 0xc2, 0x05, 0x8e, + 0xd1, 0xfe, 0xa3, 0x6d, 0x2b, 0xd4, 0x6c, 0x1d, + 0x42, 0xc0, 0x91, 0xf5, 0x4b, 0x79, 0xcb, 0xa5, + 0x4e, 0xae, 0x76, 0x52, 0x5e, 0xf5, 0x42, 0x0b, + 0x97, 0x3c, 0x95, 0x45, 0x92, 0x45, 0xee, 0x14, + 0xb9, 0xf5, 0x45, 0xe9, 0x48, 0x7d, 0x50, 0x96, + 0xc4, 0x32, 0x67, 0x16, 0xc0, 0x92, 0x4a, 0xbd, + 0x05, 0xd7, 0x49, 0x17, 0xde, 0x86, 0x92, 0x77, + 0x1a, 0x22, 0x22, 0x5c, 0xf0, 0x94, 0xa4, 0x72, + 0x87, 0x36, 0xf1, 0x6b, 0xf2, 0x92, 0xc8, 0x52, + 0xfc, 0xa5, 0x68, 0xea, 0x16, 0x0e, 0xa1, 0x60, + 0xea, 0x36, 0x8d, 0x30, 0x6d, 0x5d, 0x72, 0xf0, + 0x8b, 0xbc, 0x95, 0x7d, 0xd3, 0xf2, 0xa6, 0x4a, + 0x7a, 0xc3, 0x6b, 0x19, 0x77, 0xb0, 0x9b, 0x18, + 0x1c, 0x2f, 0x26, 0xc6, 0x07, 0x0b, 0xc9, 0x3c, + 0x9b, 0x93, 0x9a, 0x6b, 0x1b, 0x81, 0x09, 0x4e, + 0x8f, 0x19, 0x6b, 0x86, 0x3a, 0xaa, 0xa7, 0xac, + 0x65, 0x58, 0x93, 0xe7, 0x61, 0xfb, 0x1f, 0xf2, + 0x94, 0xc8, 0xd1, 0x44, 0x58, 0x63, 0xba, 0x86, + 0xdf, 0x20, 0x76, 0x0e, 0xae, 0x24, 0xb4, 0x35, + 0xb4, 0x39, 0x90, 0xf4, 0xd5, 0xfd, 0x16, 0x6e, + 0xe5, 0xd7, 0xdd, 0x45, 0xec, 0xb9, 0xf6, 0xec, + 0x3d, 0xb3, 0xc7, 0x6b, 0x1c, 0xfa, 0xd9, 0x53, + 0x99, 0x55, 0x0b, 0xce, 0xa5, 0x23, 0x3a, 0x94, + 0x8c, 0xea, 0x52, 0x33, 0xa9, 0x48, 0x7a, 0x70, + 0x95, 0xa0, 0x4f, 0x74, 0xc6, 0x5a, 0x9a, 0xae, + 0x92, 0xa7, 0x44, 0xc8, 0xea, 0xf7, 0xa8, 0x94, + 0x34, 0xe7, 0xbd, 0x43, 0x4e, 0x52, 0xa7, 0xfd, + 0x40, 0x42, 0x4d, 0xef, 0xda, 0x82, 0x5d, 0xe8, + 0x9e, 0x66, 0x46, 0x1a, 0x73, 0xd6, 0xa2, 0xa7, + 0x30, 0xc7, 0xed, 0x41, 0x24, 0xd4, 0x0e, 0xf3, + 0xc7, 0x04, 0x0b, 0x25, 0x13, 0x86, 0xf1, 0x9d, + 0x4a, 0x46, 0x75, 0x29, 0x19, 0xd4, 0xa4, 0x67, + 0x72, 0x91, 0x16, 0x76, 0x72, 0x78, 0x8e, 0x04, + 0x5d, 0xe4, 0xab, 0xee, 0x9f, 0x95, 0x92, 0xda, + 0x74, 0xe9, 0x39, 0xc8, 0xc9, 0x61, 0xa2, 0xa6, + 0xeb, 0x62, 0x54, 0x54, 0xdd, 0x6c, 0x48, 0xdb, + 0xca, 0x30, 0xc2, 0x0e, 0x58, 0x62, 0x06, 0x8a, + 0xde, 0xe0, 0x72, 0x3b, 0x8a, 0x31, 0xa6, 0xbb, + 0x4f, 0x33, 0xe6, 0x61, 0xfb, 0x1f, 0xf2, 0xd6, + 0xcf, 0xf9, 0x79, 0xcc, 0x0e, 0x4d, 0x49, 0xa3, + 0x4b, 0x15, 0xb4, 0x38, 0xb6, 0x23, 0x86, 0x37, + 0xc7, 0x74, 0xfd, 0xd1, 0x42, 0x06, 0xf8, 0xe2, + 0xc5, 0x4c, 0xcb, 0x19, 0x92, 0xc7, 0x99, 0xe5, + 0xda, 0x4f, 0xcf, 0xa4, 0x97, 0xfd, 0xcc, 0xdd, + 0xcb, 0xaf, 0xba, 0x8b, 0xd9, 0x73, 0xed, 0xd8, + 0xbb, 0x67, 0x8e, 0xd6, 0x37, 0xf5, 0xbb, 0x3f, + 0x87, 0xe6, 0xda, 0xae, 0xd6, 0xf5, 0xfd, 0x55, + 0xb5, 0x6d, 0x65, 0x8a, 0x93, 0x39, 0x39, 0xd1, + 0x5b, 0x71, 0x8a, 0x11, 0xb8, 0xb7, 0x20, 0x4c, + 0x99, 0xc9, 0x15, 0xa4, 0x3a, 0x29, 0x4e, 0xd0, + 0xef, 0x6b, 0xaa, 0x24, 0xcf, 0x11, 0x75, 0xe9, + 0x93, 0x2a, 0x69, 0x70, 0x4c, 0xa2, 0x42, 0xd6, + 0xb1, 0x13, 0x3d, 0xe9, 0x14, 0xa0, 0x44, 0xc7, + 0x26, 0x50, 0x88, 0xe4, 0x9f, 0x24, 0x13, 0xed, + 0x50, 0x8f, 0xfc, 0x2c, 0x91, 0x5b, 0x05, 0xc8, + 0x76, 0x69, 0xe8, 0xd9, 0xa7, 0xa3, 0x66, 0x9e, + 0x8d, 0x9a, 0x7a, 0x36, 0x69, 0xe8, 0x44, 0xaa, + 0x00, 0x8a, 0xa4, 0xbe, 0x46, 0xd3, 0x52, 0xc7, + 0xf8, 0xf1, 0x77, 0x58, 0xff, 0x00, 0x1e, 0x2e, + 0xaa, 0x4e, 0x83, 0x2c, 0x3a, 0xb7, 0xc0, 0xee, + 0x29, 0x43, 0x84, 0x41, 0x59, 0xa6, 0x39, 0x44, + 0x8d, 0x57, 0x6b, 0x9c, 0x27, 0x76, 0xcd, 0x3d, + 0x1b, 0x34, 0xf4, 0x6c, 0xd3, 0xd1, 0xb3, 0x4f, + 0x46, 0xcd, 0x3d, 0x1b, 0x34, 0xf4, 0x21, 0xe9, + 0xb8, 0x9f, 0xe4, 0xb9, 0x02, 0x17, 0x34, 0xb5, + 0x28, 0xaa, 0x94, 0xdf, 0x1a, 0x8e, 0x34, 0x5e, + 0x92, 0x35, 0x1c, 0x40, 0x5f, 0x42, 0x64, 0xf1, + 0x2e, 0x28, 0xc6, 0x80, 0x88, 0xbe, 0x98, 0xde, + 0xc8, 0xfa, 0x8d, 0x8d, 0x91, 0xb9, 0x5f, 0xfb, + 0x99, 0xbb, 0x97, 0x5f, 0x75, 0x17, 0xb2, 0xe7, + 0xdb, 0xb1, 0xf6, 0xcf, 0x1d, 0xb4, 0x73, 0xfc, + 0x3d, 0x5a, 0xba, 0x19, 0xb7, 0x9d, 0x0c, 0x1c, + 0xe8, 0x60, 0xe7, 0x43, 0x07, 0x3a, 0x18, 0x39, + 0xd0, 0xc1, 0xce, 0x86, 0x0e, 0x74, 0x30, 0x73, + 0xa1, 0x83, 0x9d, 0x0c, 0x0a, 0xde, 0x62, 0xab, + 0xd4, 0x73, 0xa1, 0x83, 0x9d, 0x0c, 0x09, 0x5e, + 0x22, 0x88, 0x54, 0xd5, 0x7c, 0x3a, 0xea, 0xf3, + 0xa1, 0x83, 0x9d, 0x0c, 0x1c, 0xe8, 0x60, 0xe7, + 0x43, 0x07, 0x3a, 0x18, 0x39, 0xd0, 0xc1, 0x19, + 0x3d, 0xa4, 0xe8, 0xd0, 0x49, 0xdd, 0x4a, 0xbe, + 0xe9, 0xfc, 0xaa, 0x84, 0x8c, 0x78, 0x98, 0xda, + 0x53, 0x02, 0x76, 0x66, 0xd5, 0x09, 0xdf, 0xd1, + 0x12, 0xdc, 0xba, 0x4c, 0xce, 0x5b, 0x4a, 0x96, + 0x98, 0xba, 0xc3, 0x9f, 0x53, 0x47, 0x1b, 0x8c, + 0x72, 0x2e, 0x2e, 0xa2, 0xc1, 0x48, 0x93, 0xda, + 0x85, 0x6b, 0xe3, 0x46, 0xd8, 0x85, 0x81, 0xa2, + 0xd7, 0x24, 0xd7, 0xb0, 0xdc, 0xb4, 0xd2, 0xe3, + 0x8e, 0xe6, 0x5e, 0x44, 0x79, 0xd9, 0x45, 0x8c, + 0xf1, 0x93, 0x14, 0x91, 0xf9, 0xc7, 0xfe, 0xc9, + 0xfc, 0x9c, 0x56, 0xd8, 0xda, 0xdf, 0x0f, 0x94, + 0xa3, 0x99, 0xc7, 0xc3, 0xb5, 0xee, 0x05, 0xb7, + 0x5c, 0xb9, 0x71, 0xd0, 0xdb, 0x5e, 0xe4, 0x74, + 0x7a, 0x96, 0xb9, 0xa2, 0x71, 0x89, 0xa9, 0x4e, + 0x77, 0x58, 0x52, 0xe8, 0xe3, 0x47, 0x55, 0xab, + 0x6e, 0x29, 0xee, 0xe5, 0x8e, 0xb7, 0x5a, 0xe5, + 0x21, 0x7f, 0x6e, 0x5b, 0x6c, 0x99, 0x4c, 0x58, + 0xa7, 0x47, 0x99, 0x15, 0x8a, 0x99, 0x9f, 0x9e, + 0x43, 0xac, 0xb5, 0xe9, 0xce, 0x0a, 0xf8, 0x5a, + 0x93, 0x51, 0xc4, 0x14, 0x38, 0x2b, 0x60, 0x6f, + 0x74, 0x72, 0xe7, 0x4b, 0x1e, 0x1c, 0x09, 0x5d, + 0x1d, 0x5a, 0xa1, 0x4a, 0x60, 0xcf, 0xdc, 0xba, + 0x7b, 0xa8, 0xbd, 0x97, 0x3e, 0xdd, 0x8f, 0xb6, + 0x77, 0xed, 0xa3, 0xbf, 0x5a, 0xb3, 0xf8, 0x7f, + 0x52, 0x0d, 0xf6, 0xc0, 0x49, 0xdd, 0x4a, 0xbe, + 0xe9, 0xfc, 0x91, 0x1e, 0x8d, 0x4b, 0x29, 0xeb, + 0x99, 0xd7, 0x2a, 0x5a, 0xf2, 0xdc, 0xec, 0x95, + 0xfd, 0x5a, 0x75, 0x87, 0xc9, 0x57, 0x90, 0xe2, + 0xfa, 0x44, 0x8a, 0x38, 0x4b, 0xa5, 0x5f, 0x9a, + 0xad, 0xbd, 0xbd, 0xd5, 0x19, 0x07, 0x92, 0xa5, + 0xbd, 0xd2, 0x4f, 0x63, 0xcb, 0x7d, 0x0c, 0x6a, + 0xe0, 0x6c, 0x54, 0xa1, 0x0b, 0xf3, 0x41, 0xb2, + 0x96, 0xd7, 0x1b, 0x6c, 0x94, 0xa6, 0x51, 0x69, + 0x0e, 0xcc, 0xe6, 0x7c, 0x91, 0xff, 0x00, 0xb2, + 0x7f, 0x3a, 0xd6, 0xb5, 0xfc, 0xaf, 0xb6, 0x97, + 0xd8, 0x64, 0x24, 0x8f, 0x2c, 0xc8, 0x7a, 0x43, + 0x95, 0x3c, 0xb6, 0x94, 0xf8, 0xd6, 0xec, 0xcd, + 0x63, 0xa5, 0xf1, 0xd8, 0x39, 0x11, 0xf3, 0x0a, + 0x6a, 0x20, 0xa7, 0x87, 0x44, 0x07, 0x1c, 0xad, + 0x4c, 0x79, 0x02, 0xb5, 0x47, 0x41, 0x9b, 0x56, + 0xd2, 0xd8, 0xd2, 0x5a, 0x26, 0xba, 0x14, 0x8e, + 0xe2, 0xcb, 0x86, 0xb4, 0x90, 0xc8, 0xff, 0x00, + 0x19, 0xb6, 0x42, 0x99, 0x1a, 0x47, 0x34, 0xc7, + 0x27, 0x8a, 0xa4, 0x4c, 0xe2, 0xed, 0x0a, 0x8e, + 0xbd, 0x5c, 0xc2, 0xdc, 0x73, 0x7a, 0x50, 0xcf, + 0xdc, 0xb9, 0xfb, 0xa8, 0xbd, 0x97, 0x3e, 0xdd, + 0x8f, 0xb6, 0x77, 0xed, 0xa3, 0xbf, 0x5a, 0xb3, + 0xf8, 0x7c, 0x85, 0x47, 0x15, 0x9c, 0x0a, 0x8d, + 0xd4, 0xcb, 0xc8, 0x63, 0x3a, 0xe2, 0xd5, 0x26, + 0x3d, 0x12, 0x87, 0x76, 0x35, 0x8c, 0xa3, 0x75, + 0x06, 0xea, 0x03, 0x90, 0x9a, 0x4a, 0x0f, 0x1a, + 0x02, 0x4b, 0xb9, 0x41, 0xc6, 0x53, 0xca, 0x33, + 0xc6, 0x9f, 0x2c, 0x1b, 0xed, 0x80, 0x93, 0xba, + 0x96, 0x52, 0xb6, 0xca, 0xbf, 0x36, 0xd6, 0x35, + 0x4e, 0x76, 0x90, 0xdc, 0x72, 0x86, 0xef, 0x1a, + 0x02, 0x93, 0x9a, 0x71, 0x07, 0xc6, 0x2f, 0x47, + 0x6a, 0xc4, 0xa7, 0xb7, 0xaa, 0xff, 0x00, 0x03, + 0xa8, 0x2d, 0x4e, 0x47, 0x8d, 0x3c, 0x6d, 0x61, + 0x51, 0x42, 0xd2, 0x30, 0x2d, 0x39, 0x65, 0x8c, + 0xbe, 0x6d, 0xe6, 0xb0, 0x2a, 0xb2, 0x9f, 0x23, + 0x05, 0x2b, 0x48, 0x47, 0xf6, 0x1a, 0x3b, 0x97, + 0x3f, 0x75, 0x17, 0xb2, 0xe7, 0xdb, 0xb2, 0x76, + 0xee, 0xdd, 0xb3, 0x52, 0x8b, 0x52, 0xb9, 0x3d, + 0xb6, 0x9a, 0xce, 0xef, 0xf2, 0x39, 0x33, 0x9e, + 0xee, 0xec, 0x9a, 0xe6, 0xdb, 0xdd, 0x5d, 0x1b, + 0x1d, 0x9d, 0x12, 0xb7, 0xb3, 0x96, 0xae, 0x4a, + 0x91, 0x63, 0x4c, 0x8c, 0xc2, 0x32, 0x6a, 0x94, + 0x9b, 0xaa, 0x94, 0x9d, 0x3d, 0x48, 0xaa, 0x65, + 0xae, 0x4e, 0x08, 0x90, 0xa5, 0xb1, 0x7a, 0x70, + 0x77, 0x56, 0xe7, 0xcb, 0x57, 0x2a, 0x32, 0xbf, + 0x24, 0x4d, 0x35, 0xe8, 0xe2, 0x23, 0xf6, 0x1a, + 0x8e, 0xdf, 0xe5, 0x3e, 0xfe, 0x6c, 0x5f, 0xe0, + 0xc8, 0xca, 0x96, 0xf5, 0x6d, 0xa9, 0x4c, 0x7d, + 0xb0, 0x5a, 0x5a, 0xb5, 0x01, 0xc9, 0x13, 0xc3, + 0xfb, 0x47, 0x23, 0xcd, 0x16, 0x98, 0x49, 0xc8, + 0x1f, 0x28, 0xed, 0xce, 0x71, 0x2c, 0xe5, 0x09, + 0x1c, 0xeb, 0x7b, 0xeb, 0x7b, 0x77, 0x89, 0x12, + 0x26, 0xf2, 0xee, 0x5e, 0xc6, 0xda, 0xd8, 0x42, + 0x07, 0x7a, 0x7e, 0xdf, 0x95, 0x96, 0x5e, 0x65, + 0xf7, 0x26, 0xa3, 0x62, 0x1f, 0xec, 0x34, 0x77, + 0x0e, 0x5e, 0xf2, 0x2f, 0x65, 0xcf, 0xb7, 0x64, + 0xed, 0xdd, 0x2d, 0xdc, 0x94, 0x3e, 0x31, 0xa3, + 0x94, 0x27, 0x5b, 0x11, 0x93, 0x37, 0xdf, 0xd1, + 0xde, 0x07, 0x47, 0x78, 0x1d, 0x1d, 0xe0, 0x74, + 0x77, 0x71, 0xd1, 0xdd, 0xc7, 0x47, 0x77, 0x1d, + 0x1d, 0xdc, 0x74, 0x77, 0x71, 0xd1, 0xdd, 0xc7, + 0x47, 0x77, 0x1d, 0x1d, 0xdc, 0x74, 0x77, 0x71, + 0xd1, 0xdd, 0xc7, 0x47, 0x77, 0x1d, 0x1d, 0xdc, + 0x74, 0x77, 0x81, 0xd1, 0xde, 0x05, 0x8c, 0x6f, + 0x66, 0xdc, 0xcd, 0xa7, 0xea, 0xfc, 0xc5, 0x4a, + 0x39, 0x37, 0xfe, 0x57, 0x94, 0x81, 0xc5, 0x0b, + 0x96, 0x9e, 0xbf, 0xa4, 0x17, 0x31, 0xbd, 0xd9, + 0x5e, 0x8c, 0xf0, 0x38, 0x8f, 0x95, 0x6f, 0xe8, + 0xcf, 0x03, 0xa3, 0x3c, 0x0e, 0x8c, 0xf0, 0x3a, + 0x33, 0xc0, 0xe8, 0xcf, 0x03, 0xa3, 0x3c, 0x0e, + 0x8c, 0xf0, 0x3a, 0x33, 0xc0, 0xe8, 0xcf, 0x03, + 0xa3, 0x3c, 0x0e, 0x8c, 0xf0, 0x11, 0xa3, 0x7c, + 0x44, 0x3a, 0x33, 0xc0, 0xe8, 0xcf, 0x01, 0x14, + 0x46, 0x4e, 0xe1, 0x74, 0x7a, 0x32, 0x92, 0x2f, + 0x5a, 0xd6, 0xb7, 0x57, 0xfb, 0x0d, 0x16, 0xd7, + 0xce, 0x72, 0xf7, 0x91, 0x7b, 0x2e, 0x7d, 0xbb, + 0x4a, 0x84, 0xe5, 0x93, 0x55, 0x68, 0x6e, 0xa2, + 0x9b, 0x49, 0x26, 0xe0, 0x4a, 0xc5, 0x69, 0xe9, + 0xd5, 0x5d, 0x07, 0x55, 0x74, 0x1d, 0x55, 0xd0, + 0x75, 0x57, 0x41, 0xd5, 0x5d, 0x07, 0x55, 0x74, + 0x1d, 0x55, 0xd0, 0x75, 0x57, 0x41, 0xd5, 0x5d, + 0x07, 0x55, 0x74, 0x1d, 0x55, 0xd0, 0x75, 0x57, + 0x41, 0xd5, 0x5d, 0x07, 0x55, 0x74, 0x1d, 0x55, + 0xd0, 0x75, 0x57, 0x41, 0xd5, 0x5d, 0x05, 0x5d, + 0x1c, 0xea, 0x2b, 0x5a, 0xdd, 0x5f, 0x92, 0xcb, + 0xef, 0x2e, 0xee, 0xaa, 0xe8, 0x3a, 0xab, 0xa0, + 0xea, 0xae, 0x83, 0xaa, 0xba, 0x0e, 0xaa, 0xe8, + 0x3a, 0xab, 0xa0, 0xea, 0xae, 0x83, 0xaa, 0xba, + 0x0e, 0xaa, 0xe8, 0x3a, 0xab, 0xa0, 0xea, 0xae, + 0x83, 0xaa, 0xba, 0x0e, 0xaa, 0xe8, 0x3a, 0xab, + 0xa0, 0xea, 0xae, 0x83, 0xaa, 0xba, 0x0e, 0xaa, + 0xe8, 0x0e, 0x58, 0xb1, 0x45, 0x3f, 0xb3, 0x4d, + 0xb5, 0xbd, 0x29, 0x88, 0x53, 0x14, 0xb4, 0xf2, + 0x0d, 0x50, 0x8b, 0xd9, 0x50, 0x57, 0x9b, 0x62, + 0xd8, 0x81, 0x27, 0x9b, 0x84, 0xd8, 0x30, 0x9b, + 0x06, 0x12, 0x58, 0xc2, 0x4b, 0x18, 0x49, 0x63, + 0x09, 0x2c, 0x61, 0x25, 0x8c, 0x24, 0xb1, 0x84, + 0x96, 0x30, 0x92, 0xc6, 0x12, 0x58, 0xc2, 0x4b, + 0x18, 0x49, 0x63, 0x09, 0x2c, 0x61, 0x25, 0x8c, + 0x24, 0xb1, 0x84, 0x96, 0x30, 0x92, 0xc6, 0x12, + 0x58, 0xc2, 0x4b, 0x18, 0x49, 0x63, 0x09, 0x2c, + 0x61, 0x25, 0x8c, 0x24, 0xb1, 0x84, 0x96, 0x30, + 0x92, 0xc6, 0x12, 0x58, 0xc2, 0x4b, 0x18, 0x49, + 0x63, 0x09, 0x2c, 0x61, 0x25, 0x8c, 0x24, 0xb1, + 0x84, 0x96, 0x30, 0x92, 0xc6, 0x12, 0x58, 0xc2, + 0x4b, 0x18, 0x49, 0x63, 0x09, 0x2c, 0x61, 0x25, + 0x8c, 0x24, 0xb1, 0x84, 0x96, 0x30, 0x92, 0xc6, + 0x12, 0x58, 0xc2, 0x4b, 0x18, 0x49, 0x63, 0x09, + 0x2c, 0x61, 0x25, 0x8c, 0x24, 0xb1, 0x84, 0x96, + 0x30, 0x92, 0xc6, 0x12, 0x58, 0xc2, 0x4b, 0x18, + 0x49, 0x63, 0x09, 0x2c, 0x61, 0x25, 0x8c, 0x24, + 0xb1, 0x84, 0x96, 0x30, 0x92, 0xc6, 0x12, 0x58, + 0xc2, 0x4b, 0x18, 0x49, 0x63, 0x09, 0x2c, 0x61, + 0x25, 0x8c, 0x24, 0xb1, 0x84, 0x96, 0x30, 0x92, + 0xc6, 0x12, 0x58, 0xc2, 0x4b, 0x18, 0x49, 0x63, + 0x09, 0x2c, 0x61, 0x25, 0x8c, 0x26, 0xc1, 0x84, + 0xd8, 0x1b, 0x62, 0x64, 0xa5, 0x38, 0x9b, 0x36, + 0x5a, 0x3c, 0x28, 0x36, 0xd0, 0x6d, 0xa0, 0xdb, + 0x41, 0xb6, 0x83, 0x6d, 0x06, 0xda, 0x0d, 0xb4, + 0x1b, 0x68, 0x36, 0xd0, 0x6d, 0xa0, 0xdb, 0x41, + 0xb6, 0x83, 0x6d, 0x06, 0xda, 0x0d, 0xb4, 0x1b, + 0x68, 0x36, 0xd0, 0x6d, 0xa0, 0xdb, 0x41, 0xb6, + 0x83, 0x6d, 0x06, 0xda, 0x0d, 0xb4, 0x1b, 0x68, + 0x36, 0xd0, 0x6d, 0xa0, 0xdb, 0x41, 0xb6, 0x83, + 0x6d, 0x06, 0xda, 0x0d, 0xb4, 0x1b, 0x68, 0x36, + 0xd0, 0x6d, 0xa0, 0xdb, 0x41, 0xb6, 0x83, 0x6d, + 0x06, 0xda, 0x0d, 0xb4, 0x1b, 0x68, 0x36, 0xd0, + 0x6d, 0xa0, 0xdb, 0x41, 0xb6, 0x83, 0x6d, 0x06, + 0xda, 0x0d, 0xb4, 0x1b, 0x68, 0x36, 0xd0, 0x6d, + 0xa0, 0xdb, 0x41, 0xb6, 0x83, 0x6d, 0x06, 0xda, + 0x0d, 0xb4, 0x1b, 0x68, 0x36, 0xd0, 0x6d, 0xa0, + 0xdb, 0x41, 0xb6, 0x83, 0x6d, 0x06, 0xda, 0x0d, + 0xb4, 0x1b, 0x68, 0x36, 0xd0, 0x6d, 0xa0, 0xdb, + 0x41, 0xb6, 0x83, 0x6d, 0x06, 0xda, 0x0d, 0xb4, + 0x1b, 0x68, 0x36, 0xd0, 0x78, 0x53, 0xf2, 0xff, + 0xc4, 0x00, 0x6c, 0x11, 0x00, 0x01, 0x03, 0x02, + 0x03, 0x03, 0x04, 0x0c, 0x08, 0x06, 0x0c, 0x08, + 0x0a, 0x06, 0x0b, 0x00, 0x02, 0x01, 0x03, 0x04, + 0x05, 0x06, 0x00, 0x11, 0x12, 0x07, 0x13, 0x14, + 0x18, 0x21, 0x55, 0xd5, 0x15, 0x16, 0x17, 0x22, + 0x31, 0x51, 0x56, 0x61, 0x93, 0x94, 0x95, 0xd2, + 0x32, 0x41, 0x71, 0x96, 0xa1, 0xd3, 0xd4, 0xe1, + 0x08, 0x10, 0x23, 0x53, 0x54, 0x91, 0x20, 0x24, + 0x33, 0x37, 0x42, 0x50, 0x62, 0xb1, 0xb4, 0xb5, + 0xe4, 0xf0, 0x30, 0x34, 0x36, 0x40, 0x73, 0x74, + 0x75, 0x81, 0x25, 0x26, 0x45, 0x52, 0x72, 0x80, + 0xa5, 0xb2, 0xc1, 0xd1, 0x35, 0x43, 0x63, 0x90, + 0x92, 0xd6, 0x44, 0x65, 0x70, 0x76, 0x82, 0x83, + 0xa3, 0xa4, 0xc2, 0xc3, 0xf1, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, 0x01, 0xff, + 0x00, 0xac, 0x2d, 0xa3, 0xb3, 0x4b, 0xe2, 0xfa, + 0xd6, 0x76, 0xc5, 0xbd, 0x32, 0xa1, 0x19, 0xb3, + 0x56, 0xdd, 0xa8, 0x16, 0xee, 0x25, 0x35, 0xb7, + 0x13, 0x4a, 0x93, 0x7c, 0x7c, 0xb3, 0x66, 0x31, + 0xbc, 0x08, 0x42, 0x46, 0xc3, 0x26, 0xe3, 0xe2, + 0x24, 0x24, 0xad, 0x64, 0x48, 0xaa, 0x1f, 0x82, + 0xde, 0xd5, 0xc8, 0x50, 0x96, 0x35, 0x09, 0xb5, + 0xe7, 0xef, 0x4e, 0xb2, 0x3a, 0x93, 0x9f, 0xe3, + 0xd1, 0x1c, 0xc7, 0x9f, 0xc2, 0x99, 0x17, 0x83, + 0xc3, 0x92, 0xe3, 0x92, 0xce, 0xd5, 0x7f, 0x33, + 0x6f, 0xfb, 0x63, 0xfb, 0x2e, 0x39, 0x2c, 0xed, + 0x57, 0xf3, 0x36, 0xff, 0x00, 0xb6, 0x3f, 0xb2, + 0xe3, 0x92, 0xce, 0xd5, 0x7f, 0x33, 0x6f, 0xfb, + 0x63, 0xfb, 0x2e, 0x39, 0x2c, 0xed, 0x57, 0xf3, + 0x36, 0xff, 0x00, 0xb6, 0x3f, 0xb2, 0xe3, 0x92, + 0xce, 0xd5, 0x7f, 0x33, 0x6f, 0xfb, 0x63, 0xfb, + 0x2e, 0x39, 0x2c, 0xed, 0x57, 0xf3, 0x36, 0xff, + 0x00, 0xb6, 0x3f, 0xb2, 0xe3, 0x92, 0xce, 0xd5, + 0x7f, 0x33, 0x6f, 0xfb, 0x63, 0xfb, 0x2e, 0x39, + 0x2c, 0xed, 0x57, 0xf3, 0x36, 0xff, 0x00, 0xb6, + 0x3f, 0xb2, 0xe3, 0x92, 0xce, 0xd5, 0x7f, 0x33, + 0x6f, 0xfb, 0x63, 0xfb, 0x2e, 0x39, 0x2c, 0xed, + 0x57, 0xf3, 0x36, 0xff, 0x00, 0xb6, 0x3f, 0xb2, + 0xe3, 0x92, 0xce, 0xd5, 0x7f, 0x33, 0x6f, 0xfb, + 0x63, 0xfb, 0x2e, 0x39, 0x2c, 0xed, 0x57, 0xf3, + 0x36, 0xff, 0x00, 0xb6, 0x3f, 0xb2, 0xe3, 0x92, + 0xce, 0xd5, 0x7f, 0x33, 0x6f, 0xfb, 0x63, 0xfb, + 0x2e, 0x39, 0x2c, 0xed, 0x57, 0xf3, 0x36, 0xff, + 0x00, 0xb6, 0x3f, 0xb2, 0xe3, 0x92, 0xce, 0xd5, + 0x7f, 0x33, 0x6f, 0xfb, 0x63, 0xfb, 0x2e, 0x39, + 0x2c, 0xed, 0x57, 0xf3, 0x36, 0xff, 0x00, 0xb6, + 0x3f, 0xb2, 0xe3, 0x92, 0xce, 0xd5, 0x7f, 0x33, + 0x6f, 0xfb, 0x63, 0xfb, 0x2e, 0x39, 0x2c, 0xed, + 0x5b, 0xf3, 0x34, 0x0f, 0x6c, 0x7f, 0x65, 0xc5, + 0xcd, 0xb0, 0xdd, 0xa7, 0x5a, 0x91, 0x1d, 0xa8, + 0x54, 0xad, 0xa7, 0xe4, 0x40, 0x60, 0x54, 0xdf, + 0x97, 0x49, 0x79, 0x9a, 0xa0, 0x47, 0x01, 0x15, + 0x33, 0x71, 0xf6, 0xa2, 0x99, 0xca, 0x65, 0x96, + 0x85, 0x14, 0x9d, 0x90, 0x71, 0xd2, 0x3b, 0x69, + 0xce, 0x6e, 0x8f, 0xf1, 0xc6, 0xce, 0x2d, 0x86, + 0x6f, 0x2b, 0xe6, 0xd9, 0xb6, 0xa4, 0x99, 0xb7, + 0x12, 0xa9, 0x53, 0x6d, 0xb9, 0xa4, 0xda, 0xa0, + 0xbb, 0xc0, 0xb0, 0x0e, 0x4b, 0x9a, 0x2c, 0x9a, + 0xe6, 0x80, 0xf3, 0x91, 0x63, 0xbc, 0x0d, 0x38, + 0xa8, 0x48, 0x0e, 0x10, 0x9e, 0x83, 0xcb, 0x42, + 0xd3, 0x69, 0xb0, 0x28, 0xf0, 0x22, 0xd3, 0x29, + 0x71, 0x18, 0x83, 0x4f, 0x84, 0xc8, 0x47, 0x8b, + 0x12, 0x33, 0x68, 0xd3, 0x2c, 0x32, 0x09, 0xde, + 0x80, 0x00, 0xfe, 0xb2, 0x55, 0xcc, 0x8c, 0x94, + 0x8c, 0xd4, 0x88, 0x95, 0x55, 0x55, 0x13, 0xc2, + 0xa8, 0x9f, 0x2a, 0xe5, 0x85, 0x21, 0x1e, 0x72, + 0x54, 0x4f, 0x95, 0x51, 0x30, 0x86, 0x05, 0xf0, + 0x48, 0x57, 0xe4, 0x24, 0x5c, 0x21, 0x22, 0xe7, + 0x92, 0xa2, 0xe5, 0xe1, 0xc9, 0x73, 0xcb, 0xe5, + 0xc4, 0xda, 0x84, 0x1a, 0x6c, 0x59, 0x13, 0xaa, + 0x13, 0x23, 0x42, 0x87, 0x11, 0xb5, 0x76, 0x54, + 0xa9, 0x4f, 0xb6, 0xc3, 0x11, 0xdb, 0x4f, 0xe1, + 0xbc, 0xeb, 0x84, 0x20, 0xd8, 0xf8, 0x39, 0xc9, + 0x53, 0x35, 0x54, 0x44, 0xe7, 0x5c, 0x51, 0x6e, + 0x6a, 0x45, 0x78, 0xa4, 0xb5, 0x01, 0xd9, 0x61, + 0x26, 0x1e, 0xe8, 0xa4, 0xc0, 0xaa, 0x52, 0xea, + 0xb4, 0x2a, 0x9b, 0x2d, 0x3f, 0xab, 0x87, 0x92, + 0x54, 0xba, 0xdc, 0x2a, 0x7d, 0x43, 0x83, 0x90, + 0xa0, 0xeb, 0x71, 0xe6, 0xa4, 0x65, 0x8a, 0xfb, + 0xac, 0x49, 0x65, 0xa7, 0x8d, 0xd8, 0xcf, 0x83, + 0x7f, 0xe1, 0xbf, 0x09, 0xcb, 0x2e, 0x95, 0x6a, + 0xdf, 0x11, 0x27, 0x51, 0xa3, 0xb5, 0x0a, 0x2d, + 0xcb, 0x4f, 0x2a, 0x8b, 0xf0, 0x98, 0x04, 0x6d, + 0x86, 0xaa, 0x0c, 0xc8, 0x26, 0x25, 0x3a, 0xcb, + 0x63, 0x90, 0x34, 0x12, 0x51, 0x59, 0x78, 0x9b, + 0x04, 0x41, 0x47, 0xd5, 0xe3, 0x4f, 0xdd, 0x34, + 0x8e, 0x2b, 0x35, 0x88, 0x14, 0x0a, 0x5c, 0xca, + 0xc5, 0x51, 0xed, 0xc4, 0x18, 0x2d, 0x2b, 0xaf, + 0xb9, 0x96, 0xa2, 0xf0, 0xa0, 0x83, 0x6d, 0x8f, + 0x84, 0xdd, 0x75, 0xc2, 0x16, 0x9a, 0x6d, 0x39, + 0xcd, 0xc3, 0x11, 0x4f, 0x0e, 0x25, 0xfe, 0x12, + 0x00, 0x0f, 0x18, 0xc0, 0xb4, 0x1c, 0x91, 0x1d, + 0x09, 0x50, 0x1d, 0x97, 0x5a, 0x18, 0x8f, 0x10, + 0xe7, 0xcc, 0x44, 0xcb, 0x54, 0xc9, 0xa2, 0x0a, + 0xa9, 0xcf, 0xa7, 0x7e, 0x59, 0x78, 0x33, 0x5c, + 0x72, 0x93, 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, + 0xa8, 0x31, 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, + 0xe4, 0x3e, 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, + 0xb5, 0xf3, 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, + 0xf9, 0x12, 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, + 0x93, 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, + 0x31, 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, + 0x3e, 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, + 0xf3, 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, + 0x12, 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, + 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, + 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, + 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, + 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, + 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, + 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, + 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, + 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, + 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, + 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, + 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, 0x4e, + 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, + 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, + 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, + 0x43, 0xea, 0x1c, 0x58, 0x1b, 0x54, 0xa3, 0x5f, + 0x66, 0xec, 0x20, 0x8c, 0xfd, 0x2a, 0xae, 0xc3, + 0x6a, 0xf9, 0x40, 0x90, 0xe0, 0x3c, 0x2f, 0x30, + 0x2a, 0x22, 0x4e, 0xc5, 0x92, 0x08, 0x1b, 0xd4, + 0x6d, 0x48, 0x77, 0x80, 0x6d, 0x34, 0xe0, 0x66, + 0x8b, 0xa4, 0x87, 0x35, 0x4c, 0x5f, 0x1b, 0x69, + 0xa3, 0xda, 0x35, 0x17, 0x68, 0xf0, 0xe9, 0xef, + 0x57, 0x6a, 0x51, 0xb2, 0x49, 0x82, 0xdc, 0x90, + 0x87, 0x0e, 0x2b, 0x84, 0x08, 0x68, 0xc1, 0x4a, + 0x56, 0xa4, 0x91, 0xbe, 0x28, 0x49, 0xbd, 0x06, + 0xd8, 0x21, 0x68, 0xb3, 0x03, 0x3d, 0xe8, 0x9b, + 0x63, 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, + 0x3e, 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, + 0xf3, 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, + 0x12, 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, + 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, + 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, + 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, + 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, + 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, + 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, + 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, + 0xc7, 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, + 0xfa, 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, + 0xce, 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, + 0x4b, 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, 0x4e, + 0x4f, 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, + 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, + 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, + 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, 0x4b, + 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, 0x4e, 0x4f, + 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, 0x29, + 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, 0x83, + 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, 0x43, + 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, 0x4b, 0x5f, + 0x39, 0x0f, 0xa8, 0x30, 0xdf, 0xe1, 0x24, 0xe2, + 0x98, 0xef, 0xac, 0xb4, 0x16, 0xff, 0x00, 0x84, + 0x4d, 0x5c, 0x1b, 0xc7, 0x11, 0x3f, 0x92, 0x07, + 0x45, 0x64, 0x49, 0x7c, 0xca, 0xe0, 0xfc, 0xb8, + 0xb4, 0xae, 0xea, 0x4d, 0xe7, 0x49, 0x1a, 0xb5, + 0x24, 0xdc, 0xd0, 0x8e, 0x2b, 0x12, 0x63, 0x3e, + 0x28, 0x12, 0x61, 0xc9, 0x11, 0x12, 0x26, 0x1e, + 0x11, 0x22, 0x1c, 0xf4, 0x98, 0x98, 0x18, 0x91, + 0x03, 0x80, 0x48, 0x42, 0xbe, 0x14, 0x4f, 0xd9, + 0x6c, 0x07, 0xf7, 0xdf, 0xb2, 0xbf, 0xd7, 0x2a, + 0x1f, 0xd4, 0xb5, 0x2f, 0xc5, 0xb6, 0x5a, 0x6c, + 0x8b, 0xda, 0x55, 0x0b, 0x67, 0x70, 0x1d, 0x20, + 0x7a, 0x65, 0x3e, 0xe2, 0xba, 0x66, 0x13, 0x66, + 0xa2, 0x4c, 0x76, 0x16, 0x9c, 0x71, 0x6d, 0xe5, + 0x77, 0x2c, 0xb2, 0x6d, 0xfb, 0x8e, 0xa1, 0x0d, + 0xc4, 0xcc, 0x87, 0x52, 0x53, 0xde, 0x0c, 0xf1, + 0x7a, 0xdc, 0xb6, 0xf5, 0xc7, 0xb3, 0xfd, 0x95, + 0xdc, 0xd7, 0x7b, 0x4c, 0xf6, 0x0a, 0x6d, 0xc5, + 0x47, 0x91, 0x71, 0x33, 0x2a, 0x23, 0xf2, 0x5a, + 0x07, 0x06, 0x93, 0x57, 0x62, 0x73, 0x2e, 0xc3, + 0x8e, 0xd3, 0xb2, 0x0d, 0x1b, 0xa8, 0x81, 0x37, + 0xbb, 0x6d, 0x92, 0x24, 0xc9, 0x33, 0x1d, 0x28, + 0xaa, 0x94, 0x36, 0xf6, 0x75, 0x57, 0xbb, 0xac, + 0xea, 0x86, 0xc6, 0x69, 0x66, 0xd3, 0xf4, 0xda, + 0xc4, 0xa1, 0xba, 0xaa, 0xb4, 0xaa, 0x2d, 0x62, + 0x91, 0x46, 0x66, 0xde, 0x72, 0x98, 0xff, 0x00, + 0x15, 0x4e, 0xac, 0x3f, 0x3a, 0x2c, 0x28, 0xb2, + 0xa4, 0xcc, 0x7c, 0xa1, 0x1d, 0x2e, 0x18, 0xa4, + 0x89, 0x21, 0x21, 0xae, 0x29, 0x05, 0xa6, 0x9b, + 0x33, 0x2d, 0x8f, 0x99, 0x51, 0x6f, 0xdb, 0xc9, + 0xa3, 0x73, 0x4c, 0x1b, 0xca, 0xa3, 0x78, 0x54, + 0x19, 0x42, 0x5e, 0xf4, 0x2a, 0x96, 0x8d, 0xd7, + 0x36, 0x14, 0xe4, 0x14, 0x53, 0xc8, 0x77, 0x94, + 0xca, 0xbd, 0x3d, 0xd3, 0x54, 0x04, 0xd7, 0xb9, + 0x55, 0xfe, 0x01, 0x2e, 0x2d, 0x5e, 0x2e, 0xa5, + 0x78, 0x5f, 0x77, 0x3a, 0x37, 0x22, 0x48, 0x56, + 0x18, 0xa0, 0x5d, 0x66, 0xd4, 0x56, 0x24, 0xc9, + 0x7d, 0x29, 0x92, 0x25, 0xdd, 0x54, 0xfb, 0x7a, + 0x5b, 0x11, 0x63, 0xb4, 0xe4, 0xc7, 0xd2, 0x94, + 0xd3, 0x54, 0x1a, 0xde, 0xee, 0x3b, 0x4f, 0xca, + 0x0e, 0x04, 0xa4, 0x41, 0x6d, 0xf9, 0x6c, 0xc6, + 0x68, 0xf6, 0x64, 0xd1, 0x3b, 0x26, 0x9e, 0x0c, + 0x56, 0x20, 0x5c, 0xe9, 0x48, 0x1a, 0x9f, 0x1b, + 0x5f, 0xa2, 0x49, 0x7e, 0x75, 0x05, 0x90, 0xa8, + 0xd3, 0xed, 0xf6, 0xdb, 0xa3, 0xc3, 0x9e, 0xfc, + 0xda, 0x9e, 0xa9, 0x6e, 0x4b, 0x84, 0xf5, 0x42, + 0xa3, 0x4f, 0x0a, 0xa4, 0xe7, 0x19, 0x90, 0x2b, + 0x54, 0x90, 0x14, 0xe8, 0xf5, 0x7a, 0x54, 0x4f, + 0xf0, 0xff, 0x00, 0x86, 0x0f, 0xf9, 0x45, 0x67, + 0x7f, 0xb1, 0xaa, 0x1f, 0xd3, 0x5b, 0xfc, 0x5b, + 0x7e, 0x57, 0x3b, 0x4c, 0x80, 0xd8, 0x12, 0xa0, + 0xbd, 0x72, 0x42, 0x07, 0x53, 0xe2, 0x30, 0x1a, + 0x75, 0x59, 0xe4, 0x12, 0xf1, 0xa2, 0x3a, 0xd3, + 0x47, 0xff, 0x00, 0x48, 0x11, 0x71, 0xc3, 0x7c, + 0x9f, 0xab, 0xee, 0xc7, 0x0d, 0xf2, 0x7e, 0xaf, + 0xbb, 0x1c, 0x37, 0xc9, 0xfa, 0xbe, 0xec, 0x70, + 0xdf, 0x27, 0xea, 0xfb, 0xb1, 0xc3, 0x7c, 0x9f, + 0xab, 0xee, 0xc7, 0x0d, 0xf2, 0x7e, 0xaf, 0xbb, + 0x1c, 0x37, 0xc9, 0xfa, 0xbe, 0xec, 0x1e, 0xce, + 0xa9, 0x2b, 0xb3, 0x40, 0xbc, 0x19, 0x95, 0x50, + 0xec, 0xce, 0x87, 0x24, 0x39, 0x10, 0xdd, 0x88, + 0xb4, 0xfe, 0x15, 0x8a, 0x98, 0xc2, 0x90, 0x60, + 0xd2, 0x42, 0x49, 0x48, 0x40, 0xdb, 0xad, 0x17, + 0x3c, 0xb2, 0x1d, 0xe1, 0x67, 0x96, 0x95, 0x41, + 0x4b, 0xcb, 0x66, 0xb0, 0x2d, 0xea, 0x05, 0xb3, + 0x32, 0x9c, 0x55, 0x69, 0x75, 0xba, 0xbc, 0x88, + 0x90, 0xa7, 0x41, 0x77, 0x87, 0x7d, 0xb1, 0x9c, + 0xfd, 0x34, 0x25, 0xb9, 0x1a, 0x0c, 0x68, 0xd0, + 0x5a, 0x95, 0xbc, 0xe2, 0x5c, 0x46, 0x5b, 0x6d, + 0xc7, 0x64, 0x38, 0xa9, 0xde, 0x64, 0x47, 0xdf, + 0x62, 0x6e, 0xcf, 0xae, 0xca, 0x75, 0x42, 0x9d, + 0x4a, 0x9b, 0x43, 0x7e, 0x3c, 0xea, 0xb2, 0xe9, + 0xa7, 0x34, 0x4e, 0xc2, 0x26, 0xe5, 0x9a, 0x67, + 0xa9, 0xb0, 0x96, 0xdc, 0x93, 0x84, 0x2e, 0x82, + 0x26, 0xa7, 0x1a, 0x76, 0x43, 0x6e, 0x36, 0x24, + 0xd9, 0x98, 0x88, 0xba, 0xda, 0x9a, 0xec, 0xba, + 0xfa, 0x1e, 0x11, 0x16, 0xd9, 0x9d, 0xfb, 0x75, + 0xe3, 0x62, 0x3e, 0x45, 0x0c, 0xbf, 0x28, 0xda, + 0x38, 0x45, 0xbe, 0x51, 0x92, 0xa9, 0x11, 0xa5, + 0x16, 0x8c, 0x9b, 0x91, 0x33, 0x71, 0x1d, 0xd1, + 0xd2, 0x4d, 0x3a, 0x68, 0xe3, 0x6a, 0x4c, 0xd9, + 0x37, 0x2c, 0x8a, 0xcb, 0xd6, 0xf3, 0x34, 0x69, + 0x47, 0x59, 0x8f, 0xa9, 0x5f, 0x83, 0x93, 0x22, + 0xac, 0x88, 0xa2, 0x12, 0xba, 0xe4, 0x82, 0x70, + 0x62, 0x03, 0x0a, 0x84, 0x1a, 0x24, 0x2c, 0x8d, + 0xc3, 0x9a, 0xdb, 0x46, 0xdc, 0x35, 0x70, 0x10, + 0xbb, 0x42, 0xba, 0x52, 0xb3, 0xda, 0xf2, 0xd1, + 0x64, 0x0d, 0x67, 0x70, 0x52, 0x46, 0x09, 0x9c, + 0x40, 0x57, 0x23, 0x80, 0xa9, 0x93, 0xcc, 0xc8, + 0x37, 0xd2, 0x23, 0xed, 0xe4, 0x24, 0x88, 0x4c, + 0xc8, 0x73, 0x51, 0x89, 0xb4, 0x39, 0xb8, 0x24, + 0x09, 0x58, 0xb1, 0x2e, 0x7a, 0x03, 0x0c, 0x49, + 0xab, 0xd2, 0x1c, 0x86, 0xcc, 0x89, 0x01, 0x11, + 0xa2, 0xe2, 0x20, 0xc8, 0x25, 0x94, 0xe3, 0x5b, + 0xe6, 0xe3, 0x9b, 0x51, 0x24, 0xc8, 0x75, 0x97, + 0x4d, 0xae, 0xf9, 0x01, 0xf6, 0xdb, 0x5f, 0x02, + 0x7c, 0x25, 0x44, 0xc5, 0x52, 0x83, 0x50, 0xa2, + 0xce, 0x7a, 0x9b, 0x54, 0x8d, 0xc2, 0x4e, 0x8f, + 0xa3, 0x7f, 0x1d, 0x5c, 0x61, 0xe5, 0x6f, 0x78, + 0x02, 0xe0, 0x66, 0xe4, 0x67, 0x1e, 0x65, 0x55, + 0x40, 0xc5, 0x72, 0x17, 0x15, 0x53, 0x3c, 0x8b, + 0x22, 0x45, 0x4c, 0x70, 0xdf, 0x27, 0xea, 0xfb, + 0xb1, 0xc3, 0x7c, 0x9f, 0xab, 0xee, 0xc7, 0x0d, + 0xf2, 0x7e, 0xaf, 0xbb, 0x1c, 0x37, 0xc9, 0xfa, + 0xbe, 0xec, 0x70, 0xdf, 0x27, 0xea, 0xfb, 0xb1, + 0xc3, 0x7c, 0x9f, 0xab, 0xee, 0xc6, 0xc9, 0x40, + 0xd9, 0xda, 0x25, 0xb4, 0x40, 0xba, 0x75, 0x3d, + 0x50, 0x6c, 0xb2, 0xfe, 0x10, 0x15, 0x1e, 0xa1, + 0x98, 0xaf, 0x8d, 0x33, 0xc9, 0x7c, 0xc4, 0x88, + 0xbe, 0x14, 0x4c, 0x26, 0x2e, 0x06, 0xcd, 0xea, + 0xf5, 0x6d, 0xd7, 0x17, 0x51, 0x9d, 0x5e, 0xa4, + 0x44, 0x4b, 0xce, 0xaa, 0xbc, 0x6b, 0xde, 0x1c, + 0x70, 0xdf, 0x27, 0xea, 0xfb, 0xb1, 0xc3, 0x7c, + 0x9f, 0xab, 0xee, 0xc5, 0xaf, 0x69, 0x59, 0xd2, + 0x6d, 0x69, 0xf7, 0x25, 0xd7, 0x2e, 0xe0, 0x8c, + 0x11, 0x6b, 0x4d, 0xd2, 0x9b, 0x1a, 0x22, 0xd3, + 0xd7, 0x56, 0xf6, 0x2b, 0x6f, 0x81, 0x1b, 0x52, + 0xe0, 0xc8, 0x2d, 0x5a, 0x95, 0xc4, 0x23, 0x17, + 0x44, 0x72, 0xd2, 0x9a, 0x33, 0xcc, 0x96, 0xe8, + 0xb0, 0xa2, 0xc5, 0x7a, 0xdd, 0x7e, 0xd0, 0x76, + 0xa3, 0x5a, 0xa7, 0x5d, 0x51, 0x8d, 0xda, 0x54, + 0x79, 0x51, 0xc3, 0xb2, 0xa0, 0xf3, 0x1a, 0x02, + 0x43, 0x0f, 0x23, 0x0d, 0x32, 0xd3, 0xb9, 0x12, + 0x93, 0x9b, 0xd1, 0x61, 0x96, 0xda, 0x6d, 0x09, + 0x0d, 0x4c, 0x1a, 0xe2, 0x9d, 0x95, 0xb3, 0xab, + 0xbe, 0x15, 0x4a, 0x05, 0x22, 0x5d, 0x09, 0xe6, + 0x27, 0xd4, 0xf7, 0x9d, 0x8f, 0x68, 0xe4, 0x53, + 0xf7, 0x52, 0x89, 0xa0, 0x37, 0x1c, 0x6d, 0xb9, + 0xa3, 0x29, 0x60, 0xef, 0x80, 0x1b, 0x22, 0x56, + 0x0e, 0x48, 0xbd, 0x92, 0x86, 0x4d, 0xae, 0xf5, + 0xad, 0x7d, 0xae, 0x55, 0x52, 0x19, 0xd4, 0x38, + 0x23, 0xe0, 0x82, 0xa4, 0x94, 0x73, 0x91, 0xa9, + 0x9d, 0x23, 0x53, 0x50, 0x57, 0x52, 0x26, 0x9d, + 0xe6, 0xf3, 0x5a, 0x80, 0xaa, 0xeb, 0xd1, 0xb9, + 0xe6, 0xcb, 0x79, 0x9a, 0xa2, 0x61, 0x8d, 0x9b, + 0xde, 0x52, 0x65, 0xd4, 0x20, 0xc7, 0xa0, 0x48, + 0x7a, 0x55, 0x29, 0x19, 0x5a, 0x83, 0x6d, 0xbf, + 0x4f, 0x24, 0x8e, 0xaf, 0xb2, 0x32, 0x1a, 0x6f, + 0x7c, 0x92, 0xf7, 0x0f, 0x3e, 0x6c, 0x90, 0xb9, + 0xc3, 0x47, 0x75, 0xd9, 0x02, 0x8a, 0x88, 0x6d, + 0x09, 0x2e, 0x58, 0xa6, 0xd8, 0x57, 0x4d, 0x5e, + 0x23, 0xd3, 0xe9, 0xd4, 0x67, 0xa4, 0x44, 0x8c, + 0xf4, 0x98, 0xf2, 0x1e, 0x57, 0xa1, 0x47, 0xdc, + 0x3f, 0x11, 0xa4, 0x7e, 0x4b, 0x6f, 0xb7, 0x2a, + 0x4b, 0x0f, 0x34, 0xad, 0x36, 0xa8, 0xaa, 0xae, + 0x36, 0x22, 0xa4, 0xbb, 0xa0, 0x52, 0x77, 0xbc, + 0xc6, 0xcf, 0x6c, 0xa8, 0x37, 0x6d, 0x52, 0x7c, + 0x6a, 0x84, 0x89, 0xad, 0xc7, 0xa7, 0x53, 0x1e, + 0xa8, 0x94, 0x5a, 0x50, 0xc6, 0x5a, 0xa4, 0xfd, + 0x04, 0x2d, 0x23, 0x10, 0x96, 0x5a, 0x14, 0x71, + 0x21, 0x37, 0x00, 0x8d, 0x4d, 0xb7, 0x75, 0xe6, + 0x0c, 0x8a, 0x02, 0xbb, 0xbe, 0x6a, 0xfc, 0xb4, + 0x60, 0xda, 0xd5, 0xb6, 0xe0, 0x53, 0xa5, 0x49, + 0x91, 0x1a, 0x45, 0x3e, 0x24, 0xf1, 0x6a, 0xa0, + 0x0c, 0x8d, 0x4a, 0x0a, 0xc9, 0x43, 0xce, 0x1d, + 0x40, 0x58, 0x10, 0x6d, 0x24, 0x86, 0x84, 0x71, + 0x72, 0x69, 0x9c, 0x85, 0xc1, 0x15, 0x6f, 0xbd, + 0xde, 0x39, 0x6c, 0x59, 0xb4, 0x29, 0x14, 0x59, + 0x57, 0x45, 0xdb, 0x53, 0x9b, 0x4e, 0xa1, 0xb1, + 0x38, 0x69, 0x71, 0x58, 0xa5, 0xb2, 0xcb, 0x95, + 0x2a, 0x8c, 0xf2, 0x67, 0x7c, 0x40, 0xc1, 0x48, + 0x6d, 0xe6, 0x59, 0x16, 0x01, 0x45, 0xc3, 0x57, + 0x18, 0x34, 0x70, 0x11, 0xc4, 0xd6, 0xca, 0x8a, + 0x11, 0x47, 0xd9, 0xb5, 0xb3, 0x36, 0xe9, 0xb6, + 0x61, 0xd3, 0xeb, 0x92, 0xa7, 0xdb, 0x77, 0x3c, + 0x2a, 0x84, 0xc6, 0x48, 0x1c, 0x84, 0xcd, 0x7a, + 0x17, 0x03, 0x12, 0x4b, 0x84, 0xcc, 0xa0, 0x28, + 0xce, 0xb5, 0xfe, 0x33, 0x1d, 0x5b, 0x57, 0x96, + 0x03, 0x42, 0x6a, 0x12, 0x23, 0x80, 0x6b, 0x63, + 0x7c, 0x54, 0x9b, 0x0e, 0xe6, 0xb8, 0x02, 0x5b, + 0xf4, 0x3a, 0x34, 0x99, 0xf1, 0x61, 0xba, 0x6d, + 0xb8, 0xfa, 0x14, 0x66, 0x43, 0x50, 0xe6, 0xbb, + 0xb6, 0xca, 0x53, 0xd1, 0xd2, 0x4b, 0xc8, 0x08, + 0x8a, 0x6d, 0x46, 0xde, 0xb8, 0x3a, 0x83, 0x50, + 0x0e, 0xf1, 0xb4, 0x2a, 0x45, 0x9b, 0x71, 0x57, + 0xa6, 0x49, 0x81, 0x49, 0xa3, 0xca, 0x97, 0x2e, + 0x16, 0xae, 0x31, 0x9d, 0x2d, 0xc6, 0xe1, 0x08, + 0x48, 0x81, 0x5b, 0x94, 0xec, 0xc3, 0x8e, 0xcc, + 0x77, 0xb5, 0x81, 0x80, 0xb0, 0xeb, 0x82, 0xf1, + 0x90, 0x38, 0x80, 0x05, 0xbb, 0x3d, 0x34, 0x9b, + 0x00, 0x9d, 0x81, 0x7c, 0xf6, 0x6a, 0x3d, 0x4e, + 0x0d, 0x66, 0xd6, 0x87, 0x11, 0xd8, 0xd0, 0x1b, + 0x46, 0x51, 0x1d, 0x93, 0x25, 0xc9, 0x01, 0xa1, + 0xf0, 0x58, 0xf2, 0x0a, 0x53, 0x2e, 0x23, 0x6d, + 0x94, 0x53, 0x84, 0xf3, 0x60, 0xf8, 0x1a, 0x3a, + 0xcb, 0xcf, 0x34, 0xe3, 0x65, 0x86, 0x6c, 0xb9, + 0x54, 0xaa, 0x7d, 0xd6, 0xdd, 0xc1, 0x6c, 0xc9, + 0x7a, 0xa3, 0x4f, 0xa5, 0xc1, 0x99, 0x1e, 0x43, + 0x15, 0x6a, 0x7a, 0x0d, 0x05, 0x24, 0x1c, 0x8c, + 0xa5, 0xd4, 0x23, 0x46, 0xaa, 0x21, 0x3e, 0x92, + 0x45, 0xb4, 0x46, 0xe3, 0x2b, 0x12, 0x5e, 0x14, + 0x6d, 0x4d, 0x58, 0x01, 0x31, 0x23, 0x3d, 0x9b, + 0x5e, 0x6d, 0xc6, 0x95, 0x30, 0xad, 0xe9, 0x5c, + 0x34, 0x28, 0xed, 0xcb, 0x90, 0xf0, 0xb9, 0x09, + 0xc4, 0x18, 0xee, 0xb3, 0xc4, 0x0b, 0x8d, 0xa3, + 0x72, 0x4c, 0xe4, 0x64, 0xc2, 0xef, 0x1c, 0x08, + 0xc2, 0xf3, 0x8c, 0x8f, 0xee, 0xc0, 0x0b, 0xcd, + 0x8a, 0x45, 0x85, 0x75, 0x57, 0xe1, 0x1d, 0x42, + 0x8f, 0x44, 0x93, 0x3a, 0x13, 0x6f, 0x6e, 0x09, + 0xf6, 0xca, 0x2b, 0x68, 0xae, 0xf7, 0xb9, 0x8b, + 0x61, 0x21, 0xf6, 0x5d, 0x7b, 0x46, 0xb1, 0xde, + 0x1b, 0x20, 0xe0, 0x35, 0xcf, 0xbc, 0x21, 0xd2, + 0x59, 0x54, 0x28, 0xd3, 0x29, 0x53, 0x64, 0xd3, + 0x6a, 0x2c, 0x70, 0xd3, 0xa1, 0xb9, 0xb9, 0x92, + 0xc2, 0x93, 0x4e, 0xab, 0x4e, 0x69, 0x42, 0xd2, + 0xae, 0x30, 0x6e, 0xb2, 0x5d, 0xe9, 0x0a, 0xe6, + 0xdb, 0x84, 0x3c, 0xfe, 0x1c, 0xf1, 0xc3, 0x7c, + 0x9f, 0xab, 0xee, 0xc7, 0x0d, 0xf2, 0x7e, 0xaf, + 0xbb, 0x1f, 0x83, 0xaa, 0x18, 0x39, 0x77, 0xb5, + 0xa9, 0x74, 0x6e, 0xe8, 0x2e, 0x20, 0xff, 0x00, + 0x05, 0x0f, 0x55, 0x60, 0x54, 0x91, 0x3e, 0x25, + 0x51, 0x44, 0x45, 0xf1, 0xa0, 0x8e, 0x7e, 0x04, + 0xcb, 0xf6, 0x5b, 0x01, 0xfd, 0xf7, 0xec, 0xaf, + 0xf5, 0xca, 0x87, 0xf5, 0x2d, 0x4b, 0xf1, 0x0e, + 0xcd, 0xbb, 0x69, 0xbd, 0xef, 0x1b, 0x9a, 0xf2, + 0x8b, 0x52, 0x61, 0x8c, 0xe9, 0x94, 0x2b, 0x4c, + 0x20, 0x5c, 0x75, 0x3a, 0x5b, 0x8b, 0x44, 0x81, + 0x19, 0x64, 0xcb, 0x94, 0x6b, 0x6f, 0xd4, 0xe2, + 0x9e, 0xe6, 0xa1, 0x54, 0x96, 0xe9, 0x84, 0x79, + 0xa7, 0xbd, 0x6c, 0xa3, 0x91, 0xf0, 0xed, 0x21, + 0x89, 0xb9, 0x44, 0xb1, 0xae, 0x8a, 0x2c, 0x88, + 0x14, 0x06, 0x69, 0x52, 0x0e, 0xdd, 0xb6, 0xf6, + 0xac, 0x97, 0x05, 0x0a, 0x7b, 0xb5, 0x28, 0x4f, + 0x92, 0xda, 0xd5, 0x3a, 0x4d, 0x4d, 0xe9, 0x48, + 0x7b, 0xf9, 0xc7, 0x51, 0x71, 0xca, 0x6d, 0x5e, + 0x53, 0xac, 0xba, 0xb2, 0x45, 0x66, 0x4a, 0xe3, + 0x41, 0xc6, 0xc1, 0xf0, 0x6d, 0xe7, 0x92, 0xe3, + 0xb7, 0xaa, 0xf4, 0xdb, 0xde, 0x83, 0x7b, 0xda, + 0xb0, 0x0a, 0x63, 0x93, 0x74, 0x5b, 0xd7, 0xbd, + 0x39, 0x87, 0xe2, 0x45, 0xe3, 0xe8, 0x64, 0x2e, + 0x14, 0x0a, 0xce, 0x52, 0xa4, 0x44, 0x61, 0xe9, + 0xf4, 0x09, 0x39, 0x20, 0xa9, 0x38, 0x72, 0x5e, + 0xa7, 0xbe, 0xe4, 0x46, 0x53, 0x26, 0xc1, 0x12, + 0xaf, 0x61, 0xdf, 0x43, 0x6c, 0x38, 0xed, 0x0a, + 0x9d, 0xba, 0xba, 0x23, 0x5f, 0xd7, 0xdc, 0x98, + 0x42, 0x53, 0xa0, 0x37, 0xff, 0x00, 0x17, 0x6f, + 0x25, 0xab, 0x53, 0x9d, 0xa8, 0x0b, 0xe9, 0x2b, + 0x74, 0x3b, 0xa8, 0xf3, 0x62, 0x55, 0x5b, 0x8e, + 0xae, 0xb7, 0x31, 0x1d, 0x86, 0xd0, 0xee, 0x45, + 0xf1, 0x40, 0xc5, 0xab, 0x69, 0x4d, 0xb7, 0xef, + 0xba, 0xdc, 0xa6, 0xe1, 0x93, 0x76, 0xef, 0x69, + 0x96, 0x75, 0x02, 0x93, 0x2d, 0x5d, 0x8c, 0xbb, + 0xe7, 0x28, 0x7d, 0x93, 0x6d, 0xe6, 0x55, 0x80, + 0x75, 0x64, 0x36, 0xad, 0x32, 0xf4, 0x75, 0x57, + 0x1d, 0x61, 0xb6, 0xdc, 0x53, 0x5d, 0xd9, 0x9a, + 0xa1, 0x65, 0xfe, 0x1f, 0xf0, 0xc1, 0xff, 0x00, + 0x28, 0xac, 0xef, 0xf6, 0x35, 0x43, 0xfa, 0x6b, + 0x7f, 0x8b, 0x6e, 0x4d, 0x6f, 0xad, 0x4a, 0x68, + 0xf8, 0xae, 0x38, 0xa5, 0xff, 0x00, 0x65, 0xd6, + 0x13, 0xff, 0x00, 0x1c, 0x70, 0x3e, 0x6f, 0xa3, + 0xee, 0xc7, 0x03, 0xe6, 0xfa, 0x3e, 0xec, 0x70, + 0x3e, 0x6f, 0xa3, 0xee, 0xc7, 0x03, 0xe6, 0xfa, + 0x3e, 0xec, 0x70, 0x3e, 0x6f, 0xa3, 0xee, 0xc7, + 0x03, 0xe6, 0xfa, 0x3e, 0xec, 0x70, 0x3e, 0x6f, + 0xa3, 0xee, 0xc5, 0xae, 0xc4, 0x69, 0x16, 0xfd, + 0x91, 0x45, 0x96, 0xa9, 0xc3, 0x56, 0x69, 0xd7, + 0x8d, 0x2d, 0xfc, 0xf4, 0xae, 0x9d, 0xe4, 0x98, + 0x73, 0x1b, 0x55, 0x15, 0xcb, 0x9f, 0x79, 0x0c, + 0x74, 0xf8, 0x39, 0xfc, 0x18, 0x95, 0x58, 0x83, + 0xc6, 0xdb, 0xf5, 0x5a, 0x83, 0xcd, 0x84, 0x46, + 0x76, 0x87, 0x70, 0x36, 0x8f, 0x19, 0x0a, 0x34, + 0xc3, 0x6d, 0x44, 0x93, 0x4e, 0x8a, 0xf9, 0x97, + 0x30, 0xb6, 0xc8, 0xe8, 0x6c, 0x95, 0xd2, 0xc8, + 0x00, 0x57, 0x78, 0x6a, 0x82, 0x84, 0xa9, 0x39, + 0x56, 0x15, 0x4a, 0xd5, 0xa5, 0xca, 0x8f, 0x05, + 0x87, 0x1e, 0xbb, 0xd6, 0xab, 0x1c, 0x52, 0xe4, + 0xa9, 0xd7, 0xe6, 0xee, 0x91, 0x99, 0xa0, 0x73, + 0x57, 0xb2, 0x31, 0x41, 0x62, 0xc5, 0x91, 0xbc, + 0xd0, 0x8c, 0x8c, 0x8d, 0xd3, 0x6e, 0x11, 0x03, + 0x20, 0x5a, 0x5c, 0x21, 0x9f, 0x56, 0xab, 0x95, + 0xa1, 0xb4, 0x27, 0x52, 0xa9, 0x34, 0x64, 0x76, + 0xf0, 0x4d, 0x30, 0xe0, 0x4a, 0x79, 0x1c, 0x66, + 0x2e, 0xfd, 0x94, 0x46, 0x63, 0x12, 0x1e, 0xb6, + 0x58, 0x41, 0x01, 0x44, 0x06, 0x95, 0x07, 0x24, + 0x5f, 0x19, 0x2a, 0xd4, 0xf5, 0x4e, 0xae, 0x5e, + 0xd4, 0x68, 0x15, 0x16, 0xa9, 0xd5, 0xfa, 0xdd, + 0x26, 0xda, 0x2a, 0x6c, 0xb3, 0x7d, 0x63, 0x2c, + 0x81, 0x87, 0x14, 0x8a, 0x5c, 0x50, 0x94, 0x19, + 0x9b, 0x6e, 0x18, 0xb9, 0x9a, 0xa3, 0x79, 0x99, + 0x8a, 0x91, 0x64, 0xa2, 0xca, 0xaa, 0x52, 0xbf, + 0x68, 0xd7, 0xac, 0xca, 0x3c, 0xe9, 0xed, 0x54, + 0x6e, 0x0a, 0x1d, 0x0e, 0xe1, 0xec, 0x9c, 0xe0, + 0x7b, 0x88, 0xdc, 0x8c, 0xa6, 0x84, 0xe1, 0xc3, + 0x72, 0x49, 0xf7, 0xef, 0x38, 0xd2, 0x36, 0xa7, + 0x93, 0xd9, 0x18, 0x8a, 0x89, 0x28, 0xe4, 0xf2, + 0x67, 0xb3, 0x42, 0x1a, 0xfb, 0x75, 0x0a, 0x1d, + 0x7a, 0x4b, 0xb2, 0x11, 0x8a, 0x95, 0x2e, 0xec, + 0x61, 0xf9, 0x66, 0xe3, 0xe6, 0x4e, 0xd2, 0xdd, + 0x68, 0x66, 0x36, 0xe3, 0x8e, 0x12, 0x99, 0x0b, + 0x8c, 0x84, 0x64, 0x44, 0xcd, 0x50, 0x40, 0x5e, + 0xcd, 0x15, 0x39, 0xb1, 0x5e, 0x78, 0xeb, 0x75, + 0xaa, 0xa5, 0x58, 0xd3, 0xfc, 0x7e, 0x74, 0x89, + 0x01, 0x9a, 0x78, 0x1a, 0x37, 0x0b, 0x70, 0x3f, + 0xfe, 0x16, 0x74, 0x0f, 0xfb, 0xb1, 0xc0, 0xf9, + 0xbe, 0x8f, 0xbb, 0x1c, 0x0f, 0x9b, 0xe8, 0xfb, + 0xb1, 0xc0, 0xf9, 0xbe, 0x8f, 0xbb, 0x1c, 0x0f, + 0x9b, 0xe8, 0xfb, 0xb1, 0xc0, 0xf9, 0xbe, 0x8f, + 0xbb, 0x1c, 0x0f, 0x9b, 0xe8, 0xfb, 0xb1, 0xb3, + 0x18, 0x9b, 0xbb, 0xf2, 0xdc, 0x3c, 0xbe, 0x0c, + 0x89, 0xbf, 0xd5, 0x53, 0xd3, 0x09, 0x8a, 0xcc, + 0x2c, 0xeb, 0x15, 0x65, 0xcb, 0xc3, 0x54, 0xa8, + 0x2f, 0x83, 0xc7, 0x2d, 0xef, 0x36, 0x38, 0x1f, + 0x37, 0xd1, 0xf7, 0x63, 0x81, 0xf3, 0x7d, 0x1f, + 0x76, 0x2d, 0x5a, 0xa3, 0xb6, 0xee, 0xcf, 0x2a, + 0xb2, 0x98, 0x83, 0x4b, 0x9e, 0xe9, 0x5d, 0x11, + 0xdb, 0xe1, 0xaa, 0xf1, 0x4a, 0x64, 0x5d, 0x2e, + 0x40, 0x6f, 0x37, 0x37, 0x00, 0xf3, 0x05, 0xbc, + 0x1d, 0x19, 0x01, 0xeb, 0xc9, 0x33, 0x2e, 0x65, + 0xcf, 0x16, 0xb5, 0xdf, 0x2e, 0xb5, 0x75, 0x94, + 0x8a, 0xdc, 0xa8, 0x34, 0xb3, 0x72, 0xdf, 0x9d, + 0x45, 0xa0, 0x94, 0x76, 0x78, 0x4a, 0x6d, 0x22, + 0x4b, 0xe8, 0xc6, 0xeb, 0x70, 0x24, 0x6e, 0x13, + 0x3b, 0xd5, 0x65, 0x7f, 0x2a, 0xf3, 0xce, 0x1e, + 0xbd, 0x11, 0xc0, 0xc5, 0xa5, 0x69, 0x91, 0xab, + 0x8d, 0x4e, 0xcf, 0xb6, 0xe9, 0x90, 0x6b, 0x95, + 0x66, 0xea, 0x77, 0x0b, 0x57, 0x54, 0x6a, 0xf5, + 0x38, 0x02, 0x59, 0xce, 0x7a, 0x14, 0x38, 0x83, + 0x93, 0xae, 0xab, 0xef, 0x22, 0x3e, 0x2d, 0xca, + 0x74, 0x48, 0x11, 0xa5, 0x1d, 0xd2, 0xa9, 0x1a, + 0x0e, 0xa5, 0x17, 0x11, 0x34, 0x5b, 0xce, 0x54, + 0x52, 0xd8, 0xd6, 0xd7, 0x63, 0xe6, 0x0a, 0xed, + 0x01, 0x5c, 0x11, 0x0c, 0xd2, 0x67, 0x66, 0x5a, + 0xa9, 0x0c, 0x7e, 0x72, 0x54, 0xef, 0xa9, 0x8d, + 0x9c, 0x65, 0x04, 0x4c, 0xf8, 0x7f, 0xca, 0x22, + 0x0f, 0x36, 0x2d, 0x2a, 0x80, 0xdc, 0x14, 0xb9, + 0x4f, 0x30, 0xd4, 0x77, 0xea, 0x6d, 0xdd, 0xd3, + 0x6b, 0xb3, 0x59, 0x7e, 0xe2, 0xa8, 0xd0, 0x37, + 0x0c, 0xca, 0x54, 0x38, 0xd3, 0x88, 0xa0, 0xb6, + 0xf1, 0x4e, 0x8e, 0xcb, 0x40, 0x31, 0xb8, 0x59, + 0x03, 0xb8, 0xc9, 0x85, 0x42, 0x4f, 0x83, 0xaa, + 0xe6, 0xa8, 0x38, 0xfd, 0x9d, 0x5a, 0x93, 0x4e, + 0x91, 0xc3, 0x0d, 0x43, 0x68, 0xb3, 0x5c, 0x73, + 0xb1, 0xf2, 0x9d, 0x56, 0xa4, 0x34, 0x74, 0xcf, + 0xca, 0x28, 0xbd, 0xa2, 0x3b, 0x8f, 0x46, 0x90, + 0xf0, 0xef, 0xbb, 0xf6, 0x80, 0x5c, 0xd4, 0x3a, + 0x83, 0x99, 0x31, 0xb3, 0x58, 0x0f, 0x2d, 0x32, + 0xbb, 0xda, 0xf3, 0xf4, 0xe8, 0x97, 0x90, 0xbb, + 0x04, 0xa1, 0x3d, 0x50, 0xd2, 0x8a, 0x94, 0x91, + 0x74, 0x4a, 0x6b, 0x71, 0xb5, 0xb6, 0xe6, 0x94, + 0x74, 0x93, 0x75, 0x28, 0xc1, 0xb5, 0x2d, 0x06, + 0xd8, 0x29, 0x37, 0xbc, 0x6c, 0xf1, 0xb5, 0x3a, + 0x4d, 0x05, 0xd8, 0x1c, 0x7d, 0x3c, 0x68, 0x03, + 0x59, 0x5a, 0xb2, 0x2d, 0xca, 0x50, 0xdf, 0x57, + 0xa7, 0x15, 0x49, 0xd8, 0x60, 0x2a, 0xc3, 0x19, + 0x89, 0x2a, 0x47, 0x15, 0x17, 0x5d, 0x90, 0x2b, + 0xb8, 0x1d, 0xe8, 0x6b, 0x31, 0xe2, 0x95, 0xd1, + 0x5a, 0x0d, 0x1c, 0x6e, 0xdb, 0x2b, 0xb5, 0x58, + 0x72, 0xe1, 0xc6, 0xad, 0x52, 0xeb, 0x8e, 0x55, + 0xa3, 0x46, 0x9a, 0xef, 0x0e, 0x13, 0xa1, 0xc8, + 0x8a, 0xac, 0xbd, 0xba, 0x24, 0x02, 0x53, 0x71, + 0x82, 0xcc, 0xcd, 0x74, 0x1a, 0xb6, 0x08, 0x28, + 0x5a, 0x45, 0xc1, 0x5c, 0x5b, 0x16, 0xad, 0x3a, + 0xd5, 0xbf, 0x2d, 0x68, 0xad, 0xd4, 0xc2, 0x75, + 0x59, 0x21, 0x55, 0x1c, 0xae, 0x36, 0xca, 0xb4, + 0x71, 0x21, 0x4a, 0x3a, 0x6c, 0xe4, 0x69, 0x96, + 0x9e, 0x1d, 0x27, 0xab, 0x74, 0x42, 0x86, 0xd3, + 0xe3, 0xbc, 0xe6, 0x47, 0xf3, 0x10, 0x90, 0xdb, + 0x2d, 0xd2, 0xa9, 0xd5, 0x2a, 0xfd, 0xb9, 0x6b, + 0xb1, 0x6d, 0x57, 0x18, 0xa4, 0x95, 0xbb, 0x3e, + 0x71, 0xd7, 0xa3, 0xac, 0xe7, 0x21, 0x98, 0x93, + 0xb5, 0x03, 0x94, 0xdc, 0xd7, 0x05, 0xb4, 0xfd, + 0xb2, 0xd9, 0x30, 0x86, 0xa2, 0x2f, 0x64, 0xca, + 0xe6, 0x6d, 0x21, 0x64, 0xd9, 0xa0, 0xbe, 0xeb, + 0x57, 0x57, 0x6f, 0x94, 0xbb, 0x4a, 0xa5, 0x1e, + 0x9d, 0x54, 0x9d, 0x57, 0xa5, 0xcc, 0x69, 0xf4, + 0x96, 0x50, 0x7b, 0x29, 0x1a, 0x14, 0x68, 0xd1, + 0xa6, 0xbd, 0x1d, 0xf6, 0x33, 0x73, 0x76, 0x52, + 0x18, 0x71, 0xc2, 0x71, 0x94, 0x24, 0x31, 0x36, + 0xcc, 0xf2, 0x19, 0x39, 0xad, 0x1a, 0x6b, 0xd4, + 0x1a, 0xa5, 0xf9, 0x50, 0xab, 0x55, 0x58, 0xbb, + 0x1f, 0xa6, 0xd2, 0x68, 0x1c, 0x43, 0xad, 0x03, + 0x2c, 0x0a, 0xb9, 0x11, 0x65, 0x23, 0x90, 0x90, + 0x5b, 0x43, 0x67, 0x7b, 0x0d, 0xdc, 0xf5, 0x69, + 0x42, 0x25, 0x75, 0x14, 0x9e, 0x40, 0x92, 0xaf, + 0x00, 0x4f, 0xa5, 0x24, 0x46, 0x36, 0xad, 0x29, + 0xb9, 0x27, 0x32, 0x1d, 0xc3, 0x44, 0xa5, 0xd6, + 0x29, 0xf2, 0x9d, 0x71, 0x5c, 0x37, 0xa3, 0x4d, + 0x39, 0x8e, 0xa3, 0x7a, 0xcd, 0x75, 0x92, 0x46, + 0x55, 0x56, 0x1b, 0x45, 0x55, 0x24, 0x8e, 0x0c, + 0xe7, 0xcf, 0x8e, 0x36, 0x62, 0xdf, 0xb0, 0x21, + 0xf1, 0x8f, 0x76, 0x3d, 0x2c, 0x4d, 0x0b, 0x15, + 0x1f, 0x3e, 0x14, 0x88, 0xa9, 0xce, 0xb8, 0x4a, + 0x6c, 0xea, 0xdd, 0x11, 0xeb, 0x11, 0x5d, 0x4a, + 0x3a, 0xbb, 0xd4, 0x4c, 0xf2, 0xc5, 0xbd, 0x06, + 0x75, 0x52, 0x85, 0x61, 0x3f, 0x45, 0xad, 0xb1, + 0x4c, 0x89, 0x6e, 0x4f, 0x7d, 0xba, 0xf4, 0x52, + 0x9a, 0xe4, 0x62, 0x57, 0x5e, 0xa9, 0x03, 0xc3, + 0xad, 0xa0, 0x4c, 0xa5, 0x14, 0xb6, 0x8f, 0x43, + 0x6d, 0x3b, 0x90, 0xfe, 0xd8, 0x44, 0x6d, 0x4b, + 0x32, 0x44, 0xda, 0x1c, 0x4d, 0x77, 0xb5, 0xca, + 0x79, 0x7c, 0x2a, 0x8a, 0xaf, 0xff, 0x00, 0xa0, + 0xcf, 0x9b, 0x1c, 0x0f, 0x9b, 0xe8, 0xfb, 0xb1, + 0xc0, 0xf9, 0xbe, 0x8f, 0xbb, 0x1b, 0x05, 0x63, + 0x72, 0xfd, 0xd3, 0xcd, 0x96, 0xa6, 0xa8, 0xbf, + 0x41, 0xd5, 0xbf, 0xf3, 0xfd, 0x9e, 0xc0, 0x7f, + 0x7d, 0xfb, 0x2b, 0xfd, 0x72, 0xa1, 0xfd, 0x4b, + 0x52, 0xfc, 0x46, 0x60, 0xda, 0x6a, 0x33, 0x10, + 0x14, 0xf0, 0x91, 0x92, 0x0a, 0x27, 0xfb, 0xd7, + 0x24, 0xc0, 0x98, 0x9a, 0x21, 0x01, 0x09, 0x8a, + 0xf8, 0x08, 0x55, 0x09, 0x17, 0xe4, 0x54, 0xe6, + 0xfc, 0x4a, 0xa8, 0x9e, 0x15, 0x44, 0xe7, 0x44, + 0xe7, 0x5c, 0xb9, 0xd7, 0x99, 0x13, 0xe5, 0x55, + 0xf0, 0x7e, 0x33, 0x90, 0xc3, 0x4b, 0xa5, 0xd7, + 0x9a, 0x6c, 0xb2, 0xcf, 0x23, 0x70, 0x01, 0x72, + 0xf0, 0x67, 0x91, 0x2a, 0x2e, 0x59, 0xf3, 0x67, + 0x8d, 0xf3, 0x3a, 0x48, 0xf7, 0xad, 0xe9, 0x15, + 0xc8, 0x8b, 0x58, 0xe9, 0x15, 0xe6, 0xe6, 0x25, + 0xcf, 0x24, 0x5e, 0x74, 0xe6, 0x5f, 0x1a, 0x78, + 0xff, 0x00, 0x10, 0x18, 0x38, 0x9a, 0x9b, 0x31, + 0x31, 0xf0, 0x6a, 0x02, 0x42, 0x4c, 0xd3, 0xc2, + 0x99, 0xa2, 0xaa, 0x73, 0x60, 0x4c, 0x0f, 0x56, + 0x83, 0x12, 0xd2, 0xba, 0x4b, 0x49, 0x22, 0xe9, + 0x2f, 0x11, 0x65, 0xe0, 0x5f, 0x32, 0xf3, 0xe3, + 0x7a, 0xde, 0x44, 0x5b, 0xc0, 0xc8, 0x15, 0x50, + 0xd7, 0x58, 0xe4, 0x0a, 0x9e, 0x14, 0x25, 0xcf, + 0xbd, 0x54, 0xcd, 0x33, 0x45, 0xc0, 0xca, 0x8c, + 0x4a, 0x82, 0x32, 0x18, 0x22, 0x5e, 0x64, 0x11, + 0x75, 0xb5, 0x55, 0x5f, 0x32, 0x21, 0x66, 0xbf, + 0xe0, 0x3f, 0x0c, 0x1f, 0xf2, 0x8a, 0xce, 0xff, + 0x00, 0x63, 0x54, 0x3f, 0xa6, 0xb7, 0xf8, 0xae, + 0xcb, 0x79, 0xab, 0x9e, 0x8b, 0x22, 0x98, 0x66, + 0x8d, 0x3b, 0xa8, 0x24, 0x44, 0x79, 0x73, 0x54, + 0x6a, 0x53, 0x39, 0xee, 0xc8, 0x91, 0x33, 0xcc, + 0x08, 0x48, 0xda, 0x73, 0x99, 0x57, 0x76, 0xe1, + 0x28, 0xf7, 0xc8, 0x8b, 0x87, 0xb6, 0x69, 0x76, + 0x32, 0xe1, 0x02, 0x52, 0x09, 0xe4, 0x45, 0x54, + 0x17, 0x58, 0x93, 0x08, 0xdb, 0x34, 0x4f, 0xe1, + 0x0e, 0x6f, 0x83, 0x82, 0x8b, 0xf1, 0x23, 0x8d, + 0xb6, 0x5f, 0xc9, 0xc7, 0x73, 0x9b, 0xb3, 0xa0, + 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, 0x9b, + 0xb3, 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, + 0x73, 0x9b, 0xb3, 0xa0, 0xe4, 0x7a, 0x68, 0x5f, + 0x68, 0xc7, 0x73, 0x9b, 0xb3, 0xa0, 0xe4, 0x7a, + 0x68, 0x5f, 0x68, 0xc7, 0x73, 0x9b, 0xb3, 0xa0, + 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, 0x9b, + 0xb3, 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, + 0x73, 0x8b, 0xaf, 0xa0, 0x9f, 0xe7, 0xf0, 0xfe, + 0x56, 0x17, 0x3f, 0xff, 0x00, 0xb8, 0xc7, 0x73, + 0x8b, 0xb3, 0xa0, 0x9f, 0xf4, 0xb0, 0xbe, 0xd1, + 0x8e, 0xe6, 0xf7, 0x5f, 0x83, 0xb0, 0x2f, 0xe5, + 0xe2, 0xde, 0xc2, 0xfb, 0x46, 0x3b, 0x9c, 0x5d, + 0x7d, 0x04, 0xff, 0x00, 0x37, 0x32, 0x7e, 0x56, + 0x17, 0x32, 0x7a, 0xc6, 0x3b, 0x9c, 0x5d, 0x79, + 0x65, 0xd8, 0x27, 0xf2, 0xf1, 0x6f, 0x61, 0x65, + 0xfd, 0x23, 0x1d, 0xce, 0x2e, 0xbc, 0xb2, 0xec, + 0x13, 0xf9, 0x78, 0xb7, 0xb0, 0xb2, 0xfe, 0x91, + 0x8a, 0x55, 0x06, 0xed, 0xa4, 0x51, 0xaa, 0x34, + 0xd8, 0xd6, 0x78, 0x71, 0xb5, 0x10, 0x7e, 0x39, + 0xd6, 0x56, 0x44, 0x34, 0x96, 0xdc, 0x19, 0x22, + 0xd8, 0xbd, 0x10, 0x45, 0x1c, 0xcc, 0x91, 0x74, + 0x9a, 0x89, 0xef, 0xd1, 0x05, 0x5c, 0xfd, 0xcd, + 0x74, 0x22, 0xaf, 0x73, 0x9b, 0xb3, 0xa0, 0xe4, + 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, 0x9b, 0xb3, + 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, + 0x9b, 0xb3, 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, + 0xc7, 0x73, 0x9b, 0xb3, 0xa0, 0xe4, 0x7a, 0x68, + 0x5f, 0x68, 0xc7, 0x73, 0x9b, 0xb3, 0xa0, 0xe4, + 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, 0x9b, 0xb3, + 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, 0xc7, 0x73, + 0x9b, 0xb3, 0xa0, 0xe4, 0x7a, 0x68, 0x5f, 0x68, + 0xc6, 0xcf, 0xf6, 0x79, 0x36, 0x8f, 0x52, 0x0a, + 0xdd, 0x60, 0x02, 0x3b, 0xf1, 0x81, 0xd1, 0x87, + 0x10, 0x5d, 0x6d, 0xd7, 0x01, 0xc7, 0x9b, 0x26, + 0x4d, 0xe7, 0x8d, 0x95, 0x36, 0x93, 0xf2, 0x2e, + 0x38, 0x00, 0x00, 0xe1, 0xfc, 0x35, 0x52, 0xcb, + 0x24, 0x4f, 0xc5, 0x77, 0xec, 0xc6, 0xa8, 0x75, + 0x49, 0x75, 0x0a, 0x23, 0x03, 0x36, 0x2c, 0xd7, + 0x9c, 0x92, 0xb1, 0xd1, 0xe6, 0x5a, 0x7e, 0x33, + 0x8e, 0x2e, 0xb7, 0x47, 0xf6, 0xc1, 0xb4, 0x0e, + 0xb6, 0xae, 0x29, 0x2b, 0x7a, 0x0d, 0x5c, 0x44, + 0x54, 0x05, 0x15, 0x54, 0xd4, 0xbd, 0xce, 0x6e, + 0xce, 0x83, 0x91, 0xe9, 0xa1, 0x7d, 0xa3, 0x1d, + 0xce, 0x6e, 0xce, 0x83, 0x91, 0xe9, 0xa1, 0x7d, + 0xa3, 0x1d, 0xce, 0x2e, 0xcf, 0x0f, 0x60, 0x9f, + 0xcf, 0xfd, 0x2c, 0x2f, 0xb4, 0x63, 0xb9, 0xcd, + 0xd9, 0xd0, 0x72, 0x3d, 0x34, 0x2f, 0xb4, 0x61, + 0x36, 0x71, 0x75, 0xa7, 0x82, 0x84, 0xfa, 0x7c, + 0x8e, 0xc2, 0xfb, 0x46, 0x3b, 0x9c, 0x5d, 0x7e, + 0x0e, 0xc1, 0x3f, 0x97, 0x87, 0xf7, 0x58, 0x5e, + 0x1f, 0x1f, 0xf8, 0xc6, 0x3b, 0x9c, 0x5d, 0x6b, + 0xe1, 0xa1, 0x3e, 0xbf, 0xfe, 0x6c, 0x2f, 0xb4, + 0x63, 0xb9, 0xc5, 0xd9, 0xe1, 0xec, 0x13, 0xf9, + 0xff, 0x00, 0xa5, 0x85, 0xf6, 0x8c, 0x2e, 0xce, + 0x2e, 0xb5, 0xf0, 0xd0, 0x9f, 0x5f, 0x95, 0xd8, + 0x5f, 0x68, 0xc7, 0x73, 0x8b, 0xb3, 0xa0, 0x9f, + 0xf4, 0xb0, 0xbe, 0xd1, 0x85, 0xd9, 0xc5, 0xd6, + 0xbe, 0x1a, 0x13, 0xeb, 0xf2, 0xbb, 0x0b, 0xed, + 0x18, 0xee, 0x71, 0x75, 0xe5, 0x97, 0x60, 0x9f, + 0xcb, 0xc5, 0xbd, 0x85, 0x97, 0xf4, 0x8c, 0x2e, + 0xce, 0x2e, 0xb5, 0xf0, 0xd0, 0x9f, 0x5f, 0x95, + 0xd8, 0x5f, 0x68, 0xc2, 0xec, 0xe2, 0xeb, 0x5f, + 0x0d, 0x09, 0xf5, 0xf9, 0x5d, 0x85, 0xf6, 0x8c, + 0x77, 0x38, 0xba, 0xf9, 0xbf, 0xe0, 0x27, 0xf9, + 0xbc, 0x1f, 0x95, 0x85, 0xcd, 0xf2, 0x7e, 0xd8, + 0xc7, 0x73, 0x7b, 0xaf, 0xa0, 0x9f, 0xf1, 0xfe, + 0xeb, 0x0b, 0xc3, 0xe3, 0xff, 0x00, 0x18, 0xc7, + 0x73, 0x7b, 0xaf, 0xc1, 0xd8, 0x27, 0xf2, 0xff, + 0x00, 0x4b, 0x0b, 0xed, 0x18, 0xa1, 0xd2, 0x2e, + 0x1a, 0x4c, 0x68, 0xcd, 0xc9, 0xd9, 0xdc, 0x0a, + 0xa4, 0xc8, 0x06, 0x45, 0x06, 0xa4, 0xf3, 0xb0, + 0x19, 0x94, 0xc2, 0x6f, 0x09, 0xe0, 0x43, 0x24, + 0xdf, 0x13, 0xca, 0xd3, 0xc6, 0x44, 0x07, 0xad, + 0xa2, 0x40, 0xd2, 0xdf, 0xf0, 0x50, 0xf1, 0x51, + 0xb2, 0x2f, 0x5a, 0xa4, 0xf9, 0x75, 0x19, 0x74, + 0x57, 0x8a, 0x4c, 0xd7, 0xdc, 0x90, 0xf2, 0x8b, + 0x90, 0xc4, 0x35, 0xb8, 0xb9, 0xe9, 0x01, 0xe2, + 0x57, 0x48, 0x02, 0x64, 0x00, 0x8a, 0xaa, 0xa8, + 0x22, 0x99, 0x91, 0x2e, 0x6a, 0xbd, 0xce, 0x6e, + 0xce, 0x83, 0x91, 0xe9, 0xa1, 0x7d, 0xa3, 0x03, + 0xb3, 0x7b, 0xb4, 0x89, 0x07, 0xb0, 0x8f, 0x26, + 0x6b, 0x96, 0x67, 0x22, 0x08, 0x8a, 0x79, 0xd4, + 0x8a, 0x4a, 0x22, 0x27, 0xd3, 0xe2, 0x45, 0x5c, + 0x58, 0x56, 0x82, 0xda, 0x74, 0xf9, 0x09, 0x20, + 0xc1, 0xca, 0x85, 0x44, 0xda, 0x72, 0x5a, 0xb4, + 0xaa, 0xad, 0x36, 0x0c, 0x09, 0xa3, 0x11, 0xc0, + 0x95, 0x07, 0x5e, 0xef, 0x7a, 0xf1, 0x11, 0xe5, + 0xdf, 0x13, 0x8b, 0x97, 0x7a, 0x89, 0xfb, 0x3d, + 0x80, 0xfe, 0xfb, 0xf6, 0x57, 0xfa, 0xe5, 0x43, + 0xfa, 0x96, 0xa5, 0xf8, 0xa6, 0x53, 0x22, 0xed, + 0x07, 0x69, 0x97, 0x0d, 0x12, 0xe3, 0x6d, 0x27, + 0xdb, 0x16, 0x2d, 0x26, 0x80, 0x51, 0xad, 0xf7, + 0x88, 0xfb, 0x1d, 0x50, 0xad, 0xdc, 0x6d, 0x4e, + 0x94, 0x75, 0x4a, 0x94, 0x61, 0x54, 0x6a, 0x7a, + 0xc2, 0x87, 0x14, 0x23, 0x42, 0x62, 0x5e, 0xf5, + 0x98, 0xce, 0x1b, 0x92, 0x5a, 0x69, 0x1e, 0x35, + 0x73, 0x0b, 0x4d, 0x81, 0xb1, 0x98, 0xd7, 0x9d, + 0xc9, 0x11, 0xe7, 0x96, 0xce, 0x90, 0xdd, 0x2d, + 0xfa, 0x55, 0x97, 0x0c, 0x4c, 0xd6, 0x1d, 0x7d, + 0xf7, 0x8a, 0x13, 0xed, 0x52, 0x37, 0xef, 0xab, + 0x71, 0x99, 0xac, 0x49, 0x91, 0x07, 0xf6, 0xa3, + 0x43, 0xba, 0x69, 0xcd, 0xeb, 0xa0, 0x0d, 0xb2, + 0xc8, 0x36, 0x47, 0xb4, 0x9b, 0x86, 0x8e, 0x73, + 0xe1, 0x5d, 0xf6, 0x94, 0x5a, 0x35, 0x51, 0x2d, + 0x1a, 0xd5, 0xd7, 0x45, 0x08, 0x35, 0xe4, 0xaa, + 0xc0, 0xa8, 0xf6, 0x06, 0x2a, 0x48, 0xa8, 0xd1, + 0xe4, 0x4c, 0xec, 0x74, 0x47, 0x22, 0x54, 0x63, + 0x6f, 0x23, 0x93, 0xaa, 0xd4, 0x69, 0x91, 0x49, + 0x87, 0xb7, 0xb1, 0xdf, 0x7f, 0x76, 0x43, 0x8b, + 0xa2, 0xee, 0xbf, 0x2e, 0x3a, 0x66, 0xcd, 0xea, + 0xfd, 0xa7, 0xd2, 0xa9, 0x71, 0x2a, 0x77, 0xa5, + 0xa1, 0x52, 0xa4, 0x36, 0xf5, 0xd4, 0xe9, 0x94, + 0xf3, 0x92, 0xd4, 0xb9, 0x11, 0x22, 0x4f, 0x6d, + 0x9a, 0x29, 0x70, 0x6d, 0xea, 0x01, 0x79, 0xe7, + 0xb2, 0x92, 0x8d, 0x03, 0x91, 0x4d, 0xa6, 0x9f, + 0x79, 0x1f, 0x6e, 0x3d, 0x4f, 0x6a, 0xb5, 0xe8, + 0xcb, 0x73, 0x54, 0xa9, 0x96, 0x5f, 0x65, 0x2d, + 0x6b, 0x26, 0x57, 0x03, 0x72, 0xd5, 0x92, 0xb2, + 0x11, 0xe6, 0x1c, 0x88, 0x60, 0x8f, 0x57, 0xce, + 0x83, 0x4e, 0x38, 0x44, 0x35, 0x28, 0x94, 0x26, + 0x48, 0x5c, 0x91, 0x22, 0x4c, 0xba, 0x7f, 0x11, + 0x93, 0xa3, 0x1c, 0x08, 0xda, 0x71, 0x02, 0xe3, + 0xda, 0xf2, 0xdb, 0x93, 0xe4, 0xd3, 0xdc, 0xa1, + 0x14, 0xd7, 0xaa, 0xd4, 0xca, 0x44, 0xfd, 0x9d, + 0x70, 0x92, 0xcd, 0x46, 0xf4, 0x91, 0x55, 0x90, + 0xc4, 0x25, 0xa6, 0xa2, 0x9c, 0x41, 0x1a, 0x7c, + 0xc8, 0x32, 0xa5, 0x46, 0x7e, 0x50, 0x21, 0x4b, + 0xd3, 0x4c, 0x74, 0x26, 0x2e, 0x92, 0x36, 0xd9, + 0x3b, 0xc6, 0x8f, 0x0a, 0xa7, 0x33, 0x67, 0xd2, + 0x6b, 0x14, 0x5a, 0x54, 0x89, 0xe7, 0x73, 0xc4, + 0x62, 0x6e, 0xb8, 0xac, 0x54, 0x05, 0xb6, 0xfb, + 0x5c, 0xb9, 0x1e, 0x72, 0x20, 0xc9, 0x91, 0x18, + 0x5c, 0x76, 0x1b, 0x72, 0xd7, 0x53, 0x7a, 0xdb, + 0x6c, 0x08, 0xf4, 0xbb, 0xba, 0x07, 0x17, 0x24, + 0xae, 0x52, 0xa5, 0xac, 0x3d, 0xa0, 0xd1, 0x58, + 0x88, 0xe0, 0xd1, 0xab, 0xf5, 0x4d, 0xa1, 0x5c, + 0x93, 0x91, 0xa6, 0x7f, 0x20, 0x92, 0x2c, 0x79, + 0xb5, 0x75, 0x61, 0xa2, 0x6d, 0x7b, 0xd0, 0x59, + 0xd2, 0x5f, 0xb4, 0x77, 0x08, 0xd8, 0x77, 0xed, + 0x52, 0x1d, 0x44, 0x4f, 0xe1, 0x20, 0xff, 0x00, + 0xe8, 0xe4, 0xff, 0x00, 0x52, 0xff, 0x00, 0xfa, + 0x71, 0xb0, 0x7a, 0xa8, 0x5a, 0x16, 0xcd, 0xcd, + 0x0e, 0xa0, 0xee, 0x9a, 0x7b, 0x54, 0x08, 0x9b, + 0x48, 0x86, 0xa4, 0xb9, 0xe9, 0x81, 0x36, 0x1c, + 0xb8, 0x75, 0x80, 0x44, 0xde, 0x2a, 0xa0, 0x33, + 0x52, 0xa0, 0x3c, 0x42, 0x08, 0x23, 0xfe, 0x31, + 0x9a, 0x22, 0x6f, 0x03, 0x3d, 0x96, 0xd6, 0x5e, + 0xb2, 0xed, 0xed, 0xa6, 0x54, 0x27, 0x34, 0x52, + 0xab, 0xb3, 0x2e, 0xaa, 0x52, 0xc5, 0xa6, 0xa2, + 0xe4, 0xfd, 0x4e, 0xe9, 0xb9, 0xe8, 0x74, 0x99, + 0x71, 0xa9, 0x6c, 0x09, 0x22, 0x19, 0x6f, 0x2a, + 0x75, 0x02, 0x13, 0xc8, 0x08, 0xa3, 0xc3, 0x6d, + 0xf9, 0x26, 0x2a, 0xdc, 0x77, 0x17, 0x11, 0x21, + 0x4a, 0xa7, 0x6c, 0x8b, 0x6f, 0x50, 0xea, 0xb3, + 0x3b, 0x23, 0x3d, 0x9b, 0xba, 0xbb, 0xd9, 0x39, + 0xc4, 0x9f, 0xe3, 0x73, 0x4a, 0x05, 0xbc, 0xe4, + 0xc7, 0x90, 0x72, 0x45, 0x46, 0xc9, 0xe2, 0x73, + 0x74, 0x39, 0x66, 0x2d, 0x20, 0x0f, 0x85, 0x31, + 0x62, 0x4b, 0xd8, 0x15, 0x62, 0xb5, 0x4b, 0x89, + 0x69, 0xd2, 0x28, 0x8b, 0x73, 0x47, 0x69, 0x26, + 0xc5, 0x75, 0xab, 0x42, 0xab, 0x4d, 0x75, 0xa7, + 0x61, 0x34, 0x8e, 0x3b, 0x21, 0xa9, 0xd3, 0xa8, + 0xf1, 0x18, 0x07, 0x1b, 0xf8, 0x42, 0xbb, 0xf4, + 0x32, 0x5f, 0x81, 0x99, 0x7f, 0x80, 0xfc, 0x30, + 0x7f, 0xca, 0x2b, 0x3b, 0xfd, 0x8d, 0x50, 0xfe, + 0x9a, 0xdf, 0xf1, 0xbe, 0xc0, 0x7f, 0x7d, 0xfb, + 0x2b, 0xfd, 0x72, 0xa1, 0xfd, 0x4b, 0x52, 0xfc, + 0x55, 0xda, 0x45, 0xd1, 0x6e, 0xde, 0x4f, 0xde, + 0xd6, 0x9d, 0x20, 0x2e, 0x58, 0xf5, 0xda, 0x54, + 0x3a, 0x45, 0xcb, 0x6e, 0x8d, 0x42, 0x1d, 0x26, + 0x69, 0x3d, 0x4a, 0x37, 0xca, 0x91, 0x59, 0xa7, + 0xcb, 0xa8, 0x1b, 0x30, 0x1e, 0x71, 0x96, 0xa5, + 0xc8, 0x87, 0x36, 0x3c, 0xb7, 0x99, 0x2e, 0x1b, + 0x74, 0x71, 0x9c, 0x70, 0xd1, 0x5b, 0x4a, 0xad, + 0x95, 0x7f, 0xdf, 0x10, 0xae, 0xca, 0xc5, 0x58, + 0x99, 0xb6, 0xea, 0x73, 0x5b, 0xb7, 0x82, 0xcf, + 0xb5, 0x9d, 0xa9, 0x0d, 0x42, 0x0d, 0x31, 0x6d, + 0x7a, 0xb7, 0x66, 0xd8, 0x97, 0x5c, 0x91, 0x01, + 0x1c, 0x84, 0xec, 0xfa, 0xa4, 0xd5, 0x75, 0xb2, + 0x76, 0x12, 0x49, 0x28, 0x30, 0xdc, 0x16, 0xb8, + 0x89, 0x08, 0x9b, 0x90, 0xab, 0xd1, 0xef, 0xeb, + 0xe9, 0xe9, 0x55, 0x3a, 0xb5, 0xa6, 0x96, 0xb8, + 0x51, 0xec, 0x6b, 0xc2, 0x95, 0x4a, 0xa4, 0xbd, + 0x5b, 0xa3, 0x55, 0x27, 0x56, 0x2e, 0x1b, 0x9e, + 0x96, 0x30, 0xb3, 0x6e, 0x4c, 0x17, 0xce, 0x14, + 0x5a, 0x7c, 0x76, 0x98, 0x46, 0x5a, 0x76, 0x5c, + 0xa8, 0xae, 0xb8, 0xf4, 0x85, 0x37, 0x5a, 0x6d, + 0x80, 0xd6, 0x35, 0xfb, 0x6e, 0xe7, 0x4b, 0x23, + 0x66, 0x8d, 0xd3, 0x68, 0xab, 0x53, 0xac, 0xd9, + 0xd5, 0x3b, 0x32, 0xa7, 0x50, 0xa2, 0x0d, 0x42, + 0x9d, 0x11, 0xf7, 0x86, 0x91, 0x0b, 0x86, 0x9f, + 0x1d, 0x89, 0xb2, 0xa4, 0x85, 0x35, 0x5e, 0x64, + 0xcd, 0x55, 0x15, 0x65, 0x6e, 0x5c, 0x10, 0x25, + 0x69, 0xc3, 0xef, 0x10, 0xdc, 0xb2, 0xee, 0x9a, + 0x54, 0xab, 0xaa, 0x9d, 0x17, 0x66, 0xd4, 0x2b, + 0xa9, 0x9b, 0x9a, 0xb1, 0x2a, 0xb5, 0x49, 0xae, + 0xd6, 0x2a, 0xd4, 0xe6, 0xe0, 0x51, 0xc6, 0xe0, + 0xd0, 0xb5, 0x0a, 0x65, 0xd3, 0x4c, 0x57, 0xda, + 0xa8, 0x4d, 0x6a, 0x92, 0xfe, 0xfd, 0xd5, 0x4a, + 0x2a, 0x4c, 0x0a, 0x94, 0x57, 0x45, 0x86, 0xdd, + 0x61, 0xcd, 0x4a, 0x37, 0x5d, 0x99, 0x7d, 0x57, + 0x6a, 0xc3, 0x55, 0xa5, 0xc5, 0x66, 0x8d, 0xdc, + 0xda, 0x9d, 0x4e, 0x3d, 0x9e, 0x43, 0x62, 0x44, + 0x16, 0x21, 0x5c, 0x95, 0xa0, 0xdd, 0x39, 0x5a, + 0xde, 0xc6, 0x6e, 0x64, 0x85, 0xa6, 0xd2, 0x65, + 0xd3, 0xe3, 0x25, 0xbb, 0x02, 0x25, 0x42, 0x43, + 0x06, 0xd0, 0x49, 0x29, 0x2f, 0x3a, 0x0d, 0x2b, + 0x99, 0x40, 0x7a, 0x44, 0x98, 0x51, 0x24, 0x4b, + 0x84, 0xe5, 0x3a, 0x53, 0xd1, 0xd9, 0x76, 0x44, + 0x07, 0x9d, 0x8e, 0xfb, 0xb0, 0xdf, 0x30, 0x12, + 0x76, 0x31, 0xbf, 0x15, 0xd7, 0xa3, 0x3c, 0x4c, + 0x9a, 0xab, 0x6a, 0xeb, 0x0e, 0x9b, 0x47, 0xa7, + 0x50, 0x12, 0x8a, 0xa7, 0xe2, 0x7a, 0xc1, 0xb6, + 0xca, 0xb8, 0xe5, 0xd0, 0x91, 0x6a, 0x2b, 0x5d, + 0x52, 0x37, 0xc5, 0xee, 0xd8, 0x6e, 0x1e, 0x13, + 0x7f, 0xc3, 0x2c, 0x64, 0xff, 0x00, 0x82, 0x7b, + 0x2b, 0xd8, 0x6d, 0x3b, 0xae, 0xf7, 0x76, 0xb0, + 0x77, 0x3a, 0xbf, 0x28, 0xa1, 0xbc, 0xef, 0xf0, + 0xee, 0xcc, 0xaf, 0x07, 0x6d, 0xdd, 0x9a, 0x53, + 0x5a, 0x81, 0xc2, 0xbb, 0xd8, 0xd3, 0xb4, 0x6f, + 0xf6, 0xf8, 0xfa, 0x7a, 0x3b, 0x0e, 0xd8, 0x95, + 0x5c, 0xa7, 0xd6, 0x65, 0x10, 0xba, 0xdc, 0xa3, + 0x6a, 0x61, 0xe8, 0xa7, 0xbd, 0x0c, 0x02, 0x1b, + 0x92, 0x4b, 0x4d, 0x4d, 0xe4, 0x50, 0x26, 0xd5, + 0xdd, 0x23, 0xb2, 0x79, 0x75, 0xdb, 0x82, 0xef, + 0x9d, 0x56, 0xa8, 0xdc, 0x96, 0xbb, 0x6b, 0x7a, + 0x05, 0x7e, 0xd9, 0xa8, 0x5b, 0x55, 0x5a, 0x6c, + 0x49, 0x32, 0x5b, 0x3b, 0x5e, 0x0d, 0x11, 0xd7, + 0xc9, 0x56, 0x3d, 0x48, 0xd8, 0x40, 0xd3, 0x32, + 0x38, 0x03, 0x8d, 0x44, 0x7d, 0x05, 0xc7, 0x15, + 0x11, 0x5a, 0x71, 0x33, 0x8b, 0xb2, 0x9b, 0xaa, + 0x9d, 0x69, 0x6d, 0x7e, 0x9e, 0x32, 0xae, 0x6a, + 0xc4, 0xfb, 0x8a, 0xa7, 0x3d, 0xaa, 0x04, 0x2a, + 0xc5, 0x7a, 0x91, 0x29, 0x9a, 0xc4, 0x35, 0x1a, + 0x51, 0xb1, 0x5d, 0x79, 0x47, 0x86, 0x66, 0x3d, + 0x62, 0x61, 0x33, 0x22, 0x34, 0x97, 0xe6, 0xbf, + 0x0c, 0x8a, 0x34, 0x66, 0x00, 0xa1, 0xb5, 0x90, + 0x38, 0xec, 0x40, 0x26, 0xe3, 0x47, 0x07, 0x13, + 0x27, 0x01, 0x86, 0x84, 0xd3, 0x99, 0x55, 0x09, + 0x00, 0x50, 0x93, 0x34, 0xcd, 0x17, 0x9f, 0xe3, + 0x45, 0x54, 0x5f, 0x1f, 0xf8, 0x0f, 0xc3, 0x04, + 0xbf, 0xe3, 0x2d, 0x9e, 0x3e, 0x2a, 0x24, 0xe2, + 0xff, 0x00, 0xe2, 0x9c, 0x29, 0xff, 0x00, 0xf0, + 0xfe, 0x37, 0xd8, 0x0f, 0xef, 0xbf, 0x65, 0x7f, + 0xae, 0x54, 0x3f, 0xa9, 0x6a, 0x5f, 0x89, 0x1c, + 0x6d, 0x4c, 0x9b, 0x43, 0x15, 0x70, 0x10, 0x54, + 0xc1, 0x09, 0x14, 0xc5, 0x0b, 0x3d, 0x2a, 0x43, + 0xe1, 0x44, 0x2c, 0x97, 0x4e, 0x7e, 0x1c, 0x97, + 0x2f, 0x02, 0xe0, 0x5c, 0x6c, 0xd4, 0xc4, 0x0c, + 0x08, 0x9b, 0x2d, 0x2e, 0x20, 0x92, 0x2a, 0x81, + 0x64, 0x85, 0xa4, 0x91, 0x3e, 0x0a, 0xe4, 0xa8, + 0xb9, 0x2f, 0x3e, 0x4a, 0x8b, 0xe0, 0x5f, 0xc4, + 0x84, 0x2a, 0xa4, 0x88, 0x48, 0xaa, 0x2b, 0x91, + 0x22, 0x2e, 0x6a, 0x2a, 0xa8, 0x8a, 0x88, 0xbe, + 0x25, 0xc9, 0x51, 0x79, 0xfe, 0x25, 0x45, 0xf8, + 0xff, 0x00, 0x11, 0x18, 0x06, 0x5a, 0xc8, 0x47, + 0x51, 0x20, 0x0e, 0xa5, 0x44, 0xd4, 0x45, 0xf0, + 0x45, 0x33, 0xf0, 0x92, 0xfc, 0x49, 0xe1, 0x5c, + 0x39, 0x21, 0x86, 0x49, 0xb0, 0x75, 0xe6, 0x9b, + 0x37, 0x97, 0x4b, 0x40, 0xe3, 0x82, 0x04, 0xe9, + 0x66, 0x89, 0xa5, 0xb1, 0x25, 0x45, 0x32, 0xcc, + 0x85, 0x32, 0x1c, 0xd7, 0x32, 0x4f, 0x1a, 0x60, + 0xdf, 0x61, 0xa3, 0x6d, 0xb7, 0x1e, 0x69, 0xb3, + 0x79, 0x72, 0x68, 0x0d, 0xc1, 0x12, 0x71, 0x79, + 0xb9, 0x9b, 0x15, 0x54, 0x53, 0x5e, 0x74, 0xe6, + 0x1c, 0xfc, 0x29, 0xe3, 0xc2, 0xaa, 0x0a, 0x29, + 0x12, 0xa0, 0x88, 0xa2, 0xaa, 0xaa, 0xae, 0x48, + 0x88, 0x9c, 0xea, 0xaa, 0xbf, 0x12, 0x26, 0x1b, + 0x71, 0xb7, 0x40, 0x5c, 0x68, 0xc1, 0xc6, 0xc9, + 0x33, 0x13, 0x02, 0x43, 0x02, 0x4f, 0x18, 0x90, + 0xe6, 0x8a, 0x9f, 0x22, 0xe0, 0x25, 0x46, 0x73, + 0x4e, 0x89, 0x0c, 0x9e, 0xb3, 0x26, 0xc3, 0x4b, + 0xa0, 0x5a, 0x9c, 0x04, 0x55, 0x20, 0x1c, 0x97, + 0x9c, 0xc5, 0x11, 0x54, 0x85, 0x39, 0xd1, 0x11, + 0x55, 0x53, 0x9b, 0x0a, 0xe3, 0x68, 0x62, 0xda, + 0x98, 0xa3, 0x86, 0x84, 0xa0, 0x0a, 0x48, 0x84, + 0x48, 0x39, 0x6a, 0x51, 0x1f, 0x0a, 0xa0, 0xe6, + 0x9a, 0xb2, 0xf0, 0x66, 0x99, 0xf8, 0x7f, 0xc0, + 0xfe, 0x18, 0x1f, 0xe5, 0x45, 0xa3, 0xfe, 0xc1, + 0x97, 0xfd, 0x60, 0x5f, 0xe7, 0x56, 0xf5, 0xb7, + 0x5d, 0xbb, 0x2a, 0xac, 0x51, 0x2d, 0xca, 0x6b, + 0xf5, 0x6a, 0xac, 0x91, 0x70, 0xda, 0x89, 0x1d, + 0x5a, 0x05, 0xdd, 0xb2, 0x3a, 0x9d, 0x75, 0xc7, + 0xa4, 0x38, 0xcc, 0x68, 0xec, 0xb6, 0x99, 0x6b, + 0x7a, 0x43, 0xcd, 0x34, 0x2a, 0x42, 0x2a, 0x7a, + 0x8c, 0x51, 0x79, 0x3a, 0x6d, 0xa3, 0xc8, 0x87, + 0x3e, 0x71, 0x59, 0xff, 0x00, 0xfc, 0xc3, 0x8e, + 0x4e, 0x9b, 0x68, 0xf2, 0x21, 0xcf, 0x9c, 0x56, + 0x87, 0xff, 0x00, 0x30, 0xe2, 0xec, 0xb2, 0x2e, + 0xbb, 0x1a, 0x6b, 0x14, 0xfb, 0xb2, 0x8b, 0x22, + 0x8d, 0x2a, 0x53, 0x2b, 0x22, 0x30, 0xba, 0xf4, + 0x39, 0x4d, 0x48, 0x64, 0x4f, 0x41, 0x9b, 0x12, + 0xe9, 0xf2, 0x65, 0xc4, 0x77, 0x76, 0x6a, 0x88, + 0xe8, 0x03, 0xe4, 0x6d, 0x6a, 0x0d, 0xe0, 0x8a, + 0x38, 0x1a, 0xbf, 0xce, 0x76, 0x03, 0xfb, 0xef, + 0xd9, 0x5f, 0xeb, 0x95, 0x0f, 0xea, 0x5a, 0x97, + 0xe2, 0xb7, 0x7f, 0x7d, 0xcd, 0xa5, 0x2f, 0xff, + 0x00, 0x50, 0x58, 0x1f, 0xf7, 0x2e, 0x4c, 0x0d, + 0xc1, 0x5d, 0xb6, 0xaa, 0x9b, 0x48, 0x95, 0x6f, + 0x41, 0x81, 0x3e, 0xa5, 0x54, 0xda, 0xed, 0xb5, + 0x41, 0x62, 0x35, 0x49, 0x5f, 0x6a, 0x23, 0xbd, + 0x94, 0xb7, 0xe8, 0x71, 0xcf, 0x54, 0x86, 0x09, + 0x0e, 0x3a, 0xb6, 0x44, 0x06, 0x72, 0x37, 0x72, + 0x51, 0x96, 0xf5, 0x9a, 0xc5, 0x7d, 0x74, 0x82, + 0xd9, 0xb7, 0x2d, 0xc1, 0x32, 0xb5, 0x72, 0xda, + 0x97, 0x63, 0x34, 0xae, 0xce, 0x5b, 0xa9, 0x4a, + 0x9a, 0x13, 0xa8, 0x6c, 0xcc, 0x8f, 0x4c, 0xa9, + 0xd2, 0xab, 0x4d, 0x49, 0x28, 0x8f, 0x35, 0x1a, + 0x74, 0x89, 0x72, 0x22, 0xc8, 0x8e, 0xfc, 0x29, + 0x51, 0x65, 0x36, 0x72, 0x9d, 0x12, 0x20, 0x17, + 0x1a, 0x5d, 0x2a, 0xa8, 0x94, 0x8b, 0x86, 0xf4, + 0xa1, 0x57, 0x36, 0x82, 0xcc, 0x5e, 0xd7, 0xaa, + 0x55, 0x2b, 0x87, 0x69, 0x8d, 0x5b, 0xb4, 0x46, + 0x5f, 0x62, 0xa7, 0x1d, 0x98, 0xb5, 0x37, 0xad, + 0xda, 0x64, 0xbe, 0xc8, 0xcf, 0x77, 0x8f, 0x7c, + 0xdc, 0xa4, 0x53, 0x68, 0x31, 0x44, 0xde, 0xa7, + 0xc6, 0x06, 0xe5, 0xc9, 0x9a, 0xcb, 0xbb, 0x99, + 0x6c, 0x32, 0xf3, 0x6d, 0xb7, 0x66, 0xdc, 0xb5, + 0xe9, 0xd5, 0x7b, 0x92, 0xd5, 0xba, 0xd8, 0xa6, + 0x0d, 0x7a, 0xdc, 0xec, 0x6c, 0xae, 0x3a, 0x88, + 0xdc, 0xb6, 0x69, 0x55, 0x5a, 0x55, 0x68, 0x24, + 0xb9, 0x06, 0x4b, 0x11, 0xa6, 0xbd, 0x2a, 0x4c, + 0x49, 0x0c, 0x9c, 0x49, 0x31, 0x26, 0x30, 0xe4, + 0xa9, 0x02, 0xae, 0xb4, 0x8e, 0xb2, 0xe2, 0xb6, + 0xe6, 0x90, 0xda, 0x75, 0x2a, 0xb6, 0xe5, 0xd5, + 0xb3, 0xca, 0xbb, 0xd5, 0xd5, 0x1a, 0x04, 0x6b, + 0xee, 0xd5, 0x89, 0x0e, 0xdd, 0x8f, 0x14, 0x5b, + 0x17, 0x67, 0xbe, 0x55, 0x03, 0x93, 0x53, 0xa9, + 0x4c, 0x23, 0x27, 0x24, 0x9b, 0x60, 0xdb, 0x4c, + 0xc1, 0x8e, 0x00, 0xdb, 0x2c, 0x0a, 0xba, 0xe2, + 0xa1, 0x3a, 0x6a, 0x6b, 0xb5, 0x6b, 0x52, 0xdb, + 0x06, 0x2e, 0x6b, 0x82, 0xbc, 0x0e, 0xdc, 0x37, + 0x15, 0xc7, 0x12, 0x0d, 0xbf, 0xb3, 0xfa, 0x58, + 0xb6, 0x7d, 0x91, 0xa4, 0xd6, 0x02, 0x31, 0x70, + 0x0c, 0x5b, 0xa6, 0xdb, 0xfa, 0xd8, 0x79, 0xea, + 0xbe, 0x75, 0x8a, 0x8d, 0x41, 0xa0, 0x64, 0x98, + 0x8c, 0x0e, 0x8b, 0xea, 0xec, 0x66, 0xd5, 0xb7, + 0x64, 0x5b, 0x2c, 0xdc, 0x90, 0xf6, 0xb5, 0x54, + 0xba, 0x95, 0x6a, 0x37, 0x0d, 0x99, 0x48, 0xa6, + 0xd1, 0xe8, 0x55, 0x03, 0x79, 0xdd, 0xf5, 0x06, + 0x7d, 0x02, 0xcd, 0xa7, 0x57, 0x8e, 0xa9, 0x48, + 0x7c, 0x49, 0xb3, 0x88, 0xfc, 0xca, 0xfc, 0x92, + 0x9d, 0x21, 0xd6, 0xd0, 0x4a, 0x48, 0xb6, 0x91, + 0xdf, 0xde, 0x46, 0x37, 0x5a, 0x39, 0x53, 0x5e, + 0xa9, 0x6c, 0xca, 0x55, 0x42, 0x4e, 0x4b, 0x22, + 0x75, 0x8e, 0xfc, 0xc7, 0xd5, 0x13, 0x99, 0x5e, + 0x93, 0x41, 0x27, 0x9d, 0xc9, 0x3c, 0x4a, 0x66, + 0x59, 0x26, 0x2c, 0x4b, 0x96, 0x65, 0x9f, 0xb2, + 0x6a, 0xf5, 0x05, 0xb4, 0x29, 0x15, 0xaa, 0x12, + 0xd3, 0x21, 0xda, 0xf1, 0xd4, 0xc4, 0x9c, 0x99, + 0xdd, 0x12, 0x3c, 0x3a, 0x85, 0xaa, 0x23, 0xe0, + 0x37, 0x34, 0x54, 0xab, 0x32, 0x18, 0x74, 0x72, + 0x55, 0x16, 0x69, 0xee, 0xe9, 0x5d, 0x2d, 0x2a, + 0x05, 0xb9, 0x0e, 0x6d, 0xa3, 0x16, 0xd4, 0x81, + 0x49, 0xa5, 0xbd, 0x71, 0x4f, 0xa1, 0xed, 0xa2, + 0xf8, 0x83, 0x1e, 0x9c, 0xdc, 0xd8, 0x70, 0x5f, + 0xa8, 0x39, 0x1e, 0xda, 0xa9, 0x45, 0x74, 0x86, + 0x6d, 0x45, 0xc6, 0xa2, 0x34, 0xa2, 0x1b, 0xc9, + 0x2a, 0x4f, 0xba, 0x1a, 0xc5, 0xb5, 0x6c, 0x3f, + 0x28, 0x40, 0x98, 0x2a, 0xc5, 0xd7, 0x59, 0xda, + 0x8d, 0x9f, 0xd9, 0x4b, 0x3d, 0xcb, 0x3a, 0x6b, + 0x36, 0xbd, 0xf0, 0x94, 0xb3, 0xa9, 0xd5, 0xa8, + 0xf5, 0xc6, 0x25, 0x48, 0x75, 0xba, 0x2e, 0x46, + 0xe3, 0x74, 0x39, 0xa6, 0xe3, 0x6c, 0x46, 0x74, + 0x59, 0x57, 0xc0, 0xde, 0x60, 0xdf, 0x07, 0x34, + 0xb0, 0x68, 0xa2, 0x44, 0x36, 0x95, 0xc9, 0xb4, + 0x0a, 0x95, 0xef, 0x53, 0xa0, 0x54, 0xe5, 0x59, + 0xd5, 0x4a, 0x25, 0xbf, 0x0d, 0x12, 0xbb, 0x52, + 0xa0, 0xd1, 0xeb, 0x70, 0x56, 0x3d, 0x72, 0x48, + 0xa1, 0xc5, 0xa1, 0xc7, 0x91, 0x3e, 0xb7, 0x3e, + 0x3b, 0xf2, 0xd9, 0x8c, 0x41, 0x36, 0xa4, 0x80, + 0xc9, 0x8c, 0x46, 0xdd, 0x62, 0x31, 0x90, 0xca, + 0x74, 0xc1, 0x9f, 0xd9, 0xfe, 0x18, 0x1f, 0xe5, + 0x45, 0xa3, 0xfe, 0xc1, 0x97, 0xfd, 0x60, 0x5f, + 0xe7, 0x5f, 0x82, 0x8f, 0xef, 0xa8, 0xef, 0xff, + 0x00, 0x74, 0xab, 0x5f, 0xd3, 0xa8, 0xb8, 0x72, + 0x8d, 0x5c, 0x95, 0x71, 0x55, 0x9d, 0x9a, 0x77, + 0x1b, 0x74, 0xca, 0x83, 0xb5, 0xe8, 0xd1, 0xce, + 0x05, 0xc5, 0x77, 0xc6, 0x5c, 0xe2, 0xb3, 0x0d, + 0xfa, 0x6b, 0x5c, 0x0c, 0x49, 0x8c, 0x40, 0xa3, + 0xc7, 0x32, 0x8e, 0xf9, 0xc5, 0xaa, 0x53, 0x16, + 0x2b, 0xb2, 0xdc, 0x69, 0x69, 0xf2, 0x1e, 0x73, + 0xb2, 0x46, 0xc4, 0x9a, 0x2c, 0x59, 0x90, 0x6b, + 0x74, 0xa8, 0xd3, 0x8a, 0xfa, 0x37, 0x5b, 0x89, + 0x4d, 0x2a, 0x3e, 0x89, 0x75, 0xda, 0x85, 0x1c, + 0xe2, 0x3f, 0x4f, 0x27, 0x2b, 0x9d, 0xb2, 0x4d, + 0xa8, 0x3d, 0x2a, 0x09, 0xce, 0x0a, 0x9b, 0xb2, + 0x89, 0x46, 0xbb, 0x27, 0xb2, 0x8c, 0xc5, 0x6a, + 0x97, 0x1e, 0xdb, 0x44, 0x41, 0x7d, 0x82, 0xfc, + 0x31, 0xbf, 0xf4, 0xb5, 0x83, 0xfe, 0xce, 0xb8, + 0xff, 0x00, 0xa4, 0xd1, 0x7f, 0xce, 0xb6, 0x03, + 0xfb, 0xef, 0xd9, 0x5f, 0xeb, 0x95, 0x0f, 0xea, + 0x5a, 0x97, 0xe2, 0xaf, 0xda, 0x17, 0x1a, 0x5d, + 0x3d, 0xb8, 0x59, 0x95, 0xca, 0x75, 0x2e, 0xa3, + 0x32, 0x94, 0xc5, 0x1a, 0xb5, 0x4f, 0xae, 0x53, + 0x64, 0x54, 0xe9, 0x15, 0x38, 0xd0, 0x9e, 0x93, + 0x22, 0x9f, 0x33, 0x44, 0x39, 0xd4, 0xe9, 0x6c, + 0x54, 0x21, 0x14, 0xa7, 0xda, 0x07, 0x02, 0x42, + 0xb4, 0xe3, 0x0e, 0xe8, 0x20, 0x4d, 0x25, 0xbd, + 0xbb, 0xad, 0x0a, 0x8d, 0x0e, 0xd6, 0xa4, 0xc7, + 0x2a, 0xf6, 0xbb, 0xaa, 0xe6, 0xda, 0xbd, 0xad, + 0x57, 0xa8, 0x5c, 0x4d, 0x41, 0x69, 0xa6, 0x59, + 0xad, 0x4d, 0x9f, 0x1e, 0x2c, 0x67, 0x22, 0x53, + 0x88, 0xcc, 0x7b, 0x1f, 0x4d, 0x6a, 0x2c, 0x46, + 0x18, 0x86, 0xf3, 0xee, 0x13, 0xec, 0xb2, 0x7b, + 0xe7, 0x75, 0x3e, 0x79, 0x59, 0xd6, 0xad, 0x4e, + 0x91, 0x3e, 0xe0, 0xb8, 0x6e, 0x2a, 0x9c, 0x5a, + 0xad, 0xc9, 0x72, 0xb9, 0x00, 0x66, 0x39, 0x4e, + 0x86, 0xec, 0x0a, 0x4c, 0x1a, 0x7d, 0x25, 0x97, + 0x58, 0xa6, 0xd3, 0xe9, 0xb1, 0x64, 0x49, 0x99, + 0x28, 0x40, 0x38, 0x89, 0x32, 0x24, 0x3a, 0xfc, + 0xa7, 0x0d, 0xf7, 0xe4, 0x2e, 0x69, 0xf9, 0x24, + 0x33, 0xa8, 0xec, 0xca, 0xbb, 0x22, 0xa5, 0x71, + 0xce, 0xa7, 0xdc, 0x30, 0x60, 0x71, 0x97, 0x34, + 0x2b, 0xda, 0xdd, 0x7f, 0xb1, 0x8f, 0x3d, 0x36, + 0x99, 0x71, 0xc4, 0xa6, 0xc4, 0xa5, 0x38, 0xc4, + 0xf5, 0x29, 0xbc, 0x2c, 0xea, 0x24, 0xc8, 0x2c, + 0x3d, 0x1d, 0xf8, 0xcd, 0xc7, 0x62, 0x56, 0x52, + 0x54, 0xd2, 0x4a, 0xe8, 0xdd, 0x15, 0x9d, 0x6a, + 0x54, 0xe8, 0xd3, 0xae, 0x0b, 0x82, 0xe2, 0xaa, + 0xc7, 0xab, 0xdc, 0x97, 0x2b, 0xd0, 0xb8, 0xd7, + 0x60, 0x43, 0x3a, 0x7d, 0x2a, 0x0c, 0x0a, 0x53, + 0x4e, 0xb1, 0x4c, 0xa6, 0xd3, 0x62, 0xbd, 0x22, + 0x64, 0x81, 0x69, 0x94, 0x7e, 0x43, 0xcf, 0x3b, + 0x22, 0x53, 0x8e, 0xbe, 0xf3, 0xea, 0xa7, 0x9a, + 0x86, 0xb3, 0xba, 0xed, 0xc7, 0xae, 0x2e, 0xd6, + 0xf7, 0x52, 0x9b, 0x8d, 0xd8, 0x2b, 0xae, 0x8f, + 0x71, 0x39, 0xbc, 0x6c, 0x9c, 0xe2, 0x1a, 0xa6, + 0x24, 0xa4, 0x38, 0xa1, 0xa4, 0x87, 0x76, 0xe3, + 0xbc, 0x42, 0x69, 0x71, 0x75, 0x08, 0xe9, 0x5c, + 0xc5, 0x73, 0xc5, 0x56, 0xcd, 0xbf, 0x5d, 0xbe, + 0x26, 0xde, 0x14, 0xba, 0xd5, 0xa0, 0xe2, 0x24, + 0x16, 0x29, 0x74, 0x28, 0xf5, 0xfa, 0x15, 0x5a, + 0x7b, 0x94, 0x08, 0x28, 0x3a, 0xa7, 0xa4, 0x12, + 0x83, 0x5b, 0xa7, 0x32, 0x32, 0x6a, 0xb2, 0x48, + 0xdc, 0x9d, 0x30, 0x9a, 0x39, 0x2e, 0xb0, 0x11, + 0xa1, 0x8b, 0x81, 0x15, 0x84, 0x69, 0x6b, 0xfb, + 0x36, 0xb9, 0xea, 0x52, 0xeb, 0xc7, 0x4c, 0xba, + 0x20, 0x52, 0xe1, 0xdf, 0x74, 0xca, 0x5d, 0x3e, + 0xfa, 0x8f, 0xd8, 0x77, 0x24, 0x91, 0xb9, 0x0a, + 0x20, 0x53, 0x27, 0x4c, 0xb6, 0x8d, 0xc9, 0xda, + 0x69, 0xc7, 0x53, 0xa4, 0xea, 0xa7, 0x38, 0x13, + 0x82, 0x79, 0x30, 0xda, 0x04, 0x86, 0x9e, 0xe2, + 0x91, 0xb7, 0x59, 0x9f, 0x47, 0x6d, 0xfb, 0x76, + 0x6d, 0x02, 0x1a, 0x8c, 0x56, 0x9e, 0xa3, 0x48, + 0xa4, 0x45, 0x55, 0x15, 0x20, 0x8e, 0xdb, 0x90, + 0x8e, 0x1b, 0x2a, 0xa2, 0x8a, 0x8a, 0x42, 0xd0, + 0xa8, 0xf7, 0xa8, 0xa8, 0xaa, 0x83, 0x96, 0x69, + 0x86, 0x76, 0x53, 0x95, 0xc5, 0x63, 0x56, 0xa4, + 0x54, 0xc5, 0xc8, 0xd6, 0xad, 0x02, 0x99, 0x4e, + 0xa8, 0x53, 0x01, 0x92, 0x06, 0x2b, 0x15, 0x5a, + 0x0c, 0x79, 0x6c, 0xd0, 0x2a, 0xa7, 0xdf, 0xe6, + 0x8b, 0x4c, 0x3a, 0x9d, 0x45, 0xf6, 0x41, 0xdd, + 0xe2, 0x89, 0xac, 0x6c, 0x97, 0xf2, 0x6b, 0x88, + 0x5b, 0x36, 0x97, 0x12, 0xad, 0x02, 0xa4, 0xb5, + 0x48, 0xe6, 0x30, 0xf6, 0x8d, 0x74, 0xdf, 0x04, + 0xd2, 0x46, 0x71, 0x08, 0xe3, 0xdc, 0x34, 0xd9, + 0xd0, 0x1a, 0xa7, 0xa1, 0x6f, 0x55, 0x11, 0xe8, + 0xc5, 0x30, 0x5c, 0x71, 0xfc, 0x94, 0x1c, 0x40, + 0x51, 0x16, 0xc5, 0x55, 0x15, 0x2e, 0x6b, 0x52, + 0xa9, 0x56, 0xaf, 0xd3, 0x2e, 0x0a, 0x55, 0x52, + 0x3d, 0x3a, 0x5d, 0x26, 0xde, 0xba, 0xa9, 0x51, + 0x09, 0xe8, 0xc5, 0x23, 0x44, 0xfa, 0xeb, 0x10, + 0x82, 0x0c, 0xec, 0x91, 0xc0, 0x12, 0x6a, 0x03, + 0xf0, 0xd1, 0xd7, 0x59, 0x54, 0x55, 0x7d, 0x15, + 0x05, 0x08, 0x79, 0xf1, 0xb3, 0xfb, 0x46, 0xf8, + 0xb3, 0xd9, 0xa7, 0x52, 0x25, 0xd5, 0x2c, 0xe9, + 0x54, 0x18, 0xfc, 0x53, 0x95, 0x02, 0x83, 0x44, + 0xac, 0xb1, 0x5f, 0xaa, 0x4e, 0x90, 0x0e, 0xb8, + 0xe5, 0x4a, 0x55, 0x4a, 0x5d, 0x7a, 0x53, 0x0e, + 0xce, 0x95, 0x3c, 0xc2, 0x4c, 0xe7, 0xdd, 0x84, + 0x7b, 0xd0, 0xd6, 0xcb, 0x20, 0xc0, 0xee, 0x77, + 0x3f, 0xb3, 0xfc, 0x30, 0x3f, 0xca, 0x8b, 0x47, + 0xfd, 0x83, 0x2f, 0xfa, 0xc0, 0xbf, 0xce, 0xad, + 0x9b, 0xa6, 0xbf, 0x66, 0xd5, 0x9a, 0xae, 0xdb, + 0x55, 0x27, 0x29, 0x55, 0x56, 0x5a, 0x79, 0x80, + 0x94, 0xdb, 0x51, 0xa4, 0x22, 0xb3, 0x20, 0x74, + 0xbc, 0xcb, 0xb1, 0xa6, 0x33, 0x26, 0x23, 0xed, + 0x1e, 0x42, 0x5b, 0xb7, 0xd8, 0x70, 0x51, 0xc0, + 0x6d, 0xd1, 0x44, 0x71, 0xb0, 0x21, 0xe5, 0x1d, + 0xb6, 0x8f, 0x2d, 0x17, 0xe6, 0xe5, 0xa3, 0xd4, + 0x18, 0xe5, 0x1d, 0xb6, 0x8f, 0x2d, 0x17, 0xe6, + 0xe5, 0xa3, 0xd4, 0x18, 0xbb, 0xef, 0xcb, 0xb6, + 0xfd, 0x95, 0x12, 0x6d, 0xdb, 0x59, 0x72, 0xaf, + 0x22, 0x03, 0x0e, 0x46, 0x86, 0x45, 0x12, 0x9f, + 0x05, 0xb8, 0xec, 0xba, 0x68, 0xe3, 0xa8, 0x11, + 0xe9, 0x91, 0x21, 0x47, 0xd6, 0xe9, 0x88, 0xab, + 0x8e, 0xab, 0x4a, 0xf3, 0x88, 0x0d, 0x89, 0x9a, + 0x8b, 0x4d, 0xa0, 0xff, 0x00, 0x9c, 0xda, 0x37, + 0x45, 0x42, 0xcb, 0xb8, 0xa9, 0x97, 0x3d, 0x29, + 0xb8, 0x8f, 0x54, 0x29, 0x2e, 0x3a, 0xec, 0x66, + 0xe7, 0x36, 0xeb, 0xb1, 0x08, 0x9e, 0x8c, 0xf4, + 0x52, 0xdf, 0x36, 0xc3, 0xf1, 0x9d, 0x24, 0xdd, + 0xbe, 0x6a, 0x3a, 0x1f, 0x6d, 0x75, 0xa0, 0xaa, + 0xaa, 0xa2, 0x28, 0xaf, 0x2b, 0x6d, 0xa5, 0xf4, + 0x55, 0x99, 0xec, 0xca, 0xc7, 0x5f, 0xe3, 0x95, + 0xb6, 0xd2, 0xfa, 0x2a, 0xcc, 0xf6, 0x65, 0x63, + 0xaf, 0xf0, 0xe7, 0xe1, 0x63, 0xb4, 0x67, 0x74, + 0xef, 0x68, 0xd6, 0x4b, 0x9a, 0x0c, 0x5c, 0x0d, + 0x74, 0x9a, 0xb1, 0x68, 0x70, 0x17, 0x30, 0x70, + 0x73, 0xaf, 0xae, 0x93, 0x05, 0xe7, 0x12, 0x4e, + 0x71, 0x5e, 0x74, 0x5c, 0x72, 0xb6, 0xda, 0x5f, + 0x45, 0x59, 0x9e, 0xcc, 0xac, 0x75, 0xfe, 0x39, + 0x5b, 0x6d, 0x2f, 0xa2, 0xac, 0xcf, 0x66, 0x56, + 0x3a, 0xff, 0x00, 0x1c, 0xad, 0xb6, 0x97, 0xd1, + 0x56, 0x67, 0xb3, 0x2b, 0x1d, 0x7f, 0x8e, 0x56, + 0xdb, 0x4b, 0xe8, 0xab, 0x33, 0xd9, 0x95, 0x8e, + 0xbf, 0xc7, 0x2b, 0x6d, 0xa5, 0xf4, 0x55, 0x99, + 0xec, 0xca, 0xc7, 0x5f, 0xe3, 0x95, 0xb6, 0xd2, + 0xfa, 0x2a, 0xcc, 0xf6, 0x65, 0x63, 0xaf, 0xf1, + 0xca, 0xdb, 0x69, 0x7d, 0x15, 0x66, 0x7b, 0x32, + 0xb1, 0xd7, 0xf8, 0xe5, 0x6d, 0xb4, 0xbe, 0x8a, + 0xb3, 0x3d, 0x99, 0x58, 0xeb, 0xfc, 0x72, 0xb6, + 0xda, 0x5f, 0x45, 0x59, 0x9e, 0xcc, 0xac, 0x75, + 0xfe, 0x39, 0x5b, 0x6d, 0x2f, 0xa2, 0xac, 0xcf, + 0x66, 0x56, 0x3a, 0xff, 0x00, 0x1c, 0xad, 0xb6, + 0x97, 0xd1, 0x56, 0x67, 0xb3, 0x2b, 0x1d, 0x7f, + 0x8e, 0x56, 0xdb, 0x4b, 0xe8, 0xab, 0x33, 0xd9, + 0x95, 0x8e, 0xbf, 0xc7, 0x2b, 0x6d, 0xa5, 0xf4, + 0x55, 0x99, 0xec, 0xca, 0xc7, 0x5f, 0xe3, 0x95, + 0xb6, 0xd2, 0xfa, 0x2a, 0xcc, 0xf6, 0x65, 0x63, + 0xaf, 0xf1, 0xca, 0xdb, 0x69, 0x7d, 0x15, 0x66, + 0x7b, 0x32, 0xb1, 0xd7, 0xf8, 0xe5, 0x6d, 0xb4, + 0xbe, 0x8a, 0xb3, 0x3d, 0x99, 0x58, 0xeb, 0xfc, + 0x72, 0xb6, 0xda, 0x5f, 0x45, 0x59, 0x9e, 0xcc, + 0xac, 0x75, 0xfe, 0x39, 0x5b, 0x6d, 0x2f, 0xa2, + 0xac, 0xcf, 0x66, 0x56, 0x3a, 0xff, 0x00, 0x1b, + 0x46, 0xda, 0x75, 0xc1, 0xb4, 0xf9, 0xd4, 0xea, + 0x85, 0xc1, 0x1a, 0x93, 0x19, 0xfa, 0x64, 0x47, + 0x21, 0xb0, 0x34, 0x98, 0xf2, 0xa3, 0xb6, 0x4d, + 0x38, 0xf2, 0xbc, 0x4a, 0xe8, 0xca, 0x9d, 0x38, + 0x88, 0xf5, 0x2e, 0x48, 0xa0, 0x60, 0x3a, 0x7f, + 0x82, 0xab, 0xcf, 0xff, 0x00, 0x5e, 0x8a, 0xb5, + 0xc9, 0x6f, 0xd0, 0x74, 0x25, 0x6a, 0xb3, 0x4d, + 0xa6, 0x13, 0x83, 0xad, 0xb0, 0x9b, 0x2d, 0x96, + 0x0c, 0xc3, 0x3c, 0xb5, 0x88, 0x19, 0x21, 0xa8, + 0xe7, 0x9a, 0x6a, 0x44, 0xcb, 0x34, 0x54, 0xcf, + 0x99, 0x71, 0xdd, 0x2e, 0xc0, 0xf2, 0xbe, 0x81, + 0xed, 0x16, 0x3d, 0xec, 0x77, 0x4b, 0xb0, 0x3c, + 0xaf, 0xa0, 0x7b, 0x45, 0x8f, 0x7b, 0x1d, 0xd2, + 0xec, 0x0f, 0x2b, 0xe8, 0x1e, 0xd1, 0x63, 0xde, + 0xc7, 0x74, 0xbb, 0x03, 0xca, 0xfa, 0x07, 0xb4, + 0x58, 0xf7, 0xb1, 0xdd, 0x2e, 0xc0, 0xf2, 0xbe, + 0x81, 0xed, 0x16, 0x3d, 0xec, 0x77, 0x4b, 0xb0, + 0x3c, 0xaf, 0xa0, 0x7b, 0x45, 0x8f, 0x7b, 0x1d, + 0xd2, 0xec, 0x0f, 0x2b, 0xe8, 0x1e, 0xd1, 0x63, + 0xde, 0xc7, 0x74, 0xbb, 0x03, 0xca, 0xfa, 0x07, + 0xb4, 0x58, 0xf7, 0xb1, 0xdd, 0x2e, 0xc0, 0xf2, + 0xbe, 0x81, 0xed, 0x16, 0x3d, 0xec, 0x77, 0x4b, + 0xb0, 0x3c, 0xaf, 0xa0, 0x7b, 0x45, 0x8f, 0x7b, + 0x1d, 0xd2, 0xec, 0x0f, 0x2b, 0xe8, 0x1e, 0xd1, + 0x63, 0xde, 0xc7, 0x74, 0xbb, 0x03, 0xca, 0xfa, + 0x07, 0xb4, 0x58, 0xf7, 0xb1, 0xdd, 0x2e, 0xc0, + 0xf2, 0xbe, 0x81, 0xed, 0x16, 0x3d, 0xec, 0x77, + 0x4b, 0xb0, 0x3c, 0xaf, 0xa0, 0x7b, 0x45, 0x8f, + 0x7b, 0x1d, 0xd2, 0xec, 0x0f, 0x2b, 0xe8, 0x1e, + 0xd1, 0x63, 0xde, 0xc7, 0x74, 0xbb, 0x03, 0xca, + 0xfa, 0x07, 0xb4, 0x58, 0xf7, 0xb1, 0xdd, 0x2e, + 0xc0, 0xf2, 0xbe, 0x81, 0xed, 0x16, 0x3d, 0xec, + 0x77, 0x4b, 0xb0, 0x3c, 0xaf, 0xa0, 0x7b, 0x45, + 0x8f, 0x7b, 0x1d, 0xd2, 0xec, 0x0f, 0x2b, 0xe8, + 0x1e, 0xd1, 0x63, 0xde, 0xc7, 0x74, 0xbb, 0x03, + 0xca, 0xfa, 0x07, 0xb4, 0x58, 0xf7, 0xb1, 0x49, + 0xbb, 0x2d, 0x9a, 0xeb, 0xaa, 0xc5, 0x1e, 0xbd, + 0x4a, 0xa9, 0x3e, 0x82, 0xa5, 0xb9, 0x89, 0x35, + 0x87, 0x9d, 0xd2, 0x3f, 0x08, 0x91, 0xb1, 0x3d, + 0x6a, 0x89, 0xf1, 0xaa, 0x22, 0xe5, 0xe1, 0x5f, + 0xe2, 0x0a, 0x9d, 0x52, 0x9f, 0x45, 0x83, 0x22, + 0xa7, 0x54, 0x96, 0xd4, 0x28, 0x11, 0x03, 0x5c, + 0x89, 0x2f, 0x2e, 0x40, 0x08, 0xa4, 0x82, 0x3e, + 0x04, 0x52, 0x23, 0x33, 0x21, 0x06, 0xdb, 0x01, + 0x23, 0x70, 0xc8, 0x40, 0x04, 0x89, 0x51, 0x30, + 0xff, 0x00, 0xe1, 0x0d, 0x64, 0x34, 0xe9, 0x03, + 0x50, 0x2e, 0x69, 0x60, 0x8a, 0xb9, 0x3e, 0xc4, + 0x0a, 0x78, 0x34, 0x7c, 0xfe, 0x11, 0x19, 0x75, + 0x68, 0xcf, 0xa2, 0x2f, 0x85, 0x35, 0xb2, 0x2b, + 0x92, 0xf3, 0xa2, 0x2e, 0x69, 0x8e, 0x51, 0x56, + 0x67, 0x43, 0xdd, 0x9e, 0xa5, 0x46, 0xeb, 0xec, + 0x72, 0x8a, 0xb3, 0x3a, 0x1e, 0xec, 0xf5, 0x2a, + 0x37, 0x5f, 0x63, 0x94, 0x55, 0x99, 0xd0, 0xf7, + 0x67, 0xa9, 0x51, 0xba, 0xfb, 0x1c, 0xa2, 0xac, + 0xce, 0x87, 0xbb, 0x3d, 0x4a, 0x8d, 0xd7, 0xd8, + 0xe5, 0x15, 0x66, 0x74, 0x3d, 0xd9, 0xea, 0x54, + 0x6e, 0xbe, 0xc7, 0x28, 0xab, 0x33, 0xa1, 0xee, + 0xcf, 0x52, 0xa3, 0x75, 0xf6, 0x39, 0x45, 0x59, + 0x9d, 0x0f, 0x76, 0x7a, 0x95, 0x1b, 0xaf, 0xb1, + 0xca, 0x2a, 0xcc, 0xe8, 0x7b, 0xb3, 0xd4, 0xa8, + 0xdd, 0x7d, 0x8e, 0x51, 0x56, 0x67, 0x43, 0xdd, + 0x9e, 0xa5, 0x46, 0xeb, 0xec, 0x72, 0x8a, 0xb3, + 0x3a, 0x1e, 0xec, 0xf5, 0x2a, 0x37, 0x5f, 0x63, + 0x94, 0x55, 0x99, 0xd0, 0xf7, 0x67, 0xa9, 0x51, + 0xba, 0xfb, 0x1c, 0xa2, 0xac, 0xce, 0x87, 0xbb, + 0x3d, 0x4a, 0x8d, 0xd7, 0xd8, 0xe5, 0x15, 0x66, + 0x74, 0x3d, 0xd9, 0xea, 0x54, 0x6e, 0xbe, 0xc7, + 0x28, 0xab, 0x33, 0xa1, 0xee, 0xcf, 0x52, 0xa3, + 0x75, 0xf6, 0x39, 0x45, 0x59, 0x9d, 0x0f, 0x76, + 0x7a, 0x95, 0x1b, 0xaf, 0xb1, 0xca, 0x2a, 0xcc, + 0xe8, 0x7b, 0xb3, 0xd4, 0xa8, 0xdd, 0x7d, 0x8e, + 0x51, 0x56, 0x67, 0x43, 0xdd, 0x9e, 0xa5, 0x46, + 0xeb, 0xec, 0x72, 0x8a, 0xb3, 0x3a, 0x1e, 0xec, + 0xf5, 0x2a, 0x37, 0x5f, 0x63, 0x94, 0x55, 0x99, + 0xd0, 0xf7, 0x67, 0xa9, 0x51, 0xba, 0xfb, 0x1c, + 0xa2, 0xac, 0xce, 0x87, 0xbb, 0x3d, 0x4a, 0x8d, + 0xd7, 0xd8, 0xb4, 0x36, 0x93, 0x6b, 0x5e, 0xa4, + 0xe3, 0x14, 0x89, 0x4f, 0x35, 0x3d, 0xa0, 0x57, + 0x0e, 0x9b, 0x50, 0x65, 0x22, 0xcd, 0xdd, 0x26, + 0x59, 0xba, 0xd8, 0x8b, 0x8e, 0xb2, 0xf8, 0x0e, + 0x69, 0xad, 0x63, 0xbe, 0xea, 0xb7, 0xff, 0x00, + 0xac, 0x41, 0x45, 0x15, 0x57, 0x0b, 0x43, 0x66, + 0x7e, 0x1d, 0x00, 0x45, 0xff, 0x00, 0xc2, 0x8a, + 0xb8, 0xac, 0xd4, 0x26, 0x5c, 0x15, 0x49, 0xb5, + 0x8a, 0x83, 0x86, 0xfc, 0xa9, 0xef, 0x9c, 0x87, + 0x08, 0xd7, 0x3d, 0x28, 0x6b, 0x98, 0x34, 0x19, + 0xfc, 0x16, 0xd9, 0x0d, 0x2d, 0x34, 0x09, 0xde, + 0x80, 0x08, 0x88, 0xa6, 0x49, 0x8d, 0xc7, 0x9b, + 0x1b, 0x8f, 0x36, 0x28, 0x76, 0xe5, 0x46, 0xe3, + 0xa9, 0xc6, 0xa4, 0x52, 0x98, 0xdf, 0x4c, 0x92, + 0xa5, 0xa5, 0x08, 0x85, 0xb6, 0x9b, 0x6d, 0xb1, + 0x53, 0x75, 0xe7, 0x9c, 0x2e, 0x66, 0xda, 0x68, + 0x11, 0x48, 0xcb, 0x9d, 0x7c, 0x02, 0x02, 0x46, + 0x42, 0x05, 0x72, 0xec, 0xd6, 0xb5, 0x6c, 0xd3, + 0xc6, 0xaa, 0xf4, 0xba, 0x25, 0x5a, 0x9d, 0xc4, + 0x70, 0xaf, 0xcb, 0xa1, 0x4f, 0x39, 0xcd, 0x43, + 0x90, 0xa8, 0x8a, 0x0d, 0x4b, 0xde, 0xc6, 0x8a, + 0x4d, 0x2b, 0x99, 0xf7, 0x8a, 0x82, 0x60, 0x8b, + 0x90, 0xb8, 0x40, 0x4e, 0x34, 0x87, 0xb9, 0x1e, + 0x6f, 0x3f, 0x83, 0xc1, 0xcf, 0xf2, 0x78, 0xf0, + 0xd4, 0x6d, 0xf3, 0x80, 0xd3, 0x69, 0xa9, 0xc3, + 0x31, 0x6c, 0x45, 0x14, 0x79, 0xcc, 0xc9, 0x04, + 0x53, 0x9d, 0x72, 0x4c, 0xc9, 0x72, 0xe7, 0xc9, + 0x31, 0x5c, 0xa0, 0x4c, 0xb7, 0xaa, 0x72, 0x69, + 0x15, 0x31, 0x69, 0xb9, 0xd0, 0xd2, 0x37, 0x14, + 0x0d, 0x3a, 0x2e, 0x83, 0x47, 0x26, 0x2b, 0x12, + 0xd1, 0xa5, 0x75, 0x32, 0x02, 0x36, 0xc1, 0xf1, + 0x6d, 0xd5, 0x05, 0x26, 0xb7, 0xa2, 0x7b, 0xa7, + 0x1d, 0x6f, 0x4b, 0x85, 0xb9, 0x1e, 0x6f, 0x3f, + 0x83, 0xc1, 0xcf, 0xf2, 0x63, 0x74, 0x1e, 0x6e, + 0x7e, 0x64, 0xe7, 0x4e, 0x75, 0xf1, 0x62, 0x9b, + 0x48, 0x76, 0xab, 0x51, 0x83, 0x4c, 0x8e, 0xad, + 0x83, 0xf3, 0xe5, 0x31, 0x0d, 0x93, 0x7d, 0x48, + 0x59, 0x17, 0x24, 0x38, 0x2d, 0x01, 0x3a, 0x4d, + 0x83, 0xa6, 0x2d, 0xa1, 0x12, 0x29, 0xa8, 0x36, + 0x64, 0x89, 0x9e, 0x40, 0x4b, 0xcd, 0x89, 0x3b, + 0x2a, 0xb8, 0x22, 0xdd, 0x70, 0xac, 0xf7, 0x1f, + 0xa4, 0xad, 0x46, 0x74, 0x33, 0x9c, 0xcc, 0xb1, + 0x91, 0x33, 0xb1, 0x82, 0xc3, 0x4d, 0x4a, 0x75, + 0xc5, 0x76, 0x41, 0x53, 0xc6, 0x42, 0x10, 0x24, + 0x47, 0x01, 0x50, 0x62, 0x1a, 0x23, 0x84, 0xd2, + 0x6a, 0xc8, 0x94, 0x86, 0xbf, 0x6f, 0xc9, 0xb7, + 0x2a, 0xf3, 0xe8, 0xb3, 0xce, 0x33, 0x92, 0xa9, + 0xce, 0x8b, 0x2f, 0xb9, 0x14, 0xdc, 0x38, 0xc4, + 0x44, 0xd3, 0x6f, 0x22, 0xb4, 0x6f, 0x35, 0x1d, + 0xc2, 0x1d, 0x2e, 0x0a, 0x2e, 0xb6, 0x5b, 0x5d, + 0x48, 0xb9, 0x22, 0xa6, 0x4a, 0xbb, 0x94, 0xcb, + 0x3f, 0x8b, 0xc7, 0xf1, 0x7e, 0xbc, 0x3b, 0x6b, + 0xcb, 0x66, 0xdb, 0x8b, 0x74, 0x93, 0xb0, 0xd6, + 0x9d, 0x32, 0xa6, 0xf5, 0x25, 0xa6, 0x85, 0xc7, + 0x56, 0x62, 0x48, 0x61, 0x82, 0x7c, 0xcd, 0xc6, + 0xd5, 0x84, 0x61, 0x18, 0xd0, 0x39, 0x21, 0x8c, + 0x93, 0x3d, 0x5c, 0xca, 0xd2, 0x27, 0x7d, 0x8d, + 0xc8, 0xf3, 0x79, 0xfc, 0x1e, 0x0e, 0x7f, 0x93, + 0xc7, 0x8b, 0x9e, 0xd4, 0x9b, 0x69, 0xd4, 0xbb, + 0x17, 0x52, 0x76, 0x1b, 0xaf, 0xf0, 0xb1, 0xa5, + 0xef, 0x21, 0x38, 0xf3, 0x8c, 0x6e, 0xe5, 0x0a, + 0x93, 0x63, 0xae, 0x44, 0x78, 0xa7, 0xbc, 0x44, + 0x4e, 0xfd, 0x37, 0x5a, 0x51, 0x72, 0xd2, 0x65, + 0x8d, 0xc8, 0xa2, 0x66, 0xbe, 0x0f, 0x1f, 0x36, + 0x58, 0xdc, 0x27, 0x8b, 0x1b, 0x8f, 0x36, 0x37, + 0x1e, 0x6c, 0x44, 0x72, 0x4c, 0x09, 0x4c, 0x4d, + 0x84, 0xf3, 0xb1, 0x66, 0x45, 0x74, 0x1f, 0x8f, + 0x21, 0x95, 0xd2, 0xe3, 0x4f, 0x36, 0x48, 0x40, + 0x62, 0xbe, 0x65, 0x44, 0xe6, 0x5c, 0xc4, 0x93, + 0xbd, 0x24, 0x51, 0x55, 0x4c, 0x5b, 0xd5, 0x07, + 0x6a, 0xd4, 0x0a, 0x25, 0x51, 0xf1, 0x10, 0x7e, + 0xa5, 0x48, 0xa6, 0xcf, 0x78, 0x43, 0x98, 0x05, + 0xd9, 0x70, 0xd9, 0x7d, 0xc4, 0x0f, 0xe4, 0xa1, + 0xb8, 0xa8, 0x3e, 0x6c, 0xbf, 0xcf, 0xff, 0x00, + 0x08, 0x89, 0x0f, 0xf6, 0x36, 0xda, 0x80, 0x06, + 0xa9, 0x1a, 0x4c, 0xca, 0x8c, 0x97, 0xdb, 0x45, + 0x54, 0x47, 0x1d, 0x86, 0xcc, 0x46, 0xe3, 0xa9, + 0x7f, 0xce, 0xdd, 0xa4, 0xc7, 0xd5, 0x11, 0x7c, + 0x0a, 0x59, 0xa7, 0x3a, 0x63, 0x87, 0xc5, 0x8f, + 0x65, 0xc7, 0xba, 0x25, 0x54, 0xdc, 0xa8, 0xcf, + 0x76, 0x9b, 0x47, 0xa2, 0x40, 0x5a, 0x8d, 0x4e, + 0x4c, 0x78, 0xe7, 0x2e, 0x5e, 0xeb, 0x52, 0x88, + 0x37, 0x1a, 0x38, 0x0b, 0x84, 0x46, 0x5a, 0x1d, + 0x32, 0x34, 0x6d, 0xdd, 0x02, 0xde, 0x48, 0xd1, + 0x91, 0x8e, 0x55, 0xbb, 0x0e, 0x96, 0xe8, 0xd2, + 0xa5, 0x58, 0x75, 0x87, 0x6e, 0xa8, 0xd5, 0x37, + 0x24, 0x45, 0x48, 0x4a, 0xd0, 0xb3, 0x58, 0x62, + 0x4c, 0x56, 0xdc, 0x78, 0xd4, 0xa1, 0x28, 0xc7, + 0x90, 0xb1, 0xcd, 0x96, 0x9d, 0x31, 0x71, 0x62, + 0xb7, 0xa3, 0x77, 0xce, 0x46, 0x8e, 0xb4, 0xab, + 0x1a, 0xdb, 0xac, 0x4c, 0x8f, 0xc5, 0xc4, 0xa6, + 0xcc, 0x91, 0x1b, 0x8d, 0x6a, 0x9d, 0xbd, 0x65, + 0x93, 0x31, 0xe3, 0x9e, 0xcb, 0x75, 0x15, 0x32, + 0xe7, 0x57, 0x8f, 0x50, 0xe4, 0x08, 0x8a, 0xbc, + 0xfc, 0xf9, 0x62, 0x9d, 0xb3, 0x7b, 0x92, 0x4d, + 0x7a, 0x93, 0x42, 0xa8, 0x53, 0xa6, 0xd1, 0xdc, + 0xab, 0x38, 0x7a, 0x24, 0x4a, 0x88, 0x64, 0x2d, + 0xb0, 0xca, 0x6a, 0x93, 0x21, 0x03, 0x5b, 0x68, + 0xea, 0x47, 0x0e, 0xf8, 0xdb, 0x47, 0x41, 0x79, + 0xc7, 0x52, 0x8a, 0x12, 0x2e, 0x26, 0x58, 0x17, + 0x08, 0xd7, 0xea, 0xf4, 0x3a, 0x75, 0x1e, 0xa7, + 0x35, 0xca, 0x63, 0xee, 0xe4, 0x83, 0x1d, 0x49, + 0xd5, 0x80, 0xaf, 0x98, 0x42, 0x96, 0xf6, 0x94, + 0x46, 0xc1, 0x25, 0xb4, 0x22, 0xeb, 0x7f, 0x07, + 0x78, 0x9a, 0x94, 0x07, 0x48, 0xae, 0x50, 0x2d, + 0x0b, 0x8a, 0xa8, 0x8f, 0x2d, 0x3e, 0x8b, 0x51, + 0x97, 0xc3, 0xca, 0xe0, 0xa4, 0x23, 0x31, 0x9c, + 0x52, 0x62, 0x5e, 0x59, 0xac, 0x77, 0x87, 0x24, + 0x26, 0x9d, 0x14, 0xe7, 0x21, 0x34, 0x4d, 0x1f, + 0xc2, 0xcb, 0x0f, 0xd9, 0x57, 0x3c, 0x66, 0x26, + 0xca, 0x91, 0x41, 0xaa, 0xb3, 0x1e, 0x9c, 0x6a, + 0xdc, 0xd7, 0x9c, 0x88, 0xe8, 0xb7, 0x1c, 0x91, + 0x00, 0x97, 0x59, 0x2a, 0x65, 0xa5, 0x05, 0xc0, + 0x55, 0x31, 0xcc, 0x11, 0x0b, 0x9c, 0xbc, 0x38, + 0xb1, 0xed, 0x68, 0xf7, 0x4d, 0xcb, 0x02, 0x89, + 0x2d, 0xf7, 0xe2, 0xc7, 0x96, 0x92, 0x54, 0xdf, + 0x8d, 0xa1, 0x5e, 0x0d, 0xcc, 0x77, 0x5e, 0x1d, + 0x28, 0xe8, 0x98, 0x73, 0xa8, 0x22, 0x2e, 0x62, + 0xbc, 0xcb, 0xcd, 0xcf, 0x8a, 0x46, 0xc9, 0x20, + 0x4e, 0xbd, 0x6b, 0xb6, 0xec, 0x8a, 0x8c, 0xf6, + 0xe9, 0x54, 0xb8, 0x70, 0xe4, 0xc5, 0xa8, 0x32, + 0x91, 0x96, 0x44, 0x95, 0xa8, 0xac, 0x5e, 0x08, + 0x5c, 0xd6, 0xd2, 0xb2, 0x9b, 0xd1, 0x72, 0x41, + 0x77, 0xa0, 0x8a, 0xa8, 0xcf, 0x36, 0x5c, 0xf8, + 0x1b, 0x1e, 0xbf, 0x36, 0x45, 0x51, 0x28, 0xd4, + 0x8a, 0x95, 0x4a, 0x1d, 0x36, 0xa1, 0x36, 0x12, + 0xc9, 0x62, 0x39, 0x38, 0x2b, 0xc2, 0xbc, 0xe3, + 0x69, 0x99, 0x0a, 0x20, 0x93, 0x8a, 0x00, 0x84, + 0x62, 0xde, 0x79, 0x2a, 0xe5, 0x92, 0x66, 0x89, + 0x88, 0x36, 0x7d, 0xc5, 0x53, 0x6d, 0xa7, 0x69, + 0xf4, 0x6a, 0x84, 0xc6, 0xdf, 0x7d, 0xf8, 0xcd, + 0x1b, 0x11, 0xcc, 0xc4, 0xa4, 0x46, 0x15, 0x39, + 0x0d, 0x7f, 0x24, 0xd9, 0x14, 0x55, 0x71, 0x0b, + 0x2d, 0x3e, 0x05, 0xe7, 0xe6, 0xc4, 0x4b, 0x4a, + 0xe0, 0x9f, 0x3a, 0x55, 0x32, 0x1d, 0x1a, 0xa3, + 0x22, 0x7c, 0x15, 0x24, 0x99, 0x11, 0xb8, 0xce, + 0x2b, 0xd1, 0x54, 0x4b, 0x42, 0xef, 0xc5, 0x51, + 0x37, 0x7d, 0xf7, 0x30, 0xea, 0x54, 0xd7, 0xe1, + 0x0d, 0x49, 0x86, 0x2d, 0x2b, 0x82, 0x4d, 0x49, + 0xfa, 0x3b, 0x14, 0x7a, 0x83, 0xb5, 0x48, 0xc8, + 0x45, 0x22, 0x08, 0xc7, 0x73, 0x88, 0x64, 0x43, + 0x4e, 0xa2, 0x70, 0x32, 0xef, 0x07, 0xbf, 0x0c, + 0x89, 0x7b, 0xd2, 0xd4, 0x3a, 0x55, 0x75, 0x26, + 0x72, 0x6d, 0x0b, 0x8a, 0x1c, 0xa8, 0x50, 0x65, + 0x51, 0x6a, 0x2c, 0x4c, 0xa9, 0x11, 0x84, 0x08, + 0xae, 0x46, 0x71, 0x1f, 0x94, 0x4d, 0x1a, 0x36, + 0xe2, 0x32, 0xd6, 0x5a, 0xcb, 0x41, 0x2a, 0x6a, + 0x5c, 0xb2, 0x41, 0xef, 0xd5, 0x74, 0x77, 0xd8, + 0x2b, 0x3a, 0xe3, 0x0a, 0x92, 0x51, 0xce, 0x8b, + 0x51, 0x0a, 0xa1, 0x30, 0x52, 0x46, 0x09, 0x47, + 0x34, 0x7c, 0xe3, 0x88, 0xa9, 0x13, 0xc0, 0x2b, + 0xf0, 0xdb, 0x14, 0x42, 0xcc, 0xc5, 0x55, 0x11, + 0x44, 0x85, 0x7b, 0xe1, 0x54, 0x44, 0xb0, 0x2e, + 0xf5, 0x76, 0x3b, 0x09, 0x6d, 0xd6, 0x37, 0xb2, + 0x98, 0x29, 0x2c, 0x07, 0x04, 0xea, 0x29, 0xb2, + 0x1a, 0x35, 0x9f, 0x3a, 0x64, 0x3a, 0x77, 0xad, + 0xe6, 0x26, 0xa2, 0x48, 0xa6, 0x29, 0xa7, 0x35, + 0xc5, 0x3e, 0xd2, 0xb8, 0x2a, 0xaf, 0xca, 0x8b, + 0x4e, 0xa3, 0xd4, 0x66, 0x48, 0x82, 0xba, 0x66, + 0x32, 0xcc, 0x67, 0x08, 0xe2, 0x96, 0xa2, 0x0d, + 0x0f, 0xa2, 0xa2, 0x6e, 0xcd, 0x48, 0x49, 0x10, + 0x0b, 0x22, 0x2d, 0x25, 0x92, 0x2e, 0x92, 0xca, + 0x0d, 0xa9, 0x5f, 0xa9, 0xa1, 0x15, 0x3e, 0x8f, + 0x50, 0x96, 0x81, 0x2f, 0x80, 0x3d, 0xcc, 0x77, + 0x09, 0x5b, 0x9b, 0xbb, 0x57, 0x78, 0x67, 0x07, + 0x24, 0x26, 0xdd, 0x46, 0xc4, 0x8c, 0x84, 0xd0, + 0x74, 0xa2, 0x2e, 0xac, 0xb1, 0x6f, 0x6c, 0xce, + 0xb5, 0x5a, 0x76, 0xe3, 0x61, 0xf8, 0xd3, 0x61, + 0x4a, 0xb7, 0xa9, 0xae, 0xc8, 0x28, 0x4b, 0x14, + 0x96, 0x4c, 0xaa, 0x89, 0xb2, 0x67, 0x02, 0x9e, + 0x88, 0x64, 0x28, 0xd2, 0xc9, 0x54, 0xde, 0xeb, + 0xd2, 0xe6, 0xf1, 0x91, 0x24, 0x6d, 0x11, 0x4c, + 0x5d, 0x13, 0x88, 0x6d, 0x99, 0xb6, 0xe0, 0xa8, + 0x38, 0xd9, 0x10, 0x18, 0x2f, 0x84, 0x4c, 0x15, + 0x44, 0x85, 0x7c, 0xe2, 0x48, 0xa8, 0xbe, 0x7c, + 0x58, 0x87, 0x22, 0x0d, 0xe9, 0x6a, 0xc8, 0x8e, + 0xe1, 0x34, 0xe7, 0x67, 0xe9, 0x4c, 0x11, 0x0a, + 0xaa, 0x66, 0xc4, 0xb9, 0x8c, 0xc5, 0x94, 0xd2, + 0xff, 0x00, 0x21, 0xe8, 0xcf, 0x3a, 0xd1, 0xa7, + 0xc6, 0x26, 0xb8, 0x91, 0xfb, 0x8b, 0xdf, 0xe8, + 0x9c, 0xff, 0x00, 0xb8, 0xb8, 0x08, 0xab, 0xa0, + 0x39, 0xbf, 0x82, 0x3f, 0xcd, 0x8e, 0x19, 0x7c, + 0x58, 0xe1, 0x97, 0xc5, 0x8d, 0x9e, 0x0d, 0x7a, + 0x2d, 0xc8, 0xd4, 0x9b, 0x7e, 0x0c, 0x7a, 0x94, + 0xc6, 0xa1, 0xcb, 0xdf, 0xd3, 0xe4, 0xbc, 0xc3, + 0x2d, 0xcc, 0x80, 0x62, 0x21, 0x29, 0xa4, 0x57, + 0xdd, 0x6b, 0x51, 0xf7, 0xcd, 0x98, 0x83, 0x6a, + 0x6e, 0x66, 0x1a, 0xb7, 0x66, 0xd8, 0xb8, 0x98, + 0x99, 0x16, 0x00, 0xda, 0xf5, 0x0b, 0x8e, 0x8b, + 0x44, 0xb8, 0x2c, 0x59, 0x74, 0x4a, 0xad, 0x2e, + 0x6c, 0xca, 0x43, 0xb2, 0xe6, 0xf6, 0x0e, 0xb0, + 0xea, 0x55, 0x1a, 0xdc, 0x20, 0x47, 0x90, 0x6d, + 0x84, 0x87, 0x62, 0xfe, 0x4d, 0xe6, 0xff, 0x00, + 0x69, 0x47, 0x6e, 0x33, 0x88, 0x8c, 0x36, 0x0e, + 0x37, 0x93, 0xc1, 0x5d, 0x81, 0x16, 0x8e, 0xd5, + 0x7a, 0xb1, 0x1a, 0x1a, 0x4e, 0x8f, 0xb4, 0x1a, + 0xbd, 0xb2, 0x10, 0x62, 0x34, 0x8d, 0xa9, 0xc9, + 0x83, 0x24, 0x5b, 0xa8, 0xd6, 0x23, 0x86, 0x6a, + 0x89, 0x94, 0xc7, 0x77, 0x91, 0x7c, 0x20, 0x9f, + 0xb6, 0x43, 0xc4, 0xa4, 0x97, 0x4b, 0x8f, 0x4a, + 0xa6, 0x05, 0x56, 0x9a, 0x11, 0x34, 0x5b, 0x75, + 0xba, 0x34, 0x96, 0x20, 0xd5, 0x6d, 0xf9, 0x74, + 0xa9, 0xf4, 0x82, 0x09, 0xd1, 0x9a, 0x50, 0x84, + 0xf1, 0x14, 0x76, 0x64, 0xb1, 0xbb, 0x70, 0x23, + 0x38, 0xd2, 0x32, 0x6c, 0x3c, 0xd8, 0xba, 0x4c, + 0xcb, 0x57, 0x59, 0x60, 0x16, 0x42, 0xbe, 0xfd, + 0xe1, 0x78, 0xd4, 0xa5, 0xb6, 0xcc, 0x79, 0x56, + 0xe5, 0x2a, 0x14, 0x7b, 0x6e, 0x73, 0x94, 0x29, + 0x75, 0x62, 0x8d, 0x1e, 0x73, 0x60, 0xec, 0xf9, + 0xac, 0xc0, 0x8c, 0xe0, 0x48, 0xa9, 0x3a, 0x8e, + 0x91, 0xc6, 0x57, 0x22, 0x10, 0x1b, 0x6d, 0x2b, + 0x8c, 0x29, 0x6e, 0xc9, 0xf0, 0x71, 0xd3, 0xa7, + 0x53, 0x6a, 0x77, 0x95, 0x6e, 0x14, 0x06, 0x8e, + 0x43, 0x96, 0x3c, 0x4a, 0x94, 0xf8, 0xf2, 0xa8, + 0xf2, 0x69, 0xb1, 0x66, 0xd5, 0x42, 0x4c, 0xc5, + 0x59, 0xa5, 0x4d, 0x9c, 0x22, 0xe2, 0x37, 0x31, + 0xc1, 0x07, 0x1e, 0x1c, 0xcf, 0x59, 0x01, 0xab, + 0x8e, 0x38, 0xf9, 0x3a, 0x65, 0x12, 0xbc, 0xec, + 0xda, 0xbd, 0x86, 0xd4, 0x8a, 0x55, 0x18, 0x8a, + 0xf6, 0xb7, 0x5d, 0x3b, 0x8e, 0x47, 0x02, 0x1b, + 0xe9, 0x42, 0xcd, 0x3d, 0xf7, 0x19, 0x8e, 0x26, + 0xa4, 0xaa, 0x31, 0xc1, 0xd5, 0x71, 0x77, 0x4e, + 0x6f, 0x53, 0x4b, 0xa4, 0x1c, 0xdc, 0xcb, 0x8b, + 0x6e, 0x22, 0x35, 0x79, 0x51, 0x84, 0x47, 0x20, + 0x6e, 0xe1, 0x84, 0x82, 0x9f, 0x12, 0x08, 0xcf, + 0x04, 0x44, 0xff, 0x00, 0x72, 0x26, 0x26, 0x69, + 0x57, 0xea, 0x97, 0x49, 0x28, 0x9c, 0x9a, 0x2b, + 0x97, 0x25, 0xaa, 0x24, 0xaa, 0x3a, 0x81, 0xfa, + 0x95, 0xd1, 0x13, 0x80, 0x54, 0x4c, 0xb3, 0x45, + 0x08, 0x93, 0x09, 0xac, 0xd3, 0x9f, 0x42, 0xe9, + 0xcf, 0xbf, 0xe7, 0x9a, 0x12, 0x29, 0x35, 0x2d, + 0xa4, 0xdc, 0xf4, 0x4a, 0x5b, 0x15, 0x4b, 0x9a, + 0x35, 0x6e, 0x9d, 0x0e, 0x32, 0xbb, 0x14, 0xe6, + 0xb9, 0x02, 0x03, 0xf0, 0x22, 0xa4, 0x87, 0xd8, + 0x8e, 0xda, 0xef, 0x15, 0x5d, 0x42, 0x30, 0x71, + 0x5a, 0xc8, 0x88, 0x07, 0x23, 0x55, 0x6c, 0x48, + 0x55, 0x8a, 0x54, 0x67, 0xae, 0x3a, 0x7d, 0xc9, + 0x22, 0x8d, 0x11, 0xab, 0xa9, 0xcb, 0x12, 0x65, + 0x7d, 0xca, 0x32, 0x47, 0x44, 0x6d, 0xca, 0xfb, + 0x4f, 0xb0, 0xdb, 0x13, 0x8a, 0x2f, 0x85, 0x25, + 0x38, 0x2f, 0x38, 0x5a, 0x0f, 0x39, 0x08, 0xe6, + 0x92, 0xd7, 0xc4, 0x31, 0xbc, 0x49, 0x33, 0x2a, + 0xb5, 0x6a, 0x45, 0x81, 0x3e, 0xb9, 0x4c, 0x66, + 0x9b, 0x50, 0x7b, 0x68, 0x0c, 0xb9, 0x20, 0x1b, + 0x86, 0x50, 0x78, 0x94, 0x06, 0xdd, 0x68, 0x25, + 0x3b, 0x1d, 0xce, 0xfd, 0x1c, 0x20, 0x04, 0x61, + 0x49, 0xc5, 0x52, 0x30, 0x60, 0x17, 0xe0, 0xe9, + 0xc4, 0xba, 0x3c, 0xd8, 0x74, 0x8d, 0xb5, 0x3d, + 0x2a, 0x13, 0xd1, 0xda, 0x9b, 0x58, 0xd7, 0x0d, + 0xd7, 0x59, 0x26, 0xc1, 0xf0, 0x5a, 0xb4, 0x97, + 0xd0, 0xe3, 0x91, 0x22, 0x23, 0x81, 0xba, 0x7d, + 0xa2, 0xd4, 0xde, 0x63, 0xdf, 0xa2, 0x67, 0x9e, + 0x69, 0x87, 0x21, 0xc6, 0x6e, 0xe4, 0xba, 0x6b, + 0xa8, 0x6c, 0xb5, 0x56, 0xa7, 0x5b, 0xb6, 0xdb, + 0x34, 0xf9, 0x6e, 0x52, 0x24, 0xd7, 0x8a, 0x9e, + 0xdc, 0xa0, 0x94, 0x32, 0x64, 0x33, 0x4a, 0x86, + 0xe3, 0x72, 0x64, 0x1b, 0xc2, 0x1b, 0x85, 0x26, + 0x48, 0x5c, 0x06, 0xd1, 0xc4, 0xd5, 0xb9, 0x71, + 0xf0, 0x38, 0x7d, 0x87, 0xa7, 0x5c, 0x35, 0xfa, + 0x8c, 0x5a, 0x64, 0xb8, 0x33, 0x2a, 0x34, 0xea, + 0x43, 0x8f, 0xd7, 0x59, 0xb5, 0x67, 0x1b, 0x51, + 0x67, 0xbe, 0xe3, 0xa9, 0x30, 0x4e, 0x98, 0xe3, + 0x45, 0x32, 0x18, 0x55, 0x4f, 0x73, 0x31, 0xd3, + 0x46, 0xf7, 0x2f, 0xab, 0x6e, 0xb9, 0x32, 0x5e, + 0xfd, 0x90, 0x71, 0xcd, 0xa9, 0x52, 0x1e, 0x89, + 0x77, 0x4a, 0x71, 0xd6, 0xe9, 0xe8, 0x53, 0xa3, + 0x45, 0x9c, 0xa7, 0x4c, 0x8e, 0xec, 0x36, 0x24, + 0x1b, 0xc0, 0xa8, 0xe4, 0x87, 0x22, 0xba, 0xf4, + 0x82, 0x62, 0x43, 0xce, 0x01, 0x13, 0xc9, 0xbe, + 0x71, 0x1d, 0x2f, 0xcb, 0xa9, 0x6f, 0x1d, 0x71, + 0x13, 0x86, 0x5f, 0x16, 0x38, 0x65, 0xf1, 0x63, + 0x86, 0x5f, 0x16, 0x2c, 0xd4, 0xca, 0xd1, 0xb5, + 0x93, 0xc5, 0x6e, 0xd1, 0x53, 0xf5, 0x53, 0xa3, + 0xa7, 0xf9, 0xfe, 0xdf, 0x19, 0xde, 0xb5, 0x6b, + 0x7f, 0x25, 0xca, 0xcf, 0xd2, 0x34, 0xcf, 0xfc, + 0xb1, 0xc1, 0xf9, 0x97, 0xe9, 0xc6, 0xcd, 0xa0, + 0xd5, 0xd2, 0xa5, 0x50, 0x7e, 0xdf, 0xae, 0x46, + 0xa5, 0xd6, 0xd9, 0x85, 0x9c, 0x4a, 0x74, 0xc8, + 0xe0, 0xec, 0x7a, 0xfb, 0x6a, 0x79, 0xbb, 0x04, + 0xdc, 0x75, 0xf6, 0x81, 0xa2, 0x03, 0x06, 0x4c, + 0x72, 0x07, 0x1d, 0xef, 0xf5, 0x81, 0x32, 0x0d, + 0xba, 0x78, 0xba, 0xa5, 0xc8, 0xa5, 0x37, 0x69, + 0x5c, 0x57, 0x24, 0x0a, 0x54, 0x0b, 0xd2, 0x1d, + 0x76, 0x39, 0x3c, 0x34, 0xb2, 0x6d, 0x5f, 0x95, + 0x41, 0x65, 0x93, 0x09, 0x2e, 0x4e, 0xdc, 0xb8, + 0xea, 0x12, 0x11, 0x20, 0xa3, 0x03, 0xbd, 0x74, + 0x1b, 0xde, 0x2b, 0x6d, 0x69, 0x43, 0x90, 0x09, + 0x56, 0x41, 0xb6, 0x6b, 0xd6, 0xc5, 0x26, 0x89, + 0x22, 0x96, 0x23, 0x3e, 0xe2, 0xab, 0x5d, 0xc6, + 0xb5, 0x17, 0x9e, 0x8f, 0x00, 0x92, 0xa2, 0x2e, + 0xb1, 0x06, 0x33, 0x92, 0x59, 0x66, 0x49, 0x36, + 0x9b, 0x87, 0x65, 0x33, 0x19, 0xdd, 0xcb, 0xa8, + 0x0f, 0x2c, 0x73, 0x54, 0xd2, 0x8a, 0xab, 0x51, + 0x17, 0xe2, 0x4d, 0xb2, 0xe4, 0x4d, 0x95, 0x53, + 0xa2, 0x4c, 0x5b, 0xa4, 0x50, 0xe8, 0x53, 0xab, + 0x8d, 0x56, 0xc0, 0xd9, 0x7e, 0x34, 0xa8, 0xee, + 0xc8, 0x8d, 0x53, 0x33, 0x76, 0xa6, 0xb1, 0x1c, + 0x42, 0x6d, 0xb2, 0x61, 0xf9, 0x0d, 0xc5, 0x52, + 0x90, 0x4c, 0x2c, 0x14, 0xd2, 0xc1, 0x62, 0x9f, + 0x12, 0xb2, 0x09, 0x75, 0x53, 0x7f, 0x6f, 0xc9, + 0xb8, 0x4e, 0xed, 0x1a, 0xbe, 0xe1, 0xab, 0x94, + 0x69, 0x73, 0x8e, 0x82, 0xe9, 0xa2, 0x53, 0x1d, + 0x4a, 0x82, 0x84, 0xf2, 0x3a, 0x64, 0x76, 0xc4, + 0x1b, 0x76, 0x9c, 0x80, 0x22, 0x2d, 0x0a, 0xc5, + 0x56, 0xf9, 0xc6, 0x33, 0xf5, 0xda, 0xbc, 0xe6, + 0x6d, 0xfd, 0xa3, 0x54, 0xa9, 0x4f, 0xb7, 0x4e, + 0x9a, 0xfd, 0xc9, 0x47, 0x65, 0xd9, 0x34, 0x4a, + 0x8b, 0xef, 0x80, 0xba, 0x30, 0xa0, 0x33, 0x24, + 0xa2, 0xd4, 0x52, 0x25, 0x35, 0xe2, 0x53, 0x56, + 0xf4, 0x38, 0xe0, 0xc7, 0x6f, 0xbe, 0x53, 0x14, + 0x37, 0x13, 0xbf, 0x2a, 0xbc, 0xfa, 0x9c, 0x8b, + 0xa6, 0xed, 0xa7, 0xbd, 0x32, 0x49, 0xd3, 0x93, + 0x66, 0x93, 0x5d, 0x18, 0x0a, 0xe1, 0x70, 0x89, + 0x24, 0xe3, 0x30, 0x45, 0x27, 0x86, 0xcf, 0x73, + 0xc4, 0x29, 0x3a, 0xe0, 0xef, 0xf4, 0x6f, 0x74, + 0x96, 0xef, 0x56, 0x8e, 0xf7, 0x1b, 0x27, 0x8a, + 0xa1, 0x7d, 0x51, 0xcb, 0x25, 0xe6, 0x19, 0xde, + 0x3f, 0xd0, 0x5f, 0xc5, 0x10, 0xd9, 0x08, 0x56, + 0x85, 0x4d, 0xa5, 0xfd, 0xb7, 0x70, 0x4f, 0xa0, + 0xd1, 0xa5, 0xa6, 0x94, 0x42, 0x56, 0xed, 0x98, + 0xf5, 0x91, 0x43, 0x52, 0x45, 0xef, 0xb5, 0xee, + 0xc1, 0x0b, 0x99, 0x32, 0x44, 0x1c, 0xfe, 0x24, + 0x1b, 0x4e, 0x92, 0x40, 0x54, 0xc9, 0xad, 0xa4, + 0xca, 0xa8, 0x76, 0xf1, 0x71, 0x3c, 0xe8, 0x9d, + 0x47, 0x71, 0x4d, 0xb6, 0xdd, 0x57, 0xde, 0x8e, + 0x8e, 0xac, 0x50, 0x41, 0x79, 0xe9, 0x32, 0xdb, + 0x2d, 0x0d, 0x32, 0x6f, 0x70, 0xea, 0xec, 0xbd, + 0x5b, 0x83, 0x37, 0x93, 0x7b, 0x54, 0x9b, 0x54, + 0xa2, 0xdb, 0x2e, 0xf6, 0x2e, 0x54, 0xba, 0x6b, + 0x8f, 0x6d, 0x56, 0xb0, 0xdb, 0xa7, 0x19, 0xc7, + 0x18, 0x74, 0x98, 0x49, 0x73, 0x1f, 0xdc, 0x11, + 0x0a, 0x8a, 0x93, 0x2e, 0x13, 0x4d, 0xef, 0x19, + 0x3c, 0xdb, 0x78, 0x13, 0x43, 0xa2, 0x6d, 0x91, + 0x0a, 0xd5, 0x68, 0xc5, 0x32, 0xe2, 0xda, 0x2b, + 0xac, 0x84, 0xba, 0x8b, 0xca, 0x94, 0x00, 0xed, + 0x6e, 0x34, 0xee, 0x02, 0x3d, 0x48, 0x34, 0x30, + 0xe8, 0xcb, 0xa8, 0x10, 0xa2, 0x3c, 0x71, 0xa2, + 0x3a, 0x03, 0xa8, 0xa3, 0x39, 0x1d, 0xf0, 0x68, + 0xe4, 0x07, 0x12, 0xca, 0x48, 0x42, 0xc5, 0x4d, + 0x99, 0xd2, 0xeb, 0x5b, 0x41, 0x81, 0x40, 0x94, + 0x91, 0x6e, 0x3a, 0x9d, 0x2e, 0xd6, 0x7e, 0x9a, + 0xfb, 0x32, 0xf8, 0x67, 0xa4, 0xc4, 0x8f, 0x1f, + 0xf6, 0xe2, 0x41, 0x98, 0xa4, 0x24, 0x0b, 0x91, + 0x26, 0x6f, 0x03, 0xc9, 0xab, 0x58, 0xaa, 0x98, + 0xe9, 0x53, 0xc3, 0x6a, 0xf4, 0x5a, 0xe5, 0x88, + 0xdd, 0x66, 0x6b, 0x72, 0x6b, 0x25, 0x69, 0x57, + 0x29, 0xed, 0x4c, 0x59, 0x81, 0xf9, 0x4a, 0xbb, + 0x85, 0x0d, 0xb1, 0x6f, 0x8f, 0x51, 0x7c, 0x78, + 0x92, 0xd0, 0x71, 0xf8, 0x94, 0x09, 0x0a, 0x72, + 0x11, 0x4b, 0x4b, 0xe4, 0x59, 0x1c, 0x33, 0x9a, + 0xcd, 0xc9, 0x68, 0x42, 0xa8, 0xc5, 0x46, 0x6a, + 0x54, 0xda, 0x55, 0xc6, 0xf2, 0x0c, 0xab, 0x85, + 0xcb, 0x8e, 0xb2, 0x11, 0xdf, 0x8e, 0xda, 0x8b, + 0x75, 0x59, 0x4b, 0x4d, 0x8a, 0xdf, 0x7e, 0xe3, + 0x62, 0x51, 0xc8, 0x66, 0x4b, 0x33, 0x6c, 0x55, + 0x17, 0x4e, 0x59, 0xad, 0x3e, 0xbd, 0x71, 0x39, + 0x68, 0x58, 0x72, 0x4e, 0xb1, 0x52, 0x39, 0x53, + 0xaf, 0xd0, 0x62, 0x6c, 0x85, 0x94, 0xf2, 0xbd, + 0x26, 0x22, 0xcf, 0x74, 0xb8, 0x37, 0x5c, 0xd7, + 0xa9, 0xc8, 0x8b, 0xf0, 0x38, 0x52, 0x52, 0x63, + 0x74, 0x22, 0xce, 0xef, 0x74, 0x02, 0x09, 0x14, + 0x5c, 0x7d, 0xeb, 0xa2, 0x0d, 0x15, 0xa9, 0x0e, + 0xd5, 0xd8, 0xbe, 0xdc, 0xa8, 0x4d, 0x8d, 0x0e, + 0xb8, 0x36, 0xfb, 0xeb, 0x14, 0xd8, 0x8a, 0x2c, + 0x4b, 0x7d, 0xfe, 0x1a, 0x59, 0x4b, 0xa6, 0x8a, + 0xb6, 0x8d, 0xc8, 0x89, 0xba, 0x54, 0x79, 0x45, + 0xc1, 0x56, 0x9d, 0xcd, 0x1b, 0x76, 0xad, 0x56, + 0x9c, 0xc5, 0xbd, 0x7e, 0x54, 0x29, 0x32, 0x06, + 0x9d, 0x22, 0x65, 0xe9, 0x05, 0xb7, 0x24, 0x51, + 0x6a, 0x0f, 0xb8, 0x02, 0xbc, 0x0c, 0x7e, 0x25, + 0x62, 0x54, 0x46, 0x3d, 0x39, 0xf3, 0x17, 0x5e, + 0x67, 0xbe, 0x70, 0x18, 0x67, 0x58, 0x91, 0x87, + 0x7e, 0xd9, 0x6a, 0x32, 0xec, 0xa4, 0xab, 0x92, + 0xe8, 0x8b, 0x02, 0x5b, 0xed, 0xd5, 0x2a, 0xbb, + 0x39, 0xa7, 0x94, 0x54, 0x6a, 0x52, 0xc2, 0x71, + 0xea, 0xaa, 0x32, 0xa0, 0xd4, 0xa0, 0x31, 0x71, + 0x90, 0x09, 0x4d, 0x2b, 0xaa, 0x81, 0x27, 0x31, + 0x28, 0xe2, 0x45, 0xa4, 0xc0, 0x33, 0xc4, 0x9a, + 0x7b, 0xed, 0x49, 0x90, 0xd4, 0x9d, 0x5c, 0x4b, + 0x6f, 0xbc, 0xdc, 0x8d, 0x45, 0xac, 0xb7, 0xe0, + 0xe1, 0x0b, 0xda, 0x8f, 0x35, 0xd6, 0x5b, 0xc4, + 0x2d, 0x47, 0x9a, 0xea, 0x5c, 0xcb, 0x35, 0xcf, + 0x3c, 0x5a, 0x71, 0x34, 0xdd, 0x56, 0xc9, 0x64, + 0xbd, 0xed, 0xc3, 0x44, 0x5f, 0x8f, 0xe2, 0xa9, + 0xc5, 0x5c, 0x38, 0x3a, 0xc4, 0xc3, 0xfe, 0x70, + 0x90, 0xfe, 0xb4, 0x54, 0xc5, 0x4e, 0xdf, 0x93, + 0x48, 0x9d, 0x22, 0x9d, 0x2d, 0x93, 0x6d, 0xe8, + 0xae, 0x13, 0x7d, 0xf2, 0x2a, 0x6b, 0x04, 0x55, + 0x46, 0xdd, 0x0c, 0xfe, 0x13, 0x6e, 0x0a, 0x6a, + 0x03, 0x4e, 0x65, 0x4f, 0x06, 0x38, 0x1f, 0xe4, + 0xae, 0x38, 0x1f, 0xe4, 0xae, 0x22, 0x0c, 0xa8, + 0x12, 0x59, 0x99, 0x05, 0xe7, 0xe2, 0x4a, 0x8e, + 0x5a, 0xd9, 0x90, 0xc1, 0xab, 0x6e, 0xb6, 0x59, + 0x28, 0xae, 0x92, 0x1e, 0x7c, 0x88, 0x54, 0x80, + 0xc7, 0xe0, 0x98, 0x11, 0x01, 0xa1, 0x01, 0x12, + 0x2d, 0x4a, 0xbd, 0x5e, 0xb8, 0xb8, 0x68, 0xd7, + 0x05, 0x5a, 0x5c, 0xa8, 0x2d, 0xc8, 0x07, 0x0d, + 0xb0, 0x6e, 0x33, 0x02, 0x28, 0xab, 0xa4, 0xde, + 0xdd, 0x45, 0x8e, 0xd3, 0x6e, 0xbc, 0x0d, 0xa9, + 0xee, 0x95, 0xd0, 0x71, 0x43, 0x51, 0x20, 0x64, + 0x86, 0x68, 0x57, 0x8d, 0x46, 0x9d, 0x32, 0x3d, + 0x02, 0x8b, 0x41, 0x91, 0x32, 0x4d, 0x2e, 0xdf, + 0x88, 0xad, 0xb5, 0x2e, 0x50, 0x1b, 0x2f, 0x3d, + 0x21, 0xc5, 0x15, 0x53, 0x14, 0x30, 0x69, 0xc1, + 0x46, 0x44, 0x04, 0x07, 0xf2, 0x4c, 0xa0, 0xae, + 0x62, 0xd0, 0xee, 0xc0, 0x0c, 0xaa, 0x57, 0x0d, + 0xcd, 0x57, 0x86, 0xd4, 0x0a, 0x95, 0x5e, 0x64, + 0xa8, 0x8c, 0x93, 0x64, 0x0d, 0x16, 0xe4, 0x33, + 0x26, 0x91, 0x37, 0x66, 0xf3, 0x8c, 0xb4, 0xdb, + 0xd2, 0x4c, 0x32, 0x42, 0x13, 0x92, 0xe3, 0xa4, + 0x8e, 0x7e, 0x57, 0x3d, 0xe7, 0x7d, 0x85, 0xba, + 0xae, 0xc2, 0x9b, 0x16, 0xa2, 0xb5, 0x99, 0x5c, + 0x6c, 0x38, 0xee, 0x44, 0x62, 0x42, 0x35, 0x10, + 0x55, 0x23, 0x3b, 0xa5, 0x5c, 0x61, 0xe0, 0x18, + 0xe8, 0xd4, 0xa6, 0xc8, 0x80, 0x0f, 0x29, 0x60, + 0xfe, 0x4e, 0x80, 0x3a, 0x2a, 0x8e, 0x80, 0x9a, + 0x39, 0x58, 0xaf, 0x3c, 0xed, 0x55, 0xf7, 0x6a, + 0x0f, 0xba, 0xf5, 0x6d, 0x8e, 0x16, 0xa8, 0xe3, + 0x80, 0xc1, 0xac, 0xa8, 0xc9, 0xf0, 0x58, 0xef, + 0x9a, 0x54, 0x8e, 0xd0, 0x67, 0x93, 0x61, 0x15, + 0x18, 0x46, 0xc7, 0x20, 0x6f, 0x48, 0x22, 0x22, + 0x35, 0x59, 0xaf, 0x32, 0xf5, 0x26, 0x43, 0x53, + 0x9c, 0x17, 0xa8, 0x51, 0xca, 0x2d, 0x24, 0xf7, + 0x11, 0x17, 0x83, 0x8e, 0x4d, 0x93, 0x44, 0xd8, + 0xa1, 0x47, 0x51, 0x75, 0x15, 0xb2, 0x51, 0xce, + 0x40, 0xbc, 0x79, 0x2f, 0xc2, 0xcf, 0x9f, 0x0c, + 0x0c, 0x98, 0xd2, 0xda, 0x9c, 0xc1, 0x93, 0x72, + 0xd9, 0x7c, 0x64, 0xb4, 0xf2, 0x08, 0x12, 0x83, + 0xe0, 0x7b, 0xc1, 0x73, 0x41, 0x89, 0x36, 0xaa, + 0x87, 0xdf, 0x69, 0x20, 0x51, 0xf8, 0x94, 0x72, + 0xe6, 0xc1, 0xd6, 0xee, 0x07, 0x1a, 0x98, 0xc1, + 0xd4, 0x1d, 0x56, 0x67, 0xd4, 0x46, 0xad, 0x31, + 0xbd, 0xc4, 0x44, 0x47, 0xea, 0x20, 0xe8, 0x3c, + 0x32, 0x57, 0x28, 0xe8, 0xa0, 0xa8, 0xeb, 0x4d, + 0x9e, 0xe9, 0xb5, 0x06, 0x15, 0x41, 0x33, 0x69, + 0x53, 0x9b, 0x11, 0xeb, 0xd7, 0x1c, 0x5a, 0xac, + 0x9a, 0xdc, 0x6a, 0x9c, 0x96, 0x6a, 0x73, 0x7f, + 0xc6, 0xe4, 0x80, 0x47, 0x41, 0x93, 0xde, 0x20, + 0x26, 0xfa, 0x2e, 0xe7, 0x83, 0x73, 0x48, 0xa2, + 0x68, 0xd5, 0x1d, 0x77, 0x64, 0x9a, 0xc3, 0x49, + 0xf7, 0xd8, 0x5a, 0xb5, 0x74, 0xaa, 0xe9, 0x5e, + 0x2a, 0x94, 0xb5, 0xac, 0x09, 0x6a, 0x19, 0xca, + 0x43, 0xbc, 0x1e, 0x65, 0x1d, 0xd8, 0xb7, 0xa7, + 0x70, 0x31, 0xf4, 0x91, 0x07, 0x0a, 0x8d, 0x24, + 0x6d, 0xd9, 0x13, 0x7b, 0xad, 0x04, 0xa3, 0x8a, + 0x95, 0x7e, 0xe4, 0xac, 0x0b, 0x61, 0x52, 0xaa, + 0xca, 0x94, 0x2c, 0xcc, 0x49, 0xec, 0x66, 0x2c, + 0x34, 0x4c, 0x4b, 0x16, 0xd1, 0xa1, 0x79, 0x87, + 0x23, 0xb2, 0xd3, 0x8c, 0xe8, 0x04, 0xef, 0x1b, + 0x68, 0x85, 0xa0, 0x2c, 0xdc, 0x16, 0xd1, 0xd2, + 0x23, 0x59, 0xd7, 0x35, 0xd3, 0x53, 0x66, 0x54, + 0x69, 0xf5, 0x79, 0x32, 0x63, 0xcd, 0x65, 0xa8, + 0xf2, 0x59, 0x36, 0xa2, 0x23, 0x6e, 0x34, 0xc1, + 0x93, 0xad, 0x8a, 0x08, 0x47, 0x14, 0x68, 0x90, + 0xc9, 0x48, 0x9c, 0x67, 0x76, 0xeb, 0xbd, 0xea, + 0x3c, 0x66, 0x80, 0x08, 0x21, 0x70, 0xdc, 0xad, + 0xd5, 0x3b, 0x34, 0x15, 0x49, 0x01, 0x53, 0xe1, + 0x86, 0x1a, 0xca, 0x06, 0xe3, 0x0e, 0xb8, 0xa0, + 0x99, 0x0b, 0x0e, 0xb0, 0x2c, 0x24, 0x57, 0x9b, + 0x1e, 0x62, 0x44, 0x75, 0x83, 0xc9, 0xc1, 0x07, + 0x7f, 0x74, 0x00, 0x31, 0x8f, 0x70, 0xdc, 0xd1, + 0x2a, 0x52, 0xab, 0x11, 0xea, 0xf3, 0x42, 0xa3, + 0x3b, 0x9a, 0x5c, 0x85, 0x56, 0x9c, 0x49, 0x08, + 0x9c, 0xc0, 0x2e, 0x47, 0x75, 0xb3, 0x8a, 0xa0, + 0xca, 0x2a, 0x8c, 0x70, 0x46, 0x10, 0x22, 0x8a, + 0xe9, 0x8e, 0x8d, 0x0f, 0x36, 0x2a, 0x07, 0x3a, + 0xad, 0x2d, 0xe9, 0xf5, 0x29, 0x0f, 0x4c, 0x98, + 0xf9, 0x6a, 0x75, 0xf7, 0x95, 0x35, 0x2f, 0xc4, + 0x82, 0x22, 0x28, 0x20, 0xdb, 0x60, 0x9d, 0xeb, + 0x6d, 0x34, 0x20, 0xd3, 0x63, 0xde, 0xb6, 0x02, + 0x3c, 0xd8, 0xe0, 0x7f, 0x92, 0xb8, 0xe0, 0x7f, + 0x92, 0xb8, 0x8d, 0x48, 0x91, 0x32, 0x43, 0x31, + 0x22, 0xb0, 0xe3, 0xf2, 0x5f, 0x34, 0x6d, 0x96, + 0x5b, 0x4c, 0xcc, 0xcc, 0xbc, 0x08, 0x9e, 0x24, + 0xf8, 0xc8, 0x97, 0x21, 0x11, 0xcc, 0x89, 0x50, + 0x51, 0x57, 0x14, 0x58, 0x47, 0x4d, 0xa3, 0xd2, + 0x69, 0xce, 0x10, 0x93, 0x90, 0x29, 0xb0, 0x61, + 0xb8, 0x41, 0x9e, 0x92, 0x38, 0xb1, 0x5a, 0x64, + 0xc8, 0x73, 0xe7, 0xd2, 0xa4, 0x0a, 0xa9, 0xe6, + 0xff, 0x00, 0x3f, 0xda, 0x4d, 0xab, 0x22, 0xe5, + 0xa4, 0xc7, 0x38, 0x23, 0xbc, 0x9f, 0x4c, 0x75, + 0xc7, 0x99, 0x63, 0x99, 0x16, 0x43, 0x2f, 0x88, + 0x0c, 0x86, 0x81, 0x55, 0x51, 0x11, 0xdf, 0xc9, + 0xb4, 0xe8, 0x66, 0xb9, 0x1e, 0xed, 0x5b, 0xf8, + 0x46, 0x2a, 0x87, 0x6e, 0x55, 0x5a, 0x25, 0x07, + 0x29, 0x55, 0x10, 0x24, 0xf0, 0xa2, 0xc1, 0x95, + 0xf5, 0x7c, 0xe9, 0xe7, 0x4e, 0x6c, 0x76, 0x02, + 0xa5, 0xd1, 0xb5, 0x0f, 0x52, 0x95, 0xf5, 0x78, + 0xa7, 0xd2, 0x24, 0x46, 0x9b, 0x1d, 0xf9, 0xd6, + 0xfc, 0xea, 0x94, 0x56, 0xcb, 0x37, 0xa1, 0x1b, + 0x33, 0xa3, 0xa4, 0x80, 0x51, 0x54, 0xd1, 0xbf, + 0x69, 0xa5, 0x36, 0xf2, 0x55, 0x42, 0x45, 0x44, + 0x5e, 0x74, 0xc9, 0x51, 0x51, 0x57, 0x17, 0x2a, + 0x55, 0xee, 0x3a, 0xa1, 0xd4, 0x0e, 0x8b, 0x32, + 0x23, 0x68, 0xd3, 0x31, 0xa2, 0xc3, 0x6a, 0x24, + 0xa2, 0x6e, 0x2c, 0x56, 0x07, 0x4b, 0x4d, 0x09, + 0x6e, 0x1b, 0x45, 0xcb, 0x9d, 0x55, 0x45, 0xb6, + 0xc7, 0x35, 0xef, 0x40, 0x53, 0x24, 0x4e, 0xc0, + 0x54, 0xba, 0x36, 0xa1, 0xea, 0x52, 0xbe, 0xaf, + 0x1d, 0x80, 0xa9, 0xf4, 0x6d, 0x43, 0xd4, 0xa5, + 0x7d, 0x5e, 0x3b, 0x5f, 0xa9, 0x74, 0x6d, 0x43, + 0xd4, 0xa5, 0x7d, 0x5e, 0x3b, 0x01, 0x52, 0xe8, + 0xda, 0x87, 0xa9, 0x4a, 0xfa, 0xbc, 0x76, 0x02, + 0xa5, 0xd1, 0xb5, 0x0f, 0x52, 0x95, 0xf5, 0x78, + 0xec, 0x05, 0x4b, 0xa3, 0x6a, 0x1e, 0xa5, 0x2b, + 0xea, 0xf1, 0xd8, 0x0a, 0x97, 0x46, 0xd4, 0x3d, + 0x4a, 0x57, 0xd5, 0xe3, 0xb0, 0x15, 0x2e, 0x8d, + 0xa8, 0x7a, 0x94, 0xaf, 0xab, 0xc7, 0x60, 0x2a, + 0x7d, 0x1b, 0x50, 0xf5, 0x29, 0x5f, 0x57, 0x8a, + 0x1c, 0x55, 0xa6, 0x94, 0x81, 0xaa, 0x5a, 0x0f, + 0x57, 0x23, 0x48, 0x46, 0xbf, 0x26, 0xeb, 0x13, + 0x62, 0x49, 0x61, 0xc6, 0x75, 0xe8, 0x28, 0xf3, + 0x59, 0x60, 0xde, 0x68, 0x0d, 0x1c, 0x54, 0x7d, + 0x94, 0xef, 0x1e, 0xd2, 0xde, 0xae, 0x76, 0xc7, + 0x17, 0x29, 0x54, 0x6b, 0xee, 0xc0, 0x16, 0x2d, + 0xe9, 0x74, 0xba, 0x7d, 0x2e, 0x22, 0x43, 0xa7, + 0xc0, 0x6a, 0x3c, 0xc7, 0xf7, 0x2d, 0xea, 0xd6, + 0xe1, 0x1b, 0xe6, 0xc3, 0x6a, 0xe1, 0xb8, 0x48, + 0x99, 0x96, 0x81, 0x5c, 0x84, 0x75, 0x6a, 0x3d, + 0x46, 0x5d, 0x80, 0xa9, 0x78, 0x7b, 0x1b, 0x50, + 0xcf, 0xc7, 0xc1, 0x4a, 0xfa, 0xbc, 0x76, 0x02, + 0xa5, 0xd1, 0xb5, 0x0f, 0x52, 0x95, 0xf5, 0x78, + 0xec, 0x05, 0x4f, 0xa3, 0x6a, 0x1e, 0xa5, 0x2b, + 0xea, 0xf1, 0xd8, 0x0a, 0x97, 0x46, 0xd4, 0x3d, + 0x4a, 0x57, 0xd5, 0xe3, 0xb0, 0x15, 0x2e, 0x8d, + 0xa8, 0x7a, 0x94, 0xaf, 0xab, 0xc7, 0x6b, 0xf5, + 0x2e, 0x8d, 0xa8, 0x7a, 0x94, 0xaf, 0xab, 0xc5, + 0x8b, 0x62, 0x54, 0xe5, 0xd6, 0xe9, 0xf5, 0x19, + 0x71, 0x24, 0x42, 0x81, 0x4d, 0x94, 0xcc, 0xe2, + 0x72, 0x43, 0x44, 0xc9, 0x3e, 0xf4, 0x57, 0x05, + 0xe8, 0xec, 0xb4, 0xdb, 0xba, 0x4c, 0x90, 0x9d, + 0x00, 0x57, 0x0f, 0x4a, 0x82, 0x34, 0x84, 0x99, + 0xea, 0x31, 0xfc, 0x53, 0x69, 0x74, 0xda, 0x8e, + 0x9e, 0xc8, 0x53, 0xe1, 0x4e, 0xd1, 0x9e, 0x8e, + 0x2e, 0x33, 0x2f, 0xa8, 0x67, 0xe1, 0xd0, 0xae, + 0x01, 0x28, 0x67, 0xf1, 0xe9, 0x54, 0xcf, 0xe3, + 0xc7, 0x6a, 0xb6, 0xd7, 0x40, 0x52, 0x3d, 0x42, + 0x37, 0xb9, 0x8e, 0xd5, 0x6d, 0xae, 0x80, 0xa4, + 0x7a, 0x84, 0x6f, 0x73, 0x1d, 0xaa, 0xdb, 0x5d, + 0x01, 0x48, 0xf5, 0x08, 0xde, 0xe6, 0x3b, 0x55, + 0xb6, 0xba, 0x02, 0x91, 0xea, 0x11, 0xbd, 0xcc, + 0x76, 0xab, 0x6d, 0x74, 0x05, 0x23, 0xd4, 0x23, + 0x7b, 0x98, 0xed, 0x56, 0xda, 0xe8, 0x0a, 0x47, + 0xa8, 0x46, 0xf7, 0x31, 0xda, 0xad, 0xb5, 0xd0, + 0x14, 0x8f, 0x50, 0x8d, 0xee, 0x63, 0xb5, 0x5b, + 0x6b, 0xa0, 0x29, 0x1e, 0xa1, 0x1b, 0xdc, 0xc7, + 0x6a, 0xb6, 0xd7, 0x40, 0x52, 0x3d, 0x42, 0x37, + 0xb9, 0x8e, 0xd5, 0x6d, 0xae, 0x80, 0xa4, 0x7a, + 0x84, 0x6f, 0x73, 0x1d, 0xaa, 0xdb, 0x5d, 0x01, + 0x48, 0xf5, 0x08, 0xde, 0xe6, 0x3b, 0x55, 0xb6, + 0xba, 0x02, 0x91, 0xea, 0x11, 0xbd, 0xcc, 0x76, + 0xab, 0x6d, 0x74, 0x05, 0x23, 0xd4, 0x23, 0x7b, + 0x98, 0xed, 0x56, 0xda, 0xe8, 0x0a, 0x47, 0xa8, + 0x46, 0xf7, 0x31, 0xda, 0xad, 0xb5, 0xd0, 0x14, + 0x8f, 0x50, 0x8d, 0xee, 0x63, 0xb5, 0x5b, 0x6b, + 0xa0, 0x29, 0x1e, 0xa1, 0x1b, 0xdc, 0xc7, 0x6a, + 0xb6, 0xd7, 0x40, 0x52, 0x3d, 0x42, 0x37, 0xb9, + 0x8e, 0xd5, 0x6d, 0xae, 0x80, 0xa4, 0x7a, 0x84, + 0x6f, 0x73, 0x1d, 0xaa, 0xdb, 0x5d, 0x01, 0x48, + 0xf5, 0x08, 0xde, 0xe6, 0x3b, 0x55, 0xb6, 0xba, + 0x02, 0x91, 0xea, 0x11, 0xbd, 0xcc, 0x43, 0xa3, + 0xd2, 0x69, 0xc4, 0x4e, 0x40, 0xa6, 0x40, 0x84, + 0xe1, 0x26, 0x92, 0x72, 0x34, 0x46, 0x19, 0x70, + 0x87, 0xc3, 0xa5, 0x5c, 0x00, 0x43, 0x51, 0xfe, + 0x4e, 0x79, 0x79, 0xbf, 0xfb, 0x3b, 0x97, 0x71, + 0xdb, 0xb0, 0x1d, 0x58, 0xf3, 0xeb, 0xf4, 0x58, + 0x4f, 0x8f, 0xc2, 0x62, 0x5d, 0x56, 0x04, 0x67, + 0x87, 0xcc, 0x4d, 0x3c, 0xf8, 0x18, 0xaf, 0x99, + 0x53, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, + 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, + 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, + 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, + 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, + 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, + 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, + 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, + 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, + 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, + 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, + 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, + 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, + 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, + 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, + 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, + 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, + 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, + 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, + 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, + 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, + 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, + 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, + 0xdd, 0xa5, 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, + 0x55, 0x5b, 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x1d, + 0xb8, 0xda, 0x1e, 0x55, 0x5b, 0x7e, 0xdd, 0xa5, + 0xfd, 0xab, 0x1d, 0xb8, 0xda, 0x1e, 0x55, 0x5b, + 0x7e, 0xdd, 0xa5, 0xfd, 0xab, 0x11, 0x65, 0xc4, + 0x9c, 0xca, 0x48, 0x85, 0x2a, 0x34, 0xc8, 0xe4, + 0xaa, 0x82, 0xfc, 0x47, 0xda, 0x90, 0xca, 0xaa, + 0x78, 0x51, 0x1d, 0x64, 0x8c, 0x15, 0x53, 0xc5, + 0x9e, 0x7f, 0xc6, 0xfb, 0x62, 0xb8, 0xe7, 0xdb, + 0x76, 0x6b, 0xae, 0xd3, 0x1d, 0x38, 0xf3, 0x6a, + 0x73, 0xa3, 0xd2, 0x1a, 0x94, 0xd1, 0x28, 0xbb, + 0x14, 0x5f, 0x66, 0x54, 0x97, 0xde, 0x64, 0x85, + 0x51, 0x41, 0xdd, 0xc4, 0x37, 0x1a, 0x6d, 0xc4, + 0x54, 0x26, 0xc9, 0xc4, 0x70, 0x7b, 0xf1, 0x1c, + 0x2b, 0x04, 0x4a, 0xa4, 0x4a, 0x44, 0x44, 0xaa, + 0x44, 0x44, 0xaa, 0xa4, 0x44, 0xab, 0x9a, 0x91, + 0x2a, 0xf3, 0xaa, 0xaa, 0xf3, 0xaa, 0xaf, 0x3a, + 0xaf, 0x87, 0x1c, 0x3e, 0x38, 0x7c, 0x70, 0xf8, + 0xe1, 0xf1, 0xc3, 0xe3, 0x87, 0xc4, 0x3a, 0x54, + 0xaa, 0x84, 0xb8, 0xf0, 0x61, 0x30, 0x72, 0x25, + 0xca, 0x74, 0x59, 0x8e, 0xc0, 0x65, 0xad, 0xd7, + 0x4f, 0xe0, 0x80, 0xea, 0x51, 0x1c, 0xd7, 0xce, + 0x48, 0x9e, 0x7c, 0x54, 0xf6, 0x79, 0x78, 0x51, + 0xa1, 0xb9, 0x50, 0xa9, 0xdb, 0xf3, 0xe2, 0x42, + 0x67, 0x4e, 0xfa, 0x41, 0x23, 0x4e, 0x03, 0x5a, + 0xd7, 0x48, 0x93, 0x9b, 0x87, 0x5d, 0x20, 0x0d, + 0x4a, 0x88, 0xae, 0x10, 0xa0, 0x22, 0xaa, 0x21, + 0x12, 0x66, 0x99, 0xf0, 0xf8, 0x93, 0x43, 0xa8, + 0x43, 0x87, 0x4f, 0xa8, 0x49, 0x8a, 0xe3, 0x30, + 0xaa, 0xa9, 0x21, 0x69, 0xd2, 0x09, 0x43, 0x44, + 0xa4, 0x88, 0x60, 0xdc, 0x9d, 0xda, 0x09, 0x29, + 0x26, 0xe4, 0xdc, 0x01, 0x2d, 0x62, 0x3c, 0xe4, + 0x99, 0x67, 0x8e, 0x1f, 0x1c, 0x3e, 0x38, 0x7c, + 0x70, 0xf8, 0xe1, 0xf1, 0xc3, 0xe3, 0x87, 0xc7, + 0x0f, 0x8e, 0x1f, 0x1c, 0x3e, 0x36, 0x59, 0x5f, + 0xa9, 0x5b, 0x97, 0x85, 0x19, 0xb8, 0xaf, 0x39, + 0xc1, 0x56, 0x2a, 0x50, 0xa9, 0x75, 0x18, 0x7a, + 0xcb, 0x87, 0x90, 0xdc, 0xe9, 0x01, 0x11, 0xb7, + 0xc9, 0xbc, 0xf4, 0xef, 0xe2, 0x1b, 0xc8, 0xf3, + 0x2e, 0x65, 0xad, 0x10, 0x4d, 0xbc, 0xf4, 0x38, + 0x62, 0xbf, 0xc6, 0xdb, 0x79, 0x6f, 0x79, 0x68, + 0xd3, 0x11, 0x3e, 0x2b, 0x96, 0x22, 0xff, 0x00, + 0xd9, 0x55, 0x94, 0xff, 0x00, 0xc7, 0x1c, 0x29, + 0x78, 0xbf, 0x9f, 0x1c, 0x29, 0x78, 0xbf, 0x9f, + 0x1c, 0x29, 0x78, 0xbf, 0x9f, 0x1c, 0x29, 0x78, + 0xbf, 0x9f, 0x1c, 0x29, 0x78, 0xbf, 0x9f, 0x1c, + 0x29, 0x78, 0xbf, 0x9f, 0x1c, 0x29, 0x78, 0xbf, + 0x9f, 0x16, 0x1c, 0x75, 0x1b, 0xce, 0xd9, 0x5c, + 0xbc, 0x15, 0x78, 0xbf, 0xf7, 0xb1, 0x6f, 0x54, + 0xeb, 0x53, 0x36, 0x9f, 0x70, 0xd1, 0xa6, 0xd4, + 0x6a, 0x13, 0xa8, 0x53, 0x24, 0xdc, 0xd1, 0x26, + 0x53, 0xa6, 0x4c, 0x91, 0x26, 0x0b, 0x50, 0x47, + 0x8b, 0xd2, 0x8d, 0x30, 0xfb, 0x8e, 0x33, 0x18, + 0x5b, 0xc8, 0x00, 0x77, 0x22, 0xdf, 0x78, 0xbb, + 0xaf, 0x80, 0x5a, 0x71, 0x41, 0xb3, 0x2c, 0xd6, + 0x6d, 0xfa, 0x0b, 0x35, 0xd8, 0xb4, 0xd4, 0x76, + 0xe0, 0xa7, 0xc9, 0x9d, 0x32, 0xbd, 0x36, 0xe2, + 0x8b, 0x4c, 0x99, 0x4b, 0x57, 0x33, 0x18, 0x29, + 0x4f, 0xa7, 0x48, 0x70, 0x38, 0xb6, 0xd3, 0x40, + 0xef, 0x4b, 0x24, 0x00, 0x35, 0x5d, 0x5c, 0x46, + 0xb2, 0x6d, 0xb0, 0x2b, 0x6e, 0x05, 0xab, 0xb3, + 0xc8, 0xb7, 0x05, 0x00, 0xae, 0x25, 0x7e, 0x65, + 0x6e, 0x9b, 0x1c, 0xdb, 0x96, 0x6c, 0x45, 0x88, + 0xcb, 0xb5, 0x48, 0xed, 0xca, 0x98, 0x1b, 0x9d, + 0x5c, 0x5c, 0x83, 0x24, 0x8a, 0xb1, 0x19, 0xd6, + 0xd8, 0x38, 0xcf, 0x10, 0x49, 0x20, 0x17, 0x4e, + 0xf2, 0xe1, 0xb2, 0xa9, 0x14, 0x6a, 0x1d, 0xf4, + 0x8c, 0x47, 0xdf, 0x48, 0xa4, 0xdc, 0xd4, 0xc8, + 0xd4, 0xd9, 0x8e, 0x19, 0x9b, 0xf1, 0xa9, 0xf2, + 0xd8, 0x8e, 0xf9, 0x47, 0x55, 0x42, 0x40, 0x3d, + 0x3b, 0xdd, 0xda, 0x99, 0x82, 0x9a, 0xe5, 0x9a, + 0x96, 0xa5, 0xcf, 0x05, 0x67, 0xdb, 0x31, 0xab, + 0xae, 0xcb, 0x97, 0x49, 0xde, 0xd3, 0x28, 0xb6, + 0x04, 0x2b, 0x82, 0x45, 0x29, 0x97, 0x5d, 0x6f, + 0xb2, 0x15, 0x17, 0x1b, 0xd2, 0x7b, 0xd2, 0x53, + 0x57, 0x40, 0x48, 0x89, 0x4d, 0xc5, 0x15, 0x40, + 0x02, 0x40, 0x52, 0x05, 0x4c, 0xc0, 0xaf, 0x3a, + 0x65, 0xb6, 0xfd, 0x9d, 0x6d, 0xdc, 0x14, 0x1a, + 0x00, 0xd0, 0xde, 0xa9, 0xd4, 0xe7, 0xb5, 0x29, + 0x9e, 0x25, 0xf9, 0x6a, 0x88, 0xc0, 0xba, 0x3b, + 0xa0, 0x79, 0xdd, 0x28, 0x6c, 0xa3, 0x81, 0xa9, + 0xb2, 0x46, 0x1a, 0x5c, 0xb9, 0xb4, 0xf8, 0xf8, + 0x52, 0xf1, 0x7f, 0x3e, 0x38, 0x52, 0xf1, 0x7f, + 0x3e, 0x38, 0x52, 0xf1, 0x7f, 0x3e, 0x38, 0x52, + 0xf1, 0x7f, 0x3e, 0x38, 0x52, 0xf1, 0x7f, 0x3e, + 0x38, 0x52, 0xf1, 0x7f, 0x3e, 0x38, 0x52, 0xf1, + 0x7f, 0x3e, 0x2d, 0x28, 0xca, 0x97, 0x5d, 0xae, + 0xb9, 0x78, 0x2e, 0x3a, 0x1a, 0xfc, 0x7f, 0x15, + 0x52, 0x2a, 0xe1, 0x7f, 0x8d, 0xb6, 0xb3, 0x4a, + 0x7e, 0xa9, 0x6a, 0x67, 0x1c, 0x15, 0xc5, 0xa7, + 0x54, 0x63, 0xd4, 0x5d, 0x01, 0x4c, 0xcb, 0x70, + 0xdc, 0x79, 0x71, 0x5d, 0x24, 0x4f, 0x8f, 0x76, + 0x92, 0xf7, 0x85, 0xe2, 0x00, 0x25, 0xf8, 0xb2, + 0xc7, 0x03, 0xe6, 0xfe, 0xff, 0x00, 0xab, 0x1c, + 0x0f, 0x9b, 0xe8, 0xfb, 0xb1, 0xc0, 0xf9, 0xbe, + 0x8f, 0xbb, 0x1c, 0x0f, 0x9b, 0xe8, 0xfb, 0xb1, + 0xc0, 0xf9, 0xbe, 0x8f, 0xbb, 0x1c, 0x0f, 0x9b, + 0xe8, 0xfb, 0xb1, 0xc0, 0xf9, 0xbe, 0x8f, 0xbb, + 0x14, 0xa3, 0x7a, 0x91, 0x52, 0x85, 0x53, 0x8e, + 0xdb, 0x46, 0xfc, 0x19, 0x01, 0x25, 0xa0, 0x78, + 0x4d, 0x5a, 0x23, 0x6d, 0x73, 0x44, 0x71, 0x1b, + 0x26, 0xcd, 0x47, 0xc7, 0xa4, 0xc5, 0x7c, 0xf8, + 0x9d, 0x7d, 0x55, 0x65, 0xb1, 0x3d, 0xb8, 0xf4, + 0x9b, 0x7e, 0x93, 0x22, 0xa6, 0xdb, 0x8c, 0xce, + 0xa8, 0xd2, 0xe9, 0xa5, 0x1e, 0xa2, 0xfb, 0x2f, + 0x96, 0xa9, 0x0d, 0x9c, 0xa3, 0x7d, 0xd2, 0x24, + 0x7d, 0x79, 0xdc, 0x22, 0x45, 0x35, 0x5e, 0xf9, + 0x09, 0x0f, 0xbe, 0xc5, 0x2e, 0xf3, 0xad, 0xd2, + 0x69, 0x8c, 0x53, 0x58, 0x8f, 0x4c, 0x74, 0xa1, + 0x04, 0x96, 0xe9, 0xb5, 0x19, 0x30, 0xf7, 0xb5, + 0x2a, 0x5b, 0x72, 0xff, 0x00, 0x76, 0x08, 0x32, + 0x35, 0x8a, 0x34, 0x84, 0xb9, 0xaf, 0x7c, 0xd9, + 0xaa, 0xe7, 0xa4, 0x94, 0x80, 0x40, 0x46, 0x97, + 0x7c, 0xd5, 0xe9, 0x74, 0xfa, 0x75, 0x34, 0x69, + 0xb4, 0x59, 0xac, 0x52, 0xcd, 0xd7, 0xa2, 0x95, + 0x42, 0x1b, 0xd2, 0x9e, 0x19, 0x6e, 0x3c, 0xaf, + 0x0c, 0xdd, 0xe2, 0xc9, 0x45, 0x6e, 0x5b, 0x1a, + 0xde, 0x06, 0x9d, 0x63, 0x75, 0xde, 0x3c, 0x7a, + 0xd0, 0xcb, 0x49, 0x0d, 0x3e, 0xee, 0xad, 0xc2, + 0x72, 0xb4, 0x6f, 0x35, 0x4f, 0xaa, 0x25, 0x79, + 0xe4, 0x93, 0x39, 0x9a, 0xa4, 0x31, 0x95, 0x1d, + 0x65, 0x07, 0xee, 0x72, 0x1b, 0x61, 0x09, 0xb6, + 0xc4, 0x9a, 0x4d, 0x22, 0x00, 0x42, 0x6d, 0x20, + 0xb6, 0xde, 0x6d, 0xae, 0x81, 0x54, 0xa3, 0x5c, + 0x75, 0x5a, 0xbd, 0xcb, 0xd9, 0x39, 0x55, 0x0a, + 0x2d, 0x36, 0x6a, 0xd1, 0xbb, 0x18, 0x5d, 0x93, + 0x61, 0xe4, 0xa3, 0xd5, 0x5a, 0x05, 0x4d, 0x71, + 0xea, 0x45, 0xbf, 0xfd, 0xae, 0x4e, 0x89, 0x1b, + 0xfb, 0xc0, 0xc9, 0xa2, 0x75, 0xa0, 0x61, 0x1a, + 0x04, 0x77, 0x1b, 0x41, 0x97, 0x1e, 0x4d, 0x16, + 0x81, 0x48, 0x49, 0x74, 0x59, 0x73, 0x22, 0x4a, + 0x99, 0x2d, 0xe6, 0xed, 0xd0, 0x11, 0xa4, 0x42, + 0x61, 0xc4, 0x56, 0xe3, 0xc6, 0x8d, 0xa3, 0x31, + 0x44, 0x41, 0x25, 0xe6, 0x55, 0xde, 0x66, 0x04, + 0x6e, 0x22, 0x6b, 0x15, 0x2e, 0x07, 0xcd, 0xf4, + 0x7d, 0xd8, 0xe0, 0x7c, 0xdf, 0x47, 0xdd, 0x8e, + 0x07, 0xcd, 0xf4, 0x7d, 0xd8, 0xe0, 0x7c, 0xdf, + 0x47, 0xdd, 0x8e, 0x07, 0xcd, 0xf4, 0x7d, 0xd8, + 0xe0, 0x7c, 0xdf, 0x47, 0xdd, 0x8e, 0x07, 0xcd, + 0xf4, 0x7d, 0xd8, 0xb2, 0xe8, 0x92, 0x27, 0x5d, + 0x34, 0x31, 0x8e, 0xd2, 0x97, 0x0d, 0x52, 0x85, + 0x3d, 0xf2, 0xcb, 0xbd, 0x6a, 0x34, 0x19, 0x2d, + 0x49, 0x79, 0xc2, 0x5c, 0xb2, 0x4e, 0xf5, 0xbd, + 0x01, 0xff, 0x00, 0x39, 0xd3, 0x01, 0xfe, 0x17, + 0xf1, 0xba, 0xa2, 0x2a, 0x64, 0xa9, 0x9a, 0x2f, + 0x32, 0xa2, 0xf3, 0xa2, 0xa7, 0x89, 0x53, 0x0f, + 0x59, 0x36, 0xab, 0xee, 0x13, 0xae, 0x51, 0x62, + 0x6b, 0x35, 0x52, 0x2d, 0xde, 0xf5, 0x91, 0xcd, + 0x7c, 0x39, 0x03, 0x4e, 0x00, 0x0f, 0xc8, 0x22, + 0x89, 0xe2, 0x4c, 0x76, 0x87, 0x69, 0x74, 0x2b, + 0x1e, 0x96, 0x4f, 0xd7, 0xe3, 0xb4, 0x3b, 0x4b, + 0xa1, 0x58, 0xf4, 0xb2, 0x7e, 0xbf, 0x1d, 0xa1, + 0xda, 0x5d, 0x0a, 0xc7, 0xa5, 0x93, 0xf5, 0xf8, + 0xed, 0x0e, 0xd2, 0xe8, 0x56, 0x3d, 0x2c, 0x9f, + 0xaf, 0xc7, 0x68, 0x76, 0x97, 0x42, 0xb1, 0xe9, + 0x64, 0xfd, 0x7e, 0x3b, 0x43, 0xb4, 0xba, 0x15, + 0x8f, 0x4b, 0x27, 0xeb, 0xf1, 0xda, 0x1d, 0xa5, + 0xd0, 0xac, 0x7a, 0x59, 0x3f, 0x5f, 0x8e, 0xd0, + 0xed, 0x2e, 0x85, 0x63, 0xd2, 0xc9, 0xfa, 0xfc, + 0x76, 0x87, 0x69, 0x74, 0x2b, 0x1e, 0x96, 0x4f, + 0xd7, 0xe3, 0xb4, 0x3b, 0x4b, 0xa1, 0x58, 0xf4, + 0xb2, 0x7e, 0xbf, 0x1d, 0xa1, 0xda, 0x5d, 0x0a, + 0xc7, 0xa5, 0x93, 0xf5, 0xf8, 0xed, 0x0e, 0xd2, + 0xe8, 0x56, 0x3d, 0x2c, 0x9f, 0xaf, 0xc7, 0x68, + 0x76, 0x97, 0x42, 0xb1, 0xe9, 0x64, 0xfd, 0x7e, + 0x3b, 0x43, 0xb4, 0xba, 0x15, 0x8f, 0x4b, 0x27, + 0xeb, 0xf1, 0xda, 0x1d, 0xa5, 0xd0, 0xac, 0x7a, + 0x59, 0x3f, 0x5f, 0x8e, 0xd0, 0xed, 0x2e, 0x85, + 0x63, 0xd2, 0xc9, 0xfa, 0xfc, 0x76, 0x87, 0x69, + 0x74, 0x2b, 0x1e, 0x96, 0x4f, 0xd7, 0xe3, 0xb4, + 0x3b, 0x4b, 0xa1, 0x58, 0xf4, 0xb2, 0x7e, 0xbf, + 0x1d, 0xa1, 0xda, 0x5d, 0x0a, 0xc7, 0xa5, 0x93, + 0xf5, 0xf8, 0xed, 0x0e, 0xd2, 0xe8, 0x56, 0x3d, + 0x2c, 0x9f, 0xaf, 0xc5, 0x36, 0x8d, 0x4a, 0xa3, + 0x81, 0x85, 0x32, 0x0c, 0x78, 0x68, 0xe6, 0x5b, + 0xc5, 0x68, 0x7b, 0xf7, 0x32, 0xf0, 0x6b, 0x70, + 0x94, 0x9c, 0x24, 0x1c, 0xd7, 0x4a, 0x29, 0x2a, + 0x26, 0x6b, 0x92, 0x73, 0xaf, 0xfd, 0x47, 0xae, + 0x6b, 0x8a, 0x9f, 0x6a, 0xd1, 0x66, 0xd7, 0x2a, + 0x4a, 0x5c, 0x34, 0x30, 0x1c, 0x9b, 0x6f, 0x25, + 0x7a, 0x43, 0xee, 0x92, 0x36, 0xc4, 0x66, 0x50, + 0x95, 0x11, 0x5d, 0x79, 0xc2, 0x41, 0x4c, 0xd5, + 0x04, 0x07, 0x53, 0x86, 0xa8, 0x00, 0x4a, 0x93, + 0x7f, 0x08, 0x9b, 0xa8, 0xdf, 0x25, 0xa7, 0x50, + 0xed, 0xf8, 0xb1, 0xb3, 0x5d, 0x0d, 0x4d, 0x4a, + 0x8c, 0xf7, 0xf2, 0xcf, 0xbd, 0xd6, 0xfb, 0x13, + 0xa9, 0xcd, 0xaa, 0xe5, 0x96, 0x68, 0x31, 0xd1, + 0x33, 0xf0, 0x2e, 0x58, 0xe5, 0x0d, 0x7c, 0xf4, + 0x65, 0xa9, 0xea, 0x35, 0x7e, 0xbd, 0xc7, 0x28, + 0x6b, 0xe7, 0xa3, 0x2d, 0x4f, 0x51, 0xab, 0xf5, + 0xee, 0x39, 0x43, 0x5f, 0x3d, 0x19, 0x6a, 0x7a, + 0x8d, 0x5f, 0xaf, 0x71, 0xca, 0x1a, 0xf9, 0xe8, + 0xcb, 0x53, 0xd4, 0x6a, 0xfd, 0x7b, 0x8e, 0x50, + 0xd7, 0xcf, 0x46, 0x5a, 0x9e, 0xa3, 0x57, 0xeb, + 0xdc, 0x72, 0x86, 0xbe, 0x7a, 0x32, 0xd4, 0xf5, + 0x1a, 0xbf, 0x5e, 0xe3, 0x94, 0x35, 0xf3, 0xd1, + 0x96, 0xa7, 0xa8, 0xd5, 0xfa, 0xf7, 0x1c, 0xa1, + 0xaf, 0x9e, 0x8c, 0xb5, 0x3d, 0x46, 0xaf, 0xd7, + 0xb8, 0xe5, 0x0d, 0x7c, 0xf4, 0x65, 0xa9, 0xea, + 0x35, 0x7e, 0xbd, 0xc7, 0x28, 0x6b, 0xe7, 0xa3, + 0x2d, 0x4f, 0x51, 0xab, 0xf5, 0xee, 0x39, 0x43, + 0x5f, 0x3d, 0x19, 0x6a, 0x7a, 0x8d, 0x5f, 0xaf, + 0x71, 0xca, 0x1a, 0xf9, 0xe8, 0xcb, 0x53, 0xd4, + 0x6a, 0xfd, 0x7b, 0x8e, 0x50, 0xd7, 0xcf, 0x46, + 0x5a, 0x9e, 0xa3, 0x57, 0xeb, 0xdc, 0x72, 0x86, + 0xbe, 0x7a, 0x32, 0xd4, 0xf5, 0x1a, 0xbf, 0x5e, + 0xe3, 0x94, 0x35, 0xf3, 0xd1, 0x96, 0xa7, 0xa8, + 0xd5, 0xfa, 0xf7, 0x1c, 0xa1, 0xaf, 0x9e, 0x8c, + 0xb5, 0x3d, 0x46, 0xaf, 0xd7, 0xb8, 0xe5, 0x0d, + 0x7c, 0xf4, 0x65, 0xa9, 0xea, 0x35, 0x7e, 0xbd, + 0xc7, 0x28, 0x6b, 0xe7, 0xa3, 0x2d, 0x4f, 0x51, + 0xab, 0xf5, 0xee, 0x39, 0x43, 0x5f, 0x3d, 0x19, + 0x6a, 0x7a, 0x8d, 0x5f, 0xaf, 0x71, 0xca, 0x1a, + 0xf9, 0xe8, 0xcb, 0x53, 0xd4, 0x6a, 0xfd, 0x7b, + 0x8d, 0x9b, 0x6d, 0x79, 0x9b, 0xd6, 0x61, 0xd1, + 0xaa, 0x54, 0xf6, 0xe9, 0x75, 0x84, 0x64, 0xdf, + 0x8f, 0xc3, 0xbc, 0x4f, 0x43, 0x9c, 0xdb, 0x59, + 0x2b, 0xa8, 0xde, 0xf5, 0x11, 0xd6, 0x1f, 0x01, + 0x55, 0x35, 0x64, 0x89, 0xe1, 0x26, 0x80, 0x8c, + 0x5d, 0xcd, 0x14, 0x13, 0x17, 0xfe, 0xdc, 0x3b, + 0x5e, 0xaa, 0x48, 0xa2, 0x5b, 0x94, 0xe8, 0xb5, + 0x19, 0x50, 0x4d, 0x59, 0x9b, 0x3e, 0x79, 0xbb, + 0xc1, 0x37, 0x20, 0x53, 0xbf, 0x8e, 0xc3, 0x11, + 0xcd, 0xa7, 0x9f, 0x26, 0x4f, 0xbc, 0x79, 0xc2, + 0x7d, 0x90, 0x13, 0x12, 0x00, 0x47, 0x13, 0xbf, + 0x4e, 0x50, 0xd7, 0xcf, 0x46, 0x5a, 0x9e, 0xa3, + 0x57, 0xeb, 0xdc, 0x72, 0x86, 0xbe, 0x7a, 0x32, + 0xd4, 0xf5, 0x1a, 0xbf, 0x5e, 0xe3, 0x94, 0x35, + 0xf3, 0xd1, 0x96, 0xa7, 0xa8, 0xd5, 0xfa, 0xf7, + 0x1c, 0xa1, 0xaf, 0x9e, 0x8c, 0xb5, 0x3d, 0x46, + 0xaf, 0xd7, 0xb8, 0xe5, 0x0d, 0x7c, 0xf4, 0x65, + 0xa9, 0xea, 0x35, 0x7e, 0xbd, 0xc7, 0x28, 0x6b, + 0xe7, 0xa3, 0x2d, 0x4f, 0x51, 0xab, 0xf5, 0xee, + 0x39, 0x43, 0x5f, 0x3d, 0x19, 0x6a, 0x7a, 0x8d, + 0x5f, 0xaf, 0x71, 0xca, 0x1a, 0xf9, 0xe8, 0xcb, + 0x53, 0xd4, 0x6a, 0xfd, 0x7b, 0x8e, 0x50, 0xd7, + 0xcf, 0x46, 0x5a, 0x9e, 0xa3, 0x57, 0xeb, 0xdc, + 0x72, 0x86, 0xbe, 0x7a, 0x32, 0xd4, 0xf5, 0x1a, + 0xbf, 0x5e, 0xe3, 0x94, 0x35, 0xf3, 0xd1, 0x96, + 0xa7, 0xa8, 0xd5, 0xfa, 0xf7, 0x1c, 0xa1, 0xaf, + 0x9e, 0x8c, 0xb5, 0x3d, 0x46, 0xaf, 0xd7, 0xb8, + 0xe5, 0x0d, 0x7c, 0xf4, 0x65, 0xa9, 0xea, 0x35, + 0x7e, 0xbd, 0xc7, 0x28, 0x6b, 0xe7, 0xa3, 0x2d, + 0x4f, 0x51, 0xab, 0xf5, 0xee, 0x39, 0x43, 0x5f, + 0x3d, 0x19, 0x6a, 0x7a, 0x8d, 0x5f, 0xaf, 0x71, + 0xca, 0x1a, 0xf9, 0xe8, 0xcb, 0x53, 0xd4, 0x6a, + 0xfd, 0x7b, 0x8e, 0x50, 0xd7, 0xcf, 0x46, 0x5a, + 0x9e, 0xa3, 0x57, 0xeb, 0xdc, 0x72, 0x86, 0xbe, + 0x7a, 0x32, 0xd4, 0xf5, 0x1a, 0xbf, 0x5e, 0xe3, + 0x94, 0x35, 0xf3, 0xd1, 0x96, 0xa7, 0xa8, 0xd5, + 0xfa, 0xf7, 0x1c, 0xa1, 0xaf, 0x9e, 0x8c, 0xb5, + 0x3d, 0x46, 0xaf, 0xd7, 0xb8, 0x6b, 0xf0, 0x87, + 0xbd, 0x05, 0xc1, 0x57, 0xe9, 0x16, 0xc3, 0xad, + 0x22, 0xf7, 0xed, 0xb5, 0x1a, 0xaa, 0xc1, 0x92, + 0x78, 0x85, 0xd2, 0xab, 0x48, 0x10, 0x5f, 0x3a, + 0xb2, 0x7f, 0x26, 0x2c, 0x4b, 0xe2, 0x9f, 0x7d, + 0x52, 0x16, 0xa3, 0x0d, 0xa3, 0x89, 0x22, 0x3b, + 0xa9, 0x1e, 0xa1, 0x01, 0xd3, 0x17, 0x1c, 0x88, + 0xfa, 0x82, 0x18, 0xe9, 0x70, 0x50, 0x77, 0xd1, + 0xdd, 0x15, 0x55, 0x61, 0xed, 0x0d, 0xeb, 0xd2, + 0x68, 0x4d, 0x81, 0x81, 0x8a, 0x7e, 0xca, 0xbf, + 0x5e, 0xa6, 0xdb, 0x54, 0xa9, 0x75, 0x9a, 0xb3, + 0xca, 0xcc, 0x28, 0x82, 0x8a, 0x7a, 0x47, 0x5b, + 0xae, 0x99, 0x92, 0x03, 0x4c, 0xb0, 0xde, 0x68, + 0xae, 0x3c, 0xe9, 0xaa, 0x08, 0x0e, 0x68, 0x9e, + 0x12, 0x25, 0x10, 0x12, 0x24, 0x93, 0xf8, 0x48, + 0xa0, 0xba, 0x49, 0x0e, 0xce, 0x37, 0x98, 0xcd, + 0x74, 0x39, 0x2a, 0xb8, 0x91, 0x5e, 0x24, 0xcf, + 0x99, 0x49, 0x96, 0xa9, 0x53, 0x00, 0x55, 0x53, + 0x9d, 0x51, 0x1f, 0x2c, 0x97, 0x9b, 0x35, 0xc7, + 0x29, 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, + 0x83, 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, + 0x43, 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, 0x4b, + 0x5f, 0x39, 0x0f, 0xa8, 0x31, 0xca, 0x4e, 0x4f, + 0x91, 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, 0x29, + 0x39, 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, 0x83, + 0x1c, 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, 0x43, + 0xea, 0x0c, 0x72, 0x93, 0x93, 0xe4, 0x4b, 0x5f, + 0x39, 0x0f, 0xa8, 0x31, 0xca, 0x4e, 0x4f, 0x91, + 0x2d, 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, 0x29, 0x39, + 0x3e, 0x44, 0xb5, 0xf3, 0x90, 0xfa, 0x83, 0x1c, + 0xa4, 0xe4, 0xf9, 0x12, 0xd7, 0xce, 0x43, 0xea, + 0x0c, 0x72, 0x93, 0x93, 0xe4, 0x4b, 0x5f, 0x39, + 0x0f, 0xa8, 0x31, 0xca, 0x4e, 0x4f, 0x91, 0x2d, + 0x7c, 0xe4, 0x3e, 0xa0, 0xc7, 0x29, 0x39, 0x3e, + 0x44, 0xb5, 0xf3, 0x90, 0xfa, 0x83, 0x1c, 0xa4, + 0xe4, 0xf9, 0x12, 0xd7, 0xce, 0x43, 0xea, 0x0c, + 0x72, 0x93, 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, + 0xa8, 0x31, 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, + 0xe4, 0x3e, 0xa0, 0xc7, 0x29, 0x39, 0x3e, 0x44, + 0xb5, 0xf3, 0x90, 0xfa, 0x83, 0x1c, 0xa4, 0xe4, + 0xf9, 0x12, 0xd7, 0xce, 0x43, 0xea, 0x0c, 0x72, + 0x93, 0x93, 0xe4, 0x4b, 0x5f, 0x39, 0x0f, 0xa8, + 0x31, 0xca, 0x4e, 0x4f, 0x91, 0x2d, 0x7c, 0xe4, + 0x3e, 0xa0, 0xc5, 0x85, 0xb5, 0xda, 0x3d, 0xed, + 0x2d, 0x69, 0x47, 0x0d, 0xea, 0x35, 0x5d, 0x41, + 0xc7, 0x58, 0x88, 0xf3, 0xc1, 0x21, 0x89, 0x6d, + 0xb4, 0x9a, 0xdc, 0x48, 0xb2, 0x84, 0x19, 0xd6, + 0xf3, 0x6d, 0xe6, 0xe1, 0xb0, 0x6c, 0xb6, 0x7b, + 0xb0, 0x71, 0xc0, 0xd6, 0x2d, 0x9a, 0x8e, 0x36, + 0xfd, 0xa9, 0x6c, 0xea, 0x70, 0x0a, 0xaa, 0x21, + 0xdc, 0xb0, 0xd0, 0xd1, 0x3c, 0x04, 0x29, 0x4c, + 0xac, 0x1a, 0x21, 0x78, 0xd1, 0x0c, 0x00, 0xbf, + 0xe9, 0x0a, 0x2f, 0xc5, 0x8e, 0x1f, 0xcd, 0xf4, + 0x63, 0x86, 0x55, 0xe6, 0x41, 0xcd, 0x57, 0x99, + 0x11, 0x13, 0x9d, 0x55, 0x7c, 0x08, 0x9f, 0x2a, + 0xe2, 0x54, 0x7d, 0x9e, 0xd9, 0x13, 0x69, 0xb6, + 0x95, 0x66, 0xd5, 0x6a, 0xb4, 0xfb, 0x91, 0x22, + 0x1d, 0xc5, 0x70, 0xbf, 0x29, 0xd1, 0x7e, 0x23, + 0xf3, 0x9b, 0x45, 0x70, 0xa0, 0xb0, 0xd3, 0x46, + 0xee, 0xe6, 0x38, 0x96, 0xa0, 0x08, 0xee, 0xc5, + 0x75, 0xb6, 0xd0, 0x54, 0x77, 0xf2, 0x75, 0xb8, + 0xe5, 0x3a, 0xc0, 0x6e, 0xe0, 0x9d, 0x5e, 0x93, + 0x47, 0xaa, 0x43, 0x81, 0x6a, 0x52, 0xa5, 0x10, + 0x37, 0x5d, 0xb8, 0x1c, 0x48, 0x2c, 0xa3, 0x4e, + 0xae, 0x71, 0x59, 0x75, 0x48, 0x53, 0x37, 0x90, + 0x54, 0x45, 0xc7, 0x09, 0x19, 0x15, 0xcc, 0x1c, + 0x51, 0x6c, 0x9e, 0x16, 0x51, 0xad, 0x94, 0x56, + 0xdd, 0xb8, 0x64, 0x5b, 0xdc, 0x55, 0x34, 0x5d, + 0x0a, 0x3b, 0x95, 0xc8, 0x73, 0xf7, 0xa6, 0x54, + 0xfa, 0x84, 0x11, 0x71, 0xa6, 0xdb, 0x36, 0x1f, + 0x06, 0xcb, 0x4e, 0xf5, 0x5d, 0x4e, 0xf8, 0xc5, + 0x00, 0x10, 0x49, 0x54, 0x95, 0x34, 0xa9, 0x0e, + 0xc5, 0xaa, 0x2e, 0x39, 0x13, 0x75, 0x72, 0xda, + 0xae, 0xc3, 0xa8, 0xb6, 0xa9, 0x4c, 0x9c, 0x15, + 0x0d, 0x4c, 0xd4, 0xa6, 0x21, 0x38, 0x8b, 0x06, + 0x0a, 0x0b, 0x6a, 0x52, 0x5d, 0x10, 0x68, 0xdc, + 0x32, 0x67, 0x58, 0x88, 0x8a, 0xa7, 0x39, 0x09, + 0xa0, 0xd1, 0xf6, 0x4d, 0x53, 0xaa, 0x44, 0x29, + 0x6f, 0x55, 0xa8, 0xb4, 0x91, 0x6e, 0xb5, 0x2a, + 0x82, 0xf0, 0x54, 0x9f, 0x26, 0x54, 0x6a, 0x11, + 0x9d, 0x58, 0xe8, 0xcb, 0x65, 0xbb, 0xd0, 0xfb, + 0x92, 0x24, 0xe4, 0xc4, 0x76, 0x9a, 0x25, 0x71, + 0xc2, 0x5c, 0xd0, 0x7e, 0x25, 0xa9, 0xec, 0x8a, + 0xb7, 0x4c, 0x81, 0x51, 0x96, 0xb3, 0xe8, 0xb3, + 0x25, 0x52, 0xdf, 0x65, 0xb9, 0x94, 0xa8, 0x52, + 0xd1, 0xe9, 0xec, 0xb3, 0x2d, 0xf5, 0x62, 0x14, + 0x87, 0x5b, 0xd0, 0x28, 0xc8, 0xcc, 0xe6, 0x75, + 0x86, 0xde, 0x56, 0xcc, 0x9b, 0x55, 0x5f, 0x08, + 0x18, 0xa5, 0x77, 0x65, 0x35, 0x3a, 0x1d, 0x2e, + 0x6d, 0x40, 0xaa, 0xd4, 0x39, 0xf2, 0x29, 0x49, + 0x14, 0xaa, 0xf4, 0xb8, 0x12, 0xb7, 0xd3, 0xe9, + 0xa3, 0x2f, 0x98, 0x0a, 0x43, 0x6a, 0x03, 0x92, + 0x21, 0x2a, 0x27, 0x3e, 0x9d, 0xe0, 0xea, 0x71, + 0xad, 0x62, 0x2b, 0x8d, 0x9e, 0x52, 0x69, 0x9d, + 0xa9, 0x5c, 0x95, 0x79, 0x16, 0x63, 0x57, 0x95, + 0x46, 0x15, 0x56, 0x0b, 0x11, 0x60, 0x6e, 0x5d, + 0x72, 0x4a, 0xb2, 0xfb, 0x4d, 0xa3, 0xbb, 0xa5, + 0x8f, 0x12, 0x6b, 0xa8, 0x0d, 0xea, 0x27, 0x8d, + 0x06, 0x39, 0x27, 0x32, 0xe6, 0xa2, 0x9d, 0xf2, + 0x5d, 0x16, 0x03, 0x35, 0xc7, 0xac, 0xd7, 0x28, + 0x96, 0xf3, 0x76, 0x85, 0x52, 0xe1, 0x6a, 0xa5, + 0xd9, 0x2a, 0x2c, 0x97, 0x4c, 0x58, 0x80, 0xc5, + 0x39, 0x59, 0x2e, 0xc8, 0x3a, 0x26, 0xd3, 0x6e, + 0x30, 0x28, 0xc9, 0x92, 0xba, 0x1c, 0x2b, 0x0e, + 0x38, 0xaa, 0xd2, 0x2b, 0x08, 0xee, 0xb2, 0x31, + 0xd9, 0x2d, 0x51, 0xda, 0xcd, 0x2e, 0x97, 0x1a, + 0xab, 0x46, 0x99, 0x16, 0xb5, 0x12, 0x6c, 0xaa, + 0x6d, 0x6a, 0x1b, 0xe5, 0x26, 0x99, 0x23, 0x80, + 0x14, 0x59, 0x4c, 0xa3, 0x8c, 0xb6, 0x65, 0xbc, + 0x6d, 0x48, 0x53, 0x99, 0x08, 0x17, 0x56, 0x68, + 0x4a, 0xa2, 0x62, 0x32, 0x2c, 0xf9, 0xb0, 0x6d, + 0x69, 0xd4, 0xe8, 0xf3, 0x6d, 0x2a, 0xa4, 0x23, + 0xba, 0xe9, 0x30, 0x9c, 0xab, 0x43, 0x69, 0xf9, + 0x55, 0x10, 0x9d, 0x39, 0x88, 0x08, 0x8c, 0xc5, + 0xa9, 0x82, 0xee, 0x3b, 0x1c, 0xc6, 0xf4, 0x52, + 0x4b, 0x28, 0xd9, 0x39, 0xbe, 0x47, 0xf2, 0x5c, + 0xfb, 0xd4, 0xab, 0xec, 0x7e, 0xab, 0x4a, 0x89, + 0x56, 0x78, 0x6b, 0x14, 0x1a, 0x84, 0xca, 0x33, + 0x0b, 0x36, 0x6d, 0x26, 0x1c, 0xa5, 0x2a, 0x93, + 0x54, 0xf1, 0xc8, 0x96, 0x69, 0xc6, 0x30, 0x13, + 0x69, 0xbd, 0xca, 0xef, 0x91, 0x1c, 0x41, 0xd4, + 0xda, 0x77, 0x8a, 0x44, 0xa2, 0x2b, 0x50, 0xd9, + 0x58, 0xd7, 0x22, 0xda, 0xef, 0x51, 0x64, 0x50, + 0x29, 0x2f, 0xcb, 0xb4, 0x20, 0x3c, 0x10, 0x24, + 0x48, 0x16, 0x27, 0x57, 0x2a, 0x8d, 0xa4, 0x97, + 0xe7, 0x3c, 0xcb, 0x08, 0x84, 0x66, 0xa2, 0xd3, + 0x90, 0x85, 0xf9, 0x2a, 0x9a, 0x07, 0x78, 0x1a, + 0xb2, 0x10, 0x55, 0xc5, 0xbd, 0xb2, 0xea, 0xb5, + 0x7e, 0x9e, 0x93, 0xf8, 0xea, 0x4d, 0x2b, 0x88, + 0x95, 0x26, 0x05, 0x2a, 0x2d, 0x52, 0x4a, 0x31, + 0x26, 0xaf, 0x36, 0x20, 0xbb, 0xbf, 0x8f, 0x0d, + 0xb4, 0x12, 0xd4, 0xad, 0xb8, 0xd1, 0xb6, 0xbe, + 0x12, 0xcc, 0x1d, 0x3d, 0x1b, 0xa6, 0xf5, 0x93, + 0x7b, 0x32, 0x9a, 0x96, 0xeb, 0xf7, 0x14, 0xea, + 0xb5, 0x22, 0x96, 0xdb, 0x0e, 0x55, 0x63, 0xac, + 0x19, 0xce, 0x9b, 0x73, 0x5c, 0x9b, 0x4a, 0x39, + 0x0d, 0xb9, 0x0a, 0x3a, 0x68, 0x56, 0x9f, 0x92, + 0xf1, 0x45, 0x77, 0x74, 0x0d, 0xb8, 0xbd, 0xea, + 0x6b, 0x5e, 0xf5, 0x09, 0x52, 0xa1, 0xb3, 0x89, + 0x14, 0xfa, 0x74, 0xca, 0x88, 0x56, 0x28, 0xd5, + 0x22, 0xa4, 0x76, 0x24, 0xea, 0xf0, 0xa0, 0xb8, + 0xfb, 0x87, 0x11, 0xba, 0xbe, 0x85, 0x8a, 0x41, + 0x24, 0xa3, 0x8c, 0x39, 0x82, 0x5a, 0xc5, 0x14, + 0xa2, 0x3e, 0xe8, 0xa6, 0x79, 0xe7, 0x8b, 0x97, + 0x66, 0x2c, 0x54, 0x2e, 0xbb, 0x91, 0x69, 0xd2, + 0x68, 0x56, 0xb5, 0x02, 0x94, 0x54, 0xa8, 0xe8, + 0xf5, 0x41, 0xe4, 0x87, 0x09, 0x25, 0xcb, 0xa7, + 0x45, 0x7f, 0x87, 0x67, 0x99, 0x53, 0x59, 0xa9, + 0x93, 0xa7, 0xa9, 0x45, 0x14, 0x8d, 0x10, 0x75, + 0x29, 0x2a, 0x0d, 0x7e, 0xdc, 0x99, 0x6e, 0xd5, + 0xe6, 0x51, 0xe7, 0x6e, 0x8a, 0x44, 0x37, 0x04, + 0x54, 0xd9, 0x5d, 0x4c, 0xba, 0x0e, 0x00, 0xba, + 0xcb, 0xcd, 0x12, 0xa0, 0xaa, 0x83, 0xad, 0x18, + 0x18, 0xea, 0x44, 0x24, 0xd5, 0x91, 0x22, 0x2a, + 0x2e, 0x38, 0x7f, 0x37, 0xd1, 0x8d, 0x91, 0xb4, + 0xa1, 0xb4, 0x6b, 0x69, 0x7c, 0x1f, 0x94, 0xaa, + 0x22, 0xfc, 0x5f, 0xf2, 0x15, 0x53, 0xc3, 0x84, + 0xc5, 0x79, 0x95, 0x3a, 0xe5, 0x68, 0x8b, 0x9d, + 0x4a, 0xaf, 0x52, 0x55, 0x55, 0xf0, 0xaf, 0xed, + 0xd7, 0xf1, 0xc3, 0xe3, 0x87, 0xc7, 0x0f, 0x8e, + 0x1f, 0x1c, 0x3e, 0x38, 0x7c, 0x70, 0xf8, 0xd9, + 0x9d, 0x87, 0x40, 0xb8, 0x20, 0x55, 0x26, 0xdc, + 0x62, 0xa8, 0x0f, 0xca, 0x62, 0x89, 0x42, 0x2e, + 0x22, 0x4c, 0x64, 0xec, 0xbb, 0xcc, 0x3c, 0xfa, + 0xaa, 0x70, 0xee, 0x36, 0x8f, 0x10, 0x8e, 0xe7, + 0x26, 0x9d, 0xd6, 0xdf, 0x87, 0xbc, 0x5c, 0xf1, + 0x48, 0xb1, 0x6b, 0x95, 0xc9, 0xb5, 0x6a, 0x75, + 0x3a, 0x38, 0x3b, 0x32, 0x8c, 0x84, 0xb2, 0xe3, + 0xb8, 0xe6, 0xe9, 0xd5, 0x50, 0x90, 0xb1, 0x48, + 0x1a, 0x45, 0x15, 0x42, 0x71, 0x1d, 0x45, 0xd4, + 0x24, 0x40, 0x22, 0x39, 0x92, 0x92, 0x22, 0x62, + 0xa1, 0xb3, 0x1b, 0xa6, 0x9d, 0x5a, 0xa6, 0x50, + 0x5e, 0x89, 0x1d, 0xc9, 0xd5, 0x80, 0x27, 0x20, + 0x94, 0x79, 0x4d, 0xb9, 0x15, 0xc1, 0x69, 0x08, + 0xa4, 0x6b, 0x7c, 0xb7, 0x7b, 0xbe, 0x19, 0xb0, + 0x57, 0x5e, 0xd4, 0x29, 0xf9, 0x35, 0x45, 0x6f, + 0x78, 0xab, 0x96, 0x2d, 0xbd, 0x9a, 0xa8, 0x5d, + 0x76, 0xec, 0x1b, 0x88, 0x20, 0xd4, 0xe8, 0x95, + 0xb6, 0xea, 0xc4, 0xcc, 0x8a, 0x45, 0x51, 0x64, + 0x44, 0x92, 0x54, 0xf8, 0x52, 0xc8, 0xc0, 0x26, + 0xc2, 0x36, 0x5c, 0x17, 0x23, 0xc9, 0x69, 0xbd, + 0xe0, 0x81, 0x22, 0x66, 0x9b, 0xb2, 0x22, 0xfc, + 0xa0, 0x25, 0x0b, 0x66, 0x17, 0x35, 0xcc, 0xc4, + 0xa9, 0xd4, 0x98, 0x91, 0xc6, 0x0b, 0x52, 0x1d, + 0x61, 0xa7, 0x66, 0xca, 0x48, 0xc9, 0x24, 0xdb, + 0x52, 0xd4, 0xdc, 0x5d, 0x42, 0x6a, 0xee, 0xef, + 0x24, 0x03, 0x32, 0xd0, 0xde, 0xb5, 0xd3, 0xbc, + 0x52, 0x17, 0x34, 0x50, 0xf6, 0x6f, 0x73, 0xdc, + 0x13, 0xaa, 0x54, 0xe8, 0x70, 0x41, 0x87, 0xe8, + 0xe6, 0xac, 0xd4, 0x4a, 0x7b, 0xa9, 0x19, 0x98, + 0xf2, 0x35, 0xa8, 0x24, 0x65, 0x71, 0x05, 0xcd, + 0x6f, 0x16, 0x93, 0x31, 0x46, 0x90, 0xc3, 0x76, + 0x3b, 0xc5, 0x34, 0x13, 0x69, 0x5c, 0xb9, 0x2c, + 0xda, 0xbd, 0xa9, 0x22, 0x2c, 0x4a, 0xcb, 0x6c, + 0x35, 0x22, 0x5c, 0x40, 0x98, 0x0d, 0xb2, 0xf8, + 0xbe, 0xad, 0xb6, 0x44, 0x41, 0xa1, 0xd2, 0x04, + 0xd0, 0x8e, 0x89, 0x09, 0x09, 0x20, 0x13, 0x81, + 0xcd, 0x98, 0xb8, 0x49, 0xcf, 0x8e, 0x1f, 0x1c, + 0x3e, 0x38, 0x7c, 0x70, 0xf8, 0xe1, 0xf1, 0xc3, + 0xe3, 0x87, 0xc7, 0xe0, 0xec, 0x0a, 0xdb, 0xf7, + 0x7a, 0x67, 0xcc, 0xac, 0xd0, 0x57, 0x2f, 0x8b, + 0x34, 0x3a, 0xca, 0x67, 0xf2, 0xe4, 0xbf, 0xb3, + 0xfc, 0x20, 0x75, 0xad, 0xab, 0x48, 0x6c, 0x55, + 0x50, 0x5c, 0xb8, 0x5a, 0x43, 0x4f, 0x88, 0x90, + 0x69, 0xd5, 0x13, 0x44, 0x5f, 0x90, 0x85, 0x0b, + 0xe5, 0x4c, 0x70, 0xdf, 0x27, 0xea, 0xfb, 0xb1, + 0xc3, 0x7c, 0x9f, 0xab, 0xee, 0xc5, 0x2a, 0xc9, + 0xb4, 0xa0, 0xd0, 0xa9, 0x75, 0xcb, 0xe2, 0xb1, + 0x55, 0x87, 0xd9, 0xe2, 0x79, 0x69, 0x34, 0xea, + 0x1b, 0x31, 0x8a, 0x4a, 0x45, 0x60, 0xc4, 0x0e, + 0x74, 0xb7, 0x64, 0xb1, 0x28, 0x37, 0x4a, 0xa4, + 0x9f, 0x92, 0x06, 0x80, 0xc5, 0x0d, 0xb5, 0x43, + 0x74, 0x95, 0xc6, 0x9a, 0xad, 0x58, 0x92, 0x23, + 0x5c, 0xfd, 0xae, 0xdb, 0xcf, 0x0d, 0xc8, 0xb2, + 0x5b, 0x62, 0x4d, 0x3d, 0xc8, 0x5b, 0x92, 0x70, + 0xe3, 0x4a, 0x0d, 0xeb, 0x7c, 0x62, 0x09, 0xee, + 0xa1, 0x38, 0xc8, 0x2a, 0x13, 0xe5, 0x24, 0xd8, + 0x6c, 0x5a, 0x56, 0xe5, 0x16, 0xe9, 0x97, 0x87, + 0x29, 0x56, 0x25, 0xd1, 0x06, 0xaf, 0x0e, 0x85, + 0x2e, 0x8c, 0xfc, 0x7a, 0xad, 0x45, 0x72, 0x83, + 0x18, 0xdc, 0x89, 0xa2, 0x5a, 0xe9, 0xd4, 0xbb, + 0x89, 0x88, 0xfa, 0xc0, 0x3d, 0x09, 0xfb, 0xae, + 0x52, 0xbf, 0x24, 0x59, 0x03, 0xba, 0x0d, 0x50, + 0x55, 0xdd, 0x9d, 0x5d, 0xd1, 0xc6, 0x9c, 0xe4, + 0x9a, 0x14, 0x98, 0xed, 0x55, 0x67, 0x33, 0x4d, + 0x84, 0xe3, 0x87, 0x13, 0x27, 0x26, 0x48, 0x75, + 0x59, 0x65, 0xa3, 0x44, 0x90, 0xa5, 0x19, 0x1d, + 0x34, 0x54, 0x69, 0xd9, 0x48, 0xc3, 0x2e, 0x26, + 0x44, 0x0e, 0xa8, 0x90, 0xaa, 0xdc, 0x3b, 0x23, + 0xb8, 0xa9, 0xd5, 0xd7, 0xa9, 0x34, 0x68, 0x12, + 0x2b, 0x0c, 0xb7, 0x09, 0x99, 0x8c, 0xca, 0xde, + 0x53, 0x99, 0x72, 0x53, 0x48, 0xdc, 0x76, 0xe6, + 0x3e, 0x11, 0x96, 0x52, 0x1b, 0x60, 0xdc, 0xf7, + 0x49, 0x96, 0xd8, 0x2d, 0x4f, 0xe8, 0x41, 0x2c, + 0xdd, 0x04, 0x57, 0x96, 0x16, 0xce, 0x2f, 0x1a, + 0x8c, 0xaa, 0x84, 0x38, 0x54, 0x17, 0xe4, 0x3f, + 0x4a, 0x7c, 0xa2, 0xd4, 0x10, 0x5f, 0xa7, 0x8b, + 0x31, 0xe4, 0x8e, 0x5a, 0xa3, 0xf1, 0x4e, 0x4a, + 0x08, 0x8f, 0xbc, 0x28, 0xa8, 0xa4, 0xd4, 0x67, + 0xde, 0x31, 0x15, 0x42, 0x54, 0x41, 0x54, 0x55, + 0x81, 0x67, 0x30, 0xed, 0xaf, 0x78, 0xd5, 0xaa, + 0x09, 0x3e, 0x2d, 0x56, 0xdb, 0x93, 0x47, 0x8e, + 0xcc, 0x35, 0x46, 0xd9, 0x6d, 0x0e, 0x74, 0xc2, + 0x8d, 0x28, 0x27, 0x30, 0xf4, 0x62, 0x91, 0xbc, + 0x69, 0x07, 0xf2, 0x62, 0xdb, 0xd1, 0xf4, 0x1e, + 0x7b, 0xc4, 0x71, 0x3b, 0xdc, 0x5a, 0xd6, 0x95, + 0x9f, 0x2a, 0xd7, 0xa8, 0xdc, 0x97, 0x5c, 0xba, + 0xfc, 0x76, 0xe2, 0x56, 0x5a, 0xa5, 0xb6, 0x34, + 0x45, 0xa7, 0xf7, 0xc8, 0xf4, 0x56, 0xdf, 0x02, + 0x36, 0xa6, 0x41, 0x90, 0x4a, 0x5a, 0x95, 0xc4, + 0x52, 0x17, 0x44, 0x74, 0xe9, 0x4d, 0xde, 0x79, + 0xaa, 0xdc, 0x9b, 0x3d, 0x61, 0xb7, 0xed, 0xb7, + 0x6c, 0xc7, 0x2a, 0x35, 0xb8, 0x37, 0x5c, 0x77, + 0x5c, 0xa5, 0xc6, 0x96, 0xcb, 0x23, 0x53, 0x69, + 0xd8, 0xda, 0x06, 0x4b, 0x72, 0x49, 0xb0, 0x8f, + 0x1d, 0x5b, 0x05, 0x53, 0x74, 0xa4, 0xab, 0x71, + 0xd8, 0x8e, 0xd0, 0x1a, 0xba, 0x64, 0xd3, 0x4b, + 0x29, 0xce, 0xe7, 0xb7, 0x72, 0x55, 0xce, 0x82, + 0xb4, 0x29, 0x09, 0x57, 0x08, 0x8b, 0x3f, 0x83, + 0x27, 0x21, 0x8e, 0xf2, 0x18, 0xe8, 0xd5, 0x22, + 0x3c, 0x85, 0x90, 0x91, 0x25, 0x02, 0x11, 0xa3, + 0x6b, 0xc3, 0x48, 0x78, 0x91, 0xe4, 0x36, 0x34, + 0xef, 0x9a, 0x74, 0x02, 0x5d, 0x91, 0x3a, 0x05, + 0x05, 0x22, 0x4c, 0xb5, 0xe5, 0xb3, 0x71, 0x95, + 0xcf, 0x16, 0x98, 0x95, 0x35, 0xa9, 0xc1, 0x38, + 0xd9, 0x4d, 0xa7, 0x31, 0x22, 0x2d, 0x18, 0xa2, + 0x37, 0x53, 0x36, 0xc6, 0x53, 0xbb, 0xf6, 0xa5, + 0x71, 0x25, 0x19, 0x00, 0x1b, 0x71, 0x1a, 0x76, + 0x50, 0x12, 0x2b, 0x69, 0x55, 0xd9, 0xed, 0xdd, + 0x45, 0xa7, 0xbb, 0x55, 0xaa, 0x50, 0x65, 0x44, + 0x80, 0xc3, 0xe5, 0x1d, 0xe9, 0x24, 0x71, 0x1d, + 0x16, 0x9d, 0x47, 0x4d, 0x84, 0x57, 0x1b, 0x62, + 0x43, 0xaf, 0x04, 0x73, 0x78, 0x37, 0x6d, 0x4b, + 0x56, 0xd2, 0x23, 0xca, 0x6c, 0xab, 0x2f, 0x98, + 0xc8, 0x61, 0x5c, 0xb8, 0xb6, 0x57, 0x54, 0x8c, + 0x91, 0x65, 0xdb, 0x74, 0xda, 0xa5, 0x4a, 0x98, + 0x96, 0xdd, 0x3a, 0xb1, 0x52, 0x94, 0xfb, 0x90, + 0x89, 0x59, 0x95, 0x24, 0x25, 0x3b, 0x25, 0x98, + 0xa2, 0x21, 0x0d, 0xc9, 0x00, 0xd3, 0x2c, 0xb6, + 0x63, 0x1a, 0x3b, 0x32, 0xe5, 0x02, 0x1a, 0x6b, + 0x23, 0x57, 0x5a, 0x45, 0xa5, 0xd9, 0x17, 0x2d, + 0x6a, 0x04, 0xaa, 0xa5, 0x2a, 0x8d, 0x2a, 0x74, + 0x08, 0x5a, 0xf8, 0x89, 0x0d, 0x6e, 0x51, 0x33, + 0x6c, 0x37, 0x8e, 0x03, 0x0d, 0x38, 0xe0, 0x3f, + 0x31, 0xc0, 0x0e, 0x72, 0x6a, 0x1b, 0x52, 0x1d, + 0x4d, 0x40, 0x3a, 0x35, 0x18, 0x21, 0x46, 0xb0, + 0xae, 0x99, 0x94, 0x8e, 0xcf, 0x46, 0xa3, 0xb8, + 0xf5, 0x1d, 0x18, 0x95, 0x27, 0x8e, 0x49, 0x10, + 0x04, 0x37, 0x30, 0x9c, 0x36, 0x64, 0x96, 0xe8, + 0xe5, 0x0c, 0x8d, 0x4d, 0xb8, 0xd9, 0x8a, 0x35, + 0xb9, 0xdf, 0x3d, 0xa5, 0x55, 0x86, 0xdc, 0x4e, + 0x7c, 0x48, 0xd9, 0xe5, 0xcf, 0x4b, 0x1a, 0x7c, + 0xba, 0xd5, 0x16, 0x54, 0x1a, 0x6c, 0xc9, 0x70, + 0xe3, 0x14, 0x8d, 0xe4, 0x33, 0x36, 0xb8, 0xb3, + 0x04, 0x04, 0x79, 0xa6, 0x9e, 0x7d, 0xe8, 0x6e, + 0x10, 0x96, 0x40, 0x93, 0x18, 0x6b, 0x27, 0x72, + 0x68, 0x87, 0x79, 0xf9, 0x3c, 0x56, 0x36, 0x5d, + 0x58, 0x3b, 0xa6, 0xbd, 0x44, 0xb4, 0xa9, 0xd3, + 0xea, 0xd0, 0xa8, 0xce, 0xc4, 0x6d, 0x64, 0x4a, + 0x7e, 0x9e, 0xd1, 0xa7, 0x13, 0x0a, 0x3c, 0x8d, + 0x2e, 0xc9, 0x7b, 0xb1, 0xd1, 0x1c, 0x77, 0x5b, + 0xa7, 0x93, 0x6c, 0x8a, 0x18, 0xb4, 0x82, 0xa6, + 0x19, 0x77, 0xe5, 0x26, 0x9b, 0x22, 0x14, 0x87, + 0xe2, 0x4b, 0x60, 0xe3, 0x4a, 0x8c, 0xe9, 0xb3, + 0x21, 0x87, 0x83, 0x43, 0xac, 0xba, 0xda, 0xe9, + 0x36, 0xcc, 0x55, 0x39, 0x88, 0x55, 0x32, 0x5c, + 0x70, 0xdf, 0x27, 0xea, 0xfb, 0xb1, 0xb3, 0xe6, + 0xc9, 0xab, 0xde, 0xd5, 0x30, 0x55, 0x15, 0xec, + 0xe5, 0x3d, 0x33, 0x1e, 0x65, 0xd2, 0x6f, 0x88, + 0x12, 0x67, 0xcd, 0xcc, 0x42, 0x4a, 0x2b, 0xe3, + 0x45, 0x54, 0xfc, 0x5b, 0x6d, 0x60, 0x9f, 0xb5, + 0x20, 0x64, 0x2a, 0xa8, 0xdd, 0xc1, 0x11, 0xc3, + 0xcb, 0xf8, 0x23, 0xd8, 0xfa, 0xab, 0x68, 0xab, + 0xe6, 0xd6, 0xe0, 0x8f, 0xca, 0x49, 0x8e, 0x0b, + 0xcd, 0xfd, 0xff, 0x00, 0x56, 0x38, 0x25, 0xf8, + 0xb3, 0x45, 0xf8, 0x95, 0x3c, 0x28, 0xbe, 0x34, + 0xe6, 0xf8, 0xb1, 0x29, 0xdb, 0x16, 0xea, 0x9d, + 0x4e, 0xb9, 0xab, 0xf5, 0x49, 0x34, 0xf9, 0xec, + 0x46, 0x8a, 0xdd, 0x62, 0x86, 0x94, 0xe9, 0x12, + 0x9b, 0xa9, 0x3d, 0x04, 0x13, 0x2e, 0x1a, 0x53, + 0x48, 0xad, 0xb4, 0xc4, 0xac, 0x90, 0x14, 0x5e, + 0x52, 0x25, 0x0e, 0xf4, 0xd5, 0x9f, 0x87, 0x8a, + 0x74, 0xfb, 0x5a, 0xa5, 0x4b, 0xb8, 0xed, 0x99, + 0xa4, 0xf5, 0xb3, 0x4b, 0xa8, 0x56, 0x82, 0xb3, + 0x47, 0x90, 0xcc, 0x77, 0xaa, 0x2d, 0xc4, 0x46, + 0x90, 0x5b, 0x08, 0xd2, 0x9a, 0x42, 0x72, 0x43, + 0x8a, 0xa0, 0xd8, 0x96, 0x42, 0xe6, 0xed, 0x1c, + 0x74, 0x85, 0xb3, 0x65, 0xb6, 0x9b, 0x15, 0xed, + 0x8e, 0x80, 0xcc, 0xd7, 0x61, 0x44, 0x96, 0xf7, + 0x62, 0xe9, 0x56, 0x05, 0x4a, 0xd9, 0xa7, 0x4f, + 0x90, 0xc4, 0x8d, 0xed, 0x46, 0x73, 0xea, 0xc2, + 0x8a, 0xa3, 0x60, 0xd1, 0xb8, 0xc0, 0x3a, 0xa1, + 0xf9, 0x2d, 0xe8, 0xb4, 0xdb, 0x68, 0x8a, 0x8b, + 0xbb, 0x4d, 0x23, 0x88, 0x15, 0x8a, 0x43, 0x11, + 0xf6, 0x5e, 0xdb, 0x93, 0x10, 0x56, 0xdd, 0x9f, + 0x57, 0x7e, 0xac, 0x9b, 0x89, 0x4b, 0xc2, 0x04, + 0xa9, 0x8c, 0x3a, 0xc9, 0x2e, 0x4c, 0x2a, 0x3d, + 0xac, 0x00, 0x97, 0x28, 0xfb, 0xe5, 0x1f, 0x01, + 0x69, 0x55, 0xcb, 0x15, 0x4a, 0xd5, 0x22, 0x44, + 0x08, 0xd1, 0xd9, 0x9b, 0xa8, 0x83, 0x69, 0xf3, + 0x6e, 0x27, 0x03, 0x71, 0x29, 0x13, 0xb1, 0x4e, + 0x4b, 0x90, 0xe3, 0x53, 0x17, 0x53, 0x08, 0x8a, + 0x8a, 0x0e, 0x21, 0x23, 0x3c, 0xf2, 0x53, 0x56, + 0x4a, 0xca, 0x16, 0x68, 0x93, 0x2b, 0xd4, 0x37, + 0xaa, 0x1b, 0x4c, 0x7f, 0x8d, 0x70, 0xd9, 0xb8, + 0x1a, 0xa2, 0x8d, 0x31, 0x59, 0x6a, 0x4b, 0x4f, + 0x4c, 0x48, 0x8a, 0x8b, 0x20, 0x58, 0x37, 0x23, + 0x12, 0x45, 0x74, 0x11, 0x15, 0x1b, 0x72, 0x53, + 0x60, 0x08, 0xe6, 0x92, 0x41, 0x70, 0x51, 0x53, + 0x17, 0x0d, 0xc5, 0x6d, 0xcf, 0xb6, 0xaa, 0x11, + 0x64, 0x56, 0x1c, 0xb9, 0xe5, 0x3f, 0x1d, 0x96, + 0xa8, 0xad, 0xd4, 0xe8, 0x6d, 0xb1, 0x5c, 0xa4, + 0xb9, 0x93, 0x5b, 0xc5, 0x91, 0x57, 0x65, 0xa8, + 0xd1, 0x1f, 0x11, 0x26, 0xb7, 0x86, 0x4c, 0xb2, + 0x2f, 0x9b, 0x84, 0xa8, 0x6e, 0xc9, 0x05, 0xcc, + 0x2d, 0xba, 0xef, 0x60, 0x6c, 0xdb, 0x8a, 0x1c, + 0x3a, 0x93, 0xd4, 0xfa, 0xdc, 0xba, 0x9c, 0x07, + 0xe1, 0x23, 0x02, 0xf8, 0xba, 0x6c, 0x36, 0x8d, + 0x04, 0x85, 0x17, 0xc1, 0xa5, 0x64, 0x13, 0x4a, + 0x1a, 0x28, 0xb8, 0xe0, 0x11, 0x26, 0x79, 0x22, + 0xe6, 0x99, 0xda, 0x97, 0x3b, 0xf1, 0xae, 0x80, + 0xaa, 0xdc, 0x93, 0xa6, 0x4c, 0x6e, 0x4c, 0x09, + 0x34, 0xa7, 0xe6, 0xbf, 0xfb, 0x75, 0xd8, 0x8c, + 0x49, 0x0d, 0x20, 0xe8, 0x32, 0xe8, 0xba, 0x04, + 0xdb, 0x47, 0x91, 0x38, 0xce, 0xe5, 0xd1, 0x30, + 0x27, 0x33, 0x65, 0xd2, 0x25, 0x12, 0x8b, 0x74, + 0xd1, 0x21, 0x56, 0xe8, 0x40, 0x57, 0x13, 0xb5, + 0x18, 0x34, 0xe8, 0x55, 0x92, 0x7a, 0x72, 0x50, + 0xe2, 0xd2, 0x69, 0xed, 0x4a, 0x9d, 0x1f, 0x74, + 0xcb, 0x70, 0x69, 0xf4, 0xda, 0x53, 0x33, 0x41, + 0x4f, 0xc3, 0x20, 0x9e, 0x76, 0x43, 0x4a, 0x7a, + 0x08, 0x32, 0xe7, 0x51, 0xb6, 0xe5, 0xc0, 0x66, + 0xd3, 0x6e, 0x86, 0x6f, 0xe9, 0xa9, 0x3f, 0x7b, + 0xd1, 0x6a, 0x0d, 0x45, 0xdd, 0x3d, 0x99, 0x46, + 0x68, 0xa9, 0xed, 0x93, 0xbb, 0xd4, 0x69, 0x58, + 0x4c, 0x89, 0xb2, 0x4d, 0x24, 0xea, 0x39, 0xde, + 0xe7, 0xa7, 0x2c, 0xb3, 0xb8, 0x5f, 0xb5, 0xe8, + 0x55, 0xdb, 0xd2, 0xae, 0xd5, 0x4a, 0x54, 0x8a, + 0xed, 0x4a, 0x04, 0xca, 0x3a, 0x51, 0x4a, 0x13, + 0xa8, 0x0c, 0xc9, 0x99, 0x1d, 0xa6, 0x5c, 0x94, + 0x53, 0x57, 0x36, 0x1e, 0x8d, 0x90, 0x83, 0xc2, + 0xd6, 0x60, 0x62, 0x39, 0x86, 0x46, 0x59, 0x65, + 0x0a, 0xbd, 0x45, 0x66, 0xe9, 0xb0, 0xaa, 0x0e, + 0x4e, 0xca, 0x0d, 0x0e, 0xd6, 0x8f, 0x4f, 0x9c, + 0xef, 0x0f, 0x2d, 0x52, 0x34, 0xd1, 0x66, 0xa2, + 0x2e, 0x35, 0xbb, 0x48, 0xea, 0xe3, 0x8b, 0x9b, + 0xcc, 0x8a, 0x9b, 0x20, 0xe3, 0x6b, 0x9a, 0x64, + 0xe2, 0xa0, 0xaa, 0xa5, 0x0a, 0xe8, 0xa2, 0x76, + 0x22, 0x14, 0x49, 0x75, 0x97, 0x28, 0x92, 0x28, + 0x75, 0x4a, 0xa4, 0x96, 0xc9, 0xaa, 0x14, 0x4a, + 0xab, 0xd5, 0x28, 0xb2, 0xe4, 0xbd, 0x29, 0x92, + 0xa7, 0xbf, 0x3a, 0x0c, 0xd1, 0xa6, 0xcc, 0x13, + 0xd0, 0x8a, 0xe9, 0xb6, 0xda, 0x67, 0x96, 0xb0, + 0x24, 0x51, 0x38, 0xf7, 0x05, 0x6a, 0x9b, 0x57, + 0xb6, 0x68, 0xf1, 0x49, 0xf7, 0xa4, 0x4b, 0x6e, + 0xe8, 0xab, 0x55, 0x67, 0xc5, 0x71, 0xbd, 0xdc, + 0x9e, 0x12, 0x5c, 0x99, 0x4e, 0x01, 0xb8, 0xeb, + 0x11, 0x23, 0x40, 0x57, 0x9d, 0x69, 0xc4, 0xd5, + 0xc2, 0x88, 0x08, 0x19, 0xf3, 0x34, 0x08, 0x8a, + 0x89, 0x5a, 0xaf, 0xdb, 0x8e, 0x51, 0x2e, 0x8a, + 0x7d, 0x3e, 0xaf, 0x1f, 0x84, 0xa9, 0xb3, 0x48, + 0x5a, 0x35, 0x1a, 0x2d, 0x22, 0x44, 0x06, 0x20, + 0x0c, 0x39, 0x31, 0xde, 0x94, 0x0f, 0xa8, 0x44, + 0x06, 0xdd, 0x9e, 0xfe, 0x4a, 0x86, 0xf9, 0x13, + 0x88, 0x6d, 0xc6, 0x68, 0x16, 0x46, 0x48, 0xd3, + 0x62, 0x37, 0x55, 0x11, 0x6e, 0x7b, 0x8e, 0x74, + 0x5b, 0xa2, 0x5d, 0x29, 0xa9, 0xe7, 0x4a, 0x36, + 0xdd, 0x3a, 0x51, 0x54, 0xe8, 0x75, 0x38, 0xd1, + 0xa0, 0xc7, 0x62, 0x44, 0x59, 0x94, 0xd7, 0x22, + 0x37, 0x52, 0x6e, 0x46, 0xb0, 0x75, 0x95, 0x90, + 0xcc, 0x98, 0xba, 0xe3, 0x9a, 0x88, 0x92, 0x28, + 0x09, 0x1d, 0xe8, 0x54, 0x7a, 0x9d, 0xc5, 0x3a, + 0x5d, 0x06, 0x33, 0x71, 0xa9, 0xc6, 0x8c, 0x88, + 0x23, 0x31, 0xb8, 0x46, 0x5d, 0x75, 0xb6, 0x84, + 0x1e, 0x90, 0xd4, 0x5c, 0xbf, 0x20, 0xdb, 0xc6, + 0x2a, 0x62, 0x0a, 0x82, 0x4b, 0xf0, 0xcc, 0x50, + 0xc8, 0xb1, 0xc1, 0x79, 0xbf, 0xbf, 0xea, 0xc6, + 0xcb, 0xe2, 0x28, 0x5f, 0x96, 0xf9, 0xe4, 0xbd, + 0xe1, 0xd4, 0x95, 0x79, 0xbc, 0x19, 0xd1, 0xaa, + 0x23, 0x9f, 0x83, 0xc6, 0x48, 0x9f, 0xef, 0xc2, + 0x62, 0xb3, 0x09, 0x7b, 0x31, 0x56, 0xef, 0x7f, + 0xe5, 0x3a, 0x87, 0xf4, 0xb7, 0xb1, 0xc1, 0x79, + 0xb1, 0xc1, 0x79, 0xb1, 0xc1, 0x79, 0xb1, 0xc1, + 0x79, 0xb1, 0xc1, 0x79, 0xb1, 0xc1, 0x79, 0xb1, + 0xc1, 0x7f, 0x27, 0x03, 0x5a, 0xb3, 0x2d, 0xca, + 0x25, 0xab, 0x43, 0x95, 0x11, 0xfa, 0xf3, 0xf4, + 0xb0, 0x66, 0xbc, 0xb2, 0x28, 0xb5, 0x30, 0x46, + 0x23, 0x56, 0x5e, 0x71, 0xc7, 0x4f, 0x7a, 0xe4, + 0x59, 0xad, 0x0b, 0xd2, 0x18, 0x35, 0x20, 0x16, + 0x9d, 0xde, 0x6e, 0xd9, 0xdd, 0xa2, 0x8e, 0x47, + 0xcf, 0x39, 0xfa, 0x1c, 0x6a, 0xad, 0xff, 0x00, + 0x54, 0xa6, 0x55, 0xa9, 0xa2, 0xdd, 0xcb, 0x67, + 0xf1, 0x31, 0x81, 0xb9, 0xf1, 0x37, 0xa9, 0x54, + 0x90, 0x06, 0x32, 0x61, 0x20, 0x0b, 0xba, 0xf8, + 0xd7, 0x1c, 0x1e, 0x20, 0xe3, 0xe5, 0xbe, 0xd7, + 0x20, 0x93, 0x47, 0x36, 0x29, 0xae, 0x5b, 0xb2, + 0x23, 0xec, 0xca, 0x3d, 0x5a, 0x74, 0x12, 0x66, + 0x97, 0x0a, 0xb0, 0x2f, 0xb4, 0xe4, 0xc1, 0x40, + 0x85, 0x33, 0x78, 0xa5, 0x4c, 0x0a, 0x96, 0xe9, + 0xd4, 0x76, 0x1c, 0x7d, 0x62, 0xd2, 0x8e, 0xf3, + 0x74, 0x1a, 0x04, 0x10, 0xbf, 0x21, 0xaf, 0x28, + 0x95, 0x2a, 0x5b, 0x13, 0xec, 0x14, 0x93, 0x57, + 0xb6, 0x04, 0xe9, 0x32, 0x6e, 0xa1, 0x9d, 0xd8, + 0xa9, 0x50, 0xe3, 0x52, 0xe9, 0xe1, 0x32, 0x03, + 0xbc, 0x0b, 0x2d, 0x29, 0x1b, 0x79, 0xc7, 0x46, + 0xc9, 0xb8, 0xe1, 0x28, 0xd5, 0xce, 0x22, 0x40, + 0x92, 0x39, 0x21, 0xf9, 0x2a, 0x46, 0x71, 0x63, + 0x51, 0xee, 0x5a, 0x0d, 0xb3, 0x11, 0xcb, 0x9a, + 0x05, 0xbe, 0xfd, 0xab, 0x3e, 0x6b, 0x92, 0x18, + 0x9c, 0xfa, 0x47, 0x49, 0x0d, 0xc8, 0x9e, 0x73, + 0x1b, 0x9d, 0x4e, 0x22, 0x70, 0x45, 0xf9, 0x28, + 0x1d, 0xef, 0x79, 0xa8, 0x91, 0xc2, 0x2c, 0xf7, + 0x62, 0x4d, 0xa3, 0xb3, 0xea, 0x54, 0x2b, 0xcd, + 0xab, 0xde, 0x92, 0x35, 0x68, 0x74, 0x24, 0xa9, + 0x54, 0xa9, 0x73, 0x61, 0xce, 0xa9, 0x97, 0x0b, + 0x16, 0xa5, 0x1e, 0x99, 0x1e, 0x2c, 0x43, 0x47, + 0xdc, 0x35, 0x6f, 0xbe, 0x75, 0x63, 0xa3, 0xed, + 0xb0, 0x49, 0xbf, 0x50, 0x26, 0xcb, 0x74, 0x5b, + 0xb7, 0xb7, 0x7b, 0x52, 0x8a, 0xd9, 0x3f, 0x6a, + 0x23, 0x32, 0x0e, 0x6b, 0x4d, 0xda, 0x94, 0xe6, + 0xdb, 0x98, 0xe2, 0x10, 0x9c, 0xb6, 0xc7, 0x52, + 0x04, 0x93, 0x13, 0xef, 0xc4, 0xdf, 0x1c, 0x9d, + 0x21, 0x3e, 0xf9, 0x14, 0x97, 0x57, 0x3e, 0x38, + 0x2f, 0x36, 0x38, 0x2f, 0x36, 0x38, 0x2f, 0x36, + 0x38, 0x2f, 0x36, 0x38, 0x2f, 0x36, 0x38, 0x2f, + 0x36, 0x38, 0x2f, 0x36, 0x36, 0x10, 0xc2, 0xb2, + 0xfd, 0xd2, 0xb9, 0x78, 0x5a, 0xa2, 0xa7, 0x9b, + 0xe1, 0xd5, 0xbf, 0x67, 0xb7, 0x46, 0x77, 0xd6, + 0xe5, 0x1c, 0x72, 0xcf, 0x2a, 0xf0, 0x2f, 0xfd, + 0x9b, 0x51, 0x4f, 0xfc, 0x71, 0xc0, 0xf9, 0xbe, + 0x8f, 0xbb, 0x1c, 0x0f, 0x9b, 0xe8, 0xfb, 0xb0, + 0x56, 0xd1, 0x6d, 0x06, 0xdc, 0xb5, 0x46, 0x91, + 0x3a, 0x9c, 0xd5, 0x46, 0xdd, 0x86, 0xfd, 0x2a, + 0xa7, 0x06, 0x6b, 0xeb, 0x1d, 0xc6, 0xd9, 0x57, + 0x80, 0x98, 0x96, 0xd8, 0x0b, 0x6e, 0x29, 0x34, + 0x62, 0x3f, 0x0d, 0x01, 0x05, 0xc2, 0x2d, 0x1b, + 0xcd, 0xeb, 0x2e, 0x00, 0xdb, 0x94, 0xba, 0x3d, + 0x12, 0xbf, 0x73, 0x5b, 0xb4, 0x2a, 0xf8, 0xf1, + 0x95, 0x1a, 0x07, 0x63, 0x29, 0x95, 0x97, 0x89, + 0xb6, 0x5b, 0x1a, 0xc9, 0x2b, 0x65, 0x26, 0x34, + 0x69, 0x2c, 0x77, 0xaa, 0x86, 0xef, 0x7a, 0xcb, + 0x82, 0x82, 0xea, 0x18, 0x93, 0x21, 0xbe, 0x70, + 0x05, 0xc7, 0xa2, 0xb0, 0xf5, 0x22, 0x46, 0xce, + 0xed, 0xea, 0xdd, 0x49, 0x9a, 0xa5, 0xc1, 0x0e, + 0xe2, 0x97, 0x50, 0x70, 0xc2, 0x49, 0x4c, 0x3a, + 0x7c, 0x07, 0xa3, 0x48, 0x46, 0xd8, 0x76, 0x4b, + 0xb9, 0x3a, 0xa8, 0xf2, 0xb8, 0x06, 0xde, 0xf5, + 0x07, 0x50, 0x8a, 0xa0, 0xa2, 0xb6, 0xd0, 0x2a, + 0xbb, 0x3a, 0x7c, 0xab, 0x72, 0xff, 0x00, 0x72, + 0x54, 0xf9, 0x2e, 0x93, 0x37, 0x8d, 0x3d, 0xe8, + 0x84, 0x72, 0x1d, 0x25, 0x8b, 0xa2, 0xa0, 0x7c, + 0xf1, 0x55, 0x4d, 0x49, 0x84, 0x11, 0x64, 0x34, + 0xee, 0x54, 0x50, 0x74, 0x22, 0xa6, 0x4b, 0x8a, + 0xc3, 0x13, 0xe2, 0xd5, 0xef, 0xba, 0xd8, 0x4f, + 0x42, 0x8b, 0x55, 0xb2, 0x64, 0xbb, 0x44, 0x75, + 0x89, 0x66, 0x64, 0xc2, 0x31, 0x16, 0x13, 0x6e, + 0x13, 0x49, 0xcc, 0x31, 0x88, 0xde, 0x2d, 0xf3, + 0x7b, 0x82, 0x55, 0x2c, 0xd1, 0xec, 0xc4, 0xf2, + 0xc5, 0x1a, 0x1d, 0x52, 0xe7, 0xb3, 0xa8, 0x34, + 0xfb, 0x7a, 0xba, 0x34, 0xea, 0xa5, 0x1e, 0xa9, + 0x3a, 0x4d, 0x75, 0xb7, 0xaa, 0x0f, 0xc4, 0x92, + 0xfa, 0xc9, 0x94, 0x6f, 0x33, 0x50, 0x71, 0xc0, + 0xd4, 0xec, 0xa1, 0xd0, 0x69, 0xce, 0xe6, 0x60, + 0xa7, 0xa9, 0xad, 0x7a, 0x9a, 0xcb, 0x17, 0x24, + 0x98, 0x35, 0x3a, 0x5e, 0xd4, 0x9f, 0x80, 0xe3, + 0x4f, 0xb4, 0xeb, 0xf6, 0x7b, 0x2b, 0x25, 0xbd, + 0x08, 0x13, 0x64, 0x43, 0x74, 0x19, 0x93, 0x25, + 0xb4, 0x05, 0x50, 0x21, 0x71, 0xd0, 0x5c, 0x8c, + 0x33, 0x43, 0x44, 0xde, 0x22, 0xaa, 0x16, 0x78, + 0xb4, 0xea, 0x6e, 0xdb, 0xbb, 0x3d, 0xac, 0xcb, + 0x62, 0x15, 0x2e, 0x7b, 0xab, 0x73, 0xc5, 0x6f, + 0x86, 0xab, 0x45, 0x29, 0x91, 0x54, 0x5c, 0x82, + 0xde, 0x6e, 0x6e, 0x01, 0xe6, 0x0b, 0x78, 0x3a, + 0x3b, 0xc2, 0xd7, 0x90, 0xf7, 0xdc, 0xcb, 0x9f, + 0x35, 0x9d, 0x77, 0x4a, 0xae, 0xdd, 0x84, 0xe5, + 0x74, 0xa1, 0x46, 0x57, 0x68, 0x13, 0x28, 0xd4, + 0x38, 0x91, 0x89, 0xca, 0x4d, 0x36, 0x2b, 0xaf, + 0x2c, 0x75, 0x48, 0x71, 0xde, 0x03, 0x76, 0x44, + 0x33, 0x9b, 0xb9, 0xd2, 0x32, 0x37, 0xae, 0xc8, + 0x47, 0x51, 0xb6, 0xa3, 0x2e, 0x69, 0x16, 0x3a, + 0x30, 0xfa, 0xc5, 0xaf, 0x53, 0x69, 0xce, 0x37, + 0x0a, 0x24, 0xda, 0x45, 0xa1, 0x70, 0x2e, 0x88, + 0xf5, 0xc9, 0xb5, 0xd9, 0x11, 0x06, 0x41, 0x40, + 0x71, 0x86, 0x65, 0x4f, 0xa8, 0x47, 0x65, 0xf2, + 0x71, 0x55, 0xbd, 0xeb, 0x28, 0xe1, 0xba, 0xe6, + 0xeb, 0x4a, 0xe4, 0x2d, 0x2b, 0x5a, 0xad, 0xf5, + 0x7a, 0x45, 0x9f, 0x44, 0x39, 0x4f, 0xb9, 0x22, + 0x49, 0xed, 0x46, 0x96, 0xf3, 0x8e, 0x3e, 0xe1, + 0x3a, 0xfb, 0x9a, 0x61, 0x44, 0x6d, 0x08, 0xcd, + 0xc5, 0x53, 0x2c, 0x90, 0x50, 0x75, 0x12, 0xf8, + 0x13, 0x2f, 0x8b, 0x15, 0xb8, 0x93, 0x69, 0x5d, + 0xd1, 0xab, 0x15, 0x8a, 0xf4, 0x79, 0xf4, 0x4a, + 0xd4, 0x0a, 0x85, 0x2e, 0x95, 0x01, 0x27, 0x1b, + 0xe5, 0xc7, 0xb9, 0xae, 0x3b, 0x50, 0x86, 0x1f, + 0x38, 0x30, 0xf4, 0x02, 0x43, 0x8a, 0xe2, 0x33, + 0xa8, 0x90, 0x5a, 0x76, 0x43, 0xc8, 0xd8, 0xb6, + 0xe2, 0x8c, 0x69, 0xb2, 0xd2, 0xf9, 0xb3, 0xe1, + 0x24, 0xc7, 0x86, 0x9e, 0x16, 0x18, 0x6b, 0x8c, + 0x2f, 0x9a, 0x46, 0x37, 0x8e, 0x0c, 0xed, 0x44, + 0xeb, 0x48, 0x5b, 0xa3, 0x3d, 0x4c, 0x33, 0x92, + 0x90, 0xea, 0x1d, 0x03, 0x92, 0xe2, 0xd0, 0x7a, + 0x39, 0xdb, 0x96, 0xeb, 0xd0, 0x42, 0x12, 0x95, + 0xb4, 0xed, 0x5b, 0xb2, 0x65, 0x2e, 0xe3, 0xa8, + 0xd1, 0x1b, 0xa6, 0xb8, 0x72, 0x24, 0x3e, 0x52, + 0x24, 0x41, 0x86, 0xc3, 0xf1, 0xea, 0x4c, 0xcb, + 0x68, 0xc9, 0xc4, 0x59, 0x60, 0xad, 0x02, 0x29, + 0x20, 0xf7, 0xc2, 0xe8, 0x85, 0x79, 0xee, 0x22, + 0xd2, 0xb2, 0xd8, 0x6a, 0x6b, 0xb4, 0xea, 0x7d, + 0x42, 0xb9, 0x71, 0x94, 0xc4, 0x89, 0x20, 0xc1, + 0xb0, 0x8a, 0xfd, 0x6d, 0xe5, 0x45, 0x3e, 0x66, + 0xf5, 0x83, 0x2d, 0x3a, 0x64, 0xde, 0xf9, 0xb4, + 0x44, 0xf8, 0x4a, 0x08, 0xbe, 0x0a, 0xe5, 0x34, + 0x22, 0x51, 0x6e, 0xb6, 0x1b, 0x85, 0x1d, 0x86, + 0xde, 0xac, 0x5a, 0xd2, 0xa3, 0xcb, 0x2a, 0xab, + 0x95, 0x7a, 0xad, 0x65, 0xa6, 0x6a, 0xb4, 0xd6, + 0xca, 0xad, 0x35, 0xe7, 0xa4, 0xbe, 0xf3, 0x4c, + 0x23, 0x6d, 0x8b, 0x11, 0xd9, 0x20, 0x6c, 0x59, + 0xdc, 0xc8, 0x21, 0x52, 0x6c, 0xd3, 0x4c, 0x62, + 0x91, 0x22, 0xe5, 0xbc, 0x69, 0xed, 0x0d, 0x2a, + 0xa1, 0x1d, 0xda, 0xd5, 0x36, 0x53, 0xb0, 0x1c, + 0xa9, 0xca, 0xa4, 0xd5, 0x23, 0x07, 0x62, 0x20, + 0xb0, 0xe5, 0x4a, 0x24, 0x88, 0xed, 0xb8, 0x92, + 0x01, 0x11, 0x05, 0xb0, 0x6c, 0x49, 0x82, 0x6d, + 0xf0, 0xcd, 0x64, 0x06, 0xb0, 0x4c, 0x5f, 0xf0, + 0xe1, 0x15, 0xdd, 0x59, 0x28, 0x13, 0x5d, 0xa9, + 0x46, 0x27, 0x99, 0xca, 0x4b, 0xd2, 0x0a, 0x61, + 0xef, 0x06, 0x2b, 0x20, 0xeb, 0x1c, 0x59, 0xea, + 0x39, 0x21, 0x15, 0xc1, 0x58, 0xed, 0xba, 0x66, + 0x67, 0xa1, 0xb1, 0x03, 0x75, 0xd3, 0x02, 0x74, + 0xf8, 0x1f, 0x37, 0xd1, 0xf7, 0x62, 0xc8, 0x87, + 0xa2, 0xf0, 0xb6, 0x8b, 0x2f, 0x83, 0x5a, 0xa7, + 0xaf, 0xea, 0x90, 0x1e, 0x6f, 0xc5, 0x5a, 0xa3, + 0xc4, 0xaf, 0x53, 0x64, 0xd2, 0xe7, 0x0a, 0xab, + 0x12, 0x05, 0x3b, 0xe1, 0xcb, 0x5b, 0x4e, 0x02, + 0xea, 0x69, 0xe6, 0xf3, 0xcd, 0x35, 0xb4, 0x68, + 0x84, 0x99, 0xa6, 0x4b, 0xce, 0x2b, 0xcc, 0xab, + 0x87, 0x36, 0x39, 0x35, 0x0c, 0xb7, 0x55, 0x58, + 0x44, 0xde, 0x7d, 0xe9, 0x38, 0xcb, 0xe0, 0x6a, + 0x9f, 0xca, 0x11, 0xd6, 0x28, 0xbf, 0x21, 0x2f, + 0xcb, 0x8e, 0xe3, 0x95, 0x1e, 0x94, 0xa7, 0xfa, + 0x39, 0x1e, 0xe6, 0x3b, 0x8e, 0x54, 0x7a, 0x52, + 0x9f, 0xe8, 0xe4, 0x7b, 0x98, 0xee, 0x39, 0x51, + 0xe9, 0x4a, 0x7f, 0xa3, 0x91, 0xee, 0x63, 0xb8, + 0xe5, 0x47, 0xa5, 0x29, 0xfe, 0x8e, 0x47, 0xb9, + 0x8e, 0xe3, 0x95, 0x1e, 0x94, 0xa7, 0xfa, 0x39, + 0x1e, 0xe6, 0x3b, 0x8e, 0x54, 0x7a, 0x52, 0x9f, + 0xe8, 0xe4, 0x7b, 0x98, 0xee, 0x39, 0x51, 0xe9, + 0x4a, 0x7f, 0xa3, 0x91, 0xee, 0x63, 0xb8, 0xe5, + 0x47, 0xa5, 0x29, 0xfe, 0x8e, 0x47, 0xb9, 0x8e, + 0xe3, 0x95, 0x1e, 0x94, 0xa7, 0xfa, 0x39, 0x1e, + 0xe6, 0x3b, 0x8e, 0x54, 0x7a, 0x52, 0x9f, 0xe8, + 0xe4, 0x7b, 0x98, 0xee, 0x39, 0x51, 0xe9, 0x4a, + 0x7f, 0xa3, 0x91, 0xee, 0x61, 0x9d, 0x90, 0xd5, + 0x58, 0x79, 0xa7, 0xda, 0xab, 0x53, 0xc5, 0xd6, + 0x1d, 0x6d, 0xe6, 0x8b, 0x74, 0xf9, 0x69, 0x71, + 0xa3, 0x43, 0x02, 0xc8, 0x9b, 0x51, 0x5c, 0x88, + 0x51, 0x72, 0x24, 0x54, 0x5f, 0x02, 0xa2, 0xa6, + 0x27, 0xec, 0xae, 0xb7, 0x53, 0x99, 0x22, 0x7c, + 0xda, 0xcd, 0x3d, 0xe9, 0x72, 0x8f, 0x78, 0xfb, + 0xbb, 0x87, 0x1b, 0xd6, 0x79, 0x20, 0xe7, 0xa1, + 0xa6, 0x81, 0xb1, 0xe6, 0x14, 0xe6, 0x11, 0x44, + 0xc7, 0x71, 0xca, 0x8f, 0x4a, 0x53, 0xfd, 0x1c, + 0x8f, 0x73, 0x1d, 0xc7, 0x2a, 0x3d, 0x29, 0x4f, + 0xf4, 0x72, 0x3d, 0xcc, 0x77, 0x1c, 0xa8, 0xf4, + 0xa5, 0x3f, 0xd1, 0xc8, 0xf7, 0x31, 0xdc, 0x72, + 0xa3, 0xd2, 0x94, 0xff, 0x00, 0x47, 0x23, 0xdc, + 0xc7, 0x71, 0xca, 0x8f, 0x4a, 0x53, 0xfd, 0x1c, + 0x8f, 0x73, 0x1d, 0xc7, 0x2a, 0x3d, 0x29, 0x4f, + 0xf4, 0x72, 0x3d, 0xcc, 0x77, 0x1c, 0xa8, 0xf4, + 0xa5, 0x3f, 0xd1, 0xc8, 0xf7, 0x31, 0x67, 0x6c, + 0xf6, 0x3d, 0xb3, 0x24, 0xaa, 0x32, 0x64, 0x0c, + 0xda, 0x82, 0xb6, 0x4d, 0x32, 0xad, 0xb6, 0xa0, + 0xc4, 0x60, 0x3c, 0xb7, 0x8a, 0x1a, 0xb3, 0x33, + 0x74, 0xd1, 0x34, 0x6b, 0x5d, 0x08, 0x20, 0xa4, + 0x28, 0x2b, 0xab, 0x57, 0xe2, 0xba, 0xf6, 0x5b, + 0x26, 0x7d, 0x4a, 0x4d, 0x4a, 0x88, 0xec, 0x64, + 0x19, 0x8e, 0x13, 0xef, 0x43, 0x90, 0x46, 0xce, + 0xed, 0xf3, 0xe7, 0x70, 0x99, 0x71, 0x05, 0xc4, + 0x20, 0x74, 0xf3, 0x3d, 0x04, 0x81, 0xa0, 0x89, + 0x45, 0x17, 0x46, 0x59, 0x77, 0x28, 0xba, 0x3f, + 0x33, 0x07, 0xd7, 0x47, 0xdc, 0xc7, 0x72, 0x8b, + 0xa3, 0xf3, 0x30, 0x7d, 0x74, 0x7d, 0xcc, 0x77, + 0x28, 0xba, 0x3f, 0x33, 0x07, 0xd7, 0x47, 0xdc, + 0xc7, 0x72, 0x8b, 0xa3, 0xf3, 0x30, 0x7d, 0x74, + 0x7d, 0xcc, 0x77, 0x28, 0xba, 0x3f, 0x33, 0x07, + 0xd7, 0x47, 0xdc, 0xc7, 0x72, 0x8b, 0xa3, 0xf3, + 0x30, 0x7d, 0x74, 0x7d, 0xcc, 0x77, 0x28, 0xba, + 0x3f, 0x33, 0x07, 0xd7, 0x47, 0xdc, 0xc7, 0x72, + 0x8b, 0xa3, 0xf3, 0x30, 0x7d, 0x74, 0x7d, 0xcc, + 0x77, 0x28, 0xba, 0x3f, 0x33, 0x07, 0xd7, 0x47, + 0xdc, 0xc7, 0x72, 0x8b, 0xa3, 0xf3, 0x30, 0x7d, + 0x74, 0x7d, 0xcc, 0x77, 0x28, 0xba, 0x3f, 0x33, + 0x07, 0xd7, 0x47, 0xdc, 0xc7, 0x72, 0x8b, 0xa3, + 0xf3, 0x30, 0x7d, 0x74, 0x7d, 0xcc, 0x50, 0xac, + 0xfb, 0xde, 0x80, 0x32, 0x1a, 0x62, 0x0d, 0xbf, + 0x3a, 0x34, 0x95, 0x17, 0x0e, 0x25, 0x51, 0x46, + 0x5c, 0x61, 0x7c, 0x13, 0x48, 0xc8, 0x6c, 0x51, + 0x59, 0x70, 0x1e, 0x46, 0xd4, 0x9a, 0xcd, 0x1c, + 0xd0, 0x40, 0x6a, 0x86, 0x04, 0xa8, 0xd9, 0x05, + 0x72, 0xc5, 0xbd, 0xee, 0x19, 0xcb, 0x3e, 0xa0, + 0x14, 0xcd, 0xe6, 0xec, 0x19, 0x69, 0xa6, 0x24, + 0x8b, 0x51, 0xe3, 0xb0, 0x19, 0xe9, 0x65, 0x86, + 0xf2, 0x32, 0x40, 0x45, 0x55, 0x5e, 0xfc, 0xdc, + 0x35, 0x55, 0xe7, 0x35, 0xe6, 0xcb, 0xb9, 0x45, + 0xd1, 0xf9, 0x98, 0x3e, 0xba, 0x3e, 0xe6, 0x3b, + 0x94, 0x5d, 0x1f, 0x99, 0x83, 0xeb, 0xa3, 0xee, + 0x63, 0xb9, 0x45, 0xd1, 0xf9, 0x98, 0x3e, 0xba, + 0x3e, 0xe6, 0x3b, 0x94, 0x5d, 0x1f, 0x99, 0x83, + 0xeb, 0xa3, 0xee, 0x63, 0xb9, 0x45, 0xd1, 0xf9, + 0x98, 0x3e, 0xba, 0x3e, 0xe6, 0x3b, 0x94, 0x5d, + 0x1f, 0x99, 0x83, 0xeb, 0xa3, 0xee, 0x60, 0x76, + 0x4f, 0x73, 0x29, 0x22, 0x28, 0x53, 0xc1, 0x17, + 0xc2, 0x45, 0x33, 0x34, 0x4f, 0xf7, 0x0b, 0x64, + 0xab, 0xfe, 0xe4, 0xc5, 0x9b, 0x69, 0x31, 0x69, + 0xd3, 0xdd, 0x61, 0x1c, 0x17, 0xe6, 0xcc, 0x30, + 0x76, 0x6c, 0x81, 0x15, 0x11, 0x25, 0x6c, 0x54, + 0x5a, 0x65, 0xb4, 0x5e, 0x7d, 0xd3, 0x28, 0x47, + 0xa5, 0x57, 0x25, 0x22, 0x33, 0x3c, 0x87, 0x56, + 0x49, 0xfb, 0x2b, 0xc6, 0xdb, 0x0b, 0xa6, 0x8c, + 0xe5, 0x3f, 0x5a, 0x35, 0x21, 0xb7, 0x42, 0x54, + 0x37, 0x4b, 0x3d, 0x03, 0x21, 0xb4, 0x21, 0x44, + 0x73, 0x2c, 0xd7, 0x43, 0x8d, 0x9b, 0x8d, 0x92, + 0xa2, 0x66, 0x3a, 0xb5, 0x22, 0x2e, 0x59, 0x2b, + 0xbb, 0x34, 0xbb, 0x1a, 0x32, 0x0e, 0xc3, 0x93, + 0xa8, 0x8b, 0xcc, 0xe3, 0x32, 0x61, 0x1b, 0x66, + 0x99, 0xe5, 0xa8, 0x7f, 0x6c, 0x21, 0x22, 0x2f, + 0xc4, 0x8e, 0x00, 0x1e, 0x5e, 0x11, 0x4c, 0x77, + 0x39, 0xbb, 0x3a, 0x0e, 0x47, 0xa6, 0x85, 0xf6, + 0x8c, 0x2e, 0xce, 0x2e, 0xb5, 0xf0, 0xd0, 0x9f, + 0x5f, 0x95, 0xd8, 0x5f, 0x68, 0xc7, 0x73, 0x8b, + 0xb3, 0xa0, 0x9f, 0xf4, 0xd0, 0xbe, 0xd1, 0x8e, + 0xe7, 0x17, 0x5e, 0x59, 0x76, 0x09, 0xfc, 0xbc, + 0x5b, 0xd8, 0x59, 0x7f, 0x48, 0xc7, 0x73, 0x8b, + 0xaf, 0xa0, 0x9f, 0xe6, 0xff, 0x00, 0xda, 0xc2, + 0xfb, 0x46, 0x3b, 0x9b, 0xdd, 0x7d, 0x02, 0xff, + 0x00, 0x8f, 0xf7, 0x58, 0x5e, 0x1f, 0x1f, 0xf8, + 0xc6, 0x17, 0x67, 0x17, 0x5a, 0xf8, 0x68, 0x4f, + 0xaf, 0xca, 0xec, 0x2f, 0xb4, 0x63, 0xb9, 0xc5, + 0xd9, 0xd0, 0x4f, 0xf3, 0x7f, 0xed, 0x61, 0x7d, + 0xa3, 0x1d, 0xce, 0x2e, 0xcf, 0x0f, 0x60, 0x9f, + 0xcf, 0xfd, 0x2c, 0x2f, 0xb4, 0x63, 0xb9, 0xc5, + 0xd9, 0xd0, 0x52, 0x3d, 0x34, 0x2f, 0xb4, 0x63, + 0xb9, 0xbd, 0xd7, 0xe0, 0xec, 0x0b, 0xf9, 0x78, + 0xb7, 0xb0, 0xbe, 0xd1, 0x88, 0x16, 0x1d, 0xdb, + 0x06, 0x7c, 0x39, 0xc9, 0x6f, 0xbe, 0xe1, 0x43, + 0x95, 0x1e, 0x4a, 0x02, 0xc8, 0x84, 0x1b, 0xce, + 0x1d, 0xd1, 0x75, 0x01, 0x4f, 0x7e, 0x4a, 0x28, + 0x4a, 0x39, 0x67, 0xa4, 0xb2, 0xcf, 0x3c, 0x97, + 0xc1, 0x8a, 0xb5, 0x91, 0x76, 0xd5, 0x6a, 0x95, + 0x0a, 0x99, 0x5b, 0xaf, 0x32, 0x73, 0xe5, 0xbf, + 0x2c, 0x9a, 0x49, 0x10, 0x9c, 0xdd, 0xab, 0xee, + 0x13, 0x9b, 0xbd, 0xe6, 0xf8, 0x14, 0xd0, 0x73, + 0xcb, 0x56, 0x81, 0xcf, 0x2c, 0xf4, 0xa7, 0x83, + 0x1d, 0xce, 0x2e, 0xbf, 0x07, 0x60, 0x9f, 0xf1, + 0xfe, 0xeb, 0x0b, 0xc3, 0xeb, 0x18, 0xee, 0x71, + 0x75, 0xaf, 0xfc, 0x84, 0xff, 0x00, 0x37, 0x83, + 0xf2, 0xb0, 0xbe, 0xd1, 0x8e, 0xe7, 0x17, 0x67, + 0x41, 0x3f, 0xe9, 0x61, 0x7d, 0xa3, 0x1d, 0xcd, + 0xee, 0xae, 0x81, 0x7b, 0xd2, 0xc2, 0xfb, 0x46, + 0x3b, 0x9b, 0xdd, 0x7e, 0x0e, 0xc0, 0xbf, 0x97, + 0x8b, 0x7b, 0x0b, 0xed, 0x18, 0xee, 0x73, 0x76, + 0x74, 0x1c, 0x8f, 0x4d, 0x0b, 0xed, 0x18, 0xee, + 0x73, 0x76, 0x74, 0x1c, 0x8f, 0x4d, 0x0b, 0xed, + 0x18, 0xb1, 0xb6, 0x6d, 0x3e, 0x0d, 0x52, 0x3d, + 0x62, 0xb6, 0xd8, 0x45, 0x48, 0x25, 0xbe, 0x8b, + 0x0d, 0x1d, 0x69, 0xd7, 0x5c, 0x90, 0x89, 0xf9, + 0x27, 0x1d, 0x26, 0x09, 0xc6, 0xc1, 0xb6, 0x95, + 0x77, 0x88, 0x28, 0xea, 0xb8, 0x4e, 0x08, 0x21, + 0x20, 0x8a, 0x12, 0x17, 0xfe, 0xe5, 0x19, 0x52, + 0xa3, 0x41, 0x8e, 0xec, 0xb9, 0x92, 0x19, 0x8b, + 0x15, 0x80, 0x57, 0x1e, 0x91, 0x21, 0xc0, 0x65, + 0x96, 0x80, 0x7c, 0x24, 0xe3, 0x8e, 0x28, 0x80, + 0x8a, 0x78, 0xd5, 0x53, 0x0e, 0xed, 0x9f, 0x66, + 0x8c, 0xb8, 0x4d, 0x95, 0xcc, 0x24, 0x42, 0xb9, + 0x2a, 0xb3, 0x49, 0xae, 0xc8, 0x6d, 0x7f, 0xe8, + 0xbd, 0x1e, 0x98, 0xeb, 0x46, 0x9e, 0x70, 0x32, + 0x4c, 0x77, 0x6c, 0xd9, 0x97, 0x94, 0x87, 0xec, + 0x2b, 0x8f, 0xaa, 0x31, 0xdd, 0xb3, 0x66, 0x5e, + 0x52, 0x1f, 0xb0, 0xae, 0x3e, 0xa8, 0xc7, 0x76, + 0xcd, 0x99, 0x79, 0x48, 0x7e, 0xc2, 0xb8, 0xfa, + 0xa3, 0x1d, 0xdb, 0x36, 0x65, 0xe5, 0x21, 0xfb, + 0x0a, 0xe3, 0xea, 0x8c, 0x77, 0x6c, 0xd9, 0x97, + 0x94, 0x87, 0xec, 0x2b, 0x8f, 0xaa, 0x31, 0xdd, + 0xb3, 0x66, 0x5e, 0x52, 0x1f, 0xb0, 0xae, 0x3e, + 0xa8, 0xc7, 0x76, 0xcd, 0x99, 0x79, 0x48, 0x7e, + 0xc2, 0xb8, 0xfa, 0xa3, 0x1d, 0xdb, 0x36, 0x65, + 0xe5, 0x21, 0xfb, 0x0a, 0xe3, 0xea, 0x8c, 0x77, + 0x6c, 0xd9, 0x97, 0x94, 0x87, 0xec, 0x2b, 0x8f, + 0xaa, 0x31, 0xdd, 0xb3, 0x66, 0x5e, 0x52, 0x1f, + 0xb0, 0xae, 0x3e, 0xa8, 0xc7, 0x76, 0xcd, 0x99, + 0x79, 0x48, 0x7e, 0xc2, 0xb8, 0xfa, 0xa3, 0x1d, + 0xdb, 0x36, 0x65, 0xe5, 0x21, 0xfb, 0x0a, 0xe3, + 0xea, 0x8c, 0x77, 0x6c, 0xd9, 0x97, 0x94, 0x87, + 0xec, 0x2b, 0x8f, 0xaa, 0x31, 0xdd, 0xb3, 0x66, + 0x5e, 0x52, 0x1f, 0xb0, 0xae, 0x3e, 0xa8, 0xc7, + 0x76, 0xcd, 0x99, 0x79, 0x48, 0x7e, 0xc2, 0xb8, + 0xfa, 0xa3, 0x1d, 0xdb, 0x36, 0x65, 0xe5, 0x21, + 0xfb, 0x0a, 0xe3, 0xea, 0x8c, 0x77, 0x6c, 0xd9, + 0x97, 0x94, 0x87, 0xec, 0x2b, 0x8f, 0xaa, 0x31, + 0xdd, 0xb3, 0x66, 0x5e, 0x52, 0x1f, 0xb0, 0xae, + 0x3e, 0xa8, 0xc7, 0x76, 0xcd, 0x99, 0x79, 0x48, + 0x7e, 0xc2, 0xb8, 0xfa, 0xa3, 0x09, 0xb6, 0xcd, + 0x99, 0x2a, 0xe5, 0xdb, 0x21, 0x73, 0xf8, 0xe8, + 0x77, 0x12, 0x27, 0xfb, 0xd5, 0x69, 0x19, 0x27, + 0xca, 0xbc, 0xd8, 0xa2, 0x5c, 0x14, 0x5b, 0x8e, + 0x27, 0x1d, 0x43, 0xa9, 0x45, 0xa9, 0x45, 0xcf, + 0x49, 0x39, 0x1c, 0xf3, 0x26, 0xcf, 0xc3, 0xa1, + 0xe6, 0x89, 0x05, 0xe6, 0x1c, 0xcb, 0x9f, 0x76, + 0xf3, 0x60, 0x79, 0x73, 0xe5, 0x97, 0xf1, 0xbf, + 0xe1, 0x11, 0x3e, 0x5b, 0x74, 0xfb, 0x6e, 0x92, + 0xd3, 0x84, 0x31, 0x2a, 0x32, 0x2a, 0x72, 0xe5, + 0x80, 0xae, 0x5b, 0xe2, 0xa6, 0x8d, 0x3c, 0x63, + 0x01, 0xff, 0x00, 0xce, 0x01, 0x29, 0xee, 0x39, + 0xa5, 0x79, 0xb7, 0x80, 0xd9, 0x2a, 0x66, 0x03, + 0x96, 0xe3, 0xcd, 0xfd, 0xff, 0x00, 0x56, 0x38, + 0x7f, 0xef, 0x96, 0x38, 0x7f, 0xef, 0x96, 0x2c, + 0xfb, 0x44, 0xee, 0xea, 0xeb, 0x14, 0x40, 0x9a, + 0x14, 0xf2, 0x7d, 0x99, 0x2f, 0x71, 0x4e, 0x47, + 0x59, 0x02, 0x09, 0x1d, 0xa5, 0x75, 0x51, 0x5a, + 0x17, 0x59, 0x55, 0xd4, 0x89, 0x96, 0x7b, 0xc4, + 0xd3, 0xe1, 0xc9, 0x71, 0x5b, 0xd9, 0x83, 0x70, + 0x68, 0xf3, 0x2b, 0x54, 0x1b, 0xae, 0x8d, 0x75, + 0xc7, 0xa5, 0x90, 0x76, 0x59, 0xaa, 0x6a, 0x00, + 0x3f, 0x05, 0x97, 0x17, 0x48, 0x48, 0x51, 0x19, + 0x72, 0xd1, 0xc0, 0x43, 0xe6, 0x75, 0x15, 0x5a, + 0x20, 0x0c, 0xdc, 0x44, 0x30, 0x17, 0x34, 0x76, + 0x2e, 0x66, 0xe1, 0x25, 0x70, 0x92, 0xb8, 0x52, + 0x54, 0x41, 0x93, 0xc3, 0x39, 0xc3, 0x92, 0xa9, + 0x68, 0x44, 0x47, 0xb4, 0xee, 0xd5, 0x54, 0xfb, + 0xd4, 0x44, 0x2e, 0x72, 0xef, 0x7c, 0x38, 0xb8, + 0x2c, 0xaa, 0xb5, 0xb8, 0xfd, 0x2a, 0x34, 0xb6, + 0xd5, 0xe9, 0x15, 0x5a, 0x6c, 0x6a, 0x83, 0x61, + 0x15, 0x87, 0xcd, 0x00, 0xa5, 0x9b, 0xe8, 0xdc, + 0x14, 0x22, 0x6c, 0x55, 0xe9, 0x6d, 0xb4, 0xd0, + 0x38, 0xfb, 0x60, 0x08, 0xad, 0x9b, 0xbb, 0xb4, + 0x43, 0x10, 0x47, 0x9c, 0x7a, 0x03, 0xf1, 0x9c, + 0xdd, 0x49, 0x61, 0xe8, 0xee, 0xa2, 0x21, 0x2b, + 0x6f, 0xb2, 0x4c, 0xb8, 0x82, 0x5f, 0x05, 0x74, + 0x38, 0x82, 0x59, 0x17, 0xc4, 0xb9, 0x64, 0xbf, + 0x16, 0x2d, 0xfd, 0x9a, 0x40, 0xab, 0x5b, 0xb1, + 0x6e, 0x3a, 0xa5, 0xe5, 0x4b, 0xb6, 0xe3, 0xcb, + 0x99, 0x2a, 0x1b, 0x4d, 0xd4, 0xa2, 0x8e, 0x44, + 0xec, 0x53, 0x51, 0x54, 0x17, 0xce, 0x7c, 0x61, + 0x32, 0x24, 0x15, 0x3d, 0x08, 0x19, 0x8a, 0x7c, + 0x6b, 0xe1, 0xc5, 0xcf, 0x62, 0xd4, 0xed, 0xaa, + 0xa7, 0x63, 0xf3, 0x4a, 0xb3, 0x2e, 0xc3, 0x66, + 0xa3, 0x0a, 0xa1, 0x4d, 0x65, 0xc7, 0xa3, 0xca, + 0xa7, 0x48, 0x33, 0x06, 0x64, 0xe4, 0x28, 0x7b, + 0x9c, 0xcc, 0x08, 0x0c, 0x14, 0xcc, 0x44, 0xfe, + 0x03, 0xae, 0x81, 0x03, 0x84, 0x14, 0x89, 0xee, + 0x38, 0xeb, 0x2d, 0xc2, 0x98, 0xe3, 0xac, 0x7e, + 0xee, 0xd0, 0x45, 0x78, 0xdc, 0x67, 0xfd, 0x30, + 0x08, 0x29, 0x37, 0xe0, 0x5f, 0x86, 0x83, 0xcf, + 0x8a, 0x6d, 0x9d, 0x52, 0xaa, 0x50, 0xab, 0x77, + 0x04, 0x74, 0x4e, 0x0e, 0x8a, 0xb1, 0x1b, 0x71, + 0xb4, 0x69, 0xd7, 0x24, 0x4a, 0x7a, 0x5c, 0x86, + 0xda, 0xd0, 0xc0, 0x80, 0x28, 0x68, 0x8e, 0xd1, + 0x1c, 0x89, 0x2e, 0x11, 0xe6, 0xd0, 0x8b, 0x63, + 0xbb, 0x54, 0x75, 0x4d, 0xb5, 0xa7, 0x49, 0x46, + 0x06, 0x52, 0xc7, 0x7d, 0x22, 0x99, 0x28, 0x04, + 0x95, 0x60, 0xd2, 0x39, 0x9a, 0x29, 0x22, 0x80, + 0x3d, 0x96, 0xe8, 0x8d, 0x14, 0x0f, 0x31, 0x42, + 0x55, 0xef, 0x0b, 0x9b, 0xbd, 0x5c, 0x76, 0x36, + 0x52, 0xc7, 0x59, 0x69, 0x1a, 0x42, 0xc4, 0x45, + 0xd2, 0xb2, 0x92, 0x3b, 0x9c, 0x32, 0x16, 0xb4, + 0x6f, 0x4a, 0xbf, 0xa7, 0x74, 0x85, 0xbc, 0x54, + 0x0c, 0xb5, 0x67, 0xad, 0x50, 0x7e, 0x12, 0xe5, + 0x86, 0x76, 0x7c, 0xb0, 0xa4, 0x5a, 0xee, 0x5c, + 0xb2, 0xa4, 0x41, 0xa5, 0xdc, 0x91, 0x24, 0x4d, + 0x57, 0xe9, 0xd4, 0xe9, 0xb5, 0x19, 0x30, 0x19, + 0x18, 0xc4, 0xec, 0x46, 0xde, 0x61, 0x98, 0xae, + 0x38, 0x72, 0xe4, 0x38, 0x89, 0xbc, 0x8e, 0xcb, + 0x4e, 0xee, 0x19, 0xcd, 0xd2, 0x71, 0x51, 0x1c, + 0xdc, 0x8d, 0x2a, 0x43, 0xee, 0xc8, 0x18, 0x51, + 0xe5, 0x4b, 0x06, 0x08, 0xb3, 0x26, 0x63, 0x3a, + 0x64, 0x2d, 0xea, 0x24, 0x03, 0x74, 0x44, 0x15, + 0x5a, 0xd4, 0x83, 0x9e, 0x46, 0x83, 0x92, 0xa2, + 0xa7, 0xc4, 0xb8, 0x6e, 0x9f, 0x21, 0xe1, 0x23, + 0x69, 0x87, 0xdd, 0x01, 0x26, 0xc0, 0x89, 0xb6, + 0x4c, 0xc4, 0x4d, 0xd2, 0xd0, 0xd0, 0x11, 0x0a, + 0x2a, 0x21, 0x38, 0x6a, 0x82, 0xd8, 0xaf, 0x39, + 0x97, 0x7a, 0x28, 0xab, 0x87, 0x60, 0xbc, 0xc3, + 0x84, 0xcb, 0xed, 0x3a, 0xc3, 0xa1, 0x96, 0xb6, + 0x9e, 0x68, 0x9a, 0x70, 0x35, 0x0a, 0x12, 0x6a, + 0x6c, 0xd0, 0x48, 0x73, 0x12, 0x12, 0x4c, 0xd1, + 0x33, 0x15, 0x45, 0xf0, 0x2a, 0x63, 0x87, 0xfe, + 0xf9, 0x63, 0x87, 0xfe, 0xf9, 0x63, 0x87, 0xf3, + 0x7f, 0x7f, 0xd5, 0x8d, 0x88, 0x4c, 0x99, 0x02, + 0xfd, 0x81, 0x11, 0x87, 0x08, 0x63, 0x55, 0xa3, + 0x4f, 0x8b, 0x39, 0x9f, 0xe0, 0x3a, 0x11, 0xe0, + 0x49, 0x9d, 0x1c, 0xd4, 0x7c, 0x1b, 0xc6, 0x9f, + 0x8c, 0x1a, 0x1c, 0xf8, 0x42, 0xd9, 0xbc, 0x08, + 0xba, 0x5c, 0x24, 0x5f, 0xe3, 0x6f, 0xc2, 0x01, + 0x95, 0x74, 0xed, 0x1f, 0xe4, 0x8d, 0xc3, 0xf4, + 0xad, 0x0b, 0xff, 0x00, 0x2c, 0x70, 0x6b, 0xfd, + 0xff, 0x00, 0xff, 0x00, 0x31, 0xc1, 0xf9, 0xb1, + 0xc1, 0xf9, 0xb1, 0xb2, 0x28, 0xda, 0x2f, 0x78, + 0x45, 0x97, 0xff, 0x00, 0x42, 0xa9, 0x27, 0xeb, + 0x8a, 0x49, 0x8b, 0x66, 0xdc, 0xab, 0x5b, 0x94, + 0x9b, 0xf2, 0xa1, 0x5b, 0x83, 0x26, 0x99, 0x12, + 0x55, 0xb3, 0x3a, 0x94, 0xc2, 0x4d, 0x6f, 0x70, + 0xb2, 0xe6, 0xd4, 0x4b, 0x77, 0x14, 0x19, 0x07, + 0x11, 0x09, 0xcd, 0x27, 0xcf, 0xa8, 0x51, 0x50, + 0x33, 0x45, 0x55, 0x4c, 0xf9, 0xb8, 0x59, 0xb1, + 0xa8, 0x35, 0xea, 0x74, 0xc9, 0x55, 0x49, 0xfc, + 0x26, 0xce, 0x11, 0xc1, 0x35, 0x8e, 0xc4, 0x5b, + 0x6a, 0x39, 0xb5, 0x14, 0xe4, 0x42, 0xe0, 0x23, + 0x02, 0x38, 0xd4, 0x9a, 0x8e, 0xb4, 0x22, 0x7e, + 0x6e, 0x4c, 0x92, 0x0c, 0x60, 0x4d, 0x2e, 0xea, + 0xfc, 0x84, 0xee, 0xd9, 0xea, 0x77, 0x1d, 0xbd, + 0x33, 0x8f, 0x7e, 0x3d, 0x32, 0x2d, 0x96, 0x55, + 0x45, 0x90, 0xdd, 0x2e, 0x1c, 0xa3, 0x7e, 0xa7, + 0x22, 0x1b, 0xa3, 0x50, 0x1a, 0x7f, 0xe4, 0x99, + 0x5e, 0xc8, 0x18, 0x94, 0x57, 0x40, 0x1b, 0x7c, + 0x41, 0x9d, 0x02, 0x8d, 0xb6, 0x22, 0xe9, 0x89, + 0xed, 0x4e, 0x3e, 0xfe, 0x9b, 0x61, 0xc9, 0x30, + 0xa8, 0xef, 0xdc, 0xa3, 0xcd, 0x03, 0x3a, 0xc1, + 0x8b, 0xd5, 0x67, 0x1a, 0x07, 0x21, 0x13, 0x05, + 0x51, 0x7b, 0x48, 0x93, 0x92, 0x34, 0xb8, 0x46, + 0x7a, 0xb3, 0xd2, 0x4e, 0x12, 0x6a, 0x25, 0xd4, + 0x67, 0x4f, 0x7a, 0x83, 0x03, 0x66, 0x34, 0x2e, + 0xcf, 0xd0, 0x0a, 0xbf, 0x1d, 0x6b, 0xf5, 0x54, + 0x66, 0x38, 0xd4, 0xa4, 0xd3, 0x77, 0x2e, 0xea, + 0x75, 0x55, 0xd5, 0x72, 0x2a, 0xa1, 0x39, 0x98, + 0xe6, 0x1a, 0x0b, 0xbd, 0xe7, 0xcf, 0xc3, 0x8b, + 0x7e, 0xee, 0x99, 0x52, 0x7a, 0xf3, 0xad, 0x41, + 0x88, 0xc5, 0x24, 0x68, 0xd6, 0x42, 0xc4, 0xa1, + 0xc3, 0x69, 0x05, 0xf6, 0xe0, 0xb5, 0x08, 0xde, + 0x76, 0x32, 0x9e, 0xf1, 0xbd, 0xdb, 0xee, 0x0b, + 0xa7, 0xad, 0x75, 0x34, 0x8d, 0x2a, 0x08, 0x02, + 0xb6, 0xa2, 0x8b, 0xaa, 0x99, 0x3e, 0xf0, 0x5b, + 0x4a, 0x85, 0x53, 0xb3, 0xc5, 0x25, 0x55, 0xaa, + 0xd5, 0xca, 0x94, 0x8b, 0xba, 0x53, 0x50, 0xa1, + 0x48, 0x92, 0xfc, 0xd3, 0x98, 0x7b, 0xa0, 0x98, + 0x0e, 0x36, 0x63, 0x1e, 0x31, 0x47, 0xd1, 0xdf, + 0xb4, 0x0c, 0xee, 0x58, 0xdd, 0x28, 0x38, 0xc2, + 0x1f, 0x3d, 0x41, 0xd9, 0xf1, 0xe1, 0xed, 0x3a, + 0x0d, 0xae, 0x4a, 0x26, 0xdc, 0xea, 0x2b, 0xeb, + 0x1a, 0x04, 0x68, 0xf2, 0x11, 0x89, 0x75, 0x16, + 0x59, 0x6e, 0xe6, 0x56, 0x40, 0xd8, 0x74, 0x88, + 0x4d, 0xa6, 0x5c, 0xdf, 0x6a, 0x42, 0x48, 0xc6, + 0x2e, 0x93, 0x1b, 0x97, 0x11, 0x57, 0x15, 0xcd, + 0xdb, 0x74, 0x1a, 0x95, 0x37, 0x80, 0xab, 0x4c, + 0xb5, 0xbb, 0x4e, 0x8e, 0x91, 0x1b, 0x62, 0x0d, + 0xba, 0xcd, 0x06, 0x27, 0xed, 0x5d, 0x4c, 0x54, + 0x63, 0xd4, 0xa5, 0x54, 0x22, 0x4f, 0x76, 0x63, + 0x6e, 0xe9, 0x25, 0x8c, 0x22, 0x66, 0x24, 0x2d, + 0x39, 0x1a, 0x31, 0x1a, 0x8b, 0x8f, 0x54, 0xfb, + 0x71, 0x01, 0x1a, 0x6d, 0xbb, 0x4f, 0xa6, 0x49, + 0xb2, 0xca, 0xc6, 0x12, 0x6d, 0xa9, 0xad, 0x46, + 0x6a, 0x96, 0xe1, 0x2c, 0x45, 0x57, 0x5c, 0x29, + 0x62, 0x22, 0xef, 0x1b, 0xe0, 0x16, 0x62, 0x9c, + 0x96, 0x22, 0x18, 0x16, 0xf9, 0xe2, 0x69, 0x10, + 0xa5, 0x37, 0x06, 0x5d, 0x76, 0x65, 0x47, 0x64, + 0xcf, 0x3c, 0xe3, 0xae, 0xd3, 0x1c, 0xa5, 0x3f, + 0x22, 0x63, 0xc9, 0x1d, 0x84, 0x60, 0xaa, 0xeb, + 0x41, 0x9c, 0xdb, 0x4a, 0x4f, 0xb6, 0xc8, 0xab, + 0x6e, 0xac, 0x75, 0x90, 0x82, 0xc0, 0x18, 0x36, + 0x43, 0xa8, 0x95, 0xb5, 0x21, 0x42, 0x4a, 0x5a, + 0xdc, 0xf4, 0xeb, 0x5e, 0xdf, 0x2b, 0x0d, 0x81, + 0x27, 0x65, 0x57, 0x6a, 0xdd, 0xb2, 0xb8, 0xcc, + 0x48, 0x92, 0x9e, 0x39, 0x09, 0x51, 0x70, 0x58, + 0x66, 0x76, 0xfc, 0x1d, 0x26, 0x23, 0x70, 0x9a, + 0x53, 0x7c, 0x1b, 0xa3, 0x6d, 0x9d, 0xc9, 0x6f, + 0x9a, 0xd7, 0xdf, 0xd4, 0x25, 0x37, 0x6e, 0xf7, + 0x56, 0xa8, 0x5b, 0xdc, 0x3b, 0x32, 0x18, 0x97, + 0x6d, 0xb8, 0xd1, 0x0b, 0x2c, 0x48, 0x62, 0x1d, + 0x5a, 0x43, 0x8d, 0x35, 0x35, 0xe6, 0x1a, 0x90, + 0xdb, 0xac, 0x2b, 0x91, 0xa5, 0xbe, 0xfb, 0xa0, + 0x86, 0xd9, 0x03, 0x72, 0x75, 0x26, 0x8c, 0x87, + 0x46, 0x36, 0xac, 0x27, 0x50, 0x97, 0x6b, 0x54, + 0x9f, 0x40, 0x59, 0x93, 0xed, 0x3a, 0x6b, 0xf3, + 0x1d, 0x00, 0x16, 0xf7, 0xaf, 0x1a, 0x99, 0xa9, + 0x28, 0x8f, 0x32, 0x64, 0xa6, 0x5a, 0x51, 0x39, + 0x85, 0x17, 0x4a, 0x73, 0x22, 0x26, 0x38, 0x3f, + 0x36, 0x38, 0x3f, 0x36, 0x38, 0x35, 0xf1, 0x7f, + 0x7f, 0xd5, 0x8d, 0x93, 0x46, 0x56, 0xf6, 0x81, + 0x40, 0x3f, 0x17, 0x64, 0xfe, 0x9a, 0x3d, 0x41, + 0x3f, 0x8d, 0xf6, 0xb5, 0x6e, 0x4b, 0xac, 0xd3, + 0xa9, 0xd3, 0xe1, 0xb4, 0x72, 0x0e, 0x90, 0xe4, + 0xbd, 0xf3, 0x2d, 0x8a, 0x9b, 0x9c, 0x34, 0xd1, + 0x8f, 0xbc, 0x74, 0x04, 0x73, 0x52, 0xdd, 0x1c, + 0x46, 0xb5, 0x22, 0x26, 0x7a, 0x08, 0x8b, 0xf8, + 0x2b, 0x9f, 0x06, 0x89, 0xcc, 0xb9, 0x66, 0x9c, + 0xca, 0x9e, 0x25, 0xf1, 0x63, 0x84, 0x4f, 0x36, + 0x38, 0x44, 0xf3, 0x7e, 0xbc, 0x44, 0x29, 0x50, + 0x1e, 0x49, 0x30, 0x65, 0xc8, 0x85, 0x20, 0x50, + 0x84, 0x64, 0x44, 0x90, 0xec, 0x67, 0xc4, 0x49, + 0x32, 0x21, 0x47, 0x59, 0x30, 0x71, 0x10, 0x93, + 0x98, 0x91, 0x0b, 0x22, 0x4e, 0x65, 0xc4, 0xd9, + 0xd5, 0x6a, 0x90, 0x03, 0x75, 0x1a, 0xad, 0x46, + 0xa0, 0xdb, 0x65, 0xad, 0xb0, 0x9d, 0x3e, 0x54, + 0xb0, 0x6c, 0x95, 0x32, 0x52, 0x01, 0x7d, 0xd7, + 0x10, 0x49, 0x53, 0x99, 0x54, 0x51, 0x17, 0x2e, + 0x6c, 0x25, 0x4e, 0xb4, 0x8c, 0x0c, 0x64, 0xac, + 0xd5, 0x12, 0x30, 0x32, 0x51, 0x82, 0x3a, 0x54, + 0xa6, 0x23, 0x01, 0x1d, 0xc1, 0x40, 0x38, 0xe0, + 0xd6, 0xfb, 0x76, 0x2c, 0x18, 0x22, 0x01, 0xb4, + 0x82, 0x80, 0x42, 0x88, 0x24, 0x2a, 0x98, 0x0a, + 0x95, 0x69, 0xb1, 0x8a, 0x2d, 0xd6, 0x6a, 0x8d, + 0x8c, 0x1c, 0xd2, 0x10, 0xb7, 0x52, 0x96, 0x03, + 0x0d, 0x09, 0xb2, 0x64, 0x92, 0x22, 0x0b, 0xc8, + 0x91, 0xd1, 0x5a, 0x22, 0x69, 0x77, 0x3a, 0x33, + 0x6c, 0x94, 0x17, 0xbd, 0x55, 0x4c, 0x4b, 0x91, + 0x50, 0xa8, 0x23, 0x63, 0x3e, 0xa3, 0x36, 0x68, + 0xb4, 0x4e, 0x9b, 0x43, 0x32, 0x63, 0xf2, 0x51, + 0xa3, 0x7c, 0xb5, 0xbe, 0x6d, 0xa3, 0xc6, 0x68, + 0x04, 0xf1, 0xf7, 0xee, 0x90, 0xe4, 0xae, 0x17, + 0x7c, 0x6a, 0xab, 0x82, 0x59, 0x45, 0x15, 0xb8, + 0x25, 0x2e, 0x41, 0x42, 0x65, 0xc2, 0x79, 0xa8, + 0x65, 0x21, 0xc5, 0x8a, 0xd3, 0xa7, 0x9e, 0xb7, + 0x5b, 0x8e, 0xa5, 0xba, 0x07, 0x0f, 0x35, 0xd4, + 0x62, 0x08, 0x45, 0x9a, 0xe6, 0xab, 0x86, 0x16, + 0x54, 0x50, 0x90, 0xdc, 0x69, 0x72, 0x23, 0xb7, + 0x2d, 0xa5, 0x62, 0x50, 0x31, 0x21, 0xc6, 0x42, + 0x4b, 0x05, 0xf0, 0x99, 0x90, 0x2d, 0x90, 0xa3, + 0xcd, 0x2e, 0x6b, 0x9b, 0x6e, 0x21, 0x02, 0xfc, + 0x69, 0x88, 0x52, 0xaa, 0x54, 0xdd, 0xe7, 0x63, + 0xaa, 0x53, 0xa9, 0xfb, 0xec, 0xb7, 0xbc, 0x0c, + 0xd9, 0x11, 0x37, 0xba, 0x73, 0xd3, 0xbc, 0xdc, + 0x38, 0xde, 0xbc, 0xb3, 0x5c, 0xb5, 0x67, 0x96, + 0x7c, 0xd8, 0x89, 0x22, 0xa3, 0x00, 0x9e, 0x28, + 0x35, 0x19, 0xb0, 0x8a, 0x42, 0x69, 0x90, 0x51, + 0x26, 0x3f, 0x18, 0x9f, 0x1e, 0x75, 0xd2, 0xf2, + 0xb2, 0x60, 0xae, 0x8e, 0x6a, 0xab, 0x91, 0xea, + 0x4c, 0xd5, 0x57, 0xe3, 0x5c, 0x2c, 0x8a, 0x89, + 0x42, 0x0a, 0x69, 0x54, 0x66, 0x95, 0x39, 0xb5, + 0xd4, 0xdd, 0x3c, 0xa6, 0x3e, 0xb0, 0x80, 0xb5, + 0x11, 0xe6, 0x11, 0x14, 0xf7, 0x02, 0xba, 0xc8, + 0x8b, 0x31, 0x6d, 0x17, 0x51, 0x12, 0xf8, 0x55, + 0x71, 0xc5, 0xd4, 0xd2, 0x12, 0xd3, 0x46, 0xa7, + 0x3c, 0x69, 0xc5, 0xe1, 0xa7, 0xa4, 0xd9, 0x09, + 0x05, 0x7b, 0xf4, 0x77, 0x9e, 0x26, 0xf3, 0x70, + 0xbf, 0x94, 0x44, 0x73, 0x9c, 0x3e, 0x1a, 0x21, + 0x7c, 0x24, 0xcf, 0x0c, 0x54, 0x6b, 0x31, 0x9a, + 0x8e, 0xc4, 0x6a, 0xcd, 0x52, 0x3b, 0x11, 0x0c, + 0x9c, 0x88, 0xcb, 0x15, 0x19, 0x6c, 0xb5, 0x15, + 0xc3, 0x47, 0x44, 0xce, 0x3b, 0x6d, 0xba, 0x20, + 0xc1, 0x98, 0xbe, 0xf8, 0x91, 0x34, 0x82, 0xa4, + 0x2f, 0x3a, 0x8a, 0xaa, 0x8e, 0x1e, 0x71, 0x25, + 0xd5, 0x20, 0x6f, 0xb8, 0x0a, 0xa5, 0x42, 0x17, + 0x10, 0xb9, 0xc8, 0xe1, 0x27, 0x49, 0x8d, 0xbf, + 0x5e, 0x7e, 0x77, 0xb7, 0x2e, 0x06, 0xf5, 0x7b, + 0xe2, 0xf8, 0x79, 0xf8, 0x57, 0xc6, 0xb8, 0x12, + 0x96, 0xdb, 0x12, 0x22, 0x84, 0xb9, 0x01, 0x1a, + 0x62, 0xb6, 0x52, 0xe3, 0x8c, 0x87, 0x05, 0x89, + 0x44, 0xd1, 0xef, 0x1a, 0x29, 0x2c, 0xa1, 0x6e, + 0xdf, 0x56, 0xdc, 0xef, 0xdb, 0x57, 0x44, 0x94, + 0x0f, 0xbe, 0x1c, 0x97, 0x9f, 0x12, 0x4a, 0x5c, + 0xcd, 0xcf, 0x17, 0x32, 0x44, 0xae, 0x19, 0x91, + 0x8f, 0x1f, 0x89, 0x90, 0xe3, 0xfc, 0x3c, 0x70, + 0xf8, 0x0c, 0x31, 0xbd, 0x22, 0xdd, 0x32, 0x1f, + 0xc1, 0x69, 0xbd, 0x20, 0x3f, 0x10, 0xe3, 0x84, + 0x4f, 0x37, 0xeb, 0xc7, 0x08, 0x9e, 0x6f, 0xd7, + 0x8e, 0x0c, 0x7c, 0xdf, 0x46, 0x36, 0x55, 0x6b, + 0xcc, 0x72, 0xbc, 0xc5, 0x78, 0x9a, 0x26, 0x60, + 0x53, 0x9b, 0x93, 0xa1, 0xe2, 0x15, 0x44, 0x92, + 0xfc, 0x98, 0xee, 0xc5, 0x16, 0x99, 0x55, 0x44, + 0xd6, 0x80, 0x0f, 0x1b, 0xae, 0x18, 0xaa, 0xa0, + 0xa8, 0x80, 0x73, 0xab, 0x9c, 0xdf, 0xc6, 0xe5, + 0x16, 0x29, 0xae, 0xa3, 0x8c, 0xc1, 0x97, 0x8c, + 0x99, 0x6c, 0x97, 0xf5, 0xa8, 0xe7, 0x8e, 0x0a, + 0x1f, 0xe8, 0x91, 0xbd, 0x03, 0x5e, 0xee, 0x38, + 0x28, 0x7f, 0xa2, 0x46, 0xf4, 0x0d, 0x7b, 0xb8, + 0xe0, 0xa1, 0xfe, 0x89, 0x1b, 0xd0, 0x35, 0xee, + 0xe3, 0x82, 0x87, 0xfa, 0x24, 0x6f, 0x40, 0xd7, + 0xbb, 0x8e, 0x0a, 0x1f, 0xe8, 0x91, 0xbd, 0x03, + 0x5e, 0xee, 0x38, 0x28, 0x7f, 0xa2, 0x46, 0xf4, + 0x0d, 0x7b, 0xb8, 0xe0, 0xa1, 0xfe, 0x89, 0x1b, + 0xd0, 0x35, 0xee, 0xe3, 0x82, 0x87, 0xfa, 0x24, + 0x6f, 0x40, 0xd7, 0xbb, 0x8e, 0x0a, 0x1f, 0xe8, + 0x91, 0xbd, 0x03, 0x5e, 0xee, 0x38, 0x28, 0x7f, + 0xa2, 0x46, 0xf4, 0x0d, 0x7b, 0xb8, 0xe0, 0xa1, + 0xfe, 0x89, 0x1b, 0xd0, 0x35, 0xee, 0xe3, 0x82, + 0x87, 0xfa, 0x24, 0x6f, 0x40, 0xd7, 0xbb, 0x8e, + 0x0a, 0x1f, 0xe8, 0x91, 0xbd, 0x03, 0x5e, 0xee, + 0x38, 0x28, 0x7f, 0xa2, 0x46, 0xf4, 0x0d, 0x7b, + 0xb8, 0xe0, 0xa1, 0xfe, 0x89, 0x1b, 0xd0, 0x35, + 0xee, 0xe3, 0x82, 0x87, 0xfa, 0x24, 0x6f, 0x40, + 0xd7, 0xbb, 0x8e, 0x0a, 0x1f, 0xe8, 0x91, 0xbd, + 0x03, 0x5e, 0xee, 0x38, 0x28, 0x7f, 0xa2, 0x46, + 0xf4, 0x0d, 0x7b, 0xb8, 0xe0, 0xa1, 0xfe, 0x89, + 0x1b, 0xd0, 0x35, 0xee, 0xe3, 0x82, 0x87, 0xfa, + 0x24, 0x6f, 0x40, 0xd7, 0xbb, 0x84, 0x44, 0x44, + 0xc9, 0x11, 0x11, 0x3c, 0x49, 0xcc, 0x9f, 0xfb, + 0xba, 0x7f, 0xff, 0xc4, 0x00, 0x61, 0x11, 0x00, + 0x02, 0x01, 0x02, 0x03, 0x02, 0x06, 0x0d, 0x06, + 0x06, 0x0e, 0x08, 0x04, 0x04, 0x07, 0x00, 0x01, + 0x02, 0x03, 0x04, 0x05, 0x00, 0x11, 0x12, 0x13, + 0x21, 0x06, 0x14, 0x16, 0x22, 0x31, 0x54, 0x15, + 0x17, 0x41, 0x51, 0x55, 0x61, 0x92, 0x93, 0x94, + 0xd1, 0xd3, 0xd5, 0xf0, 0x23, 0x32, 0x53, 0x71, + 0x95, 0xd4, 0x07, 0x10, 0x33, 0x42, 0x52, 0xd2, + 0x20, 0x24, 0x40, 0x50, 0x62, 0x72, 0x74, 0x81, + 0xa1, 0xb1, 0xb3, 0xb4, 0xe1, 0xe2, 0x30, 0x34, + 0x36, 0x43, 0x73, 0x82, 0x91, 0xa4, 0x25, 0x64, + 0x80, 0xc1, 0x35, 0x44, 0x83, 0x90, 0x63, 0x65, + 0x70, 0x75, 0xb2, 0xc2, 0xc4, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x02, 0x01, 0x01, 0x3f, 0x01, 0xff, + 0x00, 0xd4, 0x2d, 0x7d, 0xe6, 0xd9, 0x6c, 0xc8, + 0x56, 0xd5, 0xc7, 0x13, 0x91, 0x98, 0x88, 0x67, + 0x24, 0xc4, 0x77, 0x0e, 0xca, 0x30, 0xce, 0x14, + 0xe4, 0x40, 0x66, 0x01, 0x49, 0x04, 0x6a, 0xdd, + 0x83, 0xc3, 0x7b, 0x18, 0xfc, 0xea, 0xa3, 0xe3, + 0x14, 0xe7, 0xff, 0x00, 0x76, 0x07, 0xfa, 0x31, + 0xcb, 0x8b, 0x1f, 0x7e, 0xaf, 0xd1, 0xff, 0x00, + 0xcf, 0x8e, 0x5c, 0x58, 0xfb, 0xf5, 0x7e, 0x8f, + 0xfe, 0x7c, 0x72, 0xe2, 0xc7, 0xdf, 0xab, 0xf4, + 0x7f, 0xf3, 0xe3, 0x97, 0x16, 0x3e, 0xfd, 0x5f, + 0xa3, 0xff, 0x00, 0x9f, 0x1c, 0xb8, 0xb1, 0xf7, + 0xea, 0xfd, 0x1f, 0xfc, 0xf8, 0xe5, 0xc5, 0x8f, + 0xbf, 0x57, 0xe8, 0xff, 0x00, 0xe7, 0xc7, 0x2e, + 0x2c, 0x7d, 0xfa, 0xbf, 0x47, 0xff, 0x00, 0x3e, + 0x39, 0x71, 0x63, 0xef, 0xd5, 0xfa, 0x3f, 0xf9, + 0xf1, 0xcb, 0x8b, 0x1f, 0x7e, 0xaf, 0xd1, 0xff, + 0x00, 0xcf, 0x8e, 0x5c, 0x58, 0xfb, 0xf5, 0x7e, + 0x8f, 0xfe, 0x7c, 0x72, 0xe2, 0xc7, 0xdf, 0xab, + 0xf4, 0x7f, 0xf3, 0xe3, 0x97, 0x16, 0x3e, 0xfd, + 0x5f, 0xa3, 0xff, 0x00, 0x9f, 0x1c, 0xb8, 0xb1, + 0xf7, 0xea, 0xfd, 0x1f, 0xfc, 0xf8, 0xe5, 0xc5, + 0x8f, 0xbf, 0x57, 0xe8, 0xff, 0x00, 0xe7, 0xc7, + 0x2e, 0x2c, 0x7d, 0xfa, 0xbf, 0x47, 0xff, 0x00, + 0x3e, 0x39, 0x71, 0x63, 0xef, 0xd5, 0xfa, 0x3f, + 0xf9, 0xf1, 0xcb, 0x8b, 0x1f, 0x7e, 0xaf, 0xd1, + 0xff, 0x00, 0xcf, 0x8e, 0x5c, 0x58, 0xfb, 0xf5, + 0x7e, 0x8f, 0xfe, 0x7c, 0x51, 0x70, 0x9a, 0xcb, + 0x5c, 0xeb, 0x14, 0x35, 0x8a, 0x92, 0xb1, 0xc9, + 0x63, 0x9d, 0x5a, 0x02, 0xc7, 0x3c, 0x80, 0x56, + 0x70, 0x11, 0x98, 0xfe, 0x6a, 0x87, 0xd6, 0x7b, + 0x8b, 0xfb, 0xf1, 0x78, 0xad, 0x6b, 0x75, 0xb2, + 0xb6, 0xb1, 0x00, 0x32, 0x41, 0x09, 0x31, 0xea, + 0xde, 0xbb, 0x56, 0x22, 0x38, 0xcb, 0x0e, 0xea, + 0x87, 0x65, 0x2c, 0x37, 0x66, 0x01, 0x19, 0x8e, + 0x9c, 0x4d, 0x34, 0xb5, 0x12, 0xbc, 0xd3, 0x3b, + 0x4b, 0x2c, 0x8c, 0x5d, 0xe4, 0x73, 0x9b, 0x33, + 0x1e, 0xe9, 0x3f, 0x19, 0x0d, 0xc3, 0x77, 0xe3, + 0xc8, 0xf7, 0xbf, 0x14, 0x71, 0x49, 0x33, 0xa4, + 0x71, 0x46, 0xf2, 0x49, 0x21, 0xd2, 0x88, 0x8a, + 0x59, 0x9c, 0xf7, 0x95, 0x46, 0x64, 0x9f, 0xab, + 0x15, 0x14, 0x73, 0xd2, 0x84, 0x69, 0x55, 0x0a, + 0x49, 0x98, 0x49, 0x61, 0x9e, 0x0a, 0x98, 0x59, + 0x97, 0xe7, 0x20, 0x9e, 0x9a, 0x49, 0x62, 0xda, + 0x2e, 0x6a, 0x5a, 0x3d, 0x7a, 0xd5, 0x59, 0x19, + 0x94, 0x2b, 0xa9, 0x3f, 0xe9, 0xb8, 0x17, 0x71, + 0x9e, 0xba, 0xdb, 0x24, 0x55, 0x0e, 0xd2, 0x3d, + 0x1c, 0xa2, 0x25, 0x91, 0x8e, 0x6c, 0xd1, 0x32, + 0x86, 0x40, 0xc4, 0xef, 0x25, 0x39, 0xca, 0x09, + 0xdf, 0xa7, 0x48, 0xee, 0x7e, 0x2a, 0x3a, 0x39, + 0xeb, 0xea, 0x61, 0xa4, 0xa6, 0x4d, 0x73, 0xce, + 0xda, 0x51, 0x7a, 0x07, 0x46, 0x65, 0x98, 0xfe, + 0x6a, 0x22, 0x82, 0xce, 0xdd, 0xc5, 0x04, 0xe2, + 0x2f, 0xc1, 0xc1, 0x28, 0x0c, 0xf7, 0x75, 0x8e, + 0x4c, 0x86, 0xa5, 0x8a, 0x8b, 0x6a, 0x80, 0xf7, + 0x40, 0x77, 0xaa, 0x84, 0x9c, 0xbb, 0xfa, 0x06, + 0x78, 0xed, 0x6f, 0x1f, 0x86, 0xdb, 0xec, 0xd5, + 0xf7, 0x86, 0x3b, 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, + 0x35, 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, + 0xbe, 0xcd, 0x5f, 0x78, 0x63, 0xb5, 0xbc, 0x7e, + 0x1b, 0x6f, 0xb3, 0x57, 0xde, 0x18, 0xed, 0x6f, + 0x1f, 0x86, 0xdb, 0xec, 0xd5, 0xf7, 0x86, 0x3b, + 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, 0x35, 0x7d, 0xe1, + 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, + 0x78, 0x63, 0xb5, 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, + 0x57, 0xde, 0x18, 0xed, 0x6f, 0x1f, 0x86, 0xdb, + 0xec, 0xd5, 0xf7, 0x86, 0x3b, 0x5b, 0xc7, 0xe1, + 0xb6, 0xfb, 0x35, 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, + 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, 0x78, 0x63, 0xb5, + 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, 0x57, 0xde, 0x18, + 0xed, 0x6f, 0x1f, 0x86, 0xdb, 0xec, 0xd5, 0xf7, + 0x86, 0x3b, 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, 0x35, + 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, + 0xcd, 0x5f, 0x78, 0x63, 0xb5, 0xbc, 0x7e, 0x1b, + 0x6f, 0xb3, 0x57, 0xde, 0x18, 0xed, 0x6f, 0x1f, + 0x86, 0xdb, 0xec, 0xd5, 0xf7, 0x86, 0x3b, 0x5b, + 0xc7, 0xe1, 0xb6, 0xfb, 0x35, 0x7d, 0xe1, 0x8e, + 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, 0x78, + 0x63, 0xb5, 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, 0x57, + 0xde, 0x18, 0xbf, 0xf0, 0x5a, 0xb2, 0xc4, 0x16, + 0x63, 0x22, 0x55, 0x52, 0x3b, 0x04, 0x13, 0xc6, + 0xa5, 0x0a, 0x39, 0x04, 0x85, 0x96, 0x33, 0x9e, + 0x8d, 0x59, 0x1d, 0x24, 0x33, 0x29, 0xe8, 0xcc, + 0x1d, 0xdf, 0x8a, 0xc7, 0xc0, 0xca, 0xcb, 0xb5, + 0x3a, 0xd6, 0x4d, 0x50, 0x94, 0x34, 0xd2, 0x6f, + 0x84, 0xb4, 0x66, 0x59, 0xa5, 0x50, 0x72, 0xd6, + 0x22, 0xd7, 0x18, 0x54, 0x39, 0x73, 0x4b, 0x38, + 0x2e, 0x37, 0x81, 0xa4, 0x86, 0x3d, 0xad, 0xe3, + 0xf0, 0xdb, 0x7d, 0x9a, 0xbe, 0xf0, 0xc7, 0x6b, + 0x78, 0xfc, 0x36, 0xdf, 0x66, 0xaf, 0xbc, 0x31, + 0xda, 0xde, 0x3f, 0x0d, 0xb7, 0xd9, 0xab, 0xef, + 0x0c, 0x76, 0xb7, 0x8f, 0xc3, 0x6d, 0xf6, 0x6a, + 0xfb, 0xc3, 0x1d, 0xad, 0xe3, 0xf0, 0xdb, 0x7d, + 0x9a, 0xbe, 0xf0, 0xc7, 0x6b, 0x78, 0xfc, 0x36, + 0xdf, 0x66, 0xaf, 0xbc, 0x31, 0xda, 0xde, 0x3f, + 0x0d, 0xb7, 0xd9, 0xab, 0xef, 0x0c, 0x76, 0xb7, + 0x8f, 0xc3, 0x6d, 0xf6, 0x6a, 0xfb, 0xc3, 0x1d, + 0xad, 0xe3, 0xf0, 0xdb, 0x7d, 0x9a, 0xbe, 0xf0, + 0xc7, 0x6b, 0x78, 0xfc, 0x36, 0xdf, 0x66, 0xaf, + 0xbc, 0x31, 0xda, 0xde, 0x3f, 0x0d, 0xb7, 0xd9, + 0xab, 0xef, 0x0c, 0x76, 0xb7, 0x8f, 0xc3, 0x6d, + 0xf6, 0x6a, 0xfb, 0xc3, 0x1d, 0xad, 0xe3, 0xf0, + 0xdb, 0x7d, 0x9a, 0xbe, 0xf0, 0xc7, 0x6b, 0x78, + 0xfc, 0x36, 0xdf, 0x66, 0xaf, 0xbc, 0x31, 0xda, + 0xde, 0x3f, 0x0d, 0xb7, 0xd9, 0xab, 0xef, 0x0c, + 0x76, 0xb7, 0x8f, 0xc3, 0x6d, 0xf6, 0x6a, 0xfb, + 0xc3, 0x1d, 0xad, 0xe3, 0xf0, 0xdb, 0x7d, 0x9a, + 0xbe, 0xf0, 0xc7, 0x6b, 0x78, 0xfc, 0x36, 0xdf, + 0x66, 0xaf, 0xbc, 0x31, 0xda, 0xde, 0x3f, 0x0d, + 0xb7, 0xd9, 0xab, 0xef, 0x0c, 0x76, 0xb7, 0x8f, + 0xc3, 0x6d, 0xf6, 0x6a, 0xfb, 0xc3, 0x0d, 0xf8, + 0x37, 0x5c, 0x8e, 0x8b, 0xd6, 0x6d, 0xdc, 0x0d, + 0x6f, 0xd2, 0xbf, 0xce, 0xc2, 0xb5, 0xc8, 0xf2, + 0x4e, 0x2e, 0xd6, 0x9a, 0xbb, 0x35, 0x59, 0xa4, + 0xab, 0x0b, 0x9e, 0x9d, 0x71, 0xc8, 0x84, 0x98, + 0xe6, 0x8c, 0x92, 0x03, 0xa1, 0x20, 0x1e, 0x90, + 0x43, 0x02, 0x01, 0x56, 0x04, 0x1f, 0xd9, 0xf0, + 0xaf, 0xfd, 0x9f, 0xb9, 0x7f, 0xc3, 0x8b, 0xfb, + 0xcc, 0x3f, 0x8b, 0x83, 0xd3, 0x25, 0xb5, 0x2a, + 0xae, 0xf2, 0x8c, 0xd6, 0x39, 0x69, 0x28, 0x63, + 0x04, 0x6e, 0x7e, 0x33, 0x30, 0x92, 0xaf, 0x2f, + 0xe1, 0x2d, 0x1c, 0x32, 0x0e, 0x8d, 0xdb, 0x55, + 0x38, 0xb6, 0xd1, 0xd5, 0xd2, 0x5d, 0x6f, 0x94, + 0x56, 0xf6, 0x6e, 0x35, 0x1d, 0x1d, 0x42, 0x52, + 0x32, 0x48, 0xa8, 0xc4, 0x1a, 0x8a, 0x76, 0x89, + 0x96, 0x47, 0x65, 0x51, 0x9c, 0x27, 0x3c, 0xcb, + 0x01, 0xfc, 0xf8, 0xaa, 0x37, 0x7a, 0x7a, 0x0b, + 0x84, 0x5c, 0x22, 0x9c, 0x32, 0xcd, 0x4e, 0x9c, + 0x46, 0x09, 0xea, 0x69, 0xea, 0x2a, 0x5a, 0xac, + 0x4c, 0xba, 0x26, 0xa7, 0x58, 0xa4, 0x91, 0xd1, + 0x23, 0x51, 0x20, 0x9e, 0x43, 0xa5, 0x0a, 0x9d, + 0x1c, 0xe6, 0x20, 0x0e, 0x10, 0x01, 0x51, 0x6a, + 0xb7, 0x30, 0x1f, 0x29, 0x6e, 0x86, 0xdf, 0x13, + 0x78, 0xe0, 0xaf, 0xa1, 0x8e, 0x48, 0xb3, 0xdd, + 0xdc, 0x9a, 0x9e, 0x50, 0x37, 0xee, 0xd5, 0xe3, + 0xc5, 0x76, 0xce, 0x1b, 0x7d, 0xae, 0x8b, 0x34, + 0x43, 0x4e, 0xd5, 0x54, 0x21, 0x9d, 0x91, 0x17, + 0x6c, 0x89, 0x43, 0x2d, 0x5c, 0x6e, 0xee, 0x44, + 0x6b, 0xb7, 0x66, 0xaa, 0xa6, 0xcd, 0xd9, 0x50, + 0xed, 0x34, 0x4a, 0x55, 0x19, 0xc8, 0xbc, 0x9c, + 0x92, 0x52, 0xd4, 0xf2, 0xd1, 0x6d, 0xcc, 0x1b, + 0x3a, 0x5a, 0x94, 0x58, 0xaa, 0x98, 0xc3, 0x2d, + 0x59, 0x35, 0x12, 0x44, 0xb1, 0xc3, 0xf2, 0x62, + 0x39, 0x16, 0x18, 0x65, 0x30, 0x44, 0x19, 0x0e, + 0xc1, 0x0c, 0xcf, 0x4f, 0x3c, 0x9f, 0xe9, 0xff, + 0x00, 0x07, 0xdf, 0xea, 0x97, 0x1f, 0xe5, 0x10, + 0xff, 0x00, 0x66, 0x7f, 0x17, 0x00, 0x72, 0xec, + 0xcc, 0xec, 0x46, 0x65, 0x2d, 0xb3, 0x15, 0xf1, + 0x31, 0xa8, 0xa4, 0x42, 0x47, 0xfc, 0x8e, 0xc3, + 0xea, 0x27, 0x1b, 0x5c, 0x6d, 0x71, 0xb5, 0xc6, + 0xd7, 0x1b, 0x5c, 0x6d, 0x71, 0xb5, 0xc0, 0xe1, + 0x15, 0x5f, 0x29, 0x0d, 0xa1, 0xe2, 0xa7, 0xe2, + 0x79, 0xac, 0x6b, 0x28, 0x49, 0x78, 0xc6, 0xd5, + 0xe9, 0x8c, 0xf1, 0x86, 0x63, 0x36, 0xcb, 0x26, + 0x65, 0x61, 0xba, 0x11, 0xb8, 0x77, 0xf7, 0xe2, + 0xcf, 0xc2, 0x49, 0xee, 0x15, 0xf7, 0x28, 0x6a, + 0x05, 0x24, 0x54, 0x54, 0x91, 0xcb, 0x34, 0x13, + 0xae, 0xb4, 0x26, 0x04, 0xa9, 0x31, 0x2c, 0xb3, + 0xcb, 0x24, 0xed, 0x16, 0x9d, 0x9a, 0x97, 0x66, + 0x54, 0x41, 0xdd, 0xdc, 0xbb, 0xb1, 0x0f, 0x08, + 0x2d, 0x35, 0x14, 0xf5, 0x15, 0x50, 0xd6, 0xc7, + 0x24, 0x14, 0x83, 0x3a, 0x96, 0x09, 0x28, 0x68, + 0x97, 0x76, 0x4c, 0x62, 0x68, 0x84, 0xc5, 0x4e, + 0x79, 0x2b, 0xac, 0x6c, 0xac, 0x43, 0x00, 0x49, + 0x56, 0x00, 0x70, 0xa2, 0xc6, 0x76, 0xbf, 0xf8, + 0x94, 0x1f, 0x22, 0x8b, 0x24, 0x9b, 0xa5, 0x1c, + 0xd6, 0xd2, 0x06, 0x8c, 0xe2, 0xf9, 0x56, 0xcd, + 0x80, 0x68, 0xe1, 0xd7, 0x22, 0x1c, 0xc3, 0xa8, + 0xd2, 0xd9, 0x3d, 0xee, 0xdb, 0x1d, 0x1a, 0xdc, + 0x1e, 0xb2, 0x25, 0xa3, 0x93, 0x2d, 0x13, 0xf3, + 0x88, 0x72, 0x4e, 0x5a, 0x56, 0x30, 0x86, 0x52, + 0xfb, 0x8e, 0x71, 0xec, 0xf5, 0xae, 0x4d, 0xa9, + 0x46, 0x93, 0x97, 0x67, 0xad, 0x7c, 0x4f, 0xb2, + 0x1c, 0x72, 0x33, 0x47, 0xac, 0x46, 0x67, 0x0b, + 0x23, 0x05, 0x90, 0x90, 0xa1, 0x1e, 0x31, 0x19, + 0x96, 0x36, 0xde, 0x37, 0x3c, 0x6b, 0x92, 0x90, + 0xc7, 0x25, 0x20, 0xe2, 0x8e, 0xfd, 0x6c, 0xaf, + 0x91, 0xe2, 0xa4, 0xab, 0x59, 0x9e, 0x38, 0xcc, + 0xac, 0x36, 0x73, 0x46, 0x36, 0x4a, 0xda, 0x1a, + 0x40, 0xd2, 0xc5, 0x1a, 0x3a, 0x86, 0xdc, 0x4a, + 0x33, 0x77, 0xfa, 0x37, 0xe2, 0x96, 0xbe, 0x0a, + 0xd8, 0x12, 0xa6, 0x96, 0x4d, 0xac, 0x12, 0x67, + 0xa2, 0x40, 0xae, 0x9a, 0xb4, 0x92, 0xa7, 0x9b, + 0x22, 0x23, 0xf4, 0x83, 0xd2, 0xbb, 0xfb, 0x9b, + 0xb1, 0xb5, 0xc6, 0xd7, 0x1b, 0x5c, 0x6d, 0x71, + 0xb5, 0xc6, 0xd7, 0x1c, 0x2c, 0x60, 0xfc, 0x1e, + 0xb9, 0x02, 0x3a, 0x12, 0x9d, 0x87, 0x88, 0x8a, + 0xba, 0x7c, 0x88, 0xf8, 0xe8, 0xcf, 0xf1, 0x5b, + 0xd8, 0x25, 0x05, 0x12, 0xa8, 0xc8, 0x0a, 0x4a, + 0x60, 0x07, 0xff, 0x00, 0x45, 0x31, 0xb5, 0xc6, + 0xd7, 0x17, 0x4b, 0xb5, 0xe2, 0x3b, 0xa4, 0x16, + 0xdb, 0x54, 0x36, 0xf9, 0x1a, 0x5a, 0x36, 0xaa, + 0x63, 0x5a, 0x27, 0xdd, 0xa2, 0x56, 0x46, 0x01, + 0xa2, 0x9a, 0x31, 0x96, 0x5a, 0x72, 0x05, 0x09, + 0xcf, 0x3d, 0xfd, 0xcc, 0x5a, 0xef, 0xd2, 0xca, + 0x97, 0x14, 0xbb, 0xa5, 0x35, 0x15, 0x45, 0xae, + 0x40, 0xb5, 0x52, 0x44, 0xe7, 0x8a, 0x94, 0x7c, + 0xcc, 0x6e, 0x9a, 0xd9, 0xd9, 0x77, 0x00, 0xba, + 0x4b, 0xb9, 0x66, 0xc8, 0x8c, 0x8b, 0x6c, 0x96, + 0x2e, 0x11, 0x5a, 0x27, 0xa7, 0x9e, 0xae, 0x2a, + 0xd4, 0x78, 0x29, 0x74, 0xf1, 0x86, 0x11, 0xcf, + 0xae, 0x20, 0xc4, 0x2a, 0xb3, 0x42, 0x61, 0x13, + 0xe8, 0x25, 0x80, 0xd6, 0x23, 0x29, 0xf3, 0xb9, + 0xdc, 0xd6, 0xcb, 0xb2, 0x34, 0xbb, 0x61, 0x4f, + 0xb6, 0x5d, 0xb3, 0x53, 0x71, 0xb1, 0x1e, 0x4d, + 0x99, 0xa6, 0x0c, 0x17, 0x6b, 0x9e, 0x9d, 0x39, + 0x66, 0x46, 0xec, 0xf5, 0xff, 0x00, 0x07, 0x0f, + 0xc2, 0x4b, 0x3c, 0x71, 0x53, 0xcf, 0x25, 0x7c, + 0x69, 0x15, 0x56, 0xbe, 0x2e, 0xcd, 0x1c, 0xe0, + 0xc9, 0xa1, 0xcc, 0x6c, 0xda, 0x36, 0x3b, 0x44, + 0x40, 0xe0, 0xae, 0xd2, 0x45, 0x58, 0xce, 0x5b, + 0x98, 0xe2, 0xa6, 0xfd, 0x6b, 0xa4, 0x95, 0x20, + 0xa8, 0xac, 0x48, 0xe5, 0x91, 0x23, 0x92, 0x34, + 0xd1, 0x2c, 0x9b, 0x44, 0x95, 0xb4, 0x46, 0xc8, + 0xd1, 0x44, 0xe8, 0xc1, 0x98, 0x6e, 0xd2, 0xc4, + 0xe5, 0xce, 0x39, 0x2e, 0xfc, 0x70, 0x82, 0xf5, + 0x3d, 0xa6, 0x9a, 0x09, 0x29, 0xe3, 0x85, 0xa4, + 0xa8, 0xa9, 0x4a, 0x7d, 0xad, 0x56, 0xd3, 0x8a, + 0xc1, 0xa8, 0x16, 0xd7, 0x30, 0x8b, 0x29, 0x08, + 0x21, 0x48, 0x19, 0x32, 0xe5, 0xbd, 0xce, 0x7a, + 0x34, 0x35, 0x8a, 0xef, 0x3d, 0xd2, 0x89, 0xa7, + 0xa8, 0x8a, 0x38, 0xe4, 0x8e, 0xa2, 0x68, 0x0b, + 0x53, 0x96, 0x34, 0xd3, 0xec, 0xc8, 0xf9, 0x6a, + 0x72, 0xf9, 0xb6, 0xcc, 0xe7, 0xa7, 0x7b, 0x3e, + 0xf5, 0x27, 0x56, 0xfd, 0x2b, 0x73, 0xbc, 0x57, + 0x47, 0x59, 0x15, 0xb2, 0xd3, 0x4d, 0x0d, 0x45, + 0x6b, 0xc0, 0x6a, 0x65, 0x7a, 0xa6, 0x65, 0xa6, + 0xa7, 0x80, 0x3e, 0x80, 0x5c, 0x46, 0x51, 0xdc, + 0xb9, 0xcd, 0x46, 0x97, 0x5d, 0x27, 0x4e, 0xe7, + 0x04, 0x81, 0x27, 0x09, 0x2e, 0x70, 0x5a, 0xee, + 0x73, 0x54, 0x50, 0xc5, 0x05, 0xca, 0xd9, 0x3d, + 0x3c, 0x2e, 0x19, 0x66, 0x7a, 0x19, 0xb6, 0xf2, + 0xc6, 0xa1, 0xe2, 0x22, 0x45, 0x7f, 0xc9, 0x49, + 0xab, 0x46, 0xdd, 0x88, 0xce, 0x39, 0x09, 0xc9, + 0xf4, 0x0a, 0xbb, 0xf5, 0xb2, 0x80, 0xc4, 0x95, + 0xd5, 0x91, 0x53, 0xcb, 0x32, 0x86, 0x54, 0x22, + 0x47, 0x39, 0x1c, 0x86, 0xa6, 0x11, 0xa4, 0x9b, + 0x34, 0xcf, 0x70, 0x69, 0x34, 0xa9, 0xc8, 0xe4, + 0x4e, 0x96, 0xca, 0xae, 0xf3, 0x6f, 0xa0, 0x86, + 0x3a, 0x8a, 0xba, 0xb8, 0xa2, 0x86, 0x6c, 0xb6, + 0x2f, 0xbe, 0x4d, 0xa8, 0x20, 0x36, 0xa8, 0x96, + 0x15, 0x91, 0xe4, 0x4c, 0x88, 0x25, 0xd1, 0x4a, + 0x00, 0xcb, 0x99, 0x1a, 0x97, 0x3a, 0xbb, 0xf8, + 0x59, 0xec, 0x7c, 0x49, 0xe9, 0xa7, 0xa3, 0xba, + 0x4d, 0x2a, 0xcb, 0x3b, 0x6a, 0x3a, 0x63, 0x8d, + 0x51, 0xb3, 0x8c, 0x87, 0x8c, 0x44, 0xeb, 0xa9, + 0x84, 0xa2, 0x64, 0x63, 0x19, 0x05, 0x5d, 0x15, + 0x95, 0x86, 0x1e, 0xf5, 0x15, 0x55, 0x45, 0xa9, + 0xa8, 0x2e, 0x51, 0x25, 0x3d, 0x45, 0x54, 0xf0, + 0xc9, 0x1b, 0xd2, 0x4f, 0x9d, 0x79, 0x8c, 0x47, + 0xf2, 0x54, 0xf2, 0x49, 0x4b, 0x92, 0x18, 0xc9, + 0x3a, 0xa4, 0xd7, 0x1a, 0x1d, 0x5a, 0x75, 0x92, + 0x08, 0x03, 0x84, 0x96, 0x66, 0x92, 0x28, 0x45, + 0x7c, 0x5b, 0x49, 0xa4, 0x68, 0xa3, 0x42, 0x93, + 0x29, 0x32, 0x2b, 0xec, 0xca, 0xb6, 0xa8, 0x80, + 0x8f, 0x9f, 0xcd, 0x56, 0x90, 0xa2, 0xb9, 0xf9, + 0x85, 0xb1, 0x57, 0x7e, 0xb5, 0xd0, 0x4c, 0x29, + 0xeb, 0x2b, 0x63, 0x82, 0x66, 0x4d, 0x61, 0x18, + 0x48, 0xc7, 0x4e, 0xfd, 0xec, 0x63, 0x8d, 0xd5, + 0x33, 0xc8, 0xe9, 0x0e, 0x54, 0xb7, 0xe6, 0x83, + 0x98, 0xc5, 0x3d, 0x64, 0x35, 0x50, 0xc7, 0x53, + 0x4e, 0xfb, 0x48, 0x26, 0x5d, 0x71, 0xc8, 0x15, + 0x97, 0x52, 0xe6, 0x46, 0x7a, 0x5d, 0x55, 0xc6, + 0xf0, 0x7e, 0x72, 0x83, 0x8d, 0xae, 0x36, 0xb8, + 0xfc, 0x22, 0x10, 0xcb, 0x68, 0x6c, 0xb9, 0xda, + 0xab, 0xd7, 0x3e, 0xee, 0x59, 0x52, 0x1c, 0xbe, + 0xac, 0xfa, 0x3e, 0xb3, 0xdf, 0xfd, 0x9f, 0x0a, + 0xff, 0x00, 0xd9, 0xfb, 0x97, 0xfc, 0x38, 0xbf, + 0xbc, 0xc3, 0xf8, 0x8d, 0xe3, 0x89, 0x5b, 0x6d, + 0xf4, 0x56, 0xe7, 0x85, 0x9b, 0xe5, 0xea, 0xab, + 0xcc, 0xb4, 0x70, 0xce, 0x38, 0xcc, 0xaf, 0xa2, + 0x34, 0x1c, 0x6e, 0x17, 0x1a, 0xa2, 0x81, 0x14, + 0x17, 0x8c, 0x69, 0x21, 0xf2, 0xd6, 0xd9, 0x10, + 0x2a, 0x6e, 0x74, 0x55, 0x29, 0x2d, 0x53, 0x4e, + 0xa2, 0xb2, 0xb2, 0xc5, 0xc5, 0x2a, 0xa2, 0x58, + 0x64, 0x5f, 0xdb, 0xd0, 0xd4, 0x40, 0xa9, 0x96, + 0x98, 0x84, 0x40, 0x4d, 0x4f, 0x18, 0x61, 0xa0, + 0xec, 0xd3, 0x66, 0x41, 0x2a, 0x4a, 0xae, 0x29, + 0x2a, 0xe0, 0x9a, 0xdb, 0x55, 0x6d, 0xad, 0x94, + 0x46, 0x23, 0xce, 0xae, 0xdb, 0x33, 0x2b, 0xbe, + 0xca, 0xa7, 0x30, 0x25, 0xa7, 0xe6, 0x23, 0xb2, + 0xc5, 0x54, 0x9e, 0x20, 0x8b, 0x2a, 0x87, 0x6e, + 0x93, 0x8a, 0x7b, 0xa5, 0xb3, 0x8e, 0x81, 0x55, + 0x2e, 0xaa, 0x27, 0xb5, 0xda, 0xd2, 0x42, 0x22, + 0x94, 0xfe, 0xdb, 0xb7, 0x6c, 0x26, 0x58, 0xb4, + 0xe8, 0xcc, 0xe6, 0xf1, 0xbc, 0x05, 0xb4, 0x98, + 0xf2, 0x90, 0xf3, 0x8a, 0x9c, 0xf1, 0x5d, 0x5f, + 0x1d, 0x55, 0xae, 0x95, 0x0c, 0x99, 0xd5, 0xf6, + 0x46, 0xe3, 0x55, 0x3a, 0x69, 0x71, 0xa4, 0x54, + 0xec, 0x4a, 0xb6, 0xa2, 0xba, 0x0e, 0xa6, 0x57, + 0xdc, 0xac, 0x48, 0xcb, 0x78, 0x1f, 0xb8, 0x3f, + 0x07, 0xdf, 0xea, 0x97, 0x1f, 0xe5, 0x10, 0xff, + 0x00, 0x66, 0x7f, 0x17, 0x02, 0x1b, 0x45, 0xd6, + 0xa4, 0xff, 0x00, 0xf9, 0x74, 0xa3, 0xfe, 0xea, + 0x8f, 0x1b, 0x6f, 0x8c, 0xf1, 0xb6, 0xf8, 0xcf, + 0x1b, 0x6f, 0x8c, 0xf1, 0xb6, 0xf8, 0xcf, 0x1b, + 0x6f, 0x8c, 0xf1, 0xb6, 0xf8, 0xcf, 0x1b, 0x6f, + 0x8c, 0xf1, 0x74, 0x79, 0x23, 0xaf, 0xbd, 0xd6, + 0xc5, 0x9e, 0xd2, 0x8e, 0xa2, 0xcf, 0x52, 0x9d, + 0x3b, 0xf4, 0xc7, 0x34, 0x2c, 0x01, 0xfe, 0x2c, + 0xc7, 0x3c, 0x45, 0x47, 0x3e, 0xc6, 0xbe, 0x96, + 0x05, 0x63, 0x2b, 0x70, 0x7a, 0x81, 0x8a, 0x00, + 0x4b, 0x3b, 0x34, 0xb1, 0xd4, 0x4a, 0x83, 0xba, + 0xce, 0x73, 0x60, 0x17, 0xa4, 0x9e, 0x68, 0xcc, + 0xee, 0xc4, 0x3f, 0x2d, 0x4d, 0x74, 0xaa, 0x8a, + 0x49, 0xe4, 0x54, 0xb4, 0x71, 0x59, 0x09, 0xb7, + 0x53, 0x50, 0x43, 0xab, 0x5c, 0x25, 0x61, 0x1c, + 0x5e, 0x56, 0xda, 0xc8, 0x9a, 0x73, 0xd6, 0x63, + 0xd4, 0xca, 0x01, 0x72, 0x33, 0x5c, 0xe0, 0xa5, + 0xa4, 0x17, 0x7e, 0x0f, 0xa7, 0x15, 0x84, 0xc7, + 0xd8, 0x40, 0xd2, 0x29, 0x89, 0x0a, 0xbc, 0x9a, + 0x1c, 0xeb, 0x90, 0x15, 0xc9, 0xdf, 0x36, 0x27, + 0x53, 0x02, 0x7f, 0xa3, 0x14, 0xdf, 0x23, 0x45, + 0x65, 0xac, 0x9e, 0x9d, 0xaa, 0x28, 0x28, 0xaa, + 0xae, 0x42, 0xa2, 0x21, 0x18, 0x93, 0x66, 0x65, + 0x94, 0x08, 0x65, 0x68, 0xdb, 0x73, 0x28, 0x2b, + 0x97, 0x3b, 0x72, 0x90, 0x07, 0x4b, 0xe2, 0xab, + 0x29, 0xe8, 0x6f, 0x35, 0x90, 0x40, 0xf4, 0xf4, + 0x15, 0xd5, 0xd6, 0xfe, 0x2d, 0x01, 0x4d, 0x9e, + 0xad, 0x93, 0x91, 0x2c, 0xcb, 0x18, 0xe6, 0xaa, + 0xb1, 0x6c, 0xb9, 0xbb, 0x89, 0xcc, 0x67, 0x9a, + 0x63, 0x84, 0xa0, 0xd0, 0x35, 0x3d, 0x6d, 0x0c, + 0x6b, 0x1e, 0xba, 0x6a, 0xab, 0x4b, 0xa4, 0x41, + 0x51, 0x42, 0xd5, 0x2b, 0x18, 0x58, 0x2a, 0x8c, + 0x81, 0x57, 0x69, 0x3e, 0xb6, 0xd3, 0xbf, 0x14, + 0x28, 0x28, 0xa8, 0xe9, 0x69, 0x07, 0xfb, 0x88, + 0x23, 0x8c, 0xf8, 0xd8, 0x28, 0xd6, 0x7f, 0x9d, + 0xf5, 0x1c, 0x6d, 0xbe, 0x33, 0xc6, 0xdb, 0xe3, + 0x3c, 0x6d, 0xbe, 0x33, 0xc6, 0xdb, 0xe3, 0x3c, + 0x6d, 0xbe, 0x33, 0xc6, 0xdb, 0xe3, 0x3c, 0x70, + 0x96, 0x5d, 0x56, 0x2b, 0x88, 0xef, 0xc7, 0x0f, + 0xf7, 0xa8, 0x30, 0x71, 0x47, 0x37, 0xed, 0x4a, + 0x4f, 0xe4, 0xd4, 0xfd, 0xdf, 0xff, 0x00, 0x09, + 0x31, 0xb6, 0xf8, 0xcf, 0x1b, 0x6f, 0x8c, 0xf1, + 0x74, 0xa6, 0x4b, 0x87, 0x08, 0x29, 0x62, 0x92, + 0x6a, 0xaa, 0x75, 0x16, 0xb9, 0x1b, 0x69, 0x49, + 0x28, 0x86, 0x5c, 0xd6, 0x76, 0xe6, 0xeb, 0x29, + 0x27, 0x34, 0xe7, 0xbc, 0x65, 0xde, 0xdf, 0x8b, + 0xa5, 0xa2, 0x1a, 0x3b, 0x50, 0x4a, 0x28, 0xa7, + 0xa9, 0x0b, 0x5f, 0x05, 0x6d, 0x78, 0x91, 0xf6, + 0xd5, 0x35, 0x91, 0xc7, 0xaf, 0x5e, 0xb2, 0x02, + 0x86, 0xd3, 0xaf, 0xe6, 0xa2, 0x28, 0xcb, 0x37, + 0x20, 0xb6, 0xa6, 0x34, 0x9c, 0x5a, 0xef, 0x72, + 0xa9, 0x9e, 0x8a, 0x91, 0xa9, 0xad, 0xef, 0x6b, + 0x92, 0x86, 0xa0, 0x98, 0x84, 0x09, 0x34, 0xd2, + 0x9e, 0x6a, 0x84, 0x4e, 0x61, 0x68, 0xd4, 0x83, + 0xac, 0x1d, 0x59, 0x69, 0xcf, 0x2c, 0xd7, 0x19, + 0xdc, 0x05, 0x3f, 0x64, 0xf2, 0x6e, 0x31, 0x09, + 0xec, 0x00, 0x52, 0x4f, 0xe4, 0x78, 0x9b, 0x53, + 0x19, 0x37, 0x0e, 0xe5, 0x4b, 0x2c, 0x99, 0xf4, + 0x6d, 0x39, 0xbb, 0xf1, 0x76, 0xa7, 0xe2, 0x15, + 0x51, 0x23, 0xb4, 0x89, 0x4c, 0xd6, 0x98, 0x68, + 0x61, 0x74, 0xb7, 0xd3, 0xd7, 0xeb, 0x78, 0xf3, + 0x12, 0x40, 0x04, 0xec, 0x82, 0x09, 0x1d, 0x89, + 0x97, 0x6b, 0x19, 0xd7, 0xcf, 0xdd, 0xdd, 0xca, + 0xd9, 0x4e, 0xa9, 0x78, 0xa3, 0x8e, 0xa2, 0x3d, + 0xa1, 0xa7, 0xe0, 0xec, 0x2a, 0xbc, 0x62, 0x25, + 0xd5, 0x1b, 0x0a, 0x9e, 0x6e, 0x6b, 0x9c, 0x8a, + 0x92, 0xc6, 0x87, 0x47, 0x35, 0xc9, 0x5c, 0xb7, + 0x1c, 0x70, 0x92, 0x75, 0xe3, 0x34, 0x3d, 0x90, + 0x8e, 0xa2, 0x5b, 0x31, 0x59, 0xc4, 0xe9, 0x4f, + 0x9f, 0xfa, 0xd9, 0x53, 0xb1, 0x69, 0x32, 0x65, + 0xcf, 0x48, 0xe7, 0x44, 0x09, 0x03, 0x30, 0xc4, + 0x06, 0xd2, 0x46, 0x38, 0x2f, 0x55, 0x5c, 0xb3, + 0xec, 0x2a, 0x0d, 0x79, 0xa3, 0xe2, 0x87, 0xb1, + 0xa2, 0x54, 0xd1, 0x00, 0xa7, 0x49, 0x89, 0xd6, + 0xfb, 0xc0, 0xda, 0x10, 0x51, 0x23, 0x3c, 0xf3, + 0xa5, 0xb2, 0x07, 0x65, 0xa4, 0x8a, 0xea, 0xb3, + 0x69, 0xbc, 0xf6, 0x52, 0x68, 0x66, 0x92, 0x8a, + 0xa6, 0x84, 0x52, 0x49, 0x24, 0x2b, 0xb4, 0x30, + 0x4d, 0x1c, 0xba, 0xd3, 0x50, 0xcc, 0x64, 0xb2, + 0x0d, 0xc0, 0x66, 0xba, 0x8e, 0x64, 0x66, 0x54, + 0xe2, 0xe7, 0x74, 0xa8, 0xba, 0x58, 0xae, 0x92, + 0xb5, 0x2b, 0x43, 0x49, 0xb6, 0xa5, 0x5a, 0x16, + 0x7d, 0x42, 0x59, 0xa2, 0x15, 0x30, 0xea, 0x76, + 0x43, 0x98, 0xcb, 0x50, 0x39, 0x32, 0x1d, 0x3b, + 0xca, 0x64, 0x4c, 0x6c, 0xed, 0x57, 0x51, 0x4d, + 0x41, 0x71, 0xba, 0x3d, 0xca, 0x85, 0xea, 0x85, + 0xc6, 0x08, 0x05, 0x0c, 0x82, 0x15, 0x98, 0x10, + 0xb0, 0x08, 0x9a, 0x05, 0x2d, 0xf9, 0x26, 0x12, + 0x65, 0x99, 0x4e, 0x7e, 0xe5, 0x6c, 0xb7, 0xae, + 0x68, 0xaf, 0x6b, 0xec, 0x15, 0x55, 0xd6, 0x9a, + 0x4a, 0x8a, 0x58, 0x29, 0x2a, 0x61, 0x74, 0xd9, + 0x09, 0xf8, 0xac, 0x93, 0x4b, 0x24, 0x90, 0xa4, + 0x88, 0xfc, 0xdd, 0x42, 0x37, 0x55, 0x0a, 0xe4, + 0x10, 0x43, 0x01, 0xbe, 0x3c, 0x56, 0x42, 0xb5, + 0xf4, 0xb6, 0x2a, 0x7a, 0x5a, 0x47, 0xb5, 0x47, + 0x53, 0x57, 0x5f, 0xb3, 0x56, 0x2e, 0xe7, 0x4c, + 0xc2, 0x22, 0xb3, 0x66, 0xd9, 0x3e, 0x89, 0x97, + 0x2c, 0xb3, 0xdd, 0xa7, 0x72, 0x67, 0x18, 0x42, + 0x60, 0xaa, 0xda, 0xbf, 0x05, 0x62, 0x68, 0xc4, + 0x52, 0xdb, 0xeb, 0x6a, 0xa8, 0xea, 0x23, 0x55, + 0xd2, 0x12, 0x48, 0x44, 0x4a, 0x5b, 0x48, 0xdc, + 0x36, 0x9f, 0x3d, 0xb2, 0xdc, 0x5c, 0xbe, 0x5b, + 0xb1, 0xb1, 0x87, 0xb0, 0x53, 0xcd, 0xb1, 0x4e, + 0x30, 0x6f, 0x99, 0xed, 0x74, 0x0d, 0xa0, 0x02, + 0xa1, 0x54, 0x00, 0xf9, 0x6a, 0x03, 0x22, 0x77, + 0x67, 0x96, 0xfc, 0xf1, 0x70, 0x9a, 0x0a, 0x6a, + 0xeb, 0xf2, 0x56, 0x50, 0xbd, 0x4c, 0xb7, 0x18, + 0x11, 0xa8, 0x65, 0x10, 0xac, 0x99, 0x2a, 0x53, + 0xb2, 0x9c, 0x98, 0xfe, 0x48, 0x44, 0xc3, 0x36, + 0x65, 0xdf, 0xf2, 0x79, 0xb6, 0x5b, 0xb1, 0xc1, + 0xf9, 0x72, 0xb2, 0xdb, 0x47, 0x7a, 0x9c, 0x77, + 0x7f, 0x86, 0xf8, 0xdb, 0x7c, 0x67, 0x8d, 0xb7, + 0xc6, 0x78, 0xe1, 0xdb, 0xeb, 0x8e, 0xd7, 0xe2, + 0x7a, 0xdf, 0xea, 0xa5, 0xfd, 0x9f, 0x0a, 0xff, + 0x00, 0xd9, 0xfb, 0x97, 0xfc, 0x38, 0xbf, 0xbc, + 0xc3, 0xf8, 0x80, 0x27, 0x70, 0x19, 0xfd, 0x58, + 0x20, 0x8d, 0xc7, 0x77, 0xd7, 0xfb, 0x10, 0xac, + 0x7a, 0x15, 0x8f, 0xd4, 0x09, 0xc6, 0x93, 0xd1, + 0x91, 0xcc, 0xf4, 0x0c, 0xba, 0x7f, 0x11, 0x04, + 0x74, 0x8c, 0xbe, 0xbc, 0x64, 0x47, 0x48, 0xe9, + 0xe8, 0xc6, 0x47, 0x76, 0xe3, 0xbf, 0xa3, 0x77, + 0x4f, 0xd5, 0x8d, 0x0c, 0x3a, 0x55, 0xbf, 0xe8, + 0x7f, 0xd0, 0x7e, 0x0f, 0xbf, 0xd5, 0x2e, 0x3f, + 0xca, 0x21, 0xfe, 0xcc, 0xfe, 0x2b, 0x4d, 0xc1, + 0xad, 0x95, 0xb1, 0xd4, 0x81, 0xa9, 0x72, 0x31, + 0xca, 0x83, 0xa5, 0xa2, 0x7c, 0xb5, 0x01, 0xe3, + 0x04, 0x2b, 0xaf, 0x73, 0x52, 0x8c, 0xf7, 0x61, + 0x38, 0x4b, 0x6a, 0x75, 0x0d, 0xc6, 0xc2, 0x12, + 0x37, 0xab, 0xc5, 0x28, 0x65, 0xf1, 0x1c, 0xa2, + 0x2a, 0x7f, 0xe5, 0x62, 0x3c, 0x78, 0xe5, 0x15, + 0xab, 0xaf, 0x47, 0xe4, 0x4b, 0xec, 0xb1, 0xca, + 0x2b, 0x57, 0x5e, 0x8f, 0xc8, 0x97, 0xd9, 0x63, + 0x94, 0x56, 0xae, 0xbd, 0x1f, 0x91, 0x2f, 0xb2, + 0xc7, 0x28, 0xad, 0x5d, 0x7a, 0x3f, 0x22, 0x5f, + 0x65, 0x8e, 0x51, 0x5a, 0xba, 0xf4, 0x7e, 0x44, + 0xbe, 0xcb, 0x1c, 0xa2, 0xb5, 0x75, 0xe8, 0xfc, + 0x89, 0x7d, 0x96, 0x39, 0x47, 0x6a, 0xeb, 0xc9, + 0xe4, 0x4d, 0xec, 0xb1, 0xca, 0x3b, 0x57, 0x5e, + 0x4f, 0x22, 0x6f, 0x65, 0x8e, 0x51, 0xda, 0xba, + 0xfa, 0x79, 0x13, 0x7b, 0x2c, 0x72, 0x8e, 0xd5, + 0xd7, 0x93, 0xc8, 0x9b, 0xd9, 0x63, 0x94, 0x76, + 0xae, 0xbc, 0x9e, 0x44, 0xde, 0xcb, 0x1c, 0xa3, + 0xb5, 0x75, 0xe4, 0xf2, 0x26, 0xf6, 0x58, 0xaa, + 0xaf, 0xb4, 0xd5, 0xd6, 0x53, 0xd4, 0xcb, 0x78, + 0x3b, 0x1a, 0x66, 0x8e, 0x41, 0x47, 0xb3, 0x9b, + 0x64, 0xd3, 0xc6, 0x58, 0xa4, 0xa4, 0xe9, 0xc8, + 0x74, 0x8c, 0xc6, 0xcc, 0xe7, 0xa7, 0xe7, 0x0c, + 0xf1, 0xca, 0x2b, 0x57, 0x5e, 0x8f, 0xc8, 0x9b, + 0xd9, 0x63, 0x94, 0x56, 0xae, 0xbd, 0x1f, 0x91, + 0x2f, 0xb2, 0xc7, 0x28, 0xad, 0x5d, 0x7a, 0x3f, + 0x22, 0x5f, 0x65, 0x8e, 0x51, 0x5a, 0xba, 0xf4, + 0x7e, 0x44, 0xbe, 0xcb, 0x1c, 0xa2, 0xb5, 0x75, + 0xe8, 0xfc, 0x89, 0x7d, 0x96, 0x39, 0x45, 0x6a, + 0xeb, 0xd1, 0xf9, 0x12, 0xfb, 0x2c, 0x72, 0x8a, + 0xd5, 0xd7, 0xa3, 0xf2, 0x25, 0xf6, 0x58, 0xe1, + 0x07, 0x08, 0x60, 0xac, 0xa6, 0x34, 0x54, 0x64, + 0xc8, 0x92, 0x14, 0x33, 0x4a, 0x50, 0xa2, 0x95, + 0x46, 0x0e, 0x11, 0x03, 0x05, 0x63, 0xcf, 0x55, + 0x24, 0x95, 0x1f, 0x37, 0x21, 0xf8, 0xad, 0x1c, + 0x27, 0xa5, 0x14, 0xb1, 0x53, 0xd6, 0xb9, 0x86, + 0x58, 0x51, 0x63, 0xda, 0x68, 0x67, 0x8e, 0x45, + 0x5e, 0x6a, 0x9e, 0x62, 0xbb, 0x2b, 0x69, 0xcb, + 0x56, 0x60, 0x2e, 0x79, 0x90, 0x77, 0xe4, 0x39, + 0x45, 0x6a, 0xeb, 0xd1, 0xf9, 0x12, 0xfb, 0x2c, + 0x72, 0x8a, 0xd5, 0xd7, 0xa3, 0xf2, 0x25, 0xf6, + 0x58, 0xe5, 0x1d, 0xab, 0xaf, 0x47, 0xe4, 0x4d, + 0xec, 0xb1, 0xca, 0x2b, 0x57, 0x5e, 0x8f, 0xc8, + 0x97, 0xd9, 0x63, 0x94, 0x76, 0xae, 0xbc, 0x9e, + 0x44, 0xde, 0xcb, 0x1c, 0xa3, 0xb5, 0x75, 0xe4, + 0xf2, 0x26, 0xf6, 0x58, 0xe5, 0x1d, 0xab, 0xaf, + 0x27, 0x91, 0x37, 0xb2, 0xc7, 0x28, 0xed, 0x5d, + 0x7a, 0x3f, 0x22, 0x6f, 0x65, 0x8e, 0x51, 0xda, + 0xba, 0xf2, 0x79, 0x13, 0x7b, 0x2c, 0x72, 0x8e, + 0xd5, 0xd7, 0xa3, 0xf2, 0x26, 0xf6, 0x58, 0xe5, + 0x1d, 0xab, 0xaf, 0x27, 0x91, 0x37, 0xb2, 0xc7, + 0x28, 0xed, 0x5d, 0x79, 0x3c, 0x89, 0xbd, 0x96, + 0x39, 0x47, 0x6a, 0xeb, 0xc9, 0xe4, 0x4d, 0xec, + 0xb1, 0xca, 0x3b, 0x57, 0x5e, 0x4f, 0x22, 0x6f, + 0x65, 0x8e, 0x51, 0xda, 0xba, 0xf2, 0x79, 0x13, + 0x7b, 0x2c, 0x72, 0x8e, 0xd5, 0xd7, 0x93, 0xc8, + 0x9b, 0xd9, 0x63, 0x94, 0x76, 0xae, 0xbc, 0x9e, + 0x44, 0xde, 0xcb, 0x15, 0xd5, 0x76, 0xfa, 0xb9, + 0x24, 0x68, 0xb8, 0x45, 0x3d, 0x2c, 0x33, 0x80, + 0x27, 0xa6, 0x44, 0x9d, 0xe2, 0x7e, 0x68, 0x46, + 0xc8, 0x73, 0x02, 0x6b, 0x40, 0x03, 0x0d, 0x2c, + 0x33, 0xcd, 0xbb, 0xb9, 0x62, 0x9e, 0xf7, 0x65, + 0xa5, 0x82, 0x2a, 0x78, 0xab, 0x50, 0x47, 0x0c, + 0x6b, 0x1a, 0x66, 0xb3, 0x13, 0x92, 0x8e, 0x92, + 0x76, 0x5b, 0xc9, 0xe9, 0x3d, 0x03, 0x33, 0xb8, + 0x0c, 0x72, 0x8a, 0xd5, 0xd7, 0xa3, 0xf2, 0x25, + 0xf6, 0x58, 0x3c, 0x23, 0xb5, 0x01, 0x9f, 0x1d, + 0x43, 0xe2, 0x11, 0xcc, 0x4f, 0xfd, 0x36, 0x38, + 0xbf, 0x5d, 0xfb, 0x2b, 0x51, 0x1e, 0xcc, 0x15, + 0xa7, 0xa7, 0x57, 0x58, 0xb5, 0x0c, 0x99, 0x9a, + 0x42, 0xbb, 0x49, 0x08, 0xee, 0x6a, 0xd0, 0x80, + 0x0e, 0xe0, 0x5d, 0xfb, 0xcf, 0xec, 0xf8, 0x57, + 0xfe, 0xcf, 0xdc, 0xbf, 0xe1, 0xc5, 0xfd, 0xe6, + 0x1f, 0xc5, 0x1c, 0xcf, 0x6a, 0xb3, 0x52, 0x54, + 0xd2, 0x1d, 0x95, 0x6d, 0xce, 0x7a, 0xb0, 0xf5, + 0x6b, 0x96, 0xd6, 0x2a, 0x6a, 0x33, 0x1a, 0x08, + 0x21, 0x73, 0xbe, 0x2d, 0xa4, 0x8e, 0x5e, 0x46, + 0x8f, 0x26, 0x70, 0x02, 0x31, 0xd2, 0x32, 0xc6, + 0xda, 0x5e, 0x11, 0x3d, 0xba, 0x8d, 0xd5, 0x7b, + 0x20, 0x86, 0x75, 0x9e, 0xe3, 0x21, 0x03, 0x69, + 0x4a, 0xaa, 0x24, 0x53, 0x51, 0xa5, 0x73, 0x76, + 0xa7, 0x45, 0x97, 0x9e, 0xc7, 0x32, 0x34, 0x82, + 0x4b, 0x31, 0x20, 0x59, 0xe9, 0x2a, 0x04, 0x52, + 0x50, 0x57, 0xbd, 0x44, 0x3c, 0x7e, 0x9a, 0x86, + 0xa4, 0xcb, 0x4b, 0xb0, 0x96, 0x1e, 0x34, 0xfa, + 0x61, 0xa8, 0x58, 0xf6, 0xd2, 0x09, 0x21, 0x7c, + 0x9f, 0x4e, 0x6f, 0x1b, 0xea, 0x5d, 0x2c, 0xab, + 0x98, 0x38, 0xa2, 0xa0, 0xb5, 0xd2, 0x4d, 0x78, + 0x83, 0xb2, 0x13, 0xcc, 0xf0, 0xdb, 0xae, 0x10, + 0xce, 0x56, 0x84, 0x01, 0x10, 0x43, 0x1a, 0xc9, + 0x24, 0x45, 0xaa, 0x7e, 0x50, 0xe4, 0x4a, 0xaa, + 0xf3, 0x35, 0x10, 0xe1, 0x99, 0x57, 0x49, 0x78, + 0x6c, 0x74, 0xaf, 0xc4, 0xa1, 0x9a, 0xe3, 0xb0, + 0xae, 0xb9, 0x26, 0xd2, 0x8e, 0x0e, 0x2e, 0x5e, + 0x30, 0x92, 0x1d, 0x34, 0xa2, 0xaa, 0x61, 0x20, + 0xd8, 0xbd, 0x53, 0x02, 0x11, 0x52, 0x39, 0xb4, + 0x6e, 0x2e, 0x40, 0x61, 0x9d, 0x1d, 0x83, 0x8d, + 0xc4, 0x92, 0x8a, 0x91, 0x1a, 0xc1, 0x35, 0x44, + 0x57, 0x7d, 0x71, 0x8f, 0xfc, 0x39, 0x20, 0x56, + 0x90, 0x4d, 0xba, 0x4c, 0xe5, 0x8e, 0x54, 0x47, + 0x54, 0x39, 0x47, 0x9c, 0xca, 0x63, 0xde, 0x01, + 0x61, 0x6f, 0xa8, 0x92, 0x18, 0xee, 0xc9, 0x4f, + 0x53, 0x3a, 0x44, 0x28, 0x9d, 0xa3, 0xc9, 0xda, + 0x2c, 0xcf, 0x1c, 0xa3, 0x51, 0x21, 0x44, 0x72, + 0x16, 0x43, 0x1e, 0xe3, 0x91, 0x24, 0x0c, 0xd7, + 0x51, 0x18, 0xa6, 0x9e, 0x3d, 0xa5, 0xa6, 0xa5, + 0xa4, 0x1c, 0x62, 0x96, 0x1b, 0x4d, 0x1c, 0x79, + 0xb7, 0x38, 0xa5, 0xce, 0x3a, 0x7d, 0x44, 0x1e, + 0x9f, 0x92, 0x45, 0xb8, 0x6a, 0xcc, 0xee, 0x6a, + 0x85, 0xc7, 0xfb, 0xef, 0xfe, 0xa7, 0xff, 0x00, + 0xdb, 0x1c, 0x28, 0x80, 0xd7, 0xd6, 0xd1, 0xbc, + 0x43, 0x39, 0x4d, 0x54, 0x96, 0x79, 0x3c, 0x72, + 0xc7, 0x24, 0x72, 0x53, 0x9e, 0x8e, 0x96, 0x86, + 0xa9, 0x46, 0x79, 0xfe, 0x67, 0x88, 0xe2, 0xf9, + 0x4e, 0xb7, 0x1a, 0xbb, 0x34, 0x51, 0x10, 0x94, + 0xb1, 0xd0, 0xcf, 0xae, 0x6f, 0xcd, 0x86, 0x86, + 0x8a, 0xa6, 0x74, 0x79, 0xd8, 0x8d, 0xdb, 0xa1, + 0x8b, 0x76, 0xfe, 0x74, 0x85, 0x50, 0x6f, 0x61, + 0x87, 0x91, 0x26, 0xbf, 0xf0, 0x5a, 0x48, 0x23, + 0xd8, 0xc4, 0xd4, 0x14, 0xbb, 0x18, 0xff, 0x00, + 0x42, 0x31, 0x2d, 0x58, 0x8d, 0x73, 0xef, 0xe9, + 0xcb, 0x51, 0xee, 0x9c, 0xce, 0x2e, 0x69, 0xc2, + 0xaa, 0x7a, 0x69, 0x9e, 0xbe, 0xa2, 0xa7, 0x89, + 0xb3, 0x6c, 0xe4, 0x06, 0xe1, 0x04, 0xca, 0xc2, + 0x43, 0x90, 0x43, 0x1c, 0x55, 0x12, 0x31, 0x07, + 0xa0, 0xf3, 0x72, 0xef, 0xff, 0x00, 0xa0, 0xfc, + 0x1f, 0x7f, 0xaa, 0x5c, 0x7f, 0x94, 0x43, 0xfd, + 0x99, 0xfd, 0xf7, 0xe1, 0x5f, 0xfb, 0x3f, 0x72, + 0xff, 0x00, 0x87, 0x17, 0xf7, 0x98, 0x7f, 0x15, + 0x34, 0xf4, 0x55, 0x76, 0xf5, 0xb6, 0xd7, 0x4e, + 0x68, 0xda, 0x9a, 0x79, 0x27, 0xa3, 0xab, 0xd9, + 0x49, 0x3c, 0x61, 0x67, 0x0a, 0x27, 0xa6, 0x95, + 0x22, 0x0d, 0x2a, 0x86, 0x64, 0x59, 0x23, 0x78, + 0xd5, 0x86, 0xbd, 0x41, 0xc0, 0x1b, 0xf1, 0x05, + 0xc6, 0xd5, 0x6d, 0x92, 0x86, 0x9e, 0x00, 0xd5, + 0x90, 0xc6, 0x6a, 0xcd, 0xc2, 0xb9, 0x61, 0xd9, + 0x4b, 0x37, 0x1d, 0x83, 0x8b, 0x32, 0x53, 0x2c, + 0xb9, 0x48, 0xb1, 0x41, 0x1e, 0x44, 0x2c, 0x9a, + 0x36, 0xb2, 0x02, 0x74, 0x27, 0xce, 0x34, 0xf5, + 0x16, 0xbb, 0x62, 0xa4, 0x30, 0x57, 0x9a, 0xd3, + 0x51, 0x73, 0xb7, 0xcf, 0x3c, 0xeb, 0x4d, 0x51, + 0x04, 0x54, 0xf4, 0x94, 0x53, 0x19, 0x37, 0xa4, + 0xaa, 0x24, 0x79, 0x9d, 0x9b, 0x51, 0x58, 0xd1, + 0xd4, 0x2a, 0x64, 0xac, 0x58, 0xe5, 0x8a, 0x5a, + 0xca, 0x2e, 0xc9, 0xde, 0x4c, 0xd5, 0x1b, 0x1a, + 0x7b, 0x84, 0x37, 0x18, 0x62, 0xa9, 0x31, 0x4c, + 0xea, 0xa6, 0xa2, 0x4d, 0x71, 0x3b, 0x46, 0x88, + 0x66, 0xd2, 0xc0, 0x7e, 0x86, 0xa1, 0x98, 0xd4, + 0x06, 0xfc, 0x85, 0xc6, 0x8a, 0x74, 0xa1, 0x95, + 0xef, 0x15, 0x34, 0x2d, 0x45, 0x4e, 0x94, 0xf3, + 0xd2, 0xd3, 0xc1, 0x29, 0x96, 0xa0, 0xd2, 0xe7, + 0xb2, 0x9a, 0x8a, 0x7d, 0x26, 0x28, 0xda, 0x75, + 0xd2, 0xbf, 0xb6, 0x76, 0x66, 0x17, 0x52, 0xc5, + 0x58, 0x65, 0x9d, 0x0d, 0xc2, 0xd9, 0x4d, 0x06, + 0xc2, 0x77, 0x6a, 0x8e, 0xcc, 0xcb, 0x30, 0xbb, + 0xc8, 0xc9, 0x2b, 0x49, 0x47, 0x4e, 0x73, 0x14, + 0xda, 0x5c, 0xc6, 0xbb, 0x6a, 0x88, 0xe6, 0x7e, + 0x37, 0x2c, 0x91, 0x2b, 0x06, 0x28, 0x11, 0x54, + 0xb6, 0x58, 0x91, 0x55, 0x24, 0x75, 0x49, 0x04, + 0xa8, 0xae, 0xc1, 0x25, 0x55, 0x65, 0x59, 0x14, + 0x1d, 0xce, 0x15, 0xc2, 0xba, 0x86, 0x1b, 0xf2, + 0x65, 0x0c, 0x3a, 0x08, 0xfc, 0x4b, 0x74, 0xac, + 0x14, 0xc2, 0x8b, 0x5c, 0x3c, 0x57, 0x20, 0xa5, + 0x78, 0xa5, 0x26, 0xd3, 0x4e, 0xbd, 0x7f, 0x97, + 0xd8, 0x71, 0x8c, 0xf3, 0xee, 0xed, 0x75, 0x77, + 0x33, 0xcb, 0x76, 0x05, 0xe6, 0xde, 0x2b, 0x2f, + 0x33, 0x19, 0x75, 0xae, 0xd8, 0x57, 0xda, 0x8e, + 0xca, 0x52, 0x24, 0xad, 0x4a, 0x69, 0xa9, 0xd3, + 0x35, 0x64, 0x06, 0x31, 0x9c, 0xcb, 0x21, 0x32, + 0x04, 0xdf, 0x0a, 0xef, 0xcf, 0x4e, 0x3b, 0x3a, + 0x94, 0xb4, 0x96, 0xf8, 0xa0, 0x86, 0x8e, 0xb4, + 0xf6, 0x38, 0xd2, 0xd6, 0x45, 0x5b, 0x04, 0xd2, + 0x22, 0x11, 0x5b, 0x25, 0x4a, 0xa8, 0xe7, 0xc2, + 0x1b, 0x3c, 0xe3, 0x72, 0x43, 0x3a, 0xe6, 0x07, + 0x74, 0x61, 0xef, 0x94, 0x33, 0x57, 0xf0, 0x7e, + 0x53, 0x1d, 0x15, 0x3c, 0x54, 0x90, 0xc4, 0xd5, + 0x52, 0x53, 0xd2, 0xd4, 0x23, 0x53, 0xc9, 0x9c, + 0xe1, 0xa9, 0x54, 0x73, 0xd9, 0xa9, 0xe3, 0x0c, + 0xae, 0x8b, 0x1a, 0xc8, 0x35, 0xbb, 0x11, 0x21, + 0xde, 0x03, 0x90, 0x5d, 0x88, 0xe8, 0x2c, 0xc4, + 0x7d, 0x59, 0xff, 0x00, 0xa0, 0xfc, 0x1f, 0xff, + 0x00, 0xa9, 0xdc, 0x0f, 0xfe, 0x66, 0x2f, 0xe8, + 0x8b, 0xfc, 0x7f, 0x7d, 0xf8, 0x57, 0xfe, 0xcf, + 0xdc, 0xbf, 0xe1, 0xc5, 0xfd, 0xe6, 0x1f, 0xc5, + 0x91, 0xcb, 0x3c, 0x8e, 0x47, 0xa0, 0xf7, 0x0e, + 0x5d, 0x38, 0xc8, 0x8c, 0xb3, 0x04, 0x67, 0xbc, + 0x78, 0xc7, 0x8b, 0xf6, 0x19, 0x13, 0xd0, 0x33, + 0xee, 0xff, 0x00, 0x37, 0x7f, 0x01, 0x59, 0x81, + 0x21, 0x49, 0x0b, 0xbd, 0x88, 0x04, 0x80, 0x3c, + 0x7d, 0xee, 0x83, 0xd3, 0x80, 0xac, 0x41, 0x21, + 0x49, 0x0b, 0xd2, 0x40, 0x24, 0x0f, 0xaf, 0xbd, + 0xf8, 0x88, 0x20, 0xe4, 0x41, 0x04, 0x74, 0x82, + 0x32, 0x23, 0xf9, 0xb0, 0x51, 0x87, 0x4a, 0xb0, + 0xc8, 0x66, 0x73, 0x04, 0x64, 0x0e, 0xe0, 0x7e, + 0xaf, 0x1e, 0x32, 0x39, 0x67, 0x91, 0xc8, 0x74, + 0x9e, 0xe0, 0xcf, 0xa3, 0xfd, 0x0f, 0xe0, 0xff, + 0x00, 0xfd, 0x4a, 0xbf, 0xf9, 0x54, 0x7f, 0xd9, + 0x7e, 0xea, 0xab, 0xac, 0xa6, 0xa0, 0x81, 0xaa, + 0x6b, 0x26, 0x58, 0x20, 0x42, 0x03, 0x48, 0xda, + 0x8e, 0xf6, 0x39, 0x2a, 0x85, 0x40, 0xce, 0xcc, + 0x7b, 0x8a, 0xaa, 0x5b, 0xa4, 0xe5, 0x90, 0x38, + 0xe5, 0x7f, 0x07, 0x3c, 0x24, 0x3d, 0x0e, 0xe3, + 0xf7, 0x4c, 0x72, 0xbf, 0x83, 0x9e, 0x12, 0x1e, + 0x87, 0x71, 0xfb, 0xa6, 0x28, 0x2e, 0x54, 0x37, + 0x38, 0xda, 0x5a, 0x0a, 0x95, 0xa8, 0x44, 0x6d, + 0x0e, 0x42, 0xc8, 0x8c, 0x8c, 0x46, 0x60, 0x32, + 0x4a, 0x91, 0xc8, 0xb9, 0x8f, 0x9a, 0x4a, 0xe4, + 0xd9, 0x1c, 0x89, 0xc8, 0xe5, 0xfb, 0xa7, 0x85, + 0x7f, 0xec, 0xfd, 0xcb, 0xfe, 0x1c, 0x5f, 0xde, + 0x61, 0xfc, 0x55, 0x7f, 0xfc, 0x0a, 0xcf, 0xfc, + 0xaa, 0xeb, 0xfd, 0x74, 0x78, 0xe2, 0xb4, 0xb5, + 0x90, 0xd9, 0xd2, 0xae, 0x59, 0x62, 0x86, 0x0b, + 0x05, 0x65, 0x53, 0xbc, 0x3a, 0x5a, 0x45, 0xd8, + 0xd5, 0xd4, 0xb0, 0xe6, 0xb0, 0xc9, 0xb3, 0xde, + 0x02, 0x66, 0x9a, 0x8e, 0x43, 0x5a, 0xf4, 0xe2, + 0xe1, 0x47, 0x4b, 0x1d, 0x3d, 0x1d, 0x75, 0x0b, + 0x4f, 0xc5, 0xaa, 0xf6, 0xf1, 0x98, 0xaa, 0x5a, + 0x37, 0x9a, 0x19, 0xe9, 0x99, 0x04, 0x8a, 0x5e, + 0x24, 0x8d, 0x1d, 0x5d, 0x64, 0x47, 0x42, 0x11, + 0x48, 0x07, 0x26, 0xdf, 0x89, 0xe9, 0x2d, 0xd5, + 0x34, 0xd6, 0x96, 0x7e, 0x37, 0x0c, 0x34, 0x96, + 0x53, 0x57, 0x52, 0xca, 0xd0, 0xbb, 0x3c, 0x2b, + 0x57, 0x3c, 0x7b, 0x28, 0x97, 0x64, 0xa0, 0x54, + 0x4d, 0x54, 0xf9, 0x2c, 0xae, 0x4a, 0x24, 0x6c, + 0xba, 0xa3, 0x66, 0x52, 0x4d, 0xc2, 0x8e, 0x96, + 0x38, 0x28, 0xeb, 0xa8, 0x5a, 0x63, 0x4b, 0x59, + 0xb6, 0x4d, 0x9d, 0x49, 0x8d, 0xa7, 0x82, 0x7a, + 0x62, 0x82, 0x54, 0x67, 0x8d, 0x51, 0x24, 0x56, + 0x0e, 0x92, 0x46, 0xc1, 0x17, 0x9a, 0xda, 0x58, + 0x66, 0x33, 0x36, 0x59, 0xe9, 0x85, 0x0d, 0xda, + 0x05, 0xa6, 0xce, 0xa9, 0xed, 0x75, 0xd2, 0x49, + 0x56, 0xef, 0x99, 0x11, 0x28, 0x88, 0x24, 0x30, + 0xc7, 0x90, 0x08, 0x09, 0x25, 0xa5, 0x72, 0x4b, + 0x31, 0xd2, 0x37, 0x28, 0xcb, 0x16, 0x3a, 0xea, + 0xc2, 0xd4, 0x74, 0x94, 0xa4, 0x52, 0x52, 0x52, + 0x3c, 0x95, 0x77, 0x59, 0xb3, 0x1b, 0x29, 0xe9, + 0xcb, 0xfc, 0xab, 0x55, 0x82, 0xb9, 0x32, 0xad, + 0x3f, 0xed, 0x78, 0xa2, 0x62, 0xc1, 0x9c, 0x8d, + 0x3a, 0x5c, 0xe6, 0xa9, 0x5a, 0xd4, 0x72, 0x58, + 0x60, 0xa1, 0xf9, 0x1a, 0x4b, 0x8c, 0xf3, 0x54, + 0x55, 0x44, 0x15, 0x74, 0xd5, 0x45, 0x55, 0x71, + 0x96, 0x94, 0x41, 0x3a, 0x9c, 0xc3, 0xac, 0x74, + 0x88, 0x22, 0x40, 0x73, 0xd0, 0x4e, 0xb5, 0xc9, + 0xc2, 0xb0, 0x48, 0xd6, 0x1b, 0xca, 0x42, 0x9f, + 0x32, 0x2b, 0x9a, 0xc6, 0xbf, 0xc5, 0x4a, 0xa0, + 0xa3, 0xfa, 0x06, 0x2e, 0x74, 0x71, 0xdc, 0x2f, + 0xd4, 0xb5, 0x47, 0x99, 0x4f, 0x55, 0xb7, 0x92, + 0xb5, 0xb2, 0x20, 0x47, 0xd8, 0x87, 0x92, 0x2a, + 0xe3, 0xde, 0x19, 0xc3, 0x4e, 0x8c, 0xbd, 0xf6, + 0x95, 0x73, 0xde, 0xdb, 0xeb, 0x24, 0x8e, 0xbe, + 0x4a, 0xe9, 0x6a, 0x27, 0x5a, 0x38, 0xaa, 0x78, + 0x39, 0x6c, 0x95, 0xe6, 0x31, 0xc9, 0x22, 0xc4, + 0x1e, 0xb6, 0x17, 0x5c, 0xe3, 0x84, 0x34, 0x8d, + 0x99, 0xc9, 0x39, 0xaa, 0x72, 0x27, 0x51, 0xdc, + 0x0e, 0x38, 0xbd, 0x0d, 0x3d, 0x92, 0xe1, 0xb1, + 0xb8, 0x0b, 0x84, 0x6d, 0x5b, 0x6c, 0xdb, 0x88, + 0x60, 0xa8, 0xa6, 0x64, 0x40, 0x6a, 0x77, 0x06, + 0xaa, 0x88, 0x02, 0xce, 0x0b, 0x69, 0x21, 0x5c, + 0x29, 0x19, 0xb0, 0xde, 0x01, 0xaf, 0xa3, 0xb5, + 0x43, 0x6d, 0x86, 0xaa, 0x14, 0xb8, 0x43, 0x53, + 0x57, 0x27, 0xed, 0x58, 0x6a, 0xaa, 0x29, 0xa5, + 0xd7, 0x4c, 0x9b, 0x9e, 0xa5, 0xd2, 0x2a, 0x68, + 0x9d, 0x51, 0x9f, 0x38, 0xe1, 0xcd, 0x81, 0x72, + 0x19, 0xc0, 0x28, 0x01, 0x6f, 0xd9, 0xfe, 0x0f, + 0xff, 0x00, 0xd4, 0xab, 0xff, 0x00, 0x95, 0x47, + 0xfd, 0x97, 0xee, 0xae, 0x1d, 0x7f, 0xf0, 0x45, + 0xfe, 0x5f, 0x4f, 0xfd, 0x95, 0x4e, 0x05, 0x45, + 0x32, 0x52, 0x40, 0xb1, 0x8a, 0x43, 0x3c, 0x42, + 0x99, 0xdc, 0x4b, 0x49, 0x6f, 0x7f, 0x9e, 0xd2, + 0x2c, 0xc7, 0x6b, 0x24, 0x6d, 0x2d, 0x43, 0x8d, + 0x68, 0x1e, 0x09, 0xf5, 0xac, 0x60, 0xed, 0x51, + 0x46, 0xc4, 0x32, 0x54, 0x3c, 0x72, 0xd3, 0x4e, + 0xf1, 0x0b, 0x60, 0x05, 0xe6, 0x15, 0x19, 0xa5, + 0x2c, 0x55, 0x01, 0xd6, 0x50, 0x29, 0xb8, 0x9c, + 0x71, 0x2a, 0x4a, 0x22, 0x30, 0x84, 0x19, 0xd3, + 0x26, 0xc1, 0x9d, 0xa6, 0x7a, 0xcf, 0xcd, 0x7c, + 0x7e, 0x0f, 0x7f, 0x21, 0x75, 0xff, 0x00, 0x8b, + 0x47, 0xff, 0x00, 0xf0, 0xa8, 0xfd, 0xd5, 0xc2, + 0xbf, 0xf6, 0x7e, 0xe5, 0xff, 0x00, 0x0e, 0x2f, + 0xef, 0x30, 0xfe, 0x2a, 0x5a, 0xfa, 0x3e, 0x25, + 0xd8, 0xfb, 0x8d, 0x34, 0xd3, 0xc3, 0x1c, 0xed, + 0x51, 0x4d, 0x35, 0x34, 0xc9, 0x0d, 0x44, 0x2f, + 0x22, 0xa2, 0x4b, 0x1e, 0x72, 0x45, 0x34, 0x6d, + 0x14, 0x81, 0x11, 0x88, 0x29, 0x98, 0x65, 0xcc, + 0x1d, 0xfb, 0xa8, 0x2e, 0x10, 0xd4, 0xd7, 0x4e, + 0xdc, 0x57, 0x2a, 0x1a, 0x3b, 0x15, 0x75, 0x3c, + 0x54, 0x8d, 0x29, 0x2c, 0xd4, 0xd1, 0xc4, 0xee, + 0xe2, 0x49, 0x80, 0x07, 0x6b, 0x33, 0x3c, 0x8c, + 0xd2, 0x2a, 0x8d, 0x2c, 0xc3, 0x48, 0xc9, 0x46, + 0x2e, 0x15, 0xd0, 0xd4, 0x45, 0x49, 0x49, 0x49, + 0x03, 0xc1, 0x47, 0x46, 0xb2, 0xec, 0xc4, 0xd2, + 0x09, 0x67, 0x92, 0x59, 0xd9, 0x5a, 0x69, 0x66, + 0x75, 0x48, 0xd0, 0x93, 0xa5, 0x11, 0x15, 0x50, + 0x05, 0x54, 0xf1, 0xe4, 0x21, 0xbc, 0xd3, 0x2c, + 0x34, 0x71, 0xcb, 0x49, 0x24, 0xbb, 0x3a, 0x29, + 0x2d, 0xb5, 0x6b, 0xb6, 0x55, 0x8e, 0x6a, 0x37, + 0x9a, 0x49, 0xc3, 0x45, 0xf2, 0x7a, 0xe2, 0xa9, + 0x8e, 0x56, 0x57, 0x57, 0x2c, 0xc9, 0xcc, 0x03, + 0x46, 0xfc, 0xc5, 0xc2, 0xba, 0x1a, 0x88, 0xe9, + 0x29, 0x69, 0x20, 0x7a, 0x7a, 0x3a, 0x35, 0x93, + 0x66, 0xb2, 0xc8, 0x25, 0x9e, 0x49, 0x67, 0x60, + 0xd3, 0x4d, 0x33, 0xaa, 0x46, 0x85, 0x9b, 0x4a, + 0x2a, 0xaa, 0xa0, 0x0a, 0xab, 0xbb, 0xa7, 0x21, + 0x43, 0x56, 0x29, 0x38, 0xe6, 0x68, 0x5f, 0x8d, + 0x50, 0xd4, 0x52, 0x0c, 0x8e, 0x5a, 0x0c, 0xda, + 0x32, 0x73, 0xb8, 0xe6, 0x17, 0x4f, 0x46, 0xec, + 0xfb, 0xf8, 0x82, 0xe1, 0x6b, 0x16, 0xd8, 0xed, + 0xf3, 0xd3, 0x5c, 0x07, 0xca, 0xb4, 0xd5, 0x4f, + 0x4b, 0x55, 0x4f, 0x10, 0xaa, 0x93, 0x3c, 0xa2, + 0xda, 0x89, 0x69, 0xa6, 0x6d, 0x10, 0x26, 0x42, + 0x28, 0xc3, 0x04, 0x0c, 0x5e, 0x4c, 0x8b, 0xb6, + 0xac, 0x52, 0xde, 0x28, 0xa1, 0x4a, 0x51, 0x35, + 0x0c, 0xb3, 0xc9, 0x6b, 0x9a, 0x79, 0x6d, 0x8f, + 0xc6, 0x02, 0x00, 0x24, 0x90, 0xcd, 0x14, 0x75, + 0x80, 0x47, 0x9c, 0xc2, 0x19, 0xf2, 0x98, 0x18, + 0x8c, 0x5a, 0x8e, 0x6a, 0x57, 0x46, 0x6a, 0xd1, + 0x54, 0x15, 0xab, 0x8e, 0xaa, 0x4c, 0xdc, 0xad, + 0x42, 0x54, 0x3f, 0x70, 0xb9, 0x12, 0x09, 0x1b, + 0x7f, 0x70, 0xb6, 0xfc, 0x35, 0xf3, 0xf6, 0xa5, + 0xce, 0x99, 0x20, 0xc9, 0xeb, 0xaa, 0xa6, 0x9a, + 0x29, 0x8b, 0x66, 0xd4, 0xf0, 0x55, 0x3a, 0x35, + 0x54, 0x03, 0x77, 0xfb, 0xe1, 0x0c, 0x2a, 0xc4, + 0x65, 0x98, 0xd7, 0xdf, 0xc4, 0xb7, 0x74, 0x92, + 0x09, 0x61, 0xd8, 0x38, 0x32, 0x5a, 0x28, 0x6d, + 0x80, 0xeb, 0x1b, 0x9e, 0x92, 0x68, 0xa5, 0x32, + 0xe5, 0xa7, 0xe6, 0xb8, 0x8f, 0x20, 0xbd, 0x23, + 0x3e, 0x93, 0x8a, 0x3a, 0xe8, 0x60, 0xa5, 0x9e, + 0x96, 0x78, 0x1a, 0x68, 0xe7, 0xab, 0xa1, 0x9e, + 0x4d, 0x2e, 0x13, 0x38, 0xa9, 0x5a, 0x43, 0x2c, + 0x5d, 0x04, 0xe7, 0x2a, 0xc9, 0xa5, 0x5b, 0xf3, + 0x7a, 0x77, 0xe2, 0xeb, 0x5f, 0x6d, 0xb8, 0x34, + 0xd5, 0x11, 0xc1, 0x70, 0x4a, 0xa7, 0xd0, 0x22, + 0xda, 0xd4, 0xd3, 0x35, 0x2c, 0x31, 0xa1, 0x00, + 0x42, 0x90, 0xa5, 0x2a, 0x38, 0x89, 0x22, 0x05, + 0x22, 0x51, 0x20, 0xc8, 0xe4, 0xcc, 0x5b, 0x9d, + 0xab, 0xf6, 0x7f, 0x83, 0xff, 0x00, 0xf5, 0x2a, + 0xff, 0x00, 0xe5, 0x51, 0xff, 0x00, 0x65, 0xfb, + 0xaa, 0xb6, 0x86, 0x96, 0xe3, 0x03, 0x52, 0xd6, + 0x42, 0x27, 0x81, 0x99, 0x58, 0xa1, 0x67, 0x4e, + 0x72, 0x7c, 0xd6, 0x57, 0x8d, 0x91, 0xd4, 0x8d, + 0xfb, 0xd5, 0x81, 0xc8, 0x95, 0x3b, 0x89, 0x18, + 0xe4, 0x87, 0x07, 0x3c, 0x1d, 0xff, 0x00, 0x79, + 0x5f, 0xf7, 0xac, 0x72, 0x43, 0x83, 0x9e, 0x0e, + 0xff, 0x00, 0xbc, 0xaf, 0xfb, 0xd6, 0x2d, 0xf6, + 0xba, 0x0b, 0x52, 0x49, 0x1d, 0x05, 0x38, 0xa7, + 0x59, 0x58, 0x3c, 0x9f, 0x29, 0x2c, 0x85, 0x99, + 0x46, 0x4b, 0x9b, 0xcd, 0x24, 0x8f, 0x90, 0x04, + 0xe4, 0xba, 0xb4, 0x8c, 0xc9, 0x03, 0x32, 0x73, + 0xfd, 0xd3, 0x5f, 0x45, 0x15, 0xc6, 0x92, 0x6a, + 0x29, 0xcc, 0x8b, 0x14, 0xe1, 0x43, 0x98, 0x8a, + 0xab, 0x8d, 0x2e, 0xae, 0x34, 0x96, 0x57, 0x03, + 0x7a, 0x8e, 0x95, 0x3b, 0xb1, 0xc8, 0x2b, 0x37, + 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, 0xc8, + 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, + 0x70, 0x38, 0x09, 0x68, 0x19, 0xe5, 0x51, 0x72, + 0x19, 0x82, 0x0e, 0x53, 0xc0, 0x33, 0x07, 0xa4, + 0x1f, 0xda, 0xbd, 0x07, 0xba, 0x31, 0xc8, 0x2b, + 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, + 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, + 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, + 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, + 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, + 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, + 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, + 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, + 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, + 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, + 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, + 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, + 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, + 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, + 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, + 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, + 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, + 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, + 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, 0x37, 0xd3, + 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, 0xc8, 0x2b, + 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, 0xdd, 0x71, + 0xc8, 0x2b, 0x37, 0xd3, 0xdc, 0x7c, 0xf5, 0x3f, + 0xdd, 0x71, 0x68, 0xb2, 0xd2, 0x59, 0x63, 0x9a, + 0x2a, 0x47, 0x9d, 0xd6, 0x67, 0x12, 0x36, 0xdd, + 0xd1, 0xc8, 0x21, 0x74, 0xf3, 0x74, 0x47, 0x1e, + 0xec, 0xbb, 0xe0, 0xfd, 0x7f, 0xfa, 0xe8, 0xa4, + 0xb6, 0xdc, 0x2b, 0xf3, 0xe2, 0x54, 0x75, 0x15, + 0x21, 0x4e, 0x4c, 0x61, 0x89, 0xdc, 0x03, 0xde, + 0x2c, 0x06, 0x59, 0xf8, 0xb3, 0xcf, 0x1c, 0x9a, + 0xbf, 0xf8, 0x22, 0xbf, 0xd1, 0xdf, 0xd5, 0x8e, + 0x4d, 0x5f, 0xfc, 0x11, 0x5f, 0xe8, 0xef, 0xea, + 0xc7, 0x26, 0xaf, 0xfe, 0x08, 0xaf, 0xf4, 0x77, + 0xf5, 0x63, 0x93, 0x57, 0xff, 0x00, 0x04, 0x57, + 0xfa, 0x3b, 0xfa, 0xb1, 0xc9, 0xab, 0xff, 0x00, + 0x82, 0x2b, 0xfd, 0x1d, 0xfd, 0x58, 0xe4, 0xd5, + 0xff, 0x00, 0xc1, 0x15, 0xfe, 0x8e, 0xfe, 0xac, + 0x72, 0x6a, 0xff, 0x00, 0xe0, 0x8a, 0xff, 0x00, + 0x47, 0x7f, 0x56, 0x39, 0x35, 0x7f, 0xf0, 0x45, + 0x7f, 0xa3, 0xbf, 0xab, 0x1c, 0x9a, 0xbf, 0xf8, + 0x22, 0xbf, 0xd1, 0xdf, 0xd5, 0x8e, 0x4d, 0x5f, + 0xfc, 0x11, 0x5f, 0xe8, 0xef, 0xea, 0xc7, 0x26, + 0xaf, 0xfe, 0x08, 0xaf, 0xf4, 0x77, 0xf5, 0x63, + 0x93, 0x57, 0xff, 0x00, 0x04, 0x57, 0xfa, 0x3b, + 0xfa, 0xb1, 0xc9, 0xab, 0xff, 0x00, 0x82, 0x2b, + 0xfd, 0x1d, 0xfd, 0x58, 0xe4, 0xd5, 0xff, 0x00, + 0xc1, 0x15, 0xfe, 0x8e, 0xfe, 0xac, 0x72, 0x6a, + 0xff, 0x00, 0xe0, 0x8a, 0xff, 0x00, 0x47, 0x7f, + 0x56, 0x39, 0x35, 0x7f, 0xf0, 0x45, 0x7f, 0xa3, + 0xbf, 0xab, 0x1c, 0x9a, 0xbf, 0xf8, 0x22, 0xbf, + 0xd1, 0xdf, 0xd5, 0x8e, 0x4d, 0x5f, 0xfc, 0x11, + 0x5f, 0xe8, 0xef, 0xea, 0xc7, 0x26, 0xaf, 0xfe, + 0x08, 0xaf, 0xf4, 0x77, 0xf5, 0x63, 0x93, 0x57, + 0xff, 0x00, 0x04, 0x57, 0xfa, 0x3b, 0xfa, 0xb1, + 0x57, 0x69, 0xb9, 0xd0, 0xae, 0xba, 0xca, 0x1a, + 0xaa, 0x64, 0xcf, 0x2d, 0x72, 0xc2, 0xe8, 0x99, + 0x9e, 0x81, 0xa8, 0x8c, 0xb7, 0xf7, 0x37, 0xfe, + 0xf0, 0x53, 0x52, 0xd4, 0x56, 0x4f, 0x1d, 0x35, + 0x2c, 0x4d, 0x34, 0xf2, 0x9c, 0xa3, 0x8d, 0x3e, + 0x73, 0x1c, 0xb3, 0x3d, 0xe0, 0x00, 0x00, 0x96, + 0x62, 0x42, 0xa8, 0x04, 0x92, 0x06, 0x23, 0xfc, + 0x1e, 0xdf, 0x1d, 0x43, 0x34, 0xf6, 0xc8, 0x89, + 0xfc, 0xc9, 0x2a, 0x2a, 0x4b, 0x0f, 0xac, 0xc3, + 0x47, 0x2a, 0x7f, 0xd1, 0xce, 0x3b, 0x5d, 0xde, + 0x7a, 0xe5, 0xa7, 0xcf, 0x56, 0xfb, 0xbf, 0x1d, + 0xae, 0xef, 0x3d, 0x72, 0xd3, 0xe7, 0xab, 0x7d, + 0xdf, 0x8e, 0xd7, 0x77, 0x9e, 0xb9, 0x69, 0xf3, + 0xd5, 0xbe, 0xef, 0xc7, 0x6b, 0xbb, 0xcf, 0x5c, + 0xb4, 0xf9, 0xea, 0xdf, 0x77, 0xe3, 0xb5, 0xdd, + 0xe7, 0xae, 0x5a, 0x7c, 0xf5, 0x6f, 0xbb, 0xf1, + 0xda, 0xee, 0xf3, 0xd7, 0x2d, 0x3e, 0x7a, 0xb7, + 0xdd, 0xf8, 0xed, 0x77, 0x79, 0xeb, 0x96, 0x9f, + 0x3d, 0x5b, 0xee, 0xfc, 0x76, 0xbb, 0xbc, 0xf5, + 0xcb, 0x4f, 0x9e, 0xad, 0xf7, 0x7e, 0x3b, 0x5d, + 0xde, 0x7a, 0xe5, 0xa7, 0xcf, 0x56, 0xfb, 0xbf, + 0x1d, 0xae, 0xef, 0x3d, 0x72, 0xd3, 0xe7, 0xab, + 0x7d, 0xdf, 0x8e, 0xd7, 0x77, 0x9e, 0xb9, 0x69, + 0xf3, 0xd5, 0xbe, 0xef, 0xc7, 0x6b, 0xbb, 0xcf, + 0x5c, 0xb4, 0xf9, 0xea, 0xdf, 0x77, 0xe3, 0xb5, + 0xdd, 0xe7, 0xae, 0x5a, 0x7c, 0xf5, 0x6f, 0xbb, + 0xf1, 0xda, 0xee, 0xf3, 0xd7, 0x2d, 0x3e, 0x7a, + 0xb7, 0xdd, 0xf8, 0xed, 0x77, 0x79, 0xeb, 0x96, + 0x9f, 0x3d, 0x5b, 0xee, 0xfc, 0x76, 0xbb, 0xbc, + 0xf5, 0xcb, 0x4f, 0x9e, 0xad, 0xf7, 0x7e, 0x3b, + 0x5d, 0xde, 0x7a, 0xe5, 0xa7, 0xcf, 0x56, 0xfb, + 0xbf, 0x1d, 0xae, 0xef, 0x3d, 0x72, 0xd3, 0xe7, + 0xab, 0x7d, 0xdf, 0x8e, 0xd7, 0x77, 0x9e, 0xb9, + 0x69, 0xf3, 0xd5, 0xbe, 0xef, 0xc7, 0x6b, 0xbb, + 0xd7, 0x5c, 0xb4, 0xf9, 0xea, 0xdf, 0x77, 0xe2, + 0xef, 0xc1, 0xbb, 0xa5, 0x94, 0x2b, 0xd5, 0xc4, + 0x8d, 0x03, 0x1d, 0x22, 0xa6, 0x9d, 0xcc, 0xb0, + 0xea, 0x3d, 0x0a, 0xc4, 0xaa, 0x3a, 0x31, 0xcb, + 0x76, 0xd1, 0x17, 0x57, 0xe6, 0x93, 0x91, 0xc9, + 0x46, 0x6c, 0xa3, 0xbe, 0x40, 0xff, 0x00, 0xa9, + 0xc5, 0x1d, 0x3c, 0x34, 0x14, 0xb0, 0xd1, 0xd3, + 0xa8, 0x48, 0xa9, 0xe3, 0x58, 0xd4, 0x0c, 0xb7, + 0xe9, 0x1c, 0xe7, 0x3d, 0xf6, 0x76, 0xcd, 0x98, + 0x9d, 0xe5, 0x89, 0x27, 0x1a, 0xfc, 0x7f, 0xd5, + 0x8d, 0x7e, 0x3f, 0xea, 0xc5, 0x75, 0xc6, 0x9a, + 0xdd, 0x4d, 0x25, 0x5d, 0x54, 0x9a, 0x21, 0x8b, + 0x2c, 0xc8, 0x1a, 0x99, 0x99, 0x8e, 0x95, 0x44, + 0x51, 0xbd, 0x99, 0x98, 0xe4, 0x07, 0xf3, 0x92, + 0x14, 0x12, 0x2d, 0xbc, 0x24, 0xa2, 0xb9, 0xd4, + 0x1a, 0x54, 0x8a, 0xb6, 0x92, 0xa3, 0x67, 0xb5, + 0x48, 0xab, 0xa9, 0xd6, 0x06, 0x9a, 0x3e, 0x82, + 0xd1, 0x69, 0x92, 0x50, 0xda, 0x7b, 0xa0, 0x90, + 0x7b, 0xaa, 0x18, 0x06, 0xd3, 0xaf, 0x0d, 0x26, + 0x85, 0x2c, 0xdb, 0x94, 0x02, 0xc4, 0xe5, 0xdc, + 0x03, 0x32, 0x7f, 0xe9, 0x8a, 0x1a, 0xf8, 0x6e, + 0x14, 0xd1, 0xd5, 0xd3, 0x17, 0x68, 0x26, 0x32, + 0x6c, 0x8b, 0x26, 0x82, 0xe2, 0x39, 0x5e, 0x2d, + 0x5a, 0x4e, 0xf0, 0xac, 0x63, 0x2c, 0xb9, 0xe4, + 0xda, 0x48, 0xd4, 0xaa, 0xd9, 0xa8, 0xd7, 0x8d, + 0x47, 0xc7, 0xff, 0x00, 0x4c, 0x54, 0xd5, 0xa5, + 0x2d, 0x3c, 0xf5, 0x32, 0x6a, 0x29, 0x04, 0x4f, + 0x33, 0x84, 0x0a, 0x5c, 0xac, 0x6a, 0x58, 0x85, + 0x0c, 0xca, 0x0b, 0x64, 0x37, 0x66, 0xc0, 0x67, + 0xd2, 0x46, 0x23, 0xe1, 0x55, 0xbe, 0x5b, 0x54, + 0xd7, 0x85, 0x4a, 0xbe, 0x2f, 0x04, 0xcb, 0x03, + 0xc4, 0x63, 0x87, 0x8c, 0x97, 0x66, 0x89, 0x57, + 0x4a, 0x09, 0xcc, 0x64, 0x1d, 0xaa, 0x90, 0x4c, + 0xa3, 0x9a, 0x1b, 0x76, 0xec, 0x8d, 0x05, 0x7c, + 0x77, 0x1a, 0x48, 0x2b, 0x60, 0x59, 0x16, 0x2a, + 0x84, 0x2e, 0x8b, 0x2a, 0xa8, 0x90, 0x00, 0xcc, + 0x9c, 0xe5, 0x47, 0x75, 0x1b, 0xd4, 0x9d, 0xce, + 0xdb, 0xb2, 0xfa, 0xb1, 0xaf, 0xb9, 0xdd, 0xc2, + 0xdc, 0xe1, 0x7b, 0x8c, 0xb6, 0xb0, 0xb3, 0x0a, + 0x88, 0x69, 0x92, 0xad, 0x98, 0xaa, 0x6c, 0x4c, + 0x6e, 0xe2, 0x30, 0x15, 0xb6, 0x9a, 0xf5, 0xe6, + 0x73, 0x20, 0xc6, 0x17, 0x2f, 0xce, 0xcf, 0x76, + 0x35, 0xe2, 0xd9, 0x75, 0x82, 0xed, 0x4d, 0xc6, + 0xa9, 0x96, 0x65, 0x8f, 0x6b, 0x24, 0x3a, 0x66, + 0x58, 0xd5, 0xf5, 0x44, 0x72, 0x63, 0x94, 0x72, + 0x4a, 0x34, 0xf7, 0xb9, 0xd9, 0xf7, 0xc0, 0xc6, + 0xae, 0xe6, 0x35, 0xfc, 0x6e, 0xc6, 0xbf, 0x1f, + 0xf5, 0x63, 0x5f, 0x8f, 0xfa, 0xb1, 0x2a, 0xc5, + 0x3c, 0x52, 0x43, 0x32, 0x2c, 0xb1, 0x4a, 0xa5, + 0x24, 0x8d, 0xc0, 0x2a, 0xe8, 0xc3, 0x22, 0x0f, + 0xf3, 0x7f, 0x38, 0xe9, 0x19, 0x1c, 0x5c, 0x29, + 0xd6, 0x92, 0xbe, 0xb6, 0x95, 0x09, 0x29, 0x4d, + 0x57, 0x53, 0x02, 0x13, 0xd2, 0x52, 0x29, 0x9d, + 0x17, 0x3f, 0x1e, 0x4a, 0x33, 0xf1, 0xfe, 0xef, + 0xfc, 0x1e, 0xc7, 0x1f, 0x19, 0xb9, 0x4e, 0x40, + 0x32, 0x47, 0x0d, 0x3c, 0x68, 0xc7, 0xf3, 0x56, + 0x67, 0x95, 0xa4, 0xcb, 0xbd, 0xab, 0x62, 0x99, + 0xf8, 0x86, 0x58, 0xda, 0x7c, 0x7c, 0x1c, 0x5e, + 0xef, 0x2f, 0x6c, 0x8a, 0x99, 0x69, 0xe0, 0x5a, + 0x9a, 0xca, 0xd9, 0xf8, 0xbd, 0x34, 0x72, 0x48, + 0x22, 0x8b, 0x56, 0x59, 0x96, 0x92, 0x42, 0x40, + 0x00, 0x66, 0xa0, 0x0d, 0x49, 0x99, 0x6f, 0x9c, + 0x00, 0x38, 0xa1, 0xbe, 0xd4, 0xa9, 0xaa, 0x8e, + 0xfb, 0x46, 0xb6, 0xb9, 0x29, 0x96, 0x39, 0x76, + 0xc1, 0x8b, 0xd1, 0xc9, 0x1c, 0xac, 0xa8, 0x32, + 0x98, 0x19, 0x23, 0x12, 0x07, 0x65, 0x05, 0x44, + 0xad, 0x9e, 0xae, 0x80, 0x51, 0xb1, 0x25, 0xc6, + 0x8e, 0x19, 0x36, 0x52, 0xd4, 0xc3, 0x1c, 0x9b, + 0x16, 0xa8, 0xd0, 0xee, 0x01, 0xd8, 0x27, 0xce, + 0x97, 0xa7, 0x72, 0x0c, 0x8e, 0xf3, 0x8a, 0x8e, + 0x11, 0xdb, 0x63, 0xa0, 0xab, 0xae, 0xa7, 0xa8, + 0x82, 0xb1, 0x69, 0x14, 0x6a, 0x8e, 0x29, 0x40, + 0x2d, 0x23, 0xee, 0x8e, 0x3c, 0xf2, 0x6d, 0x3b, + 0x43, 0xb8, 0x1d, 0x27, 0xa0, 0xe5, 0x99, 0x19, + 0x62, 0x1b, 0xf5, 0xbc, 0xd0, 0x52, 0x56, 0xd4, + 0x55, 0xd2, 0xc2, 0xb5, 0x31, 0xaf, 0x4c, 0x99, + 0x2e, 0xdc, 0x20, 0x33, 0x44, 0x99, 0x9d, 0x47, + 0x64, 0xf9, 0xab, 0x74, 0xe9, 0xdc, 0x18, 0xe6, + 0x71, 0x3d, 0xde, 0xdd, 0x4d, 0xa3, 0x8c, 0x56, + 0xd3, 0xc5, 0xb4, 0x8b, 0x6f, 0x1e, 0xb9, 0x00, + 0x0f, 0x16, 0x79, 0x6d, 0x10, 0xe7, 0x93, 0x29, + 0x3d, 0x04, 0x13, 0x9f, 0x73, 0x09, 0x7a, 0xb6, + 0x49, 0x24, 0x31, 0x47, 0x5f, 0x4a, 0xf2, 0x54, + 0x0d, 0x50, 0x22, 0xca, 0xa5, 0xa4, 0x19, 0x90, + 0x34, 0x8c, 0xfa, 0x49, 0x53, 0x90, 0x39, 0x13, + 0x97, 0x46, 0x2f, 0x77, 0x49, 0x2d, 0x76, 0xd9, + 0xeb, 0x62, 0x8e, 0x39, 0x64, 0x8b, 0x67, 0xa5, + 0x24, 0xcf, 0x49, 0xd7, 0x22, 0xa6, 0xfd, 0x2c, + 0x0f, 0x43, 0x6e, 0xdf, 0xd3, 0x8a, 0xbe, 0x16, + 0x4f, 0x05, 0x96, 0x86, 0xe1, 0x1d, 0x3c, 0x0d, + 0x55, 0x53, 0x2c, 0xd1, 0x4b, 0x4e, 0xe6, 0x4d, + 0x9c, 0x7c, 0x5c, 0x4b, 0xb6, 0x2b, 0x93, 0x07, + 0xe6, 0x95, 0x8c, 0x6f, 0x63, 0xf3, 0xf2, 0xef, + 0x60, 0xde, 0xed, 0xf0, 0xc7, 0x4b, 0xc7, 0x2a, + 0xe9, 0xa9, 0xa6, 0xa8, 0xa7, 0x86, 0x6d, 0x9b, + 0xc8, 0x17, 0xf2, 0xa8, 0xad, 0xbb, 0x33, 0x98, + 0x5c, 0xce, 0x40, 0xb6, 0x59, 0xe5, 0xf5, 0xe2, + 0x7b, 0xbd, 0xba, 0x99, 0x99, 0x2a, 0x2b, 0x29, + 0xe1, 0x64, 0x44, 0x91, 0x83, 0xb8, 0x04, 0x47, + 0x21, 0xca, 0x37, 0xf1, 0x87, 0x3f, 0x37, 0x2c, + 0xf3, 0xe9, 0xe8, 0xc4, 0xb7, 0x6b, 0x7c, 0x10, + 0x45, 0x53, 0x35, 0x65, 0x3c, 0x74, 0xf3, 0xe5, + 0xb1, 0x95, 0xa4, 0x5d, 0x12, 0xe6, 0x33, 0xe6, + 0x1c, 0xf9, 0xdb, 0xba, 0x72, 0xe8, 0xee, 0xe5, + 0x87, 0xbb, 0x5b, 0xe3, 0xa6, 0x4a, 0xc9, 0x2a, + 0xe9, 0xd6, 0x96, 0x42, 0x04, 0x73, 0x99, 0x06, + 0xcd, 0xc9, 0xcf, 0x20, 0xa7, 0x3d, 0xe7, 0x71, + 0xdc, 0x37, 0x8c, 0x8e, 0x7d, 0x07, 0x11, 0xdd, + 0xed, 0xd2, 0xc5, 0x34, 0xf1, 0x56, 0x53, 0xbc, + 0x34, 0xc0, 0x19, 0xe5, 0x59, 0x06, 0x88, 0x83, + 0x0d, 0x4b, 0xad, 0xb3, 0xc8, 0x66, 0x3a, 0x3b, + 0xa4, 0xee, 0xe9, 0xdd, 0x81, 0x78, 0xb6, 0xb5, + 0x37, 0x1c, 0x15, 0xb4, 0xe6, 0x94, 0x38, 0x8c, + 0xce, 0x1c, 0x18, 0xc4, 0x84, 0xe4, 0x10, 0x9e, + 0xe3, 0x12, 0x46, 0xe3, 0x97, 0x48, 0x3d, 0x04, + 0x63, 0xb3, 0xf6, 0x7d, 0x32, 0x3f, 0x64, 0xa8, + 0xf4, 0xc4, 0xe2, 0x37, 0x3b, 0x65, 0xe6, 0xbb, + 0x67, 0x92, 0xf4, 0xef, 0xcf, 0x4b, 0x64, 0x57, + 0x31, 0xcd, 0x3b, 0xf1, 0x51, 0x76, 0xb7, 0xd2, + 0xa4, 0x52, 0xd4, 0xd6, 0x53, 0xc3, 0x1c, 0xe3, + 0x38, 0x5d, 0xe4, 0x50, 0x25, 0x19, 0x03, 0x9a, + 0x6f, 0xe7, 0x0c, 0x88, 0x39, 0x8d, 0xc3, 0x31, + 0x99, 0xde, 0x31, 0x3d, 0xd6, 0x82, 0x98, 0x81, + 0x51, 0x57, 0x4f, 0x16, 0x71, 0x6d, 0xd7, 0x5c, + 0x80, 0x6a, 0x87, 0x50, 0x5d, 0xa2, 0x9c, 0xf2, + 0x64, 0x2c, 0x40, 0x04, 0x67, 0x9e, 0x7b, 0xb1, + 0x70, 0xe1, 0x2d, 0x15, 0x12, 0xdb, 0x9d, 0x24, + 0x86, 0x68, 0xae, 0x15, 0x29, 0x18, 0x98, 0x4b, + 0xf2, 0x71, 0x53, 0x87, 0x02, 0xa2, 0xa0, 0xe4, + 0x0e, 0xa1, 0x1f, 0xcd, 0xcb, 0x35, 0xd2, 0xe4, + 0x6a, 0xf9, 0xa5, 0x48, 0x95, 0x58, 0x06, 0x52, + 0x0a, 0xb0, 0x0c, 0xa4, 0x74, 0x10, 0x46, 0x60, + 0x8f, 0xac, 0x62, 0xfa, 0x23, 0x9a, 0xcd, 0x75, + 0x8e, 0x45, 0x0c, 0xbc, 0x42, 0xa9, 0xc0, 0x3b, + 0xf2, 0x78, 0xa1, 0x79, 0x62, 0x6f, 0xad, 0x24, + 0x45, 0x61, 0xde, 0x23, 0x11, 0xfc, 0xf4, 0xfe, + 0x32, 0xff, 0x00, 0x58, 0xc1, 0x94, 0x66, 0x7a, + 0x3a, 0x4e, 0x36, 0xa3, 0xc5, 0x8d, 0xa8, 0xf1, + 0x63, 0x84, 0x06, 0x86, 0x5b, 0x6b, 0x47, 0x5f, + 0x3b, 0xd3, 0x42, 0xd3, 0x43, 0xa2, 0xa2, 0x24, + 0x77, 0x68, 0x67, 0x04, 0xb4, 0x4f, 0xcc, 0x56, + 0xc8, 0x6e, 0x60, 0x4b, 0x64, 0xbb, 0xf2, 0xd4, + 0xac, 0x54, 0xe2, 0x19, 0x6a, 0x0d, 0xce, 0x9e, + 0xdd, 0x5b, 0x5b, 0x6f, 0xbe, 0x43, 0x5b, 0x4b, + 0x55, 0x0c, 0x35, 0x6b, 0x14, 0x3c, 0x76, 0x8d, + 0x38, 0xab, 0x6b, 0x26, 0x48, 0xd5, 0x9a, 0x35, + 0x97, 0x9c, 0x8d, 0xf2, 0xd2, 0x34, 0xab, 0x9b, + 0xb1, 0x53, 0xcc, 0x34, 0x35, 0x12, 0xd5, 0xb5, + 0x05, 0x1c, 0x93, 0x6c, 0x64, 0xe0, 0xfd, 0x25, + 0xc8, 0xcf, 0x2b, 0x16, 0xd3, 0x1c, 0xf1, 0x96, + 0xa7, 0xa4, 0x90, 0xe4, 0x3f, 0xdc, 0xae, 0x99, + 0x3f, 0x3b, 0xf2, 0x67, 0xea, 0x36, 0xb5, 0x58, + 0xaa, 0x4d, 0x2d, 0x4b, 0x4b, 0x9d, 0xc6, 0x8a, + 0xb2, 0x37, 0x9e, 0x96, 0xbe, 0x2a, 0xa8, 0x2a, + 0xc1, 0x82, 0x46, 0xce, 0x64, 0x02, 0x47, 0x8d, + 0xf3, 0x53, 0x22, 0xb6, 0xb5, 0x75, 0x6d, 0x21, + 0xe2, 0xd2, 0xee, 0x71, 0x18, 0x48, 0xed, 0x16, + 0x7a, 0x68, 0x99, 0xe4, 0x8a, 0xe3, 0x55, 0x34, + 0x97, 0x18, 0x56, 0xba, 0x1a, 0x41, 0x24, 0x90, + 0xb1, 0x58, 0x20, 0x7a, 0x89, 0x14, 0xa5, 0x3a, + 0xe9, 0x02, 0x4d, 0x32, 0x82, 0x19, 0xf2, 0x7c, + 0xb5, 0x04, 0x2a, 0xa2, 0xa2, 0xa6, 0x96, 0xcd, + 0x45, 0x34, 0xee, 0xb1, 0xad, 0xee, 0x5a, 0x78, + 0x24, 0x8a, 0xb2, 0x3a, 0x99, 0x61, 0xa5, 0x68, + 0xa2, 0xf9, 0x11, 0x53, 0x01, 0x20, 0xb4, 0x2a, + 0x59, 0x50, 0xee, 0xd2, 0x0a, 0xe9, 0x55, 0x40, + 0xa0, 0x4d, 0x42, 0xb0, 0xd2, 0x5f, 0x9a, 0x3a, + 0xaa, 0xc0, 0x2c, 0xb7, 0x05, 0x16, 0xe8, 0xf6, + 0xe7, 0x44, 0x45, 0xea, 0x11, 0x5e, 0x42, 0x37, + 0x67, 0x21, 0x40, 0xa3, 0x52, 0xe9, 0x39, 0xa8, + 0x6c, 0x5c, 0x66, 0xd5, 0x67, 0xac, 0xcf, 0x79, + 0x6b, 0x7c, 0xd9, 0xf8, 0xc9, 0x81, 0xb3, 0xc4, + 0x39, 0x84, 0xa5, 0xb5, 0x8c, 0xc4, 0x75, 0xab, + 0x6e, 0xba, 0x91, 0xbf, 0x22, 0x94, 0xf6, 0xb9, + 0x76, 0xe3, 0xbd, 0xce, 0x9a, 0x10, 0xdf, 0xc6, + 0x19, 0xf7, 0x31, 0x09, 0x4a, 0xaa, 0x6e, 0x0e, + 0x5b, 0x2b, 0x6a, 0x5e, 0x96, 0xdb, 0x25, 0x15, + 0x44, 0xd2, 0x69, 0x94, 0x42, 0xb3, 0xce, 0x93, + 0xcb, 0xb3, 0x47, 0x91, 0xb9, 0xbc, 0xdc, 0x94, + 0xae, 0xac, 0xc0, 0x27, 0x77, 0x38, 0x83, 0x87, + 0xaa, 0x95, 0x2d, 0xd5, 0x16, 0xd8, 0xeb, 0x25, + 0x7b, 0x52, 0xdf, 0x21, 0xa0, 0x5a, 0xcd, 0xa6, + 0x6c, 0xb6, 0xf6, 0x49, 0x19, 0xe0, 0x12, 0xf4, + 0x18, 0x94, 0xaa, 0x8c, 0xc7, 0xc9, 0xe9, 0xcc, + 0x65, 0xb3, 0x7d, 0x38, 0x8e, 0x1a, 0x5a, 0x4a, + 0xbb, 0xfc, 0x14, 0x35, 0x2f, 0x53, 0x4e, 0x96, + 0x07, 0x58, 0xcb, 0x4c, 0x27, 0xd9, 0x6a, 0x65, + 0x76, 0x89, 0x64, 0x5e, 0x69, 0x50, 0x49, 0x7c, + 0x97, 0x20, 0x0b, 0x91, 0xd3, 0x9e, 0x22, 0xac, + 0x86, 0x6a, 0xbe, 0x05, 0xa4, 0x53, 0x24, 0x8d, + 0x0d, 0x26, 0x99, 0x55, 0x1c, 0x31, 0x46, 0xe2, + 0x91, 0xa6, 0x52, 0x00, 0x4e, 0x96, 0xd4, 0x8c, + 0x32, 0x6d, 0xfb, 0xb3, 0xe8, 0xc8, 0xe1, 0x66, + 0x95, 0xad, 0xb6, 0xca, 0x12, 0x1d, 0xa9, 0x2a, + 0x6e, 0x37, 0x27, 0xa8, 0x89, 0x6a, 0xe3, 0xa1, + 0x15, 0x0d, 0x13, 0x44, 0x63, 0x8d, 0xea, 0xa6, + 0x0d, 0x1a, 0x04, 0x27, 0x5e, 0x4e, 0x0a, 0xb3, + 0x69, 0x39, 0x6b, 0x08, 0xc2, 0x6e, 0x39, 0x51, + 0x6f, 0xa0, 0xa7, 0x96, 0xa6, 0x19, 0xa1, 0xa7, + 0xa8, 0xab, 0x09, 0x42, 0xf7, 0x58, 0x43, 0xcb, + 0x02, 0x2a, 0xec, 0x4a, 0xd4, 0x87, 0xd8, 0xcc, + 0x69, 0x57, 0x5c, 0x2a, 0xba, 0xb5, 0xa6, 0xa5, + 0x58, 0x62, 0xd0, 0xe4, 0x2f, 0x05, 0xea, 0xd2, + 0x5b, 0x4c, 0x4a, 0xa6, 0x72, 0x20, 0x92, 0x58, + 0x32, 0xa9, 0x91, 0x65, 0x78, 0xc2, 0x11, 0xa6, + 0x35, 0x95, 0x12, 0x30, 0xf1, 0xaa, 0x90, 0x13, + 0x98, 0xba, 0x47, 0xc9, 0x8e, 0x6a, 0xae, 0x36, + 0xa3, 0xc5, 0x8d, 0xa8, 0xf1, 0x63, 0x6a, 0x3c, + 0x58, 0xbc, 0x6f, 0xbb, 0xdd, 0x0f, 0x7e, 0xe3, + 0x5b, 0xfd, 0xe2, 0x4f, 0xdd, 0xfc, 0x03, 0x7d, + 0x0d, 0x74, 0xf1, 0xad, 0x1f, 0xf5, 0xd4, 0xe3, + 0x6d, 0xe3, 0xfe, 0x9c, 0x70, 0x92, 0x7a, 0x4e, + 0x2d, 0x4f, 0x1d, 0xc2, 0x8a, 0x4a, 0xaa, 0x27, + 0x9b, 0xe5, 0xaa, 0x61, 0x91, 0x96, 0x4a, 0x06, + 0xcb, 0x24, 0x9c, 0x2a, 0xa3, 0x33, 0x02, 0x0b, + 0x83, 0xbd, 0x57, 0x76, 0x44, 0x39, 0x64, 0x18, + 0xb5, 0xc5, 0x1d, 0x53, 0x5d, 0xad, 0xd6, 0xda, + 0x8a, 0xa9, 0xec, 0xb3, 0x50, 0xb8, 0x43, 0x54, + 0x18, 0x47, 0x15, 0x73, 0xb8, 0x31, 0x2c, 0x3a, + 0xc2, 0x65, 0x90, 0xcf, 0x68, 0x74, 0x2b, 0x36, + 0x5a, 0x9b, 0x3c, 0xa3, 0x38, 0xa5, 0x3d, 0x92, + 0xa1, 0xb9, 0xd5, 0xd6, 0xa5, 0x51, 0x34, 0xf6, + 0xea, 0x4b, 0x48, 0x14, 0xe8, 0x92, 0x4e, 0x0d, + 0x39, 0x59, 0x27, 0x91, 0x63, 0x77, 0x8c, 0x37, + 0x3d, 0x62, 0x79, 0x17, 0x5a, 0xea, 0x4d, 0xa0, + 0xe9, 0xcb, 0x2a, 0x72, 0x92, 0xc3, 0x79, 0x8e, + 0x18, 0xa9, 0xab, 0x61, 0xec, 0x59, 0xca, 0xba, + 0x0a, 0x17, 0xa2, 0x21, 0xd2, 0x48, 0xa4, 0x58, + 0xe5, 0xa6, 0x01, 0x69, 0x84, 0xcb, 0x93, 0x30, + 0x78, 0xe3, 0x69, 0x32, 0x8c, 0x3e, 0xdc, 0xe7, + 0x20, 0xc5, 0x44, 0xb4, 0x67, 0xb1, 0x75, 0x3f, + 0x21, 0x1d, 0xbc, 0x5a, 0x4d, 0x26, 0xb7, 0xb6, + 0x9a, 0xa8, 0x05, 0x7a, 0x8f, 0xdb, 0x29, 0xc5, + 0xf3, 0x80, 0x0a, 0x99, 0x18, 0xb3, 0x2d, 0x46, + 0x64, 0x97, 0x22, 0x5d, 0x5b, 0x8c, 0x89, 0x43, + 0x49, 0x03, 0xd7, 0xf0, 0x76, 0x9a, 0xa9, 0x1a, + 0xa2, 0x14, 0xb6, 0xd6, 0x3a, 0xc7, 0x5b, 0x4e, + 0x88, 0xc5, 0x4c, 0xd3, 0xbc, 0x62, 0x5a, 0x7d, + 0xad, 0x4a, 0x0c, 0xb5, 0x66, 0xaa, 0x5d, 0xb7, + 0x69, 0x25, 0x57, 0xa0, 0x52, 0x41, 0x4b, 0x1d, + 0xae, 0xd3, 0x3a, 0x43, 0x10, 0xa8, 0x3c, 0x25, + 0x85, 0x4c, 0xe1, 0x46, 0xdb, 0x64, 0x24, 0x70, + 0x23, 0xda, 0xfc, 0xfd, 0x9e, 0x4a, 0xa7, 0x46, + 0x7a, 0x73, 0x1a, 0xb2, 0xd5, 0xbf, 0x1c, 0x2b, + 0x93, 0x55, 0x8e, 0xb0, 0x67, 0xdd, 0x83, 0xfb, + 0x78, 0xf1, 0x5a, 0x1c, 0xcd, 0x76, 0xa6, 0x6f, + 0xc8, 0xd0, 0x41, 0x5d, 0x59, 0x0e, 0xfd, 0xda, + 0xae, 0x72, 0x51, 0x1c, 0xb2, 0xee, 0x65, 0xa9, + 0xbf, 0xa7, 0xf9, 0xee, 0xb5, 0x41, 0x85, 0x4c, + 0x2c, 0x61, 0xa5, 0x6e, 0xc1, 0xdb, 0xd5, 0x08, + 0xa7, 0xd7, 0x53, 0x72, 0x40, 0x89, 0x26, 0x9d, + 0xa9, 0x25, 0x52, 0x38, 0x98, 0x66, 0xce, 0x13, + 0x69, 0xa2, 0x1c, 0xb5, 0x80, 0x9c, 0xda, 0x58, + 0x69, 0x6b, 0x6e, 0x6b, 0xc6, 0xa2, 0x8a, 0xa5, + 0x53, 0x82, 0xd4, 0x6c, 0xab, 0x2a, 0xab, 0xae, + 0xb3, 0x0c, 0x29, 0xac, 0x03, 0xd0, 0xea, 0x18, + 0xe9, 0x61, 0x93, 0x23, 0x6f, 0x52, 0x18, 0x03, + 0x8a, 0x5a, 0xc1, 0x0d, 0xbb, 0x83, 0xaa, 0xe6, + 0x2a, 0x74, 0xfd, 0xbe, 0x7b, 0x23, 0x24, 0x3b, + 0x79, 0x29, 0x8e, 0x6e, 0xa6, 0x2a, 0x7c, 0xce, + 0x85, 0x92, 0x55, 0x27, 0x21, 0x2a, 0xc8, 0x85, + 0x82, 0x36, 0xc9, 0xf4, 0x65, 0x8a, 0x67, 0x82, + 0x2a, 0x3e, 0x0f, 0xcf, 0x5f, 0x16, 0xd6, 0xdd, + 0x4d, 0x53, 0x74, 0x4a, 0x94, 0x78, 0xb6, 0x89, + 0x1c, 0xb2, 0x49, 0xf2, 0x3b, 0x78, 0x40, 0x20, + 0xf4, 0x7c, 0xc2, 0x87, 0x2c, 0x8e, 0xe3, 0x9e, + 0x58, 0x6d, 0x32, 0xd1, 0x5f, 0x5a, 0x8e, 0x16, + 0x8e, 0x8f, 0xb2, 0xd4, 0x55, 0x0d, 0x0e, 0xc8, + 0xf3, 0x69, 0x14, 0x4c, 0xc5, 0xb6, 0x19, 0xa1, + 0xd9, 0x8c, 0xc4, 0x9b, 0x3d, 0x51, 0x85, 0x8f, + 0x76, 0x68, 0x06, 0xe9, 0x56, 0x17, 0xb6, 0xdd, + 0xe6, 0xa7, 0x94, 0xbd, 0x35, 0x45, 0x55, 0xb9, + 0x33, 0x8e, 0xde, 0xb6, 0xea, 0x33, 0x22, 0x48, + 0xd9, 0xb5, 0x2c, 0x7c, 0x66, 0x56, 0xdc, 0xac, + 0x44, 0x80, 0xc3, 0x10, 0x0c, 0x7b, 0xb8, 0x9e, + 0x86, 0xdc, 0xb7, 0x7b, 0xec, 0x62, 0x92, 0x9c, + 0x45, 0x05, 0x84, 0xbc, 0x31, 0x88, 0x93, 0x44, + 0x72, 0xec, 0x14, 0x6d, 0x91, 0x72, 0xc9, 0x65, + 0xfc, 0xed, 0xa8, 0xc9, 0xf5, 0x12, 0xf9, 0xea, + 0x25, 0xb1, 0x29, 0x54, 0x4b, 0x64, 0xf5, 0xad, + 0x1a, 0xd2, 0x3d, 0x89, 0x69, 0xe1, 0x92, 0x6a, + 0x23, 0x5e, 0x82, 0x50, 0xf2, 0x97, 0x89, 0x13, + 0x6b, 0x10, 0x86, 0xa4, 0xea, 0xd5, 0x1c, 0xba, + 0x86, 0x8c, 0xd4, 0xea, 0x5f, 0x9c, 0xb4, 0x94, + 0xb0, 0x3d, 0xc2, 0xc5, 0x4f, 0x57, 0x19, 0xa8, + 0x8e, 0x1b, 0x34, 0xec, 0xb1, 0xd6, 0xd3, 0xa2, + 0x93, 0xf2, 0xf2, 0x6c, 0xc4, 0xb4, 0xc6, 0x4a, + 0x84, 0x05, 0x51, 0xf7, 0x29, 0x77, 0xc8, 0x80, + 0x79, 0xac, 0x32, 0x51, 0xc5, 0x62, 0xb7, 0x5b, + 0x25, 0x9e, 0x24, 0x6a, 0x6a, 0x5e, 0x11, 0x54, + 0x09, 0x4b, 0x44, 0x26, 0x54, 0xa5, 0xd5, 0x9b, + 0xc6, 0x41, 0x57, 0x2d, 0x13, 0x69, 0x19, 0xc5, + 0xbc, 0x39, 0x03, 0x30, 0x4e, 0x23, 0xa8, 0x46, + 0x8e, 0x36, 0x8f, 0x2d, 0x9b, 0x22, 0x34, 0x79, + 0x73, 0x46, 0x82, 0xa0, 0xa6, 0x4b, 0xdc, 0x1a, + 0x72, 0xc8, 0x77, 0x3a, 0x31, 0x75, 0x97, 0x3b, + 0x5d, 0xcc, 0x77, 0xed, 0xf5, 0xa3, 0xfe, 0xda, + 0x5c, 0x29, 0xc8, 0xa9, 0xef, 0x10, 0x71, 0x4d, + 0x5f, 0x15, 0x64, 0x11, 0xd4, 0x42, 0xc1, 0x92, + 0x55, 0x0d, 0xb8, 0x8d, 0xc4, 0x8e, 0x72, 0x1e, + 0xf3, 0x29, 0xdc, 0x41, 0xde, 0x31, 0xb5, 0xf8, + 0xdd, 0x8d, 0xaf, 0xc6, 0xec, 0x4b, 0xb2, 0x9e, + 0x37, 0x86, 0x68, 0xd2, 0x58, 0x9c, 0x64, 0xf1, + 0xb8, 0x0c, 0xac, 0x3a, 0x77, 0x83, 0xde, 0x20, + 0x10, 0x7a, 0x41, 0x00, 0x82, 0x08, 0x07, 0x14, + 0xf4, 0x14, 0x16, 0xfd, 0xac, 0x94, 0x14, 0x71, + 0x45, 0x3b, 0x46, 0x54, 0x31, 0x69, 0x1c, 0x9e, + 0xe8, 0x4d, 0x52, 0xc8, 0xec, 0x88, 0xcc, 0x06, + 0xad, 0x05, 0x73, 0xc8, 0x67, 0xd0, 0x32, 0xb3, + 0xd3, 0x54, 0x43, 0x25, 0x7d, 0x6d, 0x7c, 0x70, + 0xc7, 0x55, 0x5f, 0x30, 0x66, 0x86, 0x26, 0x57, + 0x44, 0x8d, 0x73, 0xdc, 0x48, 0x2e, 0xa7, 0x59, + 0x39, 0x9e, 0x73, 0x93, 0xd2, 0xc7, 0x51, 0x65, + 0x14, 0xf6, 0xeb, 0x65, 0x24, 0xaf, 0x3d, 0x35, + 0x1c, 0x51, 0x4a, 0xe1, 0x83, 0x38, 0xd4, 0x77, + 0x37, 0xce, 0x08, 0xae, 0xcc, 0x91, 0x83, 0x9e, + 0x44, 0x46, 0xa8, 0x34, 0xf3, 0x7e, 0x6e, 0xec, + 0x0b, 0x55, 0xa4, 0x43, 0x2d, 0x3f, 0x12, 0x8f, + 0x63, 0x34, 0x8b, 0x2c, 0x91, 0xeb, 0x94, 0x8d, + 0xa2, 0xfc, 0xd7, 0x42, 0x64, 0xd5, 0x11, 0x00, + 0x95, 0xf9, 0x26, 0x4e, 0x69, 0x2a, 0x79, 0xa4, + 0x82, 0xb4, 0x74, 0x08, 0xb4, 0xa8, 0x94, 0xc8, + 0xa9, 0x45, 0x26, 0xd6, 0x95, 0x55, 0x9d, 0x44, + 0x52, 0x7e, 0x9e, 0xe7, 0xce, 0x46, 0x3d, 0x2c, + 0x65, 0xd7, 0xa8, 0xef, 0x6c, 0xce, 0x1a, 0x8a, + 0x85, 0xd2, 0xae, 0x36, 0xa7, 0x05, 0x2b, 0xa4, + 0x12, 0xd5, 0xae, 0xd2, 0x5f, 0x96, 0x90, 0x30, + 0x60, 0xc4, 0x89, 0x33, 0x4e, 0x70, 0x07, 0x28, + 0xca, 0x0f, 0x16, 0x1f, 0x67, 0x24, 0x4d, 0x03, + 0xae, 0xa8, 0x9d, 0x0c, 0x6c, 0x99, 0x91, 0x9a, + 0x11, 0xa4, 0xae, 0x60, 0x86, 0xe8, 0xdd, 0x98, + 0x39, 0xf8, 0xf0, 0x28, 0x68, 0x15, 0xe2, 0x71, + 0x4c, 0xa1, 0xe0, 0xa7, 0x34, 0xb0, 0xb6, 0xd2, + 0x5c, 0xd2, 0x9c, 0xab, 0x21, 0x8c, 0x7c, 0xa6, + 0xfe, 0x6b, 0x30, 0xd4, 0xd9, 0xbe, 0xf3, 0xce, + 0xc4, 0x94, 0x16, 0xe9, 0x69, 0x63, 0xa2, 0x92, + 0x96, 0x37, 0xa6, 0x87, 0xf2, 0x51, 0x96, 0x7c, + 0xe3, 0xdf, 0xab, 0x99, 0x2e, 0xbd, 0xb2, 0xe6, + 0x4e, 0xfc, 0xa4, 0xe7, 0x0e, 0x69, 0xcd, 0x77, + 0x63, 0x8a, 0x50, 0x8a, 0x43, 0x42, 0x29, 0x62, + 0x14, 0x84, 0x64, 0x60, 0xfc, 0xd3, 0xd0, 0x75, + 0x16, 0xcf, 0x59, 0x93, 0x30, 0x0e, 0xd4, 0xb6, + 0xd3, 0x50, 0x0d, 0xab, 0x31, 0x9e, 0x29, 0xad, + 0xf6, 0xea, 0x42, 0xc6, 0x9a, 0x92, 0x38, 0x8b, + 0xc5, 0xb0, 0x7d, 0xee, 0xc1, 0xe2, 0x2d, 0xa8, + 0xa3, 0xac, 0x8e, 0xea, 0xf9, 0x93, 0xbd, 0x98, + 0x17, 0x23, 0x9a, 0x58, 0xa8, 0x03, 0x10, 0x5b, + 0x2d, 0x74, 0xcf, 0x14, 0x90, 0x51, 0xc7, 0x14, + 0x90, 0xbb, 0x49, 0x1b, 0xab, 0xc9, 0xa9, 0x5d, + 0xd4, 0x2b, 0x1c, 0xcc, 0x87, 0x50, 0xc8, 0x64, + 0x15, 0xf5, 0x2a, 0xef, 0xd0, 0x17, 0x33, 0x99, + 0xb7, 0x5b, 0x5a, 0x97, 0x89, 0x35, 0x22, 0x1a, + 0x6d, 0xa1, 0x9b, 0x64, 0x5e, 0x43, 0x94, 0xa4, + 0xe6, 0x5d, 0x5c, 0xbe, 0xd5, 0x18, 0xf4, 0x12, + 0x8e, 0xbc, 0xd2, 0x57, 0xe6, 0xb1, 0x06, 0x4b, + 0x75, 0xb6, 0x5a, 0x68, 0xa9, 0x24, 0xa3, 0x89, + 0xa9, 0xe1, 0xfc, 0x94, 0x7c, 0xe5, 0xd9, 0x9e, + 0xe9, 0x59, 0x11, 0x96, 0x5c, 0xdf, 0xa6, 0x43, + 0xaf, 0x39, 0x4e, 0xf9, 0x35, 0x1c, 0x53, 0xac, + 0x14, 0xb1, 0x24, 0x14, 0xf1, 0xac, 0x30, 0xa0, + 0xc9, 0x51, 0x3a, 0x07, 0x7c, 0x92, 0x73, 0x66, + 0x63, 0xd2, 0xcc, 0xc4, 0xb3, 0x1d, 0xec, 0x49, + 0xc6, 0xd7, 0xe3, 0x76, 0x36, 0xbf, 0x1b, 0xb1, + 0x25, 0x54, 0x70, 0xc6, 0xf2, 0xca, 0xe1, 0x23, + 0x8d, 0x4b, 0x3b, 0xb1, 0x19, 0x00, 0x3e, 0x37, + 0x0e, 0x92, 0x77, 0x0d, 0xf8, 0xac, 0x98, 0x54, + 0xd6, 0x55, 0x54, 0x28, 0x21, 0x67, 0xa9, 0x9e, + 0x65, 0x07, 0xa4, 0x09, 0x65, 0x67, 0x00, 0xf8, + 0xc0, 0x3b, 0xff, 0x00, 0x77, 0xf0, 0x6e, 0xe9, + 0x1d, 0xb6, 0xae, 0x41, 0x39, 0xd3, 0x05, 0x4a, + 0x2a, 0x33, 0xfd, 0x1b, 0xa1, 0x26, 0x36, 0x20, + 0x67, 0xcd, 0xe7, 0x32, 0xb7, 0x7b, 0x50, 0x6e, + 0x80, 0x70, 0xb7, 0x1a, 0x46, 0x19, 0xad, 0x55, + 0x39, 0x1e, 0x29, 0xa3, 0xf5, 0xe3, 0x8f, 0xd2, + 0xf5, 0x98, 0x3c, 0xec, 0x7e, 0xbc, 0x54, 0x55, + 0xc7, 0x24, 0x2e, 0x90, 0x5c, 0x21, 0xa6, 0x95, + 0x87, 0x32, 0x60, 0xd0, 0xc9, 0xb3, 0x39, 0xe7, + 0x9e, 0x86, 0x60, 0xad, 0xde, 0xc8, 0xf7, 0xfb, + 0xf8, 0xb6, 0xf1, 0x3b, 0x75, 0x2a, 0xd3, 0x8a, + 0xd8, 0xa5, 0x6d, 0x6f, 0x24, 0xb3, 0x34, 0xb1, + 0x86, 0x96, 0x59, 0x0e, 0x6c, 0xe4, 0x6a, 0x6f, + 0xa8, 0x66, 0xcc, 0x72, 0xe9, 0x62, 0x71, 0xc7, + 0xa9, 0x7a, 0xcc, 0x1e, 0x76, 0x3f, 0x5e, 0x38, + 0xf5, 0x2f, 0x59, 0xa7, 0xf3, 0xb1, 0xfa, 0xf1, + 0xc7, 0xe9, 0xba, 0xcc, 0x1e, 0x7a, 0x3f, 0x5e, + 0x38, 0xf5, 0x2f, 0x59, 0x83, 0xce, 0xc7, 0xeb, + 0xc7, 0x1e, 0xa5, 0xeb, 0x30, 0x79, 0xd8, 0xfd, + 0x78, 0xe3, 0xd4, 0xbd, 0x66, 0x0f, 0x3b, 0x1f, + 0xaf, 0x1c, 0x7a, 0x97, 0xac, 0xc1, 0xe7, 0x63, + 0xf5, 0xe3, 0x8f, 0xd2, 0xf5, 0x98, 0x3c, 0xec, + 0x7e, 0xbc, 0x71, 0xea, 0x5e, 0xb3, 0x4f, 0xe7, + 0x63, 0xf5, 0xe2, 0xba, 0x41, 0x52, 0x23, 0x34, + 0xb7, 0x74, 0xa2, 0x96, 0x32, 0xdc, 0xe5, 0x68, + 0xa6, 0x8d, 0xd5, 0xf4, 0xe6, 0x24, 0x85, 0xdc, + 0x23, 0x11, 0xa4, 0x68, 0x7e, 0x94, 0xcd, 0xb2, + 0xf9, 0xc7, 0x16, 0xd5, 0xa6, 0xa0, 0x59, 0xcb, + 0xdc, 0x22, 0xaa, 0xa8, 0xaa, 0x97, 0x6d, 0x51, + 0x3b, 0x3c, 0x49, 0xad, 0xb2, 0xc9, 0x40, 0x40, + 0xcc, 0x15, 0x40, 0xcf, 0x76, 0x67, 0xa4, 0xe5, + 0x90, 0xc8, 0x0e, 0x3d, 0x4b, 0xd6, 0x60, 0xf3, + 0xb1, 0xfa, 0xf1, 0xc7, 0xe9, 0xba, 0xcc, 0x1e, + 0x7a, 0x3f, 0x5e, 0x38, 0xf5, 0x2f, 0x59, 0xa7, + 0xf3, 0xb1, 0xfa, 0xf1, 0xc7, 0xe9, 0x7a, 0xcc, + 0x1e, 0x76, 0x3f, 0x5e, 0x38, 0xfd, 0x2f, 0x59, + 0x83, 0xce, 0xc7, 0xeb, 0xc7, 0x1f, 0xa5, 0xeb, + 0x30, 0x79, 0xe8, 0xfd, 0x78, 0xbe, 0xdf, 0x29, + 0x62, 0xa2, 0xa8, 0xa7, 0x86, 0x58, 0xe7, 0x9e, + 0xa6, 0x27, 0x80, 0x2c, 0x6c, 0x1c, 0x22, 0x4a, + 0xa5, 0x1d, 0xd9, 0x97, 0x30, 0x32, 0x42, 0x74, + 0x8c, 0xf3, 0xd5, 0x96, 0xec, 0x81, 0xfc, 0x50, + 0xd5, 0x54, 0xd3, 0x67, 0xc5, 0xea, 0x26, 0x83, + 0x57, 0xce, 0xd9, 0x4a, 0xf1, 0xea, 0xcb, 0xa3, + 0x50, 0x52, 0x33, 0xcb, 0xc7, 0x8e, 0xca, 0xdc, + 0xfa, 0xfd, 0x5f, 0xa4, 0x49, 0xfa, 0xd8, 0xec, + 0xad, 0xcf, 0xaf, 0xd6, 0x7a, 0x44, 0x9f, 0xad, + 0x8e, 0xca, 0xdc, 0xfa, 0xfd, 0x5f, 0xa4, 0x49, + 0xfa, 0xd8, 0xec, 0xad, 0xcf, 0xaf, 0xd5, 0xfa, + 0x44, 0x9f, 0xad, 0x8e, 0xca, 0xdc, 0xfa, 0xfd, + 0x5f, 0xa4, 0x49, 0xfa, 0xd8, 0xec, 0xad, 0xcf, + 0xaf, 0xd5, 0xfa, 0x44, 0x9f, 0xad, 0x8e, 0xca, + 0xdc, 0xfa, 0xfd, 0x5f, 0xa4, 0x49, 0xfa, 0xd8, + 0xec, 0xad, 0xcf, 0xaf, 0xd5, 0xfa, 0x44, 0x9f, + 0xad, 0x8e, 0xca, 0xdc, 0xfa, 0xfd, 0x5f, 0xa4, + 0x49, 0xfa, 0xd8, 0xec, 0xad, 0xcf, 0xaf, 0xd5, + 0xfa, 0x44, 0x9f, 0xad, 0x8e, 0xca, 0xdc, 0xfa, + 0xfd, 0x5f, 0xa4, 0x49, 0xfa, 0xd8, 0xec, 0xad, + 0xcf, 0xaf, 0xd5, 0xfa, 0x44, 0x9f, 0xad, 0x8e, + 0xca, 0xdc, 0xfa, 0xfd, 0x5f, 0xa4, 0x49, 0xfa, + 0xd8, 0xec, 0xad, 0xcf, 0xaf, 0xd5, 0xfa, 0x44, + 0x9f, 0xad, 0x8e, 0xca, 0xdc, 0xfa, 0xfd, 0x5f, + 0xa4, 0x49, 0xfa, 0xd8, 0xec, 0xad, 0xcf, 0xaf, + 0xd5, 0xfa, 0x44, 0x9f, 0xad, 0x8e, 0xca, 0xdc, + 0xfa, 0xfd, 0x5f, 0xa4, 0x49, 0xfa, 0xd8, 0xec, + 0xad, 0xcf, 0xaf, 0xd5, 0xfa, 0x44, 0x9f, 0xad, + 0x8e, 0xca, 0xdc, 0xfa, 0xfd, 0x5f, 0xa4, 0x49, + 0xfa, 0xd8, 0xec, 0xad, 0xcf, 0xaf, 0xd5, 0xfa, + 0x44, 0x9f, 0xad, 0x89, 0xab, 0x2a, 0xea, 0x00, + 0x59, 0xea, 0x67, 0x99, 0x41, 0xcc, 0x2c, 0xb2, + 0xc8, 0xea, 0x0f, 0x7c, 0x2b, 0x31, 0x19, 0xf8, + 0xf2, 0xff, 0x00, 0xf4, 0xee, 0x2b, 0x75, 0xc6, + 0x74, 0x12, 0x41, 0x41, 0x5b, 0x32, 0x1e, 0x87, + 0x86, 0x92, 0x79, 0x10, 0xfd, 0x4c, 0x91, 0x90, + 0x7f, 0xeb, 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, + 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, + 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, + 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, + 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, + 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, + 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, + 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, + 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, + 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, + 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, + 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, + 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, + 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, + 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, + 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, + 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, + 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, + 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, + 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, + 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, + 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, 0xdd, 0xfc, + 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, 0x8e, 0xc3, + 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, 0xaf, 0x65, + 0x8e, 0xc3, 0xdd, 0xfc, 0x15, 0x72, 0xf4, 0x0a, + 0xaf, 0x65, 0x89, 0x61, 0x96, 0x07, 0x31, 0xcd, + 0x14, 0x90, 0xc8, 0x3a, 0x52, 0x54, 0x68, 0xdc, + 0x7f, 0xca, 0xe0, 0x1f, 0xe8, 0xfd, 0xf7, 0xe0, + 0x7d, 0xba, 0x0b, 0x95, 0xe5, 0x52, 0xa9, 0x44, + 0x90, 0x53, 0x41, 0x25, 0x5b, 0xc4, 0xc3, 0x35, + 0x94, 0xa3, 0xc5, 0x1a, 0x23, 0x83, 0xd2, 0x9a, + 0xe6, 0x56, 0x65, 0xfc, 0xe0, 0xba, 0x4e, 0xe2, + 0x71, 0xac, 0x0c, 0x80, 0x20, 0x00, 0x32, 0x00, + 0x74, 0x00, 0x3a, 0x00, 0x1d, 0xc0, 0x3b, 0xd8, + 0xd7, 0xe3, 0xc6, 0xbf, 0x1e, 0x35, 0xf8, 0xf1, + 0xaf, 0xc7, 0x8d, 0x7e, 0x3c, 0x6b, 0xf1, 0xe2, + 0x6a, 0x98, 0xa9, 0xe2, 0x92, 0x79, 0xa4, 0x11, + 0xc5, 0x12, 0x97, 0x91, 0xcf, 0x42, 0x28, 0xe9, + 0x63, 0x90, 0x27, 0x21, 0xe2, 0x18, 0xa5, 0xe1, + 0x05, 0x9e, 0xb2, 0x65, 0xa7, 0xa6, 0xb8, 0x41, + 0x2c, 0xcf, 0x9e, 0x88, 0xc6, 0xa5, 0x66, 0xc8, + 0x66, 0x42, 0xeb, 0x45, 0x0c, 0x72, 0xdf, 0xa4, + 0x1d, 0x47, 0xb8, 0x31, 0xaf, 0xc7, 0x88, 0xeb, + 0x69, 0xe6, 0x9a, 0xa2, 0x9e, 0x39, 0x95, 0xe6, + 0xa5, 0xd9, 0xf1, 0x88, 0xc0, 0x39, 0xc5, 0xb5, + 0x05, 0xa3, 0xd5, 0x98, 0xcb, 0x9e, 0x14, 0x91, + 0x91, 0x3d, 0x18, 0xd7, 0xe3, 0xc6, 0xbf, 0x1e, + 0x35, 0xf8, 0xf1, 0xaf, 0xc7, 0x8d, 0x7e, 0x3c, + 0x6b, 0xf1, 0xe3, 0x5f, 0x8f, 0x1a, 0xfc, 0x78, + 0xd7, 0xe3, 0xc6, 0xbf, 0x1e, 0x38, 0x53, 0x41, + 0x4d, 0x71, 0xb4, 0x56, 0x34, 0xaa, 0xa6, 0x6a, + 0x3a, 0x69, 0xea, 0xa9, 0xa6, 0xc8, 0x6d, 0x23, + 0x68, 0x23, 0x32, 0xb2, 0x06, 0xe9, 0xd1, 0x28, + 0x4d, 0x0e, 0xbd, 0x1b, 0xc3, 0x74, 0xa8, 0x3f, + 0xbe, 0xfc, 0x04, 0x6d, 0x37, 0x6a, 0x9f, 0xff, + 0x00, 0x6d, 0x94, 0x7f, 0xdd, 0x51, 0xe3, 0x6b, + 0xf1, 0xf0, 0x71, 0xb5, 0xf8, 0xf8, 0x38, 0xda, + 0xfc, 0x7c, 0x1c, 0x6d, 0x7e, 0x3e, 0x0e, 0x36, + 0xbf, 0x1f, 0x07, 0x1b, 0x5f, 0x8f, 0x83, 0x8d, + 0xaf, 0xc7, 0xc1, 0xc5, 0xf6, 0x4c, 0xec, 0xd7, + 0x21, 0xff, 0x00, 0x94, 0x97, 0xfa, 0xbe, 0xbc, + 0x5c, 0x29, 0xa8, 0xe1, 0xe0, 0xcd, 0xbe, 0xb2, + 0x0a, 0x7a, 0x78, 0x6b, 0xa1, 0x8e, 0xdb, 0x2c, + 0x35, 0x10, 0xc5, 0x1c, 0x73, 0x34, 0xe7, 0x65, + 0x99, 0x67, 0x8c, 0x2b, 0x4a, 0x5b, 0x32, 0xc7, + 0x59, 0x6e, 0x77, 0x3b, 0xa7, 0x7e, 0x2b, 0xef, + 0x37, 0x87, 0xb8, 0x57, 0x3d, 0x0c, 0xb5, 0x1a, + 0x6d, 0xf5, 0x11, 0xc1, 0x0d, 0x04, 0x36, 0xe9, + 0x6a, 0x62, 0xaa, 0xd3, 0xbe, 0x7e, 0x31, 0x50, + 0x8a, 0xdb, 0x16, 0x39, 0x9d, 0x23, 0x32, 0x4a, + 0xf4, 0x6c, 0xf2, 0x0c, 0xc4, 0x5c, 0xa7, 0xba, + 0xf0, 0x82, 0x5b, 0x7d, 0x78, 0xb7, 0x68, 0x86, + 0x8a, 0xa6, 0x40, 0xd1, 0x2c, 0x92, 0x4a, 0xe9, + 0x4b, 0x21, 0x8a, 0x13, 0xaf, 0x2d, 0x94, 0x63, + 0x39, 0x76, 0xaf, 0x93, 0x10, 0xfb, 0x31, 0xb3, + 0x3b, 0xf4, 0xdb, 0xef, 0x55, 0x75, 0x95, 0xd6, + 0x3d, 0x72, 0x68, 0x8e, 0xae, 0xd9, 0x53, 0x25, + 0x4c, 0x2a, 0x14, 0x24, 0x93, 0xc4, 0xee, 0x82, + 0x40, 0x0e, 0xf1, 0x9e, 0x9d, 0x40, 0x2b, 0x01, + 0xdc, 0x03, 0x2c, 0x0b, 0xc5, 0xce, 0x5a, 0x14, + 0x8a, 0x2a, 0xbd, 0x35, 0x35, 0xb7, 0xe9, 0xa8, + 0x12, 0xa9, 0xd5, 0x5b, 0x8b, 0xd3, 0xab, 0x66, + 0x34, 0x00, 0x34, 0x92, 0x00, 0xc9, 0x73, 0xde, + 0xc0, 0x90, 0x0e, 0x7b, 0xc5, 0x9a, 0xa6, 0xe4, + 0x97, 0x8b, 0x95, 0xbe, 0xba, 0xbc, 0xd7, 0x25, + 0x35, 0x34, 0x0d, 0x13, 0xec, 0xd2, 0x20, 0x76, + 0x85, 0x0e, 0xa2, 0x89, 0x9e, 0x97, 0xd2, 0x72, + 0x61, 0xad, 0x87, 0x8f, 0x1b, 0x5f, 0x8f, 0x83, + 0x8d, 0xaf, 0xc7, 0xc1, 0xc6, 0xd7, 0xe3, 0xe0, + 0xe3, 0x6b, 0xf1, 0xf0, 0x71, 0xb5, 0xf8, 0xf8, + 0x38, 0xda, 0xfc, 0x7c, 0x1c, 0x6d, 0x7e, 0x3e, + 0x0e, 0x2e, 0xd2, 0x7f, 0xe1, 0x57, 0x3f, 0x1d, + 0xba, 0xb4, 0x7f, 0xdb, 0x4b, 0xe3, 0xfd, 0xf7, + 0xe0, 0x9d, 0x54, 0x74, 0xd7, 0x5c, 0xa4, 0x3a, + 0x78, 0xcd, 0x3c, 0x94, 0xea, 0x4f, 0x46, 0xb6, + 0x92, 0x29, 0x14, 0x7f, 0xcd, 0xb2, 0xd2, 0x3f, + 0x84, 0x40, 0xc6, 0xd7, 0xe3, 0xe0, 0xe3, 0x6b, + 0xf1, 0xf0, 0x71, 0xb5, 0xf8, 0xf8, 0x38, 0xda, + 0xfc, 0x7c, 0x1c, 0x6d, 0x7e, 0x3e, 0x0e, 0x36, + 0xbf, 0x1f, 0x07, 0x1b, 0x5f, 0x8f, 0x83, 0x8a, + 0xa4, 0x4a, 0xba, 0x79, 0xa9, 0xa4, 0x66, 0x54, + 0x9e, 0x36, 0x8d, 0x8a, 0x11, 0xa8, 0x06, 0xfd, + 0x1d, 0x41, 0x86, 0x7f, 0x5a, 0x9c, 0x41, 0x61, + 0xa5, 0x89, 0xe0, 0x69, 0x2a, 0xee, 0x15, 0x71, + 0xd3, 0x32, 0xbc, 0x34, 0xf5, 0x55, 0x22, 0x4a, + 0x74, 0x74, 0x19, 0x46, 0xc2, 0x30, 0x8a, 0x06, + 0x81, 0xf3, 0x40, 0xc8, 0x65, 0xbb, 0x2c, 0xb7, + 0x62, 0xaa, 0xcb, 0x45, 0x57, 0x52, 0xf5, 0x0f, + 0x25, 0x4a, 0x09, 0x8c, 0x6d, 0x53, 0x4f, 0x1c, + 0xda, 0x69, 0xaa, 0x9a, 0x2f, 0x98, 0x67, 0x8f, + 0x22, 0x58, 0x8e, 0x8d, 0xcc, 0x3b, 0xe3, 0x22, + 0x49, 0x35, 0x56, 0x1a, 0x4a, 0xa9, 0xea, 0x2a, + 0x0d, 0x4d, 0x6c, 0x2f, 0x54, 0x15, 0x25, 0x14, + 0xf3, 0x24, 0x68, 0x62, 0x54, 0x08, 0x61, 0xd2, + 0x23, 0x3a, 0xa2, 0x7d, 0x28, 0x59, 0x5f, 0x56, + 0xf4, 0x1a, 0x72, 0x19, 0x83, 0x3d, 0x9e, 0x8a, + 0x65, 0xa3, 0x08, 0xf5, 0x14, 0xbc, 0x45, 0x0c, + 0x70, 0x3d, 0x2c, 0xdb, 0x29, 0x36, 0x4d, 0xf3, + 0xa3, 0x67, 0xe7, 0x31, 0x0c, 0x73, 0x24, 0x82, + 0x1b, 0x36, 0x6e, 0x77, 0x38, 0xe2, 0xb6, 0xdb, + 0x4b, 0x47, 0x6d, 0xe2, 0xd1, 0x53, 0xd6, 0xd4, + 0xc3, 0xc7, 0x38, 0xc8, 0xe2, 0xce, 0x9c, 0x72, + 0x95, 0x88, 0x3a, 0x64, 0xa7, 0x1a, 0x3e, 0x50, + 0x21, 0x0a, 0x9a, 0x5b, 0x9c, 0x15, 0xcb, 0xea, + 0x25, 0x71, 0xc1, 0xf8, 0x64, 0x4a, 0xda, 0xfa, + 0xbd, 0x95, 0x6c, 0x50, 0xcb, 0x14, 0x31, 0x23, + 0x5c, 0x09, 0xe3, 0x73, 0x3a, 0xf3, 0xa4, 0x92, + 0x4c, 0xf7, 0xf4, 0x8f, 0xe2, 0xef, 0x01, 0x4e, + 0xe3, 0x96, 0xd7, 0xe3, 0xe0, 0xe3, 0x6b, 0xf1, + 0xf0, 0x71, 0xb5, 0xf8, 0xf8, 0x38, 0xda, 0xfc, + 0x7c, 0x1c, 0x6d, 0x7e, 0x3e, 0x0e, 0x36, 0xbf, + 0x1f, 0x07, 0x1b, 0x5f, 0x8f, 0x83, 0x8b, 0xd5, + 0x64, 0x70, 0x5a, 0xeb, 0x8c, 0x8d, 0x96, 0xd2, + 0x9a, 0x68, 0x10, 0x77, 0x5a, 0x49, 0xe3, 0x68, + 0xd1, 0x40, 0xcf, 0xbe, 0xd9, 0x9e, 0xf2, 0x82, + 0x7b, 0x9f, 0xbf, 0x09, 0x7b, 0xba, 0xc6, 0xa1, + 0x56, 0xb6, 0x6c, 0x86, 0xe1, 0xab, 0x4b, 0x9f, + 0x29, 0xd5, 0x98, 0xff, 0x00, 0x39, 0xc7, 0x67, + 0xae, 0xfd, 0x76, 0x4f, 0x26, 0x2f, 0x67, 0x8e, + 0xcf, 0x5d, 0xfa, 0xec, 0x9e, 0x4c, 0x5e, 0xcf, + 0x1d, 0x9e, 0xbb, 0xf5, 0xd9, 0x3c, 0x98, 0xbd, + 0x9e, 0x3b, 0x3d, 0x77, 0xeb, 0xb2, 0x79, 0x31, + 0x7b, 0x3c, 0x76, 0x7a, 0xef, 0xd7, 0x64, 0xf2, + 0x62, 0xf6, 0x78, 0xec, 0xf5, 0xdf, 0xae, 0xc9, + 0xe4, 0xc5, 0xec, 0xf1, 0xd9, 0xeb, 0xbf, 0x5d, + 0x93, 0xc9, 0x8b, 0xd9, 0xe3, 0xb3, 0xd7, 0x7e, + 0xbb, 0x27, 0x93, 0x17, 0xb3, 0xc7, 0x67, 0xae, + 0xfd, 0x76, 0x4f, 0x26, 0x2f, 0x67, 0x8e, 0xcf, + 0x5d, 0xfa, 0xec, 0x9e, 0x4c, 0x5e, 0xcf, 0x1d, + 0x9e, 0xbb, 0xf5, 0xd9, 0x3c, 0x98, 0xbd, 0x9e, + 0x3b, 0x3d, 0x77, 0xeb, 0xb2, 0x79, 0x31, 0x7b, + 0x3c, 0x76, 0x7a, 0xef, 0xd7, 0x64, 0xf2, 0x62, + 0xf6, 0x78, 0xec, 0xf5, 0xdf, 0xae, 0xc9, 0xe4, + 0xc5, 0xec, 0xf1, 0xd9, 0xeb, 0xbf, 0x5d, 0x93, + 0xc9, 0x8b, 0xd9, 0xe3, 0xb3, 0xd7, 0x7e, 0xbb, + 0x27, 0x93, 0x17, 0xb3, 0xc7, 0x67, 0xae, 0xfd, + 0x76, 0x4f, 0x26, 0x2f, 0x67, 0x8e, 0xcf, 0x5d, + 0xfa, 0xec, 0x9e, 0x4c, 0x5e, 0xcf, 0x1d, 0x9e, + 0xbb, 0xf5, 0xd9, 0x3c, 0x98, 0xbd, 0x9e, 0x3b, + 0x3d, 0x77, 0xeb, 0xb2, 0x79, 0x31, 0x7b, 0x3c, + 0x54, 0xd6, 0xd5, 0x56, 0x10, 0x6a, 0x67, 0x92, + 0x6d, 0x3f, 0x37, 0x51, 0xdc, 0xbd, 0xfc, 0x94, + 0x64, 0xa3, 0x3e, 0xe9, 0x03, 0x33, 0xff, 0x00, + 0xa1, 0xeb, 0x65, 0xba, 0xa2, 0xeb, 0x5b, 0x0d, + 0x0d, 0x30, 0x1b, 0x49, 0x89, 0xe7, 0x37, 0xcc, + 0x8d, 0x14, 0x6a, 0x79, 0x1c, 0x8f, 0xcd, 0x45, + 0x04, 0xf7, 0xc9, 0xc9, 0x47, 0x38, 0x81, 0x88, + 0x7f, 0x07, 0x96, 0xa5, 0x40, 0x2a, 0x2b, 0xab, + 0xe5, 0x93, 0xba, 0xd0, 0x9a, 0x78, 0x13, 0xc7, + 0x92, 0x3c, 0x15, 0x0d, 0xd3, 0xdf, 0x93, 0x1d, + 0xaf, 0xac, 0x7d, 0x66, 0xeb, 0xe7, 0xe9, 0x3e, + 0xe1, 0x8e, 0xd7, 0xd6, 0x3e, 0xb3, 0x75, 0xf3, + 0xf4, 0x9f, 0x70, 0xc7, 0x6b, 0xeb, 0x1f, 0x59, + 0xba, 0xf9, 0xfa, 0x4f, 0xb8, 0x63, 0xb5, 0xf5, + 0x8f, 0xac, 0xdd, 0x7c, 0xfd, 0x27, 0xdc, 0x31, + 0xda, 0xfa, 0xc7, 0xd6, 0x6e, 0xbe, 0x7e, 0x93, + 0xee, 0x18, 0xed, 0x7d, 0x63, 0xeb, 0x37, 0x5f, + 0x3f, 0x49, 0xf7, 0x0c, 0x76, 0xbe, 0xb1, 0xf5, + 0x9b, 0xaf, 0x9f, 0xa4, 0xfb, 0x86, 0x3b, 0x5f, + 0x58, 0xfa, 0xcd, 0xd7, 0xcf, 0xd2, 0x7d, 0xc3, + 0x1d, 0xaf, 0xac, 0x7d, 0x66, 0xeb, 0xe7, 0xe9, + 0x3e, 0xe1, 0x8e, 0xd7, 0xd6, 0x3e, 0xb3, 0x75, + 0xf3, 0xf4, 0x9f, 0x70, 0xc7, 0x6b, 0xeb, 0x1f, + 0x59, 0xba, 0xf9, 0xfa, 0x4f, 0xb8, 0x63, 0xb5, + 0xf5, 0x8f, 0xac, 0xdd, 0x7c, 0xfd, 0x27, 0xdc, + 0x31, 0xda, 0xfa, 0xc7, 0xd6, 0x6e, 0xbe, 0x7e, + 0x93, 0xee, 0x18, 0xed, 0x7d, 0x63, 0xeb, 0x37, + 0x5f, 0x3f, 0x49, 0xf7, 0x0c, 0x76, 0xbe, 0xb1, + 0xf5, 0x9b, 0xaf, 0x9f, 0xa4, 0xfb, 0x86, 0x3b, + 0x5f, 0x58, 0xfa, 0xcd, 0xd7, 0xcf, 0xd2, 0x7d, + 0xc3, 0x1d, 0xaf, 0xac, 0x7d, 0x66, 0xeb, 0xe7, + 0xe9, 0x3e, 0xe1, 0x8e, 0xd7, 0xd6, 0x3e, 0xb3, + 0x75, 0xf3, 0xf4, 0x9f, 0x70, 0xc7, 0x6b, 0xeb, + 0x1f, 0x59, 0xba, 0xf9, 0xfa, 0x4f, 0xb8, 0x63, + 0xb5, 0xf5, 0x8f, 0xac, 0xdd, 0x7c, 0xfd, 0x27, + 0xdc, 0x31, 0xc2, 0x4e, 0x08, 0xb5, 0x96, 0x11, + 0x59, 0x4d, 0x50, 0xd5, 0x54, 0x7a, 0xd5, 0x24, + 0xda, 0x20, 0x49, 0xa0, 0x67, 0xcf, 0x41, 0x6d, + 0x27, 0x43, 0xa3, 0x1e, 0x6e, 0xb0, 0x10, 0x86, + 0x20, 0x15, 0xde, 0x0f, 0xe2, 0xb0, 0x70, 0x23, + 0xb2, 0x14, 0xb1, 0xd6, 0xdc, 0x6a, 0x65, 0xa7, + 0x8a, 0x71, 0xae, 0x18, 0x29, 0xc2, 0xed, 0x9a, + 0x33, 0xd1, 0x23, 0xc9, 0x22, 0xba, 0x20, 0x71, + 0xbd, 0x14, 0x46, 0xe4, 0x82, 0x0b, 0x15, 0xf9, + 0xb8, 0xed, 0x7d, 0x62, 0xeb, 0x37, 0x6f, 0x48, + 0xa3, 0xf7, 0x7e, 0x3b, 0x5f, 0x58, 0xba, 0xcd, + 0xdb, 0xd2, 0x28, 0xfd, 0xdf, 0x8e, 0xd7, 0xd6, + 0x2e, 0xb3, 0x76, 0xf4, 0x8a, 0x3f, 0x77, 0xe3, + 0xb5, 0xf5, 0x8b, 0xac, 0xdd, 0xbd, 0x22, 0x8f, + 0xdd, 0xf8, 0xed, 0x7d, 0x62, 0xeb, 0x37, 0x6f, + 0x48, 0xa3, 0xf7, 0x7e, 0x3b, 0x5f, 0x58, 0xba, + 0xcd, 0xdb, 0xd2, 0x28, 0xfd, 0xdf, 0x8e, 0xd7, + 0xd6, 0x2e, 0xb3, 0x76, 0xf4, 0x8a, 0x3f, 0x77, + 0xe3, 0xb5, 0xf5, 0x8b, 0xac, 0xdd, 0xbd, 0x22, + 0x8f, 0xdd, 0xf8, 0xed, 0x7d, 0x62, 0xeb, 0x37, + 0x6f, 0x48, 0xa3, 0xf7, 0x7e, 0x3b, 0x5f, 0x58, + 0xba, 0xcd, 0xdb, 0xd2, 0x28, 0xfd, 0xdf, 0x8e, + 0xd7, 0xd6, 0x2e, 0xb3, 0x76, 0xf4, 0x8a, 0x3f, + 0x77, 0xe3, 0xb5, 0xf5, 0x8b, 0xac, 0xdd, 0xbd, + 0x22, 0x8f, 0xdd, 0xf8, 0xed, 0x7d, 0x62, 0xeb, + 0x37, 0x6f, 0x48, 0xa3, 0xf7, 0x7e, 0x3b, 0x5f, + 0x58, 0xba, 0xcd, 0xdb, 0xd2, 0x28, 0xfd, 0xdf, + 0x8e, 0xd7, 0xd6, 0x2e, 0xb3, 0x76, 0xf4, 0x8a, + 0x3f, 0x77, 0xe3, 0xb5, 0xf5, 0x8b, 0xac, 0xdd, + 0xbd, 0x22, 0x8f, 0xdd, 0xf8, 0xed, 0x7d, 0x62, + 0xeb, 0x37, 0x6f, 0x48, 0xa3, 0xf7, 0x7e, 0x3b, + 0x5f, 0x58, 0xba, 0xcd, 0xdb, 0xd2, 0x28, 0xfd, + 0xdf, 0x8e, 0xd7, 0xd6, 0x2e, 0xb3, 0x76, 0xf4, + 0x8a, 0x3f, 0x77, 0xe3, 0xb5, 0xf5, 0x8b, 0xac, + 0xdd, 0xbd, 0x22, 0x8f, 0xdd, 0xf8, 0x7f, 0xc1, + 0xed, 0x94, 0xa9, 0xd1, 0x59, 0x74, 0x56, 0xee, + 0x33, 0x49, 0x49, 0x22, 0x8f, 0xad, 0x05, 0x1c, + 0x44, 0xf9, 0x63, 0x17, 0xdb, 0x25, 0x45, 0x8e, + 0xac, 0x53, 0xcc, 0xc2, 0x58, 0xe4, 0x5d, 0xa5, + 0x3d, 0x42, 0x82, 0xab, 0x2a, 0x67, 0x91, 0xcd, + 0x49, 0x3a, 0x24, 0x43, 0xb9, 0xd3, 0x53, 0x69, + 0xcc, 0x10, 0xc4, 0x10, 0x4f, 0xec, 0xa8, 0x28, + 0x6a, 0x6e, 0x55, 0x51, 0x51, 0xd2, 0x26, 0xb9, + 0xa5, 0x27, 0x2c, 0xce, 0x4a, 0xa0, 0x0c, 0xd9, + 0xdd, 0xbf, 0x35, 0x14, 0x0c, 0xc9, 0xfe, 0x60, + 0x09, 0x20, 0x18, 0xff, 0x00, 0x07, 0x19, 0xa0, + 0xdb, 0x5e, 0x02, 0x3f, 0x75, 0x62, 0xa1, 0xda, + 0xa0, 0x3d, 0xdc, 0x9d, 0xaa, 0xe1, 0x27, 0xc8, + 0x18, 0xed, 0x6f, 0x1f, 0x86, 0xdb, 0xec, 0xd5, + 0xf7, 0x86, 0x3b, 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, + 0x35, 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, + 0xbe, 0xcd, 0x5f, 0x78, 0x63, 0xb5, 0xbc, 0x7e, + 0x1b, 0x6f, 0xb3, 0x57, 0xde, 0x18, 0xed, 0x6f, + 0x1f, 0x86, 0xdb, 0xec, 0xd5, 0xf7, 0x86, 0x3b, + 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, 0x35, 0x7d, 0xe1, + 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, + 0x78, 0x63, 0xb5, 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, + 0x57, 0xde, 0x18, 0xed, 0x6f, 0x1f, 0x86, 0xdb, + 0xec, 0xd5, 0xf7, 0x86, 0x3b, 0x5b, 0xc7, 0xe1, + 0xb6, 0xfb, 0x35, 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, + 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, 0x78, 0x63, 0xb5, + 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, 0x57, 0xde, 0x18, + 0xed, 0x6f, 0x1f, 0x86, 0xdb, 0xec, 0xd5, 0xf7, + 0x86, 0x3b, 0x5b, 0xc7, 0xe1, 0xb6, 0xfb, 0x35, + 0x7d, 0xe1, 0x8e, 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, + 0xcd, 0x5f, 0x78, 0x63, 0xb5, 0xbc, 0x7e, 0x1b, + 0x6f, 0xb3, 0x57, 0xde, 0x18, 0xed, 0x6f, 0x1f, + 0x86, 0xdb, 0xec, 0xd5, 0xf7, 0x86, 0x3b, 0x5b, + 0xc7, 0xe1, 0xb6, 0xfb, 0x35, 0x7d, 0xe1, 0x8e, + 0xd6, 0xf1, 0xf8, 0x6d, 0xbe, 0xcd, 0x5f, 0x78, + 0x63, 0xb5, 0xbc, 0x7e, 0x1b, 0x6f, 0xb3, 0x57, + 0xde, 0x18, 0xbf, 0x70, 0x4a, 0xb2, 0xc9, 0x17, + 0x1a, 0x13, 0x25, 0x65, 0x26, 0xa5, 0x57, 0x95, + 0x10, 0xc6, 0xf1, 0x33, 0x1c, 0x97, 0x6b, 0x11, + 0x2f, 0x92, 0x33, 0x64, 0xa1, 0xc3, 0xb0, 0xd4, + 0x42, 0xb6, 0x92, 0xcb, 0x9e, 0x38, 0x03, 0x90, + 0xbc, 0x54, 0x13, 0xd2, 0xb6, 0xd9, 0x8a, 0xf8, + 0x89, 0xa9, 0xa3, 0x5c, 0xc7, 0xfc, 0xa4, 0x8f, + 0xa8, 0x9c, 0x6d, 0x7e, 0x3e, 0x0e, 0x36, 0xbd, + 0xf3, 0x90, 0xee, 0x9e, 0xf0, 0xef, 0xf4, 0xe2, + 0x29, 0x38, 0x41, 0x7b, 0x86, 0xa2, 0xed, 0x47, + 0x75, 0x6a, 0x24, 0x59, 0x65, 0x5b, 0x7d, 0xbd, + 0x22, 0x42, 0x92, 0xa4, 0x0d, 0xcd, 0x13, 0xc8, + 0xce, 0x17, 0x5c, 0x87, 0x73, 0x17, 0x59, 0x55, + 0x9b, 0x30, 0x74, 0x47, 0x92, 0xad, 0x45, 0xfd, + 0xad, 0xf0, 0x50, 0xc7, 0x59, 0x4d, 0x34, 0xf7, + 0x5a, 0xa8, 0x81, 0x6a, 0x1a, 0x05, 0xdb, 0xbe, + 0xa5, 0xdd, 0x2b, 0xae, 0x47, 0xe6, 0x66, 0x09, + 0x55, 0x05, 0xcf, 0x4a, 0xe6, 0xc1, 0x0b, 0xe1, + 0xf8, 0x57, 0x44, 0xb6, 0xf8, 0xee, 0x1b, 0x2a, + 0x92, 0xa6, 0xb1, 0x68, 0x66, 0x83, 0x40, 0x15, + 0x14, 0xf3, 0x95, 0x76, 0x61, 0x22, 0x17, 0x19, + 0xe9, 0x09, 0xd0, 0x0e, 0x6d, 0x98, 0xc8, 0x67, + 0x9e, 0x47, 0x86, 0x94, 0xea, 0xb2, 0xea, 0xb6, + 0xdd, 0x16, 0x6a, 0x76, 0xfd, 0xb3, 0x01, 0xa7, + 0xc9, 0xe9, 0xe1, 0xc9, 0x72, 0x9e, 0x62, 0x5b, + 0x28, 0xd0, 0x96, 0x55, 0x01, 0xf4, 0x92, 0x4f, + 0x78, 0x82, 0x6b, 0x38, 0x59, 0x4d, 0x4b, 0x28, + 0x89, 0x29, 0x6b, 0x6a, 0xcb, 0x51, 0x45, 0x5e, + 0x86, 0x9a, 0x30, 0xe0, 0xd3, 0xc8, 0xbb, 0x4d, + 0x6c, 0x35, 0x67, 0x1a, 0xc7, 0x1f, 0x3e, 0x46, + 0x61, 0xa5, 0x47, 0x77, 0x14, 0xdc, 0x2e, 0xa2, + 0xa9, 0x9e, 0x9a, 0x2d, 0x85, 0x64, 0x31, 0x55, + 0x23, 0xb4, 0x35, 0x53, 0x43, 0xa2, 0x9d, 0xde, + 0x24, 0xd7, 0x34, 0x6a, 0xda, 0x8e, 0xb3, 0x0f, + 0xcd, 0x76, 0x4d, 0x40, 0x36, 0x5d, 0xc6, 0x07, + 0x14, 0x3c, 0x2a, 0xa6, 0xad, 0xaa, 0x86, 0x9c, + 0x52, 0x57, 0x41, 0x1d, 0x51, 0x94, 0x52, 0x55, + 0x4f, 0x16, 0x88, 0x2a, 0x4c, 0x5d, 0x3b, 0x36, + 0xd4, 0x7a, 0x47, 0xd7, 0xa4, 0xe4, 0xad, 0x91, + 0x38, 0xe1, 0x0d, 0x5d, 0x4f, 0x65, 0xad, 0xb4, + 0x91, 0xde, 0x5a, 0xcf, 0x4f, 0x35, 0x2c, 0xef, + 0x2d, 0x46, 0xa4, 0x11, 0xeb, 0x47, 0x6d, 0x3a, + 0xb6, 0x92, 0xc2, 0xa4, 0xb6, 0x5a, 0x06, 0x72, + 0x0e, 0x9d, 0xd9, 0xf4, 0x62, 0xd7, 0x7f, 0x7a, + 0x14, 0xbc, 0xad, 0x6d, 0xc1, 0xae, 0xf4, 0xb6, + 0xf7, 0xa6, 0xe2, 0xd5, 0xb1, 0xa0, 0x2f, 0x51, + 0x25, 0x4e, 0xb1, 0xc5, 0xd4, 0xab, 0x32, 0xb9, + 0xd6, 0xa3, 0x49, 0xda, 0xba, 0xa8, 0xd5, 0xcf, + 0xd1, 0xa4, 0x03, 0xc2, 0xda, 0x55, 0xa3, 0xaa, + 0xaa, 0x92, 0x96, 0xb2, 0x19, 0x68, 0xe5, 0x86, + 0x2a, 0x8a, 0x29, 0xa3, 0x11, 0xd4, 0xc7, 0xc6, + 0x0f, 0xc9, 0x3e, 0x97, 0x60, 0x34, 0xb0, 0x04, + 0xf4, 0x82, 0x32, 0xe8, 0xde, 0x09, 0x8e, 0xf1, + 0x0c, 0xf7, 0x48, 0x2a, 0x24, 0x86, 0xed, 0x4d, + 0x38, 0xb5, 0x55, 0xcc, 0xb4, 0xb3, 0x32, 0x45, + 0x4e, 0x60, 0x86, 0x49, 0x8e, 0xb9, 0x69, 0x8f, + 0x3f, 0x8c, 0x3e, 0x92, 0x63, 0x7d, 0x41, 0x74, + 0x6c, 0xf3, 0x19, 0x6f, 0xc5, 0x27, 0x0b, 0xe9, + 0x6a, 0xa5, 0xa4, 0x43, 0x47, 0x5d, 0x04, 0x35, + 0x8e, 0x21, 0x86, 0xae, 0x68, 0xb2, 0xa6, 0x6a, + 0x83, 0xbb, 0x62, 0x24, 0x0c, 0x43, 0x36, 0xbe, + 0x67, 0x37, 0x3c, 0x9b, 0xa7, 0x21, 0x99, 0x14, + 0xfc, 0x29, 0x34, 0x32, 0xdc, 0xd2, 0xb6, 0x3a, + 0xfa, 0xb4, 0x8a, 0xef, 0x3a, 0x19, 0xe3, 0x8c, + 0xc9, 0x05, 0x0d, 0x2b, 0x6c, 0x92, 0x04, 0x77, + 0xcc, 0x01, 0x9b, 0x2c, 0xc5, 0x23, 0xe9, 0x3a, + 0x4e, 0x5b, 0xce, 0x2e, 0x1c, 0x28, 0xa4, 0xa0, + 0xa8, 0xd8, 0x6c, 0x2a, 0xea, 0xb6, 0x71, 0x47, + 0x3d, 0x54, 0xb4, 0xb1, 0x6d, 0x23, 0xa4, 0x86, + 0x52, 0xba, 0x24, 0x98, 0xe6, 0x32, 0x0c, 0xac, + 0x1b, 0xbd, 0xce, 0x51, 0x9e, 0xa6, 0xc8, 0x37, + 0x09, 0xa1, 0xec, 0x8a, 0x5b, 0xe0, 0xa5, 0xab, + 0xaa, 0x67, 0x5a, 0x59, 0x36, 0xf0, 0x28, 0x68, + 0x56, 0x1a, 0xa1, 0x1b, 0x2c, 0xd2, 0x73, 0xb5, + 0x24, 0x68, 0x25, 0x5d, 0x45, 0x94, 0x6f, 0xdd, + 0xd3, 0x96, 0x29, 0xf8, 0x49, 0x1d, 0x45, 0x44, + 0x34, 0xed, 0x47, 0x59, 0x4c, 0x2a, 0xf8, 0xd0, + 0xa4, 0x9a, 0x75, 0x8d, 0x44, 0xad, 0x49, 0x9e, + 0xd4, 0x18, 0xc4, 0x86, 0x68, 0x48, 0xc8, 0xe4, + 0x25, 0x45, 0x3b, 0xb2, 0xc5, 0xb7, 0x84, 0xcf, + 0x4f, 0x6a, 0xb6, 0x8a, 0x88, 0xeb, 0xae, 0x95, + 0xf5, 0x42, 0xaa, 0x4d, 0x14, 0xe9, 0xb6, 0x9b, + 0x65, 0x15, 0x44, 0xa9, 0xb4, 0x7d, 0xe0, 0xe9, + 0x19, 0x04, 0x19, 0x03, 0xb9, 0x4e, 0x79, 0x01, + 0xbe, 0x82, 0xe5, 0x15, 0xc6, 0x92, 0x1a, 0xc8, + 0x35, 0x08, 0xe6, 0x52, 0x42, 0xbe, 0xe7, 0x56, + 0x56, 0x2a, 0xe8, 0xc3, 0x33, 0xbd, 0x5d, 0x4a, + 0x9c, 0x89, 0x1b, 0xb7, 0x6e, 0xc6, 0xd7, 0xe3, + 0xe0, 0xe3, 0x85, 0xaf, 0xab, 0x83, 0xb7, 0x21, + 0xfc, 0x1a, 0x5f, 0xef, 0xd4, 0xbf, 0x8a, 0x85, + 0xf4, 0xd0, 0xd1, 0x01, 0xbb, 0x2a, 0x4a, 0x6f, + 0xec, 0x53, 0x1b, 0x5f, 0x8f, 0x83, 0x8d, 0xaf, + 0xc7, 0xc1, 0xc6, 0xd7, 0xe3, 0xe0, 0xe3, 0x6b, + 0xf1, 0xf0, 0x71, 0xb5, 0xf8, 0xf8, 0x38, 0xda, + 0xfc, 0x7c, 0x1c, 0x6d, 0x7e, 0x3e, 0x0e, 0x38, + 0x4b, 0x7e, 0xaf, 0xa0, 0x9e, 0x96, 0x1b, 0x71, + 0x19, 0xa4, 0x4f, 0x5b, 0x5c, 0x36, 0x71, 0xc8, + 0x78, 0xa2, 0x3a, 0x27, 0xfb, 0xc5, 0x6d, 0x00, + 0x9d, 0x7c, 0xe4, 0xc9, 0xbc, 0x63, 0x2c, 0x55, + 0xdf, 0x68, 0x68, 0xa1, 0xa4, 0xa8, 0xa8, 0x91, + 0x96, 0x1a, 0xcc, 0xb6, 0x52, 0x28, 0xd4, 0xbb, + 0xe3, 0xda, 0x82, 0xc4, 0x1c, 0xc2, 0xe9, 0xee, + 0x80, 0x49, 0x3b, 0xb2, 0xc4, 0x1c, 0x26, 0xb6, + 0x54, 0x51, 0x55, 0x57, 0xa4, 0xb2, 0x2c, 0x14, + 0x64, 0x09, 0xc3, 0xc6, 0xcb, 0x2a, 0x96, 0xc8, + 0x47, 0x92, 0x02, 0x75, 0x6d, 0x18, 0xe9, 0x4c, + 0x8f, 0xce, 0xf9, 0xda, 0x71, 0x71, 0xe1, 0x26, + 0xab, 0x55, 0xc6, 0x7b, 0x7b, 0x4f, 0x4d, 0x5b, + 0x44, 0xd4, 0x81, 0xe3, 0xab, 0xa6, 0xd9, 0xcd, + 0x10, 0xa8, 0x9a, 0x20, 0x18, 0xc3, 0x38, 0x75, + 0x2b, 0x24, 0x4c, 0xda, 0x49, 0x1f, 0xc2, 0x00, + 0x73, 0x4e, 0x2b, 0xb8, 0x4f, 0x6d, 0xb6, 0xbc, + 0x50, 0xd5, 0x4b, 0x21, 0x99, 0xe3, 0x57, 0x75, + 0x86, 0x33, 0x26, 0xcd, 0x5b, 0x2c, 0x9a, 0x5c, + 0x88, 0x0b, 0xab, 0xa4, 0x28, 0xcd, 0xb4, 0xef, + 0xd3, 0x91, 0x5c, 0xeb, 0xb8, 0x47, 0x6c, 0xa0, + 0x82, 0x9a, 0xa2, 0x59, 0x9a, 0x44, 0xac, 0x1a, + 0xe9, 0xc4, 0x0a, 0x64, 0x79, 0x23, 0xcb, 0x56, + 0xd3, 0x4e, 0x6b, 0xa5, 0x06, 0x60, 0x1d, 0x44, + 0x1d, 0x47, 0x4e, 0x9c, 0xc3, 0x69, 0xb7, 0x5e, + 0x69, 0x2e, 0xb1, 0xcb, 0x2d, 0x1b, 0x3b, 0x47, + 0x14, 0xa6, 0x12, 0xce, 0x86, 0x3d, 0x4c, 0x00, + 0x39, 0xa8, 0x27, 0x3d, 0x24, 0x10, 0x46, 0x61, + 0x4f, 0x7d, 0x46, 0x36, 0xbf, 0x1f, 0x07, 0x1b, + 0x5f, 0x8f, 0x83, 0x8d, 0xaf, 0xc7, 0xc1, 0xc6, + 0xd7, 0xe3, 0xe0, 0xe3, 0x6b, 0xf1, 0xf0, 0x71, + 0xb5, 0xf8, 0xf8, 0x38, 0xda, 0xfc, 0x7c, 0x1c, + 0x7e, 0x10, 0xdb, 0x52, 0x5a, 0x0f, 0x77, 0x5d, + 0x78, 0xfe, 0x6d, 0x34, 0x7e, 0xaf, 0xd9, 0xf0, + 0x03, 0x2e, 0xca, 0xd5, 0xb1, 0x1b, 0xd6, 0xde, + 0xfa, 0x7c, 0x44, 0xd4, 0xd3, 0x8f, 0xea, 0x27, + 0x1b, 0x5c, 0x6d, 0x71, 0x55, 0x7b, 0xbb, 0x4f, + 0x5d, 0x55, 0x43, 0x63, 0xa3, 0xa4, 0x9b, 0x88, + 0x04, 0xe3, 0x75, 0x15, 0xad, 0x20, 0x8f, 0x6b, + 0x20, 0x24, 0x41, 0x12, 0xc6, 0xf1, 0x1d, 0x7b, + 0x8f, 0x38, 0xb9, 0x07, 0x26, 0x04, 0x20, 0x0a, + 0xcd, 0x45, 0x7d, 0x8e, 0x4b, 0x67, 0x64, 0x6e, + 0x08, 0x6d, 0xbb, 0x36, 0x78, 0xaa, 0x16, 0x6d, + 0x41, 0x44, 0x91, 0x36, 0x96, 0xd8, 0xe6, 0xba, + 0xa6, 0x57, 0x6d, 0xc8, 0x23, 0x0e, 0xc5, 0xc3, + 0x44, 0x35, 0x3a, 0x1c, 0x45, 0x7d, 0xb6, 0x4f, + 0x49, 0x35, 0x74, 0x35, 0x91, 0xc9, 0x4b, 0x4f, + 0xf9, 0x79, 0x15, 0x64, 0xce, 0x2d, 0xf9, 0x73, + 0xe1, 0x31, 0x89, 0xc6, 0x7f, 0x9b, 0xf2, 0x5c, + 0xe1, 0xbd, 0x73, 0x00, 0x9c, 0x2f, 0x08, 0xad, + 0x32, 0x1a, 0x85, 0x8e, 0xba, 0x27, 0x6a, 0x58, + 0x1e, 0xa6, 0x65, 0x55, 0x97, 0x9b, 0x0c, 0x6b, + 0xad, 0xd8, 0x1d, 0x9e, 0x52, 0x69, 0x1f, 0x39, + 0x62, 0xd6, 0xeb, 0xd0, 0xca, 0x08, 0x23, 0x16, + 0xfe, 0x17, 0x5b, 0xaa, 0x28, 0x52, 0xae, 0xb2, + 0x78, 0xe9, 0x1d, 0xa6, 0x78, 0x5e, 0x2d, 0x33, + 0xba, 0xc4, 0xda, 0xa4, 0x68, 0x50, 0xc8, 0x21, + 0x21, 0x99, 0xa0, 0x40, 0xec, 0xe3, 0x24, 0xd5, + 0x98, 0xe6, 0x9c, 0x93, 0x13, 0x70, 0x8e, 0xcf, + 0x4f, 0x15, 0x3c, 0xd3, 0x57, 0x47, 0x1c, 0x75, + 0x68, 0x24, 0xa7, 0xce, 0x39, 0xcb, 0xbc, 0x67, + 0xa2, 0x4d, 0x92, 0xc2, 0x65, 0x44, 0x3b, 0xc0, + 0x69, 0x11, 0x14, 0x90, 0x40, 0x39, 0x8c, 0x4f, + 0x78, 0x75, 0xba, 0x59, 0xe9, 0x29, 0xf8, 0xbc, + 0xb4, 0xb7, 0x28, 0xeb, 0x24, 0x79, 0x86, 0x6e, + 0xda, 0x60, 0x84, 0x4b, 0x13, 0x40, 0xe9, 0x20, + 0x8f, 0x4b, 0xe7, 0xce, 0x2c, 0x92, 0x66, 0x3e, + 0x6e, 0x93, 0xbf, 0x17, 0x4b, 0xb5, 0xe2, 0x2b, + 0xa5, 0x3d, 0xba, 0xd5, 0x0d, 0x04, 0x8d, 0x35, + 0x1b, 0x55, 0x31, 0xad, 0x13, 0xee, 0xd1, 0x2b, + 0x21, 0x01, 0xa2, 0x9a, 0x31, 0x96, 0x41, 0x72, + 0x05, 0x49, 0xcf, 0x3d, 0xfd, 0xcc, 0x5b, 0xb8, + 0x42, 0xec, 0x97, 0x25, 0xbc, 0xad, 0x35, 0x14, + 0xf6, 0xa7, 0x55, 0xaa, 0x92, 0x26, 0x63, 0x4c, + 0xcb, 0x26, 0xa3, 0x1b, 0x46, 0x18, 0xc9, 0x26, + 0xa3, 0xb9, 0x44, 0x7a, 0xa4, 0x79, 0x1c, 0x8d, + 0x00, 0x33, 0xec, 0x97, 0x94, 0x36, 0x9e, 0x28, + 0x2b, 0xf8, 0xec, 0x66, 0x90, 0xca, 0x20, 0xdb, + 0x05, 0x94, 0xe9, 0x98, 0xe7, 0x94, 0x72, 0x46, + 0x22, 0xdb, 0x44, 0xd9, 0x0d, 0x5f, 0x29, 0x1a, + 0x0d, 0x1a, 0x5f, 0x3d, 0x0c, 0xac, 0x61, 0xbd, + 0xc1, 0x3d, 0x71, 0x96, 0x1b, 0x9c, 0x2f, 0x6e, + 0x16, 0xc9, 0x6a, 0x78, 0xb7, 0x15, 0x98, 0x49, + 0x9c, 0x35, 0x0f, 0x1c, 0xb5, 0x82, 0x56, 0xa5, + 0x0c, 0x62, 0x5d, 0x9b, 0x45, 0xb2, 0x12, 0x16, + 0x2c, 0xba, 0x96, 0x22, 0x08, 0x63, 0x4b, 0xc2, + 0x1b, 0x4d, 0x6d, 0x42, 0xd2, 0xd2, 0xd7, 0x45, + 0x34, 0xee, 0x82, 0x44, 0x8c, 0x2c, 0x8b, 0xa9, + 0x4a, 0x87, 0xe6, 0xb3, 0xc6, 0xa8, 0x64, 0x08, + 0x75, 0x34, 0x41, 0xb6, 0xa9, 0x93, 0xeb, 0x45, + 0x31, 0xc9, 0xa6, 0xdf, 0xc2, 0xaa, 0x59, 0x0c, + 0xb1, 0x5c, 0xaa, 0x29, 0x69, 0xaa, 0x7b, 0x23, + 0x51, 0x47, 0x4d, 0x12, 0x2c, 0xc3, 0x5c, 0x51, + 0x98, 0xd6, 0x37, 0x94, 0x93, 0x30, 0x8c, 0xbb, + 0xbb, 0x03, 0x24, 0x8f, 0x14, 0x47, 0x23, 0xa4, + 0x0d, 0x0d, 0x8a, 0x9b, 0xdd, 0xb6, 0x8a, 0x78, + 0xa9, 0x6a, 0xab, 0x22, 0x82, 0x79, 0xb2, 0xd9, + 0xc6, 0xfa, 0xba, 0x18, 0xe9, 0x52, 0xec, 0xa8, + 0x52, 0x15, 0x27, 0xa1, 0xa6, 0x68, 0xd4, 0xe4, + 0x4e, 0x79, 0x29, 0x22, 0x4b, 0xf5, 0xae, 0x1a, + 0xbe, 0x21, 0x2d, 0x5a, 0xa5, 0x5e, 0xb8, 0xa3, + 0xd8, 0x98, 0xe6, 0x27, 0x5c, 0xca, 0x1e, 0x31, + 0xa8, 0x44, 0x63, 0xc9, 0x95, 0x81, 0x2d, 0xaf, + 0x42, 0x67, 0xcf, 0x65, 0x38, 0x8f, 0x84, 0x36, + 0xca, 0xa3, 0x51, 0x15, 0x1d, 0x64, 0x53, 0xd4, + 0x43, 0x14, 0xd2, 0x08, 0xf4, 0xca, 0x03, 0x6c, + 0x81, 0xcf, 0x43, 0x34, 0x68, 0x93, 0x28, 0x23, + 0x7e, 0xc5, 0xdb, 0x9b, 0xce, 0x07, 0x4f, 0x3b, + 0x14, 0x9c, 0x28, 0xa4, 0x16, 0xba, 0x0a, 0xdb, + 0xb5, 0x45, 0x3d, 0x2c, 0xd5, 0x8b, 0x2b, 0x08, + 0xe2, 0x8e, 0x76, 0x07, 0x67, 0x34, 0x91, 0xe6, + 0xb1, 0x20, 0xa8, 0x95, 0x57, 0x25, 0x5c, 0xd9, + 0xce, 0x92, 0xd9, 0xe4, 0x7f, 0x34, 0x47, 0x53, + 0x1c, 0xd1, 0xa4, 0xb0, 0xba, 0xc9, 0x14, 0x8a, + 0x1e, 0x39, 0x10, 0x82, 0xae, 0xac, 0x33, 0x0c, + 0x0f, 0x78, 0x8c, 0x6d, 0x71, 0xc2, 0x06, 0x0d, + 0x64, 0xba, 0x82, 0x33, 0x1c, 0x46, 0xa0, 0xef, + 0xef, 0x84, 0x24, 0x7f, 0xd0, 0x80, 0x47, 0x8c, + 0x7e, 0x2e, 0x05, 0x3e, 0x8b, 0xac, 0xfb, 0xf2, + 0x2d, 0x6f, 0x95, 0x47, 0x8c, 0xf1, 0x8a, 0x56, + 0xcb, 0xfe, 0x8a, 0x4f, 0xf3, 0x63, 0x6e, 0x71, + 0xb6, 0x3d, 0xdd, 0xf8, 0x89, 0x2f, 0xb6, 0xb8, + 0x2a, 0x2d, 0xb4, 0x14, 0xb1, 0xd4, 0x40, 0xf2, + 0x4a, 0x69, 0x2b, 0xb8, 0xc2, 0x44, 0xd4, 0xe9, + 0x39, 0xff, 0x00, 0x79, 0x13, 0x10, 0xcc, 0xf1, + 0x74, 0xe6, 0x99, 0x0c, 0xf7, 0x8d, 0x7f, 0x37, + 0x15, 0x14, 0xf7, 0x5a, 0x6a, 0xab, 0x75, 0xca, + 0x10, 0x97, 0x3a, 0x98, 0x28, 0x8d, 0x1d, 0x5c, + 0x6e, 0xe9, 0x4e, 0xd2, 0xeb, 0xcc, 0x99, 0x23, + 0x72, 0x16, 0x35, 0xc8, 0xb6, 0x5b, 0xc6, 0xa2, + 0xaa, 0x0b, 0x07, 0x67, 0x63, 0x8e, 0xc7, 0x5c, + 0x1e, 0x15, 0x9a, 0x58, 0x53, 0x8c, 0xd5, 0x5f, + 0xe9, 0xae, 0x55, 0x10, 0x46, 0xe9, 0xa2, 0x9e, + 0x04, 0x0e, 0x0e, 0x6c, 0x58, 0x2b, 0xb2, 0x67, + 0xce, 0xd2, 0x5d, 0x9b, 0x3d, 0xda, 0x8e, 0x67, + 0x13, 0xd1, 0xd6, 0x3c, 0x9c, 0x27, 0x65, 0x84, + 0x91, 0x71, 0x82, 0x8d, 0x29, 0x79, 0xf1, 0xfc, + 0xa9, 0x8a, 0x17, 0x57, 0x1b, 0xdf, 0x99, 0x93, + 0x30, 0x1f, 0x29, 0xa0, 0x1f, 0x18, 0xdf, 0x8a, + 0x6a, 0x2a, 0xc8, 0xe7, 0x92, 0x47, 0x80, 0x8c, + 0xf8, 0x33, 0x0d, 0xbd, 0x4e, 0xb8, 0x8f, 0xed, + 0xa5, 0x8a, 0x35, 0x78, 0x77, 0x3e, 0x63, 0x7a, + 0x91, 0xaf, 0xf2, 0x67, 0x2f, 0x9e, 0x46, 0x21, + 0xa0, 0xae, 0x48, 0x38, 0x34, 0x9b, 0x00, 0x1e, + 0xde, 0xd5, 0x86, 0xa7, 0x5b, 0x46, 0xc9, 0x16, + 0xd7, 0xf2, 0x65, 0xc2, 0xc8, 0x36, 0xaa, 0x4f, + 0xce, 0x58, 0x98, 0x9d, 0x39, 0x8c, 0xd4, 0xe2, + 0xdf, 0x6e, 0xb9, 0x53, 0xdc, 0xa9, 0xe5, 0x8e, + 0x8c, 0x5b, 0x22, 0x49, 0x1d, 0xab, 0x1a, 0x9a, + 0xb9, 0x9e, 0x8a, 0xad, 0x79, 0xda, 0x76, 0x74, + 0x8e, 0xd2, 0x4a, 0x84, 0x86, 0xd2, 0x03, 0xb9, + 0x40, 0xa3, 0x30, 0xb1, 0x91, 0xbe, 0xe3, 0x42, + 0x6b, 0xef, 0x16, 0xf9, 0xa6, 0xa6, 0x5a, 0x8a, + 0x28, 0xa9, 0xa7, 0x49, 0xb6, 0x9a, 0x0a, 0x07, + 0x62, 0xc6, 0x30, 0x50, 0xb0, 0x76, 0xdf, 0x96, + 0xf5, 0x52, 0x01, 0xe9, 0xc5, 0xd6, 0xd8, 0x92, + 0x5b, 0x0d, 0x2d, 0xba, 0x08, 0xa1, 0x68, 0xe7, + 0x8e, 0xa9, 0x21, 0x8f, 0xe4, 0x56, 0x67, 0x8c, + 0xe6, 0x54, 0xba, 0xe9, 0x21, 0x98, 0x6e, 0x57, + 0xd6, 0xa4, 0x10, 0xbc, 0xf5, 0x03, 0x31, 0x25, + 0xae, 0xba, 0x6a, 0x2a, 0xe6, 0x16, 0xe5, 0xa7, + 0x9e, 0xa2, 0x6a, 0x30, 0x90, 0x9a, 0xd9, 0x6a, + 0xe7, 0x68, 0xa0, 0x93, 0x5b, 0xb4, 0xf5, 0x15, + 0x35, 0x4f, 0x01, 0xcb, 0xfd, 0xd8, 0x45, 0x8d, + 0xb2, 0xcc, 0x1c, 0xfb, 0xb7, 0x18, 0x6a, 0x1e, + 0xea, 0xd5, 0xa2, 0x3c, 0xe9, 0xa3, 0xb2, 0x56, + 0xd3, 0xb4, 0xba, 0x93, 0x74, 0xac, 0x27, 0x21, + 0x74, 0x96, 0x12, 0x1d, 0xcc, 0x37, 0x85, 0xcb, + 0x7f, 0x4f, 0x4e, 0x56, 0xf4, 0xba, 0x57, 0x50, + 0xd9, 0xa9, 0x1a, 0x9a, 0x28, 0xe8, 0x69, 0xa7, + 0x86, 0xaf, 0x8e, 0x89, 0x94, 0x97, 0x8e, 0x29, + 0x19, 0xd6, 0x21, 0x0f, 0xe5, 0x12, 0x4d, 0xe5, + 0x4b, 0x6f, 0x52, 0x72, 0x3b, 0x86, 0x79, 0xcd, + 0x41, 0x5a, 0xf6, 0xbb, 0xed, 0x3a, 0xc1, 0xf2, + 0xd5, 0xb7, 0x49, 0x2a, 0x20, 0x5d, 0xa4, 0x5f, + 0x29, 0x09, 0x7a, 0x72, 0xad, 0xab, 0x5e, 0x95, + 0xf9, 0x8e, 0x74, 0xb9, 0x56, 0xfe, 0x0e, 0x64, + 0x03, 0x5d, 0x6b, 0xae, 0xe3, 0x73, 0x4b, 0x15, + 0x18, 0xad, 0x8e, 0xb6, 0x96, 0x9a, 0x26, 0x0d, + 0x5d, 0x2d, 0x2a, 0x53, 0x49, 0x14, 0x6b, 0x13, + 0x8a, 0x84, 0x86, 0x68, 0x0d, 0x4c, 0x44, 0x6a, + 0xe6, 0x86, 0x6f, 0x11, 0x1b, 0xc4, 0x96, 0xfa, + 0x2a, 0xaa, 0x4b, 0x95, 0x5c, 0xa2, 0x35, 0x8e, + 0x26, 0xb6, 0x52, 0xd2, 0xc1, 0x2a, 0xb6, 0xa8, + 0xf6, 0xb0, 0xc7, 0x12, 0x90, 0xaa, 0xf2, 0xc9, + 0x51, 0xa1, 0x59, 0x77, 0x6d, 0x49, 0x24, 0x2e, + 0xf6, 0x27, 0x14, 0x76, 0xfb, 0x8a, 0xd6, 0xdb, + 0x2a, 0x2a, 0x29, 0x24, 0xda, 0xd3, 0x35, 0x5f, + 0x1c, 0xac, 0x96, 0xae, 0x3a, 0x87, 0x9c, 0xcd, + 0x1c, 0x89, 0x19, 0x40, 0xd2, 0xb3, 0x2c, 0x09, + 0x9e, 0xe4, 0x00, 0x64, 0xd2, 0x3b, 0x08, 0xf7, + 0xb1, 0x26, 0xd5, 0x5d, 0xd8, 0xcb, 0x74, 0x12, + 0xda, 0xe2, 0xaa, 0x68, 0x16, 0xa8, 0x32, 0xad, + 0x57, 0x16, 0xad, 0xa6, 0x92, 0x49, 0xa4, 0x78, + 0xe5, 0x86, 0xa5, 0x65, 0x6a, 0x66, 0x4c, 0x8a, + 0x3e, 0xcd, 0xe3, 0x97, 0x29, 0x00, 0x24, 0x10, + 0x48, 0x5b, 0x30, 0xad, 0xa6, 0xb7, 0xc3, 0x15, + 0x74, 0x8d, 0x25, 0x40, 0xd6, 0x4e, 0xb9, 0x0c, + 0xae, 0xaa, 0xce, 0x59, 0x23, 0x79, 0x7f, 0x3d, + 0x90, 0x1c, 0x89, 0xcc, 0x8e, 0xe0, 0x39, 0x01, + 0x8d, 0xb9, 0xc7, 0x09, 0xe5, 0xd5, 0x62, 0xaf, + 0x04, 0xf4, 0x8a, 0x7f, 0xef, 0x94, 0xe7, 0xff, + 0x00, 0x6f, 0xc5, 0x47, 0x37, 0xed, 0x3a, 0x4d, + 0xff, 0x00, 0xfc, 0xad, 0x3f, 0xf6, 0x49, 0x8d, + 0xbf, 0xd7, 0x8d, 0xbf, 0xd7, 0x8d, 0xbf, 0xd7, + 0x8d, 0xbf, 0xd7, 0x8d, 0xbf, 0xd7, 0x8d, 0xbf, + 0xd7, 0x8d, 0xb7, 0x8c, 0xe0, 0xd1, 0x5e, 0x6e, + 0x35, 0xb7, 0x4a, 0xd8, 0xa5, 0x4a, 0x18, 0xea, + 0x8b, 0xd0, 0xec, 0xeb, 0x69, 0x89, 0x92, 0x4a, + 0x34, 0x55, 0x51, 0xa5, 0x65, 0x85, 0xca, 0x47, + 0x20, 0xc9, 0x8b, 0x2e, 0x5a, 0x9f, 0x33, 0x9e, + 0xec, 0x41, 0x1d, 0x74, 0x94, 0xb6, 0x0a, 0x5a, + 0x9a, 0x4a, 0x92, 0xd6, 0xdb, 0xbe, 0xce, 0x42, + 0xd0, 0x4b, 0xa0, 0xd2, 0xa1, 0x06, 0x39, 0xb3, + 0x2b, 0x96, 0xc0, 0x29, 0xd9, 0x89, 0x3e, 0x66, + 0x48, 0x37, 0xe2, 0xa1, 0x6e, 0x11, 0xc9, 0xc2, + 0x59, 0x29, 0x20, 0x9c, 0x3d, 0x4c, 0xd4, 0x66, + 0x36, 0x58, 0x49, 0x33, 0x45, 0x90, 0x15, 0x2d, + 0x4f, 0xa9, 0x74, 0xcd, 0x26, 0x5a, 0xb3, 0xd3, + 0xa8, 0xe6, 0x4e, 0x5c, 0xfc, 0xb1, 0x35, 0x35, + 0x53, 0xc1, 0x7e, 0xd9, 0xd2, 0x5c, 0xc8, 0xaa, + 0x8e, 0xd4, 0x61, 0xe3, 0x51, 0x4d, 0x25, 0x55, + 0x41, 0x86, 0x74, 0xdb, 0xbb, 0xe4, 0x1b, 0xe5, + 0x35, 0x06, 0x90, 0xc4, 0x32, 0xd9, 0xc6, 0x46, + 0x98, 0xd2, 0x3c, 0x80, 0x95, 0xeb, 0x2d, 0xb5, + 0xd7, 0x39, 0x56, 0xd9, 0x3d, 0x7c, 0x77, 0x48, + 0x21, 0x58, 0xde, 0x04, 0xda, 0x6c, 0xda, 0x38, + 0x04, 0x2d, 0x0d, 0x40, 0x0a, 0x4a, 0x47, 0x9e, + 0xfd, 0xf9, 0x0d, 0x20, 0x65, 0xab, 0x23, 0xa6, + 0x0a, 0x6a, 0xeb, 0x33, 0xd9, 0x2a, 0x8d, 0x24, + 0xd5, 0xdc, 0x5a, 0x9a, 0xaa, 0x19, 0xa1, 0xa6, + 0x1b, 0x59, 0x69, 0xa4, 0xa9, 0x92, 0x59, 0x57, + 0x42, 0xae, 0xad, 0xc8, 0x24, 0xd0, 0xd2, 0x03, + 0xa3, 0x30, 0xc3, 0x50, 0xd4, 0x9a, 0xb8, 0x2f, + 0x2b, 0x04, 0xba, 0x97, 0x8c, 0x42, 0xcd, 0x75, + 0xa8, 0x2d, 0x0a, 0x90, 0x56, 0x26, 0x39, 0x67, + 0x18, 0xd3, 0xcd, 0xc9, 0x0f, 0x34, 0x65, 0xbb, + 0x76, 0xec, 0x6d, 0xfe, 0xbc, 0x6d, 0xfe, 0xbc, + 0x6d, 0xfe, 0xbc, 0x6d, 0xfe, 0xbc, 0x6d, 0xfe, + 0xbc, 0x6d, 0xfe, 0xbc, 0x6d, 0xfe, 0xbc, 0x70, + 0xe9, 0xf5, 0xa5, 0xaf, 0xc4, 0xf5, 0xbf, 0xd5, + 0x4b, 0xfb, 0x3e, 0x03, 0xbe, 0x8b, 0x8d, 0x59, + 0xff, 0x00, 0xc8, 0xb0, 0xff, 0x00, 0xb9, 0xa7, + 0xc6, 0xdb, 0xe3, 0x3c, 0x6d, 0xbe, 0x33, 0xc7, + 0x64, 0x85, 0x82, 0xe3, 0x75, 0x35, 0x70, 0x54, + 0x35, 0x35, 0xc6, 0x64, 0xab, 0xa6, 0x9e, 0x14, + 0xda, 0x2b, 0x3e, 0x96, 0x0f, 0x0b, 0x31, 0x65, + 0xc9, 0x81, 0x3d, 0x19, 0xe6, 0xa0, 0x6a, 0xd3, + 0xa5, 0xd4, 0x9b, 0x8d, 0x4d, 0x65, 0x6d, 0x05, + 0xb2, 0xe1, 0x5d, 0x42, 0x76, 0x34, 0xd5, 0xfc, + 0x66, 0xa6, 0x8d, 0x03, 0x3b, 0x1a, 0x31, 0xa8, + 0x47, 0x2c, 0x91, 0xbe, 0xfd, 0xcb, 0xbd, 0xd4, + 0xe6, 0x84, 0x10, 0xe7, 0x40, 0x62, 0xa9, 0x2b, + 0xa5, 0x5c, 0x7c, 0x21, 0xb8, 0x51, 0x53, 0x3d, + 0x2d, 0xbe, 0x6b, 0x7c, 0x50, 0x28, 0x31, 0x08, + 0x45, 0x44, 0xe9, 0x2c, 0x7a, 0xa4, 0x58, 0xd7, + 0x98, 0x34, 0x64, 0xca, 0xda, 0x73, 0xcb, 0x3d, + 0xfc, 0xe7, 0x38, 0x58, 0x20, 0x8a, 0xe3, 0x60, + 0x58, 0xa0, 0x8d, 0x43, 0xda, 0x2a, 0x12, 0x50, + 0x23, 0x5f, 0x95, 0xce, 0x9c, 0x7e, 0x57, 0x70, + 0x0f, 0x99, 0x73, 0x9e, 0xbc, 0xf3, 0xd5, 0xbf, + 0x14, 0x8f, 0x04, 0xb4, 0x96, 0x3a, 0x26, 0x83, + 0x29, 0x69, 0x6f, 0x71, 0xad, 0x6a, 0xbc, 0x41, + 0x43, 0x99, 0x25, 0x99, 0x94, 0x3f, 0x49, 0x90, + 0x04, 0x1a, 0x1b, 0x58, 0xc8, 0x7c, 0xce, 0x8c, + 0x56, 0x4d, 0x4b, 0x6c, 0xbc, 0x57, 0x4f, 0x70, + 0xa1, 0x35, 0x14, 0xb5, 0x74, 0xb0, 0x47, 0x42, + 0xc9, 0x4e, 0x92, 0xc6, 0x9b, 0x38, 0x95, 0x1e, + 0x05, 0x53, 0x92, 0xc4, 0x73, 0x1f, 0x9b, 0xbc, + 0x0c, 0x9b, 0x2c, 0x9b, 0x16, 0xe8, 0xa7, 0xa6, + 0xaa, 0xe0, 0xba, 0x4e, 0xac, 0x8c, 0x89, 0x78, + 0x71, 0x1b, 0x67, 0xaa, 0x18, 0xe6, 0x42, 0xf1, + 0xc6, 0xd9, 0xef, 0x04, 0x29, 0x1b, 0x8e, 0x45, + 0x73, 0xd3, 0xdc, 0xc5, 0xd6, 0x99, 0x2e, 0x1c, + 0x20, 0xa3, 0x89, 0xe6, 0xaa, 0x81, 0x7b, 0x1b, + 0x2b, 0x6d, 0x29, 0x25, 0x10, 0xcb, 0x9a, 0xce, + 0xdc, 0xdd, 0x65, 0x24, 0x1a, 0x4e, 0x7b, 0xc6, + 0x5b, 0xf7, 0x62, 0xf1, 0x69, 0x8a, 0x86, 0xd4, + 0x16, 0x84, 0x4d, 0x26, 0x9a, 0xf8, 0x6b, 0x2b, + 0x65, 0x97, 0x4d, 0x5d, 0x44, 0xa8, 0x9b, 0x4f, + 0x96, 0x91, 0x08, 0x48, 0xe6, 0x10, 0xeb, 0xcc, + 0xc7, 0xa1, 0x50, 0xae, 0xa7, 0x90, 0x7e, 0x52, + 0x4c, 0x3a, 0x6d, 0x28, 0x6a, 0x6a, 0x15, 0xa6, + 0x96, 0x1a, 0xbb, 0xbd, 0xbf, 0x9d, 0x25, 0x0c, + 0x34, 0x31, 0xca, 0x63, 0x13, 0xab, 0xbc, 0x50, + 0x53, 0xc8, 0xe8, 0x17, 0x9d, 0xa5, 0xf4, 0x85, + 0x5d, 0x59, 0xf4, 0xb6, 0xac, 0xae, 0x1a, 0x23, + 0xbb, 0xd6, 0x88, 0x91, 0x63, 0x88, 0x70, 0x62, + 0xa9, 0x15, 0x51, 0x42, 0xa0, 0xce, 0x69, 0x49, + 0x00, 0x00, 0x14, 0x67, 0x99, 0x39, 0x0c, 0x51, + 0xcb, 0x0d, 0x57, 0x27, 0x69, 0x28, 0xe8, 0x24, + 0x82, 0xb6, 0x8e, 0x7a, 0x7a, 0x9a, 0xa9, 0xf6, + 0x01, 0x06, 0xc1, 0x72, 0x91, 0xa7, 0x33, 0x7c, + 0xe7, 0x49, 0xc1, 0x12, 0xae, 0xbc, 0x86, 0x6c, + 0xb1, 0xa6, 0xa2, 0xca, 0x0c, 0x90, 0x45, 0xd8, + 0x4b, 0xbc, 0xdb, 0x15, 0x35, 0x06, 0xfa, 0x72, + 0x94, 0xa0, 0x32, 0x04, 0x59, 0xe0, 0xc8, 0x2b, + 0x65, 0xa8, 0x2f, 0x3d, 0xf3, 0xc8, 0xe4, 0x73, + 0x38, 0xbb, 0xa4, 0x82, 0xe3, 0x70, 0x49, 0xcc, + 0xc3, 0xb2, 0x4b, 0x49, 0xc5, 0x44, 0x56, 0xea, + 0x7a, 0xd6, 0xa9, 0x55, 0x48, 0xe3, 0x11, 0xc7, + 0x34, 0xce, 0x92, 0x53, 0x3c, 0x4c, 0x02, 0xfc, + 0x89, 0x0c, 0x77, 0x67, 0xb8, 0xa9, 0x34, 0x29, + 0xb3, 0xbb, 0x5e, 0x5d, 0xa1, 0x5a, 0x8a, 0x88, + 0x28, 0xad, 0xc2, 0x1d, 0xac, 0x6a, 0x59, 0xa5, + 0x4a, 0x25, 0xe8, 0xf9, 0xd9, 0x33, 0x32, 0x00, + 0xda, 0x1b, 0xc5, 0x99, 0xc5, 0x15, 0x43, 0x4b, + 0x5b, 0x6a, 0x91, 0xa6, 0x91, 0xd9, 0x29, 0x2e, + 0x91, 0x49, 0x10, 0xa5, 0x5a, 0x4a, 0x5a, 0x36, + 0x6a, 0x5a, 0x82, 0x29, 0x61, 0x44, 0x8d, 0x11, + 0x9c, 0xb1, 0x32, 0x48, 0xe0, 0xb1, 0x7d, 0x71, + 0xe6, 0x03, 0x0d, 0xf2, 0x6c, 0xe3, 0xb6, 0xd9, + 0xe7, 0x6e, 0x35, 0x4f, 0x22, 0xd1, 0xd4, 0xc4, + 0xb3, 0xad, 0x34, 0x75, 0x54, 0xb2, 0xb7, 0x1b, + 0x9d, 0xd6, 0x9a, 0x58, 0xe4, 0x65, 0xd9, 0x9e, + 0x96, 0x2c, 0x44, 0x81, 0x90, 0xee, 0x8c, 0xe4, + 0x71, 0x61, 0x9a, 0x61, 0x69, 0xa3, 0x13, 0xc0, + 0xb4, 0xf2, 0x04, 0x7f, 0x93, 0x44, 0x10, 0xae, + 0x93, 0x2b, 0x94, 0x7d, 0x90, 0xc8, 0x46, 0x65, + 0x53, 0xb4, 0x65, 0x00, 0x0d, 0x4c, 0x4a, 0xaa, + 0x02, 0x14, 0x6d, 0xbe, 0x33, 0xc5, 0xea, 0x5c, + 0xed, 0x17, 0x21, 0xdf, 0xa2, 0xa8, 0xfe, 0xcd, + 0xbf, 0x15, 0x15, 0x64, 0xd4, 0x15, 0x31, 0xd5, + 0x40, 0x79, 0xf1, 0x9e, 0x83, 0xf3, 0x5d, 0x4e, + 0xe6, 0x46, 0xfe, 0x0b, 0x0d, 0xc7, 0xbb, 0xdd, + 0x1b, 0xf0, 0xbc, 0x31, 0x83, 0x21, 0xaa, 0x92, + 0x70, 0xdd, 0xd0, 0xae, 0x84, 0x7f, 0x31, 0x39, + 0x1f, 0xe8, 0xc7, 0x2c, 0x29, 0xba, 0xad, 0x47, + 0x95, 0x1f, 0xaf, 0x1c, 0xb0, 0xa6, 0xea, 0xb5, + 0x1e, 0x54, 0x7e, 0xbc, 0x72, 0xc2, 0x9b, 0xaa, + 0xd4, 0x79, 0x51, 0xfa, 0xf1, 0xcb, 0x0a, 0x6e, + 0xab, 0x51, 0xe5, 0x47, 0xeb, 0xc7, 0x2c, 0x29, + 0xba, 0xad, 0x47, 0x95, 0x1f, 0xaf, 0x1c, 0xb0, + 0xa6, 0xea, 0xb5, 0x1e, 0x54, 0x7e, 0xbc, 0x72, + 0xc2, 0x9b, 0xaa, 0xd4, 0x79, 0x51, 0xfa, 0xf1, + 0xcb, 0x0a, 0x6e, 0xab, 0x51, 0xe5, 0x47, 0xeb, + 0xc7, 0x2c, 0x29, 0xba, 0xad, 0x47, 0x95, 0x1f, + 0xaf, 0x1c, 0xb0, 0xa6, 0xea, 0xb5, 0x1e, 0x54, + 0x7e, 0xbc, 0x72, 0xc2, 0x9b, 0xaa, 0xd4, 0x79, + 0x51, 0xfa, 0xf0, 0xfc, 0x2e, 0xa5, 0x74, 0x74, + 0x6a, 0x5a, 0x82, 0xae, 0xac, 0x8c, 0x35, 0xc6, + 0x33, 0x56, 0x05, 0x58, 0x66, 0x0e, 0x63, 0x30, + 0x4e, 0xf1, 0xbf, 0xbd, 0x88, 0x38, 0x53, 0x43, + 0x4d, 0x0c, 0x70, 0x43, 0x47, 0x50, 0x91, 0x44, + 0x34, 0xa2, 0xeb, 0x56, 0xc8, 0x66, 0x4e, 0x59, + 0xb3, 0x16, 0x3b, 0xcf, 0x74, 0x9c, 0x72, 0xc2, + 0x9b, 0xaa, 0xd4, 0x79, 0x51, 0xfa, 0xf1, 0xcb, + 0x0a, 0x6e, 0xab, 0x51, 0xe5, 0x47, 0xeb, 0xc7, + 0x2c, 0x29, 0xba, 0xad, 0x47, 0x95, 0x1f, 0xaf, + 0x1c, 0xb0, 0xa6, 0xea, 0xb5, 0x1e, 0x54, 0x7e, + 0xbc, 0x72, 0xc2, 0x9b, 0xaa, 0xd4, 0x79, 0x51, + 0xfa, 0xf1, 0xcb, 0x0a, 0x6e, 0xab, 0x51, 0xe5, + 0x47, 0xeb, 0xc7, 0x2c, 0x29, 0xba, 0xad, 0x47, + 0x95, 0x1f, 0xaf, 0x17, 0x8e, 0x10, 0xc9, 0x73, + 0x8c, 0x53, 0x47, 0x19, 0x86, 0x9f, 0x50, 0x77, + 0xd4, 0x73, 0x92, 0x42, 0xbf, 0x34, 0x1c, 0xb7, + 0x04, 0x1d, 0x39, 0x6f, 0xcc, 0xe4, 0x73, 0xdd, + 0x97, 0xe2, 0xb4, 0xf0, 0xa2, 0x28, 0x29, 0xa3, + 0xa6, 0xae, 0x59, 0x09, 0x85, 0x42, 0x24, 0xd1, + 0x80, 0xfa, 0x90, 0x6e, 0x50, 0xea, 0x4a, 0x90, + 0x54, 0x64, 0xb9, 0x8c, 0xf5, 0x01, 0x9f, 0x4f, + 0x4f, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, 0x99, 0xff, + 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, 0x53, 0xf9, + 0x9f, 0xf1, 0xc7, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, + 0x99, 0xff, 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, + 0x53, 0xf9, 0x9f, 0xf1, 0xc7, 0x2a, 0xed, 0x5f, + 0xa5, 0x3f, 0x99, 0xff, 0x00, 0x1c, 0x72, 0xae, + 0xd5, 0xfa, 0x53, 0xf9, 0x9f, 0xf1, 0xc7, 0x2a, + 0xed, 0x5f, 0xa5, 0x3f, 0x99, 0xff, 0x00, 0x1c, + 0x72, 0xae, 0xd5, 0xfa, 0x53, 0xf9, 0x9f, 0xf1, + 0xc7, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, 0x99, 0xff, + 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, 0x53, 0xf9, + 0x9f, 0xf1, 0xc7, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, + 0x99, 0xff, 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, + 0x53, 0xf9, 0x9f, 0xf1, 0xc5, 0x75, 0xe2, 0xc7, + 0x5e, 0x63, 0x67, 0x9e, 0xe1, 0x04, 0xb1, 0x82, + 0xab, 0x35, 0x2e, 0x70, 0xc8, 0x50, 0xef, 0x31, + 0xb1, 0xe7, 0xa9, 0x42, 0xd9, 0x37, 0xcd, 0xcc, + 0x32, 0x8c, 0x98, 0x0d, 0x40, 0xd0, 0xdf, 0x6c, + 0x76, 0xf8, 0x38, 0xbd, 0x39, 0xaa, 0xd3, 0xa8, + 0xbb, 0x3b, 0xc6, 0x5a, 0x49, 0x1d, 0xba, 0x5d, + 0xdb, 0x30, 0x0b, 0x6e, 0xee, 0x2a, 0x8e, 0xf0, + 0xc7, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, 0x99, 0xff, + 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, 0x53, 0xf9, + 0x9f, 0xf1, 0xc7, 0x2a, 0xed, 0x5f, 0xa5, 0x3f, + 0x99, 0xff, 0x00, 0x1c, 0x72, 0xae, 0xd5, 0xfa, + 0x53, 0xf9, 0x9f, 0xf1, 0xc7, 0x2a, 0xed, 0x5f, + 0xa5, 0x3f, 0x99, 0xff, 0x00, 0x1c, 0x72, 0xae, + 0xd5, 0xfa, 0x53, 0xf9, 0x9f, 0xf1, 0xc1, 0xe1, + 0x5d, 0xac, 0x0d, 0xc6, 0xa0, 0xf8, 0x84, 0x3e, + 0xb6, 0x03, 0x17, 0x9b, 0xb3, 0xdd, 0xaa, 0x15, + 0xf4, 0x98, 0xe1, 0x85, 0x4a, 0x43, 0x19, 0x39, + 0x91, 0xa8, 0xe6, 0xce, 0xd9, 0x6e, 0xd4, 0xf9, + 0x0c, 0xf2, 0xe8, 0x0a, 0xa3, 0x33, 0x96, 0x7f, + 0xb3, 0xb3, 0xdc, 0x8d, 0xae, 0xb1, 0x6a, 0x34, + 0x97, 0x8d, 0x95, 0xa2, 0x95, 0x47, 0xce, 0x31, + 0xb6, 0x47, 0x9b, 0x9f, 0x75, 0x58, 0x2b, 0x0e, + 0xfe, 0x59, 0x78, 0xf0, 0x9c, 0x24, 0xb4, 0xba, + 0xe7, 0xc7, 0x02, 0xff, 0x00, 0x05, 0xe3, 0x99, + 0x58, 0x78, 0x8f, 0xc9, 0x11, 0xe4, 0x92, 0x3b, + 0xc7, 0x1c, 0xa2, 0xb4, 0xf5, 0xe4, 0xf2, 0x26, + 0xf6, 0x58, 0xe5, 0x15, 0xab, 0xaf, 0xa7, 0x93, + 0x37, 0xb2, 0xc7, 0x28, 0xad, 0x5d, 0x79, 0x3c, + 0x99, 0xbd, 0x96, 0x39, 0x45, 0x6a, 0xeb, 0xe9, + 0xe4, 0xcd, 0xec, 0xb1, 0xca, 0x2b, 0x57, 0x5e, + 0x4f, 0x26, 0x6f, 0x65, 0x8e, 0x51, 0xda, 0xba, + 0xfa, 0x79, 0x33, 0x7b, 0x2c, 0x72, 0x8a, 0xd5, + 0xd7, 0xd3, 0xc9, 0x9b, 0xd9, 0x63, 0x94, 0x56, + 0xae, 0xbc, 0x9e, 0x4c, 0xde, 0xcb, 0x1c, 0xa2, + 0xb5, 0x75, 0xe4, 0xf2, 0x66, 0xf6, 0x58, 0xe5, + 0x15, 0xab, 0xaf, 0x27, 0x91, 0x37, 0xb2, 0xc7, + 0x28, 0xad, 0x5d, 0x7d, 0x3c, 0x99, 0xbd, 0x96, + 0x27, 0xbe, 0xda, 0x67, 0x82, 0x68, 0x0d, 0xc1, + 0x14, 0x4d, 0x14, 0x91, 0xe7, 0xb3, 0x98, 0xe9, + 0xda, 0x21, 0x5d, 0x59, 0x6c, 0xc6, 0x79, 0x67, + 0x9e, 0x59, 0x8c, 0xfa, 0x33, 0xc5, 0x2d, 0xee, + 0xd3, 0x4b, 0x4b, 0x4f, 0x4a, 0x2e, 0x28, 0xe2, + 0x9e, 0x18, 0xe2, 0x0d, 0xb3, 0x99, 0x75, 0x68, + 0x50, 0xba, 0xb4, 0xe8, 0x6d, 0x39, 0xf7, 0xb3, + 0x3f, 0x59, 0xc7, 0x28, 0xad, 0x5d, 0x7d, 0x3c, + 0x99, 0xbd, 0x96, 0x39, 0x45, 0x6a, 0xeb, 0xe9, + 0xe4, 0xcd, 0xec, 0xb1, 0xca, 0x2b, 0x57, 0x5e, + 0x4f, 0x26, 0x6f, 0x65, 0x8e, 0x51, 0xda, 0xba, + 0xfa, 0x79, 0x33, 0x7b, 0x2c, 0x72, 0x8a, 0xd5, + 0xd7, 0xd3, 0xc9, 0x9b, 0xd9, 0x63, 0x94, 0x56, + 0xae, 0xbc, 0x9e, 0x44, 0xde, 0xcb, 0x1c, 0xa2, + 0xb4, 0xf5, 0xe4, 0xf2, 0x26, 0xf6, 0x58, 0xbe, + 0x70, 0x92, 0x9e, 0x7a, 0x59, 0x28, 0xe8, 0x99, + 0xa5, 0x33, 0x8d, 0x12, 0xcc, 0x55, 0x95, 0x16, + 0x3f, 0xce, 0x54, 0x0e, 0x15, 0x99, 0x9b, 0xe6, + 0xe7, 0xa7, 0x48, 0x52, 0x72, 0xcc, 0xe5, 0x97, + 0xff, 0x00, 0x65, 0x18, 0xa2, 0x96, 0x79, 0x16, + 0x28, 0x63, 0x79, 0x65, 0x73, 0xa5, 0x23, 0x8d, + 0x4b, 0xbb, 0x13, 0xdc, 0x55, 0x50, 0x49, 0x3f, + 0x56, 0x17, 0x81, 0xbc, 0x25, 0x75, 0x0c, 0x2d, + 0x84, 0x03, 0xfa, 0x75, 0x74, 0x11, 0xb7, 0xf3, + 0xa4, 0x95, 0x4a, 0xe3, 0xf9, 0xd4, 0x63, 0x91, + 0x5c, 0x26, 0xf0, 0x68, 0xf4, 0xfb, 0x6f, 0xdf, + 0x31, 0xc8, 0xae, 0x13, 0x78, 0x34, 0x7a, 0x7d, + 0xb7, 0xef, 0x98, 0xe4, 0x57, 0x09, 0xbc, 0x1a, + 0x3d, 0x3e, 0xdb, 0xf7, 0xcc, 0x72, 0x2b, 0x84, + 0xde, 0x0d, 0x1e, 0x9f, 0x6d, 0xfb, 0xe6, 0x39, + 0x15, 0xc2, 0x6f, 0x06, 0x8f, 0x4f, 0xb6, 0xfd, + 0xf3, 0x1c, 0x8a, 0xe1, 0x37, 0x83, 0x47, 0xa7, + 0xdb, 0x7e, 0xf9, 0x8e, 0x45, 0x70, 0x9b, 0xc1, + 0xa3, 0xd3, 0xed, 0xbf, 0x7c, 0xc7, 0x22, 0xb8, + 0x4d, 0xe0, 0xd1, 0xe9, 0xf6, 0xdf, 0xbe, 0x63, + 0x91, 0x5c, 0x26, 0xf0, 0x68, 0xf4, 0xfb, 0x6f, + 0xdf, 0x31, 0xc8, 0xae, 0x13, 0x78, 0x34, 0x7a, + 0x7d, 0xb7, 0xef, 0x98, 0xe4, 0x57, 0x09, 0xbc, + 0x1a, 0x3d, 0x3e, 0xdb, 0xf7, 0xcc, 0x72, 0x2b, + 0x84, 0xde, 0x0d, 0x1e, 0x9f, 0x6d, 0xfb, 0xe6, + 0x39, 0x15, 0xc2, 0x6f, 0x06, 0x8f, 0x4f, 0xb6, + 0xfd, 0xf3, 0x1c, 0x8a, 0xe1, 0x37, 0x83, 0x47, + 0xa7, 0xdb, 0x7e, 0xf9, 0x8e, 0x45, 0x70, 0x9b, + 0xc1, 0xa3, 0xd3, 0xed, 0xbf, 0x7c, 0xc7, 0x22, + 0xb8, 0x4d, 0xe0, 0xd1, 0xe9, 0xf6, 0xdf, 0xbe, + 0x63, 0x91, 0x5c, 0x26, 0xf0, 0x68, 0xf4, 0xfb, + 0x6f, 0xdf, 0x31, 0xc8, 0xae, 0x13, 0x78, 0x34, + 0x7a, 0x7d, 0xb7, 0xef, 0x98, 0xe4, 0x57, 0x09, + 0xbc, 0x1a, 0x3d, 0x3e, 0xdb, 0xf7, 0xcc, 0x72, + 0x2b, 0x84, 0xde, 0x0d, 0x1e, 0x9d, 0x6d, 0xfb, + 0xe6, 0x2b, 0x6d, 0xf5, 0xb6, 0xe9, 0x76, 0x15, + 0xd4, 0xd2, 0xd3, 0x4b, 0x96, 0x61, 0x64, 0x1b, + 0x98, 0x77, 0xd1, 0x86, 0x68, 0xeb, 0xfc, 0x24, + 0x66, 0x1e, 0x3f, 0xdf, 0x7f, 0xc1, 0xec, 0x11, + 0x1a, 0x8b, 0x95, 0x5b, 0x80, 0x65, 0xa7, 0x8e, + 0x9a, 0x28, 0x89, 0xfc, 0xc1, 0x52, 0x6a, 0x0c, + 0x84, 0x77, 0x89, 0x10, 0x2a, 0xe7, 0xfa, 0x25, + 0x87, 0x77, 0x1b, 0x41, 0xdf, 0xfe, 0x9c, 0x6d, + 0x31, 0xb4, 0xc5, 0xde, 0xec, 0xb6, 0x9a, 0x19, + 0x2b, 0x5a, 0x16, 0xa8, 0x08, 0xf1, 0xa6, 0xc9, + 0x64, 0xd9, 0x93, 0xb4, 0x6d, 0x3f, 0x38, 0xa3, + 0xf4, 0x7f, 0x17, 0x7e, 0x28, 0xb8, 0x4e, 0xd3, + 0x56, 0x43, 0x47, 0x5f, 0x6b, 0xad, 0xb5, 0x3d, + 0x50, 0x6e, 0x2a, 0xf5, 0x24, 0x98, 0xe7, 0x75, + 0xde, 0x63, 0xcc, 0xc5, 0x16, 0x96, 0xcb, 0xe6, + 0x9e, 0x70, 0x63, 0xcd, 0xdc, 0x4a, 0xe7, 0xc6, + 0xa1, 0xd6, 0x62, 0xdb, 0x47, 0xb4, 0x1d, 0x31, + 0xed, 0x17, 0x68, 0x37, 0x67, 0xbd, 0x33, 0xd5, + 0xd1, 0xbf, 0xa3, 0xa3, 0x7e, 0x2d, 0xf7, 0xaa, + 0x4b, 0x8a, 0x55, 0x49, 0x13, 0x68, 0x8e, 0x96, + 0xa6, 0x5a, 0x76, 0x32, 0x48, 0x80, 0x91, 0x12, + 0xa6, 0xa9, 0xf2, 0x0c, 0x74, 0x42, 0xce, 0xcc, + 0xa8, 0xc4, 0xf3, 0x82, 0xea, 0xdc, 0x4e, 0x85, + 0x49, 0xe3, 0x91, 0x75, 0x47, 0x22, 0xc8, 0xbd, + 0x1a, 0x91, 0xc3, 0xae, 0x63, 0xa4, 0x66, 0xb9, + 0x8d, 0xd8, 0xaf, 0xe1, 0x2c, 0xf4, 0x97, 0x09, + 0x6d, 0xd4, 0xd6, 0x7a, 0xbb, 0x8c, 0x90, 0xc5, + 0x14, 0xcc, 0xd4, 0xd2, 0xf4, 0x2c, 0xa0, 0x11, + 0x9a, 0x08, 0x24, 0x20, 0x02, 0x72, 0xcf, 0x3d, + 0xe7, 0xbd, 0x8b, 0x65, 0xf2, 0x9a, 0xe5, 0x4b, + 0xc6, 0x37, 0xd2, 0x3a, 0xcc, 0xf4, 0xd3, 0x53, + 0xd4, 0xba, 0xa4, 0x91, 0x54, 0x46, 0x03, 0x3c, + 0x7b, 0xf2, 0xd7, 0xb9, 0x81, 0x07, 0x25, 0x24, + 0x7c, 0xe4, 0x52, 0x0a, 0x83, 0x57, 0x02, 0xaa, + 0xbb, 0x4f, 0x12, 0xa3, 0xfc, 0xc7, 0x69, 0x50, + 0x2b, 0xff, 0x00, 0x11, 0x89, 0xc9, 0xbf, 0x9b, + 0x3c, 0x54, 0xde, 0x29, 0xa9, 0xab, 0xa8, 0xad, + 0xf2, 0x13, 0xb6, 0xad, 0xda, 0xb2, 0xb1, 0x64, + 0x58, 0xe3, 0x48, 0xa3, 0x66, 0xcd, 0xcb, 0x30, + 0x39, 0xc8, 0xc0, 0x47, 0x1a, 0x81, 0xce, 0x25, + 0x8e, 0xae, 0x6e, 0x96, 0xe3, 0x11, 0xeb, 0x31, + 0x6d, 0x13, 0x6a, 0x06, 0xa3, 0x1e, 0xb1, 0xb4, + 0x0b, 0xbb, 0x79, 0x4f, 0x9c, 0x06, 0xf1, 0xbc, + 0x8c, 0xb7, 0x8e, 0xfe, 0x38, 0xcc, 0x5b, 0x4d, + 0x96, 0xd6, 0x3d, 0xa9, 0x19, 0x88, 0xb6, 0x8b, + 0xb4, 0xcb, 0x2c, 0xf3, 0xd1, 0x9e, 0xac, 0xb2, + 0x19, 0xf4, 0x74, 0x6f, 0xe8, 0xc3, 0xdf, 0xc4, + 0xf1, 0xdd, 0x05, 0xb6, 0x24, 0x9e, 0xa6, 0xdb, + 0x2c, 0x70, 0x84, 0xa8, 0xa8, 0x86, 0x9e, 0x39, + 0xdc, 0xc8, 0x16, 0x56, 0x49, 0x1e, 0x55, 0x51, + 0x0c, 0x6b, 0xf3, 0x64, 0x77, 0x5d, 0x6f, 0xcc, + 0x0a, 0x39, 0xba, 0xcd, 0x4c, 0x48, 0xb1, 0x99, + 0xa4, 0x8a, 0x22, 0xe0, 0x6e, 0x79, 0x51, 0x41, + 0x6c, 0x86, 0x61, 0x49, 0x39, 0x36, 0x59, 0xfe, + 0x6e, 0x7d, 0xce, 0xfe, 0x1a, 0x78, 0x90, 0x80, + 0xd2, 0x22, 0x12, 0x18, 0x80, 0xce, 0x14, 0x95, + 0x51, 0x9b, 0x10, 0x0e, 0x59, 0x85, 0x1b, 0xd8, + 0xf4, 0x01, 0xbc, 0xe1, 0x66, 0x47, 0x50, 0xe8, + 0xea, 0xe8, 0x7a, 0x19, 0x1b, 0x52, 0x9c, 0x8e, + 0x47, 0x26, 0x19, 0x83, 0xbc, 0x11, 0xbb, 0xba, + 0x32, 0xc6, 0xd3, 0x1b, 0x4c, 0x6d, 0x07, 0x7f, + 0xfa, 0x71, 0xc3, 0x68, 0x61, 0x9e, 0xc3, 0x51, + 0x33, 0xa8, 0x32, 0xd2, 0x49, 0x04, 0xb0, 0x3f, + 0xe7, 0x29, 0x92, 0x78, 0xa0, 0x90, 0x67, 0xfa, + 0x2d, 0x1c, 0x87, 0x52, 0xf4, 0x12, 0x10, 0xf4, + 0xa8, 0xcb, 0xf7, 0xdb, 0x80, 0x2f, 0xa0, 0x5d, + 0xbc, 0x66, 0xdf, 0xff, 0x00, 0xfb, 0xb1, 0xb6, + 0xf1, 0x8f, 0xe8, 0xc6, 0xdb, 0xc7, 0x8d, 0xb7, + 0x8f, 0x1c, 0x2d, 0x97, 0x3b, 0x24, 0xc3, 0x3f, + 0xf7, 0xd4, 0xdf, 0xda, 0x8c, 0x5c, 0xee, 0x34, + 0xb7, 0x1a, 0xbb, 0x15, 0x3d, 0x14, 0xf1, 0xd4, + 0xcb, 0x15, 0xca, 0x0a, 0xa7, 0x30, 0xb0, 0x7d, + 0x94, 0x34, 0xe3, 0x54, 0xa5, 0xd9, 0x77, 0x2e, + 0x63, 0x76, 0x47, 0xa7, 0xc7, 0x8d, 0xb4, 0x32, + 0x57, 0xd0, 0xd4, 0xc3, 0x15, 0x2c, 0x1b, 0x5e, + 0x11, 0x69, 0x23, 0x68, 0xf2, 0xdc, 0xa4, 0x57, + 0x94, 0x47, 0x36, 0xde, 0x53, 0xa5, 0xa2, 0xa7, + 0xd2, 0x40, 0x48, 0x79, 0xe3, 0x39, 0x1b, 0x7a, + 0xe5, 0xcf, 0x83, 0xb1, 0x94, 0xd6, 0xeb, 0x84, + 0x3b, 0x04, 0x7a, 0x99, 0x6f, 0x22, 0x97, 0x66, + 0xd5, 0x53, 0x44, 0xa9, 0x4d, 0x1c, 0xca, 0x60, + 0x35, 0x1c, 0xe7, 0xfd, 0xae, 0xa4, 0x48, 0xa4, + 0xb2, 0x12, 0xfa, 0x8e, 0xa6, 0x25, 0x14, 0x8e, + 0x0b, 0xc9, 0xb3, 0xa9, 0xbe, 0xc4, 0x1a, 0x9f, + 0x42, 0xd6, 0x42, 0x55, 0x69, 0x17, 0x4d, 0x22, + 0xb3, 0x2c, 0xc2, 0x41, 0x4e, 0x99, 0x90, 0xb1, + 0xe6, 0xa1, 0x46, 0x59, 0x66, 0x14, 0x74, 0x6e, + 0x02, 0xa1, 0x6b, 0xa7, 0xe1, 0x35, 0x77, 0x10, + 0xaf, 0x14, 0x0e, 0x28, 0x29, 0x75, 0xc8, 0x69, + 0xa2, 0xa9, 0xd6, 0x99, 0x2f, 0x37, 0x4c, 0xbb, + 0x97, 0x7e, 0xfd, 0x43, 0x7f, 0x73, 0x17, 0x0b, + 0x4c, 0x34, 0xe9, 0x66, 0xa2, 0x9e, 0x67, 0xab, + 0x35, 0x97, 0xbd, 0xb5, 0x74, 0xcc, 0x4a, 0x34, + 0xef, 0x32, 0xa2, 0xc9, 0x96, 0x96, 0xd4, 0x80, + 0xa8, 0xd2, 0x32, 0x6d, 0x43, 0x32, 0x43, 0x67, + 0xd1, 0x53, 0x05, 0xa3, 0xb2, 0xd5, 0xd4, 0xd7, + 0x73, 0xb2, 0xa4, 0xa4, 0xa1, 0xa6, 0x8e, 0xd3, + 0x13, 0xcd, 0x34, 0x71, 0xa4, 0x22, 0x11, 0xa8, + 0xc2, 0x55, 0x94, 0xc9, 0x20, 0x93, 0x56, 0xe6, + 0x2f, 0xad, 0xf5, 0x66, 0xb2, 0x69, 0xdd, 0x4e, + 0xb4, 0xf2, 0x4d, 0xc1, 0x99, 0xae, 0x63, 0x35, + 0x68, 0x2b, 0x53, 0x69, 0x3c, 0xb2, 0x46, 0x5e, + 0x2a, 0x77, 0x76, 0xb6, 0xeb, 0x22, 0x45, 0x00, + 0x86, 0x75, 0xd1, 0x91, 0x1b, 0x40, 0x54, 0x3e, + 0xb1, 0x8a, 0x1d, 0x46, 0xba, 0x9a, 0xa7, 0x6f, + 0x49, 0x0d, 0xd3, 0xb3, 0x12, 0x6d, 0x4b, 0xcf, + 0x70, 0x7a, 0xf9, 0x7e, 0x57, 0x27, 0xa7, 0x92, + 0x9a, 0x2a, 0x79, 0x60, 0x58, 0x59, 0x73, 0x1b, + 0x42, 0x55, 0x48, 0x2c, 0xb2, 0x4a, 0x00, 0x2a, + 0x94, 0xbd, 0x87, 0x24, 0xd4, 0xdc, 0x27, 0xaa, + 0x8e, 0xf2, 0x2f, 0x84, 0x33, 0xc2, 0xd2, 0x35, + 0x52, 0x8d, 0xaf, 0x35, 0x44, 0x24, 0x95, 0xd8, + 0xf4, 0x97, 0x95, 0x62, 0x79, 0x55, 0x86, 0x84, + 0xd5, 0xba, 0x26, 0x9e, 0x2a, 0x18, 0x69, 0xf8, + 0x56, 0x88, 0xa8, 0x95, 0x2b, 0x54, 0x91, 0xc2, + 0x9b, 0x47, 0x2e, 0x29, 0x38, 0xf4, 0x0c, 0xd9, + 0x23, 0x39, 0xd4, 0xbb, 0x4d, 0x1c, 0xf2, 0xa5, + 0x81, 0xc8, 0x6a, 0xc8, 0xe4, 0x6a, 0x85, 0xb6, + 0xa2, 0xe7, 0x70, 0x17, 0xd7, 0x21, 0x62, 0xa1, + 0xa5, 0xec, 0x6a, 0xbc, 0xb2, 0xc4, 0x8b, 0x1f, + 0x17, 0x52, 0xef, 0x06, 0x82, 0x81, 0xe4, 0xda, + 0xe7, 0xcd, 0x3a, 0xc3, 0x3e, 0xb1, 0xa1, 0xb2, + 0xdd, 0x4f, 0x13, 0x5c, 0x39, 0x2b, 0x05, 0xc3, + 0x68, 0xe8, 0xf1, 0x5c, 0x55, 0x81, 0x77, 0x8d, + 0xe6, 0xa4, 0x8d, 0x59, 0xe1, 0x47, 0x78, 0xd9, + 0x5f, 0x4c, 0x91, 0x46, 0x8a, 0x72, 0x60, 0x5a, + 0x3c, 0xb7, 0xe6, 0x73, 0xc7, 0x05, 0x4a, 0xd3, + 0xc5, 0x74, 0xa6, 0x42, 0x76, 0x30, 0x5d, 0x6a, + 0x52, 0x15, 0x24, 0xb6, 0x94, 0x1a, 0x57, 0x2c, + 0xcf, 0xf1, 0x46, 0x67, 0xba, 0x77, 0xe3, 0x6d, + 0xe3, 0xc6, 0xdb, 0xc7, 0x8d, 0xb7, 0x8c, 0x7f, + 0x46, 0x38, 0x57, 0x26, 0xab, 0x05, 0x78, 0xcc, + 0x6f, 0xe2, 0xdf, 0xdf, 0x29, 0xff, 0x00, 0x7d, + 0xf8, 0x27, 0x71, 0x86, 0x8e, 0xa2, 0xa2, 0x09, + 0x9c, 0x46, 0x2a, 0xd6, 0x2d, 0x0e, 0xc4, 0x2a, + 0xed, 0x21, 0x32, 0x69, 0x52, 0x4e, 0x59, 0x6a, + 0x12, 0xb6, 0x5e, 0x30, 0x07, 0x77, 0x1b, 0x53, + 0xf1, 0x9e, 0x36, 0xa7, 0xe3, 0x3c, 0x6d, 0x4f, + 0xc6, 0x78, 0x94, 0x45, 0x3a, 0x18, 0xe7, 0x86, + 0x39, 0xa3, 0x24, 0x13, 0x1c, 0xb1, 0x89, 0x10, + 0x91, 0xd0, 0x4a, 0x38, 0x2a, 0x48, 0xee, 0x6e, + 0xdd, 0x88, 0x60, 0xa5, 0xa6, 0x25, 0xa9, 0xe9, + 0x29, 0xe9, 0xd9, 0x86, 0x4c, 0x60, 0x82, 0x38, + 0x8b, 0x0e, 0xf1, 0x31, 0xa2, 0x92, 0x3c, 0x47, + 0x1c, 0x56, 0x8b, 0x59, 0x93, 0x89, 0x52, 0xed, + 0x0b, 0x89, 0x0c, 0x9c, 0x5a, 0x2d, 0x66, 0x40, + 0x73, 0x12, 0x17, 0xd1, 0xa8, 0xb8, 0x27, 0x30, + 0xc4, 0xea, 0x07, 0x78, 0x39, 0xe1, 0xa9, 0xa8, + 0xd8, 0xca, 0x5a, 0x8a, 0x95, 0x8c, 0xff, 0x00, + 0x96, 0x2d, 0x4d, 0x11, 0x33, 0x64, 0xc1, 0xc6, + 0xd4, 0x94, 0xf9, 0x4c, 0x9c, 0x06, 0xe7, 0xe7, + 0xce, 0x01, 0xba, 0x46, 0x22, 0x8e, 0x9e, 0x02, + 0xc6, 0x0a, 0x78, 0x61, 0x2e, 0x14, 0x31, 0x86, + 0x24, 0x8c, 0xb0, 0x41, 0x92, 0x06, 0x28, 0xa3, + 0x30, 0x83, 0x72, 0x03, 0xf3, 0x46, 0xe1, 0x90, + 0xc0, 0x11, 0x89, 0x5a, 0x61, 0x14, 0x62, 0x66, + 0x50, 0x8d, 0x30, 0x8c, 0x09, 0x59, 0x47, 0x42, + 0xb4, 0x99, 0x6b, 0x65, 0x1d, 0xc0, 0x4e, 0x43, + 0x0e, 0x23, 0x94, 0xc6, 0xd2, 0x45, 0x1c, 0x8d, + 0x13, 0x6b, 0x89, 0xa4, 0x40, 0xe6, 0x37, 0x1d, + 0x0f, 0x19, 0x60, 0x4a, 0x38, 0xee, 0x32, 0xe4, + 0x7c, 0x78, 0x9a, 0x2a, 0x7a, 0x9d, 0x3c, 0x62, + 0x9a, 0x0a, 0x8d, 0x1f, 0x37, 0x6f, 0x0a, 0x4b, + 0xa7, 0x3e, 0x9d, 0x3b, 0x45, 0x6c, 0xb3, 0xf1, + 0x62, 0x58, 0xa9, 0xe7, 0x08, 0x27, 0xa7, 0x86, + 0x61, 0x1e, 0xf8, 0xc4, 0xb0, 0xa4, 0x81, 0x0f, + 0x7d, 0x35, 0xa9, 0xd2, 0x7f, 0x8b, 0x96, 0x04, + 0x54, 0xe2, 0x63, 0x52, 0x29, 0xe1, 0x15, 0x0d, + 0xb9, 0xa7, 0x10, 0xa0, 0x98, 0x8c, 0x80, 0xc8, + 0xcb, 0xa7, 0x68, 0x77, 0x00, 0x37, 0xb7, 0x40, + 0x03, 0xb9, 0x8d, 0x8d, 0x31, 0x9b, 0x8c, 0x1a, + 0x68, 0x0d, 0x40, 0xe8, 0xa8, 0x30, 0xa6, 0xdf, + 0xa3, 0x4f, 0xe5, 0x74, 0xeb, 0xf9, 0xbc, 0xdf, + 0x9d, 0xd1, 0xbb, 0xa3, 0x0f, 0x4d, 0x47, 0x23, + 0x48, 0xf2, 0x51, 0xd2, 0xc8, 0xf2, 0x80, 0xb2, + 0xbb, 0xd3, 0xc6, 0xef, 0x2a, 0x82, 0xa4, 0x2c, + 0x8c, 0xc8, 0x4b, 0x80, 0x51, 0x08, 0x0c, 0x48, + 0x05, 0x13, 0x2f, 0x9a, 0x32, 0x96, 0x1a, 0x69, + 0xf4, 0x6d, 0xe9, 0x69, 0xe7, 0xd9, 0xfe, 0x4f, + 0x6d, 0x02, 0x4b, 0xa3, 0xf8, 0x9a, 0xd1, 0xb4, + 0xf4, 0x0e, 0x8c, 0xba, 0x06, 0x08, 0x89, 0x9e, + 0x39, 0x4c, 0x31, 0x99, 0x21, 0xd4, 0x22, 0x90, + 0xc6, 0x0c, 0x91, 0x06, 0x1a, 0x58, 0x46, 0xe4, + 0x6a, 0x4d, 0x4b, 0xcd, 0x6d, 0x24, 0x66, 0x37, + 0x1d, 0xd8, 0x8c, 0x45, 0x0e, 0xbd, 0x8c, 0x31, + 0xc5, 0xb4, 0x73, 0x24, 0x9b, 0x38, 0xc2, 0x6d, + 0x24, 0x3d, 0x2e, 0xfa, 0x40, 0xd4, 0xe7, 0xba, + 0xcd, 0x9b, 0x1e, 0xe9, 0xc6, 0xd4, 0xfc, 0x67, + 0x8d, 0xa9, 0xf8, 0xcf, 0x1b, 0x53, 0xf1, 0x9e, + 0x38, 0x53, 0x73, 0x85, 0x68, 0x1e, 0x84, 0x30, + 0x69, 0xea, 0x1a, 0x3c, 0xd1, 0x5b, 0x33, 0x14, + 0x71, 0xc8, 0xb2, 0x96, 0x7e, 0xf6, 0xa2, 0x81, + 0x55, 0x4e, 0x44, 0xe6, 0x4f, 0xe6, 0xfe, 0xfc, + 0x09, 0x65, 0x1b, 0x84, 0x8e, 0x07, 0x89, 0xd8, + 0x7f, 0xef, 0x8d, 0xb4, 0xdf, 0x4b, 0x27, 0x96, + 0xde, 0xbc, 0x6d, 0xa6, 0xfa, 0x59, 0x3c, 0xb6, + 0xf5, 0xe3, 0x6d, 0x37, 0xd2, 0xc9, 0xe5, 0xb7, + 0xaf, 0x1b, 0x69, 0xbe, 0x96, 0x4f, 0x2d, 0xbd, + 0x78, 0xdb, 0x4d, 0xf4, 0xb2, 0x79, 0x6d, 0xeb, + 0xc6, 0xda, 0x6f, 0xa5, 0x93, 0xcb, 0x6f, 0x5e, + 0x36, 0xd3, 0x7d, 0x2c, 0x9e, 0x5b, 0x7a, 0xf1, + 0xb6, 0x9b, 0xe9, 0x64, 0xf2, 0xdb, 0xd7, 0x8d, + 0xb4, 0xdf, 0x4b, 0x27, 0x96, 0xde, 0xbc, 0x6d, + 0xa6, 0xfa, 0x59, 0x3c, 0xb6, 0xf5, 0xe3, 0x6d, + 0x37, 0xd2, 0xc9, 0xe5, 0xb7, 0xaf, 0x1b, 0x69, + 0xbe, 0x96, 0x4f, 0x2d, 0xbd, 0x78, 0xdb, 0x4d, + 0xf4, 0xb2, 0x79, 0x6d, 0xeb, 0xc6, 0xda, 0x6f, + 0xa5, 0x93, 0xcb, 0x6f, 0x5e, 0x36, 0xd3, 0x7d, + 0x2c, 0x9e, 0x5b, 0x7a, 0xf1, 0xb6, 0x9b, 0xe9, + 0x64, 0xf2, 0xdb, 0xd7, 0x8d, 0xb4, 0xdf, 0x4b, + 0x27, 0x96, 0xde, 0xbc, 0x6d, 0xa6, 0xfa, 0x59, + 0x3c, 0xb6, 0xf5, 0xe3, 0x6d, 0x37, 0xd2, 0xc9, + 0xe5, 0xb7, 0xaf, 0x1b, 0x69, 0xbe, 0x96, 0x4f, + 0x2d, 0xbd, 0x7f, 0xfd, 0xba, 0xbf, 0xff, 0xc4, + 0x00, 0x72, 0x10, 0x00, 0x02, 0x02, 0x01, 0x02, + 0x03, 0x02, 0x06, 0x09, 0x0d, 0x08, 0x0d, 0x09, + 0x03, 0x05, 0x11, 0x02, 0x03, 0x01, 0x04, 0x05, + 0x00, 0x11, 0x06, 0x12, 0x13, 0x14, 0x21, 0x15, + 0x22, 0x31, 0x35, 0x36, 0x95, 0x07, 0x23, 0x32, + 0x71, 0x92, 0x94, 0xd3, 0xd4, 0xd5, 0x10, 0x16, + 0x33, 0x34, 0x41, 0x51, 0x74, 0x75, 0x91, 0x93, + 0x96, 0xb3, 0xb4, 0x20, 0x24, 0x42, 0x61, 0xb5, + 0xd2, 0xe1, 0xe3, 0x25, 0x30, 0x40, 0x44, 0x52, + 0x62, 0x72, 0x73, 0x76, 0xa3, 0xd1, 0xe2, 0xe5, + 0x43, 0x81, 0x83, 0xa1, 0xa5, 0xb1, 0xb2, 0xd6, + 0xe4, 0x26, 0x53, 0x63, 0x08, 0x17, 0x45, 0x55, + 0x65, 0x82, 0xa4, 0xc1, 0xc2, 0x46, 0x50, 0x54, + 0x64, 0xa2, 0xb6, 0x60, 0x66, 0x77, 0x85, 0xc3, + 0xc5, 0xf0, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, + 0x00, 0x06, 0x3f, 0x02, 0xd3, 0x12, 0xcc, 0x9a, + 0x45, 0x8a, 0x61, 0xa9, 0x83, 0xc8, 0xfd, 0xc5, + 0x8b, 0x29, 0x03, 0x1e, 0xe5, 0x6d, 0xdc, 0x51, + 0x31, 0xdd, 0xdd, 0xaf, 0x3a, 0x27, 0xe0, 0x3f, + 0xe4, 0x75, 0xe7, 0x44, 0xfc, 0x07, 0xfc, 0x8e, + 0xbc, 0xe8, 0x9f, 0x80, 0xff, 0x00, 0x91, 0xd7, + 0x9d, 0x13, 0xf0, 0x1f, 0xf2, 0x3a, 0xf3, 0xa2, + 0x7e, 0x03, 0xfe, 0x47, 0x5e, 0x74, 0x4f, 0xc0, + 0x7f, 0xc8, 0xeb, 0xce, 0x89, 0xf8, 0x0f, 0xf9, + 0x1d, 0x79, 0xd1, 0x3f, 0x01, 0xff, 0x00, 0x23, + 0xaf, 0x3a, 0x27, 0xe0, 0x3f, 0xe4, 0x75, 0xe7, + 0x44, 0xfc, 0x07, 0xfc, 0x8e, 0xbc, 0xe8, 0x9f, + 0x80, 0xff, 0x00, 0x91, 0xd7, 0x9d, 0x13, 0xf0, + 0x1f, 0xf2, 0x3a, 0xf3, 0xa2, 0x7e, 0x03, 0xfe, + 0x47, 0x5e, 0x74, 0x4f, 0xc0, 0x7f, 0xc8, 0xeb, + 0xce, 0x89, 0xf8, 0x0f, 0xf9, 0x1d, 0x79, 0xd1, + 0x3f, 0x01, 0xff, 0x00, 0x23, 0xaf, 0x3a, 0x27, + 0xe0, 0x3f, 0xe4, 0x75, 0xe7, 0x44, 0xfc, 0x07, + 0xfc, 0x8e, 0xbc, 0xe8, 0x9f, 0x80, 0xff, 0x00, + 0x91, 0xd7, 0x9d, 0x13, 0xf0, 0x1f, 0xf2, 0x3a, + 0xf3, 0xa2, 0x7e, 0x03, 0xfe, 0x47, 0x5e, 0x74, + 0x4f, 0xc0, 0x7f, 0xc8, 0xeb, 0xce, 0x89, 0xf8, + 0x0f, 0xf9, 0x1d, 0x79, 0xd1, 0x3f, 0x01, 0xff, + 0x00, 0x23, 0xaf, 0x3a, 0x27, 0xe0, 0x3f, 0xe4, + 0x75, 0xe7, 0x44, 0xfc, 0x07, 0xfc, 0x8e, 0xbc, + 0xe8, 0x9f, 0x80, 0xff, 0x00, 0x91, 0xd7, 0x9d, + 0x13, 0xf0, 0x1f, 0xf2, 0x3a, 0xf3, 0xa2, 0x7e, + 0x03, 0xfe, 0x47, 0x5e, 0x74, 0x4f, 0xc0, 0x7f, + 0xc8, 0xeb, 0xce, 0x89, 0xf8, 0x0f, 0xf9, 0x1d, + 0x79, 0xd1, 0x3f, 0x01, 0xff, 0x00, 0x23, 0xaf, + 0x3a, 0x27, 0xe0, 0x3f, 0xe4, 0x75, 0xe7, 0x44, + 0xfc, 0x07, 0xfc, 0x8e, 0xbc, 0xe8, 0x9f, 0x80, + 0xff, 0x00, 0x91, 0xd7, 0x9d, 0x13, 0xf0, 0x1f, + 0xf2, 0x3a, 0xf3, 0xa2, 0x7e, 0x03, 0xfe, 0x47, + 0x5e, 0x74, 0x4f, 0xc0, 0x7f, 0xc8, 0xeb, 0xce, + 0x89, 0xf8, 0x0f, 0xf9, 0x1d, 0x79, 0xd1, 0x3f, + 0x01, 0xff, 0x00, 0x23, 0xaf, 0x3a, 0x27, 0xe0, + 0x3f, 0xe4, 0x75, 0xe7, 0x44, 0xfc, 0x07, 0xfc, + 0x8e, 0xbc, 0xe8, 0x9f, 0x80, 0xff, 0x00, 0x91, + 0xd7, 0x9d, 0x13, 0xf0, 0x1f, 0xf2, 0x3a, 0xf3, + 0xa2, 0x7e, 0x03, 0xfe, 0x47, 0x5e, 0x74, 0x4f, + 0xc0, 0x7f, 0xc8, 0xeb, 0xce, 0x89, 0xf8, 0x0f, + 0xf9, 0x1d, 0x79, 0xd1, 0x3f, 0x01, 0xff, 0x00, + 0x23, 0xaf, 0x3a, 0x27, 0xe0, 0x3f, 0xe4, 0x75, + 0xe7, 0x44, 0xfc, 0x07, 0xfc, 0x8e, 0xbc, 0xe8, + 0x9f, 0x80, 0xff, 0x00, 0x91, 0xd7, 0x9d, 0x13, + 0xf0, 0x1f, 0xf2, 0x3a, 0xf3, 0xa2, 0x7e, 0x03, + 0xfe, 0x47, 0x5e, 0x74, 0x4f, 0xc0, 0x7f, 0xc8, + 0xeb, 0xce, 0x89, 0xf8, 0x0f, 0xf9, 0x1d, 0x79, + 0xd1, 0x3f, 0x01, 0xff, 0x00, 0x23, 0xaf, 0x3a, + 0x27, 0xe0, 0x3f, 0xe4, 0x75, 0xe7, 0x44, 0xfc, + 0x07, 0xfc, 0x8e, 0xbc, 0xe8, 0x9f, 0x80, 0xff, + 0x00, 0x91, 0xd7, 0x9d, 0x13, 0xf0, 0x1f, 0xf2, + 0x3a, 0xf3, 0xa2, 0x7e, 0x03, 0xfe, 0x47, 0x5e, + 0x74, 0x4f, 0xc0, 0x7f, 0xc8, 0xeb, 0xce, 0x89, + 0xf8, 0x0f, 0xf9, 0x1d, 0x79, 0xd1, 0x3f, 0x01, + 0xff, 0x00, 0x23, 0xaf, 0x3a, 0x27, 0xe0, 0x3f, + 0xe4, 0x75, 0xe7, 0x44, 0xfc, 0x07, 0xfc, 0x8e, + 0xbc, 0xe8, 0x9f, 0x80, 0xff, 0x00, 0x91, 0xd7, + 0x9d, 0x13, 0xf0, 0x1f, 0xf2, 0x3a, 0xf3, 0xa2, + 0x7e, 0x03, 0xfe, 0x47, 0x5e, 0x74, 0x4f, 0xc0, + 0x7f, 0xc8, 0xeb, 0xce, 0x89, 0xf8, 0x0f, 0xf9, + 0x1d, 0x79, 0xd1, 0x3f, 0x01, 0xff, 0x00, 0x23, + 0xaf, 0x3a, 0x27, 0xe0, 0x3f, 0xe4, 0x74, 0xba, + 0xd5, 0xf2, 0x2a, 0x63, 0xdd, 0x3c, 0xab, 0x5c, + 0x0b, 0xa2, 0x4a, 0x76, 0xdf, 0x6e, 0xf5, 0x44, + 0x79, 0x22, 0x7c, 0xb3, 0x1f, 0x50, 0xa6, 0x3e, + 0xf4, 0xe9, 0xa5, 0xbf, 0xba, 0xca, 0x65, 0x8b, + 0xf2, 0xe4, 0x1f, 0x3a, 0xf2, 0xeb, 0xcb, 0xaf, + 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, + 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2c, 0xeb, + 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, + 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, + 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0x3a, 0xf2, + 0xce, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, + 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, + 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, 0xba, + 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, + 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, + 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, + 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, + 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, + 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, + 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, 0xba, + 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xb0, 0x45, 0xbf, + 0xb9, 0xce, 0x2b, 0xf6, 0x0c, 0x84, 0x68, 0x67, + 0xf8, 0xb4, 0x7e, 0xf4, 0xe8, 0xff, 0x00, 0x19, + 0x65, 0x3f, 0x6f, 0x7f, 0xd4, 0xa9, 0x93, 0x5f, + 0x1f, 0xf1, 0xdf, 0x09, 0xc5, 0x5c, 0x70, 0x63, + 0xfb, 0x07, 0x0b, 0x66, 0x0b, 0x1f, 0x46, 0xc4, + 0x85, 0xab, 0x56, 0x7b, 0x63, 0xd3, 0x11, 0xe3, + 0x5b, 0x2e, 0xd5, 0xd0, 0x26, 0xfd, 0xd4, 0xa1, + 0x03, 0xfc, 0x0d, 0x64, 0x3d, 0x8b, 0x27, 0xd9, + 0x63, 0xd9, 0x42, 0x31, 0x15, 0x38, 0x6d, 0x59, + 0xa0, 0xc8, 0xc7, 0x14, 0x5c, 0xf0, 0x89, 0x3d, + 0x94, 0xa9, 0xd9, 0x95, 0x17, 0xb6, 0x76, 0x6e, + 0x97, 0x35, 0x92, 0x1e, 0xe4, 0xf3, 0xf2, 0xc0, + 0xf8, 0xdb, 0xef, 0x33, 0xec, 0x95, 0x96, 0x57, + 0xb2, 0x17, 0x1e, 0xf1, 0x25, 0x87, 0x70, 0x07, + 0x13, 0x85, 0x68, 0xe2, 0x2c, 0xe3, 0xad, 0x46, + 0x32, 0xc5, 0x6c, 0x4d, 0xcb, 0x69, 0xbf, 0x8e, + 0x20, 0xe4, 0x65, 0x5b, 0xcb, 0x62, 0x86, 0x02, + 0xc2, 0xc8, 0x58, 0x11, 0xde, 0x05, 0x05, 0xb4, + 0xe9, 0xdc, 0x3b, 0xc5, 0xd9, 0xcc, 0xb6, 0x65, + 0x1c, 0x67, 0xc2, 0xb5, 0xb8, 0x9b, 0x86, 0xdf, + 0x98, 0xc8, 0xdd, 0xc8, 0x48, 0xce, 0x36, 0xf5, + 0xda, 0x56, 0x57, 0x50, 0xef, 0x3d, 0xd2, 0xa8, + 0x64, 0x86, 0x45, 0x76, 0x05, 0x73, 0x1d, 0x56, + 0x63, 0x54, 0x52, 0x3b, 0x0c, 0x4c, 0x71, 0x47, + 0x12, 0x89, 0x40, 0xdc, 0xa7, 0x8d, 0x62, 0x71, + 0x51, 0x3b, 0x4f, 0x36, 0x62, 0xfe, 0xd4, 0xb1, + 0x9e, 0x2c, 0xfb, 0xb1, 0x55, 0xb7, 0xae, 0xcb, + 0x43, 0xee, 0xa1, 0x0d, 0xd7, 0xb2, 0x86, 0x33, + 0x8b, 0x73, 0x59, 0x9c, 0xbd, 0xec, 0x35, 0xae, + 0x12, 0xad, 0xd3, 0xcc, 0x65, 0x2f, 0xe4, 0xa6, + 0x83, 0x58, 0xbe, 0x25, 0x9b, 0x4a, 0x4f, 0x6e, + 0x73, 0x7b, 0x39, 0x91, 0x2d, 0x41, 0x66, 0x17, + 0x03, 0xce, 0x68, 0x08, 0x3e, 0x6e, 0x90, 0x6c, + 0x1c, 0x2b, 0xc1, 0xd1, 0xd7, 0xe3, 0xce, 0x26, + 0xa5, 0x7d, 0xb4, 0x20, 0x24, 0x77, 0xc1, 0xe0, + 0xe9, 0x21, 0xcd, 0xcb, 0xf1, 0x25, 0x89, 0x9f, + 0x15, 0x01, 0x5a, 0xba, 0x5e, 0xaa, 0x0c, 0x67, + 0x71, 0xdb, 0x13, 0x35, 0x0b, 0xce, 0x99, 0xa4, + 0xb8, 0x4f, 0x21, 0x95, 0xbf, 0x77, 0x27, 0x7d, + 0xe5, 0x9e, 0xeb, 0xdd, 0xc8, 0xda, 0x7d, 0xdb, + 0x6e, 0xe9, 0xf1, 0x26, 0x5d, 0x4b, 0xea, 0xd9, + 0xb2, 0x6c, 0x73, 0x3a, 0x6a, 0x00, 0x50, 0x73, + 0x1c, 0xf2, 0x2c, 0x04, 0x07, 0x61, 0x18, 0x8d, + 0x71, 0x27, 0x0c, 0x70, 0xa7, 0x12, 0x5d, 0xe0, + 0x9f, 0x63, 0x9e, 0x0a, 0xb5, 0x18, 0xec, 0xc6, + 0x6f, 0x0f, 0x12, 0x19, 0xcc, 0xee, 0x4b, 0x9d, + 0x8b, 0x65, 0x7a, 0xb6, 0xa1, 0x81, 0x35, 0xc4, + 0xd9, 0x5e, 0xd4, 0x56, 0x95, 0x18, 0x85, 0x5a, + 0xcb, 0x0b, 0x76, 0xd5, 0x69, 0xd6, 0x15, 0x54, + 0x2d, 0xe7, 0xfd, 0x8c, 0x3d, 0x92, 0xbd, 0x90, + 0x7e, 0xb9, 0xb1, 0xab, 0x3b, 0xc1, 0x8c, 0xe2, + 0x0c, 0xd0, 0x65, 0xf1, 0xf9, 0xee, 0x88, 0xc9, + 0x36, 0x9b, 0x10, 0x35, 0x2a, 0xaa, 0x2e, 0x58, + 0x5f, 0x37, 0x67, 0x37, 0xa6, 0xd2, 0x1a, 0xe8, + 0x04, 0x12, 0xab, 0xc3, 0x7b, 0x52, 0x6a, 0x71, + 0x77, 0x17, 0x61, 0xef, 0xf0, 0xc5, 0xfa, 0xb8, + 0xdb, 0x96, 0x73, 0xf4, 0x2f, 0xe3, 0xee, 0x52, + 0x6d, 0x79, 0xc5, 0x8b, 0x4a, 0xd5, 0xc4, 0x53, + 0xb2, 0xa0, 0xb3, 0x35, 0x2d, 0xa1, 0x3d, 0xba, + 0xac, 0x40, 0x9f, 0xb5, 0xb6, 0x12, 0x24, 0x66, + 0xb9, 0xd7, 0xb1, 0xd5, 0xec, 0x06, 0x33, 0x39, + 0xc2, 0x3e, 0xc7, 0x17, 0x38, 0xf3, 0x09, 0x42, + 0x96, 0x51, 0xef, 0x66, 0x3b, 0x23, 0xc6, 0x0f, + 0x9b, 0xa8, 0xeb, 0x19, 0x2d, 0x26, 0xb6, 0x78, + 0x10, 0x6a, 0x99, 0xae, 0x2b, 0x89, 0x58, 0xa9, + 0x61, 0x86, 0x53, 0x62, 0xc3, 0x5c, 0x1d, 0x96, + 0x96, 0x7f, 0x35, 0x89, 0xc5, 0x5b, 0xce, 0x65, + 0x31, 0xf8, 0xf7, 0xbb, 0x1b, 0x88, 0xa1, 0x56, + 0xc5, 0xcb, 0x37, 0xef, 0xce, 0xca, 0xa6, 0x80, + 0xad, 0x51, 0x6d, 0xb0, 0xc5, 0xcd, 0x86, 0x2c, + 0xac, 0x74, 0x96, 0x44, 0xba, 0xc2, 0xe6, 0xed, + 0xb0, 0x4e, 0xaa, 0x71, 0x2f, 0x1c, 0x7b, 0x29, + 0xfb, 0x24, 0xe2, 0x78, 0xb7, 0x35, 0x56, 0x32, + 0x1e, 0x0d, 0xc2, 0xe4, 0x67, 0x07, 0x8b, 0xe1, + 0xe2, 0xb2, 0x3d, 0x4a, 0xd4, 0x2c, 0x61, 0x0a, + 0xbf, 0xb7, 0xbe, 0xa8, 0xc8, 0x45, 0xe5, 0x4c, + 0xd1, 0xd8, 0xba, 0x95, 0x06, 0x20, 0xd5, 0xdb, + 0x59, 0xec, 0xa1, 0x4b, 0x8e, 0x2c, 0x86, 0x6f, + 0x29, 0xec, 0x45, 0x6f, 0x2a, 0x9b, 0x39, 0x94, + 0x08, 0xaa, 0x73, 0x58, 0xfc, 0x72, 0x32, 0x0c, + 0x8e, 0xaf, 0x2c, 0x0a, 0xfb, 0x50, 0x9e, 0x2e, + 0xc0, 0xc3, 0xf7, 0x82, 0x7a, 0x5c, 0x8e, 0xa4, + 0x4b, 0x94, 0xc7, 0xbc, 0x7d, 0x90, 0xf8, 0xd3, + 0xd9, 0x27, 0x8d, 0xb0, 0x07, 0x9f, 0x6d, 0x8b, + 0x1c, 0x3b, 0x83, 0xe0, 0xdc, 0xa8, 0xe1, 0x68, + 0x62, 0xb1, 0xa9, 0xb2, 0xd4, 0x21, 0x96, 0x52, + 0x28, 0x62, 0xed, 0xcb, 0x8d, 0x44, 0x4a, 0x4c, + 0x82, 0xcb, 0xb2, 0x40, 0xb5, 0xf6, 0x5a, 0xdb, + 0x52, 0x35, 0xb8, 0xdb, 0xd8, 0xb7, 0x8e, 0x2f, + 0xaf, 0x31, 0xc4, 0x5c, 0x0b, 0x62, 0xa3, 0x29, + 0xe7, 0x61, 0x42, 0x87, 0x66, 0xb0, 0x59, 0x15, + 0x05, 0x8a, 0x56, 0x2d, 0x28, 0x67, 0x6e, 0xd2, + 0x08, 0x7d, 0x46, 0xc9, 0xc4, 0x73, 0x74, 0xee, + 0x02, 0xdc, 0x6c, 0x62, 0xba, 0xac, 0xab, 0x8a, + 0xe1, 0xe4, 0x78, 0x47, 0x8e, 0xf8, 0xb1, 0xac, + 0xc5, 0x70, 0x9e, 0x30, 0x36, 0x22, 0x8b, 0x12, + 0x31, 0xda, 0x72, 0xf6, 0xa3, 0xbe, 0x02, 0x8e, + 0x25, 0x25, 0xda, 0x0c, 0x8f, 0xda, 0xcd, 0xb0, + 0xb0, 0x61, 0x2d, 0x1d, 0xa1, 0xe9, 0xb7, 0x6f, + 0x3b, 0x95, 0xc8, 0x66, 0x32, 0x03, 0xc5, 0xf9, + 0xba, 0xe5, 0x6f, 0x25, 0x7a, 0xcd, 0xf7, 0xf4, + 0xd5, 0x53, 0x11, 0xca, 0x90, 0x75, 0xa6, 0x30, + 0xe1, 0x00, 0x66, 0xc2, 0x5a, 0x86, 0x61, 0x63, + 0x26, 0x72, 0x23, 0x12, 0x53, 0xbf, 0x1e, 0xe6, + 0x32, 0x37, 0x73, 0x59, 0x7f, 0x63, 0xca, 0x9c, + 0x7b, 0x95, 0xe1, 0xac, 0xed, 0x4b, 0x17, 0x6d, + 0xdd, 0xa7, 0x84, 0xad, 0x90, 0xc9, 0xe4, 0x27, + 0x1b, 0x62, 0x85, 0x66, 0xb5, 0xa1, 0x44, 0xe9, + 0xf6, 0x36, 0x9d, 0x70, 0x42, 0xc1, 0x2f, 0xae, + 0x87, 0x63, 0xbd, 0xae, 0x5e, 0x82, 0x0c, 0xa5, + 0xfa, 0x36, 0x60, 0xd6, 0xdc, 0x0d, 0xfb, 0x94, + 0xed, 0xd6, 0x67, 0x71, 0x01, 0xe3, 0x9a, 0xea, + 0xf6, 0x6b, 0xb9, 0x73, 0xf7, 0x62, 0x41, 0xaa, + 0x68, 0x17, 0xf8, 0x24, 0x33, 0xe4, 0x9d, 0x3f, + 0x8b, 0xb8, 0xab, 0x29, 0x92, 0xc9, 0xc6, 0x26, + 0xe7, 0x13, 0xdd, 0xbd, 0x7b, 0x21, 0x71, 0xf9, + 0x0b, 0xc5, 0x53, 0x1f, 0xca, 0xde, 0x90, 0xbe, + 0xe3, 0x58, 0xc2, 0xd8, 0x06, 0x41, 0x0b, 0x96, + 0x72, 0x41, 0x16, 0xd1, 0xb6, 0xf3, 0xa6, 0x71, + 0xc7, 0x19, 0x71, 0x97, 0x10, 0xf0, 0x77, 0x07, + 0xe4, 0x5f, 0x68, 0x38, 0x6b, 0x84, 0xb8, 0x3a, + 0xdf, 0x82, 0x98, 0xea, 0x35, 0xdc, 0x75, 0xe2, + 0xdd, 0xeb, 0xc6, 0x2f, 0x96, 0xaa, 0x5a, 0xa6, + 0x2a, 0x7b, 0x45, 0x7b, 0x0c, 0xbc, 0xc0, 0x65, + 0x94, 0x95, 0x0a, 0xf1, 0x58, 0x0f, 0x13, 0xc5, + 0x1e, 0xc7, 0x5c, 0x43, 0xc6, 0x9c, 0x7d, 0xc3, + 0xc3, 0x7e, 0xb5, 0x3e, 0x21, 0xe0, 0x6c, 0xdb, + 0x5d, 0xc4, 0x37, 0x8e, 0xb3, 0xcf, 0x90, 0x5d, + 0x8a, 0x8a, 0xd5, 0xe0, 0xe0, 0x26, 0x4e, 0x55, + 0x3d, 0x96, 0xaa, 0xac, 0x54, 0x7c, 0xd7, 0xb0, + 0x6c, 0xb7, 0x5c, 0x9c, 0x35, 0xfd, 0x88, 0x69, + 0xe2, 0x33, 0x9c, 0x43, 0xc3, 0x21, 0xc4, 0xdc, + 0x4e, 0xca, 0x17, 0x99, 0x89, 0xbd, 0x77, 0x11, + 0x7e, 0x2b, 0x5e, 0x1c, 0x38, 0x40, 0x58, 0x05, + 0x1a, 0x67, 0xaf, 0x5a, 0x2c, 0x1c, 0x8a, 0x6c, + 0x81, 0x74, 0x5d, 0xcf, 0x12, 0x11, 0x32, 0x71, + 0x33, 0xd1, 0xf6, 0x6b, 0xf6, 0x5e, 0x06, 0xc7, + 0xd8, 0xcd, 0x9c, 0x46, 0xc7, 0x00, 0x9f, 0xf0, + 0x48, 0xd5, 0xcc, 0xae, 0xa0, 0xc4, 0xfb, 0xa0, + 0xea, 0x07, 0x34, 0x77, 0x73, 0x47, 0x97, 0x5c, + 0x69, 0xec, 0x3d, 0xc7, 0x39, 0x6f, 0xae, 0x6c, + 0x87, 0x0a, 0xd6, 0x4e, 0x63, 0x15, 0xc4, 0x52, + 0xbe, 0x47, 0x5b, 0xc4, 0x9b, 0x31, 0x8b, 0xe9, + 0x5b, 0xf2, 0xcf, 0x39, 0xab, 0x2f, 0x8e, 0x78, + 0x03, 0x4d, 0xce, 0x4b, 0x26, 0xea, 0x0e, 0xc5, + 0x91, 0x5a, 0xdb, 0xae, 0x28, 0xcb, 0xe5, 0x3d, + 0x95, 0x7d, 0x93, 0x71, 0x4c, 0xc6, 0xf1, 0x55, + 0xfc, 0x4a, 0x2b, 0xe2, 0xb8, 0x9e, 0xe4, 0x57, + 0xec, 0xeb, 0x5a, 0x5e, 0x33, 0x31, 0x65, 0x8e, + 0x28, 0x28, 0x97, 0xc8, 0x6c, 0x33, 0x03, 0xc8, + 0x23, 0xdd, 0xa2, 0xe3, 0xae, 0x11, 0xf6, 0x48, + 0xe2, 0x0e, 0x34, 0xc3, 0x61, 0x65, 0x4f, 0xcf, + 0xf0, 0xc7, 0x18, 0x34, 0xaf, 0x9b, 0x71, 0x81, + 0x22, 0x0f, 0x72, 0x6d, 0x13, 0x18, 0x2c, 0x01, + 0x82, 0xdd, 0xd0, 0xa5, 0x52, 0xb5, 0x5c, 0x3f, + 0x7c, 0x29, 0xd6, 0x48, 0x08, 0x35, 0xc1, 0x9c, + 0x4d, 0x87, 0xe3, 0x2e, 0x31, 0xe0, 0xfa, 0x4f, + 0xa5, 0x63, 0x20, 0x11, 0xc2, 0xf9, 0x49, 0xc7, + 0x3a, 0xc1, 0xdf, 0x8a, 0xa9, 0xb1, 0x4b, 0x29, + 0x21, 0x1b, 0x3d, 0x98, 0x8b, 0x74, 0x1f, 0x55, + 0x73, 0x1e, 0x28, 0xb4, 0xad, 0x10, 0x6e, 0x2c, + 0x89, 0xd7, 0xb1, 0xff, 0x00, 0xb1, 0xed, 0x6f, + 0x65, 0x8f, 0x65, 0x07, 0x63, 0x78, 0xba, 0x8b, + 0x6d, 0x5d, 0xba, 0xfe, 0x28, 0xb9, 0xdb, 0xab, + 0x10, 0x3b, 0x20, 0xb8, 0x1a, 0xbc, 0x8c, 0x14, + 0x72, 0xed, 0x4c, 0x26, 0x7a, 0xaa, 0x39, 0xdc, + 0x8b, 0xbf, 0xc9, 0xb2, 0xb3, 0x87, 0xec, 0x91, + 0xec, 0x87, 0xc4, 0xd0, 0xaa, 0xf6, 0x91, 0xe0, + 0xae, 0x23, 0xcd, 0x95, 0xec, 0x5b, 0x3b, 0x4a, + 0xa5, 0x5d, 0x66, 0x57, 0x98, 0xf1, 0x9a, 0x8d, + 0xf9, 0xd2, 0x5f, 0xc0, 0x38, 0x89, 0xfe, 0xd6, + 0xc4, 0x72, 0x3c, 0xcd, 0x5c, 0x9c, 0xfd, 0x35, + 0xf3, 0x44, 0x73, 0x84, 0x30, 0x7b, 0xf7, 0xff, + 0x00, 0x04, 0xa3, 0x5f, 0x61, 0xb5, 0xf9, 0x9f, + 0xf7, 0xb5, 0xf6, 0x1b, 0x5f, 0x99, 0xff, 0x00, + 0x7b, 0x5f, 0x61, 0xb5, 0xf9, 0x9f, 0xf7, 0xb5, + 0xf6, 0x1b, 0x5f, 0x99, 0xff, 0x00, 0x7b, 0x5f, + 0x61, 0xb5, 0xf9, 0x9f, 0xf7, 0xb5, 0xf6, 0x1b, + 0x5f, 0x99, 0xff, 0x00, 0x7b, 0x5f, 0x61, 0xb5, + 0xf9, 0x9f, 0xf7, 0xb5, 0xf6, 0x1b, 0x5f, 0x99, + 0xff, 0x00, 0x7b, 0x5f, 0x61, 0xb5, 0xf9, 0x9f, + 0xf7, 0xb5, 0xf6, 0x1b, 0x5f, 0x99, 0xff, 0x00, + 0x7b, 0x5f, 0x61, 0xb5, 0xf9, 0x9f, 0xf7, 0xb5, + 0xf6, 0x1b, 0x5f, 0x99, 0xff, 0x00, 0x7b, 0x5f, + 0x61, 0xb5, 0xf9, 0x9f, 0xf7, 0xb5, 0xf6, 0x1b, + 0x5f, 0x99, 0xff, 0x00, 0x7b, 0x5f, 0x61, 0xb5, + 0xf9, 0x9f, 0xf7, 0xb4, 0xc1, 0x5a, 0x2d, 0x14, + 0xaa, 0x62, 0x19, 0x10, 0x9f, 0x73, 0x33, 0x1b, + 0xc4, 0x4f, 0x8d, 0xf7, 0xb5, 0xf6, 0xad, 0xcf, + 0xcc, 0x7f, 0xbd, 0xaf, 0xb5, 0x6e, 0x7e, 0x63, + 0xfd, 0xed, 0x7d, 0xab, 0x73, 0xf3, 0x1f, 0xef, + 0x6b, 0xed, 0x5b, 0x9f, 0x98, 0xff, 0x00, 0x7b, + 0x5f, 0x6a, 0xdc, 0xfc, 0xc7, 0xfb, 0xda, 0x23, + 0x3a, 0xd7, 0x04, 0x00, 0x64, 0xca, 0x65, 0x1d, + 0xd0, 0x23, 0x1b, 0xcc, 0xcf, 0x8d, 0xf7, 0x23, + 0x42, 0x63, 0x5a, 0xe4, 0x89, 0x8c, 0x10, 0xcc, + 0x23, 0xba, 0x44, 0xa3, 0x78, 0x9f, 0x75, 0xf7, + 0x63, 0x5f, 0x6a, 0xdc, 0xfc, 0xc7, 0xfb, 0xda, + 0xfb, 0x56, 0xe7, 0xe6, 0x3f, 0xde, 0xd7, 0xda, + 0xb7, 0x3f, 0x31, 0xfe, 0xf6, 0xbe, 0xd5, 0xb9, + 0xf9, 0x8f, 0xf7, 0xb5, 0xf6, 0xad, 0xcf, 0xcc, + 0x7f, 0xbd, 0xa5, 0xa6, 0x55, 0x61, 0x64, 0xde, + 0x7e, 0x4e, 0xaa, 0xb9, 0x46, 0x79, 0x06, 0x4c, + 0xbb, 0xf7, 0xff, 0x00, 0x06, 0x35, 0x84, 0xfc, + 0x76, 0xaf, 0xd8, 0x6f, 0xe8, 0x3d, 0xe8, 0xd1, + 0xfb, 0xd3, 0xa3, 0xfc, 0x65, 0x94, 0xfd, 0xbd, + 0xff, 0x00, 0x57, 0x37, 0xfe, 0x81, 0xd5, 0xfe, + 0x48, 0xc5, 0x6b, 0xd9, 0x03, 0xfd, 0x06, 0xe2, + 0xef, 0xff, 0x00, 0x77, 0xb2, 0x3a, 0xf6, 0x06, + 0xf6, 0x59, 0xa8, 0xa2, 0x27, 0x70, 0x36, 0x72, + 0xcd, 0x5c, 0xb7, 0x48, 0x63, 0xa9, 0x63, 0x87, + 0x33, 0x79, 0x6b, 0xa9, 0xbe, 0x89, 0x2f, 0x78, + 0x0e, 0xba, 0x24, 0xbc, 0x44, 0x9e, 0x41, 0xa7, + 0xee, 0x8b, 0x69, 0xf6, 0x2a, 0xf6, 0x39, 0xae, + 0xd0, 0xb7, 0x8b, 0x75, 0xaf, 0xfe, 0x71, 0xf8, + 0x86, 0x03, 0x63, 0x4b, 0xf0, 0x18, 0x78, 0x3f, + 0x03, 0xad, 0xa3, 0x3e, 0x29, 0xd5, 0xcc, 0xdc, + 0xeb, 0xa0, 0xbc, 0x85, 0x0b, 0x88, 0x31, 0xf7, + 0x5a, 0xff, 0x00, 0xe5, 0x47, 0xc5, 0x79, 0xa2, + 0x67, 0x61, 0xc4, 0xf1, 0x36, 0x1a, 0xc3, 0x01, + 0x43, 0xce, 0xfb, 0x2e, 0x65, 0xde, 0x2c, 0x4d, + 0x5a, 0xa9, 0x8f, 0x27, 0x5a, 0xdd, 0xa6, 0xa6, + 0xb8, 0x11, 0xc8, 0xac, 0x09, 0x9d, 0x46, 0x98, + 0x28, 0x4c, 0xe3, 0x8e, 0xfd, 0x90, 0xf8, 0xcb, + 0x8e, 0xb8, 0x45, 0x9e, 0xc8, 0x9c, 0x79, 0x82, + 0xcc, 0x2d, 0x58, 0xcf, 0xae, 0x0c, 0x79, 0xb3, + 0x86, 0xf0, 0x65, 0x8f, 0x78, 0x62, 0x38, 0x5e, + 0x92, 0xa5, 0xfc, 0xe3, 0x60, 0xb6, 0x51, 0x5c, + 0x81, 0x05, 0x99, 0xb7, 0xa1, 0x5a, 0x55, 0xd5, + 0x4b, 0xdb, 0x67, 0x86, 0xf8, 0x6a, 0xbe, 0x6b, + 0x18, 0xde, 0x22, 0xa6, 0x8e, 0x22, 0xb1, 0x6b, + 0x08, 0xbb, 0xa8, 0x3c, 0xa5, 0x64, 0xb3, 0x88, + 0xb2, 0x8c, 0x5b, 0x9f, 0x4a, 0x0f, 0xae, 0xb5, + 0x98, 0x58, 0xae, 0x62, 0x64, 0x11, 0x12, 0x2e, + 0x5c, 0xf9, 0x0e, 0x35, 0xc6, 0xb5, 0x5f, 0xb4, + 0x65, 0xeb, 0xfb, 0x22, 0xe5, 0xfc, 0x26, 0x33, + 0xf6, 0x68, 0x82, 0xc5, 0xe1, 0xd6, 0x89, 0x64, + 0x6d, 0x13, 0x03, 0xda, 0x11, 0x90, 0x10, 0x19, + 0xdf, 0x63, 0x17, 0xf9, 0x37, 0xdb, 0x53, 0x33, + 0xdd, 0x11, 0xdf, 0x33, 0x3e, 0x48, 0x88, 0xfb, + 0xba, 0x3b, 0x18, 0xac, 0x8e, 0x2b, 0x3d, 0x8d, + 0x6f, 0x52, 0xb3, 0x5d, 0x8f, 0xb7, 0x4f, 0x29, + 0x45, 0x93, 0xb7, 0x2b, 0xab, 0x34, 0xeb, 0xb1, + 0xe8, 0x29, 0xe5, 0x2e, 0x57, 0x21, 0x9d, 0xfb, + 0x17, 0x2b, 0x03, 0xbf, 0x5e, 0xc2, 0xd1, 0x11, + 0xb4, 0x47, 0xb2, 0x7e, 0x1e, 0x22, 0x22, 0x36, + 0x88, 0x88, 0x65, 0x48, 0x88, 0x88, 0xf2, 0x44, + 0x44, 0x77, 0x44, 0x47, 0x74, 0x46, 0xa7, 0xdf, + 0x9d, 0x2f, 0x80, 0xb8, 0x0e, 0xa4, 0xf1, 0x2f, + 0xb2, 0x7e, 0x64, 0x7a, 0x14, 0x71, 0x95, 0x76, + 0x72, 0x70, 0x10, 0xf5, 0xf3, 0xf8, 0x4f, 0x32, + 0x51, 0x3d, 0x34, 0xcd, 0x74, 0x4f, 0x6c, 0x0a, + 0xcf, 0x25, 0x88, 0xa6, 0x06, 0xed, 0xe2, 0x4d, + 0x1d, 0xa5, 0xfc, 0x45, 0xc2, 0x99, 0x7b, 0xe7, + 0x7f, 0x3d, 0xc7, 0x75, 0x72, 0x65, 0xc6, 0x19, + 0x91, 0xdc, 0xba, 0xb7, 0xb2, 0xd4, 0xdf, 0x50, + 0x82, 0xaf, 0x3c, 0x6f, 0x28, 0xc7, 0xae, 0xc9, + 0xc2, 0xd8, 0xc8, 0xe7, 0xb3, 0x64, 0xac, 0x5b, + 0x91, 0x54, 0x3c, 0x2b, 0x21, 0x3e, 0xc7, 0x5c, + 0x47, 0xec, 0x59, 0xc5, 0x5c, 0x57, 0xe0, 0x53, + 0xb1, 0x57, 0x87, 0x38, 0x87, 0x84, 0xd0, 0x37, + 0x31, 0xb7, 0xe8, 0x31, 0xe6, 0xfa, 0xea, 0xc8, + 0x5a, 0x91, 0xec, 0xf8, 0xf1, 0x4c, 0xb4, 0x80, + 0x2d, 0x39, 0xb0, 0xc1, 0xaf, 0xd3, 0x4b, 0xa9, + 0xc1, 0xd7, 0x27, 0x3b, 0xd9, 0x73, 0x8b, 0x7d, + 0x90, 0x66, 0xb5, 0x2b, 0x54, 0xf8, 0x11, 0x39, + 0xfe, 0x21, 0xa7, 0x8e, 0x92, 0xb8, 0xac, 0x32, + 0x1e, 0xac, 0x0d, 0xdc, 0x66, 0x1c, 0x5d, 0x00, + 0x3d, 0xaa, 0xd5, 0x0c, 0x30, 0x55, 0xa7, 0xcc, + 0xb1, 0x91, 0xb0, 0xf8, 0x99, 0x03, 0x67, 0xbb, + 0x2e, 0x22, 0xf6, 0x59, 0xe3, 0xde, 0x35, 0xe1, + 0x1a, 0x3c, 0x4f, 0x9c, 0xad, 0x77, 0x17, 0xc2, + 0x9c, 0x39, 0x67, 0x3f, 0x8d, 0xeb, 0xf0, 0x87, + 0x0b, 0x04, 0x35, 0x68, 0xa9, 0xd2, 0x27, 0xee, + 0x9c, 0x9e, 0x4b, 0xdd, 0x5b, 0x2e, 0x51, 0x7c, + 0x81, 0x1c, 0xb3, 0x92, 0x6f, 0x3e, 0xb2, 0xec, + 0xf0, 0xe4, 0xe6, 0xb1, 0x9f, 0x5c, 0x16, 0x38, + 0xb7, 0x88, 0x6f, 0xa3, 0x0b, 0xdb, 0x51, 0xe1, + 0x37, 0x52, 0xec, 0x78, 0xb2, 0xed, 0x6b, 0xa5, + 0xcf, 0xd7, 0x2a, 0xfc, 0xa9, 0x6c, 0xf5, 0x60, + 0x39, 0x36, 0x59, 0xf7, 0xf8, 0xb3, 0xb7, 0xff, + 0x00, 0x29, 0xde, 0x1b, 0xcd, 0xa2, 0x2c, 0xe2, + 0xf3, 0x1c, 0x55, 0x62, 0xa5, 0xa5, 0xf7, 0x73, + 0x44, 0x4e, 0x5f, 0x3a, 0x4b, 0x7a, 0xa6, 0x77, + 0xe4, 0xb1, 0x55, 0xc2, 0xbb, 0x35, 0x9b, 0xe5, + 0x55, 0x85, 0x2d, 0x83, 0xde, 0x31, 0xae, 0x31, + 0xf6, 0x06, 0xe3, 0x7b, 0x5c, 0xf7, 0x71, 0x38, + 0x5c, 0xdd, 0xce, 0x02, 0xc9, 0xba, 0x4a, 0x03, + 0x35, 0x80, 0x2a, 0x17, 0x1f, 0x14, 0xeb, 0x19, + 0xfb, 0xae, 0x92, 0x41, 0xb6, 0xaa, 0x27, 0x79, + 0x9a, 0xf0, 0xac, 0x8e, 0x3b, 0x78, 0xf0, 0x7a, + 0xd5, 0xae, 0x2b, 0x0a, 0x90, 0x52, 0xd8, 0xb5, + 0x97, 0x69, 0x72, 0xc6, 0xf3, 0xd9, 0x93, 0x9b, + 0xc5, 0xba, 0xec, 0xf7, 0x7f, 0x06, 0x29, 0x83, + 0xe4, 0xbe, 0xf0, 0xef, 0x33, 0xdd, 0xaf, 0x63, + 0xa2, 0xa5, 0x21, 0x28, 0xfa, 0xcd, 0xe1, 0xf5, + 0xcf, 0x4f, 0xdc, 0xf6, 0xa4, 0xe3, 0x50, 0x9b, + 0xf1, 0x3b, 0x6d, 0xed, 0x83, 0x90, 0x5d, 0xa1, + 0x74, 0xfd, 0xd6, 0xc1, 0xce, 0x9d, 0x91, 0xcb, + 0x64, 0x29, 0x62, 0xf1, 0xf5, 0xf9, 0x3b, 0x45, + 0xfc, 0x8d, 0xa4, 0x52, 0xa4, 0x8e, 0xab, 0x01, + 0x2b, 0x97, 0xda, 0xb2, 0x6b, 0x42, 0xa0, 0xda, + 0xc0, 0x58, 0xcb, 0x0c, 0x62, 0x4c, 0xc4, 0x7c, + 0xb3, 0xaf, 0x61, 0x9b, 0xbc, 0x3f, 0xd8, 0xb2, + 0x17, 0x4f, 0x8c, 0x1d, 0x63, 0x0d, 0xce, 0xd8, + 0x6e, 0x3a, 0xed, 0x99, 0x8c, 0x2b, 0x28, 0x73, + 0xbd, 0x0e, 0x5c, 0x1d, 0x47, 0xb7, 0xa7, 0xcc, + 0xc4, 0xd8, 0x0e, 0x65, 0x14, 0x90, 0x34, 0x7b, + 0x8b, 0x52, 0x91, 0xe0, 0xef, 0x62, 0xda, 0x44, + 0x71, 0x31, 0x16, 0xa1, 0xf9, 0x02, 0x94, 0xcf, + 0xf8, 0x71, 0x0d, 0xe2, 0x7b, 0x4a, 0x99, 0xfb, + 0x9b, 0x1d, 0x76, 0x8f, 0x7f, 0xb9, 0xd7, 0x11, + 0xf1, 0x9f, 0x1c, 0xe6, 0x6b, 0xe7, 0xb8, 0xf3, + 0x8c, 0x1c, 0x8f, 0x09, 0x59, 0xa8, 0x33, 0x15, + 0x28, 0xd1, 0x49, 0x01, 0x2e, 0x8a, 0x0a, 0x54, + 0x88, 0x2d, 0xc9, 0x69, 0xe7, 0x85, 0x21, 0x55, + 0x90, 0x9a, 0x94, 0xeb, 0x56, 0x1e, 0x44, 0xc9, + 0x9f, 0x1c, 0xff, 0x00, 0xa7, 0xd9, 0x3f, 0xd9, + 0x29, 0x6b, 0x8e, 0x4e, 0xcc, 0xc4, 0x26, 0x38, + 0x47, 0x88, 0x60, 0xa6, 0x7c, 0x9c, 0xc5, 0x8a, + 0xb4, 0x0b, 0xff, 0x00, 0x5a, 0x41, 0xff, 0x00, + 0x3e, 0xb8, 0x6b, 0xad, 0x05, 0x10, 0x76, 0xb3, + 0x66, 0x8d, 0xfe, 0xea, 0x3c, 0x2d, 0x68, 0x62, + 0x47, 0xfc, 0x5e, 0xa8, 0xb6, 0x3d, 0xf8, 0x9d, + 0x7b, 0x09, 0xfe, 0x28, 0xb1, 0xfb, 0x5e, 0x73, + 0xfb, 0x66, 0x4b, 0xfc, 0xaa, 0x9f, 0xb2, 0x2b, + 0x5c, 0x35, 0xc3, 0x14, 0x38, 0x8f, 0x84, 0x42, + 0x97, 0x16, 0x47, 0x11, 0x58, 0xa8, 0xdb, 0x3c, + 0x15, 0x7a, 0xc5, 0x8c, 0x4d, 0x7c, 0x25, 0x60, + 0xb6, 0xba, 0xef, 0x21, 0xe2, 0xc4, 0x0e, 0x49, + 0xae, 0x16, 0x42, 0x8a, 0xc0, 0x8d, 0x18, 0x12, + 0x1e, 0xa7, 0x46, 0x77, 0xe4, 0x8b, 0x58, 0x3c, + 0xb5, 0xa7, 0x36, 0xce, 0x21, 0x98, 0xda, 0x79, + 0xec, 0x8d, 0x60, 0xa0, 0xaa, 0x34, 0x2e, 0xe4, + 0x61, 0x70, 0xa8, 0xec, 0x96, 0x72, 0x61, 0x95, + 0xb2, 0x1b, 0x98, 0xb1, 0xfe, 0x0a, 0xa3, 0x94, + 0x0c, 0x78, 0x1c, 0x45, 0xa7, 0x0f, 0x29, 0x4e, + 0xb2, 0x55, 0x5b, 0x88, 0xe2, 0x77, 0xd7, 0xc4, + 0x71, 0x2d, 0x7e, 0x13, 0xbd, 0x94, 0xa9, 0x8d, + 0xab, 0x63, 0x1e, 0x19, 0xab, 0x80, 0xb3, 0xa5, + 0x59, 0x52, 0x39, 0x18, 0xb7, 0x67, 0xb5, 0xf5, + 0x42, 0x15, 0xd9, 0xea, 0x32, 0x46, 0x64, 0x7a, + 0xc2, 0xb8, 0x62, 0xe4, 0x98, 0x6e, 0xc4, 0x71, + 0x32, 0xf2, 0x08, 0xe2, 0xd4, 0x70, 0x55, 0x9c, + 0x17, 0x83, 0x6b, 0x37, 0x30, 0x8c, 0xed, 0xba, + 0xb3, 0x72, 0xaa, 0xa5, 0x28, 0xc8, 0x32, 0xb3, + 0x52, 0xf4, 0x47, 0x30, 0xba, 0xbd, 0xb6, 0xf2, + 0xef, 0xed, 0x82, 0x1b, 0x16, 0xd9, 0x27, 0x65, + 0x13, 0x96, 0xc5, 0x64, 0xf1, 0x39, 0xaa, 0x5c, + 0x3d, 0x6f, 0x87, 0xb2, 0x15, 0xe9, 0x57, 0xcb, + 0x8e, 0x53, 0x24, 0xa9, 0xb1, 0x41, 0x50, 0x73, + 0x90, 0x9c, 0x47, 0x67, 0xb3, 0x5a, 0x0a, 0xc7, + 0x6f, 0x3c, 0xa8, 0x51, 0x52, 0x46, 0x49, 0xf6, + 0x15, 0xdd, 0xbe, 0x35, 0xd8, 0xfa, 0xb9, 0x9c, + 0x95, 0xbc, 0x9f, 0x11, 0x5b, 0xe1, 0x55, 0xe2, + 0xf1, 0xe8, 0xc6, 0xdb, 0xba, 0x9c, 0xe5, 0x4a, + 0x7d, 0xb8, 0xaa, 0xb5, 0x8a, 0xca, 0x4e, 0x34, + 0xd4, 0xda, 0xfc, 0xa6, 0x9b, 0xb5, 0x32, 0x16, + 0x69, 0x9c, 0x17, 0x37, 0x5c, 0x44, 0x18, 0x41, + 0x8e, 0xc6, 0xe7, 0x70, 0xfc, 0x45, 0x8b, 0x1c, + 0x95, 0xec, 0x7e, 0x32, 0xbe, 0x42, 0xdd, 0x5c, + 0x70, 0x53, 0x2b, 0xf9, 0x18, 0x57, 0x22, 0x52, + 0x1e, 0x15, 0xed, 0xf7, 0x97, 0x5d, 0x8e, 0x04, + 0x5c, 0xbd, 0x8d, 0xa5, 0x77, 0x1f, 0x5d, 0xd3, + 0xca, 0x56, 0xf6, 0xd8, 0xa6, 0xed, 0x8c, 0xd7, + 0x0d, 0xe5, 0xb0, 0xea, 0x0f, 0x64, 0x4f, 0xfe, + 0x6f, 0x31, 0xf2, 0x13, 0x4e, 0xec, 0x58, 0xbe, + 0x6e, 0xec, 0xea, 0x65, 0xa2, 0x1b, 0x81, 0x29, + 0x35, 0xb4, 0x4c, 0xaf, 0x0a, 0xd4, 0x69, 0xae, + 0x06, 0x91, 0xae, 0xdb, 0xa5, 0xd4, 0x28, 0xcd, + 0x8b, 0xea, 0x66, 0x9e, 0xcc, 0x0f, 0x15, 0x62, + 0x78, 0x3e, 0xd2, 0xaa, 0x52, 0x43, 0x58, 0xfc, + 0xbe, 0x65, 0x1d, 0x7a, 0x5d, 0x8c, 0x4a, 0xe2, + 0xfa, 0xd5, 0xe4, 0x76, 0x03, 0x61, 0x4a, 0x8e, + 0x19, 0x30, 0x30, 0xa2, 0x89, 0xdf, 0x47, 0x8e, + 0xcc, 0x23, 0x27, 0x4e, 0xed, 0x2a, 0x94, 0xae, + 0xe6, 0xeb, 0x32, 0x70, 0xb0, 0xfc, 0x0a, 0xb2, + 0x07, 0xb5, 0x70, 0xb8, 0x99, 0xcc, 0xc3, 0x6f, + 0x59, 0xe4, 0xd9, 0xee, 0xad, 0x81, 0x0c, 0xc3, + 0x90, 0x99, 0x83, 0x68, 0x8e, 0xfb, 0x69, 0xb8, + 0x1c, 0x35, 0x5c, 0xbd, 0xd2, 0x4d, 0xeb, 0x78, + 0xe6, 0x64, 0x14, 0x8a, 0x25, 0x55, 0x4f, 0xa4, + 0x02, 0x6e, 0x65, 0x8a, 0x81, 0x91, 0x2c, 0xe5, + 0x4a, 0x33, 0xce, 0x20, 0xac, 0x95, 0xbc, 0x42, + 0x28, 0x34, 0xe6, 0x20, 0x6c, 0x6d, 0xdf, 0xfb, + 0x9c, 0xa7, 0xf9, 0xf5, 0x7e, 0xa6, 0x35, 0x9c, + 0xcb, 0xd4, 0x9a, 0x83, 0x6b, 0x1f, 0x8d, 0xb3, + 0x66, 0xb4, 0xde, 0x31, 0x5d, 0x4e, 0xb8, 0x0f, + 0xb5, 0xf5, 0xa4, 0x98, 0xa1, 0x98, 0xe6, 0x9f, + 0x15, 0x72, 0xd0, 0xea, 0x9f, 0x2a, 0xb9, 0xa3, + 0x9f, 0x7d, 0x71, 0x5d, 0x2c, 0x44, 0xe6, 0xb3, + 0x19, 0x0a, 0x78, 0x7e, 0x1b, 0xbb, 0x89, 0x8b, + 0xd8, 0x2a, 0x78, 0xfe, 0x25, 0x0b, 0x99, 0x9b, + 0x91, 0x4e, 0xf9, 0xaf, 0x0a, 0xda, 0x74, 0x17, + 0x67, 0x11, 0x4d, 0x7b, 0xdc, 0x55, 0xeb, 0x34, + 0xbb, 0x3a, 0x98, 0x16, 0xab, 0x1d, 0xab, 0x62, + 0x89, 0x91, 0xcc, 0xe3, 0x71, 0x8f, 0xca, 0xd8, + 0xe2, 0x6c, 0x71, 0xe3, 0x19, 0x62, 0x9f, 0x13, + 0x2b, 0x01, 0x2d, 0xad, 0x8e, 0xbf, 0x2c, 0xda, + 0xee, 0x37, 0xc0, 0xcb, 0xc7, 0x63, 0x2f, 0x4b, + 0x56, 0x9b, 0x11, 0x5d, 0x56, 0xee, 0x80, 0xf6, + 0x84, 0x1a, 0xde, 0xc4, 0x44, 0x40, 0xb3, 0x87, + 0xf8, 0x69, 0xa1, 0x8c, 0xa5, 0xc4, 0x19, 0x6a, + 0x79, 0xac, 0xa5, 0xcc, 0x91, 0xd7, 0x9b, 0x15, + 0xa9, 0x61, 0xf1, 0x16, 0x2a, 0xd7, 0x06, 0x0e, + 0x35, 0x37, 0x3a, 0x2c, 0xcc, 0xdd, 0x2c, 0x85, + 0x21, 0x2a, 0xc3, 0x90, 0x6e, 0x36, 0xa7, 0xef, + 0x96, 0xc3, 0xec, 0x40, 0x29, 0x07, 0x6d, 0x39, + 0xb6, 0xe3, 0x6d, 0xf4, 0x9c, 0x3d, 0x87, 0x21, + 0x41, 0x4c, 0xa8, 0x76, 0xea, 0x98, 0x41, 0x7e, + 0xfe, 0xc6, 0x99, 0xbc, 0x29, 0xda, 0x43, 0x79, + 0x95, 0xbd, 0x7b, 0x4d, 0x45, 0xa5, 0xf2, 0x3c, + 0x42, 0xb9, 0x73, 0xa6, 0x2e, 0xfe, 0x09, 0x63, + 0xf5, 0x45, 0xaa, 0x7f, 0x82, 0xd7, 0xfd, 0x50, + 0xeb, 0x8d, 0x97, 0x93, 0x56, 0x3b, 0xc1, 0x18, + 0x1e, 0x09, 0x5f, 0x12, 0x62, 0x71, 0xf5, 0x25, + 0x87, 0x60, 0xcd, 0x76, 0xf2, 0x8b, 0x36, 0x64, + 0x2f, 0x1a, 0xd7, 0x3d, 0x4b, 0x81, 0x4d, 0x71, + 0xd9, 0xab, 0xaf, 0xa3, 0x4d, 0x7e, 0x46, 0x3d, + 0xd2, 0x47, 0xae, 0x1f, 0x6b, 0x6c, 0x1f, 0x11, + 0xdb, 0xe2, 0xee, 0x10, 0xcd, 0xe5, 0xeb, 0xe3, + 0xea, 0xe3, 0xaa, 0x2c, 0xe8, 0x67, 0xb1, 0xf8, + 0x65, 0xe6, 0xea, 0xd6, 0xc3, 0x2a, 0xb2, 0xc5, + 0xb6, 0xa8, 0xbd, 0x6f, 0xec, 0x3d, 0x9a, 0xfb, + 0xae, 0xd8, 0x26, 0xa9, 0x56, 0x22, 0xd4, 0x41, + 0xb1, 0x5a, 0xf0, 0x55, 0xc7, 0xe6, 0x4f, 0x8d, + 0x1f, 0xc3, 0x01, 0x96, 0xa9, 0x8d, 0xe2, 0x54, + 0x70, 0xfd, 0x7c, 0x5d, 0xa7, 0x2b, 0xb3, 0x27, + 0x21, 0x66, 0x99, 0x60, 0x2a, 0xa4, 0xd7, 0x15, + 0x2e, 0xd8, 0x05, 0x32, 0x8d, 0xdb, 0x82, 0xc5, + 0x8b, 0xd0, 0x27, 0x11, 0x04, 0x6f, 0x5e, 0x2a, + 0x9d, 0xf4, 0x51, 0xf0, 0xcf, 0x10, 0x71, 0x08, + 0x61, 0x31, 0x16, 0x6c, 0x21, 0x6b, 0x5a, 0x2b, + 0xcd, 0x0b, 0x19, 0x0b, 0x39, 0x0c, 0xa5, 0x0c, + 0x76, 0x42, 0xd2, 0x25, 0x95, 0x95, 0x4a, 0xd0, + 0xd5, 0xa9, 0x4f, 0x23, 0xb5, 0xb2, 0x9a, 0xdd, + 0x76, 0x57, 0xdd, 0xd3, 0x16, 0x51, 0x97, 0xb5, + 0x8c, 0xc9, 0x51, 0xe8, 0xa9, 0xb4, 0x72, 0x15, + 0x6b, 0x16, 0x32, 0xff, 0x00, 0x5b, 0x9a, 0x46, + 0xc5, 0x4b, 0x98, 0xd8, 0x6d, 0xaa, 0xc4, 0xa1, + 0x8e, 0x57, 0x57, 0xbf, 0x5e, 0xca, 0xe6, 0x77, + 0x2a, 0xee, 0xab, 0xcc, 0x22, 0xf2, 0xc6, 0xff, + 0x00, 0x97, 0x6f, 0xf6, 0x53, 0xd6, 0x13, 0xf1, + 0xda, 0xbf, 0x62, 0xbf, 0xa0, 0xf7, 0xa3, 0x47, + 0xef, 0x4e, 0x8f, 0xf1, 0x96, 0x53, 0xf6, 0xf7, + 0xfd, 0x5c, 0xb7, 0x19, 0x16, 0x22, 0xcc, 0x70, + 0xc3, 0xf8, 0x3e, 0xbe, 0x3d, 0x59, 0x9d, 0xd3, + 0xd9, 0x4e, 0xe0, 0xe3, 0x71, 0xca, 0x24, 0x44, + 0x75, 0x7a, 0xdc, 0xf0, 0xd5, 0x30, 0x3e, 0xc5, + 0xb6, 0xe1, 0x3d, 0xfb, 0x6d, 0x33, 0xc6, 0x98, + 0xea, 0x28, 0x2b, 0x37, 0xb2, 0x1c, 0x23, 0xc4, + 0xb4, 0x69, 0x56, 0x5f, 0x2f, 0x52, 0xc5, 0xcb, + 0x98, 0x5b, 0xd5, 0xeb, 0x20, 0x39, 0xe4, 0x47, + 0x9d, 0xcf, 0x60, 0x2c, 0x79, 0x88, 0x47, 0x98, + 0xa3, 0x79, 0x88, 0xef, 0xd2, 0xbd, 0x8e, 0xf8, + 0x96, 0x89, 0xe3, 0x32, 0x77, 0x30, 0x59, 0x7a, + 0x47, 0x5e, 0xd7, 0x21, 0x1d, 0x1c, 0x81, 0xdf, + 0xb7, 0x6f, 0x15, 0x68, 0xfa, 0x46, 0x63, 0x3d, + 0x9e, 0xdc, 0x53, 0xb9, 0xb0, 0x9f, 0x8c, 0x23, + 0xc9, 0x3b, 0x6f, 0x31, 0xac, 0xf7, 0x16, 0x7b, + 0x22, 0xd2, 0x7d, 0x2c, 0xf4, 0xe3, 0x70, 0x3c, + 0x1b, 0x84, 0xad, 0x6a, 0x54, 0x4e, 0x47, 0x0f, + 0xe0, 0x29, 0x24, 0x65, 0xd1, 0xd2, 0x6b, 0xd7, + 0xc9, 0x68, 0xc6, 0x92, 0xc6, 0x44, 0x86, 0x65, + 0xb4, 0xee, 0x1c, 0x8f, 0x2b, 0xc6, 0x75, 0xec, + 0xec, 0xbe, 0x36, 0xe1, 0x9e, 0x7e, 0x1d, 0xe2, + 0xee, 0x26, 0xc3, 0x5d, 0xc6, 0x2f, 0x26, 0x08, + 0x75, 0x3c, 0xc5, 0x6a, 0x57, 0x38, 0x8e, 0xcf, + 0x58, 0x16, 0x0d, 0x32, 0xe5, 0x43, 0x1f, 0x49, + 0xde, 0xd9, 0x01, 0x31, 0x2c, 0x5e, 0xd1, 0xbc, + 0x14, 0x46, 0x6a, 0x31, 0xbe, 0xc7, 0xfc, 0x3d, + 0xe1, 0x19, 0xc4, 0x64, 0xa3, 0x1f, 0xd1, 0xa0, + 0xb1, 0x77, 0x6e, 0x9a, 0x4e, 0x8a, 0x9d, 0x22, + 0x92, 0x88, 0x86, 0x76, 0x8e, 0x9f, 0x4e, 0x66, + 0x62, 0x20, 0xb6, 0xde, 0x75, 0x83, 0xb9, 0x99, + 0xe1, 0x7a, 0xf8, 0x6e, 0x38, 0x25, 0x66, 0x2b, + 0x65, 0xad, 0x35, 0x4a, 0xf0, 0xa1, 0xd6, 0x66, + 0x72, 0xeb, 0x6a, 0xaa, 0xc3, 0x94, 0x6c, 0x12, + 0x02, 0xa4, 0x34, 0xa4, 0x23, 0x9b, 0xb9, 0x62, + 0xb8, 0x9d, 0xa6, 0x36, 0xd6, 0x73, 0x8f, 0x3d, + 0x8b, 0xb1, 0x35, 0xb8, 0xaf, 0x87, 0x38, 0xbc, + 0xa2, 0xcf, 0x13, 0xf0, 0x4b, 0x2d, 0x86, 0x3a, + 0xda, 0xef, 0x07, 0x31, 0x95, 0x9c, 0x75, 0x86, + 0xcc, 0x84, 0xcc, 0xd8, 0x6d, 0x9b, 0x55, 0xda, + 0x0b, 0x6b, 0x11, 0x16, 0xac, 0xd1, 0x2a, 0x2f, + 0x5f, 0x45, 0xda, 0x7f, 0x0c, 0xf0, 0x97, 0xb1, + 0x56, 0x4f, 0x82, 0x1d, 0x94, 0x03, 0xa5, 0x7b, + 0x89, 0xf8, 0x97, 0x22, 0xa5, 0x0e, 0x36, 0xb3, + 0x44, 0x82, 0xc1, 0x50, 0x09, 0xaf, 0x56, 0x7a, + 0xc6, 0x1b, 0xac, 0x2e, 0xae, 0x2d, 0xb1, 0x50, + 0x73, 0x35, 0xea, 0x8b, 0xba, 0x76, 0x53, 0x8c, + 0xe1, 0x4a, 0x4c, 0x8b, 0x27, 0x5f, 0xa9, 0x6f, + 0x25, 0x7b, 0xa7, 0x0b, 0x9c, 0x86, 0x56, 0xdf, + 0x29, 0x5c, 0xb5, 0x23, 0x11, 0xbf, 0x24, 0x72, + 0xae, 0xad, 0x58, 0x3e, 0x66, 0x05, 0x1a, 0xd5, + 0x54, 0x64, 0x64, 0xb9, 0x29, 0xf6, 0x2c, 0x3c, + 0x0e, 0x2e, 0xc6, 0x4c, 0x70, 0x9e, 0xc8, 0x18, + 0xdc, 0xae, 0x56, 0x51, 0x2a, 0x8e, 0xc5, 0x8f, + 0x4b, 0x2b, 0xcb, 0x2d, 0x37, 0xa8, 0xc5, 0xf8, + 0x83, 0x02, 0x5e, 0xe3, 0x98, 0xbb, 0xbc, 0x9a, + 0xce, 0xd9, 0xe0, 0x8c, 0x5b, 0x72, 0xfc, 0x52, + 0x69, 0x0a, 0xd8, 0x7a, 0xc9, 0xe9, 0x6e, 0xa7, + 0xdb, 0x70, 0x20, 0xef, 0xcc, 0x38, 0x81, 0x65, + 0x18, 0xea, 0xe6, 0xdb, 0x80, 0xb2, 0xdc, 0x5a, + 0xe5, 0x29, 0x46, 0x3d, 0x33, 0x3d, 0xad, 0x12, + 0xff, 0x00, 0xf9, 0x3e, 0xe6, 0xf3, 0xbc, 0x4f, + 0x96, 0x6b, 0xac, 0x71, 0x07, 0x16, 0x5e, 0xe2, + 0xfa, 0x21, 0x91, 0xcb, 0x35, 0xcf, 0x97, 0xc8, + 0xec, 0x58, 0x7b, 0x45, 0x56, 0xac, 0x1c, 0xc1, + 0xcd, 0x71, 0xb2, 0xde, 0xab, 0xe2, 0x6c, 0x58, + 0x6b, 0x5b, 0x31, 0x23, 0x9e, 0xad, 0xc5, 0x1c, + 0x05, 0x90, 0xf6, 0x37, 0x62, 0xeb, 0x02, 0x31, + 0xd6, 0x8f, 0x38, 0x8c, 0xb3, 0xac, 0x9d, 0xb5, + 0xd9, 0x06, 0x3e, 0xbc, 0xa6, 0x85, 0x2e, 0xce, + 0xca, 0x12, 0x2a, 0x60, 0xcc, 0xf5, 0x39, 0xc9, + 0x91, 0xb7, 0x2f, 0x27, 0x7b, 0xb8, 0x53, 0x8a, + 0x7d, 0x8e, 0xb8, 0x8f, 0xd9, 0x03, 0x2d, 0x41, + 0xf7, 0x43, 0x0b, 0xc5, 0xb8, 0x7b, 0x95, 0x9f, + 0x47, 0x39, 0x5d, 0xcf, 0x37, 0x55, 0xf0, 0xc5, + 0x86, 0x94, 0xb7, 0x1f, 0xd1, 0xea, 0x4a, 0x7a, + 0xcd, 0x1e, 0xa7, 0x66, 0x04, 0xa8, 0xab, 0x41, + 0xa6, 0x6c, 0xd8, 0xe3, 0x7e, 0x21, 0xf6, 0x4f, + 0x45, 0x0c, 0x87, 0x12, 0xfb, 0x26, 0x5a, 0xea, + 0x67, 0x71, 0x03, 0x3d, 0xa6, 0x85, 0x1c, 0x40, + 0x75, 0x06, 0xb6, 0x1c, 0x8f, 0x98, 0x96, 0xd8, + 0x11, 0x64, 0x84, 0xad, 0x46, 0xd4, 0xa2, 0xba, + 0xaa, 0xa0, 0x1c, 0xc9, 0x03, 0x9d, 0x58, 0xe9, + 0x7b, 0x1f, 0xf0, 0xd7, 0x57, 0xa0, 0xde, 0x96, + 0xd8, 0xf0, 0xdf, 0xa9, 0xd3, 0x2e, 0x4d, 0xbb, + 0xfc, 0xbc, 0xdb, 0x6d, 0xfc, 0x7a, 0x6e, 0x4f, + 0x89, 0xb8, 0x49, 0x38, 0x8e, 0x32, 0x56, 0x7f, + 0x34, 0x15, 0x2e, 0xda, 0x52, 0x27, 0x26, 0x18, + 0x5b, 0x35, 0x28, 0x2d, 0x20, 0xb7, 0xa5, 0xad, + 0x88, 0xac, 0xcf, 0xdf, 0x61, 0x01, 0xcd, 0xbf, + 0xd9, 0x3b, 0xb6, 0x98, 0x99, 0xf6, 0x6d, 0xcb, + 0xe6, 0x31, 0x36, 0x68, 0x63, 0x78, 0x8f, 0x8a, + 0xd9, 0x7b, 0x07, 0x6d, 0xd2, 0x99, 0x56, 0x46, + 0xa4, 0xe4, 0xf3, 0x2d, 0x87, 0x23, 0xa6, 0xd3, + 0x3e, 0x59, 0x53, 0xd2, 0x7e, 0xd8, 0x21, 0x3b, + 0x30, 0x7b, 0xb7, 0xe6, 0x88, 0x4e, 0x5f, 0x87, + 0x79, 0x91, 0xc7, 0x3c, 0x2d, 0x27, 0x73, 0x02, + 0xf4, 0x1c, 0x21, 0xd7, 0x93, 0x3d, 0xf6, 0xb1, + 0x12, 0xf9, 0x20, 0x80, 0x27, 0x6d, 0xd7, 0xa2, + 0xc2, 0x28, 0x85, 0xdc, 0x5c, 0x28, 0x89, 0x69, + 0xb6, 0xf6, 0x0c, 0xf0, 0x7f, 0x1a, 0xe1, 0x9d, + 0x45, 0xb7, 0xae, 0xf1, 0x0a, 0x72, 0x18, 0xcb, + 0x52, 0xbe, 0xa1, 0xd0, 0xc9, 0xc8, 0xaf, 0xca, + 0xa3, 0x68, 0x8f, 0x59, 0x52, 0x7c, 0x93, 0xbe, + 0xe3, 0x3d, 0xfb, 0x6a, 0xdf, 0x0b, 0x54, 0xe1, + 0x16, 0xfb, 0x28, 0x70, 0x08, 0x5b, 0xb1, 0x67, + 0x01, 0x6f, 0x11, 0x71, 0x74, 0xf3, 0x58, 0xa5, + 0xda, 0x61, 0x3d, 0x88, 0x65, 0x16, 0x0d, 0xa6, + 0x90, 0xb1, 0xa6, 0x4c, 0x6d, 0x50, 0x51, 0x24, + 0x2c, 0x95, 0x8b, 0x09, 0xbd, 0xca, 0xee, 0x91, + 0x63, 0xf8, 0x73, 0x29, 0xc2, 0x76, 0x3d, 0x8c, + 0x3d, 0x8e, 0x82, 0xed, 0x6b, 0x99, 0xe3, 0xc9, + 0x5d, 0x5b, 0xf3, 0xb9, 0x91, 0xae, 0xde, 0xa0, + 0x24, 0x2b, 0xc2, 0x94, 0x61, 0xd2, 0x90, 0x83, + 0xaf, 0x55, 0x95, 0x46, 0xb8, 0x5b, 0xe9, 0xdc, + 0xb1, 0x6a, 0xc7, 0x45, 0x2a, 0x57, 0xb0, 0xbd, + 0x5e, 0x12, 0xc1, 0xba, 0xde, 0x33, 0x84, 0x78, + 0xa6, 0xb1, 0xdb, 0x5d, 0x3e, 0x80, 0x2b, 0x13, + 0x87, 0xa9, 0xe0, 0x54, 0xd7, 0x92, 0x16, 0x31, + 0x5b, 0x25, 0x55, 0xea, 0x18, 0x88, 0xae, 0x0b, + 0x61, 0x4c, 0xc4, 0x0f, 0xb9, 0x89, 0xd0, 0xcc, + 0xfd, 0xc2, 0x1f, 0xfb, 0xf5, 0xc4, 0x58, 0x95, + 0x7b, 0x0a, 0xe5, 0xf8, 0x8d, 0x59, 0x5e, 0x24, + 0xbd, 0x99, 0x5d, 0xcf, 0xae, 0x1a, 0x38, 0xae, + 0x40, 0x70, 0xa9, 0x02, 0xae, 0x87, 0x61, 0xc8, + 0xf3, 0xf8, 0xa8, 0x86, 0x75, 0x3a, 0xa1, 0xee, + 0xf9, 0x7a, 0x7d, 0xdb, 0xc8, 0x70, 0xb5, 0xfe, + 0x14, 0xa1, 0xec, 0x5b, 0xc1, 0x97, 0x8e, 0xb1, + 0x67, 0x6c, 0xd8, 0xcc, 0x56, 0xcd, 0xe6, 0x6d, + 0xd4, 0x16, 0x03, 0x4e, 0xba, 0xe6, 0xac, 0xa6, + 0x79, 0x77, 0x18, 0x2e, 0xc7, 0xd8, 0xa8, 0xcb, + 0x0e, 0x21, 0x76, 0xad, 0xca, 0x79, 0xd7, 0x38, + 0xae, 0x1f, 0xc4, 0x22, 0x2b, 0x63, 0x30, 0xf4, + 0x6b, 0xe3, 0xe9, 0x27, 0xcb, 0x30, 0x9a, 0xe1, + 0x01, 0x04, 0xc2, 0xee, 0xea, 0x39, 0xa5, 0xcc, + 0xeb, 0x0d, 0x9f, 0x19, 0xcf, 0x63, 0x1a, 0x5e, + 0x31, 0xce, 0xbd, 0x8a, 0x78, 0xa3, 0x1f, 0x88, + 0xb3, 0x6b, 0x01, 0x83, 0xc6, 0x39, 0x39, 0x6c, + 0xa2, 0xe5, 0x3d, 0x9e, 0x8b, 0x0a, 0xce, 0x5c, + 0xe0, 0x1b, 0x04, 0xd1, 0x6e, 0xfc, 0xaf, 0x4c, + 0xf8, 0x8b, 0x3f, 0xb2, 0x0f, 0xf1, 0xed, 0xfd, + 0xaf, 0x21, 0xce, 0x42, 0x1b, 0x95, 0x5d, 0xb9, + 0xa6, 0x07, 0x7d, 0xaa, 0xab, 0xc9, 0xbf, 0x97, + 0x58, 0x2e, 0x24, 0xb2, 0xc6, 0x78, 0x4f, 0x87, + 0x15, 0x94, 0x56, 0x37, 0xa7, 0x6c, 0x02, 0xb4, + 0x06, 0x61, 0x01, 0x5e, 0xe7, 0x68, 0x47, 0x2c, + 0xf5, 0xa7, 0xa6, 0x11, 0xd1, 0x9e, 0x70, 0xe9, + 0x96, 0xf3, 0xe3, 0x6a, 0xcf, 0x11, 0xbe, 0x2d, + 0xd7, 0xbf, 0x7d, 0xd5, 0x2c, 0x64, 0xd5, 0x4b, + 0x20, 0xa4, 0x53, 0xc9, 0xbe, 0x8e, 0xd0, 0x86, + 0x5b, 0x59, 0x21, 0xb6, 0x00, 0xb9, 0x06, 0x16, + 0xee, 0xc1, 0x6e, 0x8c, 0x59, 0x5c, 0x72, 0xd8, + 0x86, 0x77, 0xef, 0x92, 0x16, 0x1d, 0xd8, 0x8c, + 0xaf, 0x17, 0xe3, 0xf8, 0xe2, 0xd4, 0x2f, 0x24, + 0xb0, 0xfe, 0xce, 0xe2, 0xe1, 0x31, 0x53, 0xa3, + 0xed, 0x13, 0xd2, 0xa1, 0x11, 0x5d, 0x7c, 0xf5, + 0x3c, 0x69, 0x2d, 0xbb, 0x9c, 0x1d, 0xdb, 0x22, + 0xde, 0x1e, 0xf9, 0x53, 0x6e, 0x43, 0xd9, 0x0f, + 0x15, 0xc6, 0xfc, 0x4a, 0xd6, 0xe5, 0x5c, 0x87, + 0x17, 0x61, 0xa2, 0xea, 0x27, 0xe0, 0x46, 0xd4, + 0x4f, 0x56, 0x9d, 0x88, 0x59, 0x28, 0x92, 0x32, + 0xce, 0x5e, 0x71, 0x99, 0x27, 0x72, 0xf8, 0x9a, + 0xc8, 0x54, 0xbf, 0x39, 0x1c, 0x95, 0xac, 0xa6, + 0x62, 0xa6, 0x7e, 0xde, 0x77, 0x21, 0x97, 0xed, + 0x39, 0xf3, 0xcb, 0x50, 0x5c, 0xa2, 0x8d, 0xa8, + 0xba, 0x49, 0xec, 0xf1, 0xd9, 0x2b, 0xcc, 0xd7, + 0x55, 0x6e, 0xc5, 0x34, 0xe5, 0x33, 0x20, 0xea, + 0xed, 0xf2, 0xeb, 0x02, 0xc4, 0x32, 0xf1, 0xbb, + 0x87, 0x73, 0x76, 0x78, 0x82, 0x95, 0x87, 0xe4, + 0x52, 0x4d, 0x76, 0x4a, 0xd5, 0x36, 0x51, 0x61, + 0x5d, 0x80, 0xac, 0xa4, 0xb2, 0xb8, 0xd6, 0x64, + 0x82, 0x6a, 0xd6, 0x4d, 0x34, 0xab, 0x68, 0x91, + 0x8f, 0x75, 0xcd, 0x7b, 0x3b, 0x69, 0x99, 0x68, + 0xbd, 0x90, 0xcc, 0x52, 0xcf, 0x3e, 0x15, 0x97, + 0x4f, 0x44, 0x72, 0xb8, 0xf3, 0x59, 0xd7, 0xb0, + 0x9e, 0xb5, 0x37, 0xd9, 0x50, 0x7b, 0x5c, 0x09, + 0xd5, 0xed, 0x45, 0x53, 0x92, 0x66, 0x16, 0x85, + 0xcf, 0x21, 0x06, 0x5a, 0xbc, 0xdd, 0xce, 0x29, + 0x39, 0x5e, 0x25, 0x0e, 0x30, 0xe9, 0xd7, 0xce, + 0x0a, 0xa3, 0x15, 0xc4, 0xa2, 0xfe, 0xd3, 0x39, + 0x6c, 0x2c, 0xf6, 0x62, 0x3a, 0x56, 0x1a, 0xc9, + 0xf6, 0xd1, 0x69, 0x5b, 0x49, 0x07, 0x8a, 0x2a, + 0x0d, 0xa3, 0x6b, 0x70, 0xcb, 0x59, 0x9b, 0x27, + 0x7b, 0x8a, 0x70, 0xfc, 0x65, 0x6e, 0xc5, 0xac, + 0xdf, 0x68, 0xb3, 0x63, 0x3d, 0x83, 0x1e, 0x5a, + 0x6f, 0x63, 0x98, 0x89, 0x29, 0x49, 0xfb, 0xab, + 0x35, 0xfd, 0xcb, 0x0b, 0xec, 0x44, 0x80, 0x11, + 0x01, 0x7f, 0x11, 0x5d, 0xed, 0x55, 0xf2, 0x77, + 0x17, 0x55, 0x39, 0x13, 0xc7, 0x5f, 0x4d, 0x65, + 0xe4, 0x97, 0x4b, 0xed, 0x68, 0xb7, 0x0c, 0xad, + 0x61, 0x80, 0x4b, 0x1f, 0x6a, 0xea, 0xd0, 0x75, + 0x17, 0x9a, 0xbc, 0x46, 0x34, 0xbb, 0xb6, 0xa3, + 0xc5, 0x4d, 0x3c, 0x95, 0xac, 0x9e, 0x32, 0xf7, + 0x84, 0x71, 0xc1, 0x6f, 0x2f, 0xd7, 0xad, 0x4a, + 0xd6, 0xd1, 0x00, 0x4a, 0x29, 0x4c, 0x64, 0x8d, + 0x2a, 0x81, 0x88, 0x4d, 0x3b, 0x59, 0x3b, 0x14, + 0x94, 0x3b, 0x00, 0x57, 0x85, 0x08, 0x00, 0x7d, + 0x95, 0x5f, 0x9c, 0x1f, 0xf6, 0xeb, 0xec, 0xaa, + 0xfc, 0xe0, 0xff, 0x00, 0xb7, 0x5f, 0x65, 0x57, + 0xe7, 0x07, 0xfd, 0xba, 0xfb, 0x2a, 0xbf, 0x38, + 0x3f, 0xed, 0xd6, 0x4a, 0x4d, 0xab, 0x18, 0x37, + 0x2a, 0x42, 0x48, 0xc4, 0x60, 0xa3, 0xa5, 0x1d, + 0xe3, 0x33, 0x3e, 0x34, 0x7b, 0xda, 0xb5, 0x8b, + 0xc8, 0x9a, 0x5d, 0x4e, 0xe0, 0x40, 0x38, 0x06, + 0xcc, 0x28, 0xfc, 0x52, 0x86, 0x2d, 0x8a, 0x6a, + 0xce, 0x0d, 0x4e, 0x4b, 0x04, 0x1a, 0x96, 0x84, + 0xc1, 0x2d, 0x82, 0x25, 0x1e, 0x4d, 0x5b, 0x6d, + 0xdc, 0xbe, 0x57, 0x21, 0x7a, 0xdd, 0x6a, 0x94, + 0xfc, 0x29, 0x67, 0x30, 0xb5, 0xe4, 0x6a, 0x57, + 0xa1, 0x6e, 0x2f, 0xd4, 0x0a, 0x2d, 0xc7, 0xa6, + 0x8a, 0x6b, 0xf4, 0xee, 0x8c, 0x59, 0x33, 0xec, + 0xe6, 0x76, 0x99, 0xe2, 0xdc, 0x2b, 0x09, 0xf6, + 0xad, 0x5f, 0xba, 0x39, 0x07, 0x5f, 0xc8, 0x64, + 0xe6, 0xbf, 0x6d, 0xc8, 0xe4, 0xee, 0xd7, 0x7d, + 0xb7, 0x2e, 0xa0, 0x98, 0x54, 0xaf, 0x1d, 0x05, + 0x55, 0xaa, 0x8a, 0xd5, 0xa1, 0x8d, 0xe9, 0x26, + 0xbd, 0x65, 0x0f, 0x3b, 0x58, 0xd6, 0x73, 0xb4, + 0xc8, 0xe6, 0x8d, 0xa6, 0xdc, 0x3a, 0x79, 0x0c, + 0x61, 0xb8, 0xf1, 0xf9, 0x3c, 0x75, 0xd5, 0x56, + 0xbf, 0x53, 0xb4, 0x84, 0x2e, 0xca, 0x84, 0xcc, + 0x5c, 0x97, 0x56, 0xb2, 0x30, 0x1d, 0xa2, 0xa5, + 0xb4, 0x58, 0xaa, 0xd2, 0x5a, 0x98, 0x49, 0xea, + 0xa5, 0x46, 0x17, 0x1e, 0xab, 0x65, 0x6a, 0xee, + 0x49, 0x8b, 0x6e, 0x43, 0x23, 0x7e, 0xe2, 0x5f, + 0x76, 0xe1, 0xa1, 0x7d, 0x24, 0x43, 0x49, 0x62, + 0x84, 0x2d, 0x55, 0xd7, 0xb8, 0x22, 0xbd, 0x6a, + 0xf5, 0xeb, 0xaa, 0x24, 0xa4, 0x55, 0xce, 0x66, + 0x45, 0x70, 0x45, 0xe9, 0x22, 0x9a, 0xaf, 0x81, + 0x11, 0x68, 0x4c, 0x94, 0xca, 0x8b, 0x68, 0x88, + 0x89, 0xde, 0x66, 0x7e, 0xe4, 0x6a, 0xa4, 0x13, + 0xd3, 0x05, 0x15, 0x91, 0x13, 0x12, 0xd0, 0x89, + 0x89, 0x85, 0x8e, 0xf1, 0x31, 0x33, 0xbc, 0x4c, + 0x7d, 0xd8, 0xd5, 0xfc, 0xbb, 0x58, 0xb7, 0x59, + 0xc9, 0xe1, 0x55, 0x80, 0xb8, 0xa6, 0xd9, 0x59, + 0xd3, 0x6e, 0x31, 0x4f, 0xb3, 0x62, 0x15, 0xd9, + 0xff, 0x00, 0xc3, 0x32, 0xb6, 0xe1, 0x69, 0xf3, + 0xcf, 0x3a, 0xe6, 0x03, 0x96, 0x36, 0xdf, 0x42, + 0xb7, 0x5c, 0xbb, 0x7d, 0x28, 0xc4, 0x59, 0xc1, + 0x63, 0x95, 0x7b, 0x31, 0xcf, 0x18, 0x7c, 0x55, + 0xb8, 0x11, 0x7d, 0x5c, 0x53, 0x6b, 0xc5, 0x6b, + 0x48, 0x22, 0x5a, 0xd4, 0x98, 0xb8, 0xeb, 0x16, + 0x72, 0x0b, 0x42, 0x96, 0x95, 0xdb, 0x15, 0xc4, + 0xc1, 0x78, 0x50, 0xb2, 0x97, 0x72, 0xb9, 0x18, + 0xa1, 0x18, 0xb4, 0x5d, 0xcc, 0x64, 0x6b, 0xda, + 0x75, 0x4c, 0x77, 0x51, 0x6e, 0x3a, 0x95, 0xba, + 0x08, 0xa8, 0xa0, 0x17, 0xb5, 0x4a, 0x6d, 0xa7, + 0x1a, 0xd9, 0x6e, 0xd1, 0xa5, 0x53, 0x62, 0xc3, + 0x3a, 0x61, 0x10, 0xba, 0xf7, 0x5f, 0x11, 0xd9, + 0xed, 0x26, 0xf5, 0x3b, 0x35, 0x6e, 0x45, 0x7b, + 0x94, 0x6f, 0x56, 0xe6, 0xe8, 0x5c, 0xa7, 0x60, + 0x27, 0x75, 0x3c, 0x20, 0xcc, 0x3c, 0x86, 0xb6, + 0x29, 0x8c, 0x43, 0x96, 0xc4, 0xb1, 0x8b, 0x27, + 0xe5, 0x4b, 0x20, 0xec, 0x96, 0x56, 0xc5, 0x50, + 0xa2, 0x79, 0x2c, 0x9d, 0xca, 0xae, 0xb4, 0x34, + 0x16, 0xce, 0xb8, 0xd2, 0x40, 0xd6, 0x45, 0x3a, + 0x95, 0xab, 0x75, 0xfd, 0xbd, 0x80, 0x8a, 0xab, + 0x27, 0xba, 0x05, 0x8f, 0x36, 0x90, 0x07, 0x2e, + 0x3b, 0xa6, 0xc0, 0x67, 0x29, 0x5a, 0x92, 0xe4, + 0x31, 0x3e, 0x5d, 0xeb, 0x1e, 0xdb, 0xf2, 0xcc, + 0xed, 0xdf, 0xac, 0x27, 0xe3, 0xb5, 0x7e, 0xc5, + 0x7f, 0x41, 0xef, 0x46, 0x8f, 0xde, 0x9d, 0x1f, + 0xe3, 0x2c, 0xa7, 0xed, 0xef, 0xfa, 0xa1, 0x1c, + 0x45, 0x9c, 0xa9, 0x41, 0xec, 0x0e, 0xa2, 0xe8, + 0xc7, 0x52, 0xd6, 0x40, 0xd7, 0x3b, 0xf2, 0xb3, + 0xb1, 0x55, 0x16, 0xbc, 0x14, 0x52, 0x33, 0x02, + 0xe6, 0x8a, 0xd2, 0x45, 0x12, 0x30, 0xcd, 0xe2, + 0x75, 0xb4, 0x5b, 0xcc, 0x9f, 0xf8, 0xc1, 0x88, + 0x3e, 0x5f, 0xff, 0x00, 0x6a, 0xc0, 0xcf, 0x77, + 0xbd, 0xaf, 0xb6, 0x33, 0x7e, 0xa8, 0xff, 0x00, + 0xd5, 0x6b, 0xed, 0x8c, 0xdf, 0xaa, 0x3f, 0xf5, + 0x5a, 0xfb, 0x63, 0x37, 0xea, 0x8f, 0xfd, 0x56, + 0xbe, 0xd8, 0xcd, 0xfa, 0xa3, 0xff, 0x00, 0x55, + 0xaf, 0xb6, 0x33, 0x7e, 0xa8, 0xff, 0x00, 0xd5, + 0x6b, 0xed, 0x8c, 0xdf, 0xaa, 0x3f, 0xf5, 0x5a, + 0xfb, 0x63, 0x37, 0xea, 0x8f, 0xfd, 0x56, 0xbe, + 0xd8, 0xcd, 0xfa, 0xa3, 0xff, 0x00, 0x55, 0xaf, + 0xb6, 0x33, 0x7e, 0xa8, 0xff, 0x00, 0xd5, 0x6b, + 0xed, 0x8c, 0xdf, 0xaa, 0x3f, 0xf5, 0x5a, 0xfb, + 0x63, 0x37, 0xea, 0x8f, 0xfd, 0x56, 0xbe, 0xd8, + 0xcd, 0xfa, 0xa3, 0xff, 0x00, 0x55, 0xaf, 0xb6, + 0x33, 0x7e, 0xa8, 0xff, 0x00, 0xd5, 0x6b, 0xed, + 0x8c, 0xdf, 0xaa, 0x3f, 0xf5, 0x5a, 0xfb, 0x63, + 0x37, 0xea, 0x8f, 0xfd, 0x56, 0xbe, 0xd8, 0xcd, + 0xfa, 0xa3, 0xff, 0x00, 0x55, 0xaf, 0xb6, 0x33, + 0x7e, 0xa8, 0xff, 0x00, 0xd5, 0x6b, 0xed, 0x9c, + 0xdf, 0xaa, 0x27, 0xe7, 0x3a, 0x5d, 0x2c, 0x77, + 0x10, 0xa1, 0x57, 0x5a, 0x5c, 0x89, 0xab, 0x93, + 0x53, 0xb1, 0xa6, 0xf3, 0x99, 0x81, 0x15, 0xa5, + 0x96, 0x44, 0x6b, 0x31, 0xac, 0x29, 0x88, 0x5a, + 0x45, 0xf2, 0xe6, 0x4f, 0x70, 0xae, 0x75, 0xb4, + 0xf7, 0x4f, 0xde, 0xfa, 0x92, 0x66, 0x42, 0x00, + 0x31, 0xb9, 0x11, 0x4c, 0x08, 0x8c, 0x47, 0x96, + 0x66, 0x67, 0xba, 0x22, 0x3e, 0xfc, 0xea, 0x62, + 0x1c, 0x6d, 0xdb, 0xbb, 0xda, 0xd4, 0x73, 0x1f, + 0xf3, 0x49, 0x72, 0x44, 0xfb, 0xf1, 0x3b, 0x4f, + 0xdc, 0x99, 0xd7, 0xf7, 0xcf, 0xe6, 0xa3, 0xe5, + 0x35, 0xfd, 0xf3, 0xf9, 0xa8, 0xf9, 0x4d, 0x7f, + 0x7c, 0xfe, 0x6a, 0x3e, 0x53, 0x5f, 0xdf, 0x3f, + 0x9a, 0x8f, 0x94, 0xd7, 0xf7, 0xcf, 0xe6, 0xa3, + 0xe5, 0x35, 0xfd, 0xf3, 0xf9, 0xa8, 0xf9, 0x4d, + 0x7f, 0x7c, 0xfe, 0x6a, 0x3e, 0x53, 0x5f, 0xdf, + 0x3f, 0x9a, 0x8f, 0x94, 0xd7, 0xf7, 0xcf, 0xe6, + 0xa3, 0xe5, 0x35, 0xfd, 0xf3, 0xf9, 0xa8, 0xf9, + 0x4d, 0x7f, 0x7c, 0xfe, 0x6a, 0x3e, 0x53, 0x5f, + 0xdf, 0x3f, 0x9a, 0x8f, 0x94, 0xd7, 0xf7, 0xcf, + 0xe6, 0xa3, 0xe5, 0x35, 0xfd, 0xf3, 0xf9, 0xa8, + 0xf9, 0x4d, 0x7f, 0x7c, 0xfe, 0x6a, 0x3e, 0x53, + 0x5f, 0xdf, 0x3f, 0x9a, 0x8f, 0x94, 0xd6, 0xe4, + 0xa6, 0x94, 0xfd, 0xf2, 0xae, 0xb9, 0x9f, 0xcb, + 0x27, 0xaf, 0xb0, 0x9f, 0xc5, 0x55, 0xfc, 0xed, + 0x7d, 0x84, 0xfe, 0x2a, 0xaf, 0xe7, 0x6b, 0xec, + 0x27, 0xf1, 0x55, 0x7f, 0x3b, 0x5f, 0x61, 0x3f, + 0x8a, 0xab, 0xf9, 0xda, 0xfb, 0x09, 0xfc, 0x55, + 0x5f, 0xce, 0xd7, 0xd8, 0x4f, 0xe2, 0xaa, 0xfe, + 0x76, 0xbe, 0xc2, 0x7f, 0x15, 0x57, 0xf3, 0xb5, + 0xf6, 0x13, 0xf8, 0xaa, 0xbf, 0x9d, 0xaf, 0xb0, + 0x9f, 0xc5, 0x55, 0xfc, 0xed, 0x7d, 0x84, 0xfe, + 0x2a, 0xaf, 0xe7, 0x6b, 0xec, 0x27, 0xf1, 0x55, + 0x7f, 0x3b, 0x5f, 0x61, 0x3f, 0x8a, 0xab, 0xf9, + 0xda, 0xfb, 0x09, 0xfc, 0x55, 0x5f, 0xce, 0xd7, + 0xd8, 0x4f, 0xe2, 0xaa, 0xfe, 0x76, 0xbe, 0xc2, + 0x7f, 0x15, 0x57, 0xf3, 0xb5, 0xf6, 0x13, 0xf8, + 0xaa, 0xbf, 0x9d, 0xaf, 0xb0, 0x9f, 0xc5, 0x55, + 0xfc, 0xed, 0x7d, 0x84, 0xfe, 0x2a, 0xaf, 0xe7, + 0x6b, 0xec, 0x27, 0xf1, 0x55, 0x7f, 0x3b, 0x5f, + 0x61, 0x3f, 0x8a, 0xab, 0xf9, 0xda, 0xfb, 0x09, + 0xfc, 0x55, 0x5f, 0xce, 0xd7, 0xd8, 0x4f, 0xe2, + 0xaa, 0xfe, 0x76, 0xbe, 0xc2, 0x7f, 0x15, 0x57, + 0xf3, 0xb5, 0xf6, 0x13, 0xf8, 0xaa, 0xbf, 0x9d, + 0xaf, 0xb0, 0x9f, 0xc5, 0x55, 0xfc, 0xed, 0x7d, + 0x84, 0xfe, 0x2a, 0xaf, 0xe7, 0x6b, 0xec, 0x27, + 0xf1, 0x55, 0xff, 0x00, 0x3b, 0x5d, 0x34, 0x92, + 0x3a, 0x9f, 0x71, 0x6c, 0x4c, 0x2c, 0xa7, 0xfc, + 0x9e, 0x70, 0x88, 0x39, 0xfe, 0x20, 0x99, 0x9f, + 0xe2, 0xd6, 0xe2, 0xb0, 0x19, 0xfb, 0xe2, 0x03, + 0x13, 0xf9, 0x62, 0x35, 0x84, 0xfc, 0x76, 0xaf, + 0xd8, 0xaf, 0xe8, 0x3d, 0xe8, 0xd1, 0xfb, 0xd3, + 0xa3, 0xfc, 0x65, 0x94, 0xfd, 0xb9, 0xff, 0x00, + 0x53, 0x88, 0x38, 0x81, 0x20, 0x0c, 0xb3, 0x8c, + 0xc7, 0x31, 0xb5, 0x05, 0x91, 0xcc, 0xae, 0xda, + 0xe3, 0x0a, 0xb4, 0xc9, 0xa3, 0xfc, 0x35, 0x05, + 0x97, 0xa8, 0xd8, 0x1b, 0x8f, 0x38, 0x09, 0x0f, + 0x30, 0x6f, 0xcd, 0x16, 0x72, 0x19, 0x0b, 0x2e, + 0xb9, 0x76, 0xdb, 0x49, 0xf6, 0x6c, 0xbc, 0xe5, + 0x8d, 0x73, 0x4f, 0xca, 0x46, 0x53, 0xf9, 0x22, + 0x3c, 0x82, 0x31, 0x02, 0x31, 0x03, 0x11, 0x1a, + 0xee, 0x8d, 0xfd, 0xed, 0x77, 0x44, 0xcf, 0xbd, + 0xdf, 0xae, 0xf1, 0x98, 0xf7, 0xe2, 0x63, 0x5d, + 0xf1, 0x31, 0xbe, 0x91, 0x52, 0x95, 0x57, 0xdb, + 0xb5, 0x64, 0xe1, 0x75, 0xeb, 0xd7, 0x51, 0xb9, + 0xcf, 0x64, 0xff, 0x00, 0x01, 0x4b, 0x08, 0x92, + 0x32, 0xfe, 0x21, 0x89, 0xfb, 0xfa, 0x43, 0x2e, + 0xae, 0xb1, 0x57, 0xb5, 0xd4, 0x1a, 0xf7, 0x31, + 0xf9, 0x1c, 0x6e, 0x63, 0x1e, 0xd6, 0x27, 0x6e, + 0xb5, 0x71, 0xc8, 0xe2, 0x2d, 0xde, 0xa3, 0xda, + 0x91, 0x06, 0xb3, 0x7d, 0x4e, 0xd1, 0xda, 0x52, + 0xb7, 0x21, 0xac, 0x50, 0xae, 0xc2, 0x48, 0xff, + 0x00, 0xb7, 0x3e, 0xb6, 0x55, 0xcc, 0xb7, 0x67, + 0x01, 0x7c, 0x71, 0xe9, 0xb6, 0xe2, 0x93, 0x73, + 0x68, 0xb9, 0x10, 0xfa, 0xcb, 0x73, 0x0b, 0x72, + 0x61, 0x57, 0x98, 0x6a, 0x84, 0xca, 0x64, 0xba, + 0x3d, 0x21, 0x9f, 0x71, 0xbc, 0xea, 0xe4, 0x32, + 0xc7, 0x64, 0xc4, 0xe2, 0x86, 0x66, 0xdb, 0xfb, + 0xca, 0x24, 0xa0, 0xb9, 0x3e, 0xc7, 0xb8, 0xf5, + 0x9c, 0xc7, 0x47, 0x4a, 0xb2, 0xf7, 0xda, 0x76, + 0x92, 0x89, 0xef, 0x9d, 0x72, 0xa7, 0x09, 0x65, + 0xe1, 0x1d, 0xd0, 0xdb, 0x19, 0x5e, 0x83, 0x4f, + 0xfc, 0x62, 0x5a, 0x6a, 0xb1, 0x63, 0x33, 0xf7, + 0x86, 0x7b, 0xb5, 0xe8, 0xf1, 0x7a, 0xed, 0xbf, + 0x31, 0xd7, 0xa3, 0xc5, 0xeb, 0xb6, 0xfc, 0xc7, + 0x5e, 0x8f, 0x17, 0xae, 0xdb, 0xf3, 0x1d, 0x7a, + 0x3c, 0x5e, 0xbb, 0x6f, 0xcc, 0x75, 0xe8, 0xf1, + 0x7a, 0xed, 0xbf, 0x31, 0xd7, 0xa3, 0xc5, 0xeb, + 0xb6, 0xfc, 0xc7, 0x5e, 0x8f, 0x17, 0xae, 0xdb, + 0xf3, 0x1d, 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, 0xcc, + 0x75, 0xe8, 0xf1, 0x7a, 0xed, 0xbf, 0x31, 0xd7, + 0xa3, 0xc5, 0xeb, 0xb6, 0xfc, 0xc7, 0x5e, 0x8f, + 0x17, 0xae, 0xdb, 0xf3, 0x1d, 0x7a, 0x3c, 0x5e, + 0xbb, 0x6f, 0xcc, 0x75, 0xe8, 0xf1, 0x7a, 0xed, + 0xbf, 0x31, 0xd7, 0xa3, 0xc5, 0xeb, 0xb6, 0xfc, + 0xc7, 0x5e, 0x8f, 0x17, 0xae, 0xdb, 0xf3, 0x1d, + 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, 0xcc, 0x75, 0xe8, + 0xf1, 0x7a, 0xed, 0xbf, 0x31, 0xd7, 0xa3, 0xc5, + 0xeb, 0xb6, 0xfc, 0xc7, 0x5e, 0x8f, 0x17, 0xae, + 0xdb, 0xf3, 0x1d, 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, + 0xcc, 0x74, 0xf3, 0xc5, 0xc3, 0xab, 0x5a, 0xac, + 0xb2, 0x7b, 0xf1, 0xd6, 0x18, 0x2e, 0xe6, 0xae, + 0x1b, 0x73, 0xba, 0x9b, 0xe2, 0x06, 0x59, 0xd2, + 0xee, 0x26, 0xa9, 0x83, 0x07, 0xcb, 0x32, 0x41, + 0x33, 0xb4, 0x04, 0xeb, 0xb3, 0x5d, 0x53, 0xb2, + 0x39, 0x18, 0x88, 0xed, 0x15, 0x93, 0x60, 0x6b, + 0x56, 0xa7, 0x24, 0x30, 0x50, 0x96, 0x3e, 0x01, + 0xa6, 0xdb, 0x21, 0x1f, 0x65, 0x85, 0x8f, 0x4d, + 0x45, 0x24, 0xb9, 0xe7, 0x21, 0xdf, 0x5e, 0x8f, + 0x17, 0xae, 0xdb, 0xf3, 0x1d, 0x7a, 0x3c, 0x5e, + 0xbb, 0x6f, 0xcc, 0x75, 0xe8, 0xf1, 0x7a, 0xed, + 0xbf, 0x31, 0xd7, 0xa3, 0xc5, 0xeb, 0xb6, 0xfc, + 0xc7, 0x5e, 0x8f, 0x17, 0xae, 0xdb, 0xf3, 0x1d, + 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, 0xcc, 0x75, 0xe8, + 0xf1, 0x7a, 0xed, 0xbf, 0x31, 0xd7, 0xa3, 0xc5, + 0xeb, 0xb6, 0xfc, 0xc7, 0x5e, 0x8f, 0x17, 0xae, + 0xdb, 0xf3, 0x1d, 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, + 0xcc, 0x75, 0xe8, 0xf1, 0x7a, 0xed, 0xbf, 0x31, + 0xd7, 0xa3, 0xc5, 0xeb, 0xb6, 0xfc, 0xc7, 0x5e, + 0x8f, 0x17, 0xae, 0xdb, 0xf3, 0x1d, 0x7a, 0x3c, + 0x5e, 0xbb, 0x6f, 0xcc, 0x75, 0xe8, 0xf1, 0x7a, + 0xed, 0xbf, 0x31, 0xd7, 0xa3, 0xc5, 0xeb, 0xb6, + 0xfc, 0xc7, 0x5e, 0x8f, 0x17, 0xae, 0xdb, 0xf3, + 0x1d, 0x7a, 0x3c, 0x5e, 0xbb, 0x6f, 0xcc, 0x75, + 0xe8, 0xf1, 0x7a, 0xed, 0xbf, 0x31, 0xd7, 0xa3, + 0xc5, 0xeb, 0xb6, 0xfc, 0xc7, 0x5e, 0x3e, 0x01, + 0x82, 0x3f, 0x76, 0x43, 0x32, 0x64, 0x51, 0xef, + 0x09, 0x53, 0x18, 0x99, 0xf7, 0xe7, 0x4b, 0xc9, + 0x63, 0x1c, 0x6d, 0xa2, 0xc6, 0xf4, 0x26, 0x1d, + 0xca, 0x36, 0xaa, 0x59, 0x11, 0xe7, 0xe8, 0x58, + 0x80, 0xf1, 0x66, 0x64, 0x3c, 0x75, 0x35, 0x7e, + 0x29, 0x8e, 0xfd, 0xc3, 0xb7, 0x79, 0x25, 0xc5, + 0x26, 0xfa, 0xdc, 0xb1, 0x26, 0x53, 0xe3, 0x31, + 0x45, 0xbf, 0x24, 0xcf, 0xdd, 0x92, 0x1d, 0xa4, + 0x0a, 0x7c, 0xb3, 0xe2, 0x49, 0x4c, 0x91, 0x4e, + 0xb0, 0x9f, 0x8e, 0xd5, 0xfb, 0x15, 0xfd, 0x07, + 0xbd, 0x1a, 0x3f, 0x7a, 0x74, 0x7f, 0x8c, 0xb2, + 0x9f, 0xb7, 0x3f, 0xea, 0x71, 0x7f, 0xe0, 0x54, + 0xbf, 0x95, 0xf1, 0xdf, 0x53, 0x31, 0xc7, 0x57, + 0x16, 0x24, 0xaa, 0xb7, 0x70, 0x5c, 0x39, 0x54, + 0x58, 0x31, 0x30, 0xef, 0x0b, 0x5f, 0x0b, 0x39, + 0xce, 0x9e, 0xff, 0x00, 0xc3, 0x4e, 0x06, 0x8d, + 0xa0, 0x9f, 0x14, 0xb9, 0x7b, 0x6a, 0x8b, 0x6d, + 0x7b, 0x24, 0x70, 0xff, 0x00, 0x0b, 0x31, 0xbe, + 0x18, 0xa9, 0x82, 0xca, 0x27, 0x04, 0xda, 0xd6, + 0x53, 0x5d, 0xa6, 0x05, 0x93, 0xc6, 0x3a, 0x9b, + 0x57, 0x69, 0xed, 0x52, 0x42, 0x4e, 0x89, 0x41, + 0xf5, 0x18, 0xd1, 0x89, 0xde, 0x7b, 0xf7, 0x98, + 0xd7, 0x15, 0x52, 0xf6, 0x57, 0xc8, 0x8b, 0x13, + 0x7f, 0x15, 0x5e, 0x78, 0x6f, 0x1b, 0x93, 0xcb, + 0x62, 0xb2, 0x79, 0x66, 0xe6, 0xd7, 0x90, 0x4f, + 0x67, 0xbd, 0x8a, 0x4d, 0x2b, 0x36, 0xec, 0x56, + 0xaf, 0x55, 0x31, 0x6c, 0x32, 0x36, 0x8a, 0x53, + 0x5c, 0x92, 0xce, 0xcd, 0x32, 0xc6, 0x18, 0x88, + 0xf0, 0xab, 0x00, 0x37, 0xb9, 0xc2, 0x94, 0x78, + 0x5e, 0x8b, 0x66, 0x23, 0xc6, 0x2c, 0x77, 0x13, + 0xf0, 0xdd, 0x4b, 0x74, 0xf9, 0xa7, 0x97, 0xc6, + 0xe9, 0xe4, 0x31, 0x97, 0x56, 0x3b, 0x97, 0x8b, + 0xd5, 0xf2, 0x78, 0xe3, 0x1a, 0xe0, 0xce, 0x1e, + 0x93, 0x45, 0x72, 0xc5, 0x37, 0x35, 0xc3, 0x40, + 0xcb, 0x0e, 0xaf, 0x5d, 0x33, 0x91, 0x45, 0x6e, + 0x1b, 0xbd, 0x9c, 0xac, 0xeb, 0x0f, 0x60, 0x55, + 0x4f, 0x84, 0x98, 0xcc, 0xce, 0x23, 0xa8, 0xf6, + 0x26, 0xb1, 0xf6, 0xb1, 0x45, 0xc3, 0x4d, 0x66, + 0xd8, 0x60, 0xde, 0x27, 0x62, 0xee, 0x70, 0xf7, + 0x84, 0xcb, 0x1d, 0xd9, 0x30, 0x99, 0x74, 0x2a, + 0x9e, 0x69, 0x85, 0x46, 0xf6, 0x6c, 0xcf, 0x29, + 0x6a, 0x92, 0xaa, 0x63, 0xf9, 0x6a, 0x85, 0x6b, + 0x4a, 0xa3, 0x46, 0xe9, 0x63, 0xaa, 0x03, 0x51, + 0x31, 0x8e, 0x41, 0xde, 0x7e, 0x33, 0x23, 0x67, + 0xfb, 0x7f, 0x14, 0x7e, 0x39, 0xa1, 0xfb, 0x0b, + 0x7e, 0xa3, 0x4f, 0x7e, 0xf7, 0xf1, 0x0d, 0x20, + 0x6c, 0xff, 0x00, 0x87, 0x1d, 0x83, 0x20, 0xe8, + 0x82, 0xff, 0x00, 0xa4, 0x08, 0x3f, 0x7f, 0xfb, + 0x40, 0xf1, 0x1a, 0xdf, 0x6f, 0xb7, 0xf2, 0x9b, + 0x89, 0x04, 0xc4, 0xf6, 0x5e, 0x82, 0xae, 0x8d, + 0x56, 0x90, 0x84, 0x57, 0x87, 0x6e, 0x22, 0xc5, + 0xcf, 0x7b, 0xe6, 0x39, 0xa7, 0xef, 0x4e, 0xda, + 0xc2, 0xd8, 0xaa, 0x57, 0xec, 0x64, 0xb2, 0x0e, + 0x45, 0x5b, 0x35, 0x4f, 0xa6, 0xc1, 0x8b, 0x4d, + 0xa6, 0x2f, 0x24, 0xd6, 0x4a, 0x6b, 0x03, 0xf9, + 0xfa, 0xa5, 0x0b, 0x00, 0x23, 0x69, 0x7f, 0x07, + 0x69, 0x2e, 0xfd, 0x53, 0xa1, 0x6b, 0x18, 0xe4, + 0xda, 0xc8, 0x4f, 0x2d, 0x20, 0x26, 0x57, 0x90, + 0xb0, 0x5f, 0x74, 0x06, 0xc0, 0xbc, 0xab, 0x0b, + 0x07, 0xca, 0x4b, 0x37, 0x09, 0x84, 0x48, 0x91, + 0x0c, 0x09, 0x84, 0xca, 0x3f, 0xb0, 0x96, 0xff, + 0x00, 0x7c, 0xb0, 0x94, 0x9d, 0x8a, 0xbc, 0xf8, + 0xe1, 0x07, 0x33, 0xd4, 0xd9, 0xf3, 0xd9, 0xc3, + 0x60, 0x29, 0x17, 0x58, 0xe9, 0x25, 0x91, 0xb4, + 0xac, 0xca, 0x0c, 0x39, 0x99, 0x87, 0x5e, 0x36, + 0xc1, 0x64, 0x95, 0xbf, 0x56, 0xaf, 0x89, 0x12, + 0xb1, 0x88, 0x89, 0xe7, 0x36, 0xc9, 0xc5, 0x71, + 0x54, 0xc4, 0x8f, 0x2b, 0xa5, 0xbd, 0x23, 0xe6, + 0x18, 0x03, 0x29, 0x31, 0xdf, 0xc0, 0xf3, 0x8d, + 0x74, 0x64, 0xba, 0x44, 0xf8, 0xaa, 0x46, 0x81, + 0x93, 0x48, 0xc4, 0x94, 0xb1, 0x6d, 0x27, 0x42, + 0x1a, 0x1d, 0xd3, 0xde, 0xa6, 0x9e, 0xe4, 0x24, + 0x11, 0xb9, 0x8c, 0x8e, 0x94, 0xfc, 0x8e, 0x3c, + 0xeb, 0x2d, 0xce, 0x1a, 0xeb, 0x9e, 0xb5, 0x67, + 0x4f, 0x5c, 0xc3, 0xa8, 0x2a, 0x20, 0xae, 0xf6, + 0xb1, 0x6c, 0x20, 0xf1, 0xa0, 0x5a, 0x21, 0x3f, + 0x73, 0xcb, 0xdd, 0xa6, 0x52, 0xbe, 0xae, 0xcf, + 0x69, 0x3c, 0xbd, 0x54, 0xcb, 0x14, 0xc9, 0x0e, + 0x61, 0x83, 0x1d, 0xc9, 0x2c, 0x62, 0xfd, 0xc9, + 0x44, 0xf7, 0x14, 0xed, 0xe4, 0x9d, 0xa7, 0xbb, + 0xf7, 0x78, 0x90, 0xdf, 0xb8, 0xca, 0xe0, 0x14, + 0x7f, 0x84, 0x33, 0x8e, 0xb7, 0xb8, 0xcf, 0xdf, + 0x8d, 0x63, 0xa2, 0x7b, 0xe2, 0x6f, 0x54, 0x89, + 0xf8, 0xc2, 0xf5, 0x92, 0x92, 0x9d, 0xca, 0x72, + 0x17, 0x37, 0x99, 0x9f, 0xff, 0x00, 0x58, 0x67, + 0xd5, 0xb5, 0x9b, 0xce, 0x59, 0xca, 0xa4, 0x11, + 0x92, 0x0a, 0x03, 0x18, 0xd9, 0xab, 0x3b, 0xf5, + 0x10, 0x2d, 0x19, 0x20, 0x7d, 0x76, 0xce, 0xfb, + 0xf3, 0x6f, 0x30, 0x71, 0x1b, 0x6d, 0xe2, 0xfd, + 0xdd, 0x61, 0x9b, 0xc3, 0xec, 0xb9, 0x92, 0xa9, + 0x9e, 0x49, 0x32, 0x82, 0x9c, 0xa8, 0xed, 0xd0, + 0xc5, 0x72, 0x8b, 0x54, 0xc8, 0x50, 0xac, 0x0f, + 0x69, 0x99, 0x2e, 0x78, 0x5a, 0xc4, 0x06, 0x0b, + 0x9b, 0x98, 0x43, 0xac, 0x75, 0x31, 0xf6, 0x31, + 0x6d, 0x55, 0xbb, 0xdc, 0xfd, 0x91, 0x64, 0xea, + 0xbd, 0x37, 0xca, 0xc4, 0x88, 0xc0, 0x2c, 0xc5, + 0x89, 0xab, 0xd4, 0x11, 0x19, 0x99, 0x51, 0x3a, + 0x19, 0xb7, 0x2f, 0x8b, 0xe3, 0x87, 0x31, 0x5c, + 0xec, 0xc5, 0xd9, 0x86, 0xec, 0x63, 0x89, 0xbc, + 0xc1, 0xb4, 0x5d, 0x91, 0x93, 0x8a, 0xfb, 0x73, + 0xf3, 0xf3, 0x72, 0xc4, 0xcf, 0x37, 0x2f, 0x4f, + 0xee, 0x73, 0xef, 0xdd, 0xab, 0x95, 0x53, 0x89, + 0x73, 0x1f, 0x8f, 0x85, 0xf6, 0xc0, 0x07, 0x55, + 0x98, 0x4c, 0xb5, 0x70, 0xe5, 0x87, 0x53, 0xb4, + 0x74, 0x98, 0xd2, 0x5c, 0xc1, 0xf4, 0x14, 0x6c, + 0x74, 0x44, 0xc7, 0x30, 0x44, 0xce, 0xda, 0x6d, + 0xba, 0x78, 0xd6, 0xba, 0xba, 0x58, 0xe4, 0xb9, + 0x9d, 0x5a, 0xe9, 0xe9, 0x36, 0xba, 0xfa, 0xae, + 0x06, 0x83, 0xde, 0xa6, 0x2e, 0x56, 0x13, 0x1b, + 0xf3, 0x0c, 0x44, 0xcf, 0x88, 0x33, 0x27, 0xe2, + 0xea, 0xd2, 0x6c, 0xba, 0xc8, 0xae, 0x9d, 0x26, + 0x5c, 0x94, 0x51, 0x85, 0x4d, 0xeb, 0x7c, 0xa4, + 0x21, 0xd3, 0xad, 0xd7, 0xdd, 0x51, 0x30, 0x46, + 0x32, 0x52, 0x42, 0x7c, 0xde, 0x2a, 0xe2, 0x06, + 0x59, 0xd4, 0x01, 0xa9, 0x55, 0xee, 0x6a, 0x9b, + 0x52, 0xbd, 0xb8, 0x5d, 0xb8, 0x01, 0xb9, 0x57, + 0xaf, 0x13, 0xfb, 0xde, 0xdc, 0x2f, 0x94, 0x21, + 0xc3, 0xb7, 0x34, 0xf8, 0x8b, 0xee, 0x38, 0x8e, + 0x4e, 0xee, 0x72, 0x7e, 0x77, 0x3d, 0x7a, 0xc5, + 0x3c, 0x5a, 0xed, 0x45, 0x14, 0x2e, 0x90, 0x01, + 0xdc, 0xb9, 0x6a, 0x57, 0xd4, 0x90, 0x54, 0xb2, + 0x18, 0xb0, 0x85, 0x0e, 0xc6, 0x5c, 0xcb, 0x2e, + 0x61, 0x83, 0x8e, 0x65, 0xcc, 0x44, 0xce, 0x12, + 0xb5, 0x3c, 0xab, 0xad, 0x62, 0x33, 0x95, 0xad, + 0xd9, 0x54, 0x89, 0xd7, 0x5e, 0x52, 0xb7, 0x65, + 0x43, 0x8e, 0x56, 0xf1, 0x95, 0x18, 0x7d, 0x99, + 0x52, 0x1d, 0x49, 0xaa, 0x03, 0x32, 0x2e, 0x50, + 0xc7, 0x32, 0xfa, 0x93, 0x61, 0xb8, 0xbc, 0x6b, + 0xed, 0xa2, 0xb1, 0x90, 0x1b, 0x60, 0x92, 0xb1, + 0xe6, 0x8d, 0xe7, 0x90, 0x25, 0xec, 0x54, 0x39, + 0x91, 0x1d, 0xe4, 0x09, 0xe7, 0x38, 0xdc, 0x77, + 0x18, 0xe7, 0x0d, 0xdd, 0x53, 0x1f, 0x8f, 0xb1, + 0x62, 0xc5, 0x6d, 0xfb, 0x4a, 0xfc, 0x54, 0xf6, + 0x79, 0x12, 0x91, 0x90, 0x79, 0xd8, 0x34, 0xad, + 0x2c, 0xe6, 0x12, 0x18, 0x53, 0x0c, 0x58, 0x52, + 0x07, 0x02, 0x33, 0xc8, 0x5b, 0x71, 0x47, 0x84, + 0x55, 0x76, 0xae, 0x47, 0x03, 0x5e, 0xb9, 0xaa, + 0xa0, 0xf2, 0x47, 0x3b, 0x9c, 0x6d, 0x1e, 0x56, + 0x8c, 0xa9, 0xb2, 0xe5, 0x9c, 0x08, 0x12, 0x0a, + 0xb3, 0x04, 0x5a, 0x25, 0x06, 0xb6, 0x30, 0x0c, + 0x27, 0x59, 0xe1, 0xca, 0xe1, 0x9e, 0x76, 0xe9, + 0xd1, 0xad, 0x65, 0x6d, 0x5e, 0x42, 0x9e, 0xd8, + 0xa1, 0x71, 0x37, 0x67, 0xdb, 0x4a, 0xaf, 0x73, + 0x32, 0x1d, 0x03, 0xe2, 0x26, 0x56, 0xe6, 0x47, + 0x2f, 0x34, 0xa8, 0x60, 0xa2, 0x49, 0xf6, 0x67, + 0x11, 0x63, 0xa1, 0x59, 0x21, 0x61, 0xcc, 0x13, + 0xae, 0x71, 0x09, 0x35, 0xf5, 0x84, 0xc2, 0x01, + 0xe4, 0x4e, 0xf6, 0xaf, 0x1c, 0xc5, 0x30, 0xc3, + 0x5c, 0x7d, 0x90, 0x42, 0x74, 0x57, 0x31, 0xb8, + 0xc7, 0xda, 0xac, 0x0c, 0xe9, 0x4b, 0x40, 0x92, + 0x11, 0x2c, 0xee, 0xde, 0x00, 0x5a, 0xd5, 0x9b, + 0x79, 0x79, 0xa3, 0x9c, 0x96, 0x26, 0x21, 0xfc, + 0x39, 0x1d, 0xa7, 0x67, 0xd2, 0xb8, 0xbe, 0x85, + 0xaa, 0xc7, 0xd3, 0x7a, 0xa4, 0xc0, 0xe4, 0x0f, + 0x68, 0x9d, 0xb9, 0x94, 0x66, 0xb9, 0xee, 0x98, + 0xef, 0x12, 0x28, 0xfe, 0x3f, 0xab, 0xc4, 0xe3, + 0xbe, 0xf0, 0x33, 0x83, 0x38, 0x8f, 0xbc, 0x52, + 0xfb, 0xa3, 0xcd, 0x1f, 0x7a, 0x64, 0x7b, 0xa7, + 0xef, 0xc6, 0x9f, 0xf8, 0x13, 0x3f, 0x5f, 0x5b, + 0x58, 0x4f, 0xc7, 0x4a, 0xfd, 0x8a, 0xf6, 0x83, + 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0x3f, 0xc6, 0x59, + 0x4f, 0xdb, 0x9f, 0xf5, 0x38, 0xbf, 0xf0, 0x2a, + 0x5f, 0xca, 0xf8, 0xef, 0xa9, 0xc2, 0xbc, 0x3f, + 0xc2, 0xb6, 0x28, 0x39, 0xdb, 0x64, 0x73, 0x3c, + 0x4c, 0x57, 0x70, 0x38, 0xfc, 0x88, 0x78, 0x5e, + 0xeb, 0xe1, 0x15, 0xab, 0x0c, 0x66, 0xf1, 0xd6, + 0x07, 0xa9, 0x4b, 0x1d, 0x59, 0x60, 0x4f, 0xa6, + 0x3d, 0x33, 0x17, 0xc0, 0x75, 0xd9, 0xca, 0x42, + 0x17, 0x73, 0x4d, 0xc9, 0x20, 0x73, 0xb9, 0xff, + 0x00, 0x63, 0x69, 0xc2, 0x66, 0x69, 0x2e, 0x85, + 0xb4, 0xc7, 0xd7, 0x1e, 0x3f, 0x27, 0x8f, 0x5d, + 0x79, 0x1e, 0x8d, 0x30, 0xa2, 0x01, 0x7f, 0x17, + 0x59, 0x6c, 0x5f, 0x67, 0x28, 0xab, 0x5f, 0xb2, + 0x10, 0x19, 0x28, 0x8d, 0x4a, 0xd6, 0x6b, 0x84, + 0x38, 0x8e, 0xe8, 0xd5, 0x0a, 0x9c, 0xd9, 0xce, + 0x10, 0xbc, 0xe4, 0xd9, 0xb1, 0xd8, 0xb3, 0x11, + 0x20, 0x37, 0x71, 0x5f, 0xbd, 0x91, 0x65, 0xca, + 0xa5, 0x9a, 0xaf, 0xdf, 0x3b, 0x00, 0x57, 0x55, + 0xd5, 0x05, 0x96, 0xcf, 0x8e, 0x73, 0x20, 0xbc, + 0xcd, 0xee, 0xa7, 0x0e, 0xbf, 0x82, 0xb8, 0x35, + 0x16, 0xca, 0x29, 0xdd, 0x67, 0xf6, 0x77, 0x85, + 0x23, 0x1b, 0x79, 0x74, 0xa5, 0x3d, 0x9f, 0xa8, + 0x5d, 0x47, 0xd4, 0xb3, 0x8d, 0x37, 0x42, 0xce, + 0xac, 0xae, 0xd3, 0x27, 0xaa, 0x49, 0x2e, 0x7d, + 0x61, 0xeb, 0xb2, 0xd4, 0x33, 0x39, 0xf5, 0xd9, + 0xc5, 0x59, 0xac, 0x9d, 0x68, 0x55, 0x88, 0xe9, + 0x2f, 0x31, 0xd8, 0x0d, 0x4c, 0xeb, 0x1a, 0xe1, + 0x07, 0x0c, 0x62, 0xdf, 0x10, 0x0b, 0x71, 0xb0, + 0x20, 0x7d, 0xb0, 0x47, 0x71, 0xdf, 0xfb, 0x7f, + 0x14, 0x7e, 0x39, 0xa1, 0xfb, 0x0b, 0x75, 0x1a, + 0x12, 0xfb, 0xfc, 0x4f, 0x4a, 0x3f, 0xec, 0x9c, + 0xb4, 0xff, 0x00, 0xf8, 0x35, 0xe5, 0xd7, 0x97, + 0x5e, 0x5d, 0x79, 0x75, 0xe5, 0xd7, 0x97, 0x5e, + 0x5d, 0x70, 0x56, 0x2e, 0xc9, 0x8c, 0x27, 0x39, + 0x4b, 0x8b, 0x31, 0xed, 0xf7, 0x33, 0xcb, 0xed, + 0xf5, 0x6d, 0x2e, 0x66, 0x26, 0x7c, 0xbc, 0xf5, + 0xa3, 0x97, 0xf8, 0xe7, 0x58, 0x3c, 0x9d, 0xe7, + 0xa9, 0x74, 0xc7, 0x8f, 0xb3, 0xb5, 0x7a, 0xc6, + 0x42, 0x2a, 0x48, 0x26, 0xbd, 0x8a, 0x35, 0x9c, + 0x65, 0xe4, 0x5a, 0x62, 0x40, 0x08, 0x98, 0x5b, + 0x08, 0x0c, 0xf3, 0x94, 0xc0, 0xc4, 0xce, 0xb8, + 0x63, 0x15, 0x69, 0x54, 0x10, 0xeb, 0x7c, 0x53, + 0x37, 0xeb, 0xac, 0x38, 0x82, 0xfe, 0x6a, 0xe7, + 0x47, 0xa5, 0x6c, 0x0a, 0xe1, 0x76, 0xda, 0xc1, + 0xd9, 0xab, 0x3f, 0x9b, 0x96, 0x15, 0x0f, 0xe9, + 0x83, 0x24, 0x81, 0x40, 0x5c, 0xac, 0x91, 0xe3, + 0xcb, 0x3e, 0x11, 0xb3, 0x0e, 0x57, 0x1a, 0x15, + 0x64, 0x98, 0xd9, 0x64, 0x1a, 0xab, 0xf5, 0x95, + 0x1d, 0x24, 0x4f, 0x3f, 0x32, 0xd5, 0xb0, 0xc4, + 0x72, 0xae, 0x60, 0x7b, 0xbf, 0x8e, 0x77, 0xe2, + 0xfc, 0x1d, 0x1c, 0x8a, 0x28, 0x67, 0xb2, 0xb8, + 0xbe, 0x1e, 0x66, 0x35, 0xed, 0x7c, 0xd7, 0xed, + 0x11, 0x5e, 0xb4, 0x9d, 0xba, 0xc1, 0x60, 0x7c, + 0x60, 0x61, 0x09, 0xc1, 0x6c, 0x1b, 0x99, 0x8c, + 0x99, 0x6d, 0xca, 0x99, 0x98, 0xe1, 0x4c, 0x25, + 0xcb, 0xe8, 0xbd, 0x9e, 0xc4, 0xe1, 0xb3, 0xa7, + 0x93, 0xb4, 0xb7, 0x43, 0xe1, 0x3d, 0x65, 0x09, + 0xd4, 0xa8, 0xcb, 0x05, 0xe3, 0xb1, 0x8b, 0x80, + 0x92, 0xd9, 0xb1, 0x07, 0x03, 0xc8, 0x5b, 0x6c, + 0xd8, 0xdf, 0x21, 0x86, 0xcb, 0xd9, 0x26, 0xf4, + 0x2e, 0x63, 0xf8, 0x99, 0x2d, 0xb0, 0x64, 0xd2, + 0x29, 0xc7, 0x31, 0x63, 0x71, 0x66, 0x66, 0x5c, + 0xd3, 0x06, 0xa1, 0xaf, 0xb4, 0x77, 0xc4, 0x04, + 0x37, 0x78, 0x98, 0xd6, 0x47, 0x23, 0x33, 0xf6, + 0xe5, 0xc7, 0xbc, 0x3f, 0x89, 0x44, 0xc9, 0xe8, + 0x8f, 0xff, 0x00, 0x72, 0xae, 0x48, 0xff, 0x00, + 0x9b, 0x5e, 0x5d, 0x79, 0x75, 0xe5, 0xd7, 0x97, + 0x5e, 0x5d, 0x79, 0x75, 0x82, 0x0d, 0xfc, 0xad, + 0xbb, 0xfc, 0x97, 0x7a, 0x75, 0x8d, 0xfc, 0x3e, + 0x9f, 0xed, 0x0b, 0xd6, 0x52, 0x37, 0xf2, 0x64, + 0xaf, 0x47, 0xe4, 0xb4, 0xdd, 0x79, 0x75, 0xe5, + 0xd6, 0x4f, 0x20, 0xaa, 0xd8, 0xdb, 0xac, 0xfa, + 0xe5, 0xae, 0x8e, 0x86, 0x4d, 0x05, 0x66, 0xbf, + 0x2b, 0x28, 0x84, 0xc9, 0xf4, 0x85, 0xc9, 0x9e, + 0x78, 0xe5, 0xf1, 0x4b, 0x9f, 0x68, 0xdc, 0xbb, + 0xb5, 0x25, 0x98, 0xb7, 0x47, 0x18, 0x4e, 0xc2, + 0xdc, 0xc4, 0xe1, 0x49, 0x41, 0xd9, 0x71, 0xf8, + 0xcb, 0x4e, 0x84, 0xf4, 0x61, 0x70, 0x46, 0xc9, + 0x57, 0x56, 0x57, 0x3e, 0xda, 0xd6, 0x99, 0x73, + 0xf2, 0x20, 0x4a, 0x02, 0x56, 0xb1, 0xc7, 0x53, + 0xce, 0x65, 0x13, 0x7f, 0x3c, 0x3c, 0x46, 0x8c, + 0xc5, 0x25, 0x2a, 0xd9, 0x5c, 0x6d, 0x4a, 0x35, + 0x87, 0x66, 0x34, 0x9a, 0xdd, 0x9d, 0x01, 0x61, + 0x90, 0x41, 0x0b, 0x91, 0xe9, 0xcc, 0xc9, 0xf2, + 0xc9, 0x48, 0xb2, 0x20, 0x78, 0x6f, 0xac, 0xae, + 0xc7, 0x6e, 0xbc, 0xf1, 0xd7, 0x52, 0x39, 0x77, + 0x87, 0xf8, 0x51, 0x79, 0x08, 0xaf, 0xbc, 0x94, + 0xc7, 0x8d, 0x8d, 0x59, 0xa7, 0x96, 0x3b, 0xfa, + 0x1e, 0xd9, 0xb0, 0xf7, 0x6a, 0xd3, 0xab, 0x0d, + 0x67, 0x64, 0x53, 0xc4, 0xf6, 0xb2, 0xf7, 0x51, + 0x63, 0x3d, 0x77, 0x07, 0xd0, 0xaf, 0x63, 0x63, + 0xaf, 0x7a, 0x66, 0x9a, 0xdd, 0x37, 0x10, 0xa5, + 0x84, 0x57, 0xec, 0xef, 0x1e, 0x97, 0xb4, 0xcc, + 0x17, 0xdc, 0xdf, 0x2d, 0x76, 0x85, 0x91, 0x48, + 0x5c, 0xe3, 0xeb, 0x80, 0x53, 0x46, 0xcb, 0x25, + 0x4f, 0x54, 0xe3, 0x77, 0x39, 0x06, 0xf2, 0xa1, + 0x8d, 0xae, 0xf6, 0x0f, 0x57, 0xc6, 0x58, 0x09, + 0xef, 0x1b, 0x87, 0x93, 0x59, 0xa1, 0xc0, 0xd9, + 0xc7, 0xd7, 0xe2, 0xe0, 0x6d, 0x33, 0xa8, 0x57, + 0xc8, 0x63, 0x7c, 0x5c, 0x30, 0x7b, 0x58, 0xd7, + 0xe6, 0x06, 0x6d, 0x06, 0x5e, 0xd7, 0x64, 0xc4, + 0x26, 0x60, 0x4d, 0x63, 0x32, 0x1d, 0x40, 0x2d, + 0x76, 0xda, 0x0c, 0xc1, 0x78, 0x58, 0x72, 0x82, + 0x1c, 0x43, 0x15, 0x6c, 0xf5, 0xae, 0xf8, 0x45, + 0x95, 0x07, 0x74, 0x26, 0x36, 0x29, 0x84, 0x0c, + 0x8b, 0x58, 0xf8, 0x9e, 0x8c, 0x43, 0x03, 0x73, + 0x1e, 0xd3, 0xd4, 0x19, 0x9e, 0x1c, 0xa5, 0x76, + 0x95, 0x7c, 0xe6, 0x3b, 0x2e, 0x59, 0x2a, 0xf5, + 0xae, 0x3b, 0xa0, 0x37, 0x69, 0xba, 0xbf, 0x4d, + 0xdd, 0x29, 0x81, 0x29, 0x33, 0x41, 0x6e, 0x67, + 0x30, 0x27, 0x20, 0x1c, 0xb0, 0x5c, 0xa2, 0x63, + 0x3a, 0xe1, 0xac, 0x70, 0xe5, 0x15, 0x77, 0x2b, + 0x34, 0xf2, 0x4c, 0xcd, 0xa9, 0x24, 0xb3, 0xab, + 0x46, 0xcc, 0xe3, 0xee, 0x4a, 0xd0, 0x0d, 0x1e, + 0x53, 0xe6, 0xe9, 0x6d, 0xcc, 0xa7, 0x0f, 0x53, + 0xb8, 0x5d, 0xb8, 0x83, 0xc1, 0x41, 0xc3, 0xc1, + 0xc3, 0xb9, 0xba, 0xd8, 0xe3, 0xc0, 0xde, 0xb9, + 0x39, 0xda, 0xe7, 0x74, 0xea, 0x9a, 0xf9, 0xee, + 0x9d, 0x85, 0xdc, 0x31, 0x0f, 0xb6, 0x16, 0x48, + 0x83, 0x91, 0x86, 0xec, 0xa9, 0xf1, 0xd7, 0x05, + 0xed, 0x67, 0xcb, 0xc6, 0xb8, 0xbe, 0x15, 0xc9, + 0xd5, 0xa9, 0x93, 0x7e, 0x53, 0x1f, 0x65, 0x0d, + 0xed, 0x7d, 0x8f, 0xc2, 0x75, 0xaa, 0x21, 0x08, + 0xba, 0xea, 0xee, 0x56, 0xe7, 0x2b, 0xeb, 0xa5, + 0x8c, 0x26, 0x26, 0x0a, 0x08, 0x4d, 0x66, 0x7b, + 0x0d, 0x88, 0x99, 0xe3, 0x9b, 0x79, 0x3c, 0xad, + 0x7e, 0x27, 0x6e, 0x23, 0x17, 0x84, 0x9b, 0x2d, + 0x4c, 0x29, 0x43, 0xd5, 0xaf, 0x36, 0x45, 0xb4, + 0xb6, 0x0e, 0x75, 0x75, 0xaa, 0x36, 0x0a, 0x0f, + 0x97, 0x72, 0xea, 0x47, 0xb7, 0x40, 0x58, 0x96, + 0x80, 0x7b, 0x25, 0xda, 0x0b, 0x53, 0x6a, 0x9e, + 0x5b, 0x09, 0x8b, 0xcc, 0xe3, 0xac, 0xb1, 0x9c, + 0xe4, 0xea, 0xd7, 0x8a, 0xd3, 0x04, 0x39, 0x8a, + 0x79, 0x8b, 0xa1, 0x3b, 0xa4, 0x37, 0xf1, 0xa1, + 0x22, 0xad, 0xfb, 0xf5, 0x4b, 0x1f, 0xda, 0xcf, + 0xb1, 0x7d, 0x65, 0x73, 0x4d, 0x78, 0x69, 0x74, + 0x24, 0x8b, 0x1e, 0xc6, 0xcc, 0x92, 0xf9, 0xba, + 0x72, 0x7c, 0xc3, 0x13, 0xbc, 0x8f, 0x37, 0x74, + 0x6b, 0x82, 0xed, 0x61, 0xf3, 0x55, 0x68, 0x55, + 0xc1, 0xde, 0x6a, 0x73, 0xd5, 0xce, 0xe1, 0x57, + 0x28, 0x6b, 0x2f, 0x81, 0x86, 0xeb, 0x1e, 0xeb, + 0x05, 0x69, 0x47, 0xc8, 0xa5, 0xb3, 0x61, 0xf6, + 0xf8, 0x85, 0xcc, 0xf8, 0xdb, 0x71, 0x08, 0x6f, + 0xee, 0x6f, 0xcf, 0xea, 0x53, 0xaf, 0x2e, 0xbc, + 0xba, 0xe2, 0xef, 0xf1, 0x63, 0x87, 0xff, 0x00, + 0xeb, 0xb5, 0x90, 0xff, 0x00, 0x66, 0x9f, 0xf8, + 0x13, 0x3f, 0x5f, 0x5b, 0x58, 0x4f, 0xc7, 0x4a, + 0xfd, 0x8a, 0xf6, 0x83, 0xde, 0x8d, 0x1f, 0xbd, + 0x3a, 0x3f, 0xc6, 0x39, 0x4f, 0xdb, 0x9f, 0xf5, + 0x38, 0xbf, 0xf0, 0x2a, 0x5f, 0xca, 0xf8, 0xef, + 0xa9, 0xca, 0x02, 0x44, 0x5f, 0x78, 0x62, 0x66, + 0x7f, 0x24, 0x6a, 0x44, 0xa2, 0x44, 0xa3, 0xcb, + 0x05, 0x1b, 0x4c, 0x7b, 0xf1, 0x3f, 0x53, 0xba, + 0x37, 0xfb, 0xbf, 0xf3, 0x47, 0x96, 0x7f, 0xe6, + 0xfa, 0xbb, 0xad, 0x4c, 0x38, 0xdf, 0x6d, 0xc0, + 0x08, 0xa3, 0x7f, 0xbd, 0xbc, 0x44, 0xf7, 0xea, + 0x07, 0xa6, 0x7c, 0xc5, 0x1b, 0x88, 0xf2, 0x96, + 0xe5, 0x1d, 0xfd, 0xf1, 0x1b, 0x6f, 0x31, 0xdd, + 0x3e, 0x4f, 0xbd, 0x3f, 0x53, 0x63, 0x12, 0x09, + 0xfb, 0xc5, 0x12, 0x33, 0xf9, 0x27, 0x51, 0xcc, + 0x24, 0x3c, 0xd1, 0xb8, 0xef, 0x13, 0x1c, 0xd1, + 0xf7, 0xe3, 0x7f, 0x2c, 0x7f, 0x1c, 0x68, 0x63, + 0x90, 0xb7, 0x3e, 0xf0, 0x8e, 0x59, 0xdc, 0xa3, + 0xef, 0x8c, 0x7d, 0xdf, 0xf9, 0xb5, 0x24, 0x49, + 0x68, 0xc4, 0x79, 0x66, 0x56, 0x71, 0x11, 0xef, + 0xcc, 0xc7, 0xf6, 0x8e, 0x28, 0xfc, 0x73, 0x43, + 0xf6, 0x16, 0xea, 0x35, 0x77, 0x87, 0xac, 0x37, + 0xb3, 0xcd, 0xd6, 0x22, 0xc6, 0x3e, 0xdc, 0xc4, + 0x90, 0x54, 0xca, 0x57, 0xe7, 0x8a, 0xe4, 0xd1, + 0x08, 0x92, 0x94, 0x58, 0x16, 0x1d, 0x67, 0x48, + 0xc1, 0x48, 0x0b, 0x39, 0x86, 0x23, 0xbc, 0xa0, + 0xd5, 0x18, 0x3e, 0xd4, 0x20, 0x66, 0x10, 0xfa, + 0x99, 0x2c, 0x5b, 0x52, 0xce, 0x99, 0x48, 0x14, + 0x8e, 0xf7, 0x41, 0xa1, 0xe3, 0x44, 0xc7, 0x2b, + 0x94, 0xa6, 0x44, 0xc4, 0xc1, 0x04, 0x4c, 0x4e, + 0xbd, 0x1b, 0xb3, 0xf1, 0xcc, 0x67, 0xcf, 0xf5, + 0xe8, 0xdd, 0x9f, 0x8e, 0x63, 0x3e, 0x7f, 0xaf, + 0x46, 0xec, 0xfc, 0x73, 0x19, 0xf3, 0xfd, 0x7a, + 0x37, 0x67, 0xe3, 0x98, 0xcf, 0x9f, 0xeb, 0xd1, + 0xbb, 0x3f, 0x1c, 0xc6, 0x7c, 0xff, 0x00, 0x5e, + 0x8d, 0xd9, 0xf8, 0xe6, 0x33, 0xe7, 0xfa, 0xf4, + 0x6a, 0xc7, 0x7f, 0x97, 0xf7, 0xde, 0x2f, 0xbf, + 0xff, 0x00, 0xbf, 0xb5, 0xe8, 0xd5, 0x8f, 0x8e, + 0x62, 0xfe, 0x7d, 0xad, 0xbe, 0xb6, 0xac, 0x7c, + 0x6f, 0x17, 0xf3, 0xed, 0x7a, 0x35, 0x63, 0xe3, + 0x78, 0xbf, 0x9f, 0x6b, 0x6f, 0xad, 0xab, 0x1b, + 0x7d, 0xee, 0xd7, 0x8b, 0xdb, 0xf6, 0xed, 0x6d, + 0xf5, 0xb5, 0x63, 0x6f, 0xbd, 0xda, 0xf1, 0x7b, + 0x7e, 0xdd, 0xac, 0xae, 0x22, 0xaf, 0x01, 0x2e, + 0x72, 0x39, 0x50, 0xb1, 0x58, 0xf8, 0x82, 0x6f, + 0xe3, 0x22, 0xea, 0x71, 0xf6, 0x81, 0x40, 0xea, + 0x42, 0xb8, 0xb1, 0xb9, 0x47, 0x88, 0x72, 0x0c, + 0x9b, 0x23, 0x01, 0x2d, 0xfb, 0x11, 0x72, 0x44, + 0xcf, 0xa3, 0x76, 0x7e, 0x39, 0x8c, 0xf9, 0xfe, + 0xbd, 0x1b, 0xb3, 0xf1, 0xcc, 0x67, 0xcf, 0xf5, + 0xe8, 0xdd, 0x9f, 0x8e, 0x63, 0x3e, 0x7f, 0xaf, + 0x46, 0xec, 0xfc, 0x73, 0x19, 0xf3, 0xfd, 0x7a, + 0x37, 0x67, 0xe3, 0x98, 0xcf, 0x9f, 0xeb, 0xd1, + 0xbb, 0x3f, 0x1c, 0xc6, 0x7c, 0xff, 0x00, 0x5e, + 0x8d, 0xd9, 0xf8, 0xe6, 0x33, 0xe7, 0xfa, 0x1e, + 0x23, 0xe2, 0x18, 0x52, 0x32, 0x10, 0x9b, 0x68, + 0xc3, 0x63, 0x55, 0x61, 0x76, 0x8c, 0x5e, 0xd5, + 0xcd, 0x4b, 0x17, 0x2d, 0xbe, 0xa9, 0x3a, 0xa8, + 0xc5, 0x74, 0xbd, 0xa0, 0x08, 0x07, 0x99, 0x99, + 0x9e, 0xc5, 0xc9, 0xcb, 0x3c, 0xab, 0x70, 0x7b, + 0xb5, 0x30, 0x18, 0x1f, 0xe5, 0x01, 0x41, 0x0f, + 0xfd, 0x71, 0xa3, 0xcd, 0xf0, 0xc2, 0x93, 0x7a, + 0x9e, 0x64, 0x9f, 0x7b, 0xc1, 0xc5, 0x76, 0xa5, + 0x5b, 0xf4, 0xdb, 0xcf, 0xfb, 0xf4, 0x04, 0x2e, + 0xba, 0xb0, 0x59, 0xac, 0x16, 0x64, 0xa1, 0x4c, + 0x49, 0x93, 0x39, 0x4d, 0x60, 0x4b, 0x92, 0xd8, + 0x8b, 0xd1, 0xbb, 0x3f, 0x1c, 0xc6, 0x7c, 0xff, + 0x00, 0x5e, 0x8d, 0xd9, 0xf8, 0xe6, 0x33, 0xe7, + 0xfa, 0xdf, 0xeb, 0x6e, 0xce, 0xff, 0x00, 0x7f, + 0xb6, 0x62, 0xfe, 0x7d, 0xaf, 0x46, 0xec, 0xfc, + 0x73, 0x19, 0xf3, 0xfd, 0x77, 0x70, 0xd5, 0x88, + 0xf7, 0xad, 0xe2, 0xfe, 0x7d, 0xaf, 0x46, 0xac, + 0x7d, 0xff, 0x00, 0xb6, 0xf1, 0x7f, 0x3e, 0xd7, + 0x7f, 0x0d, 0x58, 0x9f, 0x7e, 0xde, 0x2f, 0xe7, + 0xda, 0xdf, 0xeb, 0x6e, 0xc6, 0xff, 0x00, 0x7f, + 0xb6, 0x62, 0xfe, 0x7d, 0xae, 0xfe, 0x1a, 0xb1, + 0x3e, 0xfd, 0xcc, 0x5f, 0xcf, 0xb5, 0xe8, 0xdd, + 0x9f, 0x8e, 0x62, 0xfe, 0x7d, 0xae, 0xfe, 0x1b, + 0xb1, 0x3e, 0xfd, 0xcc, 0x5f, 0xcf, 0xb5, 0xb7, + 0xd6, 0xd5, 0x8d, 0xbe, 0xf7, 0x6b, 0xc5, 0xed, + 0xfb, 0x76, 0xbb, 0xf8, 0x6a, 0xc4, 0xfb, 0xf6, + 0xf1, 0x7f, 0x3e, 0xd7, 0x7f, 0x0d, 0x58, 0x9f, + 0x7e, 0xe6, 0x2f, 0xe7, 0xda, 0x8f, 0xfd, 0x9a, + 0xb1, 0xdd, 0xe4, 0xfd, 0xf7, 0x8b, 0xee, 0xf7, + 0xbf, 0x7f, 0x6b, 0xd1, 0xab, 0x1f, 0x7f, 0xed, + 0xbc, 0x5f, 0xcf, 0xb5, 0xb7, 0xd6, 0xd5, 0x8d, + 0xbf, 0x0b, 0xc5, 0xfc, 0xfb, 0x55, 0x53, 0x73, + 0xd8, 0xa7, 0x1b, 0x9a, 0xbd, 0x8e, 0x61, 0x1e, + 0x3b, 0x2c, 0xfb, 0xd8, 0x9a, 0xd7, 0x2b, 0xc7, + 0x50, 0x9e, 0xb8, 0x64, 0xc1, 0x58, 0x2b, 0x12, + 0x9b, 0x06, 0x46, 0xb6, 0x43, 0x12, 0x50, 0x1c, + 0xaa, 0xfe, 0x04, 0x1e, 0xae, 0xe5, 0x2e, 0x70, + 0xeb, 0xca, 0xd5, 0xfb, 0x2c, 0xb2, 0xfe, 0x4b, + 0x58, 0xc0, 0x5c, 0x1b, 0x0b, 0x7e, 0x55, 0x8f, + 0x84, 0x27, 0x95, 0x61, 0x1b, 0x02, 0xe2, 0x64, + 0xa6, 0x00, 0x62, 0x24, 0x8a, 0x7b, 0xe7, 0xd1, + 0xbb, 0x3f, 0x1c, 0xc6, 0x7c, 0xff, 0x00, 0x50, + 0x3f, 0x5b, 0xcd, 0x0d, 0xff, 0x00, 0x84, 0xdc, + 0x86, 0x25, 0x6b, 0x18, 0xfb, 0xa4, 0x46, 0x79, + 0x08, 0x88, 0x88, 0x8e, 0xff, 0x00, 0xfb, 0xa2, + 0x67, 0xbb, 0x4c, 0xc7, 0x3d, 0xca, 0xb5, 0x95, + 0xcd, 0x15, 0x3b, 0xf9, 0x27, 0xd6, 0x67, 0x52, + 0xa2, 0xab, 0x20, 0x19, 0x38, 0xfa, 0x95, 0x99, + 0xb4, 0x76, 0x8d, 0xba, 0xee, 0x7b, 0x2c, 0x47, + 0x89, 0x32, 0xc8, 0x85, 0xf3, 0x8f, 0x78, 0xbf, + 0xf0, 0x23, 0xfd, 0x7d, 0x6d, 0x61, 0x3f, 0x1d, + 0x2b, 0xf6, 0x2b, 0xda, 0x0f, 0x7a, 0x34, 0x7e, + 0xf4, 0xe8, 0xff, 0x00, 0x18, 0xe5, 0x3f, 0x6e, + 0x7f, 0xd4, 0xe2, 0xff, 0x00, 0xc0, 0xa9, 0x7f, + 0x2b, 0xe3, 0xbe, 0xa6, 0x0f, 0x2d, 0x81, 0x39, + 0xa5, 0xc4, 0x3c, 0x65, 0x93, 0xcd, 0x8b, 0xf3, + 0x6a, 0x81, 0xed, 0xd4, 0xb1, 0x18, 0x16, 0x54, + 0xac, 0x38, 0xea, 0x0f, 0x98, 0x93, 0xa5, 0xda, + 0xed, 0x58, 0x2b, 0x16, 0xdd, 0x5b, 0xa6, 0xdb, + 0x00, 0x00, 0x86, 0x32, 0x54, 0x30, 0x1a, 0xe1, + 0x4c, 0x0d, 0x95, 0x2b, 0xeb, 0xa9, 0x2c, 0xc8, + 0xa7, 0x25, 0xc5, 0x96, 0xa4, 0x02, 0x2d, 0x61, + 0x14, 0xa1, 0xb6, 0x96, 0x65, 0x3a, 0x29, 0xe7, + 0xb0, 0xdc, 0x5a, 0x13, 0x73, 0xf7, 0xcb, 0x0b, + 0xa8, 0xc0, 0xe9, 0xac, 0x89, 0x8c, 0x69, 0x30, + 0x69, 0x5b, 0xe1, 0x7e, 0x26, 0xb1, 0x95, 0xc7, + 0x7d, 0x73, 0xe2, 0x78, 0x6b, 0x2c, 0x57, 0x30, + 0xd3, 0x8d, 0xbb, 0x43, 0xc3, 0x56, 0x3a, 0x14, + 0x72, 0x88, 0xab, 0xdb, 0xac, 0x85, 0x9a, 0x36, + 0x39, 0x1d, 0x0b, 0x86, 0x3e, 0xad, 0x88, 0x6a, + 0xba, 0x6e, 0x4a, 0xb9, 0xc4, 0xb5, 0xc7, 0xd8, + 0xbf, 0xae, 0x8c, 0x96, 0x42, 0xce, 0x3f, 0x84, + 0xf8, 0xa2, 0x86, 0x4c, 0xd5, 0xc3, 0x6b, 0x11, + 0xa6, 0x15, 0xce, 0xb2, 0x6c, 0xd9, 0xa6, 0x6e, + 0xcb, 0x0f, 0x6a, 0x3e, 0x52, 0x25, 0x29, 0x5b, + 0xd7, 0x96, 0x18, 0x58, 0x16, 0x31, 0x2a, 0xe8, + 0x9b, 0xf8, 0x7f, 0x1f, 0x90, 0xe2, 0xcf, 0x07, + 0x71, 0x1f, 0x16, 0xd7, 0xed, 0x98, 0x0c, 0x6f, + 0x82, 0x89, 0xf5, 0x01, 0x16, 0x8e, 0x55, 0x84, + 0x1c, 0xd5, 0xf1, 0xb6, 0x25, 0x42, 0xce, 0x65, + 0xa2, 0x40, 0x94, 0xd7, 0xad, 0x7b, 0xa1, 0xba, + 0xc9, 0xe6, 0x22, 0xc0, 0x92, 0x45, 0xe0, 0xcc, + 0x8d, 0x44, 0xe3, 0x32, 0x19, 0x4a, 0x7c, 0x77, + 0xda, 0x6b, 0x0e, 0xfc, 0x26, 0x8c, 0x6a, 0x5b, + 0x6e, 0x2f, 0xcc, 0x0d, 0x99, 0x9b, 0xd5, 0x6e, + 0x57, 0xae, 0xf4, 0xd7, 0x29, 0x1a, 0xdc, 0xd9, + 0x05, 0x95, 0x58, 0xe6, 0x81, 0x36, 0x8f, 0x1b, + 0xa3, 0x17, 0x96, 0xc9, 0x22, 0x90, 0xf0, 0xf5, + 0x97, 0x54, 0xe4, 0xb2, 0xea, 0x52, 0x67, 0xe1, + 0xec, 0x0a, 0x97, 0x66, 0x6b, 0xa2, 0xc4, 0x82, + 0xed, 0x9d, 0x68, 0xe5, 0x3e, 0x43, 0x32, 0x10, + 0xe6, 0x5f, 0x50, 0x82, 0x35, 0xc1, 0x19, 0x67, + 0x59, 0x02, 0xca, 0xe1, 0x71, 0xdc, 0x0f, 0x80, + 0xa9, 0x2c, 0x67, 0xb7, 0x4a, 0x38, 0xc2, 0xa6, + 0x2f, 0xac, 0xc1, 0x38, 0xf1, 0x8b, 0xb1, 0xa1, + 0x3c, 0x4f, 0xd6, 0xe7, 0x3f, 0x11, 0x99, 0x45, + 0xcc, 0xcf, 0xf0, 0x75, 0x3f, 0x85, 0xff, 0x00, + 0xfe, 0x6d, 0x70, 0xfd, 0xaa, 0x4b, 0xe6, 0xba, + 0xcc, 0xd5, 0xae, 0x01, 0xb7, 0x03, 0xfc, 0x2b, + 0x95, 0x2d, 0x56, 0xb5, 0x8b, 0x29, 0xf1, 0x22, + 0x24, 0x9b, 0x43, 0x32, 0xa1, 0x93, 0x92, 0x2f, + 0xb0, 0x6d, 0xfc, 0x02, 0xd7, 0xb1, 0xfd, 0x1a, + 0x6c, 0x8a, 0xf8, 0x6a, 0xbc, 0x37, 0x91, 0x8b, + 0x37, 0xe6, 0x3d, 0xa7, 0x1f, 0xc3, 0x9c, 0x3d, + 0x98, 0xc9, 0x56, 0xb1, 0x91, 0x71, 0x44, 0xc8, + 0x47, 0x26, 0x3e, 0x8c, 0x48, 0xee, 0x50, 0x2f, + 0xb4, 0xc4, 0xa0, 0x27, 0x9d, 0xc1, 0x1a, 0xf6, + 0x17, 0xb5, 0x8d, 0xab, 0xd8, 0x69, 0x37, 0x86, + 0x30, 0xfe, 0x0f, 0xa7, 0x13, 0xf6, 0xb5, 0x58, + 0xb9, 0x9c, 0x0a, 0xaa, 0x99, 0xde, 0x7c, 0x78, + 0x50, 0x87, 0x52, 0x77, 0xda, 0x59, 0xcc, 0x5f, + 0x77, 0x59, 0x1b, 0x1c, 0x4d, 0x93, 0xcc, 0x47, + 0x0f, 0xbd, 0x9d, 0x92, 0xca, 0xd9, 0xc5, 0x18, + 0xcb, 0xea, 0x62, 0xed, 0xb2, 0x41, 0x68, 0x65, + 0x3a, 0x79, 0x5b, 0x4e, 0x30, 0x3f, 0x73, 0x31, + 0xd1, 0x90, 0x18, 0xf7, 0x7b, 0x47, 0xf6, 0x8e, + 0x28, 0xfc, 0x73, 0x43, 0xf6, 0x16, 0xea, 0x35, + 0x53, 0xf0, 0x94, 0x7e, 0xb4, 0x75, 0xc4, 0xde, + 0x28, 0xfa, 0x43, 0x9b, 0xfb, 0x91, 0xff, 0x00, + 0xd6, 0x76, 0xb5, 0xee, 0x47, 0xf2, 0x46, 0xbd, + 0xc8, 0xfe, 0x48, 0xd7, 0xb9, 0x1f, 0xc9, 0x1a, + 0xf7, 0x23, 0xf9, 0x23, 0x5e, 0xe4, 0x7f, 0x24, + 0x6b, 0x1a, 0x9c, 0xaa, 0x49, 0xf5, 0xd9, 0x6e, + 0xb2, 0xc6, 0xaa, 0xd6, 0xbe, 0x5b, 0x4d, 0x63, + 0xd6, 0xb1, 0x55, 0x83, 0x3e, 0xe5, 0xd6, 0x88, + 0x29, 0x63, 0xb6, 0x06, 0x1b, 0x04, 0x3a, 0x23, + 0x03, 0x2c, 0xea, 0x05, 0x0a, 0x97, 0x6b, 0x43, + 0xe9, 0x32, 0xf7, 0x23, 0xd0, 0x24, 0x69, 0xea, + 0x26, 0x08, 0xa4, 0x97, 0x0c, 0x49, 0x03, 0x03, + 0x78, 0x8d, 0xa2, 0x40, 0xc4, 0xa3, 0xee, 0x4e, + 0xb8, 0x9d, 0x56, 0x93, 0x2d, 0xc6, 0x50, 0xab, + 0x64, 0xf0, 0xfb, 0x1b, 0x47, 0xaa, 0xcb, 0xd5, + 0x1f, 0x91, 0xc2, 0x1c, 0xb5, 0x66, 0x26, 0x62, + 0x18, 0xd4, 0x3a, 0xd1, 0x6e, 0x52, 0x2c, 0x24, + 0xc0, 0x37, 0x9a, 0x0e, 0x44, 0x95, 0x05, 0xc3, + 0x63, 0x5b, 0x1a, 0x5c, 0x2f, 0x57, 0x26, 0x7c, + 0x49, 0xbe, 0x68, 0x4a, 0x32, 0x07, 0x88, 0x0b, + 0x9f, 0x66, 0xb1, 0x7d, 0x98, 0x66, 0x76, 0x8b, + 0xf2, 0x35, 0x7b, 0x22, 0xe8, 0xc1, 0xcc, 0x3b, + 0x91, 0x1d, 0x36, 0x0c, 0x1c, 0x67, 0xac, 0x86, + 0x04, 0x73, 0xd7, 0x68, 0xf8, 0x23, 0xb2, 0x54, + 0xe5, 0xcb, 0x1c, 0x08, 0xdb, 0xb1, 0x65, 0x76, + 0x99, 0xd1, 0xc3, 0x5c, 0xa3, 0x61, 0x9b, 0x02, + 0xc3, 0xbc, 0x98, 0x40, 0xbd, 0xb7, 0xdb, 0xbe, + 0x77, 0xbf, 0xb6, 0x0d, 0x18, 0xac, 0xb8, 0x67, + 0x30, 0x98, 0xd4, 0xd4, 0xe7, 0xc8, 0xd7, 0x5d, + 0x65, 0xdc, 0xa5, 0x94, 0x7b, 0xfa, 0xc3, 0x97, + 0xbd, 0x69, 0x8b, 0x86, 0x76, 0x74, 0x3d, 0x8c, + 0xb0, 0xd9, 0xe9, 0xac, 0x37, 0x4f, 0x4c, 0x0c, + 0xa0, 0x92, 0xd4, 0x5a, 0xc5, 0xd8, 0xa4, 0xe5, + 0x5e, 0x74, 0xe4, 0x54, 0x57, 0x06, 0xa2, 0x03, + 0x1b, 0x0a, 0x9b, 0xbd, 0x60, 0x7d, 0x04, 0xde, + 0xdd, 0x30, 0xfa, 0xf3, 0xb2, 0x69, 0x3b, 0xab, + 0xd7, 0x0e, 0x87, 0x52, 0x7a, 0x90, 0x19, 0xe6, + 0xdb, 0x76, 0x31, 0x2f, 0xa4, 0xee, 0x1e, 0x75, + 0x4c, 0xa3, 0x2c, 0xd9, 0xec, 0x3d, 0x83, 0x28, + 0xac, 0x83, 0x48, 0x94, 0x09, 0x49, 0xbd, 0xe5, + 0x67, 0xa7, 0x58, 0x45, 0x45, 0x8f, 0x2b, 0x89, + 0x31, 0x31, 0x25, 0x23, 0x95, 0xfb, 0x58, 0xa1, + 0x6d, 0x6b, 0x1b, 0x15, 0x59, 0x2b, 0x67, 0x24, + 0x83, 0x02, 0x7c, 0x92, 0x26, 0xb6, 0x0f, 0x8a, + 0x6a, 0x60, 0x48, 0xb1, 0x67, 0x1e, 0xe8, 0x08, + 0x67, 0xbb, 0xc9, 0xaf, 0x72, 0x3f, 0x92, 0x35, + 0xee, 0x47, 0xf2, 0x46, 0xbd, 0xc8, 0xfe, 0x48, + 0xd7, 0xb9, 0x1f, 0xc9, 0x1a, 0xf7, 0x23, 0xf9, + 0x23, 0x5e, 0xe4, 0x7f, 0x24, 0x6b, 0x84, 0xf6, + 0xff, 0x00, 0x0b, 0x88, 0x7f, 0x96, 0x9f, 0xf5, + 0x38, 0x2f, 0x78, 0x89, 0xf6, 0x8e, 0x21, 0xf2, + 0xfe, 0x1f, 0x53, 0x5e, 0xe4, 0x7f, 0x24, 0x6b, + 0xdc, 0x8f, 0xe4, 0x8d, 0x7b, 0x91, 0xfc, 0x91, + 0xa4, 0xd7, 0xb9, 0x51, 0x76, 0xd1, 0xd9, 0x72, + 0x8f, 0x9a, 0xe4, 0x4f, 0x58, 0xb4, 0xea, 0x62, + 0xae, 0xda, 0x48, 0x91, 0xd4, 0x6d, 0x7b, 0x1c, + 0xbd, 0x74, 0xae, 0x4a, 0x14, 0xe5, 0x91, 0x44, + 0x72, 0xf3, 0x6d, 0x3a, 0xa6, 0xca, 0x58, 0xaa, + 0x18, 0x4b, 0xee, 0xbb, 0x7d, 0x02, 0xbe, 0xd3, + 0x7d, 0x74, 0x2d, 0x56, 0xa5, 0x8c, 0x9c, 0x95, + 0x87, 0x4c, 0xe5, 0xad, 0xe4, 0x9e, 0x96, 0x55, + 0x15, 0xc8, 0x1b, 0x05, 0xe3, 0x58, 0xba, 0xe9, + 0x12, 0x05, 0xc8, 0x93, 0x26, 0x20, 0x2c, 0x62, + 0x58, 0xd7, 0xc5, 0xa3, 0xc7, 0x57, 0x5d, 0xa9, + 0x26, 0xe5, 0xd1, 0x4c, 0xd8, 0xb7, 0x59, 0xc6, + 0xcf, 0x43, 0xa2, 0x49, 0x92, 0x4b, 0xa2, 0xbf, + 0x6b, 0x75, 0x47, 0x5b, 0x24, 0xb1, 0x75, 0x14, + 0xe6, 0x8f, 0x4f, 0x55, 0x8e, 0x3c, 0x18, 0x6f, + 0x6a, 0xa9, 0xde, 0x9c, 0x5b, 0x5e, 0xd1, 0xb6, + 0x38, 0xfb, 0xaf, 0x52, 0x6b, 0xdb, 0xb2, 0x0a, + 0x00, 0x80, 0xae, 0xe9, 0x72, 0x0c, 0x94, 0x9b, + 0x9e, 0x11, 0x0a, 0xaf, 0x5d, 0xae, 0xce, 0xb4, + 0x97, 0x54, 0x58, 0xf3, 0xf0, 0x6a, 0xd9, 0x08, + 0x7e, 0x40, 0x71, 0xc2, 0xe7, 0x76, 0x92, 0xc7, + 0x22, 0xe4, 0xd3, 0x6d, 0xb4, 0x75, 0x14, 0x4a, + 0x3a, 0xeb, 0x70, 0x9f, 0xb5, 0x1d, 0xdf, 0x08, + 0xca, 0x16, 0x76, 0x3b, 0x39, 0x04, 0x75, 0x25, + 0xe9, 0x9f, 0x04, 0x51, 0x71, 0x64, 0x6c, 0x63, + 0x69, 0xd3, 0xed, 0x16, 0x79, 0x6e, 0x5d, 0x47, + 0x2c, 0xb2, 0xae, 0x38, 0x9c, 0x16, 0x59, 0xc8, + 0x32, 0xc5, 0x28, 0x1f, 0x92, 0xb2, 0x85, 0x93, + 0x1a, 0x0b, 0xed, 0x24, 0x7c, 0xdc, 0xb5, 0x6c, + 0x75, 0x31, 0x82, 0xdb, 0xd5, 0x6f, 0x5c, 0xa7, + 0x8f, 0x37, 0x94, 0x64, 0x2c, 0xab, 0x1a, 0x76, + 0x42, 0xe4, 0x02, 0x62, 0xbc, 0xa8, 0x18, 0xae, + 0xc8, 0xe2, 0x11, 0x7b, 0xd3, 0xd7, 0x81, 0xda, + 0xbc, 0xb5, 0x82, 0xc5, 0x86, 0x4f, 0x31, 0x79, + 0x03, 0x65, 0x18, 0xe2, 0xa4, 0x84, 0x51, 0xe7, + 0x24, 0x8d, 0xcb, 0xb7, 0x89, 0xdd, 0x20, 0xb0, + 0xd4, 0xc8, 0x3c, 0x6a, 0x25, 0x35, 0xde, 0xe7, + 0xc5, 0x76, 0x26, 0xc3, 0x76, 0x15, 0x2a, 0xc5, + 0x79, 0x29, 0x68, 0x56, 0xc8, 0x62, 0xeb, 0x56, + 0xc6, 0xfb, 0x65, 0xe5, 0x64, 0xeb, 0x93, 0xad, + 0x1d, 0x0a, 0x63, 0x8f, 0xaa, 0xbb, 0x87, 0x79, + 0x27, 0x62, 0x6f, 0x64, 0x3b, 0x39, 0xd6, 0x22, + 0x96, 0x57, 0x96, 0xe4, 0x2c, 0x43, 0xc0, 0xba, + 0x12, 0x42, 0xd5, 0x21, 0x6f, 0x96, 0x59, 0xc5, + 0xa2, 0x92, 0x2b, 0xd2, 0xb5, 0x39, 0x56, 0xb9, + 0xbe, 0x0f, 0x62, 0xb2, 0x5f, 0x68, 0xf4, 0x7a, + 0x75, 0x59, 0x74, 0xdb, 0x63, 0x95, 0xbf, 0xbd, + 0xfb, 0x14, 0x3d, 0x1d, 0x9e, 0xc9, 0x5a, 0x5a, + 0x05, 0x0c, 0x28, 0x72, 0xb3, 0x78, 0xea, 0xbb, + 0xac, 0xab, 0xad, 0x72, 0x9b, 0x56, 0xba, 0xa4, + 0x7f, 0x5c, 0xb8, 0xac, 0x6d, 0xa9, 0x74, 0xa6, + 0xcf, 0x66, 0x20, 0x9a, 0xd6, 0x9a, 0xba, 0xc7, + 0x5e, 0x20, 0x49, 0x4c, 0xeb, 0xef, 0x2d, 0x85, + 0xb0, 0x4a, 0x52, 0xdc, 0x72, 0x89, 0xbe, 0x10, + 0x7d, 0x2a, 0x2e, 0x65, 0x8e, 0xd7, 0x62, 0xa5, + 0x03, 0x7c, 0x39, 0xa1, 0xd3, 0xaa, 0xea, 0xeb, + 0x11, 0xec, 0xee, 0x10, 0x8b, 0x76, 0x90, 0xe7, + 0x4a, 0xa7, 0xa6, 0x07, 0xcc, 0xbe, 0xa1, 0x29, + 0x19, 0x2c, 0x5f, 0x65, 0xdb, 0x16, 0x85, 0x59, + 0xba, 0x76, 0x2b, 0xf6, 0x9c, 0x8d, 0xec, 0x75, + 0x6b, 0x85, 0x51, 0x23, 0xd8, 0x37, 0xff, 0x00, + 0x97, 0x86, 0xf5, 0x4c, 0x62, 0x9d, 0x5a, 0xcf, + 0xa8, 0x37, 0x6e, 0xae, 0xc1, 0x90, 0x41, 0xdf, + 0xb9, 0x34, 0x2a, 0xf2, 0x5a, 0xb1, 0x4b, 0xb1, + 0x3a, 0xc0, 0x8e, 0x45, 0x96, 0x69, 0xbc, 0x6b, + 0xdc, 0x5a, 0xab, 0x72, 0x4c, 0x1f, 0x65, 0x32, + 0x19, 0x69, 0x75, 0x20, 0x79, 0x67, 0xc4, 0x93, + 0x28, 0x91, 0x8f, 0x72, 0x3f, 0x92, 0x35, 0xee, + 0x47, 0xf2, 0x46, 0xbd, 0xc8, 0xfe, 0x48, 0xd7, + 0xb9, 0x1f, 0xc9, 0x1a, 0xe1, 0xef, 0xf4, 0x63, + 0x87, 0xff, 0x00, 0x93, 0x2b, 0xe9, 0xff, 0x00, + 0x81, 0x1f, 0xeb, 0xeb, 0x6b, 0x09, 0xf8, 0xe9, + 0x5f, 0xb1, 0x5e, 0xd0, 0x7b, 0xd1, 0xa3, 0xf7, + 0xa7, 0x47, 0xf8, 0xc7, 0x27, 0xfb, 0x73, 0xbe, + 0xa7, 0x17, 0xfe, 0x03, 0x4b, 0xf9, 0x63, 0x1d, + 0xf5, 0x13, 0xc2, 0x5c, 0x4b, 0x93, 0x2c, 0x03, + 0xb0, 0xf9, 0x2b, 0x59, 0x3e, 0x1f, 0xce, 0xcd, + 0x1b, 0x59, 0x2a, 0x82, 0xac, 0x90, 0x26, 0x32, + 0x78, 0x9b, 0xd5, 0xa9, 0x03, 0x6e, 0xa8, 0x1a, + 0xca, 0xc9, 0xb5, 0x55, 0xf5, 0x94, 0xd1, 0xeb, + 0xf5, 0x01, 0xe0, 0x03, 0xb3, 0x27, 0x86, 0xb1, + 0x78, 0xc1, 0x6e, 0x7f, 0x1f, 0x51, 0x99, 0xc3, + 0xe2, 0x9e, 0x23, 0x5d, 0x02, 0xa3, 0x73, 0x21, + 0x1c, 0x45, 0x8c, 0xf0, 0x43, 0x6b, 0x61, 0xd1, + 0x76, 0x42, 0xda, 0xe9, 0x63, 0xaa, 0x42, 0xd8, + 0x2b, 0xb7, 0x35, 0xe2, 0xe5, 0xa5, 0xcb, 0x3a, + 0x08, 0x99, 0xea, 0x95, 0x7c, 0x7e, 0x37, 0x89, + 0x67, 0x88, 0x8b, 0x29, 0xc6, 0x1c, 0x2d, 0x92, + 0xc9, 0x64, 0xd5, 0x88, 0xca, 0xe3, 0xa9, 0xe2, + 0xf0, 0x5c, 0x3d, 0x91, 0x2b, 0x7e, 0x3d, 0x7b, + 0x89, 0x0b, 0x76, 0x6f, 0x3d, 0x8d, 0x96, 0xb1, + 0x75, 0xab, 0xd8, 0x58, 0x29, 0x10, 0x2a, 0x61, + 0xb4, 0xb9, 0x67, 0xd9, 0x00, 0xef, 0xe5, 0xa3, + 0x1f, 0x89, 0xe2, 0x9c, 0x77, 0x15, 0xe3, 0xe8, + 0xe5, 0xca, 0x8d, 0xfb, 0x29, 0x51, 0x65, 0x2d, + 0x75, 0xe9, 0x3d, 0xd5, 0x2b, 0xd7, 0x3b, 0xf0, + 0xa6, 0x88, 0xc6, 0xf1, 0x15, 0xba, 0x81, 0x25, + 0x1d, 0x40, 0x0f, 0x1a, 0x47, 0x86, 0xef, 0x58, + 0xe3, 0xec, 0xc7, 0x0d, 0xb7, 0x87, 0xb1, 0x55, + 0xf1, 0x39, 0x3c, 0x36, 0x2f, 0x19, 0x7c, 0xee, + 0xe5, 0x0b, 0x0b, 0xcf, 0x14, 0xb2, 0x1c, 0x39, + 0x91, 0xe8, 0xb2, 0x95, 0x46, 0x64, 0xd3, 0xd1, + 0x5e, 0xf9, 0x69, 0xaa, 0x74, 0x2c, 0x2c, 0x9c, + 0x6a, 0x68, 0x72, 0xc4, 0xce, 0x37, 0x23, 0x61, + 0xb9, 0x5f, 0xaf, 0xfb, 0xd7, 0xc7, 0x8e, 0x6d, + 0x35, 0x17, 0x1b, 0x6f, 0x03, 0x89, 0x2e, 0xa0, + 0x62, 0x7a, 0x6f, 0x3a, 0xa9, 0x8b, 0xf9, 0x3a, + 0xd7, 0x5f, 0xe1, 0xdb, 0xb6, 0x68, 0xa5, 0xc0, + 0xc2, 0x40, 0xa1, 0x4b, 0x26, 0x40, 0x6f, 0x65, + 0x35, 0xad, 0x05, 0xea, 0xea, 0x7b, 0x56, 0x8b, + 0xaa, 0x5b, 0xd2, 0xbb, 0x4a, 0x03, 0x98, 0x5d, + 0x80, 0x55, 0x95, 0xaa, 0xc2, 0x85, 0xa3, 0xb1, + 0xc2, 0xdc, 0xb0, 0x60, 0x6f, 0xca, 0x43, 0x13, + 0x1f, 0x51, 0x7c, 0x3b, 0x36, 0x28, 0xc6, 0x1e, + 0x04, 0x52, 0x4a, 0xf0, 0x1e, 0x0f, 0xb5, 0x74, + 0x7b, 0x44, 0x58, 0x9f, 0xec, 0x9f, 0x83, 0x7c, + 0x2b, 0xcd, 0xd4, 0xf1, 0xb9, 0xfb, 0x67, 0x57, + 0x6f, 0x13, 0x9b, 0x93, 0xc5, 0xd7, 0xb2, 0x05, + 0xf6, 0x5c, 0xed, 0x0b, 0xf0, 0x80, 0xf1, 0x3f, + 0x05, 0x1f, 0x62, 0xbb, 0x2b, 0xb5, 0xc4, 0x35, + 0xf1, 0x17, 0xb1, 0x55, 0xa0, 0x96, 0xca, 0xc2, + 0xca, 0xa1, 0xcd, 0x79, 0x56, 0x88, 0xed, 0x85, + 0x78, 0xe6, 0xc7, 0xab, 0x62, 0x83, 0x85, 0xef, + 0xc2, 0xf4, 0xf1, 0x94, 0x30, 0x1c, 0x44, 0x71, + 0xc2, 0x45, 0x84, 0xe2, 0x0a, 0x5c, 0x41, 0x8c, + 0xc8, 0x59, 0xae, 0x86, 0x0f, 0x11, 0x5b, 0xcb, + 0x2d, 0x31, 0xb3, 0xf1, 0xe0, 0xee, 0x7e, 0x6a, + 0xcf, 0x33, 0x5b, 0x2c, 0xa6, 0x48, 0x02, 0x27, + 0x66, 0x07, 0x77, 0xb1, 0x75, 0xd2, 0xad, 0xc3, + 0xf8, 0xba, 0x58, 0x2c, 0x7d, 0x26, 0x66, 0xed, + 0xe2, 0xb0, 0xb9, 0x4a, 0xec, 0xc5, 0x5a, 0x89, + 0xc9, 0x0b, 0x70, 0xca, 0x89, 0xed, 0x0d, 0x76, + 0x2a, 0xa8, 0xb5, 0x2f, 0xae, 0x9a, 0x8a, 0xb4, + 0x22, 0xfb, 0x0e, 0x38, 0xb4, 0xcd, 0xc8, 0x16, + 0xf3, 0x0e, 0xf0, 0x27, 0x30, 0x86, 0x76, 0xdb, + 0x71, 0x93, 0x99, 0x8e, 0xe9, 0xda, 0x63, 0xbb, + 0xee, 0x4c, 0x47, 0xf6, 0x8e, 0x27, 0x2f, 0xbf, + 0x9b, 0xa5, 0x1f, 0x92, 0x83, 0x27, 0xff, 0x00, + 0xc6, 0xd4, 0x6a, 0xa7, 0xe1, 0x28, 0xfd, 0x68, + 0xeb, 0x89, 0xbf, 0xd2, 0x1c, 0xdf, 0xf2, 0x9d, + 0xaf, 0xdd, 0x63, 0x2f, 0x3f, 0x9e, 0x53, 0x52, + 0xf5, 0x5b, 0x2d, 0xe9, 0xc4, 0x13, 0x3a, 0x69, + 0x68, 0x99, 0x72, 0x0c, 0x90, 0xc4, 0x96, 0xd1, + 0xdd, 0x12, 0x43, 0xbc, 0xfd, 0xd8, 0xd5, 0x4c, + 0x83, 0xfa, 0x9d, 0x04, 0x5a, 0x97, 0x1c, 0x2c, + 0x60, 0x99, 0xc9, 0xe3, 0x7b, 0x91, 0x92, 0x18, + 0x99, 0xef, 0xf2, 0x73, 0x47, 0xbf, 0xac, 0x28, + 0x18, 0x58, 0x86, 0xd4, 0xc7, 0xe4, 0xaa, 0xe4, + 0x8c, 0x40, 0x3f, 0x7c, 0x37, 0xc1, 0xb6, 0x71, + 0x58, 0x69, 0x0f, 0x6d, 0x8e, 0x71, 0xad, 0x4d, + 0x80, 0xb3, 0x22, 0xe5, 0x91, 0xe7, 0x6f, 0x2c, + 0x17, 0xdd, 0xa9, 0x96, 0x07, 0x5b, 0x2b, 0x15, + 0xb8, 0x7a, 0xb6, 0x28, 0xa8, 0xcd, 0x20, 0x11, + 0x6d, 0x85, 0x61, 0xbc, 0x18, 0xc8, 0x2b, 0x5d, + 0xae, 0x7f, 0x7a, 0xc9, 0xcc, 0x9c, 0xfb, 0x47, + 0x31, 0xaa, 0x39, 0x79, 0x20, 0xa7, 0xbb, 0x3b, + 0x8f, 0x64, 0x1c, 0xbb, 0x22, 0x78, 0x72, 0xaf, + 0xb0, 0x8c, 0xae, 0x3b, 0x05, 0x9b, 0x0d, 0x77, + 0x52, 0x64, 0xa2, 0x47, 0xc5, 0x68, 0xf4, 0xf6, + 0x13, 0xe6, 0x9d, 0xf7, 0xe5, 0xfb, 0xac, 0xab, + 0x7d, 0x0c, 0x74, 0x1e, 0x6b, 0x1b, 0x7e, 0x04, + 0x50, 0x97, 0xa8, 0x17, 0x52, 0x96, 0x55, 0x12, + 0xd9, 0x53, 0x8e, 0x16, 0xe6, 0x22, 0xc5, 0xca, + 0xef, 0x5d, 0x73, 0x1e, 0x93, 0xfa, 0x66, 0x26, + 0x61, 0xf7, 0x71, 0x2a, 0x8c, 0xc6, 0x7f, 0xb7, + 0xd0, 0x6e, 0x65, 0x93, 0x93, 0x04, 0x20, 0x20, + 0x67, 0x20, 0x9a, 0x20, 0x80, 0xec, 0xa7, 0x61, + 0xbd, 0x7a, 0x7b, 0x55, 0x34, 0xdb, 0xab, 0x26, + 0x9e, 0xa4, 0x36, 0x4f, 0x98, 0xa3, 0x75, 0x16, + 0x66, 0xaa, 0x56, 0x5d, 0xab, 0x22, 0xce, 0x1e, + 0x61, 0x58, 0x5d, 0x2a, 0xd4, 0x53, 0x72, 0xc6, + 0x35, 0x59, 0x21, 0xbd, 0x6d, 0x95, 0x6b, 0x1f, + 0x4a, 0xa9, 0x34, 0xad, 0xaa, 0x16, 0x0a, 0x02, + 0x86, 0x40, 0x13, 0x0f, 0xa6, 0x53, 0xb6, 0xae, + 0xdf, 0xad, 0xd4, 0x84, 0x58, 0x9a, 0xfc, 0x9d, + 0x51, 0x81, 0x67, 0xb5, 0xd4, 0x42, 0x4b, 0x98, + 0x44, 0x8e, 0x23, 0xc7, 0x59, 0x6d, 0xb1, 0x4f, + 0x76, 0xd3, 0xfc, 0x5f, 0xbb, 0xe1, 0x4f, 0xf2, + 0xb8, 0x87, 0xf9, 0x69, 0xff, 0x00, 0x53, 0x82, + 0xff, 0x00, 0xcc, 0x71, 0x0f, 0xed, 0xf5, 0x3f, + 0x70, 0xbb, 0xce, 0x97, 0x40, 0xae, 0xae, 0x4d, + 0x50, 0x48, 0xfb, 0x28, 0xb6, 0xd6, 0x32, 0xdd, + 0x44, 0x10, 0xf8, 0xe1, 0xb7, 0x2b, 0x9c, 0xb9, + 0x22, 0x82, 0xdc, 0x46, 0x24, 0x87, 0x79, 0x88, + 0x89, 0xed, 0x79, 0x2b, 0x16, 0xed, 0x47, 0x82, + 0xf3, 0x34, 0x84, 0x8d, 0x87, 0x65, 0x82, 0x77, + 0xf1, 0x37, 0x69, 0x26, 0x23, 0xac, 0xce, 0xe5, + 0xf5, 0xec, 0x04, 0xb3, 0x62, 0xee, 0x1e, 0x62, + 0x81, 0x29, 0x8e, 0x59, 0xc4, 0xad, 0x99, 0x0c, + 0xcd, 0x06, 0xe2, 0x71, 0xd6, 0x28, 0x4d, 0x6c, + 0x67, 0x48, 0x06, 0xe4, 0xc3, 0x6c, 0xbe, 0x93, + 0xd7, 0x71, 0x8c, 0x2e, 0xc6, 0x5b, 0xd9, 0xe9, + 0xdc, 0xde, 0xb3, 0xf7, 0x04, 0xee, 0xad, 0xa5, + 0x91, 0x0b, 0xa9, 0x99, 0xb8, 0xbb, 0x8e, 0xbe, + 0xaa, 0x98, 0x5a, 0xdd, 0x92, 0x03, 0x91, 0x15, + 0xad, 0xe3, 0x06, 0x9d, 0x53, 0xc9, 0xae, 0xc0, + 0x5a, 0x19, 0x74, 0x76, 0x3a, 0x7c, 0xc9, 0xa4, + 0x68, 0x10, 0x9b, 0x16, 0x24, 0x5a, 0x52, 0x0a, + 0x83, 0x3b, 0x75, 0x8d, 0xf7, 0xee, 0x55, 0x7a, + 0x2f, 0xf4, 0xf1, 0x17, 0xe9, 0xd2, 0xb0, 0xaa, + 0xd9, 0x0b, 0x16, 0x9a, 0xea, 0xf7, 0xb1, 0xd9, + 0x09, 0x98, 0xb1, 0x8d, 0x4a, 0xa5, 0xb1, 0x6c, + 0xeb, 0x20, 0x24, 0xce, 0xc2, 0xe5, 0x6c, 0x6b, + 0x84, 0xc5, 0x8b, 0xaf, 0x76, 0xc1, 0x5f, 0x50, + 0x63, 0x33, 0x57, 0xef, 0xd5, 0x52, 0xeb, 0x28, + 0x8a, 0xed, 0x4b, 0x56, 0x97, 0x78, 0x12, 0xc3, + 0xed, 0x23, 0xd9, 0x6c, 0x43, 0xc0, 0xc0, 0x99, + 0xed, 0xe1, 0x0a, 0x60, 0xcc, 0x44, 0xca, 0xf6, + 0x3c, 0x05, 0xb6, 0x83, 0xe3, 0xc1, 0xf8, 0xfc, + 0xda, 0x2e, 0x40, 0x2c, 0x3e, 0xcf, 0x92, 0xb3, + 0x99, 0x7a, 0xba, 0x1e, 0xd9, 0x1c, 0xeb, 0x88, + 0xc8, 0x27, 0x9e, 0x4b, 0xa7, 0x23, 0xb1, 0xec, + 0x25, 0xcb, 0x1c, 0xd7, 0xf1, 0x77, 0xba, 0xb1, + 0x4f, 0x21, 0xd9, 0x5b, 0x0f, 0x40, 0x8b, 0x1d, + 0x52, 0xed, 0x22, 0x67, 0x67, 0x7c, 0x28, 0x8d, + 0x62, 0xe4, 0x92, 0xac, 0x59, 0x45, 0x84, 0xf3, + 0x81, 0x4c, 0x34, 0x1a, 0xb3, 0x82, 0x4f, 0x29, + 0xd2, 0xa7, 0x4e, 0xee, 0x5a, 0xba, 0xeb, 0x95, + 0xeb, 0x87, 0x96, 0xaa, 0xb4, 0xa6, 0xcf, 0x84, + 0x6d, 0x56, 0x0a, 0xca, 0xfd, 0xe6, 0x4c, 0x64, + 0x33, 0x1e, 0x94, 0x84, 0xa5, 0xe8, 0x2b, 0x2b, + 0x65, 0xa8, 0x7b, 0x67, 0x9c, 0x06, 0x05, 0x65, + 0x6a, 0x8b, 0xe5, 0xb5, 0xa2, 0xcf, 0x81, 0xed, + 0x3b, 0x2b, 0x53, 0x19, 0x55, 0x13, 0x6f, 0x27, + 0x8f, 0x1b, 0xa9, 0xb0, 0xe6, 0xe2, 0xeb, 0xbe, + 0xba, 0x14, 0x2f, 0xad, 0x7f, 0xa6, 0x12, 0xb6, + 0x7d, 0x92, 0xa2, 0xd8, 0xc5, 0xfb, 0x71, 0x74, + 0xc5, 0x55, 0xea, 0x5c, 0xab, 0x59, 0x44, 0x30, + 0x8a, 0xe3, 0x11, 0x63, 0xa6, 0xa0, 0xe2, 0x2c, + 0x56, 0x4e, 0x37, 0x6b, 0x6c, 0xf3, 0x99, 0x9d, + 0x5a, 0x4e, 0x33, 0xde, 0x76, 0x8b, 0x07, 0x0a, + 0x0f, 0x6a, 0xd8, 0xc6, 0xb9, 0x75, 0xb2, 0x55, + 0x54, 0x14, 0xb2, 0x88, 0xb7, 0x42, 0xa5, 0x4a, + 0xfb, 0x5d, 0xbb, 0x76, 0x6e, 0x8a, 0xef, 0x3e, + 0xdf, 0x69, 0x59, 0x30, 0x7a, 0x76, 0x13, 0x26, + 0x96, 0x2c, 0xe4, 0x3b, 0x38, 0x24, 0x26, 0x57, + 0xe3, 0x6a, 0xaa, 0xec, 0xbb, 0x21, 0x58, 0x6b, + 0x32, 0x95, 0xaf, 0x6a, 0xa4, 0x96, 0x49, 0x4f, + 0x82, 0x71, 0x78, 0xec, 0x85, 0x4d, 0xfb, 0x62, + 0xe7, 0x9a, 0x19, 0x8a, 0x5b, 0x2a, 0x5a, 0xf7, + 0x32, 0x0f, 0x28, 0x62, 0x40, 0x97, 0x1c, 0xca, + 0x70, 0xac, 0xd4, 0xd9, 0xc8, 0x66, 0x6e, 0x35, + 0x65, 0x03, 0xc8, 0x01, 0x90, 0xb6, 0x2f, 0x42, + 0xc4, 0xe2, 0x7d, 0xb0, 0x81, 0x71, 0xca, 0xc2, + 0xe4, 0x0f, 0x1b, 0xbe, 0x37, 0xdf, 0xf7, 0x3c, + 0x3d, 0xfe, 0x8c, 0x70, 0xff, 0x00, 0xf2, 0x65, + 0x7d, 0x3f, 0xf0, 0x33, 0xfd, 0x7d, 0x6d, 0x61, + 0x3f, 0x1d, 0x2b, 0xf6, 0x2b, 0xda, 0x0f, 0x7a, + 0x34, 0x7e, 0xf4, 0xe8, 0xff, 0x00, 0x18, 0xe4, + 0xff, 0x00, 0x6e, 0x77, 0xd4, 0xe2, 0xff, 0x00, + 0xc0, 0x69, 0x7f, 0x2c, 0x63, 0xbe, 0xa0, 0x9c, + 0x89, 0x40, 0x14, 0xcc, 0x09, 0xcc, 0x4f, 0x29, + 0x48, 0xed, 0xcd, 0x02, 0x5e, 0x49, 0x91, 0xde, + 0x37, 0xdb, 0xc9, 0xbc, 0x6f, 0xa1, 0x92, 0x12, + 0x18, 0x38, 0xe6, 0x09, 0x91, 0x98, 0x83, 0x1d, + 0xf6, 0xdc, 0x66, 0x7d, 0xd4, 0x6f, 0x13, 0x1b, + 0xc7, 0xdd, 0x8d, 0xbe, 0xa4, 0x4c, 0xc4, 0xc4, + 0x17, 0x78, 0xce, 0xde, 0x58, 0xdf, 0x6e, 0xef, + 0xbf, 0xdf, 0x13, 0x1e, 0xfc, 0x7d, 0x49, 0xe5, + 0x19, 0x2d, 0xa2, 0x4a, 0x76, 0x89, 0x9d, 0x86, + 0x3c, 0xa5, 0x3b, 0x79, 0x22, 0x3e, 0xec, 0xf9, + 0x23, 0x46, 0x4b, 0x53, 0x18, 0x2a, 0x8e, 0x66, + 0x10, 0x01, 0x10, 0xae, 0x3b, 0xe7, 0x73, 0x98, + 0x89, 0x81, 0x8d, 0xa2, 0x67, 0x72, 0xdb, 0xc9, + 0x3f, 0x7b, 0x46, 0x60, 0xa6, 0x18, 0x2e, 0x37, + 0x61, 0x00, 0x11, 0x0a, 0xe3, 0xbf, 0xbc, 0xe6, + 0x23, 0x61, 0x8e, 0xe9, 0xf2, 0xed, 0xe4, 0x9d, + 0x44, 0x44, 0x4c, 0xcc, 0xce, 0xd1, 0x11, 0xdf, + 0x33, 0x33, 0xe4, 0x88, 0x8f, 0xbf, 0xa9, 0x06, + 0x01, 0x01, 0x8f, 0x71, 0x01, 0x8c, 0x89, 0x44, + 0xff, 0x00, 0x18, 0xce, 0xd3, 0x1a, 0x9e, 0x74, + 0xb4, 0x79, 0x46, 0x0c, 0xb9, 0x96, 0x71, 0xca, + 0x05, 0x3b, 0x09, 0xce, 0xf1, 0xdc, 0x25, 0x33, + 0x11, 0x05, 0x3d, 0xd3, 0x3d, 0xd1, 0xa9, 0x38, + 0x12, 0x90, 0x19, 0x88, 0x23, 0xda, 0x79, 0x46, + 0x4b, 0xdc, 0xc4, 0x97, 0x92, 0x26, 0x76, 0x9d, + 0xb7, 0xf2, 0xed, 0xfd, 0xa7, 0x89, 0xbf, 0x1e, + 0xd4, 0xfe, 0x4f, 0x9d, 0x46, 0xaa, 0x7e, 0x12, + 0x8f, 0xd6, 0x8e, 0xb3, 0xa8, 0xfa, 0xd2, 0xe0, + 0x9b, 0x1d, 0x0c, 0xd6, 0x55, 0x3d, 0xa2, 0xd6, + 0x0d, 0xcd, 0xb4, 0xfe, 0x95, 0xf7, 0x87, 0x5a, + 0xcb, 0x63, 0x20, 0x10, 0xcb, 0x0d, 0xe5, 0xea, + 0x39, 0x90, 0x03, 0x06, 0xc2, 0x22, 0xe5, 0x1d, + 0xf6, 0xd7, 0xa1, 0x9c, 0x05, 0xea, 0x07, 0xfd, + 0x27, 0xaf, 0x43, 0x38, 0x0b, 0xd4, 0x0f, 0xfa, + 0x4f, 0x5e, 0x86, 0x70, 0x17, 0xa8, 0x1f, 0xf4, + 0x9e, 0xbd, 0x0c, 0xe0, 0x2f, 0x50, 0x3f, 0xe9, + 0x3d, 0x0b, 0xe3, 0x85, 0x7d, 0x8c, 0xe9, 0x25, + 0xb6, 0xe3, 0x1f, 0x54, 0xef, 0xe1, 0xae, 0x24, + 0x6e, 0x5f, 0x90, 0x16, 0x76, 0x54, 0x12, 0xed, + 0xbe, 0x04, 0x84, 0x0d, 0x52, 0xc7, 0xda, 0x9a, + 0xd4, 0xd3, 0xd6, 0x4c, 0x36, 0xc8, 0x4b, 0x07, + 0x41, 0x6a, 0xf7, 0x0e, 0x7b, 0x18, 0xe3, 0x3a, + 0x96, 0x6f, 0x54, 0x5d, 0x7b, 0xbc, 0x3f, 0x9a, + 0x2b, 0x26, 0xec, 0x71, 0x28, 0x2d, 0x8f, 0x25, + 0x0e, 0xdc, 0xb5, 0xf2, 0x31, 0xc0, 0xb8, 0x97, + 0x35, 0x7c, 0xe7, 0xcd, 0xb7, 0x8a, 0x32, 0x5a, + 0x9b, 0x7f, 0x5a, 0x7e, 0xc6, 0xa0, 0xce, 0xc6, + 0xdc, 0x92, 0xf1, 0xec, 0xc3, 0x5b, 0x1c, 0x83, + 0xb1, 0xc9, 0x39, 0x06, 0xdd, 0x52, 0xe2, 0xe4, + 0xd6, 0xe9, 0x8f, 0x2b, 0x4a, 0x14, 0xdb, 0x4b, + 0xb6, 0xc4, 0xa5, 0x96, 0x15, 0x59, 0x95, 0xfa, + 0x6d, 0x62, 0x2d, 0x0f, 0x02, 0xf0, 0x21, 0x22, + 0xcd, 0xb3, 0xa0, 0x82, 0x1c, 0x09, 0x91, 0x36, + 0xda, 0xc1, 0x2c, 0x24, 0x0a, 0xa3, 0x2b, 0x2e, + 0xe6, 0xe4, 0xb0, 0x99, 0x89, 0xe9, 0xf2, 0x1c, + 0x9f, 0x28, 0x11, 0x14, 0x14, 0x43, 0x21, 0x9c, + 0x0f, 0xec, 0x64, 0x99, 0x55, 0xc3, 0xc7, 0x97, + 0x68, 0x1c, 0x3d, 0x6d, 0xee, 0xad, 0x69, 0x6b, + 0x2a, 0xab, 0xb4, 0x71, 0x3a, 0xba, 0xee, 0x58, + 0xd8, 0x57, 0x50, 0x51, 0xd4, 0xe4, 0x32, 0xe9, + 0x16, 0xcd, 0x13, 0x01, 0x8c, 0x70, 0x70, 0x1f, + 0x04, 0x4d, 0xe9, 0x7f, 0x66, 0xec, 0x9f, 0x5b, + 0x96, 0x21, 0xfd, 0x78, 0x2e, 0x59, 0x54, 0x84, + 0xe4, 0xa2, 0x44, 0x86, 0x62, 0x79, 0xb9, 0xb6, + 0xe5, 0xda, 0x64, 0xb6, 0x88, 0x99, 0xd5, 0x5a, + 0xc1, 0xc0, 0x9e, 0xc7, 0x4d, 0x3b, 0xa3, 0x64, + 0xaa, 0xb5, 0x14, 0xa8, 0xd8, 0xa2, 0xde, 0xc6, + 0x0c, 0x6d, 0xb8, 0xf0, 0x9a, 0x38, 0x81, 0x98, + 0xd0, 0x65, 0x55, 0xa8, 0x8e, 0xc2, 0x99, 0x6c, + 0x1a, 0x91, 0xe4, 0x96, 0x00, 0xc3, 0x55, 0xce, + 0x36, 0xdb, 0xc1, 0x5e, 0xc6, 0xec, 0xaa, 0x4d, + 0xe8, 0x76, 0x8a, 0x34, 0xe9, 0x65, 0x12, 0x2e, + 0xe4, 0xea, 0x42, 0x9a, 0xcc, 0x5e, 0x7e, 0xe0, + 0xa1, 0x84, 0x1b, 0x90, 0x0b, 0xa5, 0x72, 0xc1, + 0x82, 0x90, 0xe6, 0xe5, 0x2d, 0xb1, 0x94, 0x99, + 0xec, 0x7f, 0xc0, 0x81, 0x6b, 0x32, 0xaa, 0xae, + 0xc6, 0xa8, 0xb0, 0xb1, 0x1d, 0xa5, 0x77, 0x59, + 0x2a, 0xad, 0x3c, 0xfe, 0x19, 0xe9, 0xa2, 0x58, + 0xc8, 0xe5, 0x90, 0xb2, 0x69, 0x35, 0x79, 0x5c, + 0x2b, 0x19, 0x89, 0x9b, 0x18, 0x94, 0xfb, 0x1f, + 0xf0, 0x29, 0xe4, 0x6a, 0x76, 0xa9, 0xb3, 0x5b, + 0xc0, 0x9c, 0xb2, 0x98, 0xa5, 0xbf, 0x6a, 0x92, + 0x69, 0xe6, 0x05, 0x1b, 0x2b, 0x96, 0x7b, 0xe1, + 0xb3, 0xcf, 0x3b, 0x0a, 0xb9, 0xc8, 0x86, 0x27, + 0xd0, 0xce, 0x02, 0xfd, 0x1f, 0x7f, 0xd2, 0x7a, + 0xf4, 0x33, 0x80, 0xbd, 0x40, 0xff, 0x00, 0xa4, + 0xf5, 0xe8, 0x67, 0x01, 0x7a, 0x81, 0xff, 0x00, + 0x49, 0xeb, 0xd0, 0xce, 0x02, 0xf5, 0x03, 0xfe, + 0x93, 0xd7, 0xa1, 0x9c, 0x05, 0xea, 0x07, 0xfd, + 0x27, 0xaf, 0x43, 0x38, 0x0b, 0xd4, 0x0f, 0xfa, + 0x4f, 0x5c, 0x33, 0x6e, 0x29, 0x63, 0xf1, 0xdd, + 0x59, 0xce, 0x47, 0x63, 0xc5, 0xd7, 0x9a, 0xb4, + 0x55, 0xd3, 0xca, 0x1a, 0xb7, 0x4a, 0x09, 0xae, + 0x90, 0x96, 0x72, 0x75, 0x5b, 0xed, 0x85, 0xcc, + 0xe3, 0x33, 0xee, 0xe6, 0xda, 0x35, 0xc2, 0xed, + 0xb7, 0x89, 0xe1, 0xcc, 0x8a, 0x98, 0x19, 0xaf, + 0x6d, 0xce, 0xe3, 0x9b, 0x7c, 0x91, 0xc9, 0x76, + 0xb6, 0xc3, 0x57, 0xa5, 0x65, 0x04, 0x3d, 0x5e, + 0xa7, 0xb6, 0x8c, 0x0b, 0x24, 0xfa, 0x6b, 0x98, + 0xdb, 0x92, 0x77, 0xf4, 0x6f, 0x80, 0x3f, 0x45, + 0xb2, 0x9f, 0x3a, 0xd7, 0xa3, 0x7c, 0x01, 0xfa, + 0x2d, 0x94, 0xf9, 0xd6, 0x93, 0x5f, 0x13, 0xc1, + 0xfe, 0xc7, 0xf6, 0xdc, 0xfb, 0x0b, 0xaa, 0xa0, + 0x8c, 0x0b, 0x91, 0x32, 0xf7, 0x14, 0x0a, 0x80, + 0xa6, 0xce, 0x4d, 0x30, 0xbe, 0x72, 0x9e, 0xe3, + 0x6c, 0x82, 0xfc, 0xb3, 0x27, 0x11, 0x13, 0xb4, + 0x3d, 0xfc, 0x13, 0xec, 0x6e, 0x68, 0x96, 0xca, + 0x3a, 0xd4, 0xa9, 0x53, 0xca, 0x28, 0x1f, 0x11, + 0xcd, 0xd1, 0x73, 0x31, 0x79, 0xfb, 0x80, 0x86, + 0xc8, 0xee, 0x42, 0xb7, 0xca, 0xcc, 0xc4, 0x4a, + 0x42, 0x0a, 0x00, 0xb6, 0x91, 0x5f, 0x04, 0x70, + 0x23, 0x0a, 0x01, 0x8c, 0x98, 0x0e, 0x1d, 0xb2, + 0x73, 0x0b, 0x48, 0x13, 0x5a, 0xc9, 0x81, 0xc9, + 0x4e, 0xc0, 0xa5, 0x81, 0x31, 0x85, 0xe4, 0x00, + 0x12, 0x22, 0x98, 0x88, 0x99, 0xd1, 0x2d, 0xbc, + 0x11, 0xc0, 0x8b, 0x60, 0x14, 0x89, 0xac, 0xf8, + 0x76, 0xc8, 0x18, 0x14, 0x79, 0x44, 0x84, 0xb2, + 0x51, 0x23, 0x31, 0xf7, 0x62, 0x63, 0x78, 0xd7, + 0xa1, 0x9c, 0x03, 0xfa, 0x3e, 0xff, 0x00, 0xa4, + 0xf4, 0x0a, 0x5f, 0x05, 0x70, 0x09, 0x31, 0xa6, + 0x2b, 0x01, 0xf0, 0x03, 0xa3, 0x98, 0xce, 0x60, + 0x46, 0x37, 0x2c, 0xa4, 0x44, 0x6f, 0x33, 0x11, + 0xbc, 0xcc, 0x47, 0xdf, 0x9d, 0x35, 0xb6, 0x78, + 0x1f, 0xd8, 0xde, 0x57, 0x5d, 0xd1, 0x5a, 0xcc, + 0xd3, 0xa7, 0x47, 0x25, 0xd9, 0x5e, 0x52, 0x70, + 0x2a, 0xb6, 0x38, 0xce, 0x21, 0xb6, 0x75, 0x08, + 0xc9, 0x6c, 0x10, 0xed, 0x22, 0xae, 0x73, 0x03, + 0x01, 0xdc, 0x86, 0x63, 0x5e, 0x86, 0x70, 0x0f, + 0xe8, 0xfb, 0xfe, 0x93, 0xd5, 0xb6, 0x57, 0xe0, + 0x6e, 0x01, 0x60, 0x50, 0xab, 0x37, 0x6d, 0xcf, + 0x80, 0xc8, 0x3a, 0x35, 0x45, 0xc9, 0x44, 0xb7, + 0x66, 0x65, 0x86, 0x59, 0xed, 0xb6, 0x12, 0x1c, + 0x8a, 0x83, 0x67, 0x8f, 0xcd, 0xc9, 0xca, 0x25, + 0x23, 0xe8, 0x67, 0x00, 0xfe, 0x8f, 0xbf, 0xe9, + 0x3d, 0x22, 0x95, 0x3e, 0x07, 0xe0, 0x17, 0x5a, + 0xb4, 0xd1, 0x4a, 0x15, 0xe0, 0x23, 0x5f, 0x51, + 0x87, 0x3b, 0x08, 0xf3, 0xb7, 0x2c, 0xb5, 0x8e, + 0xf3, 0xf7, 0x4c, 0xc4, 0x7e, 0xfc, 0xe9, 0x74, + 0xeb, 0x70, 0x3f, 0x00, 0xb2, 0xcb, 0x99, 0xd2, + 0x5a, 0xbc, 0x04, 0x61, 0xcc, 0xcf, 0xf0, 0x79, + 0xd9, 0x96, 0x05, 0xc7, 0x93, 0xca, 0x47, 0x11, + 0xfc, 0x7a, 0xb1, 0x65, 0x3c, 0x0f, 0xec, 0x7d, + 0x35, 0xea, 0x32, 0xaa, 0xad, 0x39, 0x98, 0x81, + 0xae, 0xb4, 0x1d, 0xd6, 0x12, 0xab, 0x75, 0x0a, + 0xc6, 0x69, 0x51, 0x02, 0xc6, 0x01, 0x41, 0x37, + 0xec, 0x49, 0x88, 0xe7, 0x79, 0xac, 0x3c, 0x6d, + 0x55, 0x65, 0x8e, 0x07, 0xe0, 0x00, 0x0b, 0xa9, + 0x2b, 0x15, 0x4a, 0x30, 0x92, 0xc8, 0x72, 0x45, + 0xed, 0xad, 0x2c, 0x8e, 0x96, 0x5c, 0xf6, 0x8e, + 0xb2, 0x1a, 0x1e, 0x3f, 0x2c, 0xcf, 0x2f, 0x38, + 0xc4, 0x81, 0x09, 0x17, 0xa1, 0x9c, 0x03, 0xfa, + 0x3e, 0xff, 0x00, 0xa4, 0xf5, 0xe8, 0x67, 0x00, + 0xfe, 0x8f, 0xbf, 0xe9, 0x3d, 0x7a, 0x19, 0xc0, + 0x3f, 0xa3, 0xef, 0xfa, 0x4f, 0x40, 0x65, 0xc1, + 0x1c, 0x08, 0x20, 0xc8, 0x99, 0x59, 0x4f, 0x0e, + 0xd9, 0x81, 0x64, 0x09, 0x48, 0x94, 0x84, 0xce, + 0x4b, 0x62, 0x81, 0x28, 0x91, 0x9d, 0xb7, 0xd8, + 0xa2, 0x63, 0xcb, 0xaf, 0x43, 0x38, 0x07, 0xf4, + 0x7d, 0xff, 0x00, 0x49, 0xeb, 0x0d, 0x63, 0xa2, + 0x8a, 0xdd, 0x7e, 0x1f, 0xc2, 0xbb, 0xb3, 0xd5, + 0x5c, 0xaa, 0xaa, 0x3a, 0x94, 0x12, 0x7d, 0x1a, + 0xca, 0x92, 0x39, 0x5a, 0x15, 0xbf, 0x22, 0x57, + 0x26, 0x5c, 0x8b, 0x81, 0x1e, 0x69, 0xdb, 0x7d, + 0x3f, 0xf0, 0x33, 0xfd, 0x7d, 0x6d, 0x61, 0x3f, + 0x1d, 0x2b, 0xf6, 0x2b, 0xda, 0x0f, 0x7a, 0x34, + 0x7e, 0xf4, 0xe8, 0xff, 0x00, 0x18, 0xe4, 0xff, + 0x00, 0x6e, 0x77, 0xd4, 0xe2, 0xff, 0x00, 0xc0, + 0x69, 0xff, 0x00, 0x2c, 0x63, 0xbe, 0xa7, 0x00, + 0x7e, 0x3b, 0xe3, 0x6f, 0xfc, 0x58, 0x1d, 0x70, + 0x15, 0x7c, 0xe5, 0xcb, 0x94, 0xa8, 0x63, 0xbd, + 0x8c, 0x33, 0xf9, 0x97, 0x3e, 0x84, 0x25, 0x96, + 0x57, 0xe0, 0xec, 0xde, 0x5d, 0xc3, 0xb2, 0x1c, + 0x32, 0x2f, 0xe7, 0x88, 0x31, 0x14, 0x73, 0xd7, + 0x96, 0xb3, 0x94, 0x7b, 0x42, 0x63, 0x72, 0xd7, + 0x0f, 0xf1, 0x27, 0x0d, 0x33, 0x25, 0xe0, 0x7c, + 0xec, 0xe4, 0xaa, 0x1d, 0x3c, 0xc3, 0x2a, 0xbf, + 0x21, 0x8f, 0xc9, 0x62, 0x58, 0x81, 0xb2, 0x96, + 0x58, 0xa6, 0x9a, 0xa8, 0xb0, 0x87, 0xa6, 0xd5, + 0x7b, 0x15, 0xd8, 0x15, 0x95, 0x22, 0x24, 0x40, + 0xc8, 0xe6, 0x88, 0x99, 0xe0, 0x77, 0x58, 0xf0, + 0xe6, 0x3e, 0x86, 0x0f, 0xd8, 0xf9, 0x99, 0xdc, + 0xbb, 0x54, 0xec, 0x7b, 0xdb, 0x63, 0x1e, 0xbc, + 0xee, 0x42, 0xb7, 0x61, 0xa6, 0xbe, 0xc6, 0x91, + 0x0c, 0xa5, 0xfc, 0xd5, 0x92, 0x15, 0x5d, 0x79, + 0x1d, 0x64, 0x54, 0x6a, 0xfa, 0xb5, 0x9c, 0xc5, + 0x19, 0xb3, 0x01, 0xc4, 0x9c, 0x36, 0xec, 0x84, + 0xe1, 0x73, 0xdd, 0xbe, 0xb7, 0x63, 0xcb, 0x9d, + 0x66, 0xe4, 0xb1, 0xb9, 0x2c, 0x49, 0xa0, 0x2e, + 0x57, 0x75, 0x8a, 0x8a, 0xaf, 0x5e, 0xd2, 0x5c, + 0x16, 0x51, 0x66, 0xab, 0x82, 0xb2, 0x66, 0x16, + 0xce, 0x9b, 0x42, 0x0c, 0x39, 0x8f, 0x8e, 0x71, + 0x8a, 0xc3, 0xef, 0x9a, 0x7f, 0x06, 0xf1, 0x25, + 0x9b, 0x59, 0xd7, 0xd8, 0x93, 0x25, 0xd2, 0x48, + 0xd2, 0x1a, 0xf8, 0xfa, 0x15, 0x60, 0x04, 0x10, + 0x26, 0x46, 0xc6, 0xdc, 0x79, 0x91, 0xb5, 0xd3, + 0xd3, 0x08, 0x98, 0x50, 0xf2, 0xc7, 0x0f, 0xe1, + 0x30, 0xa6, 0xbc, 0x1e, 0x0b, 0x05, 0x66, 0xde, + 0x6f, 0x8d, 0xb2, 0x32, 0x63, 0xd8, 0x72, 0x78, + 0xa3, 0xb0, 0x3d, 0xb1, 0xd9, 0xe1, 0x34, 0xf2, + 0x39, 0x4a, 0xc6, 0x7f, 0x62, 0xa8, 0xd1, 0x61, + 0x38, 0x5c, 0xf3, 0x5c, 0xa6, 0x16, 0xf3, 0xea, + 0x2f, 0xd8, 0xcf, 0x1d, 0xc3, 0x7f, 0xbc, 0x70, + 0x7c, 0x57, 0x93, 0xbf, 0x95, 0xcc, 0xd1, 0x15, + 0x2f, 0xa5, 0x99, 0xa5, 0x9b, 0xe2, 0xab, 0xd8, + 0x50, 0xc7, 0x64, 0xd4, 0x50, 0x63, 0x65, 0x35, + 0x70, 0x88, 0x1a, 0x68, 0x5b, 0x39, 0xa2, 0xb9, + 0x1c, 0xb9, 0x3c, 0x8f, 0x15, 0xb0, 0x6b, 0xd1, + 0x46, 0xf0, 0x9a, 0x7c, 0x60, 0x9a, 0xa9, 0xdf, + 0xcb, 0x0a, 0x46, 0x68, 0x54, 0xbe, 0xff, 0x00, + 0xbf, 0x02, 0x31, 0xdf, 0xac, 0x36, 0x64, 0xe6, + 0x13, 0x89, 0xcc, 0xc6, 0x46, 0xd7, 0x11, 0x3a, + 0x04, 0x84, 0x2a, 0xfd, 0x62, 0xbe, 0xd5, 0x1e, + 0x23, 0x29, 0xfe, 0x08, 0x73, 0xd0, 0xc5, 0x21, + 0xab, 0x2d, 0xf6, 0x26, 0xdd, 0x5e, 0xf1, 0xcc, + 0x71, 0x27, 0xc4, 0xb7, 0x72, 0x79, 0x15, 0x60, + 0xa9, 0xe6, 0x3d, 0x89, 0x78, 0x3a, 0xe3, 0xef, + 0xb2, 0xa5, 0xab, 0x89, 0xa4, 0x0f, 0xe2, 0x0a, + 0x36, 0x17, 0x13, 0x52, 0x88, 0x36, 0xcb, 0x22, + 0x4b, 0xa6, 0x88, 0x84, 0xac, 0xb9, 0x24, 0xfa, + 0x85, 0xe2, 0x09, 0x4e, 0xb8, 0xa3, 0xc1, 0xdc, + 0x52, 0x1c, 0x53, 0x51, 0xbc, 0x45, 0xc1, 0xf3, + 0x91, 0x1c, 0x7e, 0x33, 0x29, 0x87, 0x75, 0x64, + 0xac, 0xf2, 0xbb, 0x88, 0x33, 0x33, 0x50, 0x16, + 0x6e, 0x7a, 0xc9, 0x90, 0x92, 0x05, 0x38, 0x52, + 0x41, 0xbb, 0x86, 0x60, 0x84, 0x4b, 0x1f, 0x9a, + 0xc7, 0xd6, 0xe2, 0xac, 0x76, 0x5f, 0x37, 0x6a, + 0x67, 0x0d, 0x43, 0x33, 0x95, 0xc4, 0x5c, 0x87, + 0xe1, 0xeb, 0xcc, 0x85, 0x9c, 0xbb, 0x91, 0x4b, + 0x11, 0x49, 0xe9, 0xac, 0xd7, 0xc1, 0x54, 0xa1, + 0xcc, 0xd1, 0x9b, 0x2c, 0x5b, 0x9e, 0x23, 0x35, + 0xd6, 0x24, 0xdf, 0xdd, 0xf1, 0x2f, 0xe3, 0xda, + 0x9f, 0xc9, 0xf3, 0xa8, 0xd5, 0x4f, 0xc2, 0x51, + 0xfa, 0xd1, 0xd7, 0x12, 0xff, 0x00, 0xa4, 0x19, + 0xaf, 0xe5, 0x3b, 0x3f, 0xb9, 0x2c, 0xee, 0x54, + 0x8b, 0xc0, 0xb8, 0x6b, 0x2b, 0x64, 0x57, 0xe7, + 0xdb, 0xc2, 0x79, 0x49, 0xe5, 0x62, 0x31, 0x95, + 0xe2, 0x67, 0x68, 0x97, 0x42, 0x81, 0x97, 0xdc, + 0x31, 0x3d, 0x0a, 0x61, 0xb9, 0x78, 0xc6, 0x88, + 0x2e, 0x1e, 0xc7, 0x65, 0xb1, 0x18, 0xf9, 0xc7, + 0xe5, 0xd9, 0x9a, 0xb0, 0xcb, 0xbd, 0x3a, 0xef, + 0xb0, 0xc5, 0x5e, 0xbf, 0x6d, 0xf7, 0x2e, 0xd6, + 0xb3, 0x1c, 0xcf, 0xc4, 0x96, 0x29, 0xc0, 0x45, + 0x20, 0x0c, 0x49, 0x30, 0x2b, 0x8c, 0xde, 0x07, + 0xd6, 0x25, 0x86, 0x95, 0x56, 0x68, 0x6d, 0xb7, + 0x07, 0x2b, 0x26, 0xac, 0xd4, 0xbe, 0xd4, 0x36, + 0x1d, 0x8e, 0xc3, 0x41, 0xae, 0x05, 0x3d, 0x68, + 0xc7, 0xc6, 0x3e, 0x5b, 0x5b, 0xb1, 0x34, 0x0e, + 0xac, 0xdc, 0xed, 0x66, 0xc2, 0x8b, 0xa3, 0x3c, + 0x88, 0x8a, 0x41, 0x64, 0xd9, 0x5a, 0xfd, 0xdc, + 0xfe, 0x66, 0x86, 0x27, 0x27, 0x1c, 0x9d, 0x2c, + 0x45, 0xdb, 0x78, 0x7c, 0x5a, 0x97, 0x7d, 0x82, + 0x5d, 0xfc, 0xc2, 0xd9, 0x52, 0x45, 0xa3, 0xca, + 0x55, 0x81, 0xcd, 0xb4, 0x05, 0x0c, 0x50, 0x4e, + 0xab, 0x56, 0xcd, 0x50, 0xb6, 0xfb, 0x15, 0xf8, + 0xb7, 0x2e, 0x96, 0x25, 0x57, 0x86, 0x94, 0x83, + 0x95, 0x4b, 0x11, 0x0e, 0x16, 0xf5, 0x28, 0xdb, + 0x37, 0x41, 0xcc, 0x77, 0x72, 0x4a, 0x0b, 0x6e, + 0xf8, 0x3f, 0x1a, 0x26, 0x2e, 0xba, 0x82, 0x93, + 0x90, 0xc8, 0x26, 0xde, 0x46, 0xcf, 0x67, 0x30, + 0x10, 0x4d, 0x84, 0x76, 0x67, 0xb2, 0xed, 0x72, + 0x41, 0xbe, 0x0b, 0xed, 0x12, 0x7a, 0x8d, 0x0b, + 0x71, 0x58, 0xee, 0x91, 0x4c, 0x9b, 0xb9, 0x77, + 0xc7, 0xe4, 0x71, 0x5d, 0xbf, 0x1f, 0x8d, 0x97, + 0x71, 0x02, 0x2d, 0x61, 0x2c, 0x59, 0xed, 0x69, + 0xaf, 0x70, 0xb8, 0x66, 0xf3, 0x0e, 0xc6, 0x31, + 0xc5, 0xd3, 0x27, 0x07, 0x66, 0x81, 0x41, 0x0d, + 0x90, 0x9b, 0x0a, 0xe9, 0xa7, 0xab, 0x61, 0x82, + 0xd1, 0x80, 0xc5, 0xd7, 0xc3, 0x9b, 0xec, 0xd4, + 0xcc, 0xf1, 0x05, 0x4a, 0xb9, 0x53, 0xb2, 0x20, + 0x16, 0x31, 0xb6, 0x2b, 0x03, 0x7b, 0x3a, 0xe5, + 0x4a, 0x22, 0x5c, 0xd7, 0x6d, 0x4b, 0x36, 0x6e, + 0x76, 0xbe, 0xaf, 0x2c, 0xc2, 0x49, 0x3c, 0x8b, + 0x24, 0xb6, 0x4b, 0x13, 0x7a, 0x93, 0xdb, 0x66, + 0x31, 0x3c, 0x6b, 0x54, 0x06, 0x5b, 0x58, 0x6b, + 0x95, 0x6c, 0x6e, 0x55, 0xea, 0xec, 0x88, 0x0e, + 0x4b, 0x36, 0x3a, 0xa9, 0x43, 0xa8, 0x14, 0x0b, + 0x67, 0xa7, 0xb1, 0x58, 0x11, 0xe5, 0xf1, 0xe3, + 0x48, 0xcd, 0x07, 0x97, 0x8a, 0x50, 0xa5, 0xcf, + 0x2c, 0xf7, 0x75, 0x6a, 0x52, 0xc8, 0x78, 0x68, + 0x3d, 0x65, 0x8c, 0xae, 0xc2, 0xff, 0x00, 0x38, + 0x3f, 0xc1, 0x2e, 0xf8, 0xfd, 0xd7, 0x0a, 0x7f, + 0x95, 0xc4, 0x1f, 0xcb, 0x2f, 0xfa, 0x9c, 0x1b, + 0xfe, 0x7f, 0x33, 0xfb, 0x4a, 0x35, 0x8c, 0x5d, + 0x40, 0xc0, 0x9e, 0x46, 0x92, 0xf0, 0xcf, 0x78, + 0xdd, 0xc1, 0x70, 0xb3, 0xe3, 0xf7, 0xcb, 0x6d, + 0x27, 0x20, 0xce, 0xd9, 0x6a, 0xab, 0xae, 0xe5, + 0x5e, 0x10, 0xe4, 0x85, 0x8c, 0x76, 0x46, 0x2c, + 0xae, 0xb0, 0x33, 0xb6, 0xa1, 0x41, 0xd8, 0x01, + 0xa8, 0xc8, 0xd8, 0xa4, 0x3c, 0x1c, 0x2b, 0x3b, + 0x39, 0x01, 0xca, 0x73, 0x56, 0xc3, 0x51, 0xca, + 0x8d, 0x94, 0xdd, 0x00, 0xc3, 0xf8, 0x06, 0xa5, + 0x15, 0x57, 0xba, 0x35, 0x0f, 0x1c, 0xba, 0xe3, + 0x05, 0x87, 0x47, 0x83, 0x9b, 0x61, 0x99, 0x17, + 0xe7, 0xe6, 0x79, 0x92, 0xe8, 0xa3, 0xf8, 0xf7, + 0x0b, 0xfb, 0x41, 0x69, 0x94, 0xf1, 0xf4, 0x88, + 0x17, 0x3c, 0x55, 0x8a, 0x8b, 0x75, 0xef, 0xdf, + 0xed, 0x03, 0x7f, 0xa8, 0x39, 0x08, 0x15, 0xc5, + 0xaa, 0xb4, 0xa9, 0x95, 0x55, 0x25, 0x61, 0x60, + 0x9a, 0x0b, 0xad, 0x62, 0xc1, 0x83, 0x64, 0xc1, + 0xbc, 0xca, 0x00, 0x2b, 0x19, 0x5a, 0x68, 0xa4, + 0x67, 0x35, 0x78, 0xba, 0x9c, 0x5b, 0x8e, 0x1c, + 0xc5, 0x63, 0xab, 0xb1, 0x55, 0xf0, 0xeb, 0xb2, + 0x15, 0xc6, 0xa0, 0x2d, 0xc9, 0xb0, 0x09, 0x67, + 0x95, 0xd6, 0x42, 0x6c, 0x38, 0x4d, 0xb5, 0xec, + 0x49, 0xab, 0x99, 0x7a, 0x2b, 0x36, 0xaa, 0xa6, + 0xd3, 0xb2, 0x9c, 0x4f, 0x99, 0xa3, 0x69, 0x35, + 0xf8, 0x76, 0x8d, 0xf7, 0x59, 0x45, 0x47, 0xa1, + 0x2a, 0xc7, 0xd6, 0x95, 0xbe, 0x9b, 0x29, 0x5d, + 0x6a, 0xde, 0x56, 0x3b, 0x65, 0x40, 0x1c, 0x9d, + 0x96, 0xb5, 0x4d, 0x65, 0xa2, 0x85, 0x04, 0x4f, + 0x0f, 0x61, 0xa3, 0x11, 0x8f, 0xe5, 0xce, 0x63, + 0x73, 0x2a, 0xf0, 0x85, 0x8a, 0x41, 0xe1, 0x71, + 0xbc, 0xdc, 0x9e, 0x72, 0x86, 0x20, 0xe5, 0xf3, + 0xcf, 0xd2, 0x62, 0x1a, 0xaa, 0xa0, 0x7c, 0xbe, + 0x34, 0xf7, 0x41, 0xb3, 0x95, 0x2b, 0xd9, 0x28, + 0xaf, 0x6f, 0x1d, 0x52, 0x71, 0x0f, 0xc5, 0x63, + 0x4a, 0x97, 0x4a, 0xff, 0x00, 0x6c, 0xbd, 0x6e, + 0xa4, 0x56, 0x1b, 0xf6, 0xba, 0x95, 0xb1, 0xed, + 0xa0, 0x66, 0xeb, 0xc5, 0x67, 0xc7, 0xb3, 0x7d, + 0x2c, 0xe9, 0xac, 0x46, 0x62, 0x20, 0x57, 0xcd, + 0xc6, 0x54, 0x71, 0xd5, 0x1c, 0x97, 0x96, 0x52, + 0x91, 0x5b, 0x9b, 0x57, 0xc5, 0xeb, 0xbe, 0x3f, + 0x5c, 0x41, 0x58, 0x29, 0x24, 0xd5, 0x4a, 0xa7, + 0x83, 0xba, 0xb6, 0x6c, 0x85, 0x8e, 0x69, 0x8b, + 0xac, 0x21, 0x47, 0x4c, 0x48, 0x79, 0x4a, 0x59, + 0xdf, 0x52, 0xab, 0x02, 0x9f, 0x16, 0x57, 0xc7, + 0x47, 0x64, 0xc4, 0x27, 0x12, 0x8e, 0x89, 0x54, + 0xca, 0x34, 0xb1, 0x5d, 0xa2, 0xbc, 0x85, 0xdc, + 0x90, 0x31, 0xd4, 0xea, 0x2a, 0x2d, 0x64, 0xb6, + 0xbd, 0x1c, 0xf0, 0x53, 0x2b, 0x6b, 0xdb, 0x13, + 0x94, 0x7e, 0x62, 0x95, 0x5c, 0x4e, 0x3e, 0xce, + 0x12, 0xfd, 0x5b, 0x17, 0xf1, 0xc9, 0xad, 0x4c, + 0x6c, 0x29, 0x59, 0xcc, 0x01, 0x12, 0xbb, 0x05, + 0x40, 0x58, 0x26, 0x6b, 0x75, 0xa1, 0x13, 0x7b, + 0xa5, 0xcc, 0xc0, 0x67, 0xb6, 0x1b, 0x99, 0x58, + 0xa7, 0x57, 0xed, 0xde, 0xc7, 0x51, 0xab, 0x78, + 0xb8, 0x95, 0x98, 0x86, 0x53, 0x4e, 0x02, 0xae, + 0x52, 0xa5, 0x7a, 0xf5, 0x92, 0xa2, 0x56, 0x3e, + 0xb5, 0x56, 0x58, 0xae, 0x15, 0xca, 0xf4, 0x14, + 0xc8, 0xe4, 0x16, 0x25, 0x91, 0xb5, 0x0a, 0xea, + 0x26, 0xda, 0xcc, 0x9c, 0x6e, 0xe1, 0xc0, 0xc5, + 0xe2, 0xc6, 0x57, 0x90, 0xe2, 0x1c, 0xa0, 0x3a, + 0x32, 0x74, 0x45, 0x99, 0x4a, 0x83, 0x56, 0xf7, + 0x67, 0xaf, 0x47, 0xa8, 0xce, 0xab, 0xf1, 0xf6, + 0x31, 0xa8, 0xe5, 0xb2, 0xce, 0xcc, 0xe5, 0xb0, + 0xd8, 0xcd, 0xee, 0x93, 0x93, 0xed, 0x5a, 0xc5, + 0xef, 0xdf, 0x1e, 0x12, 0x8d, 0xe2, 0x27, 0x69, + 0x98, 0xe6, 0x2d, 0xf6, 0x9d, 0xa7, 0x6f, 0x7f, + 0x69, 0xdb, 0xef, 0x4e, 0xb2, 0x88, 0x46, 0x3e, + 0xc2, 0xd4, 0xcc, 0xef, 0x07, 0x2e, 0xd2, 0xef, + 0x5f, 0x46, 0x45, 0x4f, 0x53, 0x32, 0xcf, 0x1e, + 0x9f, 0x4c, 0x31, 0x94, 0x20, 0x47, 0x6e, 0x68, + 0x38, 0x39, 0x74, 0x1c, 0x16, 0xdb, 0x0e, 0xd3, + 0xcd, 0xc3, 0x78, 0x9b, 0x18, 0xea, 0x45, 0x4a, + 0xc6, 0x0b, 0x3a, 0x47, 0x68, 0xea, 0xac, 0xac, + 0xab, 0xa1, 0x90, 0xce, 0x31, 0x4d, 0xad, 0x73, + 0x97, 0xb4, 0x54, 0x0a, 0x06, 0x90, 0x3e, 0x4a, + 0xec, 0x5a, 0x99, 0x04, 0x63, 0x64, 0x5a, 0x05, + 0x10, 0x36, 0x31, 0x81, 0x50, 0xec, 0x0a, 0xb8, + 0x72, 0x86, 0x41, 0x4d, 0xab, 0x83, 0x49, 0xd9, + 0x0b, 0x6f, 0xa5, 0x56, 0xd7, 0x85, 0xdd, 0x9c, + 0x0b, 0xbd, 0xa4, 0xe8, 0x32, 0xc5, 0x83, 0x43, + 0x92, 0xd5, 0x96, 0x39, 0x4a, 0x21, 0x5a, 0xab, + 0x43, 0xd4, 0x0f, 0x9e, 0x36, 0x65, 0x5c, 0x07, + 0x0f, 0x28, 0xf0, 0x79, 0x8c, 0x56, 0x3b, 0x1b, + 0xbe, 0x29, 0x0e, 0x15, 0x2d, 0xed, 0xcb, 0x76, + 0x86, 0xb1, 0x4f, 0xea, 0x26, 0xc3, 0x1b, 0xc9, + 0xee, 0x5a, 0xa2, 0x42, 0xc7, 0xa2, 0x20, 0xa8, + 0xec, 0xb5, 0x7a, 0x56, 0x49, 0x74, 0x28, 0xa9, + 0x37, 0xf8, 0x8a, 0x8d, 0x4a, 0x49, 0x2c, 0x52, + 0x33, 0x8c, 0x68, 0xb3, 0x1f, 0x52, 0xed, 0xac, + 0x65, 0x6a, 0xb9, 0x18, 0x9a, 0x98, 0xfa, 0x9d, + 0x6b, 0xe1, 0xfb, 0xec, 0x0c, 0xaf, 0xcc, 0x12, + 0xd2, 0x88, 0x14, 0x57, 0x69, 0x15, 0xd5, 0x35, + 0x35, 0x81, 0x3c, 0x3b, 0x4f, 0x31, 0xe0, 0xc5, + 0x96, 0x22, 0x8e, 0x40, 0xd0, 0x31, 0xc5, 0xf6, + 0xb1, 0x82, 0xf7, 0xa5, 0xf2, 0x83, 0xc8, 0xae, + 0xa5, 0x42, 0x8f, 0x12, 0xf3, 0xac, 0x57, 0xeb, + 0x34, 0x6e, 0xbd, 0x6d, 0x77, 0x79, 0xa5, 0x94, + 0xea, 0xbe, 0xa0, 0xd8, 0xa3, 0x52, 0xc3, 0x41, + 0xb4, 0x7c, 0x1a, 0xa6, 0xbd, 0xa1, 0xb9, 0xda, + 0xa7, 0x4f, 0xaf, 0x60, 0x53, 0x4e, 0xd4, 0x72, + 0xb9, 0x20, 0xa3, 0x84, 0x0f, 0x31, 0x45, 0x70, + 0x5a, 0x20, 0x00, 0x78, 0x7b, 0xfd, 0x19, 0xc0, + 0x7f, 0x26, 0xa3, 0x4e, 0xfc, 0x0c, 0xff, 0x00, + 0x5f, 0x5f, 0x58, 0x5f, 0xc7, 0x4a, 0xfd, 0x8a, + 0xf6, 0x83, 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0x3f, + 0xc6, 0x39, 0x3f, 0xdb, 0x9d, 0xf5, 0x38, 0xc3, + 0xf0, 0x1a, 0x7f, 0xcb, 0x18, 0xef, 0xa9, 0xf5, + 0xaf, 0xc5, 0x78, 0x7b, 0xf9, 0x1a, 0x15, 0x72, + 0x4e, 0xcb, 0x62, 0x2f, 0x61, 0xf2, 0x08, 0xc7, + 0xe5, 0x31, 0xef, 0xb6, 0xa4, 0x22, 0xf5, 0x5e, + 0x6b, 0x74, 0xef, 0x55, 0x75, 0x1b, 0x63, 0x59, + 0x2c, 0x20, 0x24, 0x75, 0x01, 0xcb, 0xe6, 0x12, + 0x9e, 0x68, 0xe9, 0xe4, 0x9d, 0x18, 0x5e, 0x4e, + 0x1b, 0xe1, 0xff, 0x00, 0x63, 0x4e, 0x22, 0xc5, + 0xd2, 0xc1, 0x32, 0xdb, 0x18, 0xd6, 0xe2, 0x2a, + 0x53, 0x7d, 0x8b, 0x01, 0x6a, 0xf8, 0x80, 0xcf, + 0x6d, 0xbe, 0xdb, 0x16, 0x9c, 0xeb, 0x4a, 0x50, + 0x42, 0x5a, 0xd1, 0xe9, 0x2f, 0x95, 0x21, 0xac, + 0x26, 0x0f, 0x05, 0x8e, 0xb1, 0x8d, 0xc0, 0x60, + 0x17, 0x72, 0x6a, 0x85, 0xfb, 0x4b, 0xbb, 0x92, + 0xb9, 0x7b, 0x26, 0xd5, 0xbb, 0x21, 0x7a, 0xfd, + 0x84, 0x22, 0xad, 0x72, 0x33, 0xe8, 0x57, 0x42, + 0x16, 0x9a, 0xcb, 0x05, 0x25, 0x11, 0xb7, 0xd9, + 0x24, 0x43, 0x03, 0x4e, 0xee, 0x0a, 0xe5, 0xde, + 0xcb, 0xc3, 0xf6, 0xf8, 0x47, 0x3a, 0x9f, 0x08, + 0x29, 0x55, 0x32, 0x18, 0x1b, 0x37, 0xec, 0xe4, + 0x81, 0xd4, 0xa2, 0x2a, 0xf6, 0x8a, 0x79, 0x7a, + 0xb7, 0x1c, 0xa7, 0xa5, 0xe6, 0xe7, 0x56, 0xdd, + 0x10, 0x1d, 0x08, 0xe6, 0xea, 0x46, 0x13, 0x09, + 0x82, 0xc6, 0xbf, 0x17, 0x80, 0xe1, 0xf5, 0x5b, + 0xec, 0x8b, 0xbb, 0x68, 0x6e, 0xe4, 0xad, 0xdd, + 0xc9, 0x31, 0x6e, 0xc8, 0x5f, 0xbf, 0x65, 0x48, + 0xaa, 0x82, 0x63, 0x65, 0x28, 0x52, 0x94, 0x9a, + 0xeb, 0x5a, 0x54, 0x98, 0xe5, 0xee, 0x3e, 0x40, + 0xcf, 0xf5, 0x2b, 0x9d, 0x8f, 0x0c, 0xf0, 0xd6, + 0x53, 0x02, 0x1c, 0x86, 0x21, 0xd0, 0x66, 0x42, + 0x6b, 0xf2, 0xd8, 0x3d, 0xc4, 0xb9, 0xc1, 0x7d, + 0x19, 0xe6, 0x08, 0xd8, 0x8b, 0x7e, 0xe2, 0x8d, + 0x54, 0xe1, 0x7c, 0x8e, 0x23, 0x8a, 0x42, 0x7b, + 0x63, 0x72, 0x39, 0x97, 0xe1, 0x73, 0x38, 0xca, + 0x41, 0x9a, 0xb9, 0xcd, 0xcb, 0x4e, 0x6d, 0x8d, + 0xcc, 0x45, 0xe6, 0x95, 0x7c, 0x75, 0x71, 0x10, + 0xa7, 0x56, 0x18, 0x08, 0x5b, 0x8d, 0xf6, 0xa5, + 0x65, 0x61, 0xbd, 0x48, 0xc3, 0x06, 0x43, 0x87, + 0x2e, 0xe4, 0x6d, 0x70, 0x6e, 0x43, 0x23, 0x77, + 0x83, 0x5f, 0xe1, 0x50, 0x40, 0x82, 0xed, 0xd9, + 0x3c, 0x85, 0x4a, 0xbc, 0x40, 0x01, 0x53, 0x7b, + 0xc1, 0x8f, 0xc9, 0xf2, 0xde, 0x59, 0x54, 0x2a, + 0x70, 0xd3, 0x93, 0x43, 0x15, 0xd9, 0xa4, 0xd4, + 0xda, 0x99, 0xab, 0x50, 0x56, 0x18, 0xac, 0xaa, + 0x32, 0x96, 0x22, 0x26, 0x04, 0x9e, 0x61, 0x6c, + 0x6d, 0xb6, 0x20, 0xb6, 0x98, 0x12, 0x61, 0x41, + 0x77, 0xed, 0x31, 0x13, 0x3e, 0x4d, 0x71, 0x86, + 0x25, 0x38, 0xe9, 0x0b, 0x1c, 0x49, 0x9a, 0xc8, + 0x5e, 0xa3, 0x90, 0x26, 0xc1, 0x3b, 0x17, 0x8d, + 0xcd, 0x3e, 0xb3, 0x73, 0x58, 0xd1, 0xf1, 0x76, + 0x98, 0xc8, 0x06, 0x3e, 0x8a, 0x9a, 0x4b, 0xe4, + 0x89, 0x08, 0x7e, 0xfe, 0xee, 0x35, 0x76, 0x8c, + 0x63, 0x9e, 0x25, 0x6b, 0x80, 0xf8, 0x73, 0x83, + 0xe1, 0x92, 0xf5, 0xcc, 0x03, 0xf0, 0x79, 0x0a, + 0x77, 0x59, 0x76, 0x63, 0xa7, 0xbc, 0xaa, 0xc0, + 0xd6, 0x90, 0x04, 0xef, 0xce, 0x12, 0x51, 0x32, + 0x65, 0xb6, 0xda, 0xc8, 0xe1, 0x32, 0x58, 0xe7, + 0x5f, 0xab, 0x93, 0xce, 0x70, 0xde, 0x4a, 0xcc, + 0x2a, 0xc0, 0xa3, 0x9a, 0x96, 0x19, 0xd6, 0xca, + 0xe5, 0x3d, 0xf9, 0x08, 0xa1, 0x97, 0x13, 0x6a, + 0x56, 0xb6, 0xc4, 0xec, 0xa9, 0x8e, 0x69, 0x12, + 0xd5, 0xec, 0xa5, 0x5c, 0x77, 0x15, 0x57, 0xcd, + 0x3f, 0xb3, 0xae, 0x94, 0x5c, 0xcb, 0xe2, 0x5d, + 0x85, 0xc7, 0x54, 0x41, 0xac, 0x02, 0x85, 0x7a, + 0x15, 0xb0, 0xb5, 0xde, 0xba, 0x75, 0xa9, 0x89, + 0x22, 0x9a, 0x57, 0x6c, 0x7a, 0x65, 0xc8, 0xd6, + 0x93, 0xa7, 0xa9, 0xd5, 0xfd, 0xdf, 0x12, 0xfe, + 0x3d, 0xa9, 0xfc, 0x9f, 0x3a, 0x8d, 0x54, 0xfc, + 0x25, 0x1f, 0xad, 0x1d, 0x67, 0x98, 0xfe, 0x34, + 0xab, 0x55, 0xcc, 0xcd, 0x65, 0x4d, 0xd5, 0x8b, + 0x01, 0x9d, 0x71, 0x56, 0x69, 0x5f, 0xb0, 0x4c, + 0x44, 0xb5, 0x55, 0xe5, 0x4d, 0x94, 0x9c, 0xca, + 0xe5, 0x8a, 0x99, 0x59, 0xc8, 0xf3, 0x04, 0xc8, + 0xcc, 0x6b, 0xd3, 0xba, 0x9f, 0xa3, 0x9c, 0x43, + 0xf3, 0x5d, 0x7a, 0x77, 0x53, 0xf4, 0x73, 0x88, + 0x7e, 0x6b, 0xaf, 0x4e, 0xea, 0x7e, 0x8e, 0x71, + 0x0f, 0xcd, 0x75, 0xe9, 0xdd, 0x4f, 0xd1, 0xce, + 0x21, 0xf9, 0xb6, 0xa6, 0xad, 0x1f, 0x64, 0xf3, + 0x45, 0x38, 0x69, 0x34, 0x54, 0x18, 0x3e, 0x25, + 0x42, 0xfa, 0x85, 0x11, 0x04, 0xd9, 0x48, 0x2c, + 0x96, 0x2c, 0x28, 0x88, 0x82, 0x98, 0x92, 0x9d, + 0xa2, 0x23, 0x9b, 0x4f, 0xae, 0x1e, 0xc9, 0xbb, + 0x57, 0xb4, 0x4c, 0x3b, 0x29, 0x1c, 0x37, 0x13, + 0xc2, 0x9e, 0x6e, 0xdb, 0xaa, 0x4c, 0x08, 0x47, + 0x29, 0xcb, 0x79, 0x47, 0xa9, 0xbc, 0x78, 0xfb, + 0x47, 0x36, 0xfb, 0x6a, 0x68, 0x0f, 0xb2, 0x44, + 0x45, 0x22, 0x9d, 0xca, 0xa4, 0x60, 0xf8, 0x9b, + 0xb3, 0xcc, 0xef, 0x05, 0xde, 0xae, 0x87, 0x27, + 0xba, 0x11, 0x2f, 0x27, 0xba, 0x88, 0x9f, 0x2e, + 0x86, 0xb7, 0xff, 0x00, 0x38, 0x28, 0xec, 0xe0, + 0xd3, 0x78, 0x23, 0xeb, 0x7f, 0x88, 0xfa, 0x42, + 0xf6, 0x08, 0x03, 0x1c, 0x2b, 0xec, 0xfc, 0xb0, + 0xc3, 0x05, 0x2c, 0x48, 0xe2, 0x39, 0xa4, 0x40, + 0x22, 0x67, 0x61, 0x8d, 0x1e, 0xde, 0xca, 0x8e, + 0xf6, 0xc6, 0x75, 0x8f, 0xfb, 0x13, 0xc5, 0x3e, + 0x3b, 0x7a, 0x6b, 0x4f, 0x54, 0xbd, 0xa7, 0xbd, + 0x9d, 0x24, 0xa9, 0x7c, 0xfe, 0xeb, 0x91, 0x60, + 0x3b, 0xec, 0x31, 0xae, 0xd2, 0x3e, 0xc8, 0x49, + 0x1b, 0x30, 0xce, 0xac, 0x3e, 0x30, 0x1c, 0x49, + 0x0e, 0xea, 0xef, 0xcd, 0xd4, 0xea, 0xf6, 0x7e, + 0x7e, 0x7d, 0xfb, 0xf9, 0xb7, 0xdf, 0x7f, 0xbb, + 0xa0, 0xb0, 0xdf, 0x64, 0xd2, 0x63, 0xd4, 0x2e, + 0x05, 0xb4, 0xb0, 0xdc, 0x4f, 0x2c, 0x01, 0xb0, + 0x04, 0xb7, 0x88, 0x17, 0x43, 0x71, 0x87, 0x2c, + 0xcc, 0x1b, 0xb7, 0xd9, 0x00, 0xa4, 0x4b, 0x78, + 0x9d, 0x34, 0x28, 0xfb, 0x25, 0x76, 0x31, 0x76, + 0xdd, 0x61, 0xad, 0x84, 0xe2, 0x64, 0xc3, 0x76, + 0x13, 0x08, 0xe7, 0x85, 0xa0, 0x60, 0xb6, 0x06, + 0xb0, 0x23, 0x7f, 0xe0, 0xb0, 0xc7, 0xc8, 0x53, + 0xa2, 0xec, 0x7e, 0xc8, 0xc1, 0x57, 0xa9, 0x29, + 0x93, 0xec, 0xf8, 0x2e, 0x25, 0x4f, 0x3c, 0xd7, + 0x70, 0xd8, 0xaf, 0x25, 0xc9, 0x5e, 0x37, 0x94, + 0xbc, 0x01, 0xca, 0x99, 0xf7, 0x0c, 0x11, 0x31, + 0xd8, 0xa2, 0x27, 0x55, 0xf9, 0x3d, 0x92, 0x60, + 0x3b, 0x21, 0x58, 0x3a, 0xbc, 0xb8, 0x4e, 0x26, + 0x8e, 0xce, 0x76, 0xfe, 0xda, 0x24, 0xec, 0x8f, + 0x6b, 0x2b, 0x1f, 0xf2, 0xd2, 0x1b, 0x4b, 0x3f, + 0x87, 0xbe, 0xbd, 0x3b, 0xa7, 0xfa, 0x39, 0xc4, + 0x3f, 0x35, 0xd7, 0xa7, 0x75, 0x3f, 0x47, 0x38, + 0x87, 0xe6, 0xba, 0xf4, 0xee, 0xa7, 0xe8, 0xe7, + 0x10, 0xfc, 0xd7, 0x5e, 0x9d, 0xd4, 0xfd, 0x1c, + 0xe2, 0x1f, 0x9a, 0xeb, 0xd3, 0xba, 0x9f, 0xa3, + 0x9c, 0x43, 0xf3, 0x5d, 0x7a, 0x77, 0x53, 0xf4, + 0x73, 0x88, 0x7e, 0x6b, 0xae, 0x19, 0x4d, 0x1c, + 0x80, 0x65, 0x2a, 0x8c, 0xe7, 0x3a, 0x77, 0x97, + 0x5a, 0xcd, 0x31, 0x77, 0x36, 0x55, 0x84, 0x71, + 0x15, 0xed, 0x88, 0x3c, 0x3a, 0x4c, 0x92, 0x4c, + 0xf3, 0x8c, 0x73, 0xc8, 0x73, 0x87, 0x88, 0x43, + 0x3f, 0x50, 0x30, 0x97, 0x58, 0x84, 0x5a, 0xa5, + 0x61, 0x96, 0xf1, 0x6f, 0xb6, 0x46, 0xba, 0xa5, + 0xd5, 0x81, 0xeb, 0xd3, 0x7b, 0x95, 0xb1, 0xd7, + 0x86, 0x10, 0x0b, 0x55, 0x63, 0xbe, 0x20, 0xb9, + 0xc0, 0xfc, 0x52, 0x81, 0x9e, 0x5f, 0xad, 0x88, + 0x3f, 0xbc, 0x4b, 0xcd, 0x55, 0x30, 0x28, 0xfb, + 0xf0, 0x51, 0x96, 0xfb, 0xbf, 0xc7, 0xb1, 0x7d, + 0xf8, 0x8d, 0x7a, 0x2c, 0x5e, 0xb7, 0xaf, 0xf4, + 0xb6, 0xa1, 0xb8, 0xbc, 0x13, 0x69, 0x34, 0x5c, + 0xb7, 0x8b, 0x53, 0x94, 0xa3, 0xd5, 0x07, 0x2b, + 0xbd, 0x4c, 0x06, 0x96, 0x48, 0x98, 0x04, 0xb9, + 0xef, 0x0e, 0x52, 0x8e, 0x59, 0xf1, 0xa3, 0xbf, + 0xbf, 0x49, 0x37, 0xd7, 0xc8, 0xb8, 0xab, 0xb6, + 0x1e, 0x82, 0x3c, 0xc5, 0x12, 0x94, 0xba, 0x3c, + 0x8e, 0x5c, 0xce, 0x47, 0xc4, 0x64, 0x6d, 0x1b, + 0x1c, 0x78, 0xd1, 0xf7, 0xf4, 0x06, 0x43, 0x96, + 0x93, 0x5c, 0x9c, 0xac, 0xa7, 0x37, 0x4f, 0x70, + 0x96, 0xac, 0xd4, 0xc9, 0x1f, 0xec, 0x97, 0x8b, + 0x2c, 0x53, 0x58, 0xb3, 0xdb, 0xdd, 0x83, 0x0c, + 0x4b, 0x78, 0x29, 0xd3, 0x4b, 0x93, 0x2b, 0xcc, + 0xf8, 0x88, 0x71, 0x78, 0x6e, 0x9e, 0xed, 0xe5, + 0x09, 0x58, 0xf3, 0xcf, 0x84, 0xb7, 0x2d, 0x97, + 0x32, 0x11, 0x33, 0xdf, 0xcb, 0xe2, 0xf9, 0x35, + 0x8d, 0xb1, 0x73, 0x0f, 0x72, 0xc2, 0x31, 0x65, + 0x07, 0x59, 0x03, 0x94, 0xc5, 0xf8, 0x9d, 0x37, + 0x9d, 0xb0, 0x4a, 0xe4, 0xef, 0xcc, 0x25, 0x27, + 0x68, 0xcd, 0x8d, 0xe4, 0x8d, 0xf7, 0x63, 0x0c, + 0x63, 0x9c, 0xb4, 0x76, 0xcb, 0x10, 0xde, 0xb9, + 0xb8, 0xac, 0x4b, 0x23, 0x21, 0x8c, 0x82, 0xea, + 0x91, 0xf5, 0x39, 0xe0, 0xbb, 0x7e, 0xf0, 0x5c, + 0xfd, 0xf1, 0x3e, 0x5d, 0xf5, 0xc9, 0x72, 0xbe, + 0x46, 0xc8, 0xf5, 0x21, 0xdc, 0xae, 0xcc, 0x51, + 0x64, 0x75, 0x87, 0x7e, 0x56, 0xec, 0x59, 0x19, + 0xf6, 0xc1, 0xde, 0x76, 0x3f, 0x75, 0x1b, 0xce, + 0xd3, 0xdf, 0xae, 0x4b, 0x0a, 0xca, 0x38, 0x7a, + 0xab, 0x7f, 0x2b, 0x73, 0x54, 0x8e, 0x3a, 0xea, + 0x92, 0x95, 0x3b, 0x69, 0xc9, 0x6d, 0xd5, 0x5c, + 0x99, 0x48, 0x33, 0xdd, 0x8c, 0x94, 0xed, 0x3d, + 0xfa, 0x61, 0x3e, 0xae, 0x41, 0xd2, 0xea, 0xd3, + 0x4d, 0xb2, 0xcc, 0xbd, 0x12, 0xea, 0x54, 0x96, + 0xc3, 0xe6, 0xb1, 0xef, 0x91, 0xf1, 0x91, 0x2e, + 0x11, 0x6c, 0xaa, 0x7c, 0x49, 0x60, 0xc1, 0xcc, + 0x73, 0x46, 0xfa, 0x37, 0x2d, 0x59, 0x30, 0x6b, + 0x01, 0x0a, 0x63, 0x07, 0x35, 0x4a, 0x0c, 0xd7, + 0x54, 0x3a, 0x75, 0x84, 0x8b, 0xc2, 0x3b, 0xcc, + 0x20, 0x3c, 0x44, 0xef, 0xf6, 0x31, 0xee, 0x0d, + 0xa3, 0x45, 0xd8, 0x6b, 0xe4, 0x6a, 0x73, 0x9c, + 0xb4, 0xbb, 0x3e, 0x62, 0x8a, 0x79, 0x99, 0x31, + 0xb4, 0xb2, 0x79, 0x32, 0x31, 0xe3, 0x94, 0x77, + 0x11, 0x79, 0x66, 0x3b, 0xa6, 0x74, 0x16, 0x11, + 0x8a, 0x7a, 0x5e, 0xb2, 0xe7, 0x07, 0x2f, 0x23, + 0x8d, 0x06, 0x81, 0xff, 0x00, 0x84, 0x26, 0x37, + 0xe0, 0xa0, 0xbf, 0x8e, 0x27, 0x7d, 0x1c, 0x55, + 0xc7, 0xdb, 0xaf, 0x0c, 0x65, 0x77, 0x1c, 0x27, + 0x29, 0x8f, 0x5c, 0x1b, 0x6a, 0x9c, 0xb6, 0xb3, + 0x4b, 0x93, 0x21, 0x1b, 0x9d, 0x76, 0x4c, 0x9a, + 0x4a, 0x7b, 0xd6, 0x73, 0x24, 0x3b, 0x4e, 0xbb, + 0x14, 0xd7, 0xc9, 0x4d, 0x3e, 0x53, 0x0e, 0xcd, + 0x39, 0x9a, 0x3d, 0x0e, 0x46, 0x32, 0x5a, 0x61, + 0xd3, 0xf0, 0x8f, 0x2f, 0x29, 0xb4, 0xa5, 0x86, + 0x3b, 0x6c, 0x47, 0x32, 0x53, 0xbc, 0xea, 0x31, + 0xe5, 0x52, 0xfc, 0xd1, 0x88, 0x88, 0x8a, 0x93, + 0x97, 0xa1, 0xd9, 0xe2, 0x04, 0xfa, 0x82, 0x3d, + 0x1f, 0x08, 0x72, 0x72, 0x8b, 0x26, 0x4e, 0x07, + 0x6d, 0xa0, 0xbc, 0x68, 0x8d, 0xf5, 0x6e, 0x1d, + 0x42, 0xe3, 0x62, 0xfb, 0x82, 0xc5, 0xe8, 0x66, + 0x57, 0x1e, 0x7d, 0xad, 0xea, 0x96, 0x4a, 0xdd, + 0x67, 0x9b, 0x21, 0x3d, 0x66, 0x2e, 0x5a, 0xc9, + 0x03, 0x67, 0x31, 0x0f, 0x50, 0xf6, 0x9f, 0x1a, + 0x74, 0xf9, 0x05, 0x64, 0xc2, 0x6c, 0x90, 0x15, + 0x89, 0x1c, 0xd5, 0x28, 0x97, 0x12, 0xd5, 0xd0, + 0x59, 0x32, 0x7c, 0x23, 0xe3, 0x10, 0x27, 0xda, + 0x84, 0xa7, 0xbc, 0x57, 0xe2, 0x44, 0xf2, 0xf7, + 0x6a, 0x19, 0xd2, 0xca, 0x75, 0x21, 0xb6, 0x1d, + 0x07, 0xe1, 0xaa, 0x5c, 0xdd, 0x5b, 0x5f, 0x6c, + 0xb3, 0x7f, 0x08, 0xef, 0xcf, 0x63, 0xfe, 0x5a, + 0x7f, 0xe5, 0x3f, 0x87, 0xbe, 0xbb, 0x5f, 0x13, + 0xba, 0x31, 0xb5, 0x48, 0xc4, 0xad, 0xdd, 0xb7, + 0x7e, 0xad, 0xcb, 0xd6, 0x04, 0x76, 0x89, 0x55, + 0x54, 0xa2, 0xc5, 0xa7, 0x32, 0xc4, 0x84, 0x72, + 0xaf, 0xab, 0x00, 0xa0, 0x8f, 0x1b, 0x79, 0x81, + 0xe5, 0x9f, 0xde, 0xea, 0xe8, 0x55, 0x4a, 0x93, + 0x56, 0xa2, 0x37, 0xdf, 0xa3, 0x52, 0xaa, 0x81, + 0x15, 0xd7, 0xf7, 0x7b, 0xe1, 0x60, 0x3b, 0xf7, + 0xcf, 0x8d, 0xbf, 0x7c, 0xe9, 0xdf, 0x81, 0x9f, + 0xeb, 0xeb, 0xeb, 0x0b, 0xf8, 0xe9, 0x5f, 0xb1, + 0x5e, 0xd0, 0x7b, 0xd1, 0xa3, 0xf7, 0xa7, 0x47, + 0xf8, 0xc7, 0x27, 0xfb, 0x73, 0xbe, 0xa7, 0x14, + 0x1e, 0x61, 0x17, 0x6c, 0xe3, 0x62, 0x9d, 0x5e, + 0xd4, 0x9c, 0x75, 0x84, 0xd4, 0xba, 0x63, 0xe1, + 0x4a, 0x1c, 0x9d, 0x0b, 0x16, 0x2b, 0xdb, 0x4a, + 0xe6, 0x1b, 0xc8, 0x45, 0x27, 0x5d, 0x91, 0x21, + 0x04, 0x31, 0x11, 0x33, 0x05, 0x1e, 0x60, 0xe3, + 0xcf, 0xd2, 0x6c, 0x0f, 0xfe, 0x59, 0xd7, 0x98, + 0x38, 0xf3, 0xf4, 0x9b, 0x03, 0xff, 0x00, 0x96, + 0x74, 0x5d, 0x3c, 0x27, 0x1f, 0x87, 0x38, 0x12, + 0xcb, 0x93, 0x8a, 0x30, 0x63, 0xcc, 0x07, 0x1b, + 0x18, 0x16, 0xdc, 0x33, 0xde, 0x05, 0x1d, 0xc4, + 0x33, 0xdd, 0x31, 0xe5, 0xd7, 0x98, 0x38, 0xf3, + 0xf4, 0x9b, 0x03, 0xff, 0x00, 0x96, 0x75, 0xd5, + 0xaf, 0xc2, 0x5e, 0xc9, 0x0f, 0x5c, 0xcc, 0xc4, + 0x31, 0x39, 0xcc, 0x43, 0x42, 0x66, 0x3b, 0xa6, + 0x20, 0xc3, 0x85, 0x48, 0x77, 0x89, 0xee, 0x9e, + 0xfe, 0xe9, 0xd1, 0xf4, 0xb8, 0x47, 0xd9, 0x25, + 0x9d, 0x33, 0x95, 0xb3, 0xa7, 0x9b, 0xc4, 0x9f, + 0x4d, 0x83, 0xb6, 0xeb, 0x3e, 0x5e, 0x15, 0x9e, + 0x53, 0x8d, 0xe3, 0x71, 0x2d, 0x8a, 0x37, 0x8e, + 0xed, 0x32, 0x4b, 0x86, 0xfd, 0x90, 0x46, 0x14, + 0x70, 0xb6, 0xcc, 0xf1, 0x16, 0x12, 0x21, 0x4c, + 0x9e, 0x6d, 0x96, 0xcd, 0xf8, 0x5f, 0xc4, 0x39, + 0xe5, 0x2d, 0x84, 0xb6, 0x29, 0xe5, 0x2e, 0xee, + 0xe9, 0xd0, 0x19, 0x70, 0xef, 0x1f, 0x88, 0x36, + 0x0a, 0x54, 0x65, 0xc4, 0x78, 0x38, 0x16, 0x40, + 0x97, 0x29, 0x4a, 0xca, 0x78, 0x63, 0x63, 0x81, + 0x2f, 0x14, 0xa4, 0x77, 0xd8, 0xbb, 0xa7, 0xbf, + 0x5e, 0x60, 0xe3, 0xcf, 0xd2, 0x6c, 0x0f, 0xfe, + 0x59, 0xd7, 0x98, 0x38, 0xf3, 0xf4, 0x9b, 0x03, + 0xff, 0x00, 0x96, 0x75, 0xe6, 0x0e, 0x3c, 0xfd, + 0x26, 0xc0, 0xff, 0x00, 0xe5, 0x9d, 0x79, 0x83, + 0x8f, 0x3f, 0x49, 0xb0, 0x3f, 0xf9, 0x67, 0x56, + 0x70, 0x8d, 0xc5, 0x71, 0xc5, 0xb3, 0xaf, 0x5b, + 0x15, 0x66, 0x5e, 0xbe, 0x22, 0xc1, 0xa8, 0x4a, + 0x32, 0x98, 0x9a, 0x39, 0x61, 0x1e, 0x42, 0xe1, + 0xb2, 0x98, 0x95, 0x0d, 0xe8, 0x49, 0x4e, 0xfe, + 0x31, 0x2e, 0x4a, 0x36, 0x89, 0xda, 0x3c, 0xc1, + 0xc7, 0x9f, 0xa4, 0xd8, 0x1f, 0xfc, 0xb3, 0xaf, + 0x30, 0x71, 0xe7, 0xe9, 0x36, 0x07, 0xff, 0x00, + 0x2c, 0xea, 0x05, 0xfc, 0x37, 0xec, 0x80, 0x92, + 0x20, 0x86, 0x08, 0xb7, 0x88, 0xb0, 0x8b, 0x92, + 0x59, 0x7b, 0x93, 0x88, 0x3e, 0x17, 0x89, 0x90, + 0x2d, 0xa7, 0x62, 0x8e, 0xe9, 0xda, 0x76, 0x9d, + 0x74, 0xc3, 0x84, 0xbd, 0x92, 0x0c, 0xe0, 0x05, + 0x92, 0x03, 0x9c, 0xc4, 0x91, 0xf4, 0xcf, 0x7e, + 0x46, 0x72, 0xc7, 0x0a, 0xef, 0xc8, 0x7b, 0x4f, + 0x29, 0xed, 0xca, 0x5b, 0x4e, 0xd3, 0xa6, 0x29, + 0x9c, 0x2f, 0xec, 0x88, 0x0c, 0x52, 0xfa, 0xcd, + 0x59, 0xe7, 0xf0, 0xc2, 0x6a, 0x57, 0x77, 0xb6, + 0xb0, 0x27, 0x85, 0xa0, 0x81, 0x7d, 0xf1, 0xe3, + 0x94, 0x40, 0xf7, 0xc7, 0x7e, 0xba, 0xbf, 0x5b, + 0xbc, 0x7f, 0xd2, 0xe6, 0xe9, 0xf5, 0x3e, 0xb9, + 0x30, 0x7d, 0x3e, 0x79, 0x8e, 0x68, 0x0e, 0x7f, + 0xad, 0x8e, 0x5e, 0x79, 0x18, 0x99, 0xe5, 0xdf, + 0x7d, 0xa2, 0x67, 0x5e, 0x60, 0xe3, 0xcf, 0xd2, + 0x6c, 0x0f, 0xfe, 0x59, 0xd7, 0x98, 0x38, 0xf3, + 0xf4, 0x9b, 0x03, 0xff, 0x00, 0x96, 0x75, 0x9f, + 0x9e, 0x1b, 0xa5, 0x9a, 0xa4, 0x81, 0xcd, 0x56, + 0x8b, 0x23, 0x9a, 0xc8, 0x52, 0xc8, 0x34, 0xdb, + 0xd8, 0x26, 0x44, 0x92, 0x74, 0xb1, 0xd8, 0xe1, + 0x5a, 0xf9, 0x3b, 0xa4, 0x4c, 0x18, 0x52, 0x5d, + 0xfc, 0xf1, 0x1d, 0xda, 0x8d, 0x54, 0xfc, 0x25, + 0x1f, 0xad, 0x1d, 0x71, 0x37, 0xfa, 0x43, 0x9b, + 0xfe, 0x53, 0xb5, 0xfb, 0x9b, 0x27, 0x05, 0x5c, + 0x0e, 0x8e, 0x32, 0xfd, 0xf5, 0x36, 0xdc, 0xc4, + 0x56, 0x43, 0x92, 0xb8, 0x15, 0xd9, 0x6f, 0x8a, + 0xce, 0xea, 0xa4, 0xce, 0xd2, 0x30, 0x2b, 0x6b, + 0x24, 0xd4, 0x30, 0xa5, 0x31, 0x9c, 0xa0, 0x54, + 0x1b, 0x79, 0xb4, 0xae, 0xf5, 0x68, 0x8c, 0xd6, + 0xca, 0xd2, 0xeb, 0xff, 0x00, 0x64, 0xeb, 0x8b, + 0xdc, 0x1d, 0x6b, 0x05, 0x65, 0x68, 0xb2, 0x56, + 0x50, 0xc8, 0x3a, 0x87, 0xda, 0x6a, 0x55, 0x7c, + 0x0a, 0x02, 0x0c, 0x0f, 0xc5, 0x69, 0xe4, 0xac, + 0xc6, 0x3a, 0xa3, 0x19, 0x9b, 0xbf, 0x6a, 0xa6, + 0x3e, 0x3a, 0x15, 0xd9, 0x47, 0x09, 0x45, 0x50, + 0x86, 0x17, 0x22, 0x76, 0x20, 0x56, 0x5a, 0xd8, + 0x30, 0x0e, 0xb6, 0xe2, 0xb9, 0xa7, 0x4a, 0x65, + 0xea, 0xe6, 0x6b, 0xa2, 0x53, 0xc5, 0x8a, 0x65, + 0x4c, 0x00, 0x52, 0xa3, 0x10, 0x58, 0x95, 0xe2, + 0x11, 0xc3, 0xf1, 0x93, 0xa8, 0xd8, 0xb9, 0x55, + 0x60, 0x56, 0x47, 0x08, 0x3e, 0x13, 0x4d, 0x58, + 0x43, 0x1e, 0x16, 0xa7, 0x37, 0xca, 0x8e, 0xa1, + 0xa2, 0x3e, 0xdb, 0x94, 0x6a, 0x2d, 0x52, 0x57, + 0x0f, 0xf6, 0xb2, 0xe2, 0x0b, 0x35, 0xdb, 0x63, + 0x36, 0x1c, 0x2d, 0xbc, 0xd6, 0x1c, 0x6d, 0x46, + 0x02, 0x52, 0xce, 0x26, 0x8e, 0x4d, 0x85, 0xa6, + 0x67, 0x21, 0x56, 0x79, 0xe3, 0x9a, 0x48, 0xe3, + 0x96, 0x74, 0xcb, 0x4a, 0x4f, 0x09, 0x46, 0x46, + 0x78, 0x8e, 0xcd, 0x6b, 0x36, 0x2d, 0x2b, 0x81, + 0x46, 0xa4, 0xd7, 0x0c, 0x5d, 0x16, 0x2d, 0x34, + 0x59, 0x7c, 0x63, 0x15, 0x2b, 0x16, 0x11, 0x1c, + 0x8e, 0x2a, 0x76, 0xe6, 0x22, 0x33, 0xef, 0x22, + 0x9d, 0x1d, 0xaa, 0x58, 0x9c, 0x45, 0xec, 0x94, + 0xf1, 0x1d, 0xaa, 0xd6, 0xdb, 0x57, 0x03, 0xc3, + 0x99, 0x74, 0x0d, 0x70, 0xc6, 0x50, 0x62, 0x96, + 0x8e, 0x8d, 0x0b, 0x78, 0xe4, 0xd7, 0xea, 0x99, + 0x96, 0xf4, 0x79, 0x14, 0x46, 0x47, 0x32, 0x52, + 0x52, 0x5a, 0xb2, 0x7c, 0x35, 0x86, 0xc7, 0x5e, + 0xb1, 0x3c, 0x48, 0xea, 0xd6, 0x7b, 0x36, 0x13, + 0x1d, 0x9f, 0x5a, 0x66, 0x30, 0xf8, 0xc6, 0xbe, + 0xa5, 0x32, 0xbd, 0x4b, 0x23, 0xc9, 0x4d, 0x59, + 0x26, 0x5b, 0x1a, 0xf0, 0x89, 0xe4, 0xdb, 0xc5, + 0x09, 0x21, 0xdb, 0x59, 0x7c, 0xca, 0x2a, 0xe3, + 0xce, 0xcd, 0x76, 0xe1, 0x71, 0xa1, 0x52, 0x10, + 0x8b, 0x38, 0xba, 0x99, 0x7b, 0xb4, 0x1c, 0xfc, + 0xc3, 0x06, 0xa1, 0x43, 0x68, 0x38, 0x6b, 0x36, + 0xab, 0x92, 0x8a, 0xc6, 0x2f, 0xa4, 0xa6, 0xb0, + 0xe4, 0x56, 0x5d, 0x04, 0xed, 0x43, 0x3d, 0x92, + 0xc7, 0x51, 0x94, 0x1a, 0xb3, 0x94, 0x72, 0xf5, + 0x62, 0xa2, 0x42, 0x94, 0xb2, 0x82, 0x71, 0xcd, + 0x8c, 0x9d, 0x6a, 0x80, 0x30, 0x8a, 0xad, 0xec, + 0x99, 0x1d, 0xe4, 0x2b, 0x2d, 0x2a, 0x0b, 0x15, + 0xfa, 0xa8, 0x5a, 0xfa, 0x93, 0x1a, 0xe2, 0xd8, + 0xbf, 0x5d, 0x2e, 0xc8, 0xa5, 0xed, 0xa7, 0x45, + 0xcc, 0x00, 0x33, 0xae, 0x18, 0x8c, 0x85, 0x05, + 0x5e, 0xb2, 0x89, 0x9d, 0xc8, 0x3b, 0x49, 0x64, + 0x2b, 0xa8, 0x5a, 0x3b, 0x6e, 0x00, 0xf0, 0xdf, + 0xcb, 0x13, 0xfb, 0x9e, 0x14, 0xff, 0x00, 0x2b, + 0x88, 0x7f, 0x96, 0x9f, 0xfd, 0xd2, 0xef, 0xc0, + 0xcf, 0xf5, 0xf5, 0xf5, 0x85, 0xfc, 0x74, 0xaf, + 0xd8, 0xaf, 0x68, 0x3d, 0xe8, 0xd1, 0xfb, 0xd3, + 0xa3, 0xfc, 0x63, 0x93, 0xfd, 0xb9, 0xdf, 0x53, + 0x8c, 0x3f, 0x00, 0xa7, 0xfc, 0xb1, 0x8e, 0xfd, + 0xcf, 0x02, 0xef, 0xec, 0x9b, 0x90, 0xf6, 0x3c, + 0xe7, 0xbb, 0xc6, 0x7b, 0x2e, 0x95, 0x2e, 0x25, + 0xb7, 0x19, 0x6e, 0x5c, 0xb5, 0x4f, 0x1d, 0x9f, + 0x5b, 0xf3, 0xca, 0xbe, 0xc5, 0xcd, 0xb0, 0xf6, + 0xae, 0xf2, 0xed, 0x65, 0xd1, 0xf2, 0x37, 0x56, + 0x9f, 0x8c, 0xf6, 0x48, 0xa1, 0xc3, 0x56, 0x99, + 0xec, 0x8d, 0x99, 0x65, 0xac, 0xe6, 0x77, 0x89, + 0xf2, 0x5c, 0x38, 0x59, 0xd1, 0x2c, 0x26, 0x2b, + 0x63, 0xeb, 0x8a, 0xdf, 0x6a, 0xcb, 0x99, 0x3b, + 0x5a, 0x34, 0xda, 0xd9, 0x81, 0x13, 0xb9, 0xcf, + 0x3c, 0x4e, 0xb8, 0xe1, 0xd4, 0xaf, 0xa3, 0x2d, + 0x21, 0x99, 0xf6, 0x39, 0xad, 0x7f, 0x2f, 0x58, + 0x48, 0x11, 0x98, 0xca, 0x52, 0xc0, 0xe6, 0xea, + 0xe4, 0xb2, 0x8b, 0x82, 0x81, 0x93, 0x0b, 0x57, + 0x16, 0xd9, 0x8b, 0x1c, 0xb1, 0xda, 0xf6, 0xed, + 0x7d, 0xe4, 0xf9, 0x99, 0xf6, 0x2b, 0x1d, 0xfb, + 0xe3, 0x11, 0xc5, 0x73, 0xb7, 0xde, 0x82, 0xe2, + 0xcb, 0xbb, 0x4e, 0xdf, 0x78, 0xb6, 0x9d, 0xbe, + 0xfe, 0xd3, 0xfb, 0x89, 0xf7, 0xa7, 0x59, 0x3f, + 0xc5, 0x7c, 0x23, 0xff, 0x00, 0xee, 0x76, 0x03, + 0xea, 0x17, 0xbd, 0x3f, 0xf7, 0x6b, 0x83, 0xd4, + 0x71, 0xdd, 0x8a, 0x7e, 0x0f, 0x86, 0xf2, 0xac, + 0x81, 0xfb, 0x1e, 0x1d, 0xdc, 0x31, 0x86, 0xe2, + 0x85, 0xd8, 0x64, 0xf7, 0x0e, 0xca, 0x43, 0xf8, + 0x80, 0xb7, 0x29, 0x89, 0xe9, 0xd6, 0x2f, 0xbd, + 0xbe, 0xb8, 0x87, 0x29, 0x8a, 0xe2, 0x1a, 0x3c, + 0x1f, 0x6f, 0x25, 0xec, 0x79, 0xec, 0x75, 0x72, + 0xb6, 0x66, 0xfe, 0x5d, 0xf8, 0x1a, 0x54, 0x12, + 0xde, 0x22, 0xc9, 0x1c, 0x57, 0x2c, 0x95, 0x65, + 0xb1, 0xa8, 0xea, 0xd6, 0x9e, 0xc6, 0xa1, 0x10, + 0xf6, 0xe2, 0x31, 0x49, 0x6d, 0x07, 0x33, 0xac, + 0xd6, 0x32, 0xdf, 0x13, 0xd0, 0xe3, 0x1e, 0x21, + 0xc6, 0xfb, 0x14, 0xf1, 0xa8, 0xe5, 0xb3, 0xf8, + 0xdb, 0x6e, 0xc9, 0x57, 0x62, 0x6d, 0xe5, 0x31, + 0x36, 0xa8, 0x63, 0xa3, 0x30, 0xf0, 0x5b, 0x32, + 0xe5, 0x45, 0x3d, 0x53, 0x37, 0x90, 0xcc, 0xd6, + 0x87, 0xf6, 0x29, 0xe5, 0xec, 0xfc, 0x83, 0x6a, + 0x3e, 0xff, 0x00, 0x1f, 0x51, 0x98, 0x8f, 0xbf, + 0xcb, 0xc3, 0xd9, 0x0d, 0xe6, 0x3d, 0xee, 0x68, + 0xdf, 0xef, 0x6f, 0x1f, 0x7f, 0xea, 0xf1, 0x47, + 0xfa, 0x41, 0x53, 0xf9, 0x37, 0x51, 0xaa, 0x9f, + 0x84, 0xa3, 0xf5, 0xa3, 0xae, 0x24, 0x21, 0xa5, + 0x70, 0x84, 0xb8, 0x83, 0x34, 0x42, 0x43, 0x59, + 0xd2, 0x24, 0x33, 0x92, 0xb3, 0x30, 0x43, 0x30, + 0x1b, 0x4c, 0x4c, 0x77, 0xc4, 0xc7, 0x74, 0xc6, + 0xbe, 0xd0, 0xbb, 0xf1, 0x47, 0xfc, 0x9e, 0xbe, + 0xd0, 0xbb, 0xf1, 0x47, 0xfc, 0x9e, 0xbe, 0xd0, + 0xbb, 0xf1, 0x47, 0xfc, 0x9e, 0xbe, 0xd0, 0xbb, + 0xf1, 0x47, 0xfc, 0x9e, 0x8c, 0xd9, 0x8b, 0xbe, + 0xea, 0xf6, 0x2b, 0xd8, 0xa7, 0x69, 0x42, 0x87, + 0xac, 0xce, 0xbd, 0xa5, 0xca, 0xd9, 0xc8, 0x7d, + 0x12, 0x81, 0x60, 0x78, 0xad, 0x5f, 0x30, 0x90, + 0xf5, 0x00, 0x79, 0xa3, 0x6d, 0xf5, 0x42, 0xad, + 0x5c, 0x5e, 0x49, 0x55, 0x31, 0xd5, 0x89, 0x09, + 0xeb, 0xa1, 0xac, 0x7b, 0x09, 0xaf, 0x65, 0x97, + 0xb5, 0xb2, 0x09, 0x00, 0x8e, 0x66, 0x33, 0x94, + 0x00, 0x63, 0x60, 0x00, 0x1e, 0xf9, 0x29, 0x29, + 0x9e, 0x26, 0x1b, 0x18, 0x4c, 0x89, 0xd0, 0xcf, + 0xb4, 0x6e, 0x26, 0xbf, 0x23, 0xba, 0xb8, 0xfc, + 0x95, 0x79, 0x8e, 0xc7, 0x6c, 0x19, 0xd0, 0xe5, + 0x2e, 0x50, 0xea, 0x57, 0xb0, 0x30, 0x21, 0xd6, + 0x43, 0x39, 0x77, 0x8e, 0x41, 0xd6, 0x73, 0x23, + 0x53, 0x0b, 0x9a, 0x0b, 0x79, 0xb5, 0xb9, 0x24, + 0x36, 0x17, 0xcd, 0x5e, 0xb0, 0x59, 0x35, 0x13, + 0xa4, 0x3a, 0x75, 0x84, 0xda, 0x7c, 0xaa, 0xe4, + 0x5f, 0x34, 0x8c, 0x0f, 0x3f, 0x3c, 0xef, 0x23, + 0x11, 0xa1, 0xc4, 0xde, 0xc5, 0x66, 0xbd, 0xaf, + 0x2a, 0xec, 0x90, 0x3e, 0xa2, 0x76, 0xdf, 0xad, + 0x51, 0x15, 0x7a, 0x44, 0x0e, 0x44, 0xf9, 0x3a, + 0x3c, 0xfc, 0xd0, 0x5f, 0xc2, 0xdb, 0x6e, 0xed, + 0xf5, 0xe0, 0x93, 0xc4, 0xf1, 0x0f, 0x45, 0x79, + 0x56, 0xe4, 0x92, 0xe0, 0x50, 0x75, 0x67, 0xad, + 0x4a, 0xbd, 0x52, 0x53, 0x46, 0x6b, 0x72, 0xf7, + 0x4a, 0x24, 0xe0, 0x86, 0x7c, 0x85, 0x11, 0x31, + 0xdd, 0xbc, 0xaf, 0x11, 0x5b, 0x13, 0x95, 0xe9, + 0xab, 0x2e, 0xfc, 0x90, 0xba, 0xc2, 0x08, 0x8e, + 0x45, 0xf4, 0x6a, 0xd5, 0xe9, 0x48, 0x2d, 0x11, + 0x1c, 0xc2, 0x48, 0x93, 0xe7, 0x89, 0xda, 0x44, + 0xa2, 0x39, 0x77, 0x8d, 0xe6, 0xae, 0x39, 0x58, + 0xec, 0x8a, 0xac, 0x54, 0xcd, 0x3b, 0x2e, 0xbb, + 0x60, 0x97, 0x8c, 0x84, 0x9d, 0x4a, 0xb5, 0xd6, + 0x2b, 0x88, 0x54, 0x18, 0x31, 0x47, 0x5b, 0xab, + 0x0c, 0x83, 0xfb, 0xb1, 0x11, 0x11, 0x31, 0xbe, + 0xaf, 0x15, 0x8c, 0x06, 0x45, 0x75, 0xb2, 0xeb, + 0xa2, 0xfc, 0x92, 0xab, 0xa8, 0x80, 0xa3, 0x37, + 0x4c, 0x0c, 0x67, 0x29, 0x4f, 0xf7, 0xb7, 0x20, + 0x43, 0xe5, 0xaf, 0xea, 0xd6, 0x38, 0x91, 0x28, + 0xb4, 0xef, 0x1f, 0x98, 0x54, 0x41, 0xd8, 0x2a, + 0xe1, 0x72, 0x41, 0x8f, 0x0c, 0x66, 0x52, 0xa2, + 0x81, 0x8b, 0x69, 0x3d, 0x97, 0x72, 0xc2, 0xa1, + 0xb3, 0x90, 0xb2, 0x70, 0x88, 0x02, 0x9e, 0x54, + 0x21, 0x40, 0x95, 0x88, 0x8a, 0xd0, 0x80, 0x18, + 0x29, 0x39, 0x61, 0x95, 0xae, 0x6c, 0x2d, 0xf0, + 0x9b, 0x18, 0x2a, 0xd8, 0xa9, 0xf6, 0xa7, 0x4f, + 0xef, 0xb1, 0xbb, 0x5e, 0xfd, 0xcb, 0xe7, 0xed, + 0x11, 0xcd, 0x36, 0xde, 0xb6, 0x4c, 0x87, 0x74, + 0x8f, 0x30, 0x44, 0x99, 0x74, 0xfb, 0xfe, 0xd0, + 0xbb, 0xf1, 0x47, 0xfc, 0x9e, 0xbe, 0xd0, 0xbb, + 0xf1, 0x47, 0xfc, 0x9e, 0xbe, 0xd0, 0xbb, 0xf1, + 0x47, 0xfc, 0x9e, 0xbe, 0xd0, 0xbb, 0xf1, 0x47, + 0xfc, 0x9e, 0xbe, 0xd0, 0xbb, 0xf1, 0x47, 0xfc, + 0x9e, 0xb8, 0x55, 0x6d, 0x59, 0xa9, 0x90, 0x5c, + 0x41, 0xb8, 0x30, 0x08, 0x0e, 0x37, 0xcc, 0xba, + 0x63, 0x71, 0x28, 0x89, 0x8d, 0xe2, 0x62, 0x63, + 0xbb, 0xbe, 0x27, 0x7f, 0xee, 0x97, 0x7e, 0x06, + 0x7f, 0xaf, 0xaf, 0xac, 0x2f, 0xe3, 0xa5, 0x7e, + 0xc5, 0x7b, 0x41, 0xef, 0x46, 0x8f, 0xde, 0x9d, + 0x1f, 0xe3, 0x1c, 0x9f, 0xed, 0xce, 0xfa, 0x9c, + 0x55, 0x8f, 0xc6, 0x53, 0xb3, 0x7e, 0xf5, 0x9a, + 0x55, 0x46, 0xbd, 0x4a, 0x89, 0x3b, 0x16, 0x1c, + 0x43, 0x94, 0xa0, 0xc2, 0x85, 0x25, 0x70, 0x46, + 0x72, 0x2b, 0x02, 0x39, 0xe5, 0x89, 0xd8, 0x46, + 0x67, 0xc9, 0x1a, 0xf4, 0x27, 0x8a, 0x3d, 0x49, + 0x90, 0xf9, 0x0d, 0x7a, 0x13, 0xc5, 0x1e, 0xa4, + 0xc8, 0x7c, 0x86, 0xbd, 0x09, 0xe2, 0x8f, 0x52, + 0x64, 0x3e, 0x43, 0x5e, 0x84, 0xf1, 0x47, 0xa9, + 0x32, 0x1f, 0x21, 0xae, 0x1d, 0xc0, 0x17, 0x00, + 0xf1, 0x22, 0xd5, 0xc3, 0xad, 0xce, 0x31, 0x56, + 0x07, 0x0f, 0x92, 0x96, 0x59, 0xf0, 0xe5, 0xaa, + 0xd6, 0x99, 0x0c, 0x09, 0xad, 0xca, 0xbe, 0x84, + 0xd6, 0x81, 0x0e, 0x59, 0x9e, 0x78, 0x29, 0x92, + 0xdb, 0x6d, 0x57, 0xe1, 0x8f, 0xac, 0x1e, 0x24, + 0xe8, 0xd7, 0xcf, 0x5a, 0xcf, 0x45, 0xbf, 0x03, + 0xe4, 0xba, 0xa4, 0xdb, 0x38, 0xfa, 0xb8, 0xf9, + 0xaf, 0x2b, 0xec, 0xfc, 0x90, 0xb1, 0x1a, 0xb0, + 0xc8, 0x3d, 0xf9, 0xa4, 0x8a, 0x63, 0x6d, 0xa3, + 0x59, 0x3a, 0x37, 0xfd, 0x8c, 0x33, 0x7c, 0x43, + 0x85, 0xcc, 0x2e, 0xb0, 0xdf, 0xc4, 0xdd, 0xc5, + 0xe6, 0xea, 0x41, 0x3a, 0x93, 0xba, 0xf4, 0xad, + 0xd6, 0xbd, 0x40, 0x55, 0x6e, 0xa5, 0x9a, 0xe6, + 0x4c, 0x0e, 0x74, 0x9c, 0x75, 0x10, 0xf7, 0xa0, + 0xfd, 0xad, 0xa7, 0xbd, 0x22, 0x1f, 0x63, 0x9c, + 0xe6, 0x1f, 0x1b, 0x89, 0xc7, 0xaf, 0x15, 0x87, + 0xc4, 0x50, 0xc3, 0x65, 0xce, 0xb5, 0x0a, 0x2b, + 0x73, 0xac, 0x72, 0xf5, 0x6c, 0x83, 0x1f, 0x66, + 0xcb, 0xac, 0x58, 0x73, 0xad, 0x5b, 0x71, 0x75, + 0x6c, 0x30, 0xb7, 0x2f, 0x72, 0x31, 0x1e, 0x84, + 0xf1, 0x47, 0xa9, 0x32, 0x1f, 0x21, 0xaf, 0x42, + 0x78, 0xa3, 0xd4, 0x99, 0x0f, 0x90, 0xd7, 0xa1, + 0x3c, 0x51, 0xea, 0x4c, 0x87, 0xc8, 0x6a, 0x7f, + 0xf6, 0x27, 0x8a, 0x3c, 0x93, 0xff, 0x00, 0xd0, + 0x99, 0x0f, 0x90, 0xd6, 0x42, 0xe6, 0x3f, 0x85, + 0x38, 0x82, 0xed, 0x56, 0x63, 0xb8, 0x61, 0x61, + 0x62, 0xb6, 0x26, 0xeb, 0x92, 0x47, 0x5b, 0x85, + 0x70, 0x95, 0xac, 0x00, 0xb1, 0x69, 0x91, 0x92, + 0x4d, 0x84, 0xb5, 0x0d, 0x8d, 0xf7, 0x06, 0xac, + 0xc0, 0xb6, 0x21, 0x98, 0xd7, 0xa1, 0x3c, 0x51, + 0xea, 0x4c, 0x87, 0xc8, 0x6a, 0x63, 0xeb, 0x27, + 0x8a, 0x3b, 0xff, 0x00, 0xfb, 0x13, 0x21, 0xf2, + 0x1a, 0xe2, 0x93, 0x0f, 0x63, 0xac, 0xea, 0xa7, + 0x89, 0xf1, 0x38, 0x9c, 0x5c, 0xcf, 0x81, 0xf2, + 0x6c, 0x3c, 0x64, 0xe2, 0xf0, 0xeb, 0xc0, 0x9d, + 0xda, 0x47, 0x35, 0x60, 0xbb, 0x45, 0xdc, 0x5f, + 0x6c, 0xaa, 0xdf, 0x73, 0xc8, 0x17, 0x9b, 0x03, + 0x33, 0x03, 0xb1, 0x59, 0xc2, 0x4f, 0xb1, 0xcf, + 0x10, 0x02, 0xec, 0xf0, 0xdf, 0x0b, 0xf0, 0xdc, + 0xbe, 0x31, 0x59, 0x49, 0x31, 0x4f, 0x0b, 0xe4, + 0x19, 0x90, 0x4d, 0xa8, 0x0e, 0xcb, 0xcb, 0x2c, + 0xb6, 0x4c, 0xe9, 0xb5, 0x7b, 0xf2, 0xac, 0x63, + 0x70, 0x99, 0x9d, 0x0e, 0x49, 0x3c, 0x01, 0x9f, + 0xbc, 0xa3, 0xad, 0x6f, 0x1f, 0x90, 0xc7, 0x5d, + 0xc1, 0x64, 0xca, 0x9e, 0x4b, 0x19, 0x90, 0x4c, + 0xd7, 0xbb, 0x46, 0xcf, 0x22, 0x84, 0xe0, 0x1a, + 0xb9, 0xe6, 0x13, 0x02, 0x82, 0x53, 0x81, 0x4d, + 0x8e, 0x6e, 0x4e, 0x52, 0xa3, 0x86, 0xc4, 0x7b, + 0x14, 0xe6, 0x78, 0x67, 0x09, 0x46, 0xc5, 0x8b, + 0xdd, 0x82, 0x96, 0x3f, 0x88, 0x32, 0x0c, 0xb3, + 0x91, 0xb2, 0x00, 0xa6, 0x5b, 0xb7, 0x7f, 0x27, + 0xd6, 0xb2, 0xe9, 0x14, 0x29, 0x69, 0xae, 0xa9, + 0x9e, 0x4a, 0xe3, 0xd4, 0xe4, 0xfb, 0x2c, 0xc4, + 0x7a, 0x13, 0xc5, 0x1e, 0xa4, 0xc8, 0x7c, 0x86, + 0xbd, 0x09, 0xe2, 0x8f, 0x52, 0x64, 0x3e, 0x43, + 0x5c, 0x42, 0x9c, 0xee, 0x23, 0x23, 0x88, 0x6d, + 0x8c, 0xe5, 0x56, 0xa1, 0x79, 0x1a, 0x8f, 0xa6, + 0x6e, 0x58, 0xe3, 0xf9, 0x25, 0x8b, 0x17, 0x80, + 0x49, 0x84, 0x17, 0x8b, 0x25, 0x1d, 0xdb, 0xf7, + 0x6a, 0x35, 0x53, 0xf0, 0x94, 0x7e, 0xb4, 0x75, + 0xc4, 0x28, 0x47, 0x10, 0x66, 0xd2, 0x94, 0x67, + 0x72, 0xe9, 0x4a, 0x55, 0x94, 0xba, 0xb5, 0x29, + 0x4a, 0xc8, 0x58, 0x05, 0xa9, 0x60, 0x2f, 0x81, + 0x05, 0xac, 0x22, 0x04, 0x00, 0x62, 0x04, 0x46, + 0x22, 0x22, 0x36, 0x8d, 0x7a, 0x4b, 0x9e, 0xf5, + 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, 0xef, + 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, 0xf5, + 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, 0xef, + 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, 0xf5, + 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, 0xef, + 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, 0xf5, + 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, 0xef, + 0x5b, 0xdf, 0xf9, 0xc6, 0xb2, 0x98, 0xb4, 0x71, + 0xdf, 0x12, 0xbf, 0x25, 0x8a, 0x55, 0xc6, 0xb1, + 0x4e, 0x3b, 0x95, 0xaa, 0xd8, 0xec, 0x0b, 0x97, + 0xd9, 0x04, 0x5b, 0x1c, 0xe5, 0xa3, 0xe6, 0x84, + 0x0b, 0x18, 0xae, 0xad, 0x45, 0x8b, 0x39, 0x39, + 0x37, 0x02, 0x21, 0xde, 0x95, 0x5b, 0x5c, 0x71, + 0x9a, 0xa7, 0x93, 0xc9, 0x29, 0x2e, 0xa7, 0x54, + 0xef, 0x64, 0x4e, 0xa8, 0x0d, 0xb8, 0x19, 0xa2, + 0x39, 0x1b, 0xfd, 0xbc, 0x3b, 0x13, 0x2e, 0x41, + 0x09, 0x2a, 0x17, 0x52, 0xda, 0x96, 0xb6, 0xa1, + 0x96, 0x9c, 0x88, 0x63, 0x3a, 0x28, 0xcd, 0xbb, + 0x8a, 0xb3, 0xb1, 0x27, 0x92, 0xb1, 0x8c, 0xb5, + 0x42, 0x72, 0x59, 0x11, 0x7d, 0x26, 0xa4, 0xec, + 0xae, 0x09, 0xa7, 0xda, 0xa4, 0x48, 0x58, 0xca, + 0x76, 0x17, 0xb7, 0x28, 0xf2, 0x98, 0x6d, 0xb9, + 0x6f, 0xac, 0x68, 0x3b, 0x8b, 0x33, 0x6d, 0x66, + 0x43, 0x17, 0x5b, 0x27, 0x22, 0x19, 0x4c, 0x88, + 0x76, 0x6e, 0xd0, 0x4d, 0x1e, 0xcc, 0x7b, 0xda, + 0x2e, 0x66, 0x2f, 0xa5, 0xe3, 0x94, 0x72, 0xf7, + 0x97, 0x2f, 0x2f, 0x8b, 0xbc, 0xfa, 0x4b, 0x9e, + 0xf5, 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, + 0xef, 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, + 0xf5, 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, + 0xef, 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, + 0xf5, 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, + 0xef, 0x5b, 0xdf, 0xf9, 0x7d, 0x7a, 0x4b, 0x9e, + 0xf5, 0xbd, 0xff, 0x00, 0x97, 0xd7, 0xa4, 0xb9, + 0xef, 0x5b, 0xdf, 0xf9, 0x7d, 0x70, 0xbd, 0xab, + 0xd6, 0xac, 0x5c, 0xb4, 0xc2, 0xcf, 0x75, 0x2c, + 0x5a, 0x73, 0x2c, 0x3c, 0xfa, 0x79, 0x76, 0xac, + 0x39, 0xda, 0xd2, 0x23, 0x2e, 0x45, 0x80, 0x80, + 0xef, 0x3e, 0x28, 0x08, 0x8c, 0x77, 0x44, 0x7f, + 0x74, 0xbb, 0xf0, 0x33, 0xfd, 0x7d, 0x7d, 0x61, + 0x7f, 0x1d, 0x2b, 0xf6, 0x2b, 0xda, 0x0f, 0x7a, + 0x34, 0x7e, 0xf4, 0xe9, 0x9f, 0x8c, 0x72, 0x7f, + 0xb7, 0x3b, 0xea, 0x71, 0x81, 0xac, 0x88, 0x0c, + 0x71, 0x8a, 0xe5, 0x20, 0x29, 0x12, 0x8f, 0xec, + 0x8d, 0x2f, 0x21, 0x46, 0xd3, 0x1a, 0xfb, 0x76, + 0xdf, 0xc6, 0x5d, 0xfc, 0xfd, 0x71, 0x86, 0x5e, + 0xae, 0x5e, 0xf4, 0x64, 0x78, 0x68, 0x31, 0xce, + 0xa9, 0x8d, 0x87, 0x1c, 0xf8, 0x51, 0x76, 0x07, + 0x20, 0xfb, 0xcb, 0x5e, 0xed, 0xea, 0x4d, 0x9a, + 0xf4, 0xf1, 0xed, 0xb2, 0x95, 0x28, 0x4c, 0x9a, + 0x2b, 0x60, 0xed, 0xbe, 0xda, 0xa3, 0x97, 0x56, + 0x77, 0x29, 0x39, 0x3c, 0x8f, 0x0d, 0x71, 0x37, + 0x10, 0x56, 0xa1, 0xd4, 0x9e, 0x8b, 0x3e, 0xb6, + 0x33, 0x2a, 0xab, 0x72, 0xb8, 0xb3, 0xa9, 0xd4, + 0x9d, 0xf1, 0x3d, 0xaf, 0x21, 0x1d, 0xdc, 0xd2, + 0xda, 0xfd, 0x28, 0x8e, 0x52, 0xde, 0x31, 0x2d, + 0xbd, 0x9d, 0xca, 0xd1, 0xf0, 0xdf, 0x14, 0x47, + 0x0e, 0xe3, 0xe1, 0x07, 0x2c, 0xea, 0x85, 0x6c, + 0x53, 0xb2, 0x59, 0x5b, 0x7e, 0xd8, 0xd8, 0xdf, + 0xb2, 0x73, 0xe3, 0x90, 0x3b, 0x47, 0x24, 0x9d, + 0xa2, 0x89, 0x2d, 0xc7, 0x68, 0xc2, 0x59, 0xe3, + 0x2e, 0x30, 0xce, 0xe2, 0xaf, 0x71, 0x32, 0x02, + 0xee, 0x36, 0x9e, 0x26, 0x99, 0x64, 0x43, 0x19, + 0x8a, 0x6b, 0xdd, 0x56, 0xbe, 0x5f, 0x3c, 0xd6, + 0xdc, 0x41, 0x45, 0x7b, 0x2d, 0x4b, 0x1a, 0xba, + 0x98, 0xd5, 0xdb, 0xbd, 0x15, 0x13, 0x2c, 0x95, + 0x49, 0xb9, 0x6b, 0x1c, 0x86, 0x2d, 0xb9, 0x46, + 0x59, 0x3a, 0x16, 0xdd, 0x56, 0x6c, 0x55, 0xba, + 0xd6, 0xd6, 0xb1, 0xd2, 0x39, 0x11, 0x7a, 0x18, + 0x2c, 0x98, 0x25, 0x38, 0x76, 0x60, 0x4e, 0xf3, + 0xe2, 0x94, 0x77, 0xeb, 0x8f, 0x71, 0xa5, 0x97, + 0xc9, 0x1e, 0x3e, 0x7d, 0x8c, 0x38, 0xde, 0xcf, + 0x63, 0x3b, 0x8f, 0x3a, 0xd1, 0x62, 0xb6, 0x33, + 0xf7, 0xbb, 0xc1, 0x46, 0x72, 0x2b, 0x72, 0xba, + 0x8c, 0xe4, 0x60, 0x40, 0x9c, 0x73, 0x94, 0x6f, + 0xb4, 0xeb, 0xed, 0xdb, 0x7f, 0x19, 0x77, 0xf3, + 0xf5, 0xc3, 0xb8, 0x8b, 0x97, 0xb2, 0x31, 0x53, + 0x29, 0x9b, 0xc5, 0xe3, 0xec, 0xca, 0x2e, 0x30, + 0x1d, 0x15, 0xee, 0x5d, 0x4d, 0x77, 0x74, 0x4c, + 0xba, 0x82, 0x0c, 0xe4, 0x64, 0xf2, 0x11, 0x2c, + 0xe2, 0x0b, 0x69, 0x90, 0x28, 0xee, 0xd5, 0xe5, + 0xa7, 0x86, 0xbd, 0x91, 0xea, 0xcd, 0x4b, 0x90, + 0x8f, 0x08, 0x5e, 0xe2, 0x18, 0xec, 0x52, 0xb4, + 0xdd, 0x15, 0x34, 0xa6, 0x3e, 0xb6, 0xd1, 0x11, + 0xda, 0x52, 0x26, 0x15, 0xe7, 0xaf, 0xb0, 0x35, + 0xaa, 0x3f, 0x6e, 0x81, 0xe4, 0x3c, 0x67, 0x10, + 0x55, 0xa5, 0xc6, 0xe2, 0xfc, 0xe3, 0xf3, 0xd4, + 0x6a, 0x29, 0xdc, 0x5b, 0x51, 0x8b, 0xa7, 0x67, + 0x12, 0x35, 0x45, 0x76, 0x1f, 0xcb, 0x80, 0x5c, + 0xd9, 0x4b, 0x19, 0x70, 0x08, 0x92, 0x12, 0x82, + 0xe5, 0x59, 0x0f, 0x57, 0x73, 0x82, 0x1e, 0x11, + 0x5f, 0x0e, 0xe4, 0x33, 0x16, 0xa3, 0x3f, 0x46, + 0x8d, 0x5b, 0x4b, 0xb5, 0x74, 0x9c, 0xd5, 0x71, + 0x13, 0xeb, 0xe3, 0xae, 0x9a, 0x13, 0xd2, 0x04, + 0x7b, 0x43, 0x6a, 0x66, 0x71, 0xac, 0xae, 0xb9, + 0x83, 0x3d, 0xe5, 0x91, 0x2c, 0x2f, 0x24, 0x63, + 0xf1, 0xf8, 0x3c, 0xae, 0x56, 0xd5, 0x3b, 0x38, + 0x0a, 0x39, 0x06, 0x3e, 0xd5, 0xe9, 0x6c, 0xb2, + 0xdb, 0x6c, 0xdf, 0xad, 0x60, 0xd3, 0x2a, 0x14, + 0x88, 0xd6, 0x29, 0xa9, 0x04, 0x90, 0x98, 0x32, + 0x88, 0x9f, 0x19, 0x85, 0xbf, 0x77, 0xdb, 0xb6, + 0xfe, 0x32, 0xef, 0xe7, 0xeb, 0x89, 0x1b, 0x4f, + 0x2b, 0x91, 0xaa, 0xd6, 0xf1, 0x9f, 0x0d, 0x55, + 0x63, 0x6b, 0xdd, 0xb2, 0x96, 0x1d, 0x63, 0xc3, + 0xf1, 0x13, 0x8d, 0x04, 0xc5, 0xb0, 0x4a, 0x52, + 0x6d, 0x4a, 0x58, 0x4b, 0xdf, 0x94, 0x89, 0x41, + 0x33, 0x1e, 0x2c, 0x6b, 0x07, 0x96, 0xe2, 0xce, + 0x36, 0xe2, 0xec, 0x64, 0xf1, 0x3d, 0xbb, 0xf5, + 0xf1, 0x3e, 0x0a, 0x51, 0x5d, 0xa7, 0x4d, 0x18, + 0xeb, 0x43, 0x45, 0xf7, 0x32, 0xf6, 0x2d, 0x64, + 0xaa, 0x14, 0x0c, 0x59, 0x93, 0x39, 0xad, 0x44, + 0x2c, 0x58, 0x0a, 0x8a, 0xeb, 0x4c, 0x4c, 0xb8, + 0x06, 0x38, 0x5c, 0x2a, 0x71, 0x76, 0x4a, 0xec, + 0xe6, 0xf8, 0x93, 0x2b, 0xc3, 0x97, 0xac, 0xd5, + 0xbf, 0x61, 0xd4, 0xd0, 0xdc, 0x6d, 0xda, 0x80, + 0x16, 0xe8, 0x34, 0x5f, 0xfb, 0xe6, 0xad, 0x8c, + 0x6d, 0xd4, 0xde, 0x13, 0x99, 0xe5, 0xf2, 0xc4, + 0x16, 0xd1, 0x3b, 0x71, 0x8d, 0x27, 0x71, 0x6e, + 0x73, 0xc1, 0xdc, 0x3a, 0x18, 0xa3, 0xc7, 0x5d, + 0x5d, 0xa7, 0x91, 0xe5, 0x23, 0x88, 0x72, 0x78, + 0xca, 0xb8, 0x22, 0x98, 0xed, 0x12, 0x00, 0x16, + 0xa8, 0xe4, 0x7b, 0x6b, 0x24, 0x26, 0x79, 0x7a, + 0x73, 0x1d, 0xd1, 0xcd, 0xb7, 0x10, 0x70, 0xe7, + 0x0f, 0x71, 0xc7, 0x1a, 0xcf, 0x13, 0xe0, 0xbc, + 0x2f, 0x21, 0x57, 0x38, 0xb5, 0x23, 0x1b, 0x98, + 0x3c, 0x17, 0x5c, 0xaf, 0xd3, 0xc7, 0xdb, 0xa1, + 0x96, 0xb2, 0xf1, 0xb4, 0x69, 0xae, 0xeb, 0x15, + 0x26, 0xd5, 0x65, 0x03, 0x56, 0x92, 0x02, 0x81, + 0x61, 0x44, 0x0e, 0x3e, 0xf7, 0x13, 0xf1, 0x47, + 0x1a, 0x55, 0x8c, 0xb5, 0x9b, 0xb5, 0xe8, 0xaf, + 0x06, 0x4b, 0xb8, 0x7b, 0x54, 0x3a, 0x2b, 0x87, + 0xbe, 0x32, 0x19, 0x2a, 0x22, 0x29, 0x36, 0xd8, + 0x7a, 0xf9, 0x96, 0xc6, 0x17, 0x3d, 0x7d, 0xba, + 0x7e, 0x59, 0xd5, 0xbc, 0x26, 0x13, 0x8a, 0x78, + 0xda, 0xf6, 0x4b, 0x17, 0x90, 0xb1, 0x4b, 0x24, + 0x59, 0x52, 0x4d, 0x5a, 0x3e, 0xd3, 0x1b, 0x41, + 0xd1, 0x6d, 0x4c, 0xa5, 0x87, 0xb7, 0x73, 0xff, + 0x00, 0xdf, 0xd7, 0x47, 0x89, 0xdf, 0xe5, 0xee, + 0xd7, 0x12, 0x95, 0xcb, 0x76, 0x6d, 0x90, 0x67, + 0xaa, 0x08, 0x15, 0x97, 0xb5, 0xe4, 0x23, 0xe0, + 0xed, 0xf6, 0x19, 0x69, 0x14, 0xc4, 0x6f, 0xdf, + 0xb4, 0x7d, 0xdd, 0x46, 0xaa, 0x7e, 0x12, 0x8f, + 0xd6, 0x8e, 0xb8, 0x9b, 0xfd, 0x21, 0xcd, 0xff, + 0x00, 0x29, 0xda, 0xfe, 0xd3, 0xc6, 0x54, 0x6a, + 0xa2, 0x8d, 0x0c, 0xab, 0x42, 0xe9, 0x63, 0xb2, + 0xd5, 0xdf, 0x64, 0xa6, 0xfa, 0xd4, 0x3c, 0xd7, + 0xb1, 0xed, 0xed, 0x97, 0x6c, 0xd3, 0x5b, 0x32, + 0x35, 0x60, 0xc5, 0x56, 0x28, 0x2e, 0x99, 0xf3, + 0x0c, 0xd5, 0x8f, 0x6a, 0xb4, 0x63, 0xaa, 0x79, + 0x4a, 0xee, 0x4a, 0xf1, 0xcf, 0xab, 0x8c, 0x1b, + 0x97, 0x18, 0xe0, 0x15, 0x62, 0xa6, 0x8d, 0x3a, + 0xd5, 0xae, 0x8d, 0xbf, 0x1b, 0x9d, 0x64, 0x9e, + 0x81, 0x35, 0x0b, 0xe5, 0xea, 0x5a, 0x53, 0x11, + 0xd0, 0x12, 0x36, 0xc0, 0xe8, 0x53, 0x61, 0xe2, + 0x8c, 0x76, 0x65, 0x9c, 0x43, 0x91, 0x38, 0x61, + 0x80, 0x9a, 0x57, 0x53, 0x88, 0x83, 0x28, 0x12, + 0x63, 0x33, 0xe2, 0xd9, 0x66, 0x38, 0x6e, 0x2d, + 0x21, 0xee, 0x88, 0xdf, 0xc8, 0x1b, 0xef, 0xdf, + 0x85, 0xba, 0x72, 0x1d, 0x5b, 0x38, 0xa6, 0xb9, + 0xa0, 0xb9, 0x8d, 0x92, 0x6e, 0xcd, 0x65, 0x9b, + 0xd1, 0xda, 0x3d, 0xc7, 0x20, 0x98, 0xc0, 0x8c, + 0xed, 0xb0, 0x72, 0xfd, 0xcf, 0xed, 0x3c, 0x29, + 0xfe, 0x57, 0x10, 0xff, 0x00, 0x2d, 0x3f, 0xfb, + 0xa5, 0xdf, 0x81, 0x9f, 0xeb, 0xeb, 0xeb, 0x0b, + 0xf8, 0xe5, 0x5f, 0xb1, 0x5e, 0xd0, 0x7b, 0xd1, + 0xa3, 0xf7, 0xa7, 0x4c, 0xfc, 0x63, 0x93, 0xfd, + 0xb9, 0xdf, 0x53, 0x8c, 0xa0, 0x06, 0x4a, 0x63, + 0x12, 0x27, 0xb4, 0x77, 0xf8, 0xab, 0xbd, 0x4d, + 0x86, 0x5e, 0xf0, 0x00, 0x91, 0x14, 0xfd, 0xc1, + 0x89, 0x9f, 0xa9, 0xc4, 0xb9, 0x3a, 0x16, 0x97, + 0x5f, 0x29, 0x47, 0x8a, 0x38, 0x1a, 0xfd, 0x11, + 0x93, 0x1e, 0x76, 0x4d, 0x49, 0xcf, 0x93, 0x23, + 0xa3, 0xcd, 0x04, 0xea, 0xf3, 0x05, 0x0a, 0xb4, + 0x11, 0x12, 0x04, 0x97, 0x4a, 0xd9, 0xe2, 0xb3, + 0xbf, 0xd8, 0x9f, 0x3f, 0xc3, 0xf2, 0xb3, 0xc5, + 0x07, 0xd7, 0x16, 0x4e, 0xde, 0x29, 0x6c, 0x03, + 0x3a, 0x54, 0xb3, 0xb9, 0x9e, 0xb6, 0x5b, 0x06, + 0xd1, 0x19, 0x89, 0x0e, 0x9d, 0x6b, 0x97, 0xa8, + 0x23, 0x9c, 0x57, 0xcc, 0x02, 0x0c, 0x11, 0xdb, + 0x5c, 0x03, 0xc3, 0x14, 0x32, 0x55, 0x2c, 0xe1, + 0x78, 0x51, 0xb6, 0x23, 0xc2, 0x20, 0xf5, 0xf6, + 0x3b, 0x16, 0xf3, 0x1d, 0xbf, 0x29, 0x66, 0xe4, + 0xbc, 0x8a, 0x03, 0x9b, 0xb3, 0x3f, 0x1b, 0x8f, + 0x61, 0x14, 0xc7, 0x8f, 0x43, 0x96, 0x3b, 0xb6, + 0x8d, 0x70, 0x96, 0x5b, 0x11, 0x94, 0xc2, 0x20, + 0x31, 0xb8, 0x1c, 0x67, 0x0e, 0xf1, 0x32, 0x72, + 0x79, 0x5a, 0x78, 0xc7, 0xe0, 0x0f, 0x14, 0xcb, + 0x21, 0xe1, 0x47, 0x22, 0xe3, 0x54, 0xcb, 0x78, + 0xbb, 0x14, 0x24, 0x2d, 0xa8, 0xf1, 0xdd, 0xb2, + 0xcc, 0x9a, 0xec, 0xa7, 0xb3, 0xf5, 0x43, 0x97, + 0x59, 0x25, 0x60, 0x59, 0x61, 0xd8, 0x65, 0x5b, + 0x72, 0xb1, 0xce, 0xb5, 0x23, 0x2f, 0x7d, 0x55, + 0x97, 0x22, 0xde, 0xce, 0x50, 0x5c, 0x7b, 0x7e, + 0xdd, 0x58, 0x8e, 0x41, 0xe5, 0x13, 0x81, 0x9e, + 0xf8, 0xd7, 0x1e, 0x7f, 0xfd, 0x2a, 0xe3, 0xef, + 0xe4, 0xc0, 0xfa, 0x9c, 0x29, 0x72, 0xdb, 0xd5, + 0x56, 0xa5, 0x4e, 0x23, 0xc2, 0xd9, 0xb3, 0x65, + 0xc7, 0x0b, 0x4d, 0x74, 0x27, 0x23, 0x5d, 0x8d, + 0x73, 0x58, 0x5e, 0x28, 0x2d, 0x40, 0x32, 0x66, + 0x73, 0xdc, 0x23, 0x13, 0x33, 0xac, 0xe3, 0xec, + 0xfb, 0x31, 0xf0, 0xdf, 0x11, 0x62, 0x4d, 0xec, + 0xb0, 0x3c, 0x3b, 0x5b, 0x8f, 0x33, 0x79, 0x4b, + 0x36, 0xd1, 0x37, 0x85, 0xb5, 0x6b, 0xa7, 0x13, + 0x62, 0x90, 0xd3, 0x73, 0x2b, 0xcf, 0x49, 0xb0, + 0xae, 0xaf, 0x22, 0x7a, 0x1c, 0xeb, 0x2f, 0x6a, + 0x19, 0xd7, 0x07, 0xe3, 0xd5, 0x69, 0x0c, 0xbd, + 0x4f, 0x31, 0xc5, 0xae, 0xb7, 0x50, 0x58, 0x33, + 0x62, 0xba, 0xad, 0x96, 0x2b, 0xb2, 0xb1, 0xca, + 0x89, 0xe6, 0x00, 0xb1, 0xd2, 0x67, 0x48, 0x8a, + 0x22, 0x0f, 0x90, 0xb6, 0xf2, 0x4e, 0xb3, 0xb7, + 0x1d, 0x93, 0xa7, 0x60, 0xb8, 0x7a, 0x9f, 0x09, + 0x71, 0x27, 0x0c, 0x00, 0x34, 0x5a, 0xbc, 0x87, + 0x10, 0x54, 0xe0, 0x7a, 0x78, 0x26, 0x51, 0x44, + 0x89, 0xf2, 0x93, 0x6b, 0x65, 0xe3, 0x19, 0x6a, + 0xe0, 0x8c, 0x11, 0x00, 0x62, 0x1d, 0x05, 0x11, + 0xc8, 0x5c, 0xbc, 0x1d, 0x35, 0xed, 0xaa, 0xe1, + 0xd5, 0xe0, 0x4c, 0x15, 0x2b, 0xc4, 0xb6, 0x0b, + 0x09, 0x39, 0x04, 0xbf, 0x24, 0x76, 0x2b, 0xd8, + 0xe5, 0x99, 0xe4, 0xb2, 0x1d, 0x50, 0x26, 0xac, + 0xbc, 0x61, 0xe7, 0x89, 0x98, 0xef, 0xfa, 0x9c, + 0x41, 0xfe, 0x9d, 0x70, 0xc7, 0xf2, 0x1f, 0x13, + 0xea, 0xa4, 0x60, 0x72, 0xbc, 0x2b, 0xc4, 0x1c, + 0x3d, 0x92, 0x7b, 0x47, 0x8a, 0x38, 0x43, 0x8a, + 0xec, 0x62, 0x11, 0x47, 0x12, 0xf0, 0x7f, 0x2c, + 0x3e, 0xc5, 0x4c, 0xc5, 0xd4, 0xbe, 0x41, 0xd5, + 0x81, 0x39, 0x0a, 0xf9, 0x2c, 0x19, 0x83, 0x49, + 0x89, 0x00, 0xb1, 0x5d, 0x8c, 0xa4, 0x03, 0x3e, + 0xc8, 0x33, 0x8b, 0xba, 0x8f, 0x07, 0xf0, 0x96, + 0x5b, 0x31, 0x9b, 0xe1, 0x20, 0x6b, 0xca, 0x66, + 0xd8, 0xe5, 0x71, 0x39, 0x5e, 0x1c, 0xa7, 0xd8, + 0xc9, 0xdc, 0xad, 0x7c, 0x85, 0xa6, 0xe2, 0x6d, + 0x09, 0xf2, 0xf5, 0xe4, 0x2b, 0xad, 0xc7, 0x00, + 0x5e, 0x4e, 0x0a, 0x70, 0xd8, 0x47, 0x85, 0x72, + 0x59, 0x9e, 0x1f, 0xc4, 0xe6, 0x07, 0x9c, 0x3a, + 0xe1, 0x5b, 0x82, 0x1d, 0x7d, 0x14, 0x19, 0x63, + 0xba, 0x26, 0x14, 0xdc, 0x7e, 0x57, 0x15, 0xca, + 0x6c, 0x99, 0xe6, 0x2a, 0x3e, 0xee, 0x7a, 0x67, + 0xb7, 0x14, 0xf1, 0xfe, 0x66, 0xd6, 0x22, 0xbe, + 0x0e, 0xbd, 0xde, 0x2c, 0xc8, 0x62, 0xfa, 0x39, + 0xbc, 0x3e, 0x42, 0xe6, 0x6e, 0xd6, 0x54, 0x32, + 0x55, 0xf1, 0x14, 0x69, 0xd0, 0xc7, 0xde, 0xb3, + 0x6c, 0x19, 0x60, 0xae, 0x05, 0x97, 0x15, 0xa5, + 0x57, 0x04, 0x55, 0x4b, 0xa5, 0xa4, 0x05, 0x1b, + 0x46, 0x03, 0x12, 0xb6, 0x81, 0xa7, 0x05, 0x8b, + 0xc3, 0xd4, 0x61, 0x2c, 0xe0, 0x93, 0xe1, 0x0b, + 0x93, 0xe1, 0x9c, 0xc4, 0x89, 0x44, 0xcc, 0x7b, + 0x5e, 0x4b, 0x25, 0x62, 0xac, 0xcf, 0xde, 0xaa, + 0x31, 0x3b, 0x72, 0xeb, 0x8b, 0xdc, 0x96, 0x2d, + 0xca, 0x66, 0x76, 0xe9, 0x2d, 0xaa, 0x31, 0x62, + 0xd8, 0x32, 0x7d, 0xc4, 0x06, 0x13, 0x22, 0x43, + 0x3f, 0x72, 0x46, 0x66, 0x35, 0xc4, 0xf3, 0xb4, + 0xed, 0x3c, 0x41, 0x53, 0x69, 0xfb, 0x93, 0xb6, + 0x37, 0xbf, 0x6f, 0x7b, 0xee, 0xea, 0x35, 0x56, + 0x7f, 0xfd, 0x65, 0x1f, 0xac, 0x1d, 0x67, 0xc2, + 0xce, 0x1b, 0x36, 0xdb, 0x11, 0x9a, 0xc9, 0xf6, + 0x86, 0xab, 0x39, 0x55, 0x4a, 0x63, 0xe6, 0xeb, + 0xa5, 0xa6, 0xb5, 0x16, 0x1d, 0xa4, 0xb5, 0x91, + 0xc9, 0x48, 0x2e, 0x58, 0xc9, 0x01, 0xd8, 0x64, + 0xcb, 0x6d, 0xe7, 0xcc, 0x59, 0xff, 0x00, 0xd2, + 0x0a, 0x7f, 0x41, 0xeb, 0xcc, 0x59, 0xff, 0x00, + 0xd2, 0x0a, 0x7f, 0x41, 0xeb, 0xcc, 0x59, 0xff, + 0x00, 0xd2, 0x0a, 0x7f, 0x41, 0xeb, 0xcc, 0x59, + 0xff, 0x00, 0xd2, 0x0a, 0x7f, 0x41, 0xeb, 0xcc, + 0x59, 0xff, 0x00, 0xd2, 0x0a, 0x7f, 0x41, 0xe9, + 0xc7, 0x4b, 0x85, 0xb8, 0x9a, 0xc8, 0x57, 0xe9, + 0xc3, 0xcd, 0x59, 0xda, 0x92, 0x0a, 0x97, 0x73, + 0xf4, 0xa1, 0x85, 0xe0, 0x3d, 0x86, 0x59, 0xd3, + 0x3e, 0x48, 0x99, 0xf1, 0xb9, 0x0b, 0x6f, 0x24, + 0xea, 0xd2, 0x23, 0x84, 0xb8, 0xaa, 0x5d, 0x4a, + 0xbc, 0xdc, 0xb6, 0xb8, 0xcc, 0xd7, 0x93, 0xaf, + 0x54, 0x60, 0x0a, 0x6c, 0xb6, 0x3c, 0x05, 0xe2, + 0xa3, 0x95, 0x80, 0x5d, 0x5f, 0x71, 0xb1, 0x8c, + 0xef, 0xb4, 0xe9, 0xd7, 0x43, 0x86, 0x78, 0x94, + 0xa9, 0xd6, 0x62, 0xd4, 0xfb, 0x23, 0x9c, 0xab, + 0x28, 0x4b, 0x1d, 0xbf, 0x49, 0x6c, 0x67, 0x80, + 0xb9, 0x44, 0x99, 0xb7, 0x8a, 0x33, 0x3b, 0xce, + 0xab, 0x95, 0x8e, 0x19, 0xe2, 0x54, 0x85, 0xb4, + 0xc5, 0x8a, 0xc4, 0xdc, 0xe5, 0x50, 0x17, 0xa2, + 0x48, 0x82, 0x1c, 0xad, 0xf0, 0x5e, 0x3a, 0xe4, + 0xc0, 0x86, 0x0a, 0x3b, 0xb7, 0x19, 0xd0, 0xc5, + 0x3e, 0x17, 0xe2, 0x5b, 0x12, 0x4f, 0x55, 0x58, + 0x20, 0xce, 0xd3, 0xe4, 0x87, 0xb8, 0x1a, 0xc5, + 0xac, 0x99, 0x38, 0x38, 0x00, 0x99, 0x5a, 0x5c, + 0xd9, 0x93, 0x28, 0x11, 0x52, 0x98, 0xc2, 0x98, + 0x00, 0x22, 0x84, 0x55, 0x8e, 0x1b, 0xcd, 0x30, + 0xec, 0xa4, 0xec, 0xa5, 0xa9, 0xe2, 0xcc, 0x2b, + 0xe9, 0x1d, 0x74, 0xf3, 0xf5, 0x9f, 0xe1, 0x04, + 0xe3, 0x0e, 0x84, 0x26, 0xbf, 0x4c, 0xe2, 0xc3, + 0x0a, 0xcc, 0x05, 0x79, 0x02, 0x87, 0x48, 0x4c, + 0x68, 0x17, 0x6b, 0x87, 0xb3, 0x83, 0x2d, 0x50, + 0xd8, 0x49, 0xab, 0x89, 0xf1, 0x76, 0x90, 0xf4, + 0x9c, 0x94, 0x0b, 0x51, 0x66, 0xae, 0x21, 0xd5, + 0xdc, 0x1c, 0xc2, 0x41, 0xcc, 0xa6, 0x14, 0x41, + 0x81, 0x04, 0xec, 0x42, 0x51, 0x02, 0x8a, 0xbc, + 0x39, 0xc4, 0x96, 0x1c, 0x50, 0x64, 0x2a, 0x56, + 0x76, 0xa9, 0x9c, 0xc2, 0x96, 0x4d, 0x64, 0xc0, + 0xc6, 0x0b, 0x7d, 0x81, 0x60, 0x46, 0x5f, 0x78, + 0x46, 0x67, 0xc9, 0x1a, 0x61, 0x2b, 0x87, 0xb8, + 0x89, 0x82, 0x95, 0xf5, 0x5b, 0x23, 0x9e, 0xa9, + 0x30, 0xb5, 0x73, 0x08, 0x75, 0x0f, 0x6c, 0x1f, + 0x70, 0xf3, 0x18, 0x0e, 0xfe, 0x4d, 0xca, 0x35, + 0xe6, 0x2c, 0xff, 0x00, 0xe9, 0x05, 0x3f, 0xa0, + 0xf5, 0xe6, 0x2c, 0xff, 0x00, 0xe9, 0x05, 0x3f, + 0xa0, 0xf5, 0xe6, 0x2c, 0xff, 0x00, 0xe9, 0x05, + 0x3f, 0xa0, 0xf5, 0xe6, 0x2c, 0xff, 0x00, 0xe9, + 0x05, 0x3f, 0xa0, 0xf5, 0xe6, 0x2c, 0xff, 0x00, + 0xe9, 0x05, 0x3f, 0xa0, 0xf5, 0xe6, 0x2c, 0xff, + 0x00, 0xe9, 0x05, 0x3f, 0xa0, 0xf5, 0xc3, 0x05, + 0x8d, 0x45, 0x8a, 0xb4, 0xe6, 0x73, 0xbd, 0x24, + 0xda, 0xb0, 0x16, 0xde, 0x13, 0x19, 0x56, 0x43, + 0x39, 0xde, 0xb4, 0x56, 0x13, 0xe6, 0x6f, 0x39, + 0x8e, 0xc9, 0x1e, 0x50, 0x91, 0x09, 0xe6, 0x91, + 0xe6, 0x9f, 0xee, 0x87, 0x7e, 0x06, 0x7f, 0xaf, + 0xaf, 0xac, 0x2f, 0xe3, 0x95, 0x7e, 0xc5, 0x7b, + 0x41, 0xef, 0x46, 0x8f, 0xde, 0x9d, 0x33, 0xf1, + 0x8e, 0x4f, 0xf6, 0xd7, 0x7d, 0x46, 0x29, 0xcb, + 0x53, 0xd0, 0xe5, 0x31, 0x0f, 0x43, 0x80, 0x58, + 0x97, 0xa1, 0xa3, 0x2b, 0x6a, 0x5c, 0xb2, 0xdc, + 0x58, 0xa6, 0x04, 0xc8, 0x18, 0x14, 0x48, 0x90, + 0xcc, 0xc4, 0xc6, 0x9a, 0xe0, 0xaf, 0x9c, 0xa4, + 0x2c, 0x2e, 0x68, 0xab, 0x53, 0x2c, 0x3d, 0x99, + 0x3b, 0xff, 0x00, 0x05, 0x3d, 0xaa, 0x95, 0xa7, + 0xc0, 0x7d, 0xe8, 0x63, 0xd9, 0x31, 0xe4, 0xdf, + 0x6d, 0x79, 0x78, 0x97, 0xd6, 0xd5, 0x3e, 0x8b, + 0xd7, 0x97, 0x89, 0x7d, 0x6d, 0x53, 0xe8, 0xbd, + 0x79, 0x78, 0x93, 0xd6, 0xd5, 0x3e, 0x8b, 0xd7, + 0x97, 0x89, 0x3d, 0x6d, 0x53, 0xe8, 0xbd, 0x7b, + 0xae, 0x25, 0xf5, 0xb5, 0x4f, 0xa2, 0xf5, 0x94, + 0x3a, 0x3e, 0x1e, 0x99, 0xcb, 0xe0, 0xb2, 0xbc, + 0x3d, 0x6b, 0xaf, 0x92, 0xac, 0xcd, 0xa8, 0x66, + 0x13, 0x08, 0xb7, 0x2a, 0xe5, 0xc7, 0x07, 0x25, + 0x88, 0x08, 0xf6, 0xa6, 0x4f, 0x30, 0x81, 0x77, + 0xca, 0xcf, 0xc9, 0xaf, 0x75, 0xc4, 0xbe, 0xb6, + 0xa9, 0xf4, 0x5e, 0xbd, 0xd7, 0x12, 0xfa, 0xda, + 0xa7, 0xd1, 0x7a, 0xf7, 0x5c, 0x4b, 0xeb, 0x6a, + 0x9f, 0x45, 0xeb, 0xdd, 0x71, 0x2f, 0xad, 0xaa, + 0x7d, 0x17, 0xaf, 0x75, 0xc4, 0xbe, 0xb6, 0xa9, + 0xf4, 0x5e, 0xbd, 0xd7, 0x12, 0xfa, 0xda, 0xa7, + 0xd1, 0x7a, 0xf7, 0x5c, 0x4b, 0xeb, 0x6a, 0x9f, + 0x45, 0xea, 0xdf, 0x0f, 0x0f, 0x87, 0xbb, 0x05, + 0xcc, 0xa5, 0x2c, 0xbb, 0x66, 0x72, 0x55, 0xbb, + 0x47, 0x6a, 0xa1, 0x5a, 0xed, 0x44, 0x40, 0x33, + 0xc1, 0xdc, 0xb0, 0xae, 0x95, 0xf7, 0xf3, 0x84, + 0xae, 0x64, 0x8b, 0x92, 0x60, 0x86, 0x06, 0x60, + 0xbc, 0xbc, 0x49, 0xeb, 0x5a, 0x9f, 0x45, 0xeb, + 0xcb, 0xc4, 0xbe, 0xb6, 0xa9, 0xf4, 0x5e, 0xbc, + 0xbc, 0x4b, 0xeb, 0x6a, 0x9f, 0x45, 0xeb, 0xcb, + 0xc4, 0x9e, 0xb5, 0xa9, 0xf4, 0x5e, 0xbc, 0xbc, + 0x4b, 0xeb, 0x6a, 0x9f, 0x45, 0xeb, 0xcb, 0xc4, + 0x9e, 0xf7, 0x85, 0xaa, 0xfe, 0x4f, 0x35, 0xe9, + 0x18, 0x6c, 0x0d, 0x10, 0xc7, 0xe3, 0xab, 0xc9, + 0x9c, 0x28, 0x48, 0xda, 0xc7, 0x3d, 0x9b, 0x75, + 0x6c, 0xd9, 0x7b, 0x26, 0x59, 0x62, 0xc3, 0x36, + 0x8e, 0x66, 0x1c, 0xf7, 0x08, 0x8a, 0xd7, 0x00, + 0xa0, 0x00, 0x18, 0xd5, 0x5f, 0xc2, 0x13, 0xfa, + 0xc1, 0xd7, 0x12, 0xef, 0xff, 0x00, 0xd7, 0xd9, + 0x6f, 0xdb, 0x9f, 0xb7, 0xfd, 0x5e, 0x5f, 0xe3, + 0xfd, 0xd7, 0x12, 0xfe, 0x31, 0xe1, 0xaf, 0xff, + 0x00, 0xdc, 0x6a, 0x83, 0xed, 0xed, 0xd3, 0x3e, + 0x13, 0x3a, 0x97, 0xb7, 0xdb, 0x79, 0xc6, 0x59, + 0xe2, 0xd4, 0xd2, 0x99, 0x3f, 0xbf, 0x03, 0x55, + 0xce, 0xe4, 0xe7, 0x9f, 0x70, 0x03, 0x1d, 0xc3, + 0x11, 0xac, 0x8f, 0x09, 0x8f, 0xdb, 0x7e, 0x11, + 0xc5, 0x75, 0x23, 0x6f, 0x2d, 0xcb, 0xf9, 0xe6, + 0xe3, 0x94, 0x73, 0xb4, 0x73, 0x10, 0x45, 0x5a, + 0x35, 0x98, 0x3b, 0xf9, 0x05, 0x87, 0x31, 0xb4, + 0x14, 0xea, 0xc9, 0x63, 0xef, 0xd4, 0xbe, 0x1c, + 0x2f, 0x95, 0x4d, 0x14, 0x45, 0x61, 0xc8, 0x8b, + 0x6b, 0x60, 0xec, 0x56, 0x0a, 0x29, 0x1b, 0x3d, + 0xb7, 0x1f, 0x4d, 0x4c, 0x31, 0xbf, 0x8d, 0xe7, + 0xe6, 0xa6, 0xdb, 0x69, 0x82, 0xb8, 0xc9, 0xea, + 0xec, 0x40, 0x4c, 0xe1, 0xaa, 0x74, 0x54, 0xd6, + 0x9d, 0x95, 0xe6, 0xb2, 0xac, 0x04, 0xc4, 0x91, + 0xb1, 0xd1, 0x60, 0xab, 0x34, 0xa4, 0x47, 0xbc, + 0xbb, 0x3d, 0x2c, 0x70, 0xff, 0x00, 0x92, 0x12, + 0xd9, 0xee, 0xe6, 0x2d, 0xf8, 0x52, 0xbf, 0x0e, + 0xf6, 0xd1, 0xed, 0x45, 0x9b, 0xc4, 0x95, 0x46, + 0xb8, 0x61, 0x85, 0x63, 0xab, 0x56, 0xd5, 0xe7, + 0xb2, 0xd2, 0xa1, 0x2b, 0x2c, 0x73, 0x51, 0x65, + 0x1d, 0x58, 0x68, 0x02, 0xab, 0x0d, 0x66, 0x75, + 0x39, 0xfc, 0x66, 0x4e, 0x2f, 0x0d, 0x41, 0xe0, + 0xea, 0xb8, 0x9a, 0xeb, 0xc5, 0x78, 0x47, 0xbf, + 0xa5, 0x6e, 0xc3, 0x6e, 0x35, 0xf7, 0x2d, 0xaf, + 0x79, 0xfb, 0x52, 0x2c, 0x59, 0x60, 0xd7, 0xf2, + 0x73, 0x21, 0x62, 0xc9, 0xf7, 0x7a, 0xb3, 0x52, + 0xae, 0x0c, 0xd2, 0xac, 0x25, 0xfc, 0xad, 0x12, + 0xbe, 0xbb, 0x36, 0xe6, 0x5a, 0x80, 0xc5, 0xe5, + 0xeb, 0xf2, 0x64, 0xa2, 0xc1, 0xd8, 0x44, 0x5a, + 0xba, 0x55, 0x49, 0xd5, 0xd9, 0x50, 0x29, 0xad, + 0x7b, 0x3c, 0x7b, 0x3b, 0x87, 0x93, 0xa5, 0xc2, + 0x56, 0x11, 0x45, 0x54, 0x17, 0xc4, 0x2c, 0xcf, + 0x61, 0xb2, 0x15, 0x2b, 0x36, 0xdb, 0x6b, 0xf6, + 0x6d, 0x86, 0xa8, 0xb0, 0x26, 0xed, 0x8b, 0x6f, + 0x16, 0xc2, 0xae, 0xee, 0x73, 0xd6, 0xe4, 0xe7, + 0xae, 0xb6, 0x80, 0x2a, 0x79, 0xb5, 0x1f, 0xba, + 0xe1, 0x4f, 0xf2, 0xb8, 0x87, 0xf9, 0x69, 0xff, + 0x00, 0xdd, 0x2e, 0xfc, 0x10, 0xff, 0x00, 0x5f, + 0x5f, 0x58, 0x5f, 0xc7, 0x2a, 0xfd, 0x8e, 0xf6, + 0x83, 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0x67, 0xe3, + 0x1c, 0x9f, 0xed, 0xae, 0xfe, 0xe9, 0x8d, 0x09, + 0x8f, 0x94, 0x0a, 0x0a, 0x3d, 0xf1, 0x9d, 0xe3, + 0x57, 0x33, 0x78, 0x0a, 0xe5, 0x93, 0xa9, 0x94, + 0x69, 0x5d, 0x75, 0x7a, 0xf2, 0x07, 0x7a, 0x85, + 0xb7, 0xcc, 0x95, 0x84, 0xbe, 0xb6, 0xfd, 0x52, + 0x5c, 0xbb, 0x9c, 0xd2, 0xf5, 0x89, 0x2c, 0x84, + 0xb9, 0x77, 0x89, 0x88, 0xe6, 0xf4, 0x73, 0x2d, + 0xf1, 0x36, 0x7f, 0xb3, 0x5e, 0x8e, 0x65, 0xbe, + 0x26, 0xcf, 0xf6, 0x6b, 0xd1, 0xcc, 0xb7, 0xc4, + 0xd9, 0xfe, 0xcd, 0x7a, 0x39, 0x96, 0xf8, 0x9b, + 0x3f, 0xd9, 0xaf, 0x47, 0x32, 0xdf, 0x13, 0x67, + 0xfb, 0x35, 0x65, 0x15, 0xb8, 0x7a, 0xec, 0xa2, + 0xdc, 0xa0, 0xac, 0xa2, 0xe6, 0x06, 0x8e, 0x4d, + 0x2c, 0x2a, 0xdd, 0x5e, 0x81, 0xf4, 0xb2, 0x74, + 0xae, 0x2c, 0x4d, 0x5d, 0x66, 0xf2, 0x92, 0xc4, + 0x4b, 0xc7, 0x9d, 0xe6, 0x7b, 0xb6, 0xb6, 0x6d, + 0xc3, 0x66, 0x0a, 0x6f, 0x56, 0x0a, 0x56, 0x63, + 0xc1, 0xc0, 0x0b, 0x9a, 0x6a, 0x34, 0xb1, 0x55, + 0x52, 0x90, 0x48, 0xaa, 0xa5, 0x74, 0x95, 0x74, + 0xf4, 0x55, 0x4c, 0x10, 0x0a, 0x15, 0xc2, 0xd7, + 0x02, 0xbd, 0xc2, 0x5f, 0x78, 0x71, 0xb9, 0x9e, + 0xd7, 0x67, 0xb2, 0x4b, 0xde, 0x58, 0xc4, 0x30, + 0x99, 0x34, 0x43, 0x92, 0xa1, 0x6c, 0xca, 0xc4, + 0x02, 0x49, 0x19, 0xee, 0x20, 0x11, 0x22, 0x2f, + 0x1d, 0x92, 0x67, 0xe3, 0x6a, 0xda, 0xab, 0xe0, + 0xb2, 0xeb, 0x5d, 0xea, 0xfd, 0x96, 0xd8, 0x76, + 0x1e, 0x78, 0x72, 0x3a, 0xaa, 0x7c, 0x04, 0xf5, + 0x16, 0x7c, 0xbb, 0x39, 0x2b, 0x38, 0x62, 0xf9, + 0x1a, 0x32, 0x3d, 0xc7, 0x10, 0x45, 0x13, 0x8f, + 0x52, 0xb0, 0x19, 0xfa, 0xf9, 0x2c, 0x3e, 0x45, + 0xd6, 0xb1, 0xb6, 0x93, 0x4e, 0x76, 0x1a, 0xf6, + 0xc4, 0x0a, 0xc2, 0x98, 0x53, 0x30, 0x62, 0x49, + 0xb2, 0x80, 0x6d, 0x71, 0x80, 0x6a, 0x9a, 0x36, + 0xae, 0x03, 0xa0, 0x63, 0x97, 0x9e, 0x2d, 0x2f, + 0x0b, 0x78, 0x18, 0x35, 0x1d, 0x40, 0x14, 0x3c, + 0x3f, 0x8d, 0x8a, 0x4b, 0xa7, 0x63, 0x7e, 0xd1, + 0x5d, 0x78, 0xcf, 0x07, 0xf8, 0x35, 0x60, 0xfe, + 0x62, 0xeb, 0xf2, 0x54, 0x19, 0x6c, 0x99, 0xcb, + 0x24, 0xa4, 0xcb, 0x71, 0x37, 0x70, 0xcd, 0x90, + 0x90, 0x1e, 0x48, 0x8a, 0x58, 0x0a, 0x38, 0xb0, + 0xdb, 0x7d, 0xfc, 0x75, 0x63, 0x29, 0x53, 0x53, + 0x0b, 0xff, 0x00, 0x88, 0xc0, 0x26, 0x6d, 0xe2, + 0xf3, 0x72, 0xc4, 0x46, 0x92, 0x7e, 0x0b, 0xcb, + 0xc1, 0xa2, 0x58, 0x70, 0x63, 0x89, 0xac, 0x06, + 0xe6, 0xb6, 0xac, 0xd1, 0x37, 0xdd, 0x20, 0xa8, + 0x25, 0x91, 0xb5, 0xd9, 0x08, 0xab, 0x85, 0xbc, + 0x84, 0xda, 0xb2, 0xa5, 0x99, 0xf4, 0x9a, 0x12, + 0x67, 0x32, 0xbe, 0x7c, 0x06, 0x6c, 0xbc, 0x1d, + 0x5b, 0x27, 0x18, 0x75, 0x85, 0x08, 0xda, 0xb5, + 0xdc, 0xa2, 0xe1, 0x0e, 0xb0, 0x4d, 0xf1, 0x1b, + 0xe2, 0x06, 0xef, 0x0d, 0xfa, 0xfb, 0x3d, 0x4a, + 0x11, 0x00, 0x02, 0x32, 0xd7, 0xa3, 0x99, 0x6f, + 0x89, 0xb3, 0xfd, 0x9a, 0xf4, 0x73, 0x2d, 0xf1, + 0x36, 0x7f, 0xb3, 0x5e, 0x8e, 0x65, 0xbe, 0x26, + 0xcf, 0xf6, 0x6b, 0xd1, 0xcc, 0xb7, 0xc4, 0xd9, + 0xfe, 0xcd, 0x7a, 0x39, 0x96, 0xf8, 0x9b, 0x3f, + 0xd9, 0xa8, 0x0f, 0x00, 0xdf, 0x4e, 0xfe, 0x56, + 0x5a, 0x5c, 0x55, 0x40, 0x47, 0xf8, 0x4c, 0x7b, + 0xc8, 0x16, 0x03, 0x1f, 0x76, 0x48, 0xb5, 0x88, + 0xc1, 0x29, 0xc3, 0x67, 0xc1, 0x48, 0x7f, 0x5a, + 0xca, 0xf7, 0xe9, 0x3a, 0xe5, 0xdb, 0x07, 0x6e, + 0xd7, 0x42, 0x67, 0xbc, 0x90, 0xb6, 0x1f, 0x4d, + 0x67, 0x31, 0x1c, 0xfc, 0xb2, 0x51, 0x1c, 0xb3, + 0x13, 0x3a, 0x17, 0x5a, 0xb1, 0x4f, 0x1e, 0xb6, + 0x0f, 0x3a, 0xbb, 0x7d, 0x90, 0xae, 0x4e, 0x0e, + 0xf8, 0xe7, 0x5a, 0xe7, 0x99, 0xbc, 0x9d, 0xdd, + 0xc7, 0x20, 0x20, 0x5f, 0xc0, 0x92, 0xd7, 0x9f, + 0x30, 0x5f, 0x1f, 0xfe, 0xab, 0x5e, 0x7c, 0xc1, + 0x7c, 0x7f, 0xfa, 0xad, 0x79, 0xf3, 0x05, 0xf1, + 0xff, 0x00, 0xea, 0xb5, 0xe7, 0xcc, 0x17, 0xc7, + 0xff, 0x00, 0xaa, 0xd7, 0x9f, 0x30, 0x5f, 0x1f, + 0xfe, 0xab, 0x5e, 0x7c, 0xc1, 0x7c, 0x7f, 0xfa, + 0xad, 0x79, 0xf3, 0x05, 0xf1, 0xff, 0x00, 0xea, + 0xb5, 0xe7, 0xcc, 0x17, 0xc7, 0xff, 0x00, 0xaa, + 0xd7, 0x9f, 0x30, 0x5f, 0x1f, 0xfe, 0xab, 0x5e, + 0x7c, 0xc1, 0x7c, 0x7f, 0xfa, 0xad, 0x79, 0xf3, + 0x05, 0xf1, 0xff, 0x00, 0xea, 0xb5, 0xe7, 0xcc, + 0x17, 0xc7, 0xff, 0x00, 0xaa, 0xd7, 0x9f, 0x30, + 0x5f, 0x1f, 0xfe, 0xab, 0x5e, 0x7c, 0xc1, 0x7c, + 0x7f, 0xfa, 0xad, 0x79, 0xf3, 0x05, 0xf1, 0xff, + 0x00, 0xea, 0xb5, 0xe7, 0xcc, 0x17, 0xc7, 0xff, + 0x00, 0xaa, 0xd7, 0x9f, 0x30, 0x5f, 0x1f, 0xfe, + 0xab, 0x5e, 0x7c, 0xc1, 0x7c, 0x7f, 0xfa, 0xad, + 0x79, 0xf3, 0x05, 0xf1, 0xff, 0x00, 0xea, 0xb5, + 0xe7, 0xcc, 0x17, 0xc7, 0xff, 0x00, 0xaa, 0xd4, + 0xcd, 0x2b, 0x78, 0xfc, 0x89, 0x0c, 0x49, 0x12, + 0xa8, 0xdb, 0x07, 0x3e, 0x06, 0x3c, 0xa5, 0x09, + 0xd8, 0x0c, 0xe2, 0x3f, 0xf8, 0x70, 0x65, 0xf7, + 0x76, 0xdb, 0xbf, 0xea, 0x3b, 0xf0, 0x43, 0xfd, + 0x7d, 0x7d, 0x61, 0x7f, 0x1c, 0xab, 0xf6, 0x3b, + 0xba, 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xe9, 0xdf, + 0x8c, 0xb2, 0x7f, 0xb6, 0x37, 0xfb, 0xa6, 0x34, + 0xd6, 0x1b, 0x57, 0x5a, 0xa5, 0x61, 0x83, 0xb7, + 0x6d, 0xd3, 0xb2, 0xab, 0xac, 0xa7, 0x94, 0x77, + 0xdb, 0xc6, 0x36, 0x30, 0xbc, 0x55, 0x28, 0x22, + 0x4d, 0x87, 0xdd, 0xdd, 0x1c, 0xc4, 0x3c, 0xbd, + 0xa3, 0x32, 0xed, 0xbf, 0xe5, 0x15, 0x46, 0xa0, + 0x81, 0x4f, 0xdf, 0x11, 0x75, 0xe0, 0x64, 0x44, + 0xf9, 0x62, 0x0a, 0x37, 0xdb, 0xcb, 0xdf, 0xaf, + 0x77, 0x9d, 0xf8, 0x9e, 0x3f, 0xe9, 0x1d, 0x7b, + 0xbc, 0xef, 0xc4, 0xf1, 0xff, 0x00, 0x48, 0xeb, + 0xdd, 0xe7, 0x7e, 0x27, 0x8f, 0xfa, 0x47, 0x5e, + 0xef, 0x3b, 0xf1, 0x3c, 0x7f, 0xd2, 0x3a, 0xf7, + 0x79, 0xdf, 0x89, 0xe3, 0xfe, 0x91, 0xd7, 0xbb, + 0xce, 0xfc, 0x4f, 0x1f, 0xf4, 0x8e, 0xbd, 0xde, + 0x77, 0xe2, 0x78, 0xff, 0x00, 0xa4, 0x75, 0xee, + 0xf3, 0xbf, 0x13, 0xc7, 0xfd, 0x23, 0xaf, 0x77, + 0x9d, 0xf8, 0x9e, 0x3f, 0xe9, 0x1d, 0x7b, 0xbc, + 0xef, 0xc4, 0xf1, 0xff, 0x00, 0x48, 0xeb, 0xdd, + 0xe7, 0x7e, 0x27, 0x8f, 0xfa, 0x47, 0x5e, 0xef, + 0x3b, 0xf1, 0x3c, 0x7f, 0xd2, 0x3a, 0xf7, 0x79, + 0xdf, 0x89, 0xe3, 0xfe, 0x91, 0xd7, 0xbb, 0xce, + 0xfc, 0x4f, 0x1f, 0xf4, 0x8e, 0xbd, 0xde, 0x77, + 0xe2, 0x78, 0xff, 0x00, 0xa4, 0x75, 0xee, 0xf3, + 0xbf, 0x13, 0xc7, 0xfd, 0x23, 0xaf, 0x77, 0x9d, + 0xf8, 0x9e, 0x3f, 0xe9, 0x1d, 0x7b, 0xbc, 0xef, + 0xc4, 0xf1, 0xff, 0x00, 0x48, 0xeb, 0xdd, 0xe7, + 0x7e, 0x27, 0x8f, 0xfa, 0x47, 0x5e, 0xef, 0x3b, + 0xf1, 0x3c, 0x7f, 0xd2, 0x3a, 0x63, 0x30, 0xf7, + 0x0e, 0xc3, 0x12, 0x12, 0xc7, 0x51, 0xb4, 0x9e, + 0xcf, 0x74, 0x54, 0x31, 0x1c, 0xcd, 0x54, 0x09, + 0xb1, 0x56, 0x44, 0x7b, 0xe4, 0xe1, 0x47, 0xce, + 0x11, 0xb7, 0x8a, 0x5b, 0xea, 0xa2, 0x9b, 0x1c, + 0xcb, 0xe7, 0x23, 0x31, 0xfb, 0x87, 0x09, 0x59, + 0xbb, 0x90, 0xbf, 0xc5, 0x3e, 0x9f, 0x29, 0x7f, + 0x8b, 0x33, 0xe4, 0xf2, 0xe9, 0xf7, 0x6c, 0x32, + 0x49, 0xb6, 0x58, 0x4c, 0x9d, 0xfe, 0xe4, 0x17, + 0xb9, 0x01, 0xfb, 0xc0, 0x03, 0xb0, 0x08, 0xc7, + 0x70, 0x8c, 0x44, 0x46, 0xbc, 0xba, 0xf2, 0xe9, + 0x54, 0x28, 0x87, 0x56, 0xc3, 0xb9, 0xb9, 0x62, + 0x66, 0x04, 0x04, 0x42, 0x39, 0x8d, 0x8c, 0x39, + 0xee, 0x00, 0x01, 0x8d, 0xca, 0x7f, 0xe6, 0x18, + 0x92, 0x98, 0x19, 0x8b, 0xcc, 0xb1, 0x8e, 0xbd, + 0x4f, 0xab, 0xd0, 0x6d, 0x8c, 0x65, 0xa9, 0xb2, + 0x15, 0xdb, 0x3e, 0xe4, 0x1f, 0xce, 0x94, 0xc8, + 0x49, 0xff, 0x00, 0x07, 0x68, 0x28, 0xdf, 0xb8, + 0xa4, 0x64, 0x82, 0x0b, 0xdd, 0x79, 0x7c, 0x9f, + 0xc7, 0xa1, 0x00, 0x98, 0x92, 0x29, 0x81, 0x88, + 0xde, 0x3c, 0xa5, 0x3b, 0x44, 0x7e, 0x5d, 0x3a, + 0x85, 0xde, 0x40, 0xb3, 0x5f, 0xa5, 0xd6, 0x10, + 0x38, 0x31, 0x59, 0x39, 0x2b, 0x7c, 0x04, 0x9c, + 0x78, 0xb2, 0x42, 0x2d, 0x81, 0x3e, 0x5d, 0xc3, + 0x9e, 0x27, 0x90, 0x8c, 0x76, 0x39, 0xf7, 0x51, + 0xaf, 0x77, 0x1f, 0x96, 0x35, 0x5a, 0x9a, 0x88, + 0x21, 0xb6, 0x9e, 0xaa, 0xeb, 0x96, 0x4c, 0xc2, + 0xe0, 0xda, 0x70, 0x03, 0x27, 0x22, 0x26, 0x50, + 0x3b, 0xcf, 0x7e, 0xc0, 0x53, 0xb7, 0x92, 0x27, + 0x55, 0xf8, 0x7c, 0xdb, 0x47, 0xb6, 0x59, 0xae, + 0x56, 0x56, 0xe8, 0x6b, 0xfb, 0x1c, 0x28, 0x01, + 0xc6, 0x5c, 0xed, 0x9a, 0xb0, 0xd8, 0x91, 0xe8, + 0x10, 0xce, 0xc8, 0x2f, 0x1a, 0x42, 0x37, 0xef, + 0x99, 0x8b, 0x58, 0xeb, 0x4c, 0x51, 0x3e, 0xa1, + 0xc2, 0xda, 0x49, 0x22, 0x24, 0xc9, 0x48, 0x09, + 0xf8, 0x84, 0xc0, 0x51, 0x4c, 0x6c, 0x71, 0xee, + 0x80, 0x7b, 0xf7, 0xf7, 0xf5, 0xbf, 0x37, 0x76, + 0x91, 0x9b, 0x96, 0xa3, 0xb1, 0xd8, 0xb8, 0xca, + 0x20, 0x30, 0x67, 0xd7, 0x87, 0x2d, 0x72, 0xd2, + 0x22, 0x1e, 0x9c, 0x2a, 0x17, 0xcb, 0x1d, 0xc5, + 0x0e, 0x92, 0xdf, 0xf8, 0x11, 0xe5, 0xd7, 0xba, + 0xfe, 0x9d, 0x76, 0x2b, 0x8d, 0xae, 0x4d, 0xe8, + 0x26, 0xc7, 0x35, 0x73, 0x61, 0x2f, 0x91, 0xf1, + 0xb8, 0x47, 0x33, 0x54, 0x92, 0xe6, 0xff, 0x00, + 0x0a, 0x39, 0x36, 0xfb, 0xd3, 0x3a, 0xdf, 0x9a, + 0x35, 0xe5, 0xd7, 0x97, 0x5e, 0x5d, 0x2d, 0xe8, + 0x69, 0x29, 0xca, 0x31, 0x62, 0xd8, 0x13, 0xb1, + 0x01, 0x8c, 0xee, 0x33, 0x1f, 0xf3, 0xff, 0x00, + 0xcd, 0x3e, 0x49, 0xee, 0xd5, 0x6b, 0x9c, 0xa2, + 0x05, 0x91, 0xc7, 0xe3, 0xf2, 0x0d, 0x00, 0x8d, + 0x80, 0x5d, 0x6e, 0xa2, 0x9c, 0xee, 0x5f, 0xe2, + 0x26, 0x49, 0x17, 0xdf, 0xdc, 0xa7, 0x4e, 0xfc, + 0x10, 0xff, 0x00, 0x5d, 0x5f, 0x58, 0x5f, 0xc7, + 0x2a, 0xfd, 0x8e, 0xee, 0x83, 0xde, 0x8d, 0x1f, + 0xbd, 0x3a, 0x77, 0xe3, 0x2c, 0x97, 0xed, 0x8d, + 0xfe, 0xe9, 0x8d, 0x63, 0xd3, 0x05, 0xb0, 0x58, + 0xcb, 0x5f, 0x63, 0x63, 0xfc, 0x39, 0xab, 0x53, + 0x1f, 0x09, 0xdf, 0xef, 0xc0, 0x76, 0xa6, 0xcc, + 0x47, 0xdf, 0x2d, 0xf5, 0xe5, 0xd5, 0xd3, 0xb5, + 0x68, 0xea, 0x63, 0xf1, 0x95, 0x7b, 0x65, 0xd7, + 0x29, 0x52, 0xf7, 0xf4, 0xf7, 0x98, 0x10, 0x4a, + 0x84, 0x4a, 0x64, 0xa7, 0x94, 0xca, 0x4b, 0x90, + 0xf9, 0x60, 0x3d, 0xc1, 0x49, 0x46, 0xa8, 0xbb, + 0x85, 0xf2, 0x25, 0x9d, 0x55, 0xe3, 0x72, 0x22, + 0xb7, 0x24, 0x2f, 0x22, 0xa7, 0x20, 0x09, 0x85, + 0xcd, 0x5a, 0x61, 0x4d, 0x95, 0x12, 0xc0, 0xca, + 0x0a, 0x50, 0x3b, 0x72, 0xf9, 0x4b, 0x9c, 0x37, + 0xed, 0x15, 0xe9, 0xd9, 0x72, 0x7b, 0x48, 0x53, + 0xea, 0x2d, 0x64, 0x51, 0xda, 0x99, 0xb7, 0x22, + 0x3b, 0xbb, 0xe5, 0x85, 0xbc, 0x78, 0xb1, 0xaa, + 0x18, 0xbb, 0x55, 0x2d, 0x63, 0xce, 0xf9, 0x17, + 0x23, 0x5f, 0x5c, 0xa6, 0x05, 0x4b, 0x8d, 0xdc, + 0xd8, 0x1d, 0xc7, 0x9f, 0xa4, 0x3d, 0xe4, 0x3c, + 0xe3, 0x3d, 0xf1, 0xbc, 0xc4, 0x4c, 0x4e, 0xb2, + 0x18, 0xca, 0x98, 0xfb, 0xd6, 0x59, 0x49, 0x87, + 0xdc, 0x29, 0x99, 0x3e, 0xcd, 0x2c, 0x21, 0xac, + 0xf3, 0xe5, 0x8e, 0x51, 0xed, 0x01, 0x10, 0x61, + 0xe4, 0xe6, 0xef, 0xe5, 0x8d, 0xa2, 0x76, 0x67, + 0x64, 0xc7, 0x5c, 0xb1, 0xd1, 0x7f, 0x66, 0x77, + 0x4d, 0x27, 0x32, 0xab, 0x1b, 0x6f, 0xd1, 0x60, + 0xed, 0xb8, 0x1c, 0x47, 0x96, 0x0a, 0x23, 0x97, + 0xee, 0xed, 0xab, 0x2f, 0x6e, 0x2e, 0xfa, 0xd3, + 0x4c, 0xb9, 0x6c, 0xb0, 0xab, 0xb2, 0x01, 0x33, + 0xb0, 0xcc, 0xf3, 0x4e, 0xde, 0x48, 0x83, 0x19, + 0x92, 0x8d, 0xc6, 0x37, 0xef, 0x9d, 0x55, 0xc6, + 0x39, 0xcc, 0x4a, 0xec, 0x75, 0xb9, 0x98, 0xae, + 0x5e, 0x78, 0xe9, 0xa4, 0xd9, 0xdd, 0xcf, 0x04, + 0x3f, 0xc1, 0xda, 0x7b, 0xbc, 0x9a, 0xc9, 0xe1, + 0xdb, 0x72, 0xc8, 0x52, 0xa4, 0x8a, 0xee, 0x4d, + 0xa0, 0x85, 0x75, 0x5b, 0xdb, 0x25, 0x1d, 0x9a, + 0x0b, 0x70, 0x95, 0xc7, 0x50, 0x4d, 0xb3, 0xdc, + 0x31, 0xf6, 0x3f, 0x7f, 0x57, 0xa3, 0x1d, 0x42, + 0xed, 0xda, 0xf4, 0xed, 0xd8, 0xad, 0x2e, 0x52, + 0x64, 0xa3, 0xda, 0x18, 0x63, 0xdf, 0x31, 0x1b, + 0x49, 0xf2, 0x8e, 0xe5, 0x01, 0xe4, 0x99, 0xf2, + 0x77, 0xc6, 0x96, 0xca, 0x98, 0xeb, 0x96, 0x01, + 0xad, 0x62, 0x40, 0x94, 0xa2, 0x28, 0x96, 0xa6, + 0x39, 0x9a, 0xbf, 0xe2, 0x25, 0xc7, 0xba, 0xdf, + 0x6d, 0xbc, 0x9e, 0x5d, 0x3e, 0x95, 0x7c, 0x7d, + 0xc7, 0x5b, 0xab, 0xbc, 0x59, 0xae, 0x09, 0x3e, + 0xa2, 0x39, 0x67, 0x96, 0x7a, 0xb1, 0xb7, 0x89, + 0xdf, 0xe4, 0xdf, 0xdd, 0x7f, 0x07, 0x7d, 0x37, + 0x1c, 0xac, 0x7d, 0xb3, 0xbc, 0x98, 0x29, 0x6d, + 0x51, 0x49, 0x75, 0x97, 0x03, 0xb6, 0xf2, 0x63, + 0xb7, 0x8a, 0x3e, 0x30, 0xf7, 0xcf, 0x74, 0xef, + 0x1b, 0x6f, 0xbc, 0x6a, 0xad, 0x57, 0xe3, 0xae, + 0x2a, 0xcd, 0xd9, 0x21, 0xa8, 0x82, 0x49, 0xc3, + 0x5f, 0x20, 0x5c, 0x87, 0xd3, 0x0d, 0xb9, 0xa7, + 0x96, 0x7d, 0xd7, 0x76, 0xd1, 0x1e, 0x37, 0xb9, + 0xef, 0xd7, 0x83, 0x8b, 0x1d, 0x70, 0x6f, 0x4a, + 0xa5, 0xf1, 0x56, 0x54, 0x50, 0xd2, 0x4c, 0x47, + 0x34, 0xb0, 0x47, 0xf8, 0x41, 0x11, 0x13, 0xb9, + 0x0e, 0xf1, 0xdd, 0x31, 0xe5, 0x89, 0x8d, 0x29, + 0x5e, 0x07, 0xc8, 0xf3, 0xbd, 0x44, 0xe5, 0x0f, + 0x66, 0x67, 0x8c, 0xb1, 0xe5, 0xe6, 0x2f, 0x27, + 0x76, 0xdc, 0xe1, 0xbc, 0x16, 0xd3, 0xe3, 0x47, + 0x76, 0x9e, 0x8a, 0x78, 0xfb, 0x96, 0x1d, 0x57, + 0xba, 0xca, 0xd6, 0x93, 0x92, 0x44, 0xef, 0x23, + 0xca, 0xd8, 0xdb, 0xc4, 0x2d, 0xc4, 0xa2, 0x06, + 0x7c, 0x69, 0xe5, 0x2d, 0xa3, 0xba, 0x75, 0x33, + 0x52, 0x85, 0xbb, 0x1c, 0xb6, 0x3b, 0x21, 0x74, + 0xd2, 0x53, 0xcb, 0x67, 0x96, 0x4f, 0xa2, 0x71, + 0xb6, 0xe2, 0xc8, 0x08, 0x92, 0x98, 0x2d, 0xb6, + 0x88, 0xef, 0xdb, 0x59, 0x85, 0x1a, 0x6c, 0xd7, + 0x7e, 0x22, 0x99, 0xb4, 0xab, 0x4a, 0x27, 0xac, + 0xeb, 0x64, 0xb9, 0x2a, 0xb5, 0x22, 0x0a, 0x63, + 0x92, 0x5d, 0xee, 0xe0, 0xb6, 0x2e, 0x65, 0xc4, + 0xf2, 0x7b, 0xa8, 0x38, 0x20, 0x2d, 0xc4, 0x80, + 0xa4, 0x48, 0x67, 0xcb, 0x04, 0x33, 0xb1, 0x44, + 0xff, 0x00, 0x1c, 0x4f, 0x76, 0xb0, 0x84, 0xb3, + 0x91, 0x22, 0xca, 0x51, 0x4c, 0xed, 0x3e, 0x55, + 0xd8, 0xb0, 0xb4, 0x38, 0x27, 0xf8, 0x98, 0xa6, + 0x18, 0x17, 0xf1, 0x16, 0xb9, 0x46, 0x36, 0x10, + 0x75, 0xf1, 0x18, 0x8f, 0x24, 0x40, 0xa2, 0xcc, + 0x44, 0x7e, 0x4d, 0x0f, 0x7f, 0xf0, 0x63, 0xfe, + 0xed, 0x79, 0x75, 0xe5, 0xd0, 0x1e, 0x12, 0xa2, + 0x72, 0x16, 0x97, 0x56, 0xc9, 0x36, 0x93, 0xda, + 0xa5, 0x0d, 0x9a, 0x73, 0x02, 0x0f, 0x5c, 0x4b, + 0x98, 0xbe, 0x62, 0xf1, 0x80, 0xc4, 0x43, 0x98, + 0xfc, 0x5d, 0xf9, 0x08, 0x20, 0xe3, 0x57, 0xf3, + 0xf8, 0xdc, 0x4e, 0x6f, 0x84, 0x6c, 0x61, 0xf2, + 0x18, 0xfb, 0x36, 0xb1, 0xcf, 0x7d, 0xa8, 0xc5, + 0xe4, 0x99, 0xe1, 0x05, 0xc2, 0xa1, 0x6a, 0x7c, + 0xae, 0x1c, 0xc4, 0x6e, 0xb6, 0x8f, 0xef, 0x54, + 0x82, 0x0f, 0x65, 0x04, 0x18, 0xfb, 0x68, 0xe4, + 0xf2, 0x89, 0xaf, 0xda, 0xd1, 0xc6, 0x99, 0x2c, + 0x08, 0x50, 0xae, 0xbe, 0x49, 0x3b, 0x15, 0x2c, + 0x00, 0x5e, 0xc9, 0x24, 0x3b, 0xff, 0x00, 0xbe, + 0x0f, 0x9e, 0xbc, 0x7b, 0x88, 0xdd, 0xe3, 0xf7, + 0x3b, 0xe3, 0xc2, 0x54, 0x61, 0x3c, 0xb8, 0x2c, + 0xae, 0x2d, 0xa3, 0x53, 0x23, 0x85, 0xb5, 0x8d, + 0xb9, 0x8e, 0x2e, 0xd8, 0x85, 0x48, 0xd5, 0x61, + 0xca, 0x55, 0x61, 0x5c, 0xac, 0x04, 0x98, 0x42, + 0xcd, 0x2d, 0x08, 0x64, 0xaa, 0xcc, 0xb1, 0x6a, + 0x09, 0xe2, 0x9b, 0x56, 0x00, 0x10, 0xfc, 0x0e, + 0x3e, 0xa2, 0xf0, 0xb6, 0x8f, 0x11, 0x6b, 0x24, + 0x4a, 0x45, 0xb0, 0x16, 0x5b, 0xb6, 0xaa, 0x55, + 0xc8, 0x5d, 0x7c, 0xe1, 0x84, 0x68, 0x93, 0xab, + 0x30, 0x4b, 0x0e, 0x65, 0x4c, 0xf2, 0xcb, 0x44, + 0xb8, 0xa3, 0x29, 0x5e, 0xa8, 0x93, 0xa3, 0x84, + 0x6b, 0xe4, 0xad, 0xa6, 0xce, 0x32, 0xc6, 0x3d, + 0x16, 0x6f, 0x43, 0xec, 0xfe, 0xfa, 0x9a, 0x37, + 0x04, 0x4e, 0x17, 0x64, 0x80, 0x4d, 0x91, 0xe3, + 0x73, 0x48, 0x9f, 0x39, 0x9b, 0x64, 0xca, 0x78, + 0x2d, 0x2d, 0xa3, 0x8d, 0x22, 0xe2, 0xfc, 0x23, + 0x19, 0x98, 0x6f, 0x65, 0x1e, 0xab, 0xc5, 0x54, + 0x9c, 0xc5, 0xa8, 0x4a, 0x66, 0x66, 0x12, 0x27, + 0xcf, 0x3c, 0x87, 0xd4, 0x8e, 0x53, 0x91, 0xd6, + 0x2d, 0x63, 0xdd, 0x11, 0x9b, 0xaa, 0x11, 0x1f, + 0x7a, 0x22, 0xe0, 0xc4, 0x46, 0xb2, 0x5c, 0x42, + 0x45, 0x04, 0xcc, 0x43, 0xf3, 0x9c, 0x39, 0xbe, + 0xf1, 0xb8, 0x58, 0xb9, 0xc4, 0x15, 0x46, 0x9f, + 0x77, 0x97, 0x71, 0xaf, 0x6a, 0x57, 0xbf, 0xf8, + 0x33, 0xb7, 0xf0, 0xb5, 0xc7, 0x79, 0xcc, 0x4d, + 0x05, 0xe4, 0x73, 0x94, 0xf2, 0xf4, 0x6a, 0x2a, + 0x26, 0xb9, 0xdb, 0x65, 0x4a, 0x8f, 0xa7, 0x5f, + 0xaa, 0xd5, 0x20, 0x3c, 0x79, 0xe7, 0xe6, 0x21, + 0x39, 0x5e, 0xd3, 0x23, 0x1e, 0x36, 0xe0, 0x25, + 0x1a, 0xa5, 0x98, 0x76, 0x31, 0x0a, 0xe2, 0x26, + 0x70, 0x75, 0xac, 0xd9, 0xe2, 0x7a, 0x5b, 0x41, + 0xe5, 0x94, 0xe4, 0xad, 0x56, 0x4a, 0xbf, 0x96, + 0x1e, 0x70, 0xd3, 0x9e, 0x43, 0xdd, 0xd0, 0x7b, + 0x4e, 0xfd, 0x65, 0x73, 0xeb, 0x83, 0x2e, 0xe5, + 0xa8, 0x06, 0x3e, 0xe5, 0xae, 0x33, 0x5c, 0x34, + 0x22, 0xa9, 0x53, 0xeb, 0xc4, 0x03, 0x16, 0x36, + 0x18, 0x86, 0x78, 0xf0, 0x44, 0x21, 0x0a, 0xdc, + 0xfb, 0xc8, 0x54, 0x33, 0xee, 0x76, 0xd7, 0xb2, + 0xab, 0xec, 0xd5, 0x72, 0x14, 0x79, 0x3d, 0xeb, + 0x31, 0xaa, 0x20, 0x07, 0x04, 0xe4, 0x5e, 0xce, + 0x64, 0x11, 0x44, 0x43, 0x03, 0xa6, 0xe5, 0x17, + 0x30, 0x6e, 0x3e, 0x34, 0x46, 0xfb, 0xf7, 0x6b, + 0x88, 0xb2, 0x70, 0x60, 0xbc, 0x86, 0x3b, 0x09, + 0x81, 0x8a, 0xaf, 0x2c, 0x6d, 0x8c, 0xc1, 0xd3, + 0x5d, 0xa0, 0xb1, 0x0e, 0x7a, 0xf1, 0xd5, 0x08, + 0x6c, 0x3c, 0x99, 0x01, 0xd2, 0x99, 0x54, 0xc1, + 0x00, 0x41, 0xf7, 0xf4, 0xc9, 0xa2, 0x59, 0x8b, + 0x69, 0xa3, 0x72, 0xab, 0xed, 0xd1, 0xc6, 0x1b, + 0x72, 0xea, 0xe1, 0xcb, 0xa6, 0xba, 0xd6, 0xdc, + 0x67, 0x16, 0x04, 0xe8, 0x12, 0xa6, 0xdd, 0x51, + 0xc8, 0x17, 0x4a, 0xc9, 0x1f, 0x24, 0xa9, 0xbc, + 0x8c, 0x2b, 0x36, 0x61, 0xaa, 0x12, 0x37, 0xf5, + 0x62, 0x9c, 0x15, 0xba, 0xf5, 0xee, 0x73, 0x51, + 0x53, 0x2b, 0xa9, 0xdd, 0x51, 0x98, 0x27, 0x15, + 0x76, 0x31, 0xc4, 0x97, 0x30, 0xc4, 0xa5, 0xb1, + 0xd4, 0x38, 0x39, 0xf6, 0xd9, 0x9e, 0x76, 0x14, + 0x47, 0x97, 0x5e, 0x5d, 0x79, 0x75, 0x82, 0x2f, + 0xbf, 0xc3, 0x98, 0x29, 0xfc, 0xb8, 0xe4, 0x69, + 0xdf, 0x82, 0x1f, 0xeb, 0xab, 0xeb, 0x0b, 0xf8, + 0xe5, 0x5f, 0xb1, 0xdd, 0xd0, 0x7b, 0xd1, 0xa3, + 0xf7, 0xa7, 0x4e, 0xfc, 0x65, 0x92, 0xfd, 0xb1, + 0xbf, 0xdd, 0x31, 0xac, 0x1f, 0xf8, 0xd9, 0x2c, + 0xd7, 0xfd, 0x55, 0xb0, 0xbf, 0xed, 0xfa, 0x97, + 0x8b, 0x09, 0x98, 0xad, 0x8f, 0xcc, 0x26, 0x9f, + 0x35, 0x4c, 0x7d, 0xb5, 0x09, 0xa7, 0x36, 0x1c, + 0xdb, 0xb6, 0x9f, 0x51, 0x8e, 0x58, 0x2c, 0x80, + 0x85, 0x44, 0x3e, 0x23, 0x19, 0xe3, 0x73, 0x8c, + 0xac, 0x16, 0xc3, 0xd7, 0x0d, 0x66, 0xb8, 0x86, + 0xa6, 0x3a, 0x8f, 0x15, 0xa3, 0x32, 0x99, 0x6a, + 0xb1, 0xe6, 0xb2, 0x75, 0x8c, 0x2a, 0x96, 0x63, + 0x61, 0xb6, 0xe1, 0x46, 0xc8, 0x9d, 0xca, 0x22, + 0x13, 0x1d, 0x46, 0x08, 0xc9, 0xf4, 0xd7, 0xb7, + 0x33, 0x82, 0x38, 0x73, 0x15, 0x8b, 0xb3, 0x8d, + 0x8f, 0x08, 0xe6, 0x72, 0x3c, 0x49, 0x25, 0x7d, + 0xed, 0x45, 0x22, 0x0b, 0xb0, 0xc5, 0x51, 0x41, + 0xd9, 0x52, 0x6c, 0x12, 0xf7, 0x53, 0x2c, 0x29, + 0x0d, 0xe9, 0x32, 0x05, 0xb2, 0x92, 0xf7, 0x3b, + 0xcc, 0xf0, 0x93, 0x6f, 0x58, 0xbb, 0x86, 0xb8, + 0xde, 0x23, 0x15, 0xce, 0x1a, 0xe6, 0x61, 0x39, + 0x58, 0x35, 0x39, 0x16, 0x12, 0xcb, 0x15, 0xf2, + 0x12, 0x67, 0x7e, 0x6a, 0x9e, 0xeb, 0x59, 0x29, + 0xcd, 0x5a, 0x39, 0xdf, 0x29, 0x9a, 0x91, 0xb2, + 0x4b, 0x5c, 0x49, 0x8d, 0xda, 0xd5, 0x8c, 0xfc, + 0x71, 0x20, 0x64, 0xbb, 0x32, 0xf3, 0xe1, 0x8e, + 0xb6, 0x78, 0x46, 0x94, 0x78, 0x3d, 0xf1, 0x72, + 0x42, 0xec, 0x95, 0x04, 0x84, 0x08, 0x32, 0x97, + 0x2c, 0x6c, 0x11, 0x28, 0x90, 0xef, 0x14, 0x3b, + 0x8e, 0xf2, 0x58, 0xf7, 0x2a, 0x9d, 0x8f, 0xae, + 0x0c, 0x55, 0x66, 0x58, 0xc4, 0xde, 0x75, 0x85, + 0x8b, 0x3b, 0x2d, 0x35, 0xd8, 0x9a, 0xd7, 0xfb, + 0x2d, 0x06, 0x14, 0xcc, 0x8f, 0x21, 0x98, 0xa0, + 0x3b, 0xe4, 0xc6, 0x08, 0xe3, 0xc7, 0x9e, 0x27, + 0xc7, 0xb2, 0xd3, 0xca, 0x9a, 0xbd, 0x8f, 0xad, + 0xda, 0x8a, 0x92, 0x65, 0xd9, 0xe1, 0xd3, 0x5d, + 0x25, 0x2f, 0xe8, 0xfd, 0x8e, 0x1d, 0xcc, 0xc2, + 0x8e, 0xaf, 0x2f, 0x3e, 0xd3, 0xc9, 0xcd, 0xcb, + 0xdd, 0xac, 0x50, 0x7d, 0xf8, 0xb7, 0xff, 0x00, + 0x55, 0x37, 0x4e, 0xb8, 0x53, 0x22, 0xb9, 0xfd, + 0xf1, 0x9f, 0xbf, 0x89, 0xc4, 0xbe, 0x39, 0x7b, + 0xf6, 0xc0, 0xa3, 0x2d, 0x12, 0x5b, 0xef, 0xdf, + 0xcd, 0xd1, 0x18, 0x9e, 0xe8, 0xda, 0x22, 0x37, + 0xfe, 0x2c, 0x7d, 0xb5, 0x45, 0x9c, 0x90, 0x4f, + 0x18, 0x67, 0x7a, 0xfb, 0xde, 0x84, 0xd0, 0xc0, + 0x32, 0x1c, 0xd4, 0x41, 0x1a, 0x06, 0x21, 0xac, + 0xb1, 0x68, 0x4a, 0x01, 0x4a, 0x26, 0xf4, 0x65, + 0x96, 0xb9, 0xba, 0x24, 0x4d, 0x8e, 0xa3, 0x0a, + 0x8d, 0x8b, 0x14, 0x8d, 0xbe, 0xc9, 0x59, 0x5a, + 0x86, 0x69, 0x33, 0x53, 0x25, 0x61, 0x66, 0xd3, + 0x7a, 0x53, 0x31, 0xb4, 0xca, 0xce, 0x54, 0x3c, + 0xeb, 0x2d, 0xc5, 0xa3, 0x1c, 0xa6, 0x24, 0x13, + 0x31, 0x3c, 0x79, 0xd0, 0x0b, 0x19, 0x0b, 0x0a, + 0xf0, 0x20, 0xf8, 0x01, 0x17, 0x3b, 0x1a, 0xef, + 0x01, 0x82, 0x99, 0x16, 0xee, 0x4f, 0xd9, 0x4a, + 0xbd, 0x66, 0x40, 0xf3, 0x92, 0x0d, 0x2d, 0x15, + 0x93, 0x47, 0xae, 0xae, 0xb4, 0x16, 0xb8, 0xdb, + 0x1d, 0x84, 0xb0, 0x29, 0xcf, 0xdc, 0xc7, 0x70, + 0xe5, 0x9c, 0x71, 0xae, 0xd4, 0x21, 0xb6, 0x6a, + 0xad, 0x1f, 0xbe, 0xbb, 0x15, 0xa2, 0x21, 0xdb, + 0xdd, 0x47, 0xb6, 0x8b, 0x63, 0x7e, 0x68, 0x99, + 0x21, 0xe5, 0x92, 0xd7, 0x06, 0x23, 0x2d, 0x6d, + 0x4e, 0xca, 0xbf, 0x86, 0xb2, 0xf5, 0x15, 0x63, + 0xb5, 0x87, 0x2b, 0x32, 0xbc, 0xd5, 0x56, 0x2a, + 0xed, 0xbc, 0xad, 0x1e, 0xd1, 0x33, 0x05, 0x5f, + 0xaf, 0x00, 0xf9, 0x37, 0xef, 0x30, 0x2e, 0x22, + 0xf1, 0xb8, 0x63, 0x1f, 0x7e, 0xb8, 0x23, 0x23, + 0x53, 0x19, 0x9e, 0x7f, 0x4d, 0xd9, 0xc3, 0xce, + 0xe5, 0x41, 0x06, 0x80, 0x21, 0x1c, 0x93, 0xbb, + 0x05, 0x75, 0xc7, 0x39, 0x84, 0x4a, 0x24, 0x6d, + 0x5a, 0x23, 0x08, 0x9d, 0xf9, 0x76, 0xdf, 0x5c, + 0x17, 0x70, 0xb2, 0x57, 0x49, 0xf9, 0x0e, 0x35, + 0x0a, 0x96, 0x5d, 0x2f, 0x64, 0xb1, 0xe8, 0x9b, + 0x8c, 0xfd, 0xec, 0xc3, 0xdf, 0x73, 0xaf, 0x3e, + 0xe7, 0xa1, 0x3b, 0xab, 0xa7, 0x10, 0xae, 0x4e, + 0x41, 0x81, 0x8e, 0x23, 0xa3, 0x88, 0x5b, 0x5f, + 0x95, 0xab, 0xc6, 0x27, 0x6a, 0xe5, 0x6a, 0xd9, + 0x81, 0xc2, 0x3b, 0xb2, 0x92, 0xab, 0x42, 0x6d, + 0x35, 0xbd, 0x9e, 0xcc, 0xd9, 0xa0, 0x32, 0x3c, + 0x8f, 0xad, 0x0b, 0x9e, 0xa4, 0x89, 0x8f, 0x4d, + 0x9b, 0xc0, 0x33, 0x8c, 0xf2, 0x18, 0xe7, 0x85, + 0x36, 0xb7, 0x8b, 0x69, 0xd7, 0x37, 0xe2, 0xae, + 0xb5, 0xab, 0x89, 0xec, 0x69, 0x97, 0xf6, 0x5b, + 0xf0, 0x8a, 0x2d, 0x31, 0x36, 0xaf, 0xbd, 0x82, + 0x95, 0x73, 0x41, 0x10, 0xf8, 0xe1, 0x3c, 0xc5, + 0xc4, 0x14, 0xa9, 0x58, 0x68, 0xe4, 0xaf, 0xf0, + 0x1d, 0x17, 0xd5, 0x00, 0xb3, 0xd9, 0x4d, 0xd9, + 0x09, 0x5f, 0x2a, 0xde, 0x05, 0xce, 0xa1, 0x07, + 0x84, 0x9c, 0xc0, 0xbf, 0x71, 0x94, 0xc1, 0x4e, + 0xc4, 0x03, 0xbe, 0x9e, 0xab, 0x1c, 0xdd, 0xa1, + 0x4e, 0x6a, 0xdf, 0xcc, 0x5c, 0xe5, 0xd6, 0x03, + 0x21, 0x6f, 0x31, 0x6f, 0x3c, 0xd3, 0xcf, 0x05, + 0xb9, 0x6f, 0x3c, 0xd3, 0xdf, 0xbc, 0xeb, 0x87, + 0x87, 0xfc, 0x2c, 0xee, 0x22, 0x3f, 0x2e, 0x42, + 0xbc, 0x6a, 0x5a, 0xd9, 0xe5, 0x5f, 0x6c, 0xb2, + 0xb3, 0x2f, 0xb8, 0x10, 0xe9, 0x6a, 0x79, 0xe7, + 0xfc, 0x50, 0xea, 0x73, 0x17, 0xf8, 0xb1, 0x3e, + 0x5d, 0x5b, 0xc4, 0xdf, 0x03, 0x4d, 0x9a, 0x6c, + 0x25, 0xec, 0x51, 0x31, 0xd4, 0x5c, 0x4c, 0xc2, + 0x9e, 0xb9, 0xf2, 0x1a, 0x5c, 0x11, 0x06, 0xb6, + 0x0e, 0xe2, 0x51, 0x3d, 0xd3, 0xaf, 0x75, 0xaf, + 0x75, 0xa5, 0x5c, 0xa5, 0x69, 0xd5, 0x6d, 0x20, + 0xb9, 0xd3, 0x61, 0x07, 0x2b, 0x6a, 0xcb, 0x69, + 0x19, 0xe5, 0x21, 0xef, 0xd8, 0x86, 0x64, 0x0c, + 0x7d, 0xc9, 0x81, 0x10, 0x1c, 0x48, 0x94, 0xc4, + 0xd5, 0xad, 0xc4, 0x39, 0xab, 0x56, 0x68, 0x2e, + 0xc0, 0x1b, 0x00, 0x17, 0x59, 0x10, 0x03, 0x33, + 0xca, 0xc7, 0x42, 0x6a, 0xd7, 0x4a, 0xdc, 0xe5, + 0xae, 0x4f, 0xa5, 0x2d, 0x06, 0x48, 0x6e, 0x50, + 0x1b, 0x73, 0x94, 0x17, 0x0f, 0xe0, 0xf8, 0x6e, + 0xed, 0xdb, 0x98, 0xae, 0x1e, 0xa5, 0x2b, 0x0b, + 0xf6, 0xd6, 0xca, 0xee, 0xb1, 0x69, 0xb2, 0x33, + 0x24, 0x22, 0xc0, 0x4b, 0x86, 0x10, 0x00, 0x20, + 0x3b, 0xa5, 0x31, 0x05, 0xb8, 0xa8, 0x65, 0x40, + 0x06, 0x4a, 0xa1, 0x92, 0xcd, 0x5a, 0xb5, 0x51, + 0x32, 0x04, 0x0a, 0x2e, 0x88, 0x6e, 0x4a, 0x88, + 0xe9, 0x9b, 0x9a, 0x95, 0x2d, 0xd6, 0x4c, 0x36, + 0x82, 0x13, 0xb2, 0xc6, 0x97, 0x53, 0xdb, 0x37, + 0xea, 0x78, 0xda, 0xab, 0x91, 0x9c, 0xe5, 0x8e, + 0xdb, 0x4e, 0xb9, 0xd4, 0x43, 0xe1, 0x55, 0x06, + 0x62, 0xb3, 0x79, 0x79, 0xd2, 0xe0, 0x1a, 0xd0, + 0xab, 0x40, 0x44, 0x20, 0x7b, 0x5b, 0x07, 0xec, + 0xd0, 0x06, 0x8e, 0xcd, 0x11, 0x38, 0xca, 0xbd, + 0xb9, 0x47, 0x35, 0xb9, 0xb4, 0x76, 0x5c, 0xa1, + 0xb0, 0x10, 0x73, 0x6a, 0xbf, 0xdc, 0x47, 0x8c, + 0xa9, 0x8a, 0xeb, 0x1d, 0xf6, 0x58, 0x55, 0x84, + 0x42, 0xc7, 0xc5, 0x5f, 0x28, 0xc4, 0x46, 0xb1, + 0x36, 0x15, 0x92, 0x21, 0x76, 0x0a, 0xb9, 0x55, + 0xc4, 0x9f, 0x42, 0xa4, 0xf6, 0x3a, 0xe4, 0xb9, + 0x51, 0x2e, 0x20, 0xab, 0xc8, 0xbb, 0x75, 0x94, + 0x8f, 0x35, 0x91, 0x71, 0xf7, 0xef, 0xcd, 0xbf, + 0x7e, 0x97, 0x79, 0x2f, 0xe4, 0xb4, 0x97, 0x8d, + 0x95, 0xbb, 0x94, 0x0b, 0x95, 0xe0, 0x7d, 0x41, + 0x67, 0x21, 0x09, 0x2e, 0x76, 0x3f, 0x1b, 0x94, + 0x82, 0x43, 0xef, 0x8e, 0xdd, 0xda, 0xb8, 0x83, + 0xca, 0x1c, 0xa6, 0xfe, 0x44, 0x72, 0xd7, 0x03, + 0xa1, 0x52, 0x21, 0xd9, 0x10, 0x68, 0x38, 0x6c, + 0xce, 0xd5, 0xe2, 0x42, 0x61, 0xaa, 0x59, 0xf4, + 0x97, 0x20, 0x89, 0x90, 0x8d, 0xd5, 0x31, 0xdd, + 0xab, 0x39, 0xba, 0xf9, 0x77, 0xa7, 0x27, 0x77, + 0xed, 0xbb, 0x20, 0x15, 0xe0, 0x6c, 0xf8, 0x90, + 0x11, 0xd6, 0xab, 0xd1, 0xec, 0x67, 0xca, 0x31, + 0x1c, 0x9b, 0xd7, 0xf6, 0xb2, 0xf1, 0xc3, 0x94, + 0xfc, 0x6d, 0x46, 0x7a, 0x72, 0xd6, 0xa7, 0x30, + 0x25, 0xce, 0x37, 0xa4, 0x87, 0x9c, 0x7b, 0xa4, + 0x7a, 0x62, 0xbe, 0x4e, 0x80, 0xd7, 0xe5, 0x22, + 0x0e, 0xcb, 0x0a, 0x8a, 0xdd, 0x32, 0x25, 0xf4, + 0xb9, 0x26, 0x47, 0x4b, 0x0c, 0x96, 0x62, 0xc5, + 0x98, 0x4d, 0xc8, 0xbe, 0x9f, 0x15, 0x0a, 0x24, + 0xdb, 0x15, 0xc2, 0x85, 0xc9, 0x65, 0x74, 0xa9, + 0x89, 0xe5, 0x08, 0xf1, 0x16, 0xb2, 0x15, 0x01, + 0x6e, 0xc1, 0x5c, 0x30, 0x88, 0xe6, 0xd5, 0x7b, + 0xf9, 0xa7, 0xd9, 0x45, 0xd4, 0xaa, 0xbd, 0x94, + 0x9a, 0xaa, 0x42, 0xd8, 0x94, 0x19, 0x31, 0x63, + 0x02, 0xba, 0xe1, 0xd2, 0x98, 0x32, 0x92, 0x26, + 0x27, 0xa6, 0xd6, 0xf8, 0xb0, 0xd3, 0x38, 0x00, + 0x81, 0xf0, 0xd0, 0x66, 0x1e, 0x19, 0x3e, 0xcc, + 0x34, 0xe6, 0xc8, 0x2a, 0xa8, 0xf3, 0xd5, 0x08, + 0xd8, 0x50, 0xda, 0xe3, 0x5e, 0x2a, 0xb9, 0x63, + 0xdc, 0x51, 0x0d, 0x41, 0xec, 0xc1, 0x06, 0xfd, + 0x90, 0x00, 0xa2, 0xd6, 0x62, 0xbe, 0x6e, 0xd8, + 0x64, 0x6e, 0xf7, 0x5b, 0xb1, 0x3d, 0x26, 0x43, + 0xe2, 0x3d, 0xc0, 0xb2, 0xbb, 0x54, 0x75, 0x64, + 0x53, 0x13, 0x31, 0x5c, 0x3a, 0x10, 0x35, 0x87, + 0xc5, 0xaf, 0x0a, 0x1e, 0xed, 0x3a, 0xfe, 0x46, + 0xe3, 0x6d, 0xdc, 0x7c, 0xf3, 0x35, 0xed, 0x98, + 0xe6, 0x9f, 0xbd, 0x02, 0x23, 0x02, 0x0b, 0x58, + 0xc7, 0x70, 0x29, 0x42, 0x0a, 0x58, 0xf8, 0xa0, + 0x02, 0x3d, 0xda, 0xf7, 0x5a, 0xf7, 0x5a, 0xaf, + 0x46, 0x8a, 0x99, 0x6a, 0xe5, 0xa6, 0x0a, 0x6b, + 0xd7, 0x54, 0x73, 0x31, 0x8c, 0x2f, 0x24, 0x44, + 0x7d, 0xc8, 0xfb, 0xa4, 0x53, 0xb0, 0x80, 0xc4, + 0x99, 0xcc, 0x0c, 0x4c, 0xea, 0x8e, 0x38, 0x8c, + 0x58, 0xcc, 0x56, 0x2b, 0x19, 0x8b, 0x7b, 0x03, + 0xdc, 0x1d, 0x8a, 0x34, 0x93, 0x5e, 0xc4, 0x87, + 0xdd, 0xe5, 0xeb, 0x01, 0x8f, 0x7f, 0x7f, 0x76, + 0x9d, 0xf8, 0x21, 0xfe, 0xba, 0xbe, 0xb0, 0xbf, + 0x8e, 0x55, 0xfb, 0x1d, 0xdd, 0x07, 0xbd, 0x1a, + 0x3f, 0x7a, 0x74, 0xef, 0xc6, 0x59, 0x2f, 0xdb, + 0x1b, 0xfd, 0xd5, 0x15, 0x31, 0xbb, 0x16, 0x67, + 0x19, 0x75, 0xb7, 0xe9, 0xd5, 0x22, 0x10, 0xf0, + 0x85, 0x7b, 0x29, 0x42, 0x6e, 0x55, 0x41, 0x1c, + 0x88, 0xf6, 0xa0, 0xec, 0xc9, 0xb0, 0xa0, 0x99, + 0xf6, 0xe8, 0x03, 0x58, 0xc4, 0x94, 0xee, 0x32, + 0xb7, 0x60, 0xf3, 0x4b, 0x38, 0xf2, 0x89, 0x62, + 0xef, 0x47, 0xf1, 0x7f, 0xee, 0x3b, 0xe3, 0xf8, + 0xe3, 0x78, 0x9f, 0xb9, 0xaf, 0x33, 0xe5, 0xfd, + 0x59, 0x77, 0xe4, 0x35, 0x5a, 0xce, 0x47, 0x85, + 0xf2, 0xd9, 0x5a, 0x6a, 0x3d, 0xec, 0x63, 0xca, + 0xae, 0x4a, 0xac, 0x59, 0x0e, 0x59, 0x8e, 0x4e, + 0xd0, 0xaa, 0xe4, 0xc5, 0x77, 0xcc, 0x14, 0x14, + 0x09, 0x77, 0xc6, 0xd3, 0x13, 0x13, 0x3a, 0x66, + 0x4e, 0x78, 0x77, 0x27, 0x41, 0x3d, 0x14, 0x55, + 0xa7, 0x45, 0x38, 0xfb, 0xc6, 0xba, 0x95, 0x2b, + 0x8f, 0x2a, 0x92, 0x25, 0xd9, 0x57, 0x05, 0xb7, + 0x7c, 0x94, 0x8a, 0x94, 0x3b, 0xcf, 0x8a, 0xb0, + 0x1d, 0x86, 0x3c, 0xd1, 0x98, 0xf5, 0x6d, 0xef, + 0x90, 0xd7, 0x9a, 0x33, 0x1e, 0xad, 0xbd, 0xf2, + 0x1a, 0xf3, 0x3e, 0x5f, 0xd5, 0x97, 0x7e, 0x43, + 0x5e, 0x68, 0xcc, 0x7a, 0xb6, 0xf7, 0xc8, 0x6b, + 0xcc, 0xf9, 0x7f, 0x56, 0x5d, 0xf9, 0x0d, 0x79, + 0xa3, 0x31, 0xea, 0xdb, 0xdf, 0x21, 0xaf, 0x34, + 0x66, 0x3d, 0x5b, 0x7b, 0xe4, 0x35, 0xe6, 0x8c, + 0xc7, 0xab, 0x6e, 0xfc, 0x86, 0xbc, 0xd1, 0x98, + 0xf5, 0x6d, 0xef, 0x90, 0xd5, 0xa1, 0xcc, 0x70, + 0x35, 0xde, 0x21, 0xa9, 0x64, 0x55, 0xed, 0x4d, + 0xab, 0x92, 0xa3, 0x6a, 0xbb, 0x51, 0x27, 0xc8, + 0x75, 0xaf, 0xa2, 0xa3, 0x1c, 0xa0, 0x38, 0x64, + 0xc5, 0x84, 0x44, 0x72, 0x3f, 0x95, 0x5c, 0xdd, + 0xea, 0x1d, 0x63, 0xe2, 0xaf, 0x0a, 0x64, 0xb0, + 0xf8, 0xdc, 0x4d, 0x28, 0xa5, 0x8e, 0xc7, 0x2a, + 0x9e, 0x46, 0xcf, 0x45, 0x7c, 0xdc, 0xec, 0x33, + 0xb0, 0x75, 0x57, 0x2d, 0x63, 0x0b, 0x6d, 0xcb, + 0xa6, 0x3e, 0x28, 0x8f, 0x37, 0x31, 0xf3, 0x30, + 0xbc, 0xd1, 0x98, 0xf5, 0x6d, 0xef, 0x90, 0xd7, + 0x9a, 0x33, 0x1e, 0xad, 0xbb, 0xf2, 0x1a, 0xf3, + 0x46, 0x63, 0xd5, 0xb7, 0xbe, 0x43, 0x5e, 0x67, + 0xcb, 0xfa, 0xb2, 0xef, 0xc8, 0x6b, 0xcd, 0x19, + 0x8f, 0x56, 0xde, 0xf9, 0x0d, 0x79, 0x9f, 0x2f, + 0xea, 0xcb, 0xbf, 0x21, 0xaa, 0x39, 0xdc, 0xbd, + 0x3b, 0x78, 0xbc, 0x3e, 0x1e, 0xca, 0xb2, 0x12, + 0xcb, 0xa9, 0x2a, 0xae, 0xbd, 0x6a, 0xa1, 0x45, + 0x8a, 0x94, 0xa9, 0xa6, 0xc7, 0x4d, 0x8e, 0x27, + 0x39, 0x61, 0x2c, 0x38, 0x1e, 0x98, 0xa0, 0x4f, + 0x73, 0x1d, 0xc6, 0x74, 0xc6, 0xcf, 0x95, 0x86, + 0x67, 0x3e, 0xf9, 0x94, 0x94, 0xff, 0x00, 0xdf, + 0xae, 0x13, 0x13, 0xc6, 0xe1, 0x72, 0x91, 0x61, + 0x19, 0x98, 0x9f, 0x0d, 0x62, 0xab, 0x64, 0xc9, + 0x51, 0x56, 0xe5, 0x75, 0xa6, 0x2b, 0xb2, 0xc4, + 0x49, 0xa0, 0x44, 0x19, 0x21, 0xca, 0xb2, 0x88, + 0xe5, 0x81, 0x8d, 0xb6, 0x18, 0xd7, 0xa2, 0xdc, + 0x15, 0xfa, 0x35, 0x4f, 0xfd, 0xba, 0xc7, 0x0b, + 0x38, 0x77, 0x85, 0x23, 0x25, 0x9b, 0xab, 0x98, + 0xb5, 0x8d, 0xe9, 0x70, 0xd6, 0x37, 0xb1, 0x22, + 0x31, 0x1d, 0xa3, 0xda, 0xaf, 0x41, 0x09, 0x39, + 0x93, 0x70, 0xa9, 0xd9, 0x0e, 0x74, 0x31, 0x51, + 0x48, 0x7a, 0x0d, 0x30, 0xb5, 0xd4, 0x35, 0xae, + 0x19, 0xf5, 0x8f, 0xc2, 0xdc, 0x93, 0x47, 0xc2, + 0x70, 0x5f, 0x5a, 0x55, 0xf9, 0x7c, 0x1f, 0xcd, + 0xc9, 0xdb, 0x77, 0xdb, 0x6e, 0xcd, 0x05, 0xdd, + 0x2d, 0xf7, 0x11, 0xe5, 0xdf, 0x6e, 0xfd, 0x7f, + 0x64, 0x78, 0x73, 0x86, 0x25, 0x8c, 0xb3, 0x5e, + 0xba, 0x6b, 0xd1, 0xe1, 0x9c, 0x70, 0x18, 0xad, + 0xbc, 0xdd, 0x5b, 0x86, 0xd7, 0xa5, 0xea, 0x64, + 0x26, 0x79, 0x04, 0x29, 0x0f, 0x49, 0x96, 0x08, + 0xe7, 0xf7, 0xca, 0x04, 0x37, 0x2f, 0x06, 0xe4, + 0x30, 0x7c, 0x26, 0xeb, 0xad, 0xcd, 0x3f, 0x0c, + 0xb1, 0xc6, 0xf0, 0xde, 0x32, 0x3b, 0x37, 0x48, + 0xc1, 0x23, 0x90, 0x7a, 0x9e, 0xb6, 0x95, 0x95, + 0x3d, 0xed, 0x88, 0x55, 0x55, 0x36, 0xb1, 0xc8, + 0xa5, 0xd3, 0xda, 0x79, 0xb9, 0x23, 0x4e, 0xc4, + 0x4f, 0x0e, 0xf0, 0x52, 0x9a, 0x95, 0xe5, 0x4e, + 0x58, 0x3c, 0x29, 0x51, 0xfc, 0xc7, 0x8b, 0xa7, + 0x6a, 0xd4, 0xac, 0x57, 0xd5, 0x5c, 0xcf, 0x5e, + 0x6a, 0xf4, 0x86, 0x79, 0xbc, 0x4e, 0x78, 0x3e, + 0x56, 0x72, 0xf2, 0x14, 0xe3, 0x67, 0x82, 0x78, + 0x71, 0x39, 0x02, 0x84, 0x74, 0xaa, 0x97, 0x04, + 0xa3, 0x78, 0x2b, 0x0f, 0x52, 0x80, 0xae, 0xf5, + 0x0d, 0x2d, 0xa5, 0x56, 0x45, 0x9c, 0xd1, 0x6b, + 0xa3, 0x62, 0x24, 0xfa, 0x6b, 0xe9, 0xc0, 0xb3, + 0xaa, 0xb9, 0xc4, 0xe5, 0x78, 0x7b, 0x86, 0x71, + 0xb6, 0x7b, 0x52, 0xe9, 0x04, 0x27, 0x81, 0xb1, + 0xf7, 0x26, 0x1e, 0xc6, 0xf4, 0xbf, 0x7c, 0x2e, + 0xd6, 0x4f, 0x12, 0xc4, 0x2e, 0x37, 0x13, 0x82, + 0x18, 0x71, 0x90, 0xcf, 0xd8, 0xa3, 0xbb, 0x99, + 0xc9, 0xc7, 0x70, 0xee, 0x07, 0x20, 0xc4, 0x59, + 0x8a, 0x85, 0xd4, 0xf6, 0x3e, 0xc6, 0xd5, 0x54, + 0xbb, 0x99, 0xc3, 0xc9, 0x0c, 0xad, 0x9a, 0xc9, + 0x97, 0x39, 0x74, 0xb7, 0xae, 0x12, 0xa8, 0x37, + 0xc7, 0x57, 0xb9, 0x7d, 0x2f, 0x1d, 0xb2, 0xde, + 0x02, 0xe1, 0xd5, 0x42, 0x14, 0x36, 0x1f, 0x2c, + 0xe0, 0xa8, 0x08, 0x4a, 0x0b, 0x9b, 0x95, 0xee, + 0x92, 0x5c, 0x74, 0x92, 0x5c, 0x87, 0xca, 0xd3, + 0xe5, 0x09, 0xe5, 0x2d, 0x8b, 0xc5, 0x9d, 0x45, + 0xd9, 0xe0, 0xce, 0x14, 0x8a, 0x52, 0xce, 0x8c, + 0x5c, 0xfa, 0xd2, 0x47, 0x64, 0x97, 0x77, 0xfb, + 0x54, 0x59, 0xe5, 0xe8, 0xcb, 0x7b, 0xa7, 0xda, + 0xe0, 0xf9, 0xfb, 0xa7, 0xbb, 0xbb, 0x5d, 0x9e, + 0xcf, 0x09, 0xf0, 0x96, 0x34, 0x7a, 0x24, 0xee, + 0xad, 0xae, 0x0f, 0x40, 0xef, 0x11, 0x69, 0x34, + 0x06, 0x00, 0x1a, 0x48, 0xea, 0x4c, 0xde, 0xb0, + 0xaa, 0xc5, 0xca, 0x5e, 0xd6, 0x72, 0x5b, 0xc4, + 0x90, 0x48, 0x6a, 0xdd, 0x2a, 0x54, 0xb8, 0x52, + 0x5d, 0x8e, 0xb6, 0x84, 0x5f, 0xed, 0xde, 0xc7, + 0xf8, 0xea, 0x82, 0x35, 0x9b, 0x92, 0x56, 0x29, + 0x97, 0x29, 0xcd, 0x7c, 0xe6, 0x43, 0xb4, 0xf6, + 0x7b, 0x56, 0x2b, 0xc9, 0xa1, 0xfd, 0x84, 0x89, + 0x0d, 0x96, 0x03, 0x24, 0x82, 0x57, 0xac, 0xd6, + 0x4c, 0xb8, 0x7b, 0x82, 0x56, 0x78, 0x6b, 0x30, + 0x82, 0xa4, 0x5c, 0x29, 0x53, 0xa9, 0x60, 0x57, + 0x61, 0x15, 0xae, 0xb8, 0x59, 0xd4, 0x88, 0x5c, + 0x52, 0x3b, 0x75, 0x3a, 0x81, 0x20, 0x7c, 0xd0, + 0xe9, 0xf1, 0x83, 0x93, 0xc6, 0xbd, 0x94, 0xf0, + 0x3f, 0x04, 0x31, 0xf8, 0xe4, 0xe2, 0x1d, 0x6b, + 0x1d, 0xf5, 0x9d, 0x50, 0x0c, 0x23, 0x27, 0x5a, + 0x95, 0x96, 0x8c, 0x3f, 0xb5, 0x1e, 0xf3, 0x46, + 0x32, 0x15, 0x61, 0x9e, 0xd3, 0x1d, 0x4e, 0x62, + 0x2f, 0x6a, 0xe4, 0xe5, 0xd7, 0x0d, 0xda, 0x2c, + 0x1f, 0x03, 0x8c, 0xf1, 0x0b, 0x6d, 0xc7, 0x4b, + 0xeb, 0x4e, 0x9f, 0xef, 0x14, 0x55, 0x62, 0x87, + 0xb4, 0x30, 0xfa, 0xf1, 0x0d, 0xea, 0xa9, 0x84, + 0xf8, 0x5f, 0x2a, 0x79, 0x40, 0x47, 0xc7, 0x9e, + 0xa6, 0xe3, 0x52, 0xbd, 0xbc, 0x67, 0x04, 0x53, + 0xc9, 0x64, 0x2b, 0x0d, 0xaa, 0x75, 0x8f, 0x83, + 0xa8, 0xcd, 0x21, 0x53, 0xc2, 0x59, 0x4a, 0x32, + 0x59, 0x23, 0xbc, 0x9e, 0xc0, 0xcb, 0xc1, 0xca, + 0x69, 0xe4, 0xa5, 0x75, 0x4b, 0x5b, 0x90, 0xcb, + 0x4e, 0x40, 0x99, 0xf4, 0xa9, 0x33, 0x25, 0x8b, + 0xe0, 0xac, 0x73, 0x32, 0x92, 0x5d, 0x80, 0x07, + 0x83, 0x29, 0xdb, 0x54, 0x2c, 0x5a, 0x75, 0xbb, + 0x56, 0x49, 0xfd, 0xb2, 0xb4, 0xd2, 0xa6, 0x56, + 0x40, 0x96, 0x2c, 0xac, 0x9c, 0x93, 0xf9, 0x56, + 0xe7, 0x15, 0x51, 0x01, 0x5f, 0x5a, 0xab, 0xb2, + 0xb8, 0xde, 0x14, 0xa8, 0xcb, 0x77, 0x2f, 0x53, + 0x88, 0xa3, 0xc0, 0x98, 0x9c, 0xa5, 0x65, 0x76, + 0x07, 0xae, 0xbb, 0x5c, 0xcb, 0x7e, 0x1d, 0xa5, + 0xce, 0xa9, 0x26, 0x73, 0x89, 0x55, 0xaf, 0x67, + 0x99, 0x51, 0x26, 0xb9, 0x66, 0xe3, 0x13, 0x77, + 0x1d, 0x67, 0x85, 0xf8, 0x1e, 0x5f, 0x46, 0xd3, + 0xaa, 0x3a, 0x57, 0xc3, 0x75, 0x09, 0x64, 0x68, + 0x64, 0xae, 0x49, 0x73, 0x3c, 0xb3, 0x20, 0x5b, + 0x73, 0x04, 0x90, 0x89, 0x72, 0xcc, 0x73, 0x08, + 0xcf, 0x76, 0xb1, 0x55, 0xb1, 0xf8, 0xfc, 0x06, + 0x1a, 0x2e, 0x65, 0x71, 0x75, 0xad, 0x3b, 0x0d, + 0x84, 0xa5, 0x42, 0xd3, 0xeb, 0x36, 0xfd, 0x78, + 0x65, 0x73, 0xb4, 0x03, 0x2e, 0xe8, 0xb0, 0x77, + 0x12, 0x08, 0x28, 0xde, 0x26, 0x63, 0x59, 0x2f, + 0xc3, 0xee, 0x7e, 0xd0, 0xcd, 0x3b, 0xf0, 0x43, + 0xfd, 0x75, 0x7d, 0x61, 0xbf, 0x1c, 0x2b, 0xf6, + 0x3b, 0xba, 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xe9, + 0xdf, 0x8c, 0xb2, 0x5f, 0xb6, 0x37, 0xfb, 0xaa, + 0xa7, 0xe1, 0x28, 0xfd, 0x68, 0xeb, 0x88, 0x52, + 0x9e, 0x21, 0xce, 0xa5, 0x29, 0xce, 0xe5, 0xd4, + 0x94, 0xab, 0x31, 0x91, 0x5a, 0x94, 0xa5, 0xe4, + 0x2c, 0x02, 0xd4, 0xa5, 0x85, 0x98, 0x05, 0xad, + 0x61, 0x10, 0x20, 0x01, 0x10, 0x20, 0x31, 0x02, + 0x31, 0x11, 0x1a, 0xf4, 0x97, 0x88, 0x7d, 0x77, + 0x93, 0xf9, 0xd6, 0xbd, 0x25, 0xe2, 0x1f, 0x5d, + 0xe4, 0xfe, 0x75, 0xaf, 0x49, 0x78, 0x87, 0xd7, + 0x79, 0x3f, 0x9d, 0x6b, 0xd2, 0x5e, 0x21, 0xf5, + 0xde, 0x4f, 0xe7, 0x5a, 0xf4, 0x97, 0x88, 0x7d, + 0x77, 0x93, 0xf9, 0xd6, 0xb1, 0x6a, 0xbb, 0x96, + 0xcd, 0xe4, 0x02, 0xcd, 0xca, 0xf5, 0xc1, 0x56, + 0x73, 0x99, 0x32, 0xac, 0x12, 0xd7, 0x08, 0x9b, + 0x1d, 0x5e, 0x5f, 0x23, 0x6b, 0x65, 0xf3, 0x42, + 0xd4, 0x64, 0x2a, 0x86, 0x4c, 0x31, 0x82, 0xd8, + 0x1e, 0x9c, 0xe3, 0x1b, 0x6f, 0x88, 0x73, 0x4e, + 0xaa, 0x19, 0x0a, 0xdd, 0xa9, 0x36, 0x32, 0xf9, + 0x07, 0x28, 0xeb, 0x4b, 0x84, 0x5f, 0x06, 0xa3, + 0xb2, 0x42, 0x71, 0xd2, 0x92, 0x9d, 0xa4, 0x67, + 0xbe, 0x37, 0xfb, 0x9a, 0xcd, 0x61, 0xcf, 0x39, + 0x9c, 0x6e, 0x5e, 0x6d, 0x65, 0xed, 0xd4, 0xb1, + 0x39, 0x5c, 0x8c, 0xda, 0x1a, 0xf8, 0x1b, 0xf5, + 0x68, 0xad, 0x49, 0x3e, 0xd3, 0x2c, 0x15, 0xdc, + 0x0f, 0x0a, 0xb5, 0xa0, 0x33, 0xca, 0xc9, 0x4a, + 0x66, 0x77, 0x95, 0xc6, 0xd2, 0xa8, 0xe3, 0x4c, + 0xbe, 0x36, 0x86, 0x38, 0xf2, 0x34, 0x5a, 0x6a, + 0x65, 0xd3, 0x64, 0x33, 0x87, 0x71, 0x58, 0x9e, + 0xdf, 0x65, 0x8c, 0xaf, 0x75, 0x16, 0x2e, 0x36, + 0xe3, 0x9a, 0xde, 0x55, 0x30, 0xb9, 0x45, 0xe2, + 0x47, 0x05, 0xbd, 0xa6, 0x98, 0xf5, 0xeb, 0xf1, + 0x57, 0x18, 0xbe, 0x5b, 0x4a, 0xce, 0x52, 0x9b, + 0x22, 0x33, 0xc3, 0x8c, 0x75, 0x04, 0x43, 0x58, + 0xbe, 0xd3, 0x93, 0xf0, 0x91, 0x0d, 0x3c, 0x85, + 0x8a, 0xc9, 0x27, 0x05, 0x38, 0xaf, 0x65, 0x20, + 0x44, 0xb4, 0x32, 0xfc, 0x34, 0xfc, 0x5c, 0xce, + 0x48, 0xf8, 0x87, 0x3a, 0xc2, 0x13, 0xa1, 0x8b, + 0xab, 0xd4, 0xcc, 0x64, 0x4f, 0x91, 0xd7, 0xe6, + 0xc5, 0x86, 0xbc, 0x39, 0xac, 0x14, 0x0b, 0x17, + 0x5a, 0x8b, 0x00, 0x0f, 0xca, 0x12, 0xfe, 0x61, + 0xf1, 0xa2, 0x35, 0x63, 0x25, 0x8b, 0xcb, 0xbb, + 0x2d, 0x81, 0x57, 0x83, 0xdb, 0x4f, 0xb3, 0x64, + 0xdc, 0x8c, 0x9e, 0x11, 0x8b, 0x72, 0xbc, 0x4c, + 0xda, 0xb7, 0x8c, 0x8d, 0xe5, 0xba, 0x21, 0x95, + 0x6d, 0xf6, 0xc6, 0x59, 0xc7, 0xd9, 0x3b, 0x29, + 0x35, 0xd8, 0x13, 0x81, 0x54, 0x71, 0x4a, 0x87, + 0x37, 0x99, 0x32, 0xcc, 0x5a, 0xbb, 0xf5, 0xbb, + 0x3e, 0x14, 0xc8, 0x73, 0x57, 0x46, 0x3f, 0x1f, + 0xf5, 0xc4, 0x7d, 0x8e, 0x3b, 0x47, 0xb5, 0x75, + 0x55, 0x6a, 0x85, 0x21, 0xe9, 0x6d, 0xb8, 0x49, + 0x2b, 0xc5, 0x89, 0xdb, 0x57, 0x31, 0xc1, 0x9b, + 0xcc, 0x29, 0xf8, 0x8c, 0x16, 0x0b, 0x23, 0xd7, + 0x1c, 0x9d, 0xe5, 0x59, 0x3b, 0x0c, 0xe8, 0x76, + 0xf0, 0x7b, 0x41, 0xc2, 0xd7, 0x75, 0x3c, 0x2a, + 0x31, 0x30, 0xe3, 0x2e, 0x5e, 0xc6, 0x9e, 0x5d, + 0xa7, 0x7d, 0xfd, 0x25, 0xe2, 0x1f, 0x5d, 0xe4, + 0xfe, 0x75, 0xaf, 0x49, 0x78, 0x87, 0xd7, 0x79, + 0x3f, 0x9d, 0x6b, 0xd2, 0x5e, 0x21, 0xf5, 0xde, + 0x4f, 0xe7, 0x5a, 0xf4, 0x97, 0x88, 0x7d, 0x77, + 0x93, 0xf9, 0xd6, 0xbd, 0x25, 0xe2, 0x1f, 0x5d, + 0xe4, 0xfe, 0x75, 0xaf, 0x49, 0x78, 0x87, 0xd7, + 0x79, 0x3f, 0x9d, 0x6b, 0x85, 0xec, 0xdd, 0xb5, + 0x66, 0xe5, 0x96, 0x16, 0x7b, 0xa9, 0x62, 0xdb, + 0xdb, 0x65, 0xe7, 0xc9, 0x96, 0x6a, 0xc3, 0x9d, + 0xce, 0x23, 0x61, 0x72, 0x2c, 0x44, 0x07, 0x98, + 0xa7, 0x94, 0x04, 0x46, 0x36, 0x18, 0x88, 0xfa, + 0x9c, 0x17, 0xfe, 0x63, 0x88, 0x7f, 0x6f, 0xa9, + 0xf5, 0x30, 0x6a, 0x0b, 0x34, 0x97, 0x82, 0xec, + 0x39, 0x55, 0xf1, 0x27, 0x5e, 0xd2, 0x42, 0xfa, + 0xac, 0x59, 0x6d, 0x98, 0xb6, 0x15, 0xf9, 0x99, + 0xe1, 0x1a, 0xe1, 0x66, 0xa0, 0xe3, 0xbb, 0x32, + 0xb1, 0x3d, 0x3a, 0xf9, 0x02, 0xdd, 0x79, 0x00, + 0x7c, 0x43, 0xc0, 0x7e, 0xb5, 0x22, 0xae, 0x47, + 0xa3, 0x2b, 0xed, 0x3d, 0xa6, 0x72, 0x1e, 0x3f, + 0x85, 0x3b, 0x48, 0xb7, 0xa5, 0xd2, 0x85, 0xf4, + 0x7c, 0x09, 0xb4, 0x75, 0xa6, 0x8f, 0x2f, 0x3c, + 0xdd, 0xfd, 0xf1, 0xcf, 0x0e, 0xfd, 0xf1, 0x01, + 0x92, 0xc7, 0x5c, 0xa0, 0x19, 0x2a, 0x77, 0x6b, + 0x8c, 0x54, 0xc8, 0x2b, 0x1f, 0xc9, 0x08, 0x3f, + 0x1e, 0x2f, 0xad, 0x99, 0x22, 0x94, 0x7b, 0x43, + 0x55, 0x00, 0x7d, 0x35, 0x45, 0x8a, 0xfc, 0xcb, + 0x6a, 0x5b, 0x1b, 0xcf, 0x2e, 0x67, 0x89, 0x71, + 0x3d, 0x8a, 0xc5, 0xb2, 0xca, 0xdb, 0x47, 0x0e, + 0x53, 0x9b, 0x75, 0x2b, 0xae, 0x8c, 0xef, 0x26, + 0x79, 0xa6, 0x26, 0xcd, 0x85, 0x1f, 0x22, 0x39, + 0xf9, 0x71, 0x4a, 0x98, 0xef, 0x77, 0xb7, 0x9c, + 0x6c, 0x81, 0x82, 0xaf, 0x20, 0x6e, 0xa1, 0x92, + 0x8a, 0x39, 0xd5, 0xb7, 0x23, 0x77, 0x2b, 0x52, + 0x69, 0x76, 0xb6, 0x61, 0x72, 0x2a, 0x59, 0xae, + 0x22, 0x8d, 0x69, 0x44, 0x95, 0xa2, 0x0e, 0x42, + 0x3b, 0xf6, 0x77, 0x99, 0x81, 0x89, 0x22, 0x28, + 0x2d, 0x55, 0xa7, 0x91, 0xbb, 0x56, 0x2f, 0x54, + 0xa6, 0x04, 0xc9, 0x9b, 0xa8, 0x7f, 0x46, 0xab, + 0x78, 0xbb, 0x05, 0x69, 0x15, 0x7a, 0xc0, 0xc3, + 0x03, 0x60, 0x0a, 0xae, 0x5d, 0x94, 0x2d, 0x8c, + 0x94, 0xa5, 0x92, 0x65, 0x01, 0xb9, 0xc0, 0xa3, + 0xac, 0x6a, 0x11, 0x5e, 0x71, 0x44, 0x6c, 0x87, + 0x28, 0xd3, 0x01, 0xdb, 0x44, 0xf9, 0xfa, 0xe0, + 0x64, 0x99, 0x0e, 0x4f, 0x1b, 0x9e, 0x0e, 0x47, + 0x6f, 0xbb, 0xab, 0xec, 0x2b, 0x55, 0xd5, 0xff, + 0x00, 0xb6, 0x58, 0x6b, 0x2b, 0x23, 0x7a, 0x82, + 0x25, 0x4a, 0x3c, 0xcc, 0x93, 0xc7, 0x98, 0xa3, + 0x75, 0x2f, 0x9d, 0x7c, 0xcc, 0x8f, 0x10, 0x79, + 0xc3, 0x79, 0x8e, 0x68, 0xdf, 0x85, 0x45, 0xb9, + 0x01, 0x88, 0x5d, 0x8e, 0x2a, 0x27, 0x8b, 0x2d, + 0xc4, 0x0a, 0xbb, 0x5a, 0x24, 0x77, 0x74, 0x11, + 0xf8, 0x91, 0x67, 0x98, 0xa3, 0xc7, 0xda, 0x1d, + 0xcc, 0x51, 0xe3, 0x6f, 0x3a, 0x6d, 0xba, 0x31, + 0x89, 0xf0, 0x7b, 0x38, 0x46, 0x96, 0x37, 0x9a, + 0xce, 0x52, 0xcc, 0x33, 0x68, 0xa5, 0x5e, 0xbb, + 0xb1, 0x81, 0x88, 0x55, 0x83, 0xfe, 0xc8, 0x2b, + 0x22, 0x2d, 0xb4, 0x9e, 0x6a, 0xa3, 0x5b, 0xac, + 0x31, 0x90, 0x63, 0xf7, 0x29, 0x69, 0x65, 0x5a, + 0x79, 0x28, 0xb0, 0xbb, 0x1c, 0x4f, 0x88, 0xa5, + 0x5e, 0x66, 0xd8, 0x35, 0x2a, 0xc5, 0x51, 0x77, + 0x6a, 0x6c, 0xab, 0xdb, 0x08, 0x17, 0x5b, 0xaa, + 0xac, 0x76, 0xcc, 0x5f, 0x2a, 0x8b, 0xa2, 0x7b, + 0x94, 0x94, 0x16, 0xb3, 0x08, 0xa0, 0xaa, 0x35, + 0x15, 0x67, 0x26, 0xc6, 0x39, 0xf4, 0x45, 0x9d, + 0x5b, 0xa3, 0x56, 0xf3, 0x2c, 0x56, 0xe7, 0xb0, + 0xc7, 0xbf, 0xda, 0x7a, 0xd0, 0x16, 0x64, 0x6b, + 0xf4, 0x96, 0xd6, 0x02, 0x8c, 0xb9, 0xa0, 0x02, + 0x22, 0x85, 0x20, 0xb7, 0x5f, 0xc1, 0x99, 0xf4, + 0x64, 0xec, 0x64, 0x99, 0x0f, 0x5f, 0x46, 0xb1, + 0xf1, 0x5c, 0x73, 0x1a, 0xdc, 0xee, 0x68, 0x15, + 0x1d, 0x29, 0x5d, 0x43, 0x68, 0x94, 0x8c, 0xa8, + 0xd7, 0xe3, 0x47, 0xdc, 0xd6, 0x46, 0x19, 0x6a, + 0xba, 0x93, 0x9b, 0xe2, 0x7c, 0xa5, 0x0f, 0x6d, + 0x70, 0x00, 0xaf, 0x1d, 0x73, 0x0c, 0x74, 0x28, + 0xbd, 0xb0, 0xc2, 0xdc, 0x2a, 0xd6, 0x21, 0xa6, + 0x7d, 0x42, 0xf1, 0x02, 0x51, 0x1d, 0xf1, 0x23, + 0xae, 0xb2, 0x2c, 0xa6, 0x15, 0x8a, 0x9e, 0x25, + 0xaf, 0x41, 0x5d, 0x44, 0xc3, 0xa6, 0xaa, 0xf1, + 0xf8, 0x5c, 0x16, 0x26, 0x7a, 0x52, 0x5c, 0xd2, + 0x4e, 0x1e, 0x5b, 0x13, 0xca, 0x33, 0x27, 0xd3, + 0xb2, 0xc8, 0xde, 0x16, 0xc9, 0x1c, 0x76, 0x51, + 0x96, 0xeb, 0xa3, 0x18, 0xcc, 0x76, 0x2d, 0x59, + 0x43, 0x8b, 0x55, 0x86, 0xd5, 0x12, 0xc6, 0x50, + 0x4d, 0x2b, 0x8a, 0x1a, 0xcd, 0x3e, 0xb3, 0x1a, + 0xce, 0xcb, 0xd4, 0xa5, 0xca, 0x96, 0x0b, 0xa1, + 0xe9, 0x8f, 0x2f, 0x3c, 0x46, 0x09, 0x95, 0xec, + 0xd4, 0x52, 0xea, 0x53, 0x8c, 0x65, 0xfe, 0xd3, + 0x72, 0xb2, 0x19, 0x4a, 0x11, 0x72, 0xc3, 0x22, + 0xcb, 0x01, 0xa6, 0x0c, 0x6a, 0x8e, 0xa3, 0xc5, + 0x90, 0x48, 0x5b, 0x37, 0x68, 0x31, 0x42, 0x1c, + 0xd0, 0x23, 0x38, 0x81, 0xc7, 0x26, 0x95, 0xf0, + 0xaf, 0x92, 0xcd, 0xb2, 0xa1, 0xe4, 0x82, 0x5d, + 0x6d, 0x28, 0x1b, 0x75, 0xe6, 0x93, 0x5f, 0x5d, + 0x2e, 0x4a, 0x44, 0x9c, 0x02, 0x2d, 0x25, 0xb9, + 0x06, 0xb2, 0x28, 0x91, 0x81, 0x90, 0x82, 0x89, + 0x75, 0xab, 0x2c, 0x27, 0x58, 0xb2, 0xd6, 0x3d, + 0xed, 0x3f, 0x74, 0xd7, 0x34, 0xa4, 0xd8, 0x65, + 0xf7, 0x37, 0x22, 0x99, 0x9e, 0xed, 0xa3, 0xef, + 0x44, 0x46, 0xb0, 0x1f, 0x8f, 0x31, 0x1f, 0xca, + 0x35, 0xb5, 0x92, 0xfc, 0x3e, 0xe7, 0xed, 0x0c, + 0xd3, 0xbf, 0x04, 0x3f, 0xd7, 0x57, 0xd6, 0x1b, + 0xf1, 0xc2, 0xbf, 0x63, 0xbb, 0xa0, 0xf7, 0xa3, + 0x47, 0xef, 0x4e, 0x9d, 0xf8, 0xcb, 0x25, 0xfb, + 0x63, 0x7f, 0xba, 0x92, 0xd9, 0x8d, 0xe1, 0x4d, + 0x5b, 0x26, 0x23, 0xcb, 0x30, 0x07, 0x05, 0xb4, + 0x7e, 0x4d, 0x66, 0xfa, 0xb1, 0xe2, 0x5d, 0xc8, + 0x5a, 0xc9, 0xd5, 0x6f, 0xfc, 0x9d, 0x8a, 0x99, + 0x17, 0x1d, 0xb4, 0xb5, 0x45, 0xde, 0x2c, 0x0d, + 0x9b, 0xc9, 0xcc, 0x33, 0xb7, 0x38, 0x14, 0x77, + 0x4c, 0x6d, 0xfb, 0xac, 0x7e, 0x4b, 0xa5, 0xd7, + 0xec, 0x36, 0xd3, 0x6b, 0xa3, 0xd4, 0xe9, 0x75, + 0x7a, 0x27, 0x05, 0xc9, 0xd4, 0xe4, 0x6f, 0x27, + 0x36, 0xdb, 0x73, 0x74, 0xcf, 0x6f, 0xf0, 0x67, + 0x47, 0x8f, 0x0c, 0x85, 0xe0, 0xa0, 0xc2, 0x93, + 0x3a, 0x23, 0x72, 0xc0, 0xd2, 0x32, 0x99, 0x82, + 0xe6, 0x2a, 0xb0, 0xc8, 0x41, 0x17, 0x34, 0x41, + 0x73, 0x4a, 0xf7, 0xde, 0x22, 0x7c, 0xb1, 0x1a, + 0xc7, 0x67, 0x99, 0x40, 0x4e, 0x29, 0x56, 0x4d, + 0x77, 0x52, 0xed, 0x3d, 0xd7, 0x36, 0x51, 0x8d, + 0xb6, 0x13, 0xe5, 0x13, 0xd3, 0x9b, 0x8f, 0x6b, + 0x6c, 0x4c, 0x74, 0x59, 0xd3, 0x93, 0xe4, 0xdc, + 0xf6, 0xe7, 0x97, 0x56, 0x75, 0x5e, 0xab, 0xac, + 0x3b, 0x88, 0x1e, 0xdb, 0x1d, 0xa3, 0x93, 0x76, + 0x67, 0x93, 0x51, 0x67, 0x3d, 0x2e, 0x81, 0xfd, + 0x80, 0xea, 0xcb, 0x3e, 0xc9, 0xed, 0xbd, 0x5e, + 0x5f, 0x6a, 0xe4, 0xe6, 0x34, 0xc5, 0xbc, 0x54, + 0xd8, 0xc8, 0x56, 0xc7, 0x78, 0x31, 0x36, 0xbb, + 0x74, 0xae, 0xa7, 0x4c, 0x79, 0x86, 0xbd, 0x96, + 0xd1, 0x0a, 0xbd, 0x56, 0x5b, 0xaa, 0xa2, 0xe4, + 0x59, 0x0d, 0xf5, 0xa0, 0xa5, 0x6a, 0x26, 0xd7, + 0x67, 0x29, 0xc3, 0x33, 0x38, 0xe2, 0x25, 0x89, + 0xf5, 0x71, 0xd9, 0x6a, 0xbd, 0x59, 0x08, 0x83, + 0x6d, 0x02, 0x7d, 0x77, 0x26, 0x3a, 0x9d, 0xc6, + 0x4c, 0xad, 0x78, 0x99, 0x0b, 0xfe, 0x1f, 0x42, + 0x46, 0x22, 0x77, 0xda, 0x72, 0x4d, 0xa3, 0x89, + 0xec, 0x16, 0xf2, 0xd5, 0xca, 0xb5, 0xae, 0x4b, + 0x80, 0x78, 0xc4, 0xad, 0xac, 0x5b, 0x6c, 0x78, + 0x3f, 0x1c, 0x34, 0x52, 0x75, 0x7a, 0x86, 0xa1, + 0x85, 0x83, 0x2f, 0x59, 0x55, 0x70, 0x93, 0x15, + 0x04, 0x7b, 0x59, 0x2b, 0x86, 0xad, 0x76, 0x58, + 0x88, 0xe1, 0xe4, 0x56, 0x51, 0x2b, 0xaf, 0xbf, + 0x6f, 0x95, 0x32, 0x3b, 0x4b, 0x0c, 0xe5, 0x5e, + 0xd3, 0xda, 0xea, 0x82, 0xaa, 0x10, 0xf2, 0xbb, + 0xa6, 0x0a, 0x82, 0x89, 0x2d, 0xf9, 0x75, 0xc5, + 0x39, 0x66, 0x74, 0xd2, 0xcc, 0xb9, 0xae, 0x95, + 0x6a, 0x9d, 0x58, 0x36, 0x00, 0xbe, 0xda, 0xee, + 0x16, 0xde, 0xe4, 0x89, 0x55, 0x2b, 0x53, 0x5a, + 0x65, 0xd2, 0xa0, 0x03, 0x36, 0x86, 0xd1, 0x05, + 0x32, 0x23, 0xfb, 0xae, 0x17, 0xa1, 0x64, 0x09, + 0x56, 0x97, 0x5f, 0x23, 0x71, 0x8a, 0x28, 0xd8, + 0x81, 0x59, 0x2c, 0x8b, 0xac, 0xd5, 0xe7, 0x8f, + 0xb8, 0x44, 0x99, 0x83, 0xe5, 0x9f, 0x1a, 0x22, + 0x47, 0x78, 0xef, 0x8f, 0xa9, 0xc3, 0x1f, 0x5d, + 0x19, 0x5c, 0x9e, 0x34, 0xc1, 0x79, 0x9e, 0xc5, + 0x18, 0xea, 0xdd, 0xa2, 0x1c, 0x05, 0x79, 0x5d, + 0xa2, 0x5d, 0xfb, 0xca, 0xd7, 0x24, 0x84, 0xc2, + 0x79, 0x3b, 0xc3, 0x78, 0x22, 0xf7, 0x5b, 0x78, + 0xbe, 0x94, 0xf1, 0x2f, 0xab, 0xbf, 0xe0, 0xfa, + 0xf4, 0xa7, 0x89, 0x7d, 0x5d, 0xff, 0x00, 0x07, + 0xd7, 0xa5, 0x3c, 0x4b, 0xea, 0xef, 0xf8, 0x3e, + 0xbd, 0x29, 0xe2, 0x5f, 0x57, 0x7f, 0xc1, 0xf5, + 0xe9, 0x4f, 0x12, 0xfa, 0xbb, 0xfe, 0x0f, 0xaf, + 0x4a, 0x78, 0x97, 0xd5, 0xdf, 0xf0, 0x7d, 0x7a, + 0x53, 0xc4, 0xbe, 0xae, 0xff, 0x00, 0x83, 0xeb, + 0xd2, 0x9e, 0x25, 0xf5, 0x77, 0xfc, 0x1f, 0x5e, + 0x94, 0xf1, 0x2f, 0xab, 0xbf, 0xe0, 0xfa, 0xf4, + 0xa7, 0x89, 0x7d, 0x5d, 0xff, 0x00, 0x07, 0xd7, + 0xa5, 0x3c, 0x4b, 0xea, 0xef, 0xf8, 0x3e, 0xbd, + 0x29, 0xe2, 0x5f, 0x57, 0x7f, 0xc1, 0xf5, 0xe9, + 0x4f, 0x12, 0xfa, 0xbb, 0xfe, 0x0f, 0xaf, 0x4a, + 0x78, 0x97, 0xd5, 0xdf, 0xf0, 0x7d, 0x7a, 0x53, + 0xc4, 0xbe, 0xae, 0xff, 0x00, 0x83, 0xeb, 0xd2, + 0x9e, 0x25, 0xf5, 0x77, 0xfc, 0x1f, 0x5e, 0x94, + 0xf1, 0x2f, 0xab, 0xbf, 0xe0, 0xfa, 0xf4, 0xa7, + 0x89, 0x7d, 0x5d, 0xff, 0x00, 0x07, 0xd7, 0xa5, + 0x3c, 0x4b, 0xea, 0xef, 0xf8, 0x3e, 0xbd, 0x29, + 0xe2, 0x5f, 0x57, 0x7f, 0xc1, 0xf5, 0x8a, 0x2a, + 0x9c, 0x4b, 0xc4, 0x4d, 0xb6, 0x39, 0x3c, 0x79, + 0x55, 0x53, 0x68, 0x72, 0xa9, 0xb6, 0x62, 0xda, + 0x66, 0xba, 0xd8, 0x5e, 0x09, 0x0e, 0x55, 0x9b, + 0xb9, 0x04, 0xcb, 0x9c, 0x36, 0x19, 0x99, 0xe6, + 0x1f, 0x2e, 0xb2, 0x5f, 0x87, 0xdc, 0xfd, 0xa1, + 0x9a, 0x77, 0xe0, 0x87, 0xfa, 0xe4, 0x6b, 0x0d, + 0xf8, 0xe1, 0x5f, 0xb1, 0xdd, 0xd0, 0x7b, 0xd1, + 0xa3, 0xf7, 0xa7, 0x4f, 0xfc, 0x65, 0x92, 0xfd, + 0xad, 0x9f, 0xdd, 0x42, 0x00, 0x32, 0x46, 0x53, + 0x02, 0x22, 0x31, 0x24, 0x44, 0x53, 0xdd, 0x02, + 0x31, 0x1d, 0xf3, 0x33, 0x3d, 0xd1, 0x11, 0xdf, + 0x3a, 0x5d, 0x4c, 0x8a, 0x30, 0xb6, 0x56, 0x9d, + 0xfa, 0x35, 0xb3, 0x47, 0x84, 0xb1, 0x35, 0xf7, + 0xdb, 0x7e, 0x9a, 0xef, 0x36, 0x5a, 0x9f, 0xb9, + 0xb8, 0xc7, 0x2c, 0x7f, 0x8b, 0xaf, 0x34, 0x70, + 0x47, 0xc5, 0xf8, 0x5b, 0xe5, 0x35, 0xe6, 0x8e, + 0x08, 0xf8, 0xbf, 0x0b, 0x7c, 0xa6, 0xbc, 0xd1, + 0xc1, 0x1f, 0x17, 0xe1, 0x6f, 0x94, 0xd7, 0x9a, + 0x38, 0x23, 0xe2, 0xfc, 0x2d, 0xf2, 0x9a, 0xf3, + 0x47, 0x04, 0x7c, 0x5f, 0x85, 0xbe, 0x53, 0x5e, + 0x68, 0xe0, 0x8f, 0x8b, 0xf0, 0xb7, 0xca, 0x6b, + 0xcd, 0x1c, 0x11, 0xf1, 0x7e, 0x16, 0xf9, 0x4d, + 0x79, 0xa3, 0x82, 0x3e, 0x2f, 0xc2, 0xdf, 0x29, + 0xaf, 0x34, 0x70, 0x47, 0xc5, 0xf8, 0x5b, 0xe5, + 0x35, 0xe6, 0x8e, 0x08, 0xf8, 0xbf, 0x0b, 0x7c, + 0xa6, 0xbc, 0xd1, 0xc1, 0x1f, 0x17, 0xe1, 0x6f, + 0x94, 0xd7, 0x9a, 0x38, 0x23, 0xe2, 0xfc, 0x2d, + 0xf2, 0x9a, 0xf3, 0x47, 0x04, 0x7c, 0x5f, 0x85, + 0xbe, 0x53, 0x5e, 0x68, 0xe0, 0x8f, 0x8b, 0xf0, + 0xb7, 0xca, 0x6b, 0xcd, 0x1c, 0x11, 0xf1, 0x7e, + 0x16, 0xf9, 0x4d, 0x79, 0xa3, 0x82, 0x3e, 0x2f, + 0xc2, 0xdf, 0x29, 0xaf, 0x34, 0x70, 0x47, 0xc5, + 0xf8, 0x5b, 0xe5, 0x35, 0xe6, 0x8e, 0x08, 0xf8, + 0xbf, 0x0b, 0x7c, 0xa6, 0xbc, 0xd1, 0xc1, 0x1f, + 0x17, 0xe1, 0x6f, 0x94, 0xd0, 0xb1, 0x38, 0xee, + 0x0c, 0x43, 0x42, 0x79, 0x96, 0xe4, 0xab, 0x85, + 0x81, 0xab, 0x28, 0xf2, 0x12, 0xcf, 0x9f, 0xc5, + 0x28, 0xfb, 0x93, 0xa9, 0xbb, 0x6e, 0x25, 0xd0, + 0xf2, 0xef, 0xb4, 0x0d, 0x55, 0xa5, 0x11, 0x77, + 0x77, 0x4b, 0xab, 0x9b, 0x56, 0x33, 0xb6, 0xd0, + 0x21, 0xcd, 0x1d, 0xd1, 0xb0, 0xc6, 0xc3, 0xdd, + 0xae, 0x0b, 0xff, 0x00, 0x31, 0xc4, 0x3f, 0xb7, + 0xd4, 0xfe, 0xd5, 0x8b, 0x1a, 0x87, 0xc3, 0x75, + 0x92, 0x7c, 0x35, 0x85, 0x7b, 0x14, 0xfc, 0x7e, + 0x02, 0x6e, 0xb1, 0xce, 0xc7, 0x01, 0xbd, 0xa4, + 0x76, 0x71, 0xec, 0xb6, 0x6d, 0x79, 0xee, 0x50, + 0xc9, 0x6f, 0x39, 0x14, 0xf3, 0x0c, 0xc4, 0xeb, + 0x0d, 0x16, 0x6b, 0xe0, 0x13, 0x81, 0x3e, 0x18, + 0xc5, 0xbf, 0x21, 0x2d, 0xad, 0x80, 0x5d, 0xc3, + 0x96, 0xe1, 0xf9, 0xec, 0x34, 0x19, 0x0b, 0x8c, + 0xe4, 0xdd, 0x6b, 0xa6, 0x09, 0x06, 0xb2, 0xe7, + 0x3b, 0x12, 0x13, 0xbc, 0x84, 0x96, 0xb1, 0x83, + 0x5d, 0x2a, 0x48, 0x9f, 0x0d, 0x70, 0xe3, 0xcc, + 0x54, 0xb0, 0x54, 0x1b, 0x9d, 0x8a, 0xae, 0xc7, + 0x38, 0xe0, 0x22, 0x20, 0x9a, 0xd3, 0x99, 0x36, + 0xb2, 0x7c, 0x76, 0x1c, 0xc9, 0x14, 0xcc, 0xff, + 0x00, 0x69, 0xc0, 0x7e, 0x3c, 0xc4, 0x7f, 0x28, + 0xd6, 0xd6, 0x4b, 0xf0, 0xfb, 0x9f, 0xb4, 0x33, + 0x4e, 0xfc, 0x10, 0xff, 0x00, 0x5c, 0x8d, 0x61, + 0xbf, 0x1c, 0x2b, 0xf6, 0x3b, 0xba, 0x0f, 0x7a, + 0x34, 0x7e, 0xf4, 0xe9, 0xff, 0x00, 0x8c, 0xf2, + 0x5f, 0xb5, 0xb3, 0xfb, 0xaa, 0xee, 0x49, 0x1e, + 0x2d, 0xc7, 0x5b, 0xaf, 0x8a, 0xac, 0xe8, 0xf7, + 0x75, 0x61, 0xe9, 0xb0, 0xfb, 0x0d, 0x54, 0xef, + 0xe2, 0xb4, 0xd2, 0x89, 0x50, 0x9c, 0x78, 0xcb, + 0x82, 0x2e, 0x59, 0xf1, 0xa7, 0x5b, 0xcc, 0xef, + 0x33, 0xdf, 0x33, 0x3d, 0xf3, 0x33, 0x3e, 0x59, + 0x9f, 0xe3, 0xfd, 0xda, 0xab, 0x56, 0x5c, 0xb5, + 0xef, 0x38, 0x5a, 0x94, 0x3b, 0x73, 0x19, 0x97, + 0x90, 0x63, 0x7d, 0xa3, 0x79, 0xfe, 0x39, 0xd1, + 0xda, 0xbb, 0x8a, 0xb4, 0x8a, 0xeb, 0xdb, 0xa8, + 0xd9, 0x80, 0x31, 0x0d, 0xe7, 0x68, 0x93, 0xe9, + 0x99, 0xc8, 0x8e, 0xfd, 0xdc, 0xd3, 0x1c, 0xb1, + 0xdd, 0xbc, 0xf7, 0xfd, 0x4a, 0xb6, 0xdc, 0x92, + 0x5d, 0x7b, 0xbd, 0x5e, 0xc8, 0xd9, 0xe5, 0xe5, + 0x7f, 0x40, 0x84, 0x5d, 0xc9, 0xb4, 0xcc, 0xfb, + 0x59, 0x10, 0xc4, 0xf3, 0x44, 0x79, 0x7b, 0xbf, + 0xb5, 0xd4, 0xa7, 0xbc, 0x9d, 0x3c, 0xad, 0x84, + 0xe3, 0xae, 0xd6, 0x92, 0x2e, 0x9b, 0x57, 0x6d, + 0x91, 0x5e, 0x0f, 0x68, 0xdb, 0x66, 0xa2, 0x59, + 0x0c, 0x53, 0x23, 0xc7, 0x19, 0x8d, 0xa2, 0x7b, + 0xe7, 0x4e, 0x56, 0xfb, 0xf4, 0xda, 0xc5, 0xef, + 0xf7, 0xf9, 0x0a, 0x47, 0x7f, 0xfa, 0xb5, 0xc2, + 0x65, 0x87, 0xc6, 0xbe, 0xf8, 0xd5, 0x56, 0x70, + 0x6c, 0x4a, 0x65, 0x51, 0xd2, 0x97, 0x5e, 0x44, + 0xaa, 0x0b, 0xa8, 0xc0, 0xf7, 0x7d, 0x26, 0x6d, + 0xb6, 0xfe, 0xe6, 0x77, 0xd7, 0xa3, 0xb7, 0x7e, + 0x15, 0x5f, 0x9c, 0x6b, 0xd1, 0xdb, 0xbf, 0x0a, + 0xaf, 0xce, 0x35, 0xe8, 0xed, 0xdf, 0x85, 0x57, + 0xe7, 0x1a, 0xf4, 0x76, 0xef, 0xc2, 0xab, 0xf3, + 0x8d, 0x7a, 0x3b, 0x77, 0xe1, 0x55, 0xf9, 0xc6, + 0xbd, 0x1d, 0xbb, 0xf0, 0xaa, 0xfc, 0xe3, 0x5e, + 0x8e, 0xdd, 0xf8, 0x55, 0x7e, 0x71, 0xaf, 0x47, + 0x6e, 0xfc, 0x2a, 0xbf, 0x38, 0xd7, 0xa3, 0xb7, + 0x7e, 0x15, 0x5f, 0x9c, 0x6a, 0x99, 0x5b, 0xe0, + 0x9e, 0x22, 0xed, 0x15, 0x31, 0x74, 0x31, 0xb2, + 0x75, 0x73, 0xf8, 0x84, 0xa1, 0x9d, 0x82, 0xb0, + 0xd7, 0x07, 0x74, 0x1d, 0x84, 0xb4, 0xc0, 0xea, + 0x72, 0xf3, 0x92, 0xfb, 0x51, 0xed, 0xe4, 0x83, + 0xfb, 0xba, 0xa8, 0xcf, 0xad, 0x7b, 0xc8, 0xec, + 0xb8, 0xbc, 0x6e, 0x37, 0x97, 0xaf, 0x55, 0xbc, + 0xfe, 0x0f, 0xaa, 0x35, 0xba, 0xdb, 0xf3, 0xab, + 0x97, 0xad, 0xcb, 0xcf, 0xd3, 0xda, 0x7a, 0x7b, + 0xf2, 0xf3, 0x9f, 0xba, 0xd5, 0x47, 0x7d, 0x6b, + 0x5d, 0x47, 0x65, 0xc5, 0x62, 0xf1, 0x9c, 0xbd, + 0x7a, 0xad, 0xe7, 0xf0, 0x6d, 0x35, 0xd4, 0xeb, + 0xef, 0xce, 0xbe, 0x5e, 0xb7, 0x4f, 0xa9, 0xd2, + 0xd8, 0xba, 0x7b, 0xf2, 0xf5, 0x19, 0xb7, 0x34, + 0xfa, 0x3b, 0x77, 0xe1, 0x55, 0xf9, 0xc6, 0xbd, + 0x1d, 0xbb, 0xf0, 0xaa, 0xfc, 0xe3, 0x5e, 0x8e, + 0xdd, 0xf8, 0x55, 0x7e, 0x71, 0xaf, 0x47, 0x6e, + 0xfc, 0x2a, 0xbf, 0x38, 0xd7, 0xa3, 0xb7, 0x7e, + 0x15, 0x5f, 0x9c, 0x6b, 0xd1, 0xdb, 0xbf, 0x0a, + 0xaf, 0xce, 0x35, 0xe8, 0xed, 0xdf, 0x85, 0x57, + 0xe7, 0x1a, 0xf4, 0x76, 0xef, 0xc2, 0xab, 0xf3, + 0x8d, 0x61, 0xac, 0x3f, 0x03, 0x71, 0x69, 0xaf, + 0x96, 0xc6, 0x3d, 0xcc, 0x92, 0xad, 0xb2, 0xd4, + 0x9b, 0xa8, 0x63, 0x4e, 0x76, 0x7c, 0xce, 0xc0, + 0x03, 0x25, 0x3b, 0x44, 0xce, 0xd1, 0xdd, 0x1a, + 0xc9, 0x7e, 0x1f, 0x73, 0xf6, 0x86, 0x69, 0xbf, + 0x82, 0x9f, 0xeb, 0x91, 0xac, 0x37, 0xe3, 0x85, + 0x7e, 0xc7, 0x77, 0x41, 0xef, 0x46, 0x8f, 0xde, + 0x9d, 0x3f, 0xf1, 0x9e, 0x4b, 0xf6, 0xa3, 0xfe, + 0xea, 0x89, 0xff, 0x00, 0xf9, 0x96, 0x94, 0x7f, + 0xd9, 0x59, 0x49, 0xff, 0x00, 0xf0, 0x6b, 0xcb, + 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, + 0x2e, 0xbc, 0xba, 0xc1, 0x0e, 0xfe, 0x5c, 0x95, + 0x78, 0xff, 0x00, 0xaf, 0x59, 0xac, 0x3d, 0x9b, + 0xb6, 0xed, 0x62, 0xdc, 0xfc, 0xf5, 0x6b, 0x35, + 0x2c, 0x59, 0x6b, 0xaa, 0xae, 0xa2, 0xfb, 0x47, + 0xb8, 0x5b, 0x48, 0xd6, 0x91, 0x5e, 0xc2, 0x31, + 0xd3, 0x80, 0xf1, 0x7c, 0x4f, 0x73, 0x3b, 0x6b, + 0x0c, 0x39, 0x70, 0xa0, 0x07, 0x9b, 0xa4, 0xeb, + 0x96, 0x32, 0xf7, 0x33, 0xb5, 0x71, 0xf6, 0x28, + 0x73, 0xef, 0x15, 0x3b, 0x1d, 0x27, 0xb0, 0x26, + 0xc8, 0x47, 0x2c, 0x41, 0x96, 0xd0, 0x22, 0x5b, + 0xef, 0xd6, 0xe6, 0x20, 0x0e, 0x0a, 0x5e, 0x63, + 0x16, 0x59, 0xae, 0xd5, 0x6b, 0x29, 0x41, 0x06, + 0xbb, 0x24, 0xa4, 0x21, 0x65, 0x90, 0x4a, 0xec, + 0x59, 0x1e, 0x9e, 0xfd, 0xa5, 0xc5, 0x3d, 0x9e, + 0x6b, 0x2b, 0x98, 0x44, 0xd7, 0xd6, 0x98, 0x70, + 0xf7, 0x73, 0x71, 0x7f, 0x4d, 0x7d, 0x46, 0xe2, + 0xb3, 0xf8, 0xfa, 0xd4, 0xec, 0x19, 0x11, 0x35, + 0x35, 0x2d, 0x25, 0x2e, 0x94, 0xcc, 0xc4, 0xf2, + 0xce, 0xdd, 0x4e, 0x49, 0x23, 0x19, 0x29, 0xf2, + 0xcc, 0xef, 0xa7, 0x58, 0xb3, 0x47, 0x9e, 0x8e, + 0x2b, 0x83, 0x2a, 0xe7, 0x1d, 0x8f, 0x5b, 0x0c, + 0x3b, 0x65, 0xa3, 0x0e, 0x59, 0xea, 0x14, 0x94, + 0x98, 0x8c, 0xcc, 0xc9, 0x1c, 0x8f, 0x8a, 0x13, + 0x03, 0x33, 0x1b, 0x78, 0xb3, 0x81, 0xce, 0x62, + 0x71, 0x51, 0x8a, 0x3c, 0x8d, 0xfb, 0x8a, 0x72, + 0xfa, 0xed, 0xb1, 0x31, 0xd0, 0x86, 0x0c, 0x80, + 0xb4, 0xf9, 0x60, 0xd5, 0xce, 0x1c, 0xc1, 0x3d, + 0x25, 0xce, 0xdd, 0xdb, 0x6b, 0xcb, 0xaf, 0x2e, + 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, + 0xba, 0xc0, 0x46, 0xfe, 0x5c, 0xde, 0x26, 0x3f, + 0x2d, 0xfa, 0xfa, 0xb7, 0xf8, 0x4b, 0xff, 0x00, + 0x5a, 0x5a, 0xe0, 0xbd, 0xe3, 0xfe, 0x43, 0x88, + 0x7f, 0x6f, 0xa9, 0xaf, 0x24, 0x7e, 0x4d, 0x79, + 0x23, 0xf2, 0x6b, 0xc9, 0x1f, 0x93, 0x5e, 0x48, + 0xfc, 0x9a, 0xf2, 0x47, 0xe4, 0xd3, 0xab, 0xc8, + 0x3d, 0xb1, 0x5a, 0x85, 0xbc, 0x87, 0x64, 0xa2, + 0x21, 0x37, 0xef, 0xf6, 0x41, 0x89, 0xec, 0x54, + 0x79, 0xd6, 0xd1, 0xed, 0x0e, 0x92, 0xdf, 0x9b, + 0xa3, 0x62, 0x54, 0x90, 0x6b, 0x46, 0xbd, 0x82, + 0x08, 0x49, 0xf6, 0xdc, 0x4f, 0x5c, 0xeb, 0x2a, + 0xb0, 0xbb, 0x25, 0x56, 0xdc, 0xa9, 0x97, 0x30, + 0xcd, 0xed, 0x51, 0x47, 0xa5, 0x65, 0xe0, 0x9a, + 0x8b, 0xb6, 0xb7, 0x3e, 0x56, 0x68, 0x7a, 0x6a, + 0x22, 0x44, 0x5e, 0x09, 0x7a, 0x16, 0xc5, 0xc9, + 0xb1, 0xa4, 0x58, 0xe2, 0x1e, 0x8c, 0x19, 0x10, + 0x11, 0xd6, 0x16, 0x94, 0x2a, 0xb8, 0x5a, 0x74, + 0xa5, 0x24, 0xe8, 0x75, 0x9e, 0xcf, 0x5c, 0xc5, + 0xb6, 0x7b, 0x38, 0x37, 0xb3, 0x06, 0xfd, 0xa3, + 0xa7, 0xca, 0x5b, 0x56, 0xa6, 0x15, 0x66, 0xed, + 0x8b, 0x53, 0x53, 0xa4, 0xfa, 0xb6, 0x2a, 0x3a, + 0xb9, 0x9d, 0xac, 0x6d, 0x6c, 0x81, 0xd5, 0xe8, + 0x2f, 0x9d, 0xab, 0x65, 0x68, 0x79, 0x49, 0x5a, + 0x7b, 0xd6, 0xa6, 0x57, 0x08, 0xb3, 0x09, 0x5a, + 0x4a, 0x19, 0x39, 0x26, 0xba, 0xbb, 0xbb, 0x7d, + 0x77, 0x60, 0xc3, 0x1e, 0x84, 0x4d, 0x77, 0xa2, + 0xf0, 0x65, 0xdf, 0x65, 0x30, 0x6b, 0x6a, 0x7a, + 0xcb, 0xb5, 0x1c, 0xc8, 0x80, 0x51, 0xd6, 0xb1, + 0xc9, 0x0d, 0xea, 0x2d, 0x9b, 0x98, 0xc8, 0x8c, + 0xa6, 0xea, 0x48, 0xa1, 0x0e, 0x95, 0xd9, 0x4d, + 0x77, 0xa0, 0x19, 0x3d, 0x32, 0xd9, 0x80, 0xab, + 0x50, 0xab, 0xa8, 0x12, 0xee, 0x98, 0x86, 0xf4, + 0xac, 0x2e, 0x27, 0xbf, 0x94, 0xe3, 0xbb, 0x58, + 0x75, 0xd0, 0xc6, 0xe6, 0xdf, 0x6b, 0x2f, 0x8f, + 0x1c, 0x82, 0xd6, 0x79, 0xac, 0x6c, 0xc2, 0xa3, + 0xb4, 0x5b, 0x49, 0xa3, 0x68, 0xe1, 0xc4, 0xf5, + 0x67, 0x92, 0xa4, 0xb2, 0x1d, 0xd4, 0x54, 0x47, + 0x36, 0xdd, 0x12, 0xe5, 0xf1, 0x85, 0xde, 0x0d, + 0x98, 0x51, 0x21, 0x16, 0xb9, 0xc9, 0xd4, 0xc7, + 0x92, 0x9d, 0xa5, 0xf5, 0x51, 0x75, 0xf0, 0x4f, + 0x19, 0xaf, 0x49, 0x81, 0xfd, 0xfa, 0xf8, 0x55, + 0x51, 0x28, 0x95, 0x9b, 0x45, 0xa3, 0x21, 0x16, + 0x6b, 0x46, 0x35, 0x82, 0xfa, 0x6e, 0x0a, 0xd6, + 0x01, 0xb2, 0x84, 0x40, 0xd9, 0x6e, 0xf2, 0x9a, + 0xe0, 0xc7, 0xb1, 0x6b, 0x7d, 0x8b, 0x03, 0x12, + 0x75, 0x91, 0x5c, 0xda, 0xdb, 0x2b, 0xf6, 0xda, + 0xe2, 0xc5, 0xf8, 0xda, 0x6e, 0x4c, 0xb1, 0xed, + 0x1a, 0x09, 0x6c, 0xa1, 0xb6, 0x0e, 0x00, 0x20, + 0x1c, 0x2c, 0x85, 0x1a, 0xb9, 0x08, 0xa1, 0xb2, + 0xc5, 0xb0, 0x84, 0x5a, 0x30, 0xb9, 0x95, 0x6f, + 0x12, 0xce, 0x51, 0xef, 0xd7, 0x92, 0x3f, 0x26, + 0xbc, 0x91, 0xf9, 0x35, 0xe4, 0x8f, 0xc9, 0xaf, + 0x24, 0x7e, 0x4d, 0x79, 0x23, 0xf2, 0x6b, 0x01, + 0xdd, 0x1e, 0x7c, 0xc4, 0x7d, 0xcf, 0xfe, 0xd1, + 0xad, 0xac, 0x97, 0xe1, 0xf7, 0x3f, 0x68, 0x66, + 0x9b, 0xf8, 0x29, 0xfe, 0xb9, 0x1a, 0xc3, 0x7e, + 0x38, 0x57, 0xec, 0x77, 0x74, 0x1e, 0xf4, 0x68, + 0xfd, 0xe9, 0xd3, 0xff, 0x00, 0x19, 0xe4, 0xbf, + 0x6a, 0x3f, 0xee, 0xac, 0x80, 0xd5, 0x19, 0x63, + 0x71, 0x59, 0x3a, 0x59, 0x97, 0x2c, 0x7d, 0xd9, + 0x51, 0x0a, 0xd7, 0x29, 0x58, 0x60, 0x0f, 0xba, + 0x28, 0xaf, 0x36, 0x96, 0xd7, 0x6d, 0x1e, 0x28, + 0x77, 0xff, 0x00, 0x16, 0xbc, 0xba, 0xf2, 0xeb, + 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, 0xcb, + 0xaa, 0x59, 0x34, 0x0a, 0x98, 0xea, 0x36, 0x02, + 0xc2, 0xd6, 0xfe, 0x79, 0x49, 0x1a, 0xfc, 0x90, + 0xc8, 0x59, 0xac, 0xe4, 0x7e, 0xff, 0x00, 0x29, + 0x8c, 0xff, 0x00, 0x1e, 0xaf, 0xae, 0xbe, 0x27, + 0x87, 0x71, 0x36, 0x32, 0x6b, 0x62, 0xae, 0xe4, + 0x71, 0x78, 0xe2, 0xaf, 0x91, 0x7a, 0x9f, 0x3c, + 0xd6, 0x00, 0xec, 0xb2, 0xc3, 0xa6, 0x7a, 0xf3, + 0xde, 0xc2, 0x98, 0x93, 0xdf, 0xc6, 0x82, 0x83, + 0xf1, 0xb4, 0x9c, 0x6a, 0x11, 0x8b, 0x71, 0x53, + 0x0b, 0x2b, 0xc6, 0xe4, 0xad, 0x53, 0xea, 0xe4, + 0xb1, 0x8b, 0xb7, 0xf6, 0x60, 0xa5, 0x63, 0xaa, + 0x22, 0xb8, 0x99, 0xde, 0x7c, 0x65, 0x1c, 0xf7, + 0xf2, 0x94, 0x90, 0x08, 0x08, 0xe3, 0xb1, 0xc3, + 0x8e, 0xc1, 0xdd, 0x46, 0x30, 0x9a, 0xea, 0xc5, + 0x90, 0xa8, 0xeb, 0x2e, 0xed, 0x6c, 0x74, 0xb8, + 0x2e, 0xf5, 0x26, 0xd0, 0xc8, 0x5a, 0x47, 0x3b, + 0x41, 0x4c, 0x47, 0x4b, 0xc4, 0x71, 0xf5, 0x20, + 0xcb, 0x94, 0x87, 0x32, 0x6e, 0x5e, 0x3b, 0x2b, + 0x19, 0xd6, 0xc5, 0x9b, 0xa9, 0xca, 0xd3, 0x1b, + 0x35, 0xfb, 0x50, 0x7d, 0x8e, 0xc2, 0x93, 0x04, + 0xb5, 0x89, 0x2e, 0x39, 0x44, 0x00, 0xa0, 0xd3, + 0x02, 0xb5, 0xfb, 0x5c, 0xf2, 0x0e, 0xbc, 0x21, + 0x6b, 0x2b, 0x80, 0xc4, 0x5d, 0x9c, 0x2f, 0x83, + 0x7f, 0xb3, 0x09, 0x68, 0xe1, 0x32, 0xc0, 0xb9, + 0x8e, 0x7a, 0xf9, 0x36, 0x76, 0x8f, 0xde, 0xa4, + 0xe0, 0x26, 0x58, 0xea, 0x86, 0xca, 0x37, 0x24, + 0x2b, 0x8a, 0x82, 0x1b, 0xae, 0x1e, 0xc3, 0x8e, + 0x4b, 0x01, 0x7f, 0x21, 0x5a, 0xd5, 0xdb, 0x96, + 0x43, 0x86, 0x39, 0x67, 0x0d, 0x46, 0xb9, 0xc4, + 0xae, 0xad, 0x6a, 0xf2, 0x1b, 0x8f, 0x90, 0xbd, + 0xcc, 0xcf, 0x57, 0xc4, 0x23, 0x60, 0xc7, 0x38, + 0x49, 0x79, 0x75, 0xe5, 0xd7, 0x97, 0x5e, 0x5d, + 0x79, 0x75, 0xe5, 0xd7, 0x97, 0x58, 0x25, 0xd7, + 0x1d, 0xc6, 0xa6, 0x46, 0xa6, 0x4a, 0xdb, 0x26, + 0x76, 0x5d, 0x7a, 0x38, 0xeb, 0x0a, 0xb5, 0x69, + 0xed, 0x39, 0xee, 0x01, 0x85, 0xaf, 0x94, 0x66, + 0x7b, 0xa5, 0xa6, 0xb0, 0xfe, 0x16, 0x9e, 0xc1, + 0xf7, 0x2c, 0x73, 0x4c, 0x7d, 0xe2, 0x39, 0x28, + 0xff, 0x00, 0xaa, 0x75, 0xc1, 0x7f, 0xe6, 0x38, + 0x87, 0xf6, 0xfa, 0x9f, 0xba, 0x67, 0x5b, 0x20, + 0xec, 0x55, 0x95, 0xa7, 0xab, 0x8b, 0xbc, 0xb2, + 0x30, 0x5a, 0x72, 0x4a, 0x6a, 0x89, 0x5d, 0xa5, + 0x89, 0x5b, 0x2c, 0x25, 0x44, 0xb8, 0x74, 0x03, + 0xd1, 0xca, 0x69, 0xb1, 0xd1, 0x32, 0x9e, 0x9f, + 0x3e, 0xb1, 0x55, 0x32, 0x96, 0x95, 0x90, 0xb7, + 0x91, 0xc6, 0xe4, 0xf1, 0x9c, 0x43, 0x92, 0xac, + 0x1d, 0xce, 0xad, 0x31, 0x16, 0xb1, 0x64, 0xe3, + 0x85, 0x26, 0x2d, 0xd9, 0xc7, 0x95, 0x34, 0xb1, + 0x96, 0xa4, 0x67, 0x92, 0xbc, 0x02, 0x48, 0xe7, + 0xa3, 0x3c, 0xae, 0x7e, 0x4a, 0xe5, 0x16, 0x21, + 0xd6, 0xf3, 0x76, 0x4d, 0x4c, 0x55, 0xba, 0xb9, + 0xac, 0x54, 0xdd, 0x83, 0x21, 0x2c, 0x2d, 0xea, + 0x46, 0x25, 0x63, 0xb6, 0x78, 0x81, 0xd1, 0x76, + 0xc8, 0x51, 0xf5, 0x01, 0x89, 0x85, 0x9c, 0xba, + 0x42, 0x23, 0x20, 0x9f, 0xec, 0x85, 0x22, 0xab, + 0xcf, 0x02, 0xee, 0x7c, 0x79, 0xd8, 0xe0, 0xba, + 0x58, 0x4e, 0xa5, 0x98, 0xe9, 0x78, 0xbd, 0x3b, + 0xc9, 0x62, 0x1b, 0xd3, 0xea, 0xec, 0x82, 0x26, + 0x8c, 0x14, 0x79, 0x6c, 0x57, 0x66, 0x42, 0x72, + 0x2e, 0x60, 0xe2, 0x15, 0x60, 0x39, 0x9c, 0xd4, + 0x57, 0x53, 0x6e, 0x64, 0xe6, 0xfc, 0x60, 0x8a, + 0x56, 0xa9, 0x43, 0x6a, 0x52, 0xb4, 0x2d, 0x37, + 0x79, 0x3b, 0x7b, 0x9c, 0x75, 0xe4, 0xbd, 0xd4, + 0x59, 0x42, 0x2c, 0x05, 0xb4, 0x29, 0xcc, 0x04, + 0xd9, 0x5f, 0x37, 0x23, 0xd5, 0x05, 0xed, 0x6d, + 0x18, 0x38, 0x13, 0x8e, 0x71, 0xda, 0x66, 0x08, + 0x60, 0x86, 0x77, 0x89, 0xf2, 0x6b, 0x84, 0x5a, + 0x56, 0x42, 0x17, 0x8f, 0xc2, 0x95, 0x6b, 0x85, + 0xb1, 0xec, 0x87, 0xf5, 0xf2, 0xc5, 0xd3, 0x2f, + 0x13, 0x79, 0x9e, 0x57, 0xa6, 0x7c, 0x4e, 0x68, + 0xf1, 0xe3, 0xbf, 0xcb, 0xb6, 0x68, 0x46, 0xd8, + 0x94, 0xbf, 0x82, 0xf8, 0x5b, 0x17, 0x5a, 0x36, + 0x67, 0x8f, 0x6e, 0x94, 0xe0, 0xca, 0xe5, 0x51, + 0xf1, 0x3b, 0xa5, 0x25, 0x5e, 0xd4, 0x97, 0x36, + 0xc1, 0x3c, 0x85, 0xca, 0x45, 0xb8, 0xef, 0xd9, + 0xd1, 0x73, 0x12, 0x04, 0x9b, 0x98, 0x9b, 0x1d, + 0x6c, 0x9d, 0x67, 0x35, 0x26, 0x9f, 0xad, 0xdc, + 0x45, 0x17, 0xb6, 0xbf, 0x2a, 0xb9, 0xba, 0xf4, + 0x2c, 0xd1, 0x6a, 0xcd, 0x33, 0xb4, 0xba, 0x0e, + 0x25, 0x33, 0x31, 0x1a, 0xab, 0x31, 0x6e, 0x2d, + 0x3f, 0xc2, 0x79, 0xeb, 0x4f, 0x2e, 0xcf, 0xd9, + 0x39, 0xbb, 0x6d, 0xa4, 0x1a, 0xec, 0xcd, 0x51, + 0x26, 0x2a, 0xb9, 0x5a, 0x10, 0xea, 0x4a, 0x96, + 0xd6, 0xf4, 0xfd, 0xc4, 0x99, 0x6d, 0x13, 0x3f, + 0xb9, 0xc0, 0x7e, 0x3c, 0xc4, 0x7f, 0x28, 0xd6, + 0xd6, 0x4b, 0xf0, 0xfb, 0x9f, 0xb4, 0x33, 0x4d, + 0xfc, 0x14, 0xff, 0x00, 0x5c, 0x8d, 0x61, 0xbf, + 0x1c, 0x2b, 0xf6, 0x3b, 0xba, 0x0f, 0x7a, 0x34, + 0x7e, 0xf4, 0xe9, 0xff, 0x00, 0x8c, 0xf2, 0x5f, + 0xb5, 0x33, 0xfb, 0xaa, 0xb1, 0xa8, 0xa4, 0x66, + 0x5a, 0x01, 0x3f, 0x78, 0x81, 0x85, 0x00, 0x60, + 0x51, 0x3d, 0xc4, 0x26, 0x33, 0x30, 0x43, 0x31, + 0x31, 0x31, 0xac, 0xdd, 0x5f, 0xac, 0xbe, 0x15, + 0x31, 0xa9, 0x97, 0xc9, 0xd4, 0x03, 0xe8, 0x65, + 0x90, 0x44, 0x15, 0xae, 0xb9, 0x20, 0x46, 0xba, + 0x79, 0x7a, 0xd5, 0xe0, 0xe4, 0x02, 0x39, 0xba, + 0x49, 0x58, 0x6f, 0xbf, 0x28, 0x0c, 0x77, 0x6b, + 0xd0, 0x9e, 0x16, 0xfc, 0x99, 0xff, 0x00, 0xa7, + 0xb5, 0xe8, 0x4f, 0x0b, 0x7e, 0x4c, 0xff, 0x00, + 0xd3, 0xda, 0xf4, 0x27, 0x85, 0xbf, 0x26, 0x7f, + 0xe9, 0xed, 0x7a, 0x13, 0xc2, 0xdf, 0x93, 0x3f, + 0xf4, 0xf6, 0xbc, 0x29, 0x63, 0x86, 0xb8, 0x2e, + 0x95, 0x7e, 0xdc, 0x58, 0xf0, 0x87, 0x27, 0x8b, + 0x5a, 0xc3, 0x78, 0x57, 0x0b, 0x25, 0x30, 0x35, + 0x32, 0x8f, 0x88, 0x0e, 0x99, 0xc7, 0x79, 0x14, + 0x4f, 0x36, 0xf1, 0xb7, 0xdd, 0xd4, 0x21, 0x9c, + 0x1d, 0xc1, 0xef, 0x16, 0x22, 0xbd, 0xa4, 0x58, + 0x47, 0xd7, 0x17, 0x46, 0xc5, 0x6b, 0x4a, 0x17, + 0x21, 0xa1, 0xd4, 0xcd, 0xad, 0xa3, 0xcc, 0x05, + 0xde, 0x0d, 0x5a, 0xd8, 0x05, 0x12, 0x24, 0x31, + 0x31, 0xaf, 0x42, 0xb8, 0x57, 0xfe, 0xdf, 0xfa, + 0x7b, 0x58, 0xfb, 0x67, 0xc1, 0x9c, 0x23, 0x21, + 0x91, 0x4b, 0x9e, 0xa1, 0x1f, 0xae, 0x2e, 0x60, + 0x14, 0x59, 0x6d, 0x52, 0x86, 0xef, 0x9c, 0x88, + 0xde, 0x4d, 0x52, 0x51, 0xc9, 0x27, 0x1c, 0xb3, + 0x1b, 0xcc, 0x4e, 0xf1, 0x1d, 0x0b, 0x3c, 0x17, + 0xc2, 0x41, 0x68, 0x79, 0x25, 0xb5, 0xa3, 0xeb, + 0x86, 0x4d, 0x40, 0xda, 0xe9, 0xb0, 0x93, 0x23, + 0x8c, 0xe7, 0x46, 0x7a, 0x80, 0xed, 0xb9, 0x41, + 0x84, 0x60, 0x40, 0x5c, 0xf0, 0x3e, 0x2c, 0x97, + 0xa1, 0x5c, 0x2b, 0xff, 0x00, 0x6f, 0xfd, 0x3d, + 0xaf, 0x42, 0xb8, 0x57, 0xfe, 0xdf, 0xfa, 0x7b, + 0x55, 0xb1, 0xe8, 0xe0, 0xce, 0x11, 0x5b, 0x6c, + 0x91, 0x88, 0x1b, 0xbe, 0xb8, 0xa1, 0x63, 0xc8, + 0xa6, 0x3a, 0x79, 0xb9, 0x33, 0x66, 0x5e, 0xe5, + 0x73, 0x11, 0xb0, 0xcf, 0x7e, 0xdf, 0x73, 0xbf, + 0x45, 0x95, 0xf0, 0x1f, 0x03, 0x82, 0x16, 0xfa, + 0xf5, 0x5a, 0x05, 0x5b, 0x8d, 0x65, 0xa1, 0x66, + 0xca, 0x1d, 0x61, 0x6a, 0xd8, 0x6f, 0x10, 0x96, + 0xc2, 0x86, 0xc1, 0x30, 0x0c, 0x97, 0x05, 0x11, + 0xe3, 0x4c, 0x4c, 0x4e, 0x97, 0xc4, 0x13, 0xc1, + 0x9c, 0x1f, 0xd9, 0x59, 0x72, 0x6a, 0xc2, 0x37, + 0xe2, 0x2e, 0xd5, 0x03, 0xe3, 0x8c, 0x5b, 0x20, + 0xf0, 0xdf, 0x4e, 0x2b, 0x13, 0xd4, 0xca, 0xd0, + 0x5d, 0x4e, 0x7e, 0xb0, 0xfb, 0x8e, 0x59, 0x82, + 0x9a, 0x75, 0x9b, 0xc3, 0x3c, 0x0f, 0x57, 0x21, + 0x91, 0x14, 0x9d, 0x2c, 0x7b, 0xfe, 0xba, 0x7a, + 0xac, 0x8b, 0x50, 0x33, 0x4a, 0x18, 0xe5, 0xe5, + 0x59, 0x52, 0xb1, 0x5c, 0xe6, 0x1e, 0x80, 0xd8, + 0x7a, 0xe7, 0x63, 0x59, 0xb7, 0xa6, 0x06, 0x33, + 0xa2, 0x59, 0xf0, 0x3f, 0x0b, 0x81, 0x81, 0x10, + 0x18, 0x10, 0xf1, 0x04, 0x10, 0x18, 0x4f, 0x29, + 0x09, 0x47, 0x87, 0xbb, 0xa4, 0x4a, 0x26, 0x26, + 0x3e, 0xfe, 0xbd, 0x09, 0xe1, 0x6f, 0xc9, 0x9f, + 0xfa, 0x7b, 0x5e, 0x84, 0xf0, 0xb7, 0xe4, 0xcf, + 0xfd, 0x3d, 0xaf, 0x42, 0x78, 0x5b, 0xf2, 0x67, + 0xfe, 0x9e, 0xd7, 0xa1, 0x3c, 0x2d, 0xf9, 0x33, + 0xff, 0x00, 0x4f, 0x6b, 0x38, 0x14, 0xf1, 0x18, + 0x9c, 0x20, 0x2e, 0xde, 0x25, 0x47, 0x18, 0x94, + 0x3d, 0x47, 0x65, 0x76, 0x17, 0x93, 0x33, 0x1b, + 0x4f, 0xb5, 0x66, 0xdd, 0x97, 0x0f, 0x35, 0x75, + 0xf2, 0x04, 0xba, 0x16, 0x3e, 0x36, 0xc3, 0xe3, + 0x9e, 0xfa, 0xe1, 0x41, 0x76, 0x17, 0x11, 0x96, + 0xea, 0xaf, 0x39, 0xca, 0x59, 0x35, 0xdd, 0x39, + 0x47, 0x25, 0xda, 0xdb, 0xc2, 0x7b, 0x2d, 0xda, + 0x91, 0x10, 0xce, 0xa7, 0xb6, 0x73, 0xc1, 0xfb, + 0x80, 0xe5, 0xe5, 0xf1, 0xb9, 0xbd, 0x0e, 0xe1, + 0x3f, 0xcc, 0x66, 0x3e, 0x99, 0xd7, 0xa1, 0xdc, + 0x27, 0xf9, 0x8c, 0xc7, 0xd3, 0x3a, 0xf4, 0x3b, + 0x84, 0xff, 0x00, 0x31, 0x98, 0xfa, 0x67, 0x56, + 0x9f, 0x7b, 0x87, 0x78, 0x4e, 0x95, 0x7a, 0xa0, + 0xb9, 0xd9, 0x54, 0x72, 0x76, 0xef, 0x59, 0x63, + 0x99, 0xc8, 0x0b, 0xa9, 0x49, 0x9c, 0x4b, 0x44, + 0x5d, 0xc9, 0xe3, 0x32, 0xc3, 0x0a, 0xca, 0xc1, + 0x0a, 0x1d, 0xfc, 0x63, 0x25, 0xac, 0xce, 0xbc, + 0x70, 0x87, 0x0a, 0xda, 0x57, 0x25, 0x37, 0x22, + 0xd0, 0x52, 0xcd, 0x80, 0xb9, 0x39, 0x0a, 0xab, + 0xb9, 0x4e, 0x48, 0x3c, 0x34, 0x5d, 0x27, 0x31, + 0x0c, 0x8d, 0xd1, 0x26, 0x52, 0x26, 0x2c, 0x11, + 0x26, 0x40, 0xf3, 0xcd, 0xaa, 0xe1, 0xc2, 0x1c, + 0x20, 0x97, 0x55, 0xa3, 0x7e, 0xf4, 0xad, 0xf5, + 0xf3, 0x82, 0x4d, 0x8c, 0x72, 0x0a, 0xc3, 0xeb, + 0xae, 0x23, 0x2c, 0x53, 0xda, 0x3a, 0x2b, 0x69, + 0x08, 0xb3, 0x90, 0x7d, 0xac, 0xa0, 0x8c, 0x67, + 0x6d, 0xf1, 0xb9, 0x2a, 0xbc, 0x27, 0xc1, 0xc2, + 0x3c, 0x42, 0xcb, 0x58, 0xa4, 0x88, 0x56, 0xcc, + 0x95, 0x91, 0x03, 0x64, 0xd3, 0x3e, 0x7d, 0xf2, + 0x73, 0xd0, 0x0b, 0x73, 0x16, 0x14, 0xb3, 0x41, + 0xf5, 0x58, 0xb5, 0xd8, 0x0f, 0x71, 0x33, 0x05, + 0x6a, 0xa1, 0x70, 0x9f, 0x07, 0xb6, 0x6a, 0xd8, + 0x75, 0x79, 0x6a, 0x91, 0x9a, 0xe9, 0xb2, 0x52, + 0xc2, 0x5c, 0x9a, 0xf9, 0xf2, 0xe0, 0x7c, 0x85, + 0xcb, 0xb8, 0xf3, 0x00, 0x96, 0xdb, 0x6e, 0x31, + 0x3d, 0xda, 0xec, 0xf6, 0xb8, 0x2f, 0x84, 0x96, + 0xee, 0x8d, 0x57, 0xf2, 0x74, 0xb2, 0xc5, 0xb2, + 0xee, 0x55, 0x4d, 0xc4, 0x77, 0x8e, 0x6a, 0x63, + 0x79, 0x43, 0xd6, 0x53, 0x1b, 0xf8, 0xb3, 0x3c, + 0xb3, 0xdf, 0x1a, 0xc5, 0xda, 0x67, 0x09, 0x70, + 0x71, 0x06, 0x56, 0xab, 0x6d, 0xa0, 0x41, 0x39, + 0xae, 0x75, 0x82, 0xae, 0x58, 0xa5, 0x22, 0xde, + 0x6c, 0xb8, 0xc7, 0x3c, 0xb2, 0xb1, 0x94, 0x72, + 0x49, 0xc7, 0x24, 0x8e, 0xf3, 0x05, 0xb8, 0xc6, + 0x48, 0x93, 0xc2, 0x5c, 0x1c, 0x1e, 0x0c, 0xc6, + 0x58, 0xca, 0xbb, 0xaa, 0x9c, 0xde, 0xe6, 0x9a, + 0xec, 0x4a, 0xc9, 0x6a, 0xe4, 0xcb, 0x1f, 0xb6, + 0xcc, 0xbc, 0x79, 0x79, 0xf9, 0x03, 0x68, 0x9d, + 0xce, 0x3b, 0xb7, 0xf4, 0x3b, 0x84, 0xff, 0x00, + 0x31, 0x98, 0xfa, 0x67, 0x5e, 0x87, 0x70, 0x9f, + 0xe6, 0x33, 0x1f, 0x4d, 0x68, 0x32, 0x5e, 0x09, + 0xe0, 0x49, 0x43, 0x1e, 0xda, 0xa0, 0x31, 0x8f, + 0xe2, 0xee, 0xa4, 0xd8, 0x4a, 0x54, 0xe3, 0x5e, + 0xd3, 0x66, 0x06, 0x3c, 0x57, 0x06, 0xc7, 0x25, + 0xc9, 0xbe, 0xfd, 0xfd, 0xda, 0x31, 0x0e, 0x13, + 0xe1, 0x16, 0x88, 0x94, 0xc0, 0xb4, 0x6b, 0x66, + 0xc4, 0x59, 0x11, 0xe4, 0x31, 0x16, 0x65, 0xc1, + 0x91, 0x05, 0xe5, 0x88, 0x30, 0x12, 0xfb, 0xf1, + 0x1a, 0xf4, 0x3f, 0x84, 0xff, 0x00, 0x31, 0x98, + 0xfa, 0x6b, 0x5e, 0x87, 0x70, 0x9f, 0xe6, 0x33, + 0x1f, 0x4d, 0x6b, 0xd0, 0xee, 0x13, 0xfc, 0xc6, + 0x63, 0xe9, 0x9d, 0x7a, 0x1d, 0xc2, 0x7f, 0x98, + 0xcc, 0x7d, 0x33, 0xaf, 0x43, 0xb8, 0x4f, 0xf3, + 0x19, 0x8f, 0xa6, 0x75, 0x88, 0x01, 0xe1, 0x2e, + 0x17, 0x49, 0x1e, 0x57, 0x1c, 0x22, 0xe5, 0x23, + 0x2d, 0x0d, 0x51, 0x15, 0xc4, 0xc4, 0x35, 0x72, + 0x79, 0x73, 0x1e, 0xa2, 0xe6, 0x79, 0xc3, 0x98, + 0x08, 0x79, 0xa2, 0x39, 0x84, 0xa3, 0xbb, 0x59, + 0x2f, 0xc3, 0xee, 0x7e, 0xd0, 0xcd, 0x37, 0xf0, + 0x53, 0xfd, 0x72, 0x35, 0x86, 0xfc, 0x70, 0xaf, + 0xd8, 0xee, 0xe8, 0x3d, 0xe8, 0xd1, 0xfb, 0xd3, + 0xab, 0x1f, 0x8c, 0xf2, 0x3f, 0xb5, 0x1f, 0xf7, + 0x55, 0x6f, 0xc2, 0x13, 0xfa, 0xc1, 0xd7, 0x12, + 0xc1, 0x46, 0xd3, 0xf5, 0xc1, 0x99, 0x2e, 0xff, + 0x00, 0xbc, 0x79, 0x1b, 0x06, 0x33, 0xff, 0x00, + 0x38, 0xcc, 0x4c, 0x7f, 0x14, 0xfe, 0xe6, 0xb9, + 0x64, 0x31, 0xab, 0xc9, 0x56, 0x9e, 0x2b, 0x6c, + 0x35, 0x44, 0xfb, 0x95, 0xda, 0x2b, 0x8c, 0x5d, + 0x59, 0x6c, 0xd6, 0x65, 0x4b, 0x55, 0xb6, 0x79, + 0x06, 0xf0, 0x32, 0xf8, 0x72, 0xa2, 0x76, 0xf6, + 0xbf, 0xbb, 0xac, 0xc1, 0x63, 0x43, 0x29, 0x92, + 0xb6, 0xff, 0x00, 0xad, 0xfb, 0x18, 0x22, 0xe1, + 0xdb, 0x61, 0x89, 0xcb, 0xcf, 0x09, 0xcd, 0x7b, + 0x2b, 0x4c, 0x53, 0x28, 0xc6, 0x65, 0x19, 0x2a, + 0xa8, 0xfe, 0xcb, 0x5b, 0x2e, 0xaa, 0xe8, 0x06, + 0x4b, 0x42, 0x1b, 0x69, 0xdd, 0x21, 0x30, 0x2b, + 0x77, 0x31, 0xb5, 0xed, 0xa8, 0xcf, 0x89, 0x6a, + 0xa6, 0xfd, 0x5c, 0x0e, 0x5e, 0xaa, 0x69, 0xe3, + 0x66, 0x9d, 0x24, 0x75, 0x6e, 0xf1, 0x16, 0x66, + 0x8e, 0x39, 0x27, 0x63, 0x17, 0x61, 0xa4, 0xf6, + 0x76, 0x44, 0xc6, 0x2b, 0x19, 0x16, 0x13, 0x90, + 0x98, 0xb5, 0xd6, 0x95, 0x84, 0x25, 0x4f, 0x6d, + 0xba, 0x1d, 0x9a, 0xc7, 0x11, 0x45, 0x10, 0xc7, + 0x50, 0xaf, 0x60, 0x47, 0x93, 0x89, 0x32, 0x92, + 0xb0, 0x9e, 0xa6, 0x47, 0x1b, 0xd9, 0x16, 0xb8, + 0x85, 0x74, 0x89, 0x30, 0xfd, 0xa3, 0x7d, 0x96, + 0x3c, 0x83, 0xcf, 0x17, 0xc9, 0xf6, 0xfa, 0x93, + 0x4b, 0x88, 0xac, 0x50, 0xb2, 0xe3, 0x71, 0x4f, + 0x49, 0x9c, 0x31, 0xc3, 0x52, 0x16, 0x6a, 0x35, + 0x93, 0xbf, 0x2c, 0x34, 0x98, 0xd5, 0x35, 0x53, + 0xb0, 0xd8, 0x82, 0x60, 0xcf, 0x56, 0x26, 0x74, + 0xc4, 0x64, 0x6d, 0x58, 0xb1, 0x48, 0xf8, 0x33, + 0x1d, 0x76, 0xda, 0x98, 0xc3, 0x64, 0x39, 0xe3, + 0x76, 0x97, 0x3d, 0xe6, 0xc6, 0xfb, 0xba, 0xff, + 0x00, 0x4e, 0x39, 0x22, 0xe9, 0xf3, 0x5b, 0xe4, + 0x81, 0x5f, 0x57, 0x92, 0x20, 0x75, 0x99, 0x12, + 0xc6, 0xdf, 0x8c, 0x59, 0xdf, 0xaf, 0x18, 0x3b, + 0x77, 0xb3, 0x55, 0x9f, 0x8b, 0x84, 0x75, 0x25, + 0x88, 0x67, 0x0a, 0x50, 0x0c, 0x1d, 0x49, 0xec, + 0xac, 0xa2, 0x22, 0x36, 0x82, 0xa5, 0xf6, 0xa5, + 0x0b, 0x25, 0x45, 0xb3, 0x6d, 0x81, 0x02, 0x9c, + 0x77, 0x10, 0x47, 0x2b, 0x31, 0xd5, 0x1f, 0x93, + 0x1c, 0x93, 0x03, 0x9e, 0x7c, 0x17, 0x15, 0xb1, + 0xe4, 0x60, 0xcb, 0xf3, 0xcb, 0x00, 0x95, 0xdc, + 0x87, 0xf2, 0xd2, 0x2e, 0x69, 0xed, 0x0d, 0x5b, + 0x10, 0x3e, 0xdd, 0x10, 0x13, 0x90, 0x8f, 0xbb, + 0xf5, 0xc7, 0x87, 0xfe, 0x4d, 0xcb, 0x6a, 0xcf, + 0x06, 0x05, 0x7b, 0x63, 0x91, 0x0e, 0x1b, 0x1c, + 0x50, 0x1c, 0xdf, 0x41, 0x52, 0x3c, 0xad, 0x01, + 0xf0, 0xe1, 0x20, 0x28, 0x78, 0x2c, 0x5c, 0x36, + 0x59, 0x90, 0xed, 0x35, 0x61, 0xf3, 0x93, 0x28, + 0xf6, 0xc9, 0xd9, 0x7b, 0x14, 0x0c, 0x57, 0xc9, + 0xd6, 0xc4, 0x86, 0x63, 0x0b, 0x76, 0xae, 0x38, + 0x6c, 0x59, 0x33, 0xb6, 0xba, 0x38, 0x81, 0xaf, + 0x4e, 0xa0, 0x64, 0x23, 0x21, 0x6e, 0x8d, 0xba, + 0x4b, 0xc6, 0xb2, 0x82, 0xd6, 0xd9, 0xdb, 0x22, + 0xd5, 0xac, 0x91, 0xc8, 0xf0, 0x53, 0x40, 0xd7, + 0x3a, 0xc8, 0x2a, 0x9c, 0xc1, 0x53, 0x55, 0xeb, + 0x6b, 0xa8, 0x42, 0x7d, 0x41, 0x2a, 0xc1, 0x61, + 0x83, 0x5e, 0x45, 0x9b, 0xcf, 0x50, 0x65, 0x50, + 0x33, 0x07, 0xbc, 0xf3, 0xc7, 0x8d, 0xbc, 0xef, + 0xfb, 0x9e, 0x21, 0xfe, 0x3c, 0x8e, 0x0a, 0x3f, + 0xe7, 0xe8, 0x66, 0xbe, 0xa7, 0x07, 0x97, 0xf0, + 0x60, 0x73, 0xe1, 0x33, 0xf7, 0x8a, 0x6d, 0xd2, + 0x28, 0x8f, 0x7f, 0x68, 0xdf, 0xf7, 0x16, 0x6c, + 0x36, 0xbd, 0xcb, 0x38, 0xdc, 0x4a, 0x86, 0xd5, + 0xe4, 0x63, 0xab, 0xba, 0xd5, 0xeb, 0x9c, 0xc5, + 0xca, 0x8a, 0x14, 0xd2, 0x80, 0x61, 0xf5, 0x6d, + 0xb3, 0xc5, 0x36, 0xcc, 0x72, 0x56, 0x44, 0x36, + 0xc1, 0xcf, 0x89, 0x10, 0x59, 0x9b, 0x7c, 0x47, + 0x8e, 0xc9, 0x0d, 0x9b, 0xec, 0xc7, 0x08, 0xe0, + 0x5b, 0x56, 0x2a, 0xd6, 0xa5, 0x5d, 0x24, 0xb2, + 0xaf, 0x74, 0x53, 0x7d, 0x64, 0x63, 0x6f, 0x17, + 0x51, 0x2b, 0x5e, 0x26, 0x3b, 0x3c, 0x41, 0xf3, + 0xc9, 0xb1, 0xdc, 0xb3, 0x3a, 0xab, 0x6f, 0xb4, + 0x58, 0xb2, 0xa7, 0xe4, 0xd8, 0xb3, 0xb3, 0x6f, + 0x68, 0xb5, 0x66, 0xb5, 0xf2, 0x65, 0x57, 0x32, + 0xcc, 0x73, 0x98, 0xc3, 0x9c, 0x8b, 0x07, 0x2d, + 0xf1, 0xca, 0x20, 0xca, 0x7b, 0xe7, 0x59, 0x4c, + 0x41, 0xb2, 0x3b, 0x37, 0x07, 0x57, 0xc6, 0xe4, + 0x2b, 0x16, 0xfb, 0x0c, 0x9f, 0x09, 0xa9, 0x8b, + 0xc8, 0xed, 0xdd, 0x3f, 0x6d, 0xdc, 0xb9, 0x61, + 0xe5, 0xb7, 0x97, 0x7d, 0xfb, 0xe6, 0x22, 0x75, + 0x85, 0xe4, 0xf0, 0x85, 0xaa, 0x59, 0x0a, 0x99, + 0x97, 0x5d, 0x6a, 0xad, 0x85, 0x3e, 0x1d, 0xae, + 0xeb, 0x07, 0x71, 0x13, 0x43, 0x25, 0x59, 0x55, + 0xa0, 0xb2, 0xf9, 0xb6, 0x4c, 0x2f, 0xb3, 0x8d, + 0xdb, 0xa2, 0x42, 0x16, 0x2a, 0x05, 0x7a, 0x36, + 0x2b, 0xa3, 0xa9, 0xa4, 0x33, 0x0e, 0xec, 0x89, + 0x5b, 0x71, 0x70, 0xe3, 0x19, 0x60, 0x4e, 0xc1, + 0xef, 0x89, 0x2e, 0x1e, 0xc7, 0xf2, 0x3c, 0xd9, + 0x3c, 0xdb, 0xe0, 0xe3, 0x25, 0x19, 0x29, 0xc9, + 0x99, 0x7e, 0xf0, 0xed, 0x7c, 0xdd, 0xb7, 0xdb, + 0x4b, 0xbf, 0x85, 0x71, 0x71, 0x70, 0x59, 0x8f, + 0xb5, 0x85, 0xe2, 0x99, 0xb3, 0x5e, 0xae, 0xeb, + 0xc6, 0xdf, 0x9e, 0xdb, 0xc4, 0x7b, 0x32, 0x6b, + 0xc0, 0xac, 0x1a, 0x8d, 0xd6, 0x0c, 0xaa, 0x2d, + 0x5f, 0xb4, 0x78, 0xa4, 0xa0, 0x51, 0xeb, 0x36, + 0x69, 0xed, 0x1f, 0x59, 0x9f, 0x58, 0xa8, 0x1a, + 0x70, 0x1f, 0x68, 0xc3, 0xe2, 0xbe, 0x3f, 0xb6, + 0x82, 0x22, 0x3d, 0xaf, 0xc2, 0xd1, 0x72, 0x32, + 0x93, 0x90, 0xe4, 0xfd, 0xf7, 0xcf, 0xb9, 0x5b, + 0xf1, 0x09, 0x13, 0x39, 0x82, 0xe2, 0x09, 0x1f, + 0xad, 0x12, 0xb9, 0x8a, 0xfa, 0xd9, 0xed, 0x32, + 0x33, 0x8d, 0x94, 0x78, 0x62, 0x8c, 0xd5, 0xf0, + 0x27, 0xf7, 0xbf, 0x66, 0x1c, 0x1f, 0x68, 0xf0, + 0xb7, 0x63, 0xee, 0x10, 0xf1, 0x72, 0x1e, 0xdf, + 0xdd, 0xa2, 0xf0, 0xfc, 0xdc, 0xe7, 0xfa, 0xed, + 0x29, 0xa9, 0xdb, 0x66, 0x64, 0xba, 0x1e, 0x0e, + 0xb5, 0xdf, 0x57, 0x9b, 0xff, 0x00, 0xa3, 0xe4, + 0xbe, 0xd4, 0x94, 0xfe, 0xf3, 0x91, 0xe6, 0xec, + 0x9e, 0x26, 0xfa, 0xc6, 0x7f, 0xa4, 0xb7, 0x7f, + 0x63, 0xc6, 0xea, 0xbd, 0x54, 0xbd, 0x81, 0x5e, + 0xc7, 0x10, 0x71, 0xa9, 0xd9, 0x4c, 0x4f, 0xb4, + 0xdb, 0xdb, 0xdc, 0x85, 0xb5, 0x4e, 0xeb, 0xb4, + 0xa5, 0xcc, 0x49, 0x02, 0x9e, 0x2c, 0x58, 0x99, + 0x19, 0x40, 0xee, 0x53, 0x3a, 0xaf, 0x6d, 0xfe, + 0x11, 0xc9, 0x67, 0xdb, 0xc3, 0x97, 0x87, 0x1c, + 0xca, 0xb7, 0xba, 0x19, 0xd7, 0xca, 0x78, 0x83, + 0xdb, 0xc7, 0x1f, 0x7d, 0xd4, 0xf2, 0x4d, 0x9b, + 0xaa, 0xa1, 0xd6, 0xe8, 0xc0, 0xd6, 0x75, 0x9e, + 0xcb, 0x16, 0x13, 0x56, 0x55, 0xbf, 0x30, 0xf1, + 0x11, 0xa9, 0x4f, 0xc5, 0xe4, 0x08, 0xb8, 0x4e, + 0xa6, 0x43, 0xab, 0x7d, 0x19, 0x1c, 0x93, 0x25, + 0xf5, 0xf8, 0x82, 0x5d, 0x39, 0x2b, 0x0a, 0xc7, + 0xd0, 0x15, 0xe4, 0x9c, 0x82, 0x14, 0x5f, 0x09, + 0xae, 0x36, 0x76, 0xe7, 0x5d, 0xa2, 0x93, 0x6b, + 0xe2, 0x7e, 0xae, 0x0c, 0x63, 0xbe, 0x67, 0x33, + 0x8b, 0x88, 0xf8, 0xfa, 0x35, 0x92, 0xfc, 0x3e, + 0xe7, 0xed, 0x0c, 0xd3, 0x7f, 0x05, 0x3f, 0xd7, + 0x23, 0x58, 0x6f, 0xc6, 0xea, 0xfd, 0x92, 0xee, + 0x83, 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0xb1, 0xf8, + 0xcf, 0x23, 0xfb, 0x49, 0xff, 0x00, 0x75, 0xc6, + 0x4c, 0x6f, 0x06, 0x2b, 0x31, 0x20, 0xb5, 0xde, + 0xed, 0x15, 0xdc, 0xca, 0x39, 0x19, 0x58, 0xf4, + 0xc6, 0xd4, 0x15, 0x35, 0xb5, 0xd5, 0xed, 0x72, + 0x08, 0xc3, 0xe2, 0x50, 0x6a, 0x6f, 0x8a, 0x43, + 0xd3, 0x98, 0x2e, 0x6f, 0x3f, 0xe1, 0x7f, 0x37, + 0x99, 0xfa, 0x2b, 0x5e, 0x7f, 0xc2, 0xfe, 0x6f, + 0x33, 0xf4, 0x56, 0xbc, 0xff, 0x00, 0x85, 0xfc, + 0xde, 0x67, 0xe8, 0xad, 0x79, 0xff, 0x00, 0x0b, + 0xf9, 0xbc, 0xcf, 0xd1, 0x5a, 0xf3, 0xf6, 0x17, + 0xf3, 0x79, 0x8f, 0xa2, 0xb5, 0xe7, 0xdc, 0x27, + 0xe6, 0xb3, 0x1f, 0x45, 0x6b, 0xcf, 0xd8, 0x4e, + 0xef, 0x27, 0xb5, 0xe6, 0x3e, 0x8a, 0xd7, 0x76, + 0x7b, 0x0b, 0xf9, 0xbc, 0xc7, 0xd1, 0x5a, 0xf3, + 0xee, 0x13, 0xf3, 0x59, 0x8f, 0xa2, 0xb5, 0xe7, + 0xec, 0x2f, 0xe6, 0xf3, 0x1f, 0x45, 0x6b, 0xcf, + 0xd8, 0x4f, 0xcd, 0xe6, 0x3e, 0x8a, 0xd7, 0x9f, + 0xb0, 0x9f, 0x9b, 0xcc, 0x7d, 0x15, 0xaf, 0x3f, + 0x61, 0x7f, 0x37, 0x98, 0xfa, 0x2b, 0x5b, 0x78, + 0x7b, 0x0b, 0xb7, 0xde, 0xe9, 0xe6, 0x36, 0xfe, + 0x4a, 0xd6, 0xfe, 0x1e, 0xc2, 0x7e, 0x6f, 0x31, + 0xf4, 0x56, 0xbc, 0xff, 0x00, 0x85, 0xfc, 0xde, + 0x67, 0xe8, 0xad, 0x79, 0xff, 0x00, 0x0b, 0xf9, + 0xbc, 0xcf, 0xd1, 0x5a, 0xf3, 0xfe, 0x17, 0xf3, + 0x79, 0x9f, 0xa2, 0xb5, 0xe7, 0xfc, 0x2f, 0xe6, + 0xf3, 0x3f, 0x45, 0x6a, 0x3a, 0x9c, 0x43, 0x87, + 0x00, 0xdf, 0xc6, 0x21, 0x4e, 0x60, 0xca, 0x23, + 0xee, 0xf2, 0x84, 0xe3, 0x42, 0x0a, 0x7e, 0xf4, + 0x49, 0x8c, 0x4f, 0xf8, 0x51, 0xa4, 0x61, 0xf1, + 0x5d, 0x53, 0xae, 0xb6, 0x9d, 0x9b, 0x57, 0x1e, + 0x22, 0x0f, 0xc8, 0xdd, 0x28, 0xe9, 0xf6, 0x83, + 0x01, 0xdf, 0xa2, 0xa5, 0xaf, 0xda, 0xeb, 0x23, + 0x9a, 0x7a, 0x6b, 0x99, 0xe7, 0x92, 0x64, 0x91, + 0x4e, 0x8f, 0x0f, 0x94, 0x97, 0x29, 0x3d, 0x68, + 0xb3, 0x4a, 0xea, 0x00, 0x18, 0xec, 0x7d, 0xbd, + 0xba, 0x66, 0xce, 0x99, 0x72, 0xf5, 0xeb, 0x38, + 0x39, 0x62, 0xca, 0x39, 0xc4, 0xa6, 0x02, 0x25, + 0x52, 0x2d, 0xf1, 0xb5, 0x3c, 0x9c, 0x43, 0x87, + 0x31, 0xfb, 0x85, 0x29, 0xcc, 0x04, 0xcc, 0x7d, + 0xcd, 0xc7, 0xc1, 0x87, 0xb4, 0xff, 0x00, 0x17, + 0x31, 0x7b, 0xf3, 0xaf, 0x3f, 0xe1, 0x7f, 0x37, + 0x99, 0xfa, 0x2b, 0x5e, 0x7f, 0xc2, 0xfe, 0x6f, + 0x33, 0xf4, 0x56, 0xbb, 0xf3, 0xd8, 0x49, 0xf7, + 0xd7, 0x98, 0xfa, 0x2b, 0x5d, 0xd9, 0xec, 0x2c, + 0x7f, 0xd1, 0xe6, 0x3e, 0x8a, 0xd7, 0x9f, 0xf0, + 0xbf, 0x9b, 0xcc, 0xfd, 0x15, 0xaf, 0x3f, 0x61, + 0x7b, 0xbf, 0xf8, 0x79, 0x8f, 0xa2, 0xb5, 0xe7, + 0xdc, 0x27, 0xe6, 0xb3, 0x1f, 0x45, 0x6b, 0xcf, + 0xb8, 0x4f, 0xbf, 0xf6, 0x2c, 0xc7, 0x97, 0xd5, + 0x5a, 0xf3, 0xf6, 0x17, 0xf3, 0x79, 0x8f, 0xa2, + 0xb5, 0xbf, 0x87, 0x70, 0x9b, 0xfd, 0xfe, 0x96, + 0x63, 0x7f, 0xe4, 0xad, 0x2a, 0xc0, 0x67, 0x30, + 0x32, 0x6a, 0x60, 0x36, 0x21, 0x95, 0xf2, 0xad, + 0x59, 0x48, 0x14, 0x14, 0x43, 0x16, 0x78, 0x89, + 0x06, 0x04, 0xed, 0xe3, 0x01, 0xc4, 0x89, 0x47, + 0x74, 0xc6, 0xda, 0x8a, 0xca, 0xc8, 0x70, 0xb6, + 0x36, 0xaf, 0x6b, 0x75, 0xe3, 0xaf, 0x8f, 0x4f, + 0x11, 0xc2, 0xd9, 0x6d, 0xc3, 0x00, 0x4d, 0x2e, + 0xd7, 0x56, 0xd9, 0x8f, 0x2a, 0xc7, 0xa6, 0xa4, + 0xa8, 0xd6, 0x85, 0x0e, 0xfc, 0x8a, 0x89, 0x22, + 0x99, 0xf3, 0xf6, 0x17, 0xf3, 0x79, 0x8f, 0xa2, + 0xb5, 0xe7, 0xec, 0x27, 0xe6, 0xf3, 0x1f, 0x45, + 0x6b, 0xcf, 0xd8, 0x4f, 0xcd, 0xe6, 0x3e, 0x8a, + 0xd7, 0x9f, 0xb0, 0xbd, 0xdf, 0xfc, 0x3c, 0xc7, + 0xd1, 0x5a, 0xf3, 0xfe, 0x17, 0xf3, 0x79, 0x9f, + 0xa2, 0xb5, 0xe7, 0xfc, 0x2f, 0xe6, 0xf3, 0x3f, + 0x45, 0x6b, 0xcf, 0xf8, 0x5f, 0xcd, 0xe6, 0x7e, + 0x8a, 0xd0, 0x65, 0x6c, 0x5f, 0x5e, 0x5b, 0x26, + 0x8d, 0xe6, 0x85, 0x7a, 0xa8, 0x7a, 0xe8, 0xd5, + 0x76, 0xdb, 0x45, 0xbb, 0x0c, 0xb8, 0xa5, 0x36, + 0xc3, 0x15, 0xbf, 0x32, 0x12, 0xb4, 0x82, 0xc4, + 0xc6, 0x08, 0xcc, 0xbb, 0xa0, 0x64, 0x8a, 0x66, + 0x66, 0x67, 0x79, 0x99, 0xef, 0x99, 0x99, 0xf2, + 0xcc, 0xcf, 0xdd, 0x99, 0xd3, 0x7f, 0x05, 0x3f, + 0xd6, 0xa3, 0x58, 0x6f, 0xc6, 0xea, 0xfd, 0x92, + 0xe6, 0x83, 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0xb1, + 0xf8, 0xcf, 0x23, 0xfb, 0x49, 0xfd, 0x4e, 0x53, + 0x99, 0x36, 0x7f, 0xee, 0xd7, 0xb4, 0x90, 0xfd, + 0xdd, 0xcb, 0x79, 0x88, 0x1f, 0x7a, 0x67, 0x9a, + 0x77, 0xde, 0x23, 0x6e, 0xfd, 0x7d, 0xa9, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, + 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, + 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, + 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, + 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, + 0xa7, 0xfe, 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, + 0xbf, 0xfa, 0x9d, 0x7d, 0xa7, 0xfe, 0xbf, 0xfa, + 0x9d, 0x7d, 0xa7, 0xff, 0x00, 0xdf, 0x1f, 0xd4, + 0xff, 0x00, 0xf9, 0xc1, 0xbf, 0x82, 0x9f, 0xeb, + 0x51, 0xac, 0x37, 0xe3, 0x75, 0x7e, 0xc9, 0x73, + 0x41, 0xef, 0x46, 0x8f, 0xde, 0x9d, 0x59, 0xfc, + 0x69, 0x91, 0xfd, 0xa4, 0xb4, 0xd7, 0x6d, 0xbc, + 0x8c, 0x78, 0xb1, 0xfe, 0x39, 0x4c, 0x08, 0xef, + 0xe4, 0xee, 0x89, 0x9d, 0xcb, 0xbf, 0xdc, 0xc4, + 0xed, 0xa2, 0x32, 0x9d, 0xc8, 0xa6, 0x48, 0xa7, + 0xef, 0xcc, 0xf7, 0xcc, 0xff, 0x00, 0x74, 0x5a, + 0xbf, 0x7d, 0x84, 0xba, 0x34, 0x05, 0x64, 0xe8, + 0x5e, 0xdd, 0x67, 0xb1, 0xc5, 0x20, 0x8a, 0xc9, + 0xdf, 0xbb, 0x9d, 0xc5, 0x13, 0xe3, 0x4f, 0x70, + 0x08, 0x91, 0x4f, 0xdf, 0xd4, 0xc5, 0x5c, 0x0e, + 0x28, 0x15, 0xbc, 0xed, 0x16, 0xe6, 0xe5, 0xc6, + 0xff, 0x00, 0xce, 0xde, 0xd4, 0x8f, 0xb9, 0xf7, + 0x20, 0x36, 0xdf, 0xc9, 0xaf, 0x32, 0xe0, 0x3e, + 0x2b, 0x73, 0xe9, 0x0d, 0x79, 0x97, 0x01, 0xf1, + 0x5b, 0x9f, 0x48, 0x6b, 0xcc, 0xb8, 0x0f, 0x8a, + 0xdc, 0xfa, 0x43, 0x5e, 0x65, 0xc0, 0x7c, 0x56, + 0xe7, 0xd2, 0x1a, 0xf3, 0x2e, 0x03, 0xe2, 0xb7, + 0x3e, 0x90, 0xd7, 0x99, 0x70, 0x1f, 0x15, 0xb9, + 0xf4, 0x86, 0xbc, 0xcb, 0x80, 0xf8, 0xad, 0xcf, + 0xa4, 0x35, 0xe6, 0x5c, 0x07, 0xc5, 0x6e, 0x7d, + 0x21, 0xaf, 0x32, 0xe0, 0x3e, 0x2b, 0x73, 0xe9, + 0x0d, 0x79, 0x97, 0x01, 0xf1, 0x5b, 0x9f, 0x48, + 0x6b, 0xcc, 0xb8, 0x0f, 0x8a, 0xdc, 0xfa, 0x43, + 0x5e, 0x65, 0xc0, 0x7c, 0x56, 0xe7, 0xd2, 0x1a, + 0xf3, 0x2e, 0x03, 0xe2, 0xb7, 0x3e, 0x90, 0xd7, + 0x99, 0x70, 0x1f, 0x15, 0xb9, 0xf4, 0x86, 0xbc, + 0xcb, 0x80, 0xf8, 0xad, 0xcf, 0xa4, 0x35, 0xe6, + 0x5c, 0x07, 0xc5, 0x6e, 0x7d, 0x21, 0xaf, 0x32, + 0xe0, 0x3e, 0x2b, 0x73, 0xe9, 0x0d, 0x79, 0x97, + 0x01, 0xf1, 0x5b, 0x9f, 0x48, 0x6b, 0xcc, 0xb8, + 0x0f, 0x8a, 0xdc, 0xfa, 0x43, 0x5e, 0x65, 0xc0, + 0x7c, 0x56, 0xe7, 0xd2, 0x1a, 0x72, 0xab, 0xd4, + 0xf0, 0x76, 0x4d, 0x0a, 0x6d, 0xa1, 0x4a, 0xda, + 0xc7, 0xd6, 0xbc, 0x95, 0x47, 0x3b, 0x85, 0x50, + 0xdd, 0xd8, 0x9b, 0x0b, 0x1d, 0xcc, 0x17, 0x12, + 0x60, 0x62, 0x24, 0x3e, 0x5d, 0xb9, 0x20, 0x46, + 0x24, 0x88, 0xa6, 0x22, 0x22, 0x23, 0x79, 0x99, + 0x9e, 0xe8, 0x88, 0x88, 0xf2, 0xcc, 0xfd, 0xc8, + 0xd1, 0x51, 0x5d, 0x35, 0x64, 0xf2, 0x09, 0xf1, + 0x6e, 0x58, 0xb2, 0xc6, 0xc5, 0x34, 0xbb, 0x6f, + 0x1e, 0xbd, 0x74, 0xa0, 0xd6, 0x4e, 0xe9, 0x17, + 0x88, 0xc7, 0x1b, 0x07, 0x73, 0x19, 0xe4, 0x8d, + 0xa7, 0xbb, 0xcc, 0xd8, 0x2f, 0xcc, 0xe4, 0x3e, + 0x92, 0xd7, 0x99, 0xb0, 0x5f, 0x99, 0xc8, 0x7d, + 0x25, 0xaf, 0x33, 0x60, 0xbf, 0x33, 0x90, 0xfa, + 0x4b, 0x5e, 0x66, 0xc1, 0x7e, 0x67, 0x21, 0xf4, + 0x96, 0xbc, 0xcd, 0x82, 0xfc, 0xce, 0x43, 0xe9, + 0x2d, 0x79, 0x9b, 0x05, 0xf9, 0x9c, 0x87, 0xd2, + 0x5a, 0xf3, 0x36, 0x0b, 0xf3, 0x39, 0x0f, 0xa4, + 0xb5, 0xe6, 0x6c, 0x17, 0xe6, 0x72, 0x1f, 0x49, + 0x6b, 0xcc, 0xd8, 0x2f, 0xcc, 0xe4, 0x3e, 0x92, + 0xd7, 0x99, 0xb0, 0x5f, 0x99, 0xc8, 0x7d, 0x25, + 0xaf, 0x33, 0x60, 0xbf, 0x33, 0x90, 0xfa, 0x4b, + 0x5e, 0x66, 0xc1, 0x7e, 0x67, 0x21, 0xf4, 0x96, + 0xbc, 0xcd, 0x82, 0xfc, 0xce, 0x43, 0xe9, 0x2d, + 0x79, 0x9b, 0x05, 0xf9, 0x9c, 0x87, 0xd2, 0x5a, + 0xf3, 0x36, 0x0b, 0xf3, 0x39, 0x0f, 0xa4, 0xb5, + 0xe6, 0x6c, 0x17, 0xe6, 0x72, 0x1f, 0x49, 0x6b, + 0xcc, 0xd8, 0x2f, 0xcc, 0xe4, 0x3e, 0x92, 0xd7, + 0x99, 0xb0, 0x5f, 0x99, 0xc8, 0x7d, 0x25, 0xaf, + 0x33, 0x60, 0xbf, 0x33, 0x90, 0xfa, 0x4b, 0x5e, + 0x66, 0xc1, 0x7e, 0x67, 0x21, 0xf4, 0x96, 0xbd, + 0xb3, 0x09, 0x85, 0x20, 0xfb, 0xb0, 0x03, 0x7d, + 0x47, 0xb7, 0xf8, 0xac, 0xed, 0xcc, 0xe5, 0x9f, + 0xe3, 0xe5, 0x9d, 0xb5, 0x19, 0x4c, 0x64, 0x1a, + 0xd3, 0x0e, 0xec, 0xf6, 0xe9, 0xb0, 0xba, 0x8c, + 0xa4, 0xf2, 0x1e, 0x70, 0xd9, 0xbe, 0x56, 0xd6, + 0x68, 0xc4, 0xf4, 0x98, 0x70, 0x25, 0xb8, 0xf2, + 0x97, 0x8d, 0xdd, 0x0d, 0xfc, 0x18, 0xff, 0x00, + 0x5a, 0x9d, 0x61, 0xbf, 0x1b, 0xab, 0xf6, 0x4b, + 0x9a, 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xea, 0xcf, + 0xe3, 0x4c, 0x8f, 0xed, 0x25, 0xa9, 0xfe, 0x36, + 0x2f, 0xfe, 0xfd, 0xf4, 0xfb, 0x56, 0xdd, 0xd9, + 0xa8, 0xd3, 0x11, 0x3b, 0x2e, 0xdb, 0x9c, 0xfd, + 0xb2, 0x79, 0x54, 0x94, 0xaf, 0x78, 0xe7, 0x7b, + 0xcb, 0x78, 0x08, 0x99, 0x81, 0x88, 0x83, 0x32, + 0x9d, 0x83, 0x69, 0xe5, 0x56, 0x0e, 0xc3, 0x82, + 0x3b, 0xa1, 0x8f, 0xcb, 0x4a, 0x98, 0x7f, 0xe3, + 0x10, 0x2a, 0xa1, 0xae, 0x26, 0x7e, 0xec, 0x0c, + 0xed, 0x1a, 0xf4, 0x78, 0xbd, 0x76, 0xdf, 0x98, + 0xeb, 0xd1, 0xe2, 0xf5, 0xdb, 0x7e, 0x63, 0xaf, + 0x47, 0x8b, 0xd7, 0x6d, 0xf9, 0x8e, 0xbd, 0x1e, + 0x2f, 0x5d, 0xb7, 0xe6, 0x3a, 0xf4, 0x78, 0xbd, + 0x76, 0xdf, 0x98, 0xeb, 0xd1, 0xe2, 0xf5, 0xdb, + 0x7e, 0x63, 0xaf, 0x47, 0x8b, 0xd7, 0x6d, 0xf9, + 0x8e, 0xbd, 0x1e, 0x2f, 0x5d, 0xb7, 0xe6, 0x3a, + 0xf4, 0x78, 0xbd, 0x76, 0xdf, 0x98, 0xeb, 0xd1, + 0xe2, 0xf5, 0xdb, 0x7e, 0x63, 0xaf, 0x47, 0x8b, + 0xd7, 0x6d, 0xf9, 0x8e, 0xbd, 0x1e, 0x2f, 0x5d, + 0xb7, 0xe6, 0x3a, 0xf4, 0x78, 0xbd, 0x76, 0xdf, + 0x98, 0xeb, 0xd1, 0xe2, 0xf5, 0xdb, 0x7e, 0x63, + 0xaf, 0x47, 0x8b, 0xd7, 0x6d, 0xf9, 0x8e, 0xbd, + 0x1e, 0x2f, 0x5d, 0xb7, 0xe6, 0x3a, 0xf4, 0x78, + 0xbd, 0x76, 0xdf, 0x98, 0xeb, 0xd1, 0xe2, 0xf5, + 0xdb, 0x7e, 0x63, 0xaf, 0x47, 0x8b, 0xd7, 0x6d, + 0xf9, 0x8e, 0xbd, 0x1e, 0x2f, 0x5d, 0xb7, 0xe6, + 0x3a, 0x60, 0x63, 0x85, 0xd4, 0xaf, 0xad, 0x4c, + 0x74, 0x63, 0xde, 0xc8, 0xb2, 0x16, 0x96, 0xa1, + 0xe6, 0x3e, 0xc8, 0xf1, 0x10, 0x3e, 0xb0, 0x04, + 0x19, 0xca, 0x18, 0x13, 0x2c, 0x8d, 0xe5, 0x73, + 0x10, 0x13, 0xf5, 0x37, 0x89, 0xdb, 0x9f, 0x88, + 0xaa, 0x01, 0x7f, 0x8c, 0x31, 0x8d, 0xbe, 0x71, + 0x13, 0xfc, 0x50, 0x43, 0x05, 0xef, 0xc6, 0xfa, + 0xf2, 0xeb, 0x68, 0xef, 0x99, 0xf2, 0x47, 0xdf, + 0x9f, 0xb9, 0x1a, 0xa7, 0xc3, 0xf9, 0x3c, 0x30, + 0xe4, 0x5a, 0x68, 0xac, 0x59, 0x7c, 0xb3, 0x1e, + 0x70, 0xca, 0xec, 0xb4, 0x3b, 0x9c, 0xd6, 0x48, + 0x01, 0x1f, 0x4d, 0x23, 0x3b, 0xc0, 0xa8, 0xd2, + 0x62, 0x1b, 0x4c, 0x75, 0x5d, 0xb9, 0x16, 0x55, + 0xf8, 0xdb, 0xf5, 0xaa, 0xe0, 0x28, 0x3e, 0x44, + 0x72, 0xd9, 0x76, 0x45, 0x45, 0x72, 0x1c, 0xee, + 0x85, 0x9c, 0xcf, 0xfc, 0xa6, 0xd2, 0x30, 0x45, + 0x30, 0xb8, 0xef, 0x02, 0x98, 0x09, 0x64, 0x2e, + 0x1b, 0x86, 0xed, 0x14, 0xe1, 0x91, 0x8d, 0x3c, + 0xad, 0x6b, 0x5d, 0x42, 0x9a, 0x77, 0x2a, 0x41, + 0xac, 0x00, 0xd2, 0xd1, 0x09, 0xdb, 0x9e, 0x59, + 0xe5, 0x28, 0xe5, 0x1d, 0xa6, 0x66, 0x76, 0xdb, + 0x7a, 0xfd, 0x3c, 0xe6, 0x05, 0x95, 0xae, 0x8c, + 0xc5, 0x1b, 0x43, 0x77, 0x75, 0x5d, 0xb3, 0x12, + 0x7b, 0xd5, 0xab, 0xb0, 0xcc, 0xbd, 0x90, 0x2b, + 0x23, 0x29, 0x57, 0x34, 0x44, 0x44, 0xfd, 0xd8, + 0x28, 0x19, 0xb0, 0xcc, 0x8e, 0x37, 0x1e, 0x21, + 0x94, 0xb1, 0x88, 0x64, 0x5d, 0x71, 0x2b, 0x96, + 0xea, 0x19, 0xd1, 0xe9, 0x04, 0xf2, 0xf2, 0xb4, + 0xdc, 0xff, 0x00, 0x6a, 0x4a, 0xc2, 0x79, 0xce, + 0x7c, 0x91, 0xf7, 0x35, 0x75, 0xf3, 0x73, 0x1b, + 0x61, 0xf8, 0xf6, 0xa8, 0x6c, 0xd0, 0xad, 0x67, + 0xa9, 0x6d, 0x4b, 0xb0, 0xde, 0x95, 0x57, 0x30, + 0x36, 0x8e, 0x9c, 0x59, 0xf7, 0x6a, 0x16, 0xf2, + 0x11, 0x06, 0xff, 0x00, 0x74, 0x4a, 0x22, 0xd5, + 0xb2, 0xc8, 0xe2, 0xed, 0x37, 0x1f, 0x15, 0xe7, + 0x25, 0x42, 0xa5, 0x9e, 0xa5, 0xba, 0x31, 0x63, + 0xdc, 0xcb, 0x83, 0x96, 0x36, 0x8d, 0xfe, 0xff, + 0x00, 0x2f, 0x3c, 0x6e, 0x61, 0xcc, 0x31, 0x3a, + 0xcc, 0xe4, 0x4f, 0x87, 0xa3, 0x88, 0xed, 0xd5, + 0xbf, 0x55, 0x28, 0xa8, 0x20, 0xc3, 0x74, 0x83, + 0x40, 0x39, 0xf9, 0x3a, 0x28, 0xb2, 0xce, 0x50, + 0xde, 0x58, 0x5b, 0x28, 0xbc, 0x9d, 0xf3, 0x11, + 0xdf, 0xae, 0x1b, 0x9c, 0x6e, 0x26, 0x38, 0x7e, + 0xfe, 0x65, 0x77, 0x66, 0xe6, 0x31, 0xec, 0x28, + 0x0a, 0x89, 0xa5, 0xd3, 0x9e, 0xd6, 0xc8, 0x21, + 0x03, 0x54, 0x42, 0xca, 0x79, 0xc7, 0xa0, 0xb3, + 0x29, 0x90, 0x8e, 0x94, 0x1f, 0x34, 0x95, 0x0a, + 0x08, 0xc8, 0x63, 0x6c, 0xa3, 0x27, 0x5e, 0xcb, + 0xe9, 0x64, 0xeb, 0x38, 0x9f, 0x45, 0xdd, 0x8e, + 0x22, 0x6c, 0x2e, 0x18, 0xa1, 0x29, 0xe7, 0x09, + 0x91, 0x8e, 0xe8, 0x91, 0x9d, 0xfb, 0xa7, 0xb8, + 0xa0, 0x6c, 0xd5, 0x4d, 0xbc, 0x05, 0xea, 0xd3, + 0x9e, 0xc7, 0xd4, 0x3b, 0xf5, 0x85, 0xaf, 0xb4, + 0x36, 0xad, 0xaa, 0xae, 0xcb, 0x45, 0xd1, 0x9e, + 0x97, 0x64, 0x57, 0x52, 0x21, 0xc1, 0x01, 0x25, + 0xd4, 0x86, 0xed, 0xdf, 0xdd, 0xac, 0x83, 0x23, + 0x25, 0x8a, 0xb7, 0x67, 0x18, 0x99, 0xb5, 0x6b, + 0x1f, 0x5a, 0xcf, 0x35, 0xe5, 0xd3, 0x8f, 0x1a, + 0x6c, 0x92, 0x08, 0x60, 0x80, 0x3a, 0x7e, 0xdb, + 0xe3, 0xf2, 0xee, 0x1e, 0xe7, 0x9a, 0x76, 0x89, + 0xc1, 0xb3, 0x1a, 0xfc, 0x55, 0x06, 0xd9, 0xe1, + 0xea, 0xae, 0x0a, 0x8e, 0x7c, 0x2a, 0xd6, 0x52, + 0xf0, 0xc3, 0x9b, 0x68, 0xd2, 0x98, 0xdc, 0x8f, + 0x94, 0x0a, 0xb4, 0x35, 0xde, 0xe4, 0x79, 0xe3, + 0x7d, 0xa2, 0x26, 0x75, 0x16, 0xfb, 0x5e, 0x3e, + 0x87, 0x5e, 0xc3, 0xaa, 0x63, 0xd1, 0x7e, 0xc7, + 0x45, 0xf9, 0x1b, 0x55, 0xe0, 0xfa, 0xa9, 0xac, + 0x3b, 0x16, 0xf2, 0x04, 0xb2, 0x0f, 0xbb, 0x3e, + 0x29, 0x97, 0x2f, 0x20, 0x73, 0x4b, 0x73, 0x36, + 0xb2, 0x38, 0xfa, 0x00, 0xa3, 0xbe, 0x99, 0xab, + 0x69, 0xa4, 0x16, 0x4e, 0xd6, 0x3c, 0x9c, 0x27, + 0x55, 0x31, 0xcb, 0xc8, 0xd7, 0x32, 0x50, 0x7d, + 0x31, 0x03, 0x9e, 0xe8, 0xe6, 0x9f, 0x17, 0x79, + 0x8b, 0x57, 0x07, 0x27, 0x8d, 0xbb, 0x38, 0xef, + 0x07, 0x96, 0x46, 0xb5, 0x53, 0x69, 0x95, 0x70, + 0xc8, 0xf2, 0xcd, 0x72, 0x17, 0x4a, 0x86, 0xb5, + 0x81, 0x9e, 0x68, 0xde, 0x6b, 0xb5, 0x91, 0xdf, + 0xac, 0xd7, 0x64, 0xb1, 0x8b, 0xc1, 0xe2, 0xb1, + 0xe5, 0x41, 0x3d, 0x5b, 0xae, 0x8a, 0xd5, 0xbb, + 0x45, 0x9a, 0x68, 0x6f, 0x45, 0x7f, 0x73, 0x9c, + 0xb9, 0xa4, 0xe7, 0x79, 0x8e, 0xf2, 0x8d, 0xb7, + 0x99, 0xee, 0xb3, 0x8d, 0xb7, 0x21, 0xd6, 0xac, + 0x51, 0x12, 0x4b, 0x9d, 0xd6, 0x62, 0x63, 0x0c, + 0x5b, 0x02, 0x67, 0x69, 0xe5, 0x62, 0xc8, 0x4e, + 0x37, 0x88, 0x9e, 0xfd, 0xa6, 0x37, 0xd7, 0x97, + 0x58, 0x81, 0xdf, 0xdd, 0x78, 0x42, 0x27, 0xf8, + 0xe3, 0xc1, 0x57, 0xa7, 0xff, 0x00, 0xc1, 0xac, + 0x77, 0xe1, 0xf5, 0x3f, 0x68, 0x5e, 0xb2, 0x5b, + 0xcf, 0x7f, 0x6f, 0xb9, 0xfb, 0x4b, 0x35, 0xe5, + 0xd7, 0x97, 0x5e, 0x5d, 0x79, 0x75, 0xe5, 0xd7, + 0x97, 0x5e, 0x5d, 0x5d, 0xb5, 0x96, 0xee, 0x06, + 0xd8, 0x56, 0x2f, 0x16, 0x5d, 0x56, 0xa6, 0x27, + 0x22, 0xc5, 0x31, 0xbd, 0xdd, 0x23, 0x1e, 0xa1, + 0x44, 0x74, 0xfc, 0x43, 0xe6, 0x1f, 0xe2, 0x9d, + 0xf5, 0x90, 0xa7, 0x49, 0x42, 0xcb, 0x38, 0xc8, + 0x2e, 0xd2, 0x93, 0x3e, 0x43, 0xdc, 0x5d, 0xd0, + 0x91, 0x08, 0xda, 0x62, 0x4e, 0x19, 0x1d, 0xf1, + 0x32, 0x31, 0x11, 0xbc, 0xc9, 0x6d, 0x1a, 0xa3, + 0x89, 0x6d, 0x75, 0x15, 0xac, 0x90, 0x91, 0x54, + 0x95, 0x3c, 0x09, 0x07, 0x0b, 0xe6, 0x97, 0x6e, + 0xd9, 0xe5, 0xe4, 0xe8, 0x80, 0xf3, 0xb3, 0x9a, + 0x3d, 0xc6, 0xd2, 0x1c, 0xfe, 0x4d, 0x61, 0xaa, + 0xe5, 0xa2, 0xad, 0xdc, 0x6e, 0x54, 0x32, 0x12, + 0xa7, 0xe3, 0xef, 0x75, 0xab, 0xbe, 0x69, 0xd6, + 0xb1, 0x26, 0x03, 0x66, 0xb1, 0x2c, 0xa0, 0xd2, + 0xe5, 0x8f, 0x3c, 0x0c, 0xed, 0xbf, 0x8b, 0x33, + 0x3e, 0x38, 0xc3, 0xed, 0x63, 0xd0, 0xa8, 0xaa, + 0xb7, 0x1a, 0x96, 0xcb, 0x2f, 0x84, 0xc3, 0xc8, + 0x26, 0x79, 0x81, 0x1b, 0xc1, 0x4b, 0x39, 0x36, + 0xe5, 0x22, 0x9e, 0x50, 0xe6, 0xf1, 0x79, 0xf7, + 0x83, 0xe5, 0xbd, 0x4e, 0xb5, 0x51, 0x53, 0x71, + 0xa5, 0xd3, 0xbb, 0x36, 0xd9, 0x09, 0x5a, 0x5d, + 0xcd, 0xcb, 0xd1, 0x93, 0xd8, 0xf9, 0x99, 0x3b, + 0x11, 0x47, 0x24, 0x10, 0xf2, 0x47, 0x3f, 0x34, + 0x41, 0x07, 0x3a, 0x2b, 0xe4, 0xc5, 0x4b, 0x75, + 0x8a, 0xe3, 0x64, 0x41, 0x6d, 0x86, 0xf2, 0x81, + 0x4c, 0x8f, 0x2b, 0x24, 0x63, 0x96, 0x0e, 0x0a, + 0x26, 0x26, 0x06, 0x4c, 0x7e, 0xf1, 0x4c, 0x77, + 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xf2, 0xeb, + 0xcb, 0xaf, 0x2e, 0xbc, 0xba, 0xe2, 0x98, 0xdf, + 0xba, 0x3c, 0x05, 0x3f, 0xf3, 0xf6, 0x9b, 0xb1, + 0xa6, 0xfe, 0x0c, 0x7f, 0xad, 0x4e, 0xb0, 0xdf, + 0x8d, 0xd5, 0xfb, 0x25, 0xcd, 0x07, 0xbd, 0x1a, + 0x3f, 0x7a, 0x75, 0x67, 0xf1, 0xa6, 0x47, 0xf6, + 0x92, 0xd7, 0xfd, 0x2a, 0xff, 0x00, 0xfc, 0x3a, + 0x56, 0xdd, 0xdd, 0x4e, 0x22, 0x10, 0x3f, 0xf1, + 0xa0, 0x71, 0xae, 0x31, 0x89, 0xf7, 0x8b, 0xbe, + 0x3e, 0xad, 0x0c, 0xa7, 0x13, 0xe4, 0xaf, 0x56, + 0xf0, 0xb4, 0xb3, 0xb0, 0x53, 0xc6, 0x82, 0x89, + 0xdd, 0x05, 0x14, 0x09, 0x5a, 0x79, 0xb9, 0x6e, + 0x1e, 0x9e, 0xf3, 0x1e, 0x20, 0x80, 0x94, 0x73, + 0x04, 0xc1, 0x1c, 0xc9, 0x80, 0x46, 0x1b, 0x10, + 0xc8, 0xcd, 0x13, 0xc1, 0x4f, 0xa8, 0x55, 0x64, + 0x08, 0xc9, 0x2f, 0x1e, 0x71, 0xed, 0x31, 0x07, + 0xc9, 0x58, 0x80, 0x7b, 0xdb, 0x2e, 0x25, 0x04, + 0x2e, 0x41, 0xe5, 0xc8, 0xb6, 0x0e, 0xab, 0x62, + 0xac, 0x63, 0x5c, 0xab, 0xf7, 0x3e, 0xd5, 0x49, + 0x1a, 0x39, 0x6c, 0x77, 0x73, 0x7b, 0x55, 0x98, + 0x74, 0xd5, 0x2e, 0x58, 0xf7, 0x7b, 0x3f, 0xda, + 0xe7, 0xc5, 0x3e, 0x52, 0x9d, 0xb5, 0x4c, 0xdd, + 0x8b, 0x7a, 0x97, 0x7e, 0xd2, 0xe9, 0x55, 0x32, + 0x24, 0x6c, 0x76, 0x1c, 0x7d, 0x35, 0x81, 0x47, + 0x5b, 0x74, 0xf5, 0x0a, 0x3d, 0xac, 0xdf, 0x0a, + 0x59, 0xf9, 0x44, 0xe4, 0x66, 0x27, 0x4c, 0xc7, + 0xe3, 0xaa, 0xbb, 0x20, 0x03, 0x59, 0x76, 0x56, + 0xee, 0xa5, 0x45, 0x93, 0xd7, 0x02, 0x90, 0xb0, + 0xd1, 0x4c, 0xd8, 0x82, 0x01, 0x0b, 0x4c, 0x95, + 0x8a, 0xe7, 0x76, 0xf2, 0xed, 0x3e, 0x38, 0xee, + 0xcd, 0x5c, 0xad, 0x57, 0x14, 0xe7, 0x37, 0x1e, + 0xd9, 0x45, 0xbd, 0x9d, 0x56, 0x16, 0x97, 0x0f, + 0xba, 0x4f, 0x5c, 0xec, 0x0d, 0x76, 0xb6, 0x37, + 0x89, 0x90, 0x4b, 0x58, 0x51, 0x13, 0x13, 0x31, + 0xb4, 0xc6, 0xb8, 0x8f, 0x21, 0x6f, 0xb5, 0x57, + 0xbd, 0x84, 0x76, 0x3d, 0x23, 0x5e, 0x79, 0x56, + 0x30, 0x56, 0xac, 0xca, 0x5c, 0x36, 0x54, 0xc5, + 0x4b, 0xb9, 0xc2, 0x23, 0xc5, 0x81, 0x62, 0xb9, + 0x4b, 0xdd, 0x41, 0x79, 0x35, 0x73, 0x35, 0x9c, + 0xb3, 0x95, 0x4a, 0xeb, 0xe4, 0x42, 0x88, 0xc6, + 0x36, 0x6b, 0x4e, 0xfd, 0x44, 0x0b, 0x46, 0x48, + 0x1f, 0x5d, 0xb3, 0xbe, 0xf2, 0x5b, 0xcc, 0x1c, + 0x46, 0xdb, 0x78, 0xbf, 0x77, 0x58, 0x53, 0xe1, + 0xc3, 0xb9, 0x94, 0xad, 0xc4, 0x0a, 0x33, 0xa0, + 0x97, 0xac, 0x06, 0xe8, 0x9a, 0x39, 0x61, 0xc0, + 0xe9, 0x18, 0x52, 0xb9, 0x07, 0x72, 0x61, 0x3a, + 0x41, 0x4a, 0x4a, 0xc4, 0xa5, 0x85, 0x2b, 0x5f, + 0x5c, 0xcb, 0x13, 0x38, 0xb7, 0xc6, 0x44, 0x6b, + 0xcd, 0xbe, 0xcd, 0x2c, 0xaf, 0x1c, 0xd5, 0xa3, + 0x97, 0x77, 0x29, 0xd2, 0xee, 0xce, 0xf1, 0x89, + 0x28, 0x0f, 0x68, 0x6b, 0x27, 0xa9, 0xcc, 0xad, + 0xba, 0x80, 0x62, 0x3d, 0x0b, 0x38, 0x5b, 0x0a, + 0xcb, 0xce, 0x6d, 0x14, 0x62, 0xdc, 0xde, 0xaa, + 0x49, 0xfd, 0xf3, 0x4d, 0x4e, 0x46, 0x3a, 0x50, + 0x17, 0x48, 0x45, 0xe7, 0xd5, 0x07, 0xf5, 0x89, + 0x50, 0x22, 0x07, 0x00, 0x6f, 0x19, 0x89, 0x08, + 0x3b, 0xf7, 0xb1, 0x56, 0x2b, 0xd4, 0x53, 0x65, + 0x2c, 0x71, 0x12, 0x4e, 0x00, 0xe1, 0x92, 0xad, + 0xcc, 0x54, 0xe3, 0x60, 0xa8, 0x98, 0x3c, 0xa1, + 0x62, 0x43, 0xb3, 0xb3, 0x99, 0x7d, 0x36, 0x94, + 0x39, 0x52, 0x68, 0xb1, 0x87, 0xa7, 0x7a, 0xf5, + 0x2f, 0x03, 0x53, 0xc8, 0xdc, 0x7b, 0x0e, 0xbc, + 0xf4, 0xdc, 0xf1, 0x73, 0x1c, 0xb4, 0xc4, 0x45, + 0x72, 0x74, 0x02, 0xd6, 0x25, 0x09, 0x4a, 0xec, + 0x3c, 0x79, 0xa3, 0x9a, 0x67, 0x9c, 0x34, 0xfb, + 0xf8, 0xfc, 0x6d, 0x8b, 0x55, 0x2b, 0x73, 0x75, + 0x5c, 0xbe, 0x4f, 0x28, 0x0f, 0x39, 0x0a, 0x80, + 0xd8, 0x2d, 0xb0, 0x62, 0x3d, 0xf2, 0x15, 0x81, + 0xa7, 0x1b, 0x8c, 0x72, 0xee, 0x43, 0x13, 0xe1, + 0x64, 0x63, 0x98, 0xcc, 0x77, 0x49, 0xee, 0xed, + 0x50, 0xea, 0xd0, 0x3d, 0x3a, 0xc6, 0x4b, 0x74, + 0xf2, 0x13, 0xe1, 0xdc, 0xc2, 0x62, 0x43, 0x0b, + 0xe9, 0xf5, 0x19, 0xb4, 0xf4, 0xc4, 0xe3, 0xbf, + 0x55, 0x2c, 0x64, 0xf1, 0xb6, 0x2a, 0xd3, 0xb3, + 0x62, 0xba, 0x65, 0xdc, 0xe8, 0x22, 0x0e, 0xd0, + 0x43, 0xcb, 0x0c, 0x05, 0xb5, 0xac, 0xac, 0x73, + 0x13, 0xe2, 0xc5, 0x95, 0x07, 0x8f, 0xe2, 0x4c, + 0x73, 0xf8, 0xba, 0xcb, 0x63, 0x30, 0x14, 0xed, + 0xe4, 0x2b, 0xe3, 0x0e, 0xb8, 0x13, 0x9c, 0xda, + 0xa1, 0x31, 0xd6, 0xac, 0xa7, 0x6c, 0x6e, 0x64, + 0xd3, 0x41, 0x1e, 0xe6, 0x5b, 0x02, 0xe3, 0x9a, + 0x03, 0x69, 0x21, 0xfe, 0x14, 0xb6, 0xbd, 0x85, + 0x9a, 0x5e, 0x93, 0x25, 0xb5, 0x4c, 0x89, 0x13, + 0x5b, 0x02, 0x76, 0x20, 0x21, 0x9f, 0x24, 0xc4, + 0xfd, 0x4c, 0x1c, 0x44, 0xed, 0xcd, 0x93, 0xaa, + 0x3d, 0xdf, 0x78, 0x9b, 0x02, 0x51, 0xef, 0x4c, + 0x4c, 0xc4, 0xff, 0x00, 0x14, 0xfd, 0x48, 0x38, + 0xfe, 0x07, 0x13, 0xd2, 0x93, 0xff, 0x00, 0x14, + 0x0b, 0x17, 0x93, 0x08, 0x29, 0xfe, 0x29, 0x39, + 0x11, 0xf7, 0xe7, 0x5e, 0x5d, 0x77, 0x16, 0xd3, + 0xf7, 0x27, 0xef, 0x7f, 0x1e, 0xb1, 0xfc, 0x45, + 0x9c, 0xcc, 0xd8, 0xc7, 0x5d, 0x4d, 0x7a, 0xe1, + 0x96, 0xc1, 0xf8, 0x3a, 0xc5, 0x91, 0xc8, 0x3a, + 0x90, 0x7f, 0x7b, 0x5a, 0x54, 0x4a, 0xd6, 0x9b, + 0x3b, 0x40, 0x72, 0xba, 0x64, 0xa4, 0x7c, 0x53, + 0x95, 0x7b, 0xbd, 0x71, 0x07, 0x0f, 0xde, 0x73, + 0x78, 0x6b, 0x1f, 0x77, 0x2e, 0x39, 0x5c, 0x45, + 0x95, 0xa1, 0xd9, 0x05, 0xd6, 0x15, 0x6c, 0x03, + 0x5a, 0xca, 0x80, 0x99, 0x60, 0xe6, 0x40, 0x20, + 0xbc, 0x53, 0xe9, 0xc1, 0xb2, 0x60, 0x09, 0x40, + 0xa0, 0x19, 0x7d, 0x2a, 0xb7, 0xd9, 0xe0, 0xcc, + 0x67, 0x03, 0x64, 0x70, 0x18, 0xfb, 0xf6, 0x11, + 0x63, 0xa9, 0x91, 0xc8, 0x36, 0x53, 0x21, 0x22, + 0xb0, 0x51, 0xb1, 0x20, 0xd9, 0x19, 0xe9, 0x75, + 0x85, 0x40, 0xb8, 0x89, 0x82, 0xe9, 0xc7, 0x2c, + 0x6b, 0xd8, 0xd4, 0x19, 0x7c, 0x44, 0xb0, 0xb7, + 0xb2, 0xce, 0xcc, 0x47, 0x46, 0xd4, 0xf6, 0x35, + 0xbe, 0xda, 0x58, 0x82, 0x2d, 0x93, 0x30, 0xee, + 0x75, 0x89, 0x16, 0xd5, 0xba, 0xd2, 0x3e, 0x42, + 0xe5, 0x99, 0xdb, 0x55, 0xd2, 0x9c, 0x88, 0x99, + 0x0f, 0xb2, 0x45, 0xcc, 0xd3, 0x07, 0xa3, 0x6e, + 0x3f, 0xb1, 0x0c, 0xb4, 0xf3, 0x55, 0xcf, 0x19, + 0x11, 0x13, 0x12, 0x07, 0x05, 0xd1, 0xef, 0xb3, + 0x1c, 0xdd, 0xe9, 0x89, 0xde, 0x23, 0xd9, 0x19, + 0xd1, 0x90, 0x93, 0x4e, 0x65, 0x78, 0x78, 0xc5, + 0x4a, 0x97, 0x65, 0x6d, 0xb9, 0x15, 0xa6, 0x26, + 0xc8, 0xa0, 0x99, 0x5a, 0x62, 0xab, 0x02, 0x37, + 0x80, 0x3b, 0x40, 0xb0, 0xe7, 0xd8, 0xa2, 0x19, + 0x11, 0x3a, 0xbe, 0x86, 0x67, 0x0f, 0x88, 0xed, + 0x39, 0x09, 0x5e, 0x21, 0x39, 0x0c, 0x2c, 0x23, + 0x35, 0x8b, 0x66, 0xcb, 0xe7, 0x9b, 0x39, 0x55, + 0x2e, 0xbd, 0x47, 0x80, 0x92, 0xf9, 0xcc, 0x92, + 0xa8, 0x71, 0x19, 0x6c, 0x4c, 0xb0, 0x33, 0xb8, + 0xe7, 0xeb, 0x57, 0xc9, 0x9d, 0x2c, 0xdd, 0x9c, + 0x95, 0x16, 0xd1, 0x14, 0x8b, 0xe1, 0xa6, 0x80, + 0x85, 0x8d, 0x82, 0x17, 0x02, 0xe5, 0x21, 0xe2, + 0xf3, 0x44, 0x8b, 0x18, 0x05, 0x31, 0xbe, 0xd1, + 0x3d, 0xdb, 0x86, 0x43, 0x88, 0xaf, 0x59, 0xb2, + 0x9b, 0x14, 0xdf, 0x8d, 0x75, 0xc6, 0xfe, 0xfb, + 0x65, 0x45, 0x58, 0x1d, 0x81, 0xa2, 0x96, 0x43, + 0x04, 0xd6, 0xa3, 0xd8, 0x98, 0xae, 0x93, 0x20, + 0x82, 0x4f, 0xda, 0x59, 0x33, 0xcb, 0x38, 0x65, + 0x17, 0x12, 0x1e, 0x42, 0x8d, 0x1a, 0x79, 0x62, + 0xb1, 0x7f, 0xc0, 0xa8, 0xc5, 0xd0, 0x5d, 0xab, + 0x88, 0xe9, 0xa1, 0x54, 0xa8, 0x50, 0xc6, 0x2e, + 0xf0, 0x49, 0x7f, 0x7c, 0x13, 0x98, 0xf5, 0x73, + 0xf2, 0x90, 0x6d, 0xdf, 0xca, 0xbc, 0x39, 0xda, + 0x88, 0xca, 0xbf, 0x8d, 0x30, 0xf6, 0x93, 0x53, + 0xa6, 0xe9, 0x93, 0xaa, 0x27, 0x41, 0x64, 0xde, + 0xac, 0x2f, 0xb3, 0xc6, 0xc6, 0x27, 0x1c, 0x84, + 0xd8, 0x67, 0x8b, 0xdc, 0x3b, 0x4c, 0x6f, 0xc6, + 0x39, 0x00, 0xcb, 0x59, 0x7e, 0x72, 0xe5, 0x3b, + 0x78, 0x98, 0xc2, 0x15, 0x36, 0x88, 0xa2, 0xcd, + 0xa4, 0x29, 0x47, 0x68, 0xae, 0x4e, 0xf5, 0xdb, + 0x5b, 0x68, 0x16, 0x8a, 0xf7, 0x03, 0x11, 0xdc, + 0x36, 0x22, 0xdb, 0x6e, 0x07, 0xb8, 0xcc, 0x90, + 0xc5, 0x1c, 0x57, 0x0c, 0xd7, 0xa7, 0x91, 0x77, + 0x42, 0xdc, 0xc5, 0x6b, 0xc2, 0xab, 0xe2, 0xc4, + 0xf4, 0xe1, 0x12, 0xd6, 0x4e, 0xec, 0x40, 0xcb, + 0x12, 0x0c, 0x54, 0xef, 0x1e, 0x3c, 0xc0, 0xcc, + 0xc5, 0x6a, 0xd7, 0x33, 0x85, 0x84, 0xb1, 0x86, + 0xc9, 0x64, 0x9e, 0x12, 0xbc, 0x2d, 0x7c, 0x9b, + 0x72, 0x75, 0x6c, 0xbd, 0xb6, 0x51, 0x34, 0x1d, + 0x6e, 0x9d, 0xc1, 0xc7, 0x5b, 0x12, 0xe4, 0x89, + 0x63, 0x01, 0x71, 0xbe, 0xdc, 0xc0, 0x51, 0x30, + 0x48, 0xc4, 0xa3, 0xb5, 0x31, 0xf7, 0x03, 0x89, + 0x32, 0x99, 0x1b, 0xd5, 0x18, 0x1c, 0x96, 0x22, + 0x9d, 0x9b, 0x16, 0x4d, 0x66, 0xc6, 0xa6, 0xad, + 0x7a, 0x12, 0xe6, 0xa8, 0xc7, 0x9a, 0x2a, 0xc4, + 0x08, 0x19, 0xf7, 0x28, 0x22, 0x26, 0x23, 0x89, + 0x69, 0xe3, 0xf3, 0x75, 0xe5, 0x19, 0x05, 0x62, + 0xa7, 0x0d, 0x89, 0xaf, 0x8a, 0xb5, 0x45, 0x54, + 0xa2, 0xad, 0x8a, 0xec, 0xb4, 0xb7, 0x94, 0x54, + 0x05, 0xb2, 0xeb, 0xa3, 0x7e, 0x67, 0x49, 0x18, + 0x92, 0xeb, 0xac, 0x66, 0xc7, 0x72, 0xc0, 0x78, + 0x82, 0xd5, 0x7e, 0x2a, 0xb1, 0x8c, 0x4d, 0xb3, + 0xc6, 0x1a, 0x5c, 0x78, 0xa3, 0xc9, 0x61, 0x72, + 0x35, 0xd1, 0x4e, 0xba, 0xac, 0x55, 0xb5, 0x8e, + 0x3a, 0x8a, 0xc9, 0x2e, 0xc7, 0x50, 0x5a, 0xae, + 0xba, 0x9f, 0x5a, 0x09, 0x05, 0x30, 0x25, 0x12, + 0x22, 0x47, 0x76, 0xce, 0x09, 0x60, 0x9c, 0x71, + 0x74, 0x44, 0x3a, 0x68, 0xec, 0xaa, 0x6b, 0x16, + 0xa1, 0x07, 0x3d, 0x55, 0xbc, 0xa9, 0x5b, 0x8e, + 0x24, 0x84, 0x26, 0x04, 0xb6, 0xf1, 0x8c, 0x60, + 0xc8, 0xb5, 0xe5, 0xd6, 0x0c, 0x77, 0xfb, 0xb9, + 0x39, 0x9f, 0xe2, 0x88, 0xc3, 0x64, 0x7b, 0xe7, + 0xef, 0x47, 0xf1, 0xeb, 0x1b, 0xf8, 0x7d, 0x3f, + 0xda, 0x17, 0xac, 0xa8, 0xef, 0xe4, 0xc9, 0x5f, + 0x8e, 0xff, 0x00, 0xe2, 0xb4, 0xdd, 0x79, 0x75, + 0xe5, 0xd7, 0x97, 0x5e, 0x5d, 0x79, 0x75, 0xe5, + 0xd7, 0x97, 0x5c, 0x35, 0x88, 0xb4, 0xa7, 0x67, + 0x6c, 0x50, 0x52, 0x73, 0x47, 0x63, 0x0b, 0x92, + 0x5f, 0x42, 0xb6, 0x59, 0xc6, 0xc6, 0x18, 0xb5, + 0x95, 0xae, 0x2c, 0x5b, 0x61, 0x05, 0xcc, 0x10, + 0xa6, 0x73, 0xf4, 0xd5, 0xc9, 0xcc, 0x31, 0xcf, + 0xdf, 0xc6, 0xf9, 0x1c, 0x76, 0x6b, 0x17, 0xd2, + 0xcf, 0x70, 0x8f, 0x6c, 0xa6, 0x01, 0x91, 0xa7, + 0xd5, 0x8c, 0x9b, 0x84, 0x86, 0xc5, 0x18, 0x5c, + 0x3a, 0x4f, 0xb7, 0x11, 0x8f, 0x5c, 0xab, 0x6d, + 0xd7, 0xe6, 0x7c, 0xf8, 0x9d, 0xda, 0xf6, 0x38, + 0x46, 0x53, 0x27, 0x43, 0xa7, 0x52, 0x9e, 0x5e, + 0x2c, 0x83, 0x2e, 0x84, 0x05, 0x2b, 0x70, 0xc9, + 0x9c, 0x68, 0x64, 0xfa, 0x6d, 0xea, 0xd2, 0x44, + 0x9c, 0x2f, 0x6e, 0xaf, 0x4c, 0x39, 0x20, 0x79, + 0xbd, 0xa3, 0x9e, 0x63, 0x81, 0xc6, 0xce, 0x73, + 0x85, 0xe0, 0xe8, 0x58, 0xe2, 0x60, 0xc8, 0x78, + 0x32, 0xf5, 0x24, 0x63, 0x31, 0xe3, 0x62, 0x8b, + 0x0a, 0x8a, 0x80, 0x89, 0x81, 0xbd, 0x7e, 0x49, + 0x5d, 0x75, 0xda, 0x39, 0x38, 0xb1, 0x60, 0x64, + 0x4a, 0xc3, 0xac, 0x49, 0x11, 0x70, 0xfd, 0x73, + 0xe2, 0x9c, 0x6e, 0x02, 0xc7, 0x0d, 0x5e, 0xb6, + 0x56, 0x91, 0x90, 0xb0, 0x35, 0xbb, 0x42, 0xdd, + 0x74, 0xed, 0x2e, 0xe6, 0x38, 0x8d, 0x82, 0x2f, + 0xb1, 0xc9, 0x1c, 0xbb, 0x07, 0x31, 0x43, 0x0a, + 0x79, 0xba, 0x70, 0x4b, 0xea, 0xf1, 0x96, 0x30, + 0x33, 0x54, 0x70, 0x51, 0x73, 0x21, 0x8e, 0xb7, + 0x46, 0xf6, 0x50, 0xfb, 0x25, 0x4c, 0x8d, 0x7c, + 0x7a, 0x6b, 0xd5, 0x67, 0x55, 0x8c, 0x95, 0xf8, + 0xed, 0x94, 0xf5, 0xd7, 0x5c, 0xbd, 0xbe, 0x40, + 0x96, 0x5d, 0x22, 0xe9, 0xbb, 0xa7, 0xc2, 0xd0, + 0x9b, 0x53, 0x71, 0x53, 0xc2, 0xf8, 0xf9, 0x55, + 0xb3, 0x12, 0x12, 0xb4, 0xbe, 0xfe, 0x4b, 0x24, + 0x27, 0xe3, 0x89, 0x3c, 0x76, 0x6c, 0x89, 0xf8, + 0xd1, 0xcd, 0xb1, 0x77, 0xeb, 0xcb, 0xaf, 0x2e, + 0xbc, 0xba, 0xf2, 0xeb, 0xcb, 0xaf, 0x2e, 0xbc, + 0xba, 0xe2, 0xff, 0x00, 0xbb, 0xcb, 0x1c, 0x3d, + 0xff, 0x00, 0xed, 0x59, 0xc8, 0xff, 0x00, 0xdf, + 0xcb, 0x3f, 0x93, 0x4d, 0xfc, 0x18, 0xff, 0x00, + 0x5a, 0x9d, 0x61, 0xbf, 0x1b, 0xaf, 0xf6, 0x4b, + 0x9a, 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xea, 0xcf, + 0xe3, 0x3c, 0x8f, 0xed, 0x25, 0xaf, 0xfa, 0x50, + 0xff, 0x00, 0xf1, 0xb5, 0x4c, 0xbe, 0xff, 0x00, + 0x14, 0x44, 0x7f, 0xd9, 0x16, 0x27, 0x5e, 0x5d, + 0x79, 0x75, 0xc3, 0x9e, 0x06, 0xbf, 0x8e, 0x0c, + 0x8e, 0x0e, 0xb3, 0xb1, 0xb9, 0x4a, 0x37, 0x2c, + 0x74, 0x18, 0xb5, 0xf5, 0x00, 0x91, 0x6d, 0x60, + 0x20, 0xc9, 0x25, 0x18, 0xc7, 0xbb, 0x81, 0xe5, + 0x32, 0x9e, 0x4e, 0xa7, 0x51, 0x4c, 0x01, 0xe2, + 0x1e, 0x1c, 0xc3, 0xe7, 0xd5, 0x36, 0xee, 0xe1, + 0x7c, 0x1f, 0x8d, 0xcb, 0x39, 0x8b, 0x52, 0x7c, + 0x30, 0x5c, 0x93, 0x62, 0xad, 0x7b, 0x09, 0x9e, + 0x59, 0xe6, 0x67, 0x88, 0xa6, 0x0c, 0x0b, 0x79, + 0xc4, 0x94, 0x10, 0xd3, 0x08, 0x36, 0xf0, 0x1f, + 0x0e, 0xe6, 0x72, 0x55, 0xf2, 0x1c, 0x40, 0xac, + 0xf5, 0x9b, 0x8d, 0xe9, 0xd9, 0x9b, 0x45, 0x42, + 0x8b, 0x6b, 0xbf, 0xa4, 0xa6, 0xbd, 0x9b, 0x33, + 0xdb, 0xb9, 0x80, 0xd7, 0xd4, 0x81, 0x92, 0x88, + 0x9e, 0x58, 0x90, 0x50, 0xcc, 0xf1, 0xd3, 0xec, + 0x5d, 0x71, 0x95, 0x4e, 0x2c, 0xa3, 0x35, 0xc8, + 0x9e, 0x73, 0x35, 0xf6, 0xbe, 0x71, 0xbd, 0x7d, + 0xca, 0x65, 0x51, 0x02, 0xa1, 0xdb, 0xa5, 0xb6, + 0xdc, 0xbb, 0xc6, 0xb8, 0xd3, 0x2e, 0x37, 0x80, + 0xaa, 0x5f, 0xe0, 0xdb, 0x36, 0xb0, 0xad, 0x45, + 0xa2, 0x39, 0x58, 0xd7, 0xad, 0x4c, 0x1a, 0x4b, + 0x8e, 0xe1, 0x41, 0x13, 0x4e, 0x18, 0xbe, 0x89, + 0x4c, 0x96, 0xf0, 0xde, 0xe2, 0xd6, 0x1a, 0xa7, + 0x0f, 0xe6, 0xd3, 0x4b, 0x27, 0x8a, 0xc8, 0xdc, + 0x76, 0x6d, 0x4f, 0xbc, 0xda, 0xd6, 0x19, 0xda, + 0x2c, 0x13, 0x53, 0x78, 0x88, 0x39, 0x99, 0x64, + 0x39, 0x4a, 0x3b, 0xcf, 0xc4, 0x93, 0xe6, 0x57, + 0x37, 0x32, 0xf6, 0xd7, 0xb2, 0x55, 0x9a, 0x0f, + 0x53, 0xd2, 0x0f, 0xe1, 0x54, 0x76, 0x95, 0x48, + 0x74, 0xed, 0xbd, 0x2d, 0x14, 0xd9, 0xb0, 0xae, + 0x49, 0xe5, 0x21, 0x36, 0x01, 0x6c, 0x41, 0x32, + 0x27, 0x11, 0xcf, 0x13, 0xe3, 0x6b, 0x2d, 0x90, + 0x55, 0x6c, 0x75, 0xd6, 0x47, 0x11, 0xd6, 0x47, + 0x43, 0x24, 0x89, 0xb3, 0x5f, 0x66, 0x52, 0x09, + 0xe7, 0xe9, 0x0b, 0x92, 0x5c, 0xf1, 0xcb, 0xe2, + 0x97, 0x3e, 0xd1, 0xdf, 0xdd, 0x3a, 0x9f, 0x0c, + 0xb2, 0x95, 0x62, 0x7e, 0x1a, 0xd6, 0x2f, 0x0d, + 0x59, 0x26, 0x78, 0xca, 0x09, 0x7b, 0x7a, 0x32, + 0x35, 0x12, 0xe1, 0x36, 0xba, 0xa9, 0xdc, 0xe9, + 0x72, 0x8b, 0xfa, 0x8c, 0x77, 0x57, 0x91, 0x55, + 0xfb, 0xfb, 0x3a, 0x35, 0x47, 0x16, 0xc8, 0xa3, + 0x56, 0xee, 0x33, 0x85, 0x73, 0x8d, 0x25, 0x56, + 0xcd, 0x5a, 0xcd, 0x3a, 0xa4, 0x34, 0xa9, 0x1a, + 0x55, 0x6a, 0xe5, 0xda, 0xe9, 0x6c, 0xb2, 0x79, + 0x7a, 0xaa, 0x86, 0x13, 0x19, 0xd2, 0xe5, 0x2d, + 0x85, 0x72, 0xbe, 0x6c, 0x33, 0xde, 0xf2, 0x73, + 0xdb, 0xec, 0x93, 0x8d, 0x13, 0x36, 0xb2, 0x58, + 0xd3, 0xfd, 0xe7, 0x5a, 0x22, 0x48, 0x8a, 0x64, + 0xcb, 0xba, 0x22, 0x37, 0x9f, 0xbd, 0xb6, 0xb8, + 0xf7, 0x31, 0x96, 0xce, 0x54, 0xb9, 0x86, 0xc9, + 0x54, 0xbd, 0x8d, 0xc5, 0xd3, 0x1b, 0xb2, 0xe6, + 0x16, 0x40, 0xb9, 0x90, 0xba, 0x31, 0x57, 0xbc, + 0x52, 0xfa, 0x46, 0x27, 0x59, 0xa2, 0xad, 0xc8, + 0x45, 0x4d, 0x7b, 0xa1, 0x62, 0xb6, 0x48, 0xf0, + 0xa6, 0x3f, 0xb5, 0x9c, 0x52, 0x9e, 0x08, 0x07, + 0x1a, 0x21, 0xd3, 0x08, 0x26, 0x1d, 0x2b, 0xb2, + 0x44, 0xc5, 0xf3, 0x74, 0xc8, 0xf7, 0x42, 0xb6, + 0x92, 0x8e, 0x68, 0xe5, 0x8d, 0xb5, 0x84, 0xb3, + 0x4b, 0xb0, 0x14, 0xf0, 0xfb, 0x32, 0x7e, 0x16, + 0x2b, 0x7c, 0x41, 0x77, 0x10, 0x38, 0xd3, 0x97, + 0x3d, 0xdd, 0xa1, 0xf5, 0x2b, 0x21, 0xe9, 0xbe, + 0x9b, 0x2a, 0x99, 0x64, 0x4d, 0x98, 0xe9, 0x84, + 0x73, 0x40, 0xf8, 0xc0, 0xd1, 0x0e, 0x0e, 0x80, + 0xba, 0x54, 0x68, 0xe4, 0xb3, 0x3c, 0x41, 0xda, + 0x66, 0xbb, 0xc8, 0x40, 0x2b, 0x1e, 0x61, 0x91, + 0xcc, 0x5e, 0xe3, 0x98, 0x14, 0xa6, 0x11, 0x07, + 0x54, 0x36, 0xfe, 0x14, 0x8c, 0x6b, 0x89, 0x96, + 0x35, 0x6b, 0xa1, 0x65, 0x95, 0xe1, 0xb7, 0xd6, + 0xb3, 0x39, 0x49, 0xca, 0x64, 0xb2, 0xc9, 0x8c, + 0x9d, 0x05, 0x96, 0x52, 0xd1, 0x9d, 0x87, 0x35, + 0x48, 0xe4, 0x88, 0x4a, 0x54, 0x40, 0x02, 0xbe, + 0x93, 0xe6, 0x24, 0x80, 0xa3, 0x97, 0x8b, 0x31, + 0xc9, 0xf0, 0x5d, 0xf5, 0x78, 0x5b, 0x1e, 0xf6, + 0xd1, 0x66, 0x49, 0xf8, 0xcc, 0x95, 0x65, 0xce, + 0x2e, 0x92, 0xcf, 0x21, 0x55, 0xc9, 0x5b, 0x22, + 0xc0, 0x77, 0xc2, 0xc4, 0x20, 0x93, 0x2b, 0x78, + 0xf7, 0xbc, 0x79, 0xc3, 0x59, 0x78, 0xa1, 0x7c, + 0xb2, 0x15, 0xfa, 0xaa, 0xda, 0xc3, 0x1f, 0x36, + 0x8b, 0xa9, 0x15, 0xd4, 0x2d, 0x47, 0x6a, 0x29, + 0x92, 0xb0, 0x35, 0x99, 0x04, 0x80, 0x61, 0x11, + 0x97, 0x2a, 0xe0, 0x49, 0x8c, 0x21, 0x96, 0x17, + 0x97, 0x5c, 0x3a, 0x3b, 0xfb, 0xac, 0xc5, 0x08, + 0xff, 0x00, 0xef, 0x80, 0xfa, 0x96, 0xf0, 0x79, + 0x10, 0x33, 0xa3, 0x97, 0x85, 0x21, 0x92, 0xae, + 0x58, 0x7d, 0x6b, 0x00, 0xce, 0x6a, 0x97, 0x50, + 0x45, 0x13, 0xed, 0xb5, 0x9b, 0x3c, 0xd0, 0x33, + 0xe2, 0x18, 0x91, 0x09, 0xc4, 0xf7, 0x6a, 0xe5, + 0x22, 0xe3, 0xac, 0x58, 0x9d, 0x3b, 0x56, 0x2a, + 0x34, 0x5f, 0x87, 0xcf, 0x43, 0x45, 0xb5, 0x9c, + 0x69, 0x68, 0x9f, 0x67, 0xa7, 0x61, 0x3b, 0xc1, + 0x84, 0xc6, 0xeb, 0x73, 0x02, 0x7c, 0xb0, 0x53, + 0x1a, 0xf4, 0xf3, 0x0b, 0xea, 0x9e, 0x24, 0xfa, + 0x33, 0x5e, 0x9e, 0x61, 0x7d, 0x53, 0xc4, 0x9f, + 0x46, 0x6b, 0xd3, 0xcc, 0x2f, 0xaa, 0x78, 0x93, + 0xe8, 0xcd, 0x7a, 0x79, 0x85, 0xf5, 0x4f, 0x12, + 0x7d, 0x19, 0xaf, 0x4f, 0x30, 0xbe, 0xa9, 0xe2, + 0x4f, 0xa3, 0x35, 0xe9, 0xe6, 0x17, 0xd5, 0x3c, + 0x49, 0xf4, 0x66, 0xb6, 0x8e, 0x3b, 0xc3, 0x7a, + 0xa7, 0x89, 0x3e, 0x8c, 0xd6, 0xd3, 0xc7, 0x78, + 0x68, 0x9f, 0xbd, 0x38, 0x8e, 0x24, 0x89, 0xfe, + 0x4c, 0xd7, 0xa7, 0x98, 0x5f, 0x54, 0xf1, 0x27, + 0xd1, 0x9a, 0xf4, 0xf3, 0x0b, 0xea, 0x9e, 0x24, + 0xfa, 0x33, 0x5e, 0x9e, 0x61, 0x7d, 0x53, 0xc4, + 0x9f, 0x46, 0x69, 0x36, 0x13, 0xc7, 0xd8, 0x51, + 0x75, 0x77, 0x29, 0xea, 0x2f, 0x04, 0x71, 0x09, + 0x72, 0xb5, 0x27, 0x0c, 0x59, 0x72, 0x96, 0x2e, + 0x44, 0xb6, 0x31, 0x89, 0xe5, 0x28, 0x91, 0x9f, + 0x21, 0x44, 0xc6, 0xac, 0xe4, 0xf2, 0x1e, 0xc8, + 0x58, 0x47, 0xdd, 0xb8, 0xce, 0xad, 0x86, 0xc6, + 0x17, 0x3c, 0xae, 0x73, 0xe5, 0x81, 0xdf, 0xa6, + 0x9c, 0x4a, 0xd4, 0x3d, 0xc3, 0x1d, 0xc0, 0x03, + 0x1f, 0x77, 0xcb, 0xaf, 0x4f, 0x30, 0xbe, 0xa9, + 0xe2, 0x4f, 0xa3, 0x35, 0xe9, 0xe6, 0x17, 0xd5, + 0x3c, 0x49, 0xf4, 0x66, 0xbd, 0x3c, 0xc2, 0xfa, + 0xa7, 0x89, 0x3e, 0x8c, 0xd7, 0xa7, 0x98, 0x5f, + 0x54, 0xf1, 0x27, 0xd1, 0x9a, 0xf4, 0xf3, 0x0b, + 0xea, 0x9e, 0x24, 0xfa, 0x33, 0x5e, 0x9e, 0x61, + 0x7d, 0x53, 0xc4, 0x9f, 0x46, 0x6b, 0xd3, 0xcc, + 0x2f, 0xaa, 0x78, 0x93, 0xe8, 0xcd, 0x2f, 0x88, + 0x2b, 0xe5, 0x23, 0x39, 0x77, 0x2e, 0x8b, 0xd4, + 0xa8, 0x5b, 0x4d, 0x77, 0xd3, 0xa7, 0x45, 0x0b, + 0x6f, 0x65, 0xbe, 0x6a, 0x5d, 0xa1, 0x0b, 0x6c, + 0xb4, 0xc2, 0x83, 0x40, 0x34, 0xc1, 0x02, 0xb5, + 0xf3, 0x90, 0x89, 0x6e, 0x25, 0x20, 0xc0, 0x9e, + 0x53, 0x59, 0x09, 0x81, 0x7d, 0xe2, 0x19, 0xdc, + 0x67, 0xfe, 0x69, 0x8d, 0x0f, 0x10, 0xe3, 0x33, + 0x38, 0x2c, 0x4c, 0x66, 0xc9, 0xf6, 0x59, 0x8b, + 0xcd, 0xe4, 0x91, 0x8b, 0x98, 0xb4, 0xa2, 0xe4, + 0xba, 0xcc, 0x7b, 0x5a, 0x45, 0x0f, 0xae, 0x76, + 0x3c, 0x7e, 0x42, 0x85, 0xca, 0x25, 0xb0, 0x33, + 0x3c, 0x92, 0x1b, 0x79, 0xfb, 0x82, 0x7f, 0x4b, + 0xb1, 0x5f, 0x29, 0xaf, 0x3f, 0x70, 0x4f, 0xe9, + 0x76, 0x2b, 0xe5, 0x35, 0xe7, 0xee, 0x09, 0xfd, + 0x2e, 0xc5, 0x7c, 0xa6, 0xbc, 0xfd, 0xc1, 0x3f, + 0xa5, 0xd8, 0xaf, 0x94, 0xd7, 0x9f, 0xb8, 0x27, + 0xf4, 0xbb, 0x15, 0xf2, 0x9a, 0xf3, 0xf7, 0x04, + 0xfe, 0x97, 0x62, 0xbe, 0x53, 0x5e, 0x7e, 0xe0, + 0x9f, 0xd2, 0xec, 0x57, 0xca, 0x6b, 0xcf, 0xdc, + 0x13, 0xfa, 0x5d, 0x8a, 0xf9, 0x4d, 0x79, 0xfb, + 0x82, 0x7f, 0x4b, 0xb1, 0x5f, 0x29, 0xaf, 0x3f, + 0x70, 0x4f, 0xe9, 0x76, 0x2b, 0xe5, 0x35, 0xe7, + 0xee, 0x09, 0xfd, 0x2e, 0xc5, 0x7c, 0xa6, 0xbc, + 0xfd, 0xc1, 0x3f, 0xa5, 0xd8, 0xaf, 0x94, 0xd5, + 0x95, 0x57, 0xc9, 0x7b, 0x19, 0xe4, 0xaa, 0x5a, + 0x91, 0x63, 0x28, 0xe6, 0xb3, 0xf8, 0xab, 0xd5, + 0x46, 0xc2, 0xe3, 0x94, 0x2d, 0x28, 0x46, 0xd5, + 0x76, 0xae, 0xc4, 0x2a, 0x4d, 0x3b, 0x8b, 0xba, + 0x66, 0xb6, 0x14, 0x31, 0x66, 0x42, 0xa2, 0x5c, + 0xe4, 0xb2, 0x79, 0xfe, 0x03, 0x86, 0xf4, 0x81, + 0x09, 0x45, 0x5e, 0x29, 0xc5, 0xa2, 0xa5, 0x5a, + 0xeb, 0xdf, 0x91, 0x15, 0xd5, 0x2f, 0x61, 0x0a, + 0xc6, 0x64, 0xa7, 0xdb, 0x18, 0xd6, 0x4c, 0xcf, + 0x8c, 0x73, 0xdd, 0xb7, 0x9f, 0xb8, 0x27, 0xf4, + 0xbb, 0x15, 0xf2, 0x9a, 0xf3, 0xf7, 0x04, 0xfe, + 0x97, 0x62, 0xbe, 0x53, 0x5e, 0x7e, 0xe0, 0x9f, + 0xd2, 0xec, 0x57, 0xca, 0x6b, 0xcf, 0xdc, 0x13, + 0xfa, 0x5d, 0x8a, 0xf9, 0x4d, 0x79, 0xfb, 0x82, + 0x7f, 0x4b, 0xb1, 0x5f, 0x29, 0xaf, 0x3f, 0x70, + 0x4f, 0xe9, 0x76, 0x2b, 0xe5, 0x35, 0x10, 0x5c, + 0x43, 0xc0, 0xea, 0x1f, 0xba, 0x65, 0xc5, 0xb8, + 0xd9, 0x11, 0x8f, 0xbf, 0x30, 0x04, 0x45, 0xf9, + 0x23, 0x4d, 0xc0, 0x83, 0xa2, 0xd6, 0x42, 0xc3, + 0xd5, 0x6b, 0x35, 0x76, 0x02, 0x40, 0x18, 0xd5, + 0xaf, 0xf7, 0xa5, 0x3a, 0xd0, 0x45, 0x25, 0xd9, + 0xaa, 0x8b, 0x58, 0x5c, 0xe4, 0x22, 0x4c, 0x6b, + 0x24, 0xf6, 0x08, 0xe6, 0x19, 0x6f, 0xe0, 0xc5, + 0xfa, 0xd4, 0xeb, 0x0d, 0xf8, 0xdd, 0x7f, 0xb2, + 0x5c, 0xd0, 0x7b, 0xd1, 0xa3, 0xf7, 0xa7, 0x56, + 0x7f, 0x19, 0xe4, 0x7f, 0x69, 0x2d, 0x7f, 0xd2, + 0x87, 0xff, 0x00, 0x8d, 0xac, 0xae, 0x2a, 0xdd, + 0xc4, 0xe3, 0x85, 0x1d, 0x9f, 0x2b, 0x52, 0xfd, + 0x99, 0x91, 0xad, 0x56, 0xe2, 0xdc, 0xba, 0x31, + 0x16, 0x64, 0x46, 0x64, 0x6b, 0xd9, 0x1b, 0x90, + 0x96, 0xb6, 0x7b, 0xab, 0xed, 0x0d, 0x9f, 0x16, + 0x0f, 0x5b, 0x2f, 0x09, 0x16, 0xd7, 0x3d, 0xeb, + 0xb3, 0x4f, 0x29, 0x89, 0xb1, 0x5d, 0xc1, 0xbf, + 0x73, 0x16, 0x71, 0x7a, 0x0b, 0x94, 0xbc, 0xa3, + 0xd4, 0x05, 0x9e, 0xdb, 0x4c, 0x84, 0x6b, 0xd1, + 0xcb, 0x3f, 0x1c, 0xc6, 0x7c, 0xff, 0x00, 0x5d, + 0xfc, 0x35, 0x62, 0x7d, 0xfb, 0x98, 0xbf, 0x9f, + 0x6b, 0xd1, 0xbb, 0x1f, 0x1c, 0xc5, 0xfc, 0xff, + 0x00, 0x5b, 0x7d, 0x6d, 0x58, 0xdb, 0xef, 0x76, + 0xbc, 0x5e, 0xdf, 0xb7, 0x6b, 0xd1, 0xbb, 0x1d, + 0xde, 0x4f, 0xdf, 0x98, 0xbf, 0x9f, 0x6b, 0xd1, + 0xa7, 0xfd, 0xff, 0x00, 0xb6, 0xf1, 0x7f, 0x3e, + 0xd7, 0x7f, 0x0d, 0x58, 0x9f, 0x7e, 0xe6, 0x2f, + 0xe7, 0xda, 0xf4, 0x6e, 0xc7, 0xc7, 0x31, 0x7f, + 0x3f, 0xd6, 0xff, 0x00, 0x5b, 0x76, 0x37, 0xfb, + 0xfd, 0xb3, 0x17, 0xf3, 0xfd, 0x7a, 0x37, 0x67, + 0xe3, 0x98, 0xbf, 0x9f, 0xeb, 0x6f, 0xad, 0xab, + 0x1b, 0x7d, 0xee, 0xd7, 0x8b, 0xf9, 0xf6, 0xa8, + 0x64, 0x63, 0x85, 0xec, 0x3a, 0x68, 0xdc, 0xad, + 0x6f, 0xa7, 0x37, 0xf1, 0x61, 0xd5, 0xec, 0xce, + 0x07, 0x74, 0xa5, 0x9d, 0xb0, 0xf9, 0x20, 0xf9, + 0x39, 0x79, 0xb9, 0x4b, 0x97, 0x7d, 0xf9, 0x67, + 0xc9, 0xac, 0x9e, 0x5e, 0x78, 0x51, 0xf5, 0x8b, + 0x25, 0x76, 0xcd, 0xc9, 0x44, 0x64, 0x31, 0x6d, + 0xe8, 0xf6, 0x86, 0x93, 0x7a, 0x5d, 0x5e, 0xd6, + 0xb9, 0x64, 0x07, 0x37, 0x2f, 0x37, 0x4c, 0x39, + 0xb6, 0xdf, 0x96, 0x3c, 0x9a, 0xf4, 0x6a, 0xc7, + 0xc6, 0xf1, 0x7f, 0x3e, 0xd7, 0xa3, 0x76, 0x3e, + 0x39, 0x8b, 0xf9, 0xf6, 0xb7, 0xfa, 0xdb, 0xb1, + 0xf1, 0xcc, 0x5f, 0xcf, 0xf5, 0xe8, 0xd3, 0xfe, + 0x37, 0x8b, 0xf9, 0xf6, 0xb6, 0xfa, 0xda, 0x7e, + 0xdf, 0x7b, 0xb5, 0xe2, 0xfe, 0x7d, 0xaf, 0x47, + 0x2c, 0xfc, 0x73, 0x17, 0xf3, 0xfd, 0x7a, 0x39, + 0x67, 0xe3, 0x98, 0xcf, 0x9f, 0xea, 0xbf, 0x10, + 0xf1, 0x40, 0xaa, 0xa3, 0x29, 0xf3, 0x3b, 0x15, + 0x88, 0x0b, 0x28, 0xb5, 0x66, 0xcd, 0xd8, 0xf1, + 0x53, 0x62, 0xc1, 0xd4, 0x63, 0xeb, 0xa6, 0xa5, + 0x62, 0x99, 0x6e, 0xdd, 0x69, 0x69, 0xb5, 0x60, + 0x12, 0x31, 0xb1, 0x01, 0x6a, 0xa7, 0xe1, 0x28, + 0xfd, 0x68, 0xeb, 0x89, 0xbf, 0xd2, 0x1c, 0xdf, + 0xf2, 0x9d, 0xaf, 0xdd, 0x99, 0x6f, 0xd3, 0xe9, + 0x63, 0x72, 0x8c, 0x8b, 0x93, 0xee, 0x71, 0xc5, + 0x14, 0x5d, 0x01, 0x7c, 0xe7, 0xdd, 0x0c, 0x56, + 0x64, 0x89, 0x44, 0xa6, 0x0e, 0xcf, 0x37, 0x2f, + 0x65, 0x53, 0x6c, 0x74, 0xd6, 0x58, 0x5a, 0x0d, + 0xb8, 0xe6, 0xd8, 0xb5, 0xc3, 0x7c, 0xeb, 0xce, + 0x2c, 0x25, 0xf5, 0x2e, 0x59, 0xae, 0xdb, 0x53, + 0x16, 0x6e, 0x31, 0xdd, 0x3b, 0x61, 0x46, 0xb2, + 0x97, 0xe0, 0xf7, 0xd8, 0xb2, 0xa5, 0x5a, 0x5b, + 0x2b, 0x8c, 0x9a, 0x61, 0x7b, 0x73, 0x50, 0xc4, + 0x8f, 0x68, 0x72, 0xea, 0x67, 0x31, 0x55, 0x5d, + 0xdb, 0xab, 0x8a, 0x65, 0xec, 0x8b, 0x55, 0xc6, + 0xc1, 0xc2, 0x26, 0x4a, 0x26, 0x9b, 0xcf, 0x98, + 0xea, 0xf3, 0xef, 0xd5, 0xa8, 0x6b, 0x22, 0xdf, + 0x9b, 0xbf, 0x8d, 0x37, 0x58, 0x7b, 0x55, 0x1b, + 0x92, 0xaf, 0x10, 0x7d, 0xaa, 0x63, 0x3d, 0x8f, + 0x08, 0x95, 0xf7, 0x78, 0x93, 0x01, 0x32, 0x31, + 0x23, 0xb7, 0x8b, 0x32, 0x3e, 0x49, 0xd5, 0x65, + 0x1e, 0x2d, 0xd5, 0x5d, 0x80, 0xf0, 0x63, 0xca, + 0xf4, 0xd2, 0x62, 0x97, 0x7c, 0x33, 0xaa, 0x96, + 0x5f, 0x57, 0x6a, 0x95, 0xc0, 0x58, 0x3a, 0x16, + 0xfb, 0x1a, 0xf6, 0xe7, 0x3e, 0x9c, 0x13, 0x60, + 0x76, 0x8d, 0xe2, 0x38, 0xb1, 0xf7, 0xbb, 0x13, + 0x38, 0x79, 0x51, 0x7a, 0x9a, 0x13, 0x5e, 0xc6, + 0x2e, 0xe4, 0xd6, 0xbd, 0x60, 0x0b, 0xc1, 0x0a, + 0xec, 0xb8, 0xf6, 0xba, 0xde, 0x31, 0xc3, 0x60, + 0x21, 0xb1, 0x36, 0xd7, 0x4e, 0x05, 0x69, 0x6a, + 0xca, 0x66, 0x4a, 0x12, 0xcc, 0x53, 0x09, 0xfe, + 0xd9, 0x6b, 0x2b, 0x9d, 0xab, 0x61, 0x9d, 0x35, + 0x41, 0xba, 0xba, 0xaa, 0xe2, 0x3a, 0x69, 0x33, + 0x80, 0xe6, 0x90, 0x0e, 0xbb, 0xb9, 0x23, 0x7f, + 0x17, 0xa8, 0x7b, 0x79, 0x7f, 0xb4, 0x70, 0xa7, + 0xf9, 0x5c, 0x43, 0xfc, 0xb4, 0xff, 0x00, 0xa9, + 0xc1, 0x9f, 0xe6, 0x38, 0x83, 0xf6, 0xfa, 0x9f, + 0xb8, 0xa7, 0x49, 0xcd, 0xba, 0x59, 0x1c, 0x8d, + 0x9b, 0x08, 0x08, 0xaa, 0x60, 0xb4, 0xe3, 0x14, + 0xa4, 0x41, 0xaa, 0xed, 0xc0, 0x75, 0x36, 0x45, + 0xe5, 0x31, 0x92, 0x64, 0xc5, 0x57, 0xb7, 0x50, + 0x91, 0x5a, 0xbb, 0x58, 0x6c, 0x92, 0x30, 0x1d, + 0x15, 0xbb, 0x15, 0xa0, 0x2a, 0x88, 0xd3, 0x28, + 0xb1, 0xda, 0x2a, 0x9a, 0x9a, 0x39, 0x05, 0x9b, + 0x69, 0x95, 0x72, 0x07, 0x97, 0x6a, 0xeb, 0x2d, + 0x6c, 0x39, 0xec, 0xdd, 0x59, 0x4f, 0x4d, 0x9d, + 0xa2, 0x15, 0x20, 0x51, 0x19, 0xcb, 0xce, 0xb6, + 0x20, 0xdc, 0x65, 0x0e, 0xd3, 0x56, 0x9a, 0xe7, + 0x77, 0xbc, 0xfb, 0x65, 0x1a, 0xe6, 0xd7, 0x47, + 0x21, 0x42, 0xea, 0xac, 0x6d, 0xc4, 0x77, 0x92, + 0xd8, 0xe7, 0x14, 0x74, 0xa6, 0x45, 0x2f, 0xd5, + 0xd2, 0xa0, 0xdb, 0xaf, 0xbd, 0x8d, 0xc6, 0xe3, + 0xef, 0x58, 0xb3, 0xb8, 0xf6, 0x07, 0xd9, 0xbb, + 0x6e, 0xb5, 0x56, 0x62, 0x51, 0x4c, 0xa9, 0xaa, + 0xd8, 0x58, 0x49, 0xdb, 0x05, 0xaa, 0xc7, 0x6a, + 0xb0, 0x37, 0x5b, 0x5a, 0xc7, 0x4a, 0xb0, 0x2d, + 0x8a, 0x38, 0xca, 0xc5, 0x8a, 0xf2, 0x36, 0x6b, + 0x63, 0xca, 0xd5, 0x2e, 0x8d, 0xfc, 0x61, 0xd6, + 0x9b, 0x08, 0xc8, 0xd2, 0xab, 0x75, 0x57, 0xac, + 0x8b, 0xdb, 0x5a, 0xb7, 0x63, 0x45, 0x86, 0x32, + 0xda, 0x6c, 0x58, 0xa6, 0xea, 0x93, 0x00, 0xcb, + 0x3d, 0x35, 0xef, 0x04, 0xea, 0x76, 0xd5, 0x29, + 0xb3, 0x5c, 0xf9, 0x1a, 0xb9, 0x90, 0x2d, 0xa7, + 0x68, 0x98, 0x91, 0x35, 0x91, 0xad, 0x80, 0x63, + 0x30, 0x6b, 0x6a, 0x8c, 0xd4, 0xd5, 0x90, 0xb1, + 0x46, 0x6b, 0x21, 0x29, 0xbb, 0x98, 0x2b, 0x81, + 0x36, 0x91, 0x76, 0x85, 0x75, 0x52, 0x5c, 0xf3, + 0x4a, 0xd3, 0x6a, 0x6e, 0x09, 0xbe, 0xdf, 0x88, + 0x5c, 0x92, 0x45, 0x5b, 0x6a, 0xea, 0x83, 0x16, + 0xf2, 0x89, 0x39, 0x8b, 0xe9, 0xb1, 0x12, 0x77, + 0x2f, 0x62, 0xdd, 0x71, 0x91, 0x8e, 0xbf, 0x47, + 0x1e, 0x76, 0xac, 0x9a, 0xfb, 0x3e, 0x52, 0x6d, + 0xd7, 0xb2, 0xc2, 0x7d, 0x2a, 0xdd, 0x92, 0xad, + 0x8a, 0x5d, 0x26, 0x55, 0x39, 0x8a, 0xcf, 0x65, + 0xc6, 0x15, 0x76, 0x03, 0x0d, 0x8a, 0x30, 0x20, + 0x2c, 0x7e, 0x52, 0x88, 0x13, 0x9a, 0xf9, 0xca, + 0xf6, 0x95, 0x15, 0xaa, 0x41, 0x3c, 0x98, 0xfe, + 0x99, 0xfe, 0xf1, 0xa8, 0xc3, 0x4d, 0xcb, 0x64, + 0xb4, 0x49, 0xb6, 0xc8, 0x55, 0x8b, 0x66, 0xb0, + 0x88, 0x61, 0x0a, 0x83, 0xdd, 0x54, 0xc9, 0x18, + 0x4d, 0x63, 0xb1, 0x66, 0x13, 0x35, 0x1d, 0x91, + 0xc7, 0x59, 0x74, 0x28, 0xb1, 0xd8, 0xfb, 0x88, + 0xb0, 0x0b, 0x44, 0xae, 0xc1, 0x0d, 0x9e, 0xd6, + 0x4e, 0xe4, 0xe8, 0x4f, 0x63, 0x49, 0x21, 0x56, + 0x4e, 0x59, 0x30, 0xd6, 0xe4, 0x1b, 0x69, 0xce, + 0x4b, 0x23, 0x6a, 0x58, 0x81, 0x54, 0xae, 0x22, + 0xd6, 0x5d, 0x95, 0xad, 0xdc, 0x04, 0xba, 0x0d, + 0x67, 0x24, 0x9e, 0x8d, 0x39, 0x02, 0xe9, 0xca, + 0xcf, 0xad, 0x62, 0xb4, 0x73, 0xf8, 0xdb, 0x4e, + 0x3a, 0xf5, 0xfa, 0xd9, 0x4b, 0x2d, 0xbb, 0x6a, + 0xfa, 0x8f, 0xb1, 0xe4, 0xaa, 0x53, 0x04, 0xae, + 0x9f, 0x66, 0xda, 0x45, 0x2f, 0xc3, 0xde, 0x26, + 0xb2, 0x7a, 0xe5, 0x33, 0xbd, 0x84, 0x8c, 0xf2, + 0xc0, 0xf8, 0xbb, 0xc9, 0x6a, 0xdd, 0x8c, 0x83, + 0x2c, 0xdc, 0xaa, 0x37, 0x13, 0x57, 0x18, 0xaa, + 0x6c, 0x55, 0x17, 0x5f, 0x5d, 0x8a, 0x49, 0xc9, + 0x0d, 0xb6, 0x58, 0x75, 0x7c, 0x82, 0xea, 0x82, + 0xa9, 0xda, 0xa9, 0xd4, 0x50, 0xd6, 0xb2, 0x47, + 0x61, 0xd2, 0x91, 0x31, 0x10, 0x27, 0x68, 0xcf, + 0x03, 0xcd, 0x72, 0x9e, 0xd5, 0xb6, 0xed, 0x2d, + 0xad, 0x51, 0xea, 0xb5, 0x65, 0x6c, 0x64, 0x62, + 0x77, 0xb4, 0x75, 0x03, 0x23, 0x92, 0x0e, 0x8b, + 0xa1, 0x6a, 0xc6, 0x8b, 0x59, 0x70, 0x17, 0xd6, + 0x4d, 0x60, 0xe6, 0x94, 0xaf, 0xea, 0x97, 0xf9, + 0x33, 0xff, 0x00, 0x76, 0xaf, 0xff, 0x00, 0x96, + 0xbf, 0xd4, 0x2b, 0x4d, 0xfc, 0x18, 0xbf, 0x5a, + 0x9d, 0x61, 0xbf, 0x1b, 0xaf, 0xf6, 0x4b, 0x9a, + 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xea, 0xd7, 0xe3, + 0x4c, 0x8f, 0xed, 0x05, 0xaf, 0xfa, 0x60, 0xff, + 0x00, 0xb8, 0xf5, 0xc4, 0xdf, 0x8a, 0x17, 0xfc, + 0xaf, 0x8a, 0xd7, 0xb9, 0x1f, 0xc9, 0x1a, 0xf7, + 0x23, 0xf9, 0x23, 0x5e, 0xe4, 0x7f, 0x24, 0x6b, + 0xdc, 0x8f, 0xe4, 0x8d, 0x7b, 0x91, 0xfc, 0x91, + 0xaf, 0x72, 0x3f, 0x92, 0x35, 0xbf, 0x68, 0x29, + 0xc9, 0x78, 0x0a, 0x78, 0x8b, 0xb3, 0x45, 0x50, + 0xec, 0xbe, 0x0f, 0x13, 0xf1, 0x97, 0x36, 0xba, + 0xdd, 0x4e, 0xd5, 0x15, 0xe0, 0xac, 0xed, 0xd9, + 0xba, 0x3f, 0xf2, 0x5d, 0x5e, 0x7d, 0xe6, 0x0e, + 0x4e, 0xab, 0x06, 0x16, 0x0a, 0x63, 0x39, 0x90, + 0x51, 0xd3, 0x5b, 0xf6, 0xe8, 0x99, 0xee, 0x3e, + 0x28, 0x37, 0x98, 0x7a, 0x44, 0x5b, 0x43, 0x37, + 0x8e, 0x59, 0x9d, 0xf4, 0xce, 0x23, 0x16, 0x22, + 0x50, 0xac, 0xa7, 0x83, 0x0e, 0xb7, 0x24, 0xf5, + 0xe2, 0x7a, 0x0a, 0x77, 0x68, 0xdf, 0x6e, 0x4e, + 0x96, 0xee, 0x05, 0x7d, 0xfe, 0x79, 0x8f, 0xf0, + 0xa3, 0x58, 0x76, 0x9b, 0xaa, 0x00, 0xe5, 0x31, + 0xd6, 0xf2, 0xae, 0x23, 0x83, 0x80, 0xc5, 0xd2, + 0xa6, 0x2b, 0x6b, 0x1b, 0x72, 0x44, 0x0e, 0x66, + 0x65, 0x0e, 0x49, 0x82, 0xd2, 0x06, 0xc3, 0x37, + 0x29, 0x02, 0x32, 0xd3, 0x88, 0xd2, 0x2f, 0xd4, + 0xb2, 0xab, 0xb4, 0xde, 0xd6, 0xd6, 0x93, 0xe8, + 0xcd, 0x77, 0xa2, 0xd2, 0x62, 0x0e, 0x54, 0xfa, + 0xc7, 0x27, 0x23, 0x0c, 0x49, 0x83, 0x90, 0xe5, + 0xb1, 0x8b, 0x60, 0xf3, 0x84, 0xc8, 0x35, 0x46, + 0xb8, 0xc7, 0x52, 0xf0, 0x8a, 0x47, 0x25, 0x95, + 0xa3, 0x56, 0xe5, 0x3a, 0xe5, 0x49, 0x9d, 0x9c, + 0x8e, 0xea, 0x65, 0xb5, 0x6a, 0x9d, 0xb8, 0x32, + 0x90, 0x6b, 0x4a, 0x21, 0x30, 0x5d, 0x9e, 0x57, + 0x0d, 0x31, 0xe6, 0x98, 0x0d, 0xcc, 0x67, 0x14, + 0xb7, 0xd5, 0x89, 0xf0, 0x5d, 0x6c, 0xa8, 0x5a, + 0x35, 0x9c, 0x25, 0x8b, 0xb9, 0x5e, 0xab, 0x2a, + 0xa4, 0x63, 0x6e, 0x6e, 0xab, 0xac, 0xdc, 0x4d, + 0x11, 0xdf, 0xbb, 0xaf, 0x33, 0xe5, 0x8f, 0x28, + 0x39, 0x76, 0x2b, 0x55, 0x26, 0x86, 0x4c, 0xd0, + 0x97, 0xa9, 0x9c, 0xcd, 0xf0, 0x6f, 0x60, 0x02, + 0x88, 0x91, 0x8d, 0xbd, 0xbe, 0xc5, 0xf0, 0xac, + 0xbf, 0xbc, 0xd0, 0x38, 0x9f, 0xbd, 0xac, 0xb6, + 0x6f, 0x99, 0x2a, 0x46, 0x29, 0x95, 0x14, 0x4a, + 0x30, 0x9e, 0xab, 0xce, 0xd3, 0xc1, 0x33, 0x0b, + 0xee, 0xda, 0x3a, 0x1d, 0x40, 0x26, 0xf3, 0x7d, + 0xc2, 0x88, 0x8e, 0xf9, 0xd7, 0xb9, 0x1f, 0xc9, + 0x1a, 0xf7, 0x23, 0xf9, 0x23, 0x5e, 0xe4, 0x7f, + 0x24, 0x6b, 0xdc, 0x8f, 0xe4, 0x8d, 0x7b, 0x91, + 0xfc, 0x91, 0xaf, 0x72, 0x3f, 0x92, 0x35, 0xc2, + 0xbb, 0x7f, 0xfa, 0x36, 0x57, 0xf9, 0x73, 0x21, + 0xf5, 0x2a, 0x7e, 0x12, 0x8f, 0xd6, 0x8e, 0xb8, + 0x96, 0x61, 0x2d, 0x98, 0x9e, 0x20, 0xcd, 0x4c, + 0x4c, 0x2c, 0xf6, 0x98, 0x9c, 0x95, 0x9d, 0xa6, + 0x3b, 0xb5, 0xf6, 0x07, 0x7e, 0x6c, 0xff, 0x00, + 0xd9, 0xaf, 0xb0, 0x3b, 0xf3, 0x67, 0xfe, 0xcd, + 0x7d, 0x81, 0xdf, 0x9b, 0x3f, 0xf6, 0x6b, 0xec, + 0x0e, 0xfc, 0xd9, 0xff, 0x00, 0xb3, 0x5f, 0x60, + 0x77, 0xe6, 0xcf, 0xfd, 0x9a, 0xfb, 0x03, 0xbf, + 0x36, 0x7f, 0xec, 0xd3, 0x0c, 0xa8, 0xb2, 0xd5, + 0x7b, 0x15, 0x9f, 0x4e, 0xdd, 0x69, 0xea, 0xa7, + 0xad, 0x5a, 0xc0, 0xec, 0x62, 0x0e, 0x10, 0x39, + 0x53, 0x40, 0xa0, 0x1a, 0x96, 0x74, 0xd8, 0x20, + 0xd5, 0x84, 0x9a, 0x98, 0x3b, 0x84, 0xa2, 0xbd, + 0x2a, 0xb6, 0xf1, 0xf4, 0x6b, 0x51, 0x2c, 0x70, + 0x57, 0x16, 0xb5, 0xcd, 0x75, 0x66, 0xbc, 0xad, + 0x58, 0xed, 0xb6, 0x05, 0x35, 0x82, 0xc9, 0x3e, + 0xc1, 0xc9, 0x9c, 0x45, 0x64, 0x26, 0x04, 0x54, + 0x10, 0x9f, 0x6b, 0xe6, 0x94, 0xdd, 0x22, 0xb8, + 0x76, 0xab, 0x95, 0x72, 0x4b, 0xd9, 0x0d, 0x63, + 0x17, 0x35, 0x39, 0x3b, 0x36, 0xc4, 0x70, 0x5d, + 0xc9, 0xe9, 0x84, 0x04, 0x79, 0x22, 0x06, 0x23, + 0x6d, 0xb5, 0x69, 0xc9, 0xe1, 0xf6, 0x28, 0xf2, + 0x96, 0x6b, 0xbb, 0x30, 0x13, 0x6d, 0x8c, 0x45, + 0x84, 0xae, 0xd8, 0x5e, 0xb3, 0x4b, 0x1e, 0xbe, + 0xc2, 0xb2, 0xc7, 0x55, 0xbb, 0x64, 0x22, 0x5b, + 0xd7, 0x6e, 0x51, 0x8b, 0x58, 0xad, 0x49, 0x60, + 0x08, 0x9f, 0x57, 0x3b, 0x90, 0x7d, 0x03, 0x7f, + 0x87, 0xd3, 0x7d, 0x36, 0x93, 0xe3, 0x84, 0x07, + 0x6b, 0x6c, 0x3d, 0x04, 0x27, 0x09, 0x9d, 0xfb, + 0x0b, 0xd7, 0x5d, 0x8b, 0x1e, 0x41, 0xea, 0x42, + 0x60, 0x3c, 0x48, 0x2d, 0xe3, 0x39, 0x90, 0x6e, + 0x2c, 0xd9, 0x57, 0x88, 0x15, 0x6d, 0x37, 0xb1, + 0xdd, 0x46, 0x08, 0xf2, 0xd8, 0xf1, 0xd4, 0x41, + 0x63, 0xb3, 0x97, 0xb7, 0x53, 0x7c, 0x05, 0x84, + 0x32, 0x51, 0xee, 0xc3, 0x6d, 0xa2, 0x0a, 0x75, + 0x4b, 0x15, 0xd8, 0xd9, 0x11, 0x4a, 0xed, 0xfb, + 0xb0, 0xfd, 0x99, 0xbb, 0x26, 0xfa, 0xa9, 0x2e, + 0x57, 0xd3, 0xe9, 0xf8, 0x90, 0xbe, 0xc5, 0x13, + 0x05, 0xce, 0x5c, 0xdd, 0x4d, 0xb9, 0x47, 0x97, + 0x72, 0xfb, 0x03, 0xbf, 0x36, 0x7f, 0xec, 0xd7, + 0xd8, 0x1d, 0xf9, 0xb3, 0xff, 0x00, 0x66, 0xbe, + 0xc0, 0xef, 0xcd, 0x9f, 0xfb, 0x35, 0xf6, 0x07, + 0x7e, 0x6c, 0xff, 0x00, 0xd9, 0xaf, 0xb0, 0x3b, + 0xf3, 0x67, 0xfe, 0xcd, 0x7d, 0x81, 0xdf, 0x9b, + 0x3f, 0xf6, 0x6b, 0xec, 0x0e, 0xfc, 0xd9, 0xff, + 0x00, 0xb3, 0x5c, 0x28, 0x24, 0x32, 0x33, 0xcd, + 0xc4, 0x1d, 0xc5, 0x13, 0x13, 0xe7, 0x97, 0xfd, + 0xc9, 0xfa, 0x9c, 0x19, 0xfe, 0x63, 0x88, 0x3f, + 0x6f, 0xa9, 0xfb, 0x8b, 0x69, 0x0b, 0x56, 0x29, + 0xe6, 0x2f, 0x93, 0x2b, 0xda, 0xb6, 0x34, 0xba, + 0xfd, 0x3c, 0x5f, 0x2c, 0x7e, 0xf3, 0xa8, 0xc1, + 0xb4, 0xa9, 0x54, 0xdd, 0x3d, 0xfb, 0x73, 0x39, + 0x20, 0x89, 0x02, 0x35, 0x86, 0x7a, 0x46, 0xf8, + 0x6e, 0x3b, 0x09, 0x5f, 0xb6, 0x6f, 0x85, 0xe9, + 0x95, 0x4b, 0x0e, 0x89, 0x88, 0xb8, 0xcb, 0xb2, + 0xd7, 0x65, 0x45, 0xaa, 0xeb, 0x98, 0x56, 0x55, + 0x77, 0x1a, 0x83, 0x1d, 0x01, 0x05, 0x3d, 0x20, + 0x74, 0xb6, 0x79, 0x9f, 0xe2, 0xe7, 0x54, 0xde, + 0x7e, 0x6c, 0x8e, 0x1c, 0xa8, 0xd7, 0xe4, 0x18, + 0x98, 0xeb, 0xce, 0x4b, 0x1d, 0x6b, 0xdb, 0x26, + 0x4a, 0x39, 0x57, 0xd2, 0xaa, 0xdf, 0x1a, 0x20, + 0xa7, 0x9b, 0x96, 0x39, 0x76, 0x99, 0x98, 0xc3, + 0x2f, 0x18, 0xeb, 0x31, 0x14, 0x1f, 0x4b, 0x29, + 0x91, 0xac, 0xda, 0x7c, 0x8c, 0xcb, 0x65, 0x52, + 0xd8, 0x32, 0xea, 0x5a, 0x8b, 0x46, 0x2b, 0xab, + 0x55, 0x5b, 0xa6, 0x82, 0xfa, 0x5b, 0x07, 0xb6, + 0x38, 0xc6, 0x5c, 0xf3, 0x2d, 0x67, 0xeb, 0x55, + 0xb1, 0x93, 0xb0, 0xdc, 0xbd, 0x56, 0xad, 0x7d, + 0x55, 0x2d, 0x35, 0x55, 0x27, 0x94, 0xc6, 0xdb, + 0x00, 0x94, 0x43, 0x58, 0x50, 0xce, 0x85, 0x57, + 0xc5, 0x8b, 0x10, 0xc2, 0x16, 0x7b, 0x42, 0x85, + 0x31, 0x10, 0x4c, 0xd3, 0xb2, 0xe9, 0x64, 0xc2, + 0xff, 0x00, 0xb1, 0x34, 0x05, 0x2d, 0x0e, 0x56, + 0xb0, 0xeb, 0xe1, 0xd0, 0x9b, 0x0c, 0x1d, 0x8c, + 0xa3, 0x91, 0x6d, 0xab, 0xb4, 0xfd, 0xde, 0x57, + 0x24, 0xa7, 0x6e, 0x6e, 0x58, 0xca, 0xe3, 0xcf, + 0xa9, 0x0e, 0xbb, 0x6f, 0x10, 0xe5, 0x48, 0x84, + 0x10, 0x42, 0xe9, 0x76, 0xee, 0xbf, 0x3c, 0xf3, + 0x44, 0xc1, 0x7e, 0xf9, 0x5f, 0x4c, 0x62, 0x27, + 0x9b, 0xc6, 0xde, 0x47, 0x6e, 0xfa, 0x28, 0xc1, + 0xb8, 0xbb, 0x0e, 0x37, 0x97, 0xb3, 0xd0, 0xbd, + 0x8b, 0x43, 0x62, 0xc5, 0x96, 0xaa, 0x22, 0xf6, + 0x4b, 0x21, 0xda, 0x1b, 0x6e, 0xb5, 0x9b, 0x4e, + 0x64, 0x6c, 0x0b, 0x24, 0x4a, 0x90, 0x81, 0x4a, + 0x91, 0x01, 0x0a, 0xef, 0xc4, 0x58, 0xb0, 0x4f, + 0x1b, 0xf8, 0x97, 0xe5, 0x6c, 0x4d, 0x3a, 0xb4, + 0x2b, 0x22, 0x95, 0x83, 0xb7, 0xcb, 0x35, 0x81, + 0x52, 0x86, 0x21, 0x55, 0x43, 0x9c, 0x7f, 0x7c, + 0x40, 0x54, 0xe5, 0x85, 0xfd, 0x8c, 0x48, 0xb5, + 0x59, 0x48, 0x9b, 0x00, 0xfa, 0x85, 0x4f, 0x60, + 0x62, 0x46, 0x01, 0xb0, 0x38, 0x3c, 0x46, 0x3a, + 0xc7, 0xb6, 0x43, 0xa7, 0x93, 0xa5, 0x63, 0x1c, + 0xc9, 0x08, 0xe4, 0x2e, 0xaa, 0xcc, 0x4b, 0xda, + 0xe7, 0x71, 0xd6, 0x1d, 0x18, 0xd0, 0x41, 0x3e, + 0xa5, 0xc7, 0xe4, 0xad, 0x95, 0xcc, 0x75, 0x0b, + 0x3b, 0x5c, 0x26, 0xac, 0x13, 0x15, 0x5b, 0x69, + 0x36, 0x18, 0xa8, 0x1a, 0xb5, 0xd7, 0xcc, 0xd4, + 0xf4, 0x19, 0xd4, 0x61, 0xf9, 0x79, 0x00, 0xb4, + 0x28, 0xaf, 0x6e, 0xf5, 0x2a, 0xc9, 0xca, 0x65, + 0x6d, 0xa4, 0x27, 0x1c, 0x0d, 0x2e, 0xcb, 0x91, + 0x2a, 0xad, 0x05, 0x0e, 0xd7, 0x44, 0x44, 0xd1, + 0x2b, 0x62, 0xa3, 0x9a, 0x76, 0x28, 0x85, 0x96, + 0xfd, 0xf3, 0x11, 0x72, 0xb5, 0xb8, 0xb1, 0x45, + 0x31, 0x76, 0xbd, 0x9c, 0x43, 0x56, 0xb1, 0xb5, + 0x35, 0xeb, 0xd7, 0xa0, 0x9c, 0x5f, 0x64, 0xb4, + 0xae, 0xa2, 0x79, 0xe5, 0xb5, 0x2a, 0x53, 0x6c, + 0xb9, 0x45, 0xe2, 0xd9, 0x53, 0x36, 0x5f, 0x4d, + 0xbe, 0x28, 0xf6, 0x37, 0x5f, 0xa5, 0x52, 0xb1, + 0xd0, 0x89, 0x5f, 0x63, 0xa7, 0x69, 0x39, 0xb5, + 0x56, 0x17, 0xf6, 0xc7, 0x5f, 0xa6, 0xd2, 0xe5, + 0x46, 0x42, 0xc3, 0x1c, 0x5d, 0x8e, 0xcc, 0x39, + 0xdd, 0x8a, 0xa9, 0x42, 0x46, 0x7a, 0x8a, 0x17, + 0x69, 0x87, 0x03, 0xc9, 0x06, 0xc3, 0x38, 0x0d, + 0xf7, 0xe5, 0x82, 0x29, 0x98, 0x1d, 0xfe, 0xef, + 0x2c, 0x4e, 0xdb, 0xfd, 0xdf, 0xaa, 0x5f, 0xe4, + 0xcf, 0xfd, 0xda, 0xbf, 0xfe, 0x5a, 0xff, 0x00, + 0x50, 0xad, 0x37, 0xf0, 0x62, 0xfd, 0x6a, 0x75, + 0x86, 0xfc, 0x6e, 0xbf, 0xd9, 0x2e, 0x68, 0x3d, + 0xe8, 0xd1, 0xfb, 0xd3, 0xab, 0x5f, 0x8d, 0x32, + 0x3f, 0xb4, 0x16, 0xbf, 0xe9, 0x83, 0xfe, 0xe2, + 0xd7, 0x13, 0x7e, 0x28, 0x5f, 0xf2, 0xbe, 0x2b, + 0xf7, 0x7c, 0x9c, 0xab, 0x8e, 0x1a, 0xfa, 0xce, + 0x62, 0x87, 0x29, 0xcc, 0x3d, 0xa7, 0xc2, 0x90, + 0xa3, 0xb1, 0xe0, 0xf9, 0xbf, 0xbf, 0x69, 0x86, + 0x96, 0x73, 0xf7, 0xb7, 0xd6, 0xf7, 0x54, 0x69, + 0x95, 0x4d, 0xad, 0x45, 0x2f, 0x1a, 0x6d, 0x95, + 0x7c, 0x00, 0x46, 0x4e, 0x1b, 0x49, 0x54, 0x79, + 0x6f, 0xb5, 0xaa, 0x93, 0xc8, 0x9a, 0xc9, 0xc6, + 0xea, 0xb9, 0x01, 0x8f, 0x1b, 0xb0, 0xd1, 0xeb, + 0xed, 0x89, 0x18, 0x6b, 0x65, 0x50, 0xb8, 0xe7, + 0x8f, 0x1b, 0x70, 0x4e, 0x0d, 0xad, 0x05, 0x8e, + 0x6f, 0x23, 0xc4, 0x15, 0x02, 0x4c, 0x84, 0x45, + 0x76, 0xd5, 0x8e, 0xc2, 0xdf, 0xa0, 0xc3, 0x92, + 0x9d, 0x86, 0x0a, 0xcd, 0x38, 0x47, 0x37, 0xff, + 0x00, 0x16, 0x62, 0x3b, 0xe7, 0x49, 0xa8, 0x0d, + 0x4a, 0x8b, 0x31, 0x47, 0x8a, 0xa8, 0x63, 0x89, + 0xac, 0x5a, 0x15, 0xcf, 0x5f, 0x33, 0x8d, 0xb3, + 0x8f, 0xac, 0xc3, 0x64, 0x80, 0x23, 0xb5, 0xa2, + 0x84, 0x55, 0x49, 0x30, 0x80, 0x3a, 0xec, 0x48, + 0x94, 0xec, 0x5b, 0xc2, 0x59, 0x7f, 0xa9, 0x57, + 0x24, 0xf7, 0x32, 0x07, 0x18, 0xe5, 0x72, 0x59, + 0x5d, 0x25, 0x8c, 0x47, 0x6b, 0xb2, 0x05, 0x30, + 0xda, 0xf0, 0xe7, 0xf3, 0x2e, 0xb2, 0xda, 0xb1, + 0x97, 0x82, 0x98, 0xf0, 0xf6, 0xae, 0x42, 0x3c, + 0x13, 0x2a, 0x63, 0xf1, 0x85, 0x7d, 0x3c, 0x31, + 0x87, 0xe8, 0xe5, 0x5b, 0xe1, 0x16, 0xdd, 0xac, + 0xc3, 0xa4, 0x61, 0xce, 0xa4, 0xf8, 0x4a, 0x31, + 0x3d, 0x5a, 0xf0, 0x53, 0xd0, 0x36, 0xe3, 0x18, + 0x6a, 0x67, 0x2b, 0x77, 0x96, 0x80, 0x18, 0xe0, + 0xf2, 0xcb, 0x6f, 0xf6, 0x42, 0x19, 0x4f, 0x0a, + 0xd8, 0xe6, 0x82, 0x67, 0x43, 0x01, 0x93, 0xb5, + 0x96, 0x5c, 0xcc, 0x4e, 0xf3, 0xcb, 0x21, 0x67, + 0x16, 0x31, 0x33, 0xe5, 0xe8, 0x6d, 0xe4, 0xee, + 0xd5, 0xea, 0xf4, 0x1b, 0x1d, 0x2c, 0x3f, 0x08, + 0xdb, 0xbc, 0xae, 0x53, 0xdf, 0xf7, 0xde, 0x53, + 0x3b, 0x53, 0x39, 0x22, 0x3e, 0x4d, 0xc8, 0x6b, + 0xbe, 0xa2, 0xf6, 0x89, 0x99, 0xd9, 0x51, 0x13, + 0x3b, 0xc4, 0xeb, 0x89, 0xb1, 0xb5, 0x18, 0xb2, + 0x49, 0x54, 0xa9, 0x97, 0xf1, 0x24, 0x76, 0xe6, + 0xcc, 0x71, 0x15, 0x27, 0xd5, 0x54, 0x4c, 0x77, + 0x17, 0x47, 0x12, 0x9a, 0x04, 0x51, 0x1e, 0xe1, + 0x8d, 0x70, 0xf7, 0x6d, 0x3f, 0xbb, 0xe1, 0x5f, + 0xc1, 0xb2, 0xbf, 0xcb, 0x99, 0x0f, 0xa9, 0x53, + 0xf0, 0x94, 0x7e, 0xb4, 0x75, 0xc4, 0x15, 0xd1, + 0x9f, 0xcb, 0x25, 0x08, 0xce, 0x65, 0xd0, 0x95, + 0x2e, 0xf3, 0xc5, 0x6a, 0x4a, 0xb2, 0x16, 0x16, + 0xa5, 0x80, 0xc1, 0xec, 0x20, 0x00, 0x30, 0x22, + 0x31, 0xdd, 0x03, 0x11, 0x11, 0xaf, 0x48, 0xf3, + 0x3e, 0xb0, 0xb1, 0xfc, 0xfd, 0x7a, 0x47, 0x99, + 0xf5, 0x85, 0x8f, 0xe7, 0xeb, 0xd2, 0x3c, 0xcf, + 0xac, 0x2c, 0x7f, 0x3f, 0x5e, 0x91, 0xe6, 0x7d, + 0x61, 0x63, 0xf9, 0xfa, 0xf4, 0x8f, 0x33, 0xeb, + 0x0b, 0x1f, 0xcf, 0xd5, 0x7a, 0x35, 0xf8, 0x8f, + 0x2f, 0xd6, 0xb2, 0xd1, 0x58, 0xc9, 0xe4, 0x6c, + 0x0a, 0xc3, 0x7f, 0x76, 0xd6, 0x97, 0x3f, 0x88, + 0xa5, 0x07, 0x33, 0x1a, 0x7f, 0xc1, 0x58, 0x91, + 0x7d, 0xcd, 0x65, 0x71, 0xea, 0xe2, 0x6c, 0xf5, + 0xc4, 0xe2, 0xec, 0x0a, 0x59, 0x6e, 0x2c, 0xda, + 0x01, 0xf1, 0xe0, 0x7a, 0x66, 0xc8, 0x86, 0x18, + 0xa7, 0xa8, 0x45, 0xca, 0x10, 0x47, 0xe3, 0x4c, + 0x77, 0x77, 0xf7, 0x69, 0x58, 0xc5, 0xe7, 0x33, + 0x91, 0x79, 0xaf, 0x8a, 0xf0, 0x87, 0x5f, 0xb2, + 0x82, 0x06, 0x4f, 0x97, 0xad, 0xd5, 0x31, 0xe8, + 0x8a, 0xe3, 0x72, 0x69, 0x33, 0x96, 0x16, 0x02, + 0x44, 0x5b, 0x44, 0x6a, 0xdb, 0xe8, 0x71, 0xb6, + 0x4f, 0x22, 0x58, 0xf8, 0x12, 0xba, 0xb0, 0xb1, + 0x7d, 0x1e, 0xd2, 0x46, 0x09, 0xed, 0x54, 0x89, + 0xa7, 0xfb, 0xee, 0xa8, 0x38, 0xc4, 0x0c, 0xcc, + 0x6a, 0xbc, 0x45, 0x8a, 0x6f, 0x66, 0xe9, 0x91, + 0xca, 0xb2, 0x0a, 0xfa, 0xf2, 0xc9, 0xb3, 0x23, + 0x89, 0x5a, 0x5b, 0x92, 0xa3, 0xda, 0xae, 0x2f, + 0xa6, 0x2c, 0x95, 0x83, 0x62, 0xad, 0x89, 0x6c, + 0x85, 0xb6, 0x55, 0x6b, 0x92, 0x0f, 0x0e, 0x45, + 0x6f, 0xcc, 0x46, 0x82, 0x78, 0x2c, 0xa7, 0x57, + 0xd3, 0xf5, 0xe7, 0x93, 0x66, 0x43, 0x14, 0x28, + 0x3c, 0x95, 0x2e, 0xd5, 0x71, 0x7d, 0x21, 0x69, + 0xad, 0x4c, 0xec, 0xd6, 0x09, 0xb2, 0x36, 0xce, + 0xab, 0x5c, 0x90, 0xb0, 0x1c, 0x89, 0xf7, 0x44, + 0xc4, 0x4b, 0x81, 0x64, 0x5a, 0xc8, 0x55, 0x67, + 0x17, 0xe4, 0x85, 0x78, 0xdb, 0xf7, 0xa9, 0xbe, + 0xcf, 0x6c, 0xbb, 0x31, 0x2b, 0xc6, 0x54, 0x2b, + 0x97, 0xec, 0xad, 0x50, 0x72, 0xc2, 0x84, 0xab, + 0xb3, 0x88, 0xab, 0xca, 0xc6, 0xda, 0x50, 0xf3, + 0x84, 0x41, 0x94, 0x29, 0xeb, 0xe3, 0x6c, 0xa9, + 0x63, 0x9d, 0x8f, 0xc8, 0x64, 0x06, 0xdc, 0x3e, + 0xdf, 0x5c, 0x63, 0x19, 0xb4, 0x5b, 0xac, 0xda, + 0x5d, 0xa7, 0x70, 0xb0, 0x32, 0x41, 0x2b, 0xf6, + 0xf9, 0x53, 0x16, 0xc0, 0x31, 0x6f, 0xba, 0x10, + 0x9c, 0x85, 0x2e, 0x33, 0xca, 0xd8, 0xa5, 0x15, + 0x32, 0xaf, 0x96, 0x1b, 0xee, 0x21, 0xc3, 0x63, + 0x10, 0x35, 0x9b, 0x62, 0xa3, 0x13, 0xd7, 0x6c, + 0x09, 0x31, 0x36, 0xeb, 0xb5, 0x0d, 0x17, 0x30, + 0x08, 0x4e, 0x60, 0xb9, 0x08, 0x24, 0x75, 0xe9, + 0x1e, 0x67, 0xd6, 0x16, 0x3f, 0x9f, 0xaf, 0x48, + 0xf3, 0x3e, 0xb0, 0xb1, 0xfc, 0xfd, 0x7a, 0x47, + 0x99, 0xf5, 0x85, 0x8f, 0xe7, 0xeb, 0xd2, 0x3c, + 0xcf, 0xac, 0x2c, 0x7f, 0x3f, 0x5e, 0x91, 0xe6, + 0x7d, 0x61, 0x63, 0xf9, 0xfa, 0xf4, 0x8f, 0x33, + 0xeb, 0x0b, 0x1f, 0xcf, 0xd7, 0x0b, 0xdc, 0xbf, + 0x65, 0xd7, 0x2d, 0x36, 0x73, 0xd0, 0xcb, 0x16, + 0x18, 0x4d, 0x71, 0xf4, 0xf2, 0xcd, 0x52, 0xf9, + 0x8c, 0xe6, 0x4a, 0x79, 0x16, 0x02, 0x03, 0xf7, + 0x84, 0x62, 0x3e, 0xe7, 0xd4, 0xe0, 0xcf, 0xf3, + 0x1c, 0x41, 0xfb, 0x7d, 0x4f, 0xdd, 0x77, 0x44, + 0xcf, 0x74, 0xcf, 0x74, 0x6f, 0xdd, 0x1d, 0xf3, + 0x3e, 0xf4, 0x47, 0x97, 0x5e, 0x2a, 0xd8, 0x5b, + 0xc6, 0xf1, 0xca, 0x05, 0x3b, 0xc4, 0xef, 0xdf, + 0xdd, 0x1e, 0x4e, 0xe9, 0xfc, 0x93, 0xf7, 0xb5, + 0x65, 0x68, 0xda, 0x26, 0xad, 0x0b, 0xd9, 0x06, + 0x6f, 0x05, 0x3e, 0xd5, 0x45, 0x04, 0xe2, 0x01, + 0x81, 0x89, 0xf6, 0xc6, 0x72, 0xc2, 0xc3, 0x7d, + 0xa3, 0x72, 0xde, 0x67, 0xbb, 0x69, 0x12, 0x20, + 0x21, 0x83, 0x8d, 0xc0, 0x88, 0x66, 0x20, 0xa3, + 0xfc, 0x59, 0x98, 0xf1, 0xa3, 0xde, 0xd0, 0x31, + 0xb7, 0x57, 0x4c, 0x5f, 0x79, 0x58, 0xda, 0x9c, + 0xeb, 0x37, 0x4b, 0xad, 0xb4, 0x79, 0xbc, 0x78, + 0x09, 0x89, 0x4d, 0x65, 0xee, 0xb8, 0x6b, 0xfd, + 0xb0, 0xa2, 0x5a, 0x30, 0x09, 0x66, 0xc7, 0xcb, + 0x91, 0xa3, 0x0d, 0x5d, 0x77, 0xe3, 0xa9, 0xd9, + 0xb4, 0x70, 0x62, 0x47, 0xd4, 0x65, 0x7b, 0x09, + 0xad, 0xd9, 0x83, 0x93, 0xc8, 0x6c, 0x73, 0xc4, + 0x44, 0xe7, 0xc5, 0x8f, 0xbb, 0xac, 0x86, 0x59, + 0x6c, 0x58, 0xc5, 0x2b, 0x14, 0xeb, 0x2e, 0xb1, + 0x41, 0x75, 0x6d, 0xb6, 0xdd, 0xaa, 0xd5, 0x27, + 0xa4, 0x5e, 0xe0, 0x21, 0x0c, 0xb9, 0x5f, 0xa9, + 0x27, 0xff, 0x00, 0xbc, 0x88, 0x8f, 0xbb, 0xa7, + 0xa2, 0xb6, 0x45, 0x16, 0x5d, 0x47, 0x21, 0x57, + 0x1d, 0x91, 0x0e, 0x8b, 0x13, 0x08, 0x6d, 0xab, + 0x3d, 0x8c, 0x5d, 0x5e, 0x4e, 0x66, 0x6e, 0x56, + 0x5d, 0xa8, 0x95, 0x30, 0xb9, 0x50, 0xd8, 0xdd, + 0x47, 0x09, 0x95, 0xb2, 0x48, 0x32, 0x0a, 0xc7, + 0x5e, 0xed, 0xb6, 0xb1, 0x6e, 0x5a, 0xed, 0x56, + 0x65, 0x59, 0xa9, 0x24, 0x2c, 0xbc, 0x18, 0xde, + 0xad, 0x76, 0x4b, 0xde, 0x2d, 0x10, 0xb8, 0xea, + 0xe2, 0x70, 0xce, 0x8c, 0xf4, 0xdd, 0x0c, 0x1e, + 0x6e, 0x52, 0x18, 0xbe, 0x75, 0xef, 0xaa, 0xe1, + 0xe2, 0x6c, 0x2e, 0xae, 0x4d, 0x70, 0x96, 0x23, + 0xa4, 0x6c, 0x61, 0x57, 0x86, 0x55, 0x26, 0x4c, + 0xf6, 0xba, 0xe3, 0x65, 0x66, 0x93, 0x3e, 0x54, + 0x34, 0x66, 0x54, 0xce, 0x84, 0xad, 0x92, 0x41, + 0xfb, 0x92, 0xff, 0x00, 0x26, 0x7f, 0xee, 0xd5, + 0xff, 0x00, 0xf2, 0xd7, 0xfa, 0x85, 0x69, 0xbf, + 0x83, 0x17, 0xeb, 0x53, 0xac, 0x3f, 0xe3, 0x75, + 0xfe, 0xc9, 0x73, 0x41, 0xef, 0x46, 0x8f, 0xde, + 0x9d, 0x5a, 0xfc, 0x69, 0x91, 0xfd, 0xa2, 0x75, + 0xff, 0x00, 0x4c, 0x1f, 0xf7, 0x16, 0xb8, 0x84, + 0x6f, 0xb5, 0xe8, 0xa7, 0x38, 0x91, 0xeb, 0x36, + 0xaa, 0x42, 0xc3, 0xc2, 0x3c, 0x29, 0x8c, 0xe5, + 0xe9, 0xa5, 0x8e, 0xae, 0x07, 0x32, 0x7c, 0xb1, + 0x3b, 0xb8, 0x36, 0x19, 0x99, 0xef, 0xdb, 0x69, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xf3, 0xd7, 0x11, 0xfa, 0x86, 0x87, 0xd3, 0x7a, + 0xdf, 0xc3, 0x3c, 0x45, 0xbf, 0xdf, 0xf0, 0x0e, + 0x3f, 0xe9, 0xbd, 0x79, 0xeb, 0x88, 0xfd, 0x43, + 0x43, 0xe9, 0xbd, 0x79, 0xe7, 0x88, 0xbd, 0x43, + 0x8f, 0xfa, 0x6f, 0x5e, 0x79, 0xe2, 0x2f, 0x50, + 0xe3, 0xfe, 0x9b, 0xd7, 0x76, 0x67, 0x88, 0xa3, + 0xff, 0x00, 0xec, 0x38, 0xff, 0x00, 0xa6, 0xf5, + 0xe7, 0x9e, 0x23, 0xf5, 0x0d, 0x0f, 0xa6, 0xf5, + 0xe7, 0x9e, 0x22, 0xf5, 0x0d, 0x0f, 0xa6, 0xf5, + 0xe7, 0x9e, 0x22, 0xf5, 0x0e, 0x3f, 0xe9, 0xbd, + 0x79, 0xe7, 0x88, 0xbd, 0x43, 0x8f, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5e, 0x7a, 0xe2, 0x3f, 0x50, 0xd0, 0xfa, 0x6f, + 0x5c, 0x36, 0x38, 0xe7, 0x58, 0xb1, 0x4e, 0x2b, + 0xe4, 0xba, 0x2e, 0xb6, 0x80, 0xad, 0x60, 0xff, + 0x00, 0xb3, 0x17, 0x65, 0x9d, 0x44, 0x29, 0xf6, + 0x00, 0x39, 0x5b, 0x26, 0x23, 0xb3, 0x8f, 0x98, + 0x20, 0x4a, 0x79, 0x66, 0x64, 0x63, 0x55, 0x3f, + 0x09, 0x47, 0xeb, 0x47, 0x5c, 0x4d, 0xfe, 0x90, + 0xe6, 0xff, 0x00, 0x94, 0xed, 0x7e, 0xeb, 0x23, + 0xda, 0x82, 0xd7, 0x5a, 0xdd, 0x29, 0xa5, 0x59, + 0xf5, 0x61, 0x44, 0x55, 0x85, 0xe7, 0x11, 0x70, + 0xf9, 0x1a, 0x6b, 0xdc, 0xdd, 0x5a, 0x26, 0xa8, + 0x4c, 0x1c, 0x72, 0x03, 0x9d, 0x33, 0x05, 0x3c, + 0xba, 0xe2, 0x5c, 0x84, 0x2e, 0xde, 0x43, 0xa8, + 0xc4, 0xa8, 0x68, 0xf3, 0xa4, 0x28, 0x5a, 0x39, + 0xe8, 0x13, 0x8e, 0xd4, 0xfb, 0x77, 0x50, 0x6b, + 0x00, 0xf5, 0x28, 0xec, 0xb9, 0x9e, 0xd5, 0xca, + 0x64, 0x40, 0x2b, 0xd9, 0x85, 0x7c, 0xed, 0x5d, + 0x9a, 0x36, 0xac, 0x5e, 0x57, 0x6f, 0xc8, 0x94, + 0x32, 0xfa, 0xd5, 0x91, 0x43, 0xea, 0xc5, 0xbb, + 0x86, 0xbd, 0xe1, 0x8c, 0x47, 0x5e, 0x18, 0xe3, + 0x5f, 0xba, 0x10, 0x22, 0x00, 0x8e, 0xe0, 0xd6, + 0x6f, 0x2f, 0x72, 0x57, 0x08, 0x1c, 0x55, 0xca, + 0x52, 0x95, 0x8b, 0xda, 0xc6, 0x4d, 0x96, 0x21, + 0x2a, 0xb5, 0x5c, 0xc5, 0x5d, 0x92, 0xf6, 0x34, + 0x92, 0xce, 0xd6, 0x17, 0xe9, 0xd9, 0x7d, 0x7d, + 0x84, 0x44, 0xc8, 0x08, 0x82, 0x67, 0x23, 0x5f, + 0x88, 0xd7, 0x4e, 0xf5, 0x7a, 0x35, 0x80, 0xb0, + 0x1c, 0x5e, 0xb5, 0x44, 0x58, 0xbb, 0x22, 0xc5, + 0x2e, 0x9d, 0x44, 0xdd, 0x03, 0x81, 0xca, 0xd7, + 0x75, 0x66, 0x3c, 0xa6, 0x93, 0x7a, 0x97, 0x2a, + 0xf2, 0xb0, 0xda, 0x71, 0xd9, 0x39, 0x57, 0x7d, + 0x1c, 0x42, 0xaa, 0x77, 0xd3, 0x8f, 0x42, 0x8f, + 0x87, 0xf8, 0xb9, 0x6b, 0x80, 0xb1, 0x7e, 0x45, + 0xc9, 0x0a, 0x74, 0xd5, 0x7c, 0x0b, 0x93, 0x29, + 0x59, 0xd5, 0x8d, 0xe5, 0x35, 0x5b, 0x0d, 0xb9, + 0x53, 0x95, 0x8c, 0x71, 0xfe, 0xf5, 0xe5, 0x59, + 0x27, 0x11, 0x91, 0x55, 0x4b, 0xea, 0x7e, 0x6f, + 0x29, 0x56, 0x64, 0x93, 0xcb, 0x6e, 0xed, 0xeb, + 0x86, 0x3d, 0x84, 0x65, 0xb3, 0x35, 0xda, 0x57, + 0x68, 0xd4, 0xaa, 0x91, 0xaf, 0x67, 0x99, 0x36, + 0x67, 0xf7, 0xb1, 0x28, 0xba, 0xbb, 0x17, 0x84, + 0x6f, 0x62, 0x28, 0xe3, 0xf3, 0x96, 0x30, 0x3c, + 0x49, 0x19, 0x6c, 0x44, 0x2e, 0xc5, 0x1a, 0xd6, + 0x94, 0xa5, 0x57, 0xec, 0x57, 0x6c, 0xd2, 0x45, + 0x8a, 0xd6, 0xb1, 0xef, 0xc8, 0x11, 0xd9, 0x86, + 0x2a, 0xbb, 0xab, 0x76, 0x8e, 0x8c, 0x5b, 0x48, + 0xa4, 0x5b, 0x12, 0xcc, 0x95, 0x48, 0xaf, 0x4b, + 0x1d, 0x46, 0xa7, 0x0d, 0xe7, 0xa6, 0xb5, 0x2a, + 0x5d, 0xaa, 0x13, 0xda, 0x2d, 0x8a, 0x25, 0xef, + 0x36, 0x5f, 0xb7, 0x7a, 0xe3, 0xec, 0x3a, 0x14, + 0xa5, 0xee, 0xdb, 0x47, 0x00, 0xa4, 0xad, 0x69, + 0x05, 0x8c, 0x4c, 0x4f, 0xee, 0xb8, 0x53, 0xfc, + 0xae, 0x21, 0xfe, 0x5a, 0x7f, 0xd4, 0xe0, 0xcf, + 0xf3, 0x1c, 0x41, 0xfb, 0x7d, 0x4f, 0xdd, 0x30, + 0x5c, 0xe5, 0x57, 0x1b, 0x78, 0xac, 0xd5, 0x00, + 0x75, 0x86, 0x82, 0x10, 0x0f, 0xbb, 0x8b, 0xb5, + 0x5e, 0xbf, 0x59, 0xcc, 0x91, 0x5a, 0x56, 0x6f, + 0x30, 0x59, 0x35, 0x84, 0x2b, 0x5f, 0x3f, 0x3b, + 0x08, 0x42, 0x0a, 0x60, 0xeb, 0x62, 0xb3, 0xb8, + 0xd0, 0x7d, 0x2c, 0x6f, 0x08, 0xd3, 0x7d, 0xc4, + 0xe5, 0x51, 0x5a, 0xac, 0xba, 0xbb, 0xf3, 0x85, + 0x62, 0xa8, 0x64, 0x58, 0xd4, 0xa0, 0x49, 0x25, + 0x22, 0xfd, 0x8d, 0x81, 0x16, 0x92, 0xaf, 0xde, + 0xfd, 0x69, 0x7d, 0x70, 0x77, 0x10, 0xbe, 0xb5, + 0x95, 0x57, 0xa9, 0x90, 0xa5, 0x9f, 0x45, 0x56, + 0x9b, 0xc3, 0x1f, 0x5d, 0xcc, 0x7d, 0x66, 0x4a, + 0x62, 0x5c, 0xf3, 0x42, 0x91, 0x16, 0x5a, 0x33, + 0x29, 0xeb, 0x1a, 0xa2, 0x18, 0x6b, 0x8f, 0x10, + 0xa6, 0x23, 0x59, 0xce, 0x7c, 0xa5, 0x3c, 0x82, + 0x32, 0x39, 0x6a, 0x36, 0xb8, 0x7e, 0xba, 0x2e, + 0xaa, 0xd3, 0x29, 0x53, 0x58, 0xd8, 0x26, 0x4c, + 0xd5, 0x03, 0x26, 0xe2, 0x05, 0x35, 0x5b, 0x5f, + 0x1e, 0x55, 0x2c, 0x05, 0x63, 0x36, 0x06, 0xca, + 0x4b, 0x14, 0x8e, 0xac, 0x58, 0xcd, 0x75, 0xf1, + 0x6c, 0xc9, 0xd3, 0x68, 0xab, 0x13, 0x8e, 0xbd, + 0x97, 0xc4, 0xe3, 0x22, 0x2d, 0x10, 0x49, 0x46, + 0x56, 0xcf, 0x84, 0xee, 0xd3, 0xeb, 0x56, 0xa3, + 0x3c, 0xa4, 0x8a, 0xe9, 0x92, 0x97, 0xdb, 0xe4, + 0xea, 0xc8, 0xa1, 0x4d, 0x16, 0x67, 0xed, 0x3a, + 0xc2, 0xa2, 0xcf, 0x82, 0x1b, 0xd1, 0xe6, 0x7a, + 0xbf, 0x7d, 0x5c, 0x0c, 0xbe, 0x2e, 0xc7, 0x49, + 0x27, 0x05, 0x20, 0xf6, 0x32, 0x12, 0xc3, 0x8e, + 0x94, 0x9f, 0x38, 0x09, 0x98, 0xee, 0x11, 0x33, + 0xac, 0xd6, 0x26, 0xa6, 0x49, 0x5d, 0x86, 0x29, + 0x63, 0x9c, 0xa7, 0xa1, 0x80, 0x6c, 0x73, 0xef, + 0x71, 0x2e, 0x3f, 0x25, 0x62, 0x2a, 0x87, 0x38, + 0x4d, 0x8b, 0x38, 0xec, 0x68, 0xd7, 0x53, 0x80, + 0x27, 0x9c, 0x1b, 0x4d, 0xfc, 0xfc, 0x9c, 0x85, + 0xcb, 0x33, 0x9f, 0xbf, 0xc3, 0xf9, 0x33, 0x45, + 0xec, 0x49, 0xe0, 0x73, 0x55, 0x1f, 0x8e, 0x9c, + 0xc3, 0x79, 0x72, 0x15, 0x89, 0xc5, 0x90, 0x9a, + 0x4c, 0x1b, 0x4a, 0xa7, 0xe0, 0xfe, 0xd4, 0xeb, + 0xdf, 0x5c, 0x28, 0x55, 0xb8, 0xba, 0x41, 0xe3, + 0xb5, 0xf1, 0x32, 0x17, 0xeb, 0x76, 0x8a, 0xd5, + 0xb1, 0x96, 0x72, 0xa4, 0x4f, 0x76, 0x2b, 0x1b, + 0x8c, 0xac, 0xc7, 0xd7, 0x55, 0xd3, 0x62, 0x5c, + 0x6e, 0xa1, 0x5e, 0xb3, 0x6f, 0xc2, 0xbb, 0xac, + 0xa8, 0x5e, 0xf6, 0x09, 0xba, 0x01, 0xdb, 0xf5, + 0x36, 0x64, 0x64, 0x87, 0x37, 0x73, 0x03, 0x96, + 0xb2, 0x1d, 0x97, 0xeb, 0x7b, 0x2f, 0x41, 0xb8, + 0xf6, 0x66, 0xac, 0x97, 0x5d, 0x7d, 0x4e, 0xdb, + 0x14, 0x0e, 0x2d, 0x85, 0x52, 0xa3, 0x36, 0x19, + 0x6e, 0x38, 0x82, 0xba, 0xae, 0xf6, 0xe3, 0x0d, + 0x89, 0xcf, 0x89, 0xe9, 0xfe, 0xe4, 0xbf, 0xc9, + 0x9f, 0xfb, 0xb5, 0x7f, 0xfc, 0xb5, 0xfe, 0xa1, + 0x5a, 0x67, 0xe0, 0xc5, 0xfa, 0xd4, 0xeb, 0x0f, + 0xf8, 0xd9, 0x7f, 0xb2, 0x5c, 0xd0, 0x7b, 0xd1, + 0xa3, 0xf7, 0xa7, 0x56, 0xbf, 0x1a, 0x64, 0x7f, + 0x68, 0x9d, 0x47, 0xf9, 0xe0, 0xff, 0x00, 0xb8, + 0xf5, 0xc4, 0xdf, 0x8a, 0x17, 0xfc, 0xaf, 0x8a, + 0xfa, 0x89, 0xcb, 0xc2, 0x2a, 0xd9, 0xbf, 0x91, + 0xca, 0x5b, 0xa1, 0x5e, 0x6e, 0xd5, 0x45, 0xea, + 0xf4, 0xea, 0xe3, 0xeb, 0xd4, 0x6b, 0xd8, 0x35, + 0x2d, 0xa9, 0xd5, 0x1b, 0x66, 0xcb, 0x6e, 0x2d, + 0x70, 0x6f, 0x4b, 0x7a, 0x09, 0x51, 0x4a, 0xa0, + 0x58, 0xce, 0x70, 0x1c, 0xf5, 0x58, 0x4d, 0x34, + 0xb3, 0x12, 0xac, 0x8b, 0xe9, 0x2c, 0x0b, 0xa7, + 0x16, 0x63, 0x2e, 0xcc, 0x35, 0x91, 0xad, 0x1c, + 0xd3, 0x09, 0x49, 0xb8, 0x22, 0xda, 0xd7, 0xee, + 0x14, 0x2c, 0x24, 0x2c, 0x01, 0x60, 0xb8, 0xd1, + 0xa9, 0xf7, 0xfc, 0x95, 0x71, 0x36, 0x41, 0x75, + 0x2a, 0x15, 0xcb, 0xaf, 0x9c, 0xb5, 0x50, 0xb4, + 0xb1, 0x4d, 0x2e, 0xba, 0x48, 0x97, 0x58, 0x4f, + 0x92, 0xcd, 0x8e, 0xac, 0x00, 0x1c, 0xa8, 0x60, + 0x66, 0x5c, 0x31, 0x18, 0xd5, 0x66, 0xae, 0x55, + 0x04, 0xb3, 0x89, 0x57, 0x8a, 0xae, 0x83, 0xac, + 0xc7, 0xaf, 0x27, 0xd9, 0x1d, 0x58, 0xad, 0x75, + 0xc4, 0xb9, 0x7b, 0x2d, 0x56, 0x45, 0x8a, 0xf5, + 0x37, 0x68, 0x34, 0xa6, 0xc3, 0xe5, 0x6c, 0x50, + 0xa5, 0x4d, 0x7c, 0x57, 0x64, 0xe6, 0x31, 0xf4, + 0x67, 0x2d, 0x7f, 0x25, 0xd9, 0x69, 0x35, 0x4f, + 0x08, 0xad, 0x52, 0x9e, 0x4e, 0xf5, 0x36, 0xb0, + 0xda, 0x23, 0x29, 0x18, 0x8e, 0xcb, 0x03, 0x4e, + 0xb8, 0xfb, 0x6d, 0xb6, 0x17, 0x66, 0x50, 0x41, + 0x8c, 0x73, 0xd9, 0xbf, 0x66, 0xd5, 0xc8, 0x4b, + 0xf1, 0xa6, 0xec, 0x69, 0x37, 0x1c, 0x75, 0x6c, + 0x2e, 0xd2, 0x33, 0x18, 0xea, 0x0e, 0x9b, 0x15, + 0x0a, 0xde, 0xc4, 0xa9, 0x0b, 0xaa, 0x84, 0x98, + 0x58, 0x60, 0x1c, 0x3d, 0x87, 0x23, 0x0d, 0xab, + 0xd3, 0x3b, 0x98, 0xf8, 0xba, 0x91, 0x2a, 0x79, + 0xfa, 0x18, 0x02, 0x6c, 0xa8, 0xf9, 0x4d, 0xb7, + 0xec, 0x59, 0xae, 0x36, 0x62, 0x39, 0xb7, 0x85, + 0xae, 0x6b, 0xc9, 0x10, 0x4f, 0x8d, 0x30, 0x51, + 0xb4, 0xf7, 0x68, 0x0d, 0x79, 0x61, 0x6d, 0x6b, + 0x37, 0x4f, 0x1b, 0x42, 0xd2, 0x71, 0xb7, 0x8d, + 0x56, 0x2d, 0xa5, 0x69, 0xed, 0x24, 0xe8, 0xe5, + 0x16, 0x55, 0xa2, 0x87, 0xd8, 0x5d, 0x7e, 0xd7, + 0xca, 0xf3, 0x6c, 0xf3, 0x31, 0x75, 0xa4, 0x56, + 0xce, 0x5e, 0x26, 0x0e, 0x86, 0x27, 0xc2, 0x38, + 0xf8, 0xa8, 0xa0, 0x2c, 0xc4, 0x61, 0x66, 0xad, + 0x76, 0x78, 0x43, 0xa1, 0x67, 0x66, 0x67, 0xbf, + 0xb1, 0xc2, 0x64, 0x31, 0x20, 0x32, 0x53, 0x06, + 0x7e, 0x45, 0x78, 0xda, 0xc8, 0x5c, 0xca, 0x5e, + 0xc2, 0xd0, 0x56, 0x2a, 0xb5, 0x56, 0x34, 0xb0, + 0xf5, 0xf0, 0xb6, 0x94, 0xe1, 0xb4, 0xf6, 0xa9, + 0x2b, 0x50, 0x70, 0xc1, 0x0d, 0x06, 0x5c, 0x97, + 0x6c, 0x33, 0x16, 0x1a, 0xb6, 0x0a, 0xe6, 0x09, + 0xcd, 0x5a, 0x81, 0x7b, 0xda, 0xed, 0xf9, 0x34, + 0xd6, 0xa8, 0x9b, 0x34, 0xaa, 0xa2, 0xd8, 0x57, + 0x6b, 0xe2, 0xd1, 0x64, 0x2b, 0x0d, 0xe4, 0x33, + 0xa5, 0xce, 0xae, 0x8a, 0x57, 0x4c, 0xc1, 0xd6, + 0x88, 0xce, 0x58, 0x99, 0x31, 0x58, 0x29, 0xc5, + 0xaa, 0x95, 0x8f, 0x25, 0x50, 0x32, 0x39, 0x30, + 0xb4, 0xdc, 0x5d, 0x50, 0x12, 0x75, 0x7b, 0x89, + 0xae, 0xe7, 0xd7, 0x5b, 0x4a, 0xf8, 0x14, 0x2d, + 0x31, 0x90, 0x6d, 0x5b, 0x03, 0x8d, 0xd9, 0x4e, + 0x17, 0xf2, 0xac, 0xda, 0x55, 0xd6, 0xf5, 0x9e, + 0xb3, 0x63, 0x7d, 0xd5, 0xec, 0x64, 0xc7, 0x83, + 0x6d, 0xe5, 0x17, 0x8d, 0x2a, 0xb2, 0xc9, 0xa4, + 0x76, 0x17, 0x5e, 0xc5, 0x36, 0x05, 0xa2, 0x9e, + 0x4f, 0x08, 0x2a, 0xbb, 0x12, 0xe6, 0x00, 0x2c, + 0x7a, 0x23, 0x68, 0x61, 0x6f, 0x61, 0x8b, 0x84, + 0x1e, 0xb8, 0xb3, 0xcf, 0x6a, 0x84, 0xd2, 0xf0, + 0x92, 0x7b, 0x1d, 0x85, 0xa6, 0xb8, 0xdd, 0xb0, + 0x8a, 0xbb, 0xd6, 0xb6, 0x7e, 0x25, 0xd9, 0xab, + 0x62, 0xca, 0x55, 0x6a, 0x20, 0x11, 0x11, 0x24, + 0x45, 0x5c, 0xac, 0xa4, 0x09, 0xba, 0x6e, 0x2c, + 0xad, 0x55, 0xcc, 0xae, 0xbe, 0x33, 0x88, 0x7a, + 0xe5, 0x15, 0x5a, 0x35, 0xc2, 0xed, 0x3c, 0x46, + 0x4c, 0xa0, 0x40, 0x6c, 0x8f, 0xb6, 0xf6, 0x77, + 0xa5, 0x6e, 0x4d, 0x91, 0x8e, 0x59, 0x28, 0x13, + 0x0d, 0xa4, 0x62, 0x75, 0x6e, 0xb2, 0xb2, 0xd5, + 0xed, 0x5a, 0xc7, 0x3b, 0x18, 0xbc, 0x82, 0x86, + 0xb3, 0xd4, 0x09, 0x0c, 0xab, 0xc2, 0xba, 0x0d, + 0x6d, 0x61, 0x7e, 0xf8, 0x62, 0x8d, 0xd5, 0xfb, + 0x52, 0x84, 0x04, 0x57, 0xd6, 0xd9, 0x6e, 0x77, + 0x23, 0x39, 0x62, 0x95, 0x3c, 0xb2, 0x2d, 0xca, + 0xb3, 0x29, 0xc1, 0xde, 0x68, 0xd5, 0x72, 0xd7, + 0x5a, 0xdb, 0xfa, 0xbd, 0x36, 0xab, 0x98, 0xe6, + 0x6c, 0xd4, 0x93, 0xaf, 0x61, 0x5d, 0x5f, 0x68, + 0x29, 0x62, 0xbb, 0x97, 0x20, 0xc0, 0x39, 0xb5, + 0x7e, 0xfd, 0x93, 0x04, 0x8d, 0x5e, 0x20, 0x14, + 0x29, 0x4a, 0xe6, 0x28, 0xb5, 0x8b, 0xa0, 0x9b, + 0x00, 0xf6, 0x94, 0xb9, 0x3e, 0xd4, 0x33, 0x68, + 0x59, 0x0a, 0x89, 0x8e, 0xa1, 0xab, 0x91, 0x85, + 0xd3, 0x22, 0x89, 0x35, 0xb2, 0xe4, 0x32, 0xca, + 0x2c, 0xc5, 0x5b, 0x15, 0x99, 0x5c, 0xea, 0x33, + 0x98, 0x93, 0xd6, 0x1b, 0x54, 0xa1, 0xa7, 0x25, + 0x7b, 0x1e, 0x51, 0xdd, 0x17, 0x20, 0x13, 0x1e, + 0x32, 0x0b, 0xa7, 0xc9, 0x61, 0x53, 0x3a, 0xe1, + 0x6f, 0xc1, 0xf2, 0xdf, 0xcb, 0x77, 0xfe, 0xa5, + 0x4f, 0xc2, 0x51, 0xfa, 0xd1, 0xd6, 0x7e, 0x2d, + 0x50, 0xe2, 0x73, 0xb3, 0x19, 0xbc, 0xb4, 0x58, + 0x24, 0x65, 0x31, 0x60, 0x82, 0x7f, 0x6f, 0xb1, + 0xd6, 0x24, 0x83, 0x31, 0x4c, 0x30, 0x54, 0xb3, + 0x9a, 0x56, 0x06, 0xc3, 0x31, 0x0d, 0xa0, 0x8c, + 0xa6, 0x24, 0xa7, 0xcd, 0xdc, 0x59, 0xeb, 0x6c, + 0x47, 0xd0, 0xfa, 0xf3, 0x77, 0x16, 0x7a, 0xdb, + 0x11, 0xf4, 0x3e, 0xbc, 0xdd, 0xc5, 0x9e, 0xb6, + 0xc4, 0x7d, 0x0f, 0xaf, 0x37, 0x71, 0x67, 0xad, + 0xb1, 0x1f, 0x43, 0xeb, 0xcd, 0xdc, 0x59, 0xeb, + 0x6c, 0x47, 0xd0, 0xfa, 0xf3, 0x77, 0x16, 0x7a, + 0xdb, 0x11, 0xf4, 0x3e, 0xbc, 0xdd, 0xc5, 0x9e, + 0xb6, 0xc4, 0x7d, 0x0f, 0xa6, 0x74, 0xb1, 0x3c, + 0x60, 0xce, 0x8a, 0xc9, 0xcd, 0xe9, 0xe4, 0xf1, + 0x47, 0xd2, 0x48, 0xcc, 0x41, 0x35, 0x9c, 0xb8, + 0x69, 0xe4, 0x58, 0xc9, 0x0c, 0x49, 0x96, 0xc3, + 0x12, 0x51, 0x1b, 0xf7, 0xc6, 0x99, 0x90, 0x56, + 0x07, 0x8e, 0x3b, 0x10, 0xf3, 0x2d, 0xb7, 0x57, + 0x7f, 0x1d, 0xd9, 0xa3, 0x79, 0x10, 0x20, 0x3b, + 0x03, 0x84, 0xe9, 0xf7, 0xc9, 0x88, 0x90, 0xc9, + 0x77, 0xc9, 0x40, 0xcf, 0x97, 0x5b, 0xf8, 0x37, + 0x8a, 0xfd, 0x6d, 0x87, 0xfa, 0x1f, 0x5c, 0xb4, + 0xb0, 0x1c, 0x6d, 0x6d, 0x9c, 0x92, 0xce, 0x5a, + 0xd7, 0x71, 0xae, 0x2e, 0x41, 0x98, 0x12, 0x3d, + 0x97, 0x84, 0x29, 0xe5, 0x82, 0x98, 0x19, 0x9f, + 0x27, 0x34, 0xc4, 0x79, 0x74, 0x64, 0x18, 0x8e, + 0x2f, 0x20, 0x5c, 0x6e, 0xc9, 0x1c, 0x9e, 0x28, + 0x85, 0x71, 0xdf, 0xee, 0xe6, 0x30, 0xdb, 0x0c, + 0x6d, 0x13, 0xee, 0xb6, 0xf2, 0x4e, 0xbc, 0xdb, + 0xc5, 0x7e, 0xb6, 0xc3, 0xfd, 0x0f, 0xaf, 0x37, + 0x71, 0x67, 0xad, 0xb1, 0x1f, 0x43, 0xeb, 0xcd, + 0xdc, 0x59, 0xeb, 0x6c, 0x47, 0xd0, 0xfa, 0xf3, + 0x77, 0x16, 0x7a, 0xdb, 0x11, 0xf4, 0x3e, 0xbc, + 0xdd, 0xc5, 0x9e, 0xb6, 0xc4, 0x7d, 0x0f, 0xaf, + 0x37, 0x71, 0x67, 0xad, 0xb1, 0x1f, 0x43, 0xeb, + 0xcd, 0xdc, 0x59, 0xeb, 0x6c, 0x47, 0xd0, 0xfa, + 0xf3, 0x77, 0x16, 0x7a, 0xdb, 0x11, 0xf4, 0x3e, + 0xb8, 0x62, 0x71, 0x6b, 0xb6, 0xaa, 0x5b, 0xe7, + 0x7a, 0x2b, 0xbe, 0xe4, 0xbe, 0xd4, 0x4f, 0x85, + 0x59, 0xd5, 0xea, 0x36, 0xba, 0x6b, 0xa8, 0xb7, + 0x6f, 0x3c, 0x87, 0x2a, 0x87, 0x95, 0x72, 0x22, + 0x5c, 0xc5, 0x12, 0x53, 0xae, 0x16, 0xfa, 0xe6, + 0x2c, 0xf4, 0x1f, 0x4f, 0x35, 0xd8, 0xbc, 0x0b, + 0xd8, 0x79, 0x79, 0x7b, 0x72, 0x7b, 0x47, 0x69, + 0xed, 0x91, 0x33, 0xcd, 0xbf, 0x47, 0xa5, 0xd3, + 0xee, 0xdb, 0xa9, 0xcd, 0xfc, 0x1d, 0x7b, 0xbe, + 0x3a, 0xfc, 0x98, 0x4f, 0xe6, 0x6b, 0xdd, 0xf1, + 0xd7, 0xe4, 0xc2, 0x7f, 0x33, 0x5f, 0x64, 0xe3, + 0xaf, 0xc9, 0x84, 0xfe, 0x66, 0xbe, 0xcb, 0xc7, + 0x3f, 0xf6, 0x1f, 0xf3, 0x75, 0xf6, 0x4e, 0x39, + 0xff, 0x00, 0xb0, 0xff, 0x00, 0x99, 0xaf, 0xb2, + 0x71, 0xd7, 0xfd, 0x87, 0xfc, 0xcd, 0x3e, 0x90, + 0xd8, 0xe3, 0x98, 0xab, 0x65, 0xa8, 0x73, 0x97, + 0xc9, 0x80, 0x9e, 0x76, 0xd6, 0x86, 0xc2, 0x0b, + 0x9e, 0x55, 0xd4, 0x1e, 0x4e, 0xbb, 0x7b, 0x80, + 0xc4, 0x4b, 0x9b, 0xc7, 0x82, 0xd8, 0x76, 0xfb, + 0x27, 0x1d, 0x7e, 0x4c, 0x27, 0xf3, 0x35, 0xf6, + 0x4e, 0x3a, 0xfc, 0x98, 0x4f, 0xe6, 0x6b, 0xdd, + 0xf1, 0xd7, 0xe4, 0xc2, 0x7f, 0x33, 0x5e, 0xef, + 0x8e, 0xbf, 0x26, 0x13, 0xf9, 0x9a, 0xfb, 0x27, + 0x1c, 0xff, 0x00, 0xd8, 0x7f, 0xcc, 0xd7, 0xd9, + 0x38, 0xeb, 0xfe, 0xc3, 0xfe, 0x66, 0xbd, 0xdf, + 0x1d, 0x7e, 0x4c, 0x27, 0xf3, 0x35, 0xee, 0xf8, + 0xeb, 0xf2, 0x61, 0x3f, 0x99, 0xaf, 0xb2, 0x71, + 0xd7, 0xe4, 0xc2, 0x7f, 0x33, 0x5e, 0xef, 0x8e, + 0xbf, 0x26, 0x13, 0xf9, 0x9a, 0xf7, 0x7c, 0x75, + 0xf9, 0x30, 0x9f, 0xcc, 0xd7, 0xbb, 0xe3, 0xaf, + 0xc9, 0x84, 0xfe, 0x66, 0xbd, 0xdf, 0x1d, 0x7e, + 0x4c, 0x27, 0xf3, 0x35, 0x31, 0xd4, 0xe3, 0xae, + 0xfe, 0xef, 0x26, 0x13, 0xf9, 0x9a, 0x0c, 0x8a, + 0x39, 0xfa, 0x19, 0x4a, 0x54, 0x32, 0x29, 0x16, + 0x0c, 0x0b, 0x01, 0x56, 0xea, 0x29, 0xab, 0x16, + 0x40, 0x91, 0x8f, 0x3c, 0x0c, 0xc7, 0x36, 0xc5, + 0x31, 0x13, 0xdd, 0x13, 0x3b, 0x6f, 0x2c, 0xfc, + 0x1c, 0xbf, 0x5a, 0x9d, 0x61, 0xff, 0x00, 0x1b, + 0x2f, 0xf6, 0x4b, 0x9a, 0x0f, 0x7a, 0x34, 0x7e, + 0xf4, 0xea, 0xd7, 0xe3, 0x4c, 0x8f, 0xed, 0x05, + 0xa8, 0xff, 0x00, 0x3c, 0x1f, 0xf8, 0x4f, 0x59, + 0x9c, 0x52, 0x76, 0xed, 0x59, 0x1c, 0x5b, 0x53, + 0x4c, 0x66, 0x79, 0x61, 0xb6, 0x92, 0xfa, 0xd7, + 0x94, 0x9e, 0x69, 0xf1, 0x46, 0x5d, 0xd9, 0x25, + 0x43, 0x25, 0x30, 0x3c, 0xe4, 0x3b, 0xcc, 0x68, + 0xd4, 0xd0, 0x25, 0xb1, 0x65, 0x20, 0xc5, 0xb0, + 0x64, 0x0c, 0x0c, 0x7b, 0x88, 0x4c, 0x4b, 0x62, + 0x12, 0x89, 0xee, 0x98, 0x98, 0xde, 0x27, 0x43, + 0x8f, 0xc9, 0x56, 0x9b, 0x74, 0xd5, 0x90, 0x5e, + 0x52, 0xb0, 0x8f, 0x2e, 0xea, 0xb5, 0x02, 0x2a, + 0xb0, 0xa6, 0x81, 0x72, 0x75, 0xe9, 0xdf, 0x4a, + 0xd4, 0xbb, 0x29, 0xeb, 0x28, 0xa2, 0x52, 0xb3, + 0x53, 0x02, 0x65, 0x9d, 0x49, 0xa9, 0x53, 0x1f, + 0x76, 0x9e, 0x21, 0xb8, 0x54, 0xe2, 0xfb, 0x10, + 0x34, 0x0d, 0xb4, 0x59, 0x5f, 0x2c, 0x79, 0x3e, + 0xa2, 0x6c, 0x58, 0x63, 0xca, 0xe0, 0xd8, 0x32, + 0x92, 0x64, 0xbb, 0xa2, 0xc0, 0xea, 0x74, 0xf7, + 0x64, 0x24, 0x4d, 0x97, 0x12, 0x34, 0xb2, 0x54, + 0xe9, 0xbb, 0xc0, 0x90, 0xbe, 0xc9, 0x79, 0x71, + 0x74, 0x93, 0x87, 0xc7, 0xf6, 0x09, 0xa9, 0x6a, + 0xc4, 0xa4, 0x41, 0x89, 0xb1, 0x1e, 0xdd, 0xcc, + 0x2a, 0x8e, 0x93, 0xbc, 0x69, 0x4b, 0x63, 0x61, + 0x1a, 0xb7, 0x6e, 0x63, 0x2d, 0x74, 0x71, 0x99, + 0xa2, 0xcc, 0xe3, 0x6b, 0x56, 0xb6, 0xb1, 0xe5, + 0xeb, 0x45, 0x33, 0x75, 0x17, 0xb0, 0xd5, 0x3b, + 0xa2, 0x2d, 0x51, 0x4b, 0xd6, 0xd0, 0x88, 0x6f, + 0x29, 0x39, 0x33, 0x11, 0xce, 0x06, 0xac, 0x55, + 0xce, 0xc6, 0xde, 0x5a, 0x08, 0xcd, 0xa0, 0xf9, + 0x5e, 0x23, 0x60, 0x7c, 0x31, 0x7f, 0x29, 0x6c, + 0x2d, 0x53, 0x6f, 0x24, 0xc2, 0x6d, 0xd2, 0x1c, + 0x88, 0xca, 0x4c, 0x84, 0xa3, 0xae, 0x9e, 0x78, + 0xe5, 0xde, 0x24, 0x57, 0x8a, 0x0a, 0x79, 0x02, + 0x80, 0xaf, 0x79, 0x67, 0x79, 0xf6, 0x96, 0xdb, + 0x56, 0x1d, 0x66, 0xee, 0x27, 0x20, 0xb7, 0xb0, + 0x64, 0x39, 0x22, 0x01, 0xd8, 0xc8, 0x41, 0x2f, + 0x98, 0xe7, 0xb3, 0x4a, 0xf9, 0x59, 0xce, 0x25, + 0xcc, 0xdb, 0xaa, 0xc7, 0x5e, 0x9b, 0x57, 0x38, + 0x93, 0x19, 0xc4, 0x17, 0x3a, 0x96, 0xd3, 0xd2, + 0x18, 0xa2, 0xe7, 0x3c, 0xa9, 0xd6, 0x11, 0x44, + 0x4f, 0x8e, 0x76, 0x19, 0xb5, 0x86, 0x4e, 0xfb, + 0x72, 0x47, 0x48, 0x79, 0x4a, 0x4e, 0xbd, 0x1b, + 0xca, 0xc8, 0x12, 0xa9, 0x64, 0x6d, 0x5e, 0x44, + 0x63, 0xee, 0xcd, 0x3e, 0xd0, 0xab, 0x90, 0x99, + 0xb1, 0x46, 0xd9, 0x0e, 0xc7, 0xd3, 0x26, 0x57, + 0x02, 0x0b, 0x0a, 0x9e, 0xba, 0xe1, 0x8e, 0x11, + 0xfe, 0x04, 0x86, 0x66, 0xb5, 0xc4, 0xd8, 0xe9, + 0x65, 0x7b, 0x3e, 0xd3, 0x54, 0xe0, 0x8e, 0xbc, + 0xd7, 0xb7, 0xda, 0x62, 0x3f, 0x7d, 0x49, 0x13, + 0x46, 0x7e, 0xc7, 0xcc, 0x6c, 0x96, 0x7f, 0x08, + 0x88, 0xa7, 0x59, 0x5c, 0x7d, 0x35, 0xdc, 0x38, + 0xc9, 0x85, 0x18, 0xea, 0xda, 0x94, 0x0f, 0x48, + 0xa9, 0xda, 0x97, 0xcf, 0x8a, 0xae, 0x6e, 0x61, + 0x31, 0xf1, 0x63, 0xbe, 0x26, 0x0b, 0xbf, 0xbe, + 0x34, 0xc5, 0x5f, 0xa5, 0x6a, 0x6a, 0xf5, 0xb1, + 0x36, 0x54, 0x28, 0x72, 0x7a, 0xbd, 0x5c, 0x7e, + 0x2d, 0x18, 0xcb, 0x0a, 0x39, 0x62, 0xe4, 0x3a, + 0x57, 0x05, 0x02, 0x5c, 0xd1, 0x1c, 0xc9, 0xe5, + 0x1f, 0x15, 0xbd, 0xfa, 0xc7, 0x64, 0x9f, 0x8d, + 0x98, 0xc8, 0xe1, 0x96, 0xf4, 0xe3, 0x93, 0x59, + 0x8b, 0x4e, 0x33, 0xa5, 0xda, 0x6c, 0xdb, 0xc7, + 0x0b, 0x53, 0xd3, 0xea, 0x2e, 0x31, 0x8d, 0xb6, + 0xc8, 0x01, 0x44, 0xc4, 0x58, 0x5a, 0x6b, 0x89, + 0x74, 0xa6, 0x0c, 0x8a, 0xfd, 0xc7, 0xd3, 0xb6, + 0x79, 0x8b, 0xfc, 0x39, 0xe0, 0x06, 0x38, 0x6c, + 0x2e, 0x29, 0xc1, 0x05, 0x64, 0xd4, 0x5e, 0x43, + 0xa5, 0x2b, 0xea, 0x75, 0x0e, 0xbd, 0x5a, 0xd0, + 0xda, 0xfc, 0xdd, 0x38, 0x64, 0x39, 0x80, 0x5e, + 0xd8, 0x20, 0xb6, 0x5d, 0x9a, 0xd9, 0x09, 0xb9, + 0x66, 0xc5, 0x1b, 0x0d, 0x59, 0xe4, 0x5b, 0xd8, + 0x2a, 0xb1, 0x0d, 0x5b, 0xae, 0x15, 0x3a, 0xe1, + 0x23, 0x0c, 0xed, 0x86, 0xb9, 0x80, 0x5d, 0xb1, + 0x62, 0xaa, 0x83, 0x4f, 0xa6, 0x26, 0xc1, 0x53, + 0x42, 0xe6, 0x5e, 0x6b, 0x99, 0x85, 0xa0, 0xcd, + 0x8c, 0x22, 0x0c, 0x60, 0x83, 0xc2, 0xd4, 0xee, + 0xd5, 0x0d, 0xcf, 0x6d, 0xa7, 0xa3, 0x36, 0xa0, + 0xcb, 0xbb, 0xc7, 0x80, 0x98, 0x8d, 0xb7, 0xd6, + 0x55, 0xb1, 0x58, 0xd5, 0x19, 0xeb, 0x78, 0x21, + 0x5f, 0x33, 0x46, 0x7b, 0x2f, 0x61, 0xc8, 0xd0, + 0x79, 0x4b, 0x27, 0x96, 0x39, 0xe0, 0xe2, 0xb4, + 0xc4, 0x6d, 0xcb, 0xcb, 0xcd, 0xbc, 0xf9, 0x35, + 0x76, 0x31, 0x55, 0x6c, 0x10, 0x7d, 0x74, 0x0e, + 0x52, 0xdf, 0x68, 0xb0, 0xb2, 0x16, 0x78, 0x39, + 0xf6, 0x61, 0x55, 0xab, 0x10, 0x2e, 0x7d, 0xa8, + 0x8a, 0xc3, 0xcf, 0xae, 0xc8, 0x23, 0xfb, 0x0c, + 0x72, 0xf8, 0x85, 0x26, 0xbc, 0x7d, 0x7c, 0x7d, + 0xf2, 0xae, 0x43, 0x9f, 0x8b, 0x8c, 0x7d, 0x94, + 0xf5, 0x5b, 0xe1, 0xaa, 0x4a, 0xa9, 0x1d, 0x20, + 0x5a, 0xc4, 0x15, 0x15, 0xa1, 0x0b, 0xde, 0x39, + 0xc8, 0x9b, 0x1d, 0x42, 0xe7, 0x5c, 0x90, 0xc2, + 0xe7, 0x15, 0x55, 0x79, 0x0e, 0xcd, 0x37, 0x95, + 0x75, 0x09, 0xc8, 0x5c, 0xed, 0xab, 0xc5, 0x08, + 0x2d, 0xe2, 0x75, 0x31, 0xa4, 0x7b, 0xb6, 0x12, + 0xe6, 0x58, 0x22, 0x61, 0xb0, 0xb9, 0xcc, 0x14, + 0x98, 0x64, 0x31, 0x9c, 0xcd, 0x98, 0x11, 0x89, + 0x22, 0x29, 0x88, 0x11, 0x18, 0x99, 0x22, 0x99, + 0xf2, 0x40, 0xc4, 0x77, 0xcc, 0xcf, 0xdc, 0x88, + 0xef, 0x9d, 0x70, 0xfe, 0x26, 0xd4, 0x40, 0xdc, + 0xa5, 0x41, 0xac, 0xb6, 0xbd, 0xf7, 0x94, 0x37, + 0x21, 0x76, 0xcd, 0xf8, 0xac, 0x7f, 0x79, 0xa8, + 0x53, 0xd6, 0x2d, 0x88, 0xee, 0xe7, 0xdf, 0x69, + 0x98, 0xef, 0xfa, 0x95, 0x3f, 0x09, 0x47, 0xeb, + 0x47, 0x5c, 0x4d, 0xfe, 0x90, 0xe6, 0xff, 0x00, + 0x94, 0xed, 0x7f, 0x68, 0xe2, 0x3a, 0x00, 0x29, + 0x05, 0x37, 0x0b, 0x6a, 0xc3, 0xd9, 0x0a, 0x8e, + 0xd2, 0xf2, 0x07, 0xd2, 0x14, 0xad, 0x8f, 0x2e, + 0x63, 0x8a, 0xe8, 0xf1, 0xcd, 0x68, 0x57, 0x49, + 0x64, 0xc6, 0x13, 0x1f, 0x0e, 0x30, 0x44, 0xa7, + 0x11, 0x5a, 0x7e, 0xd5, 0x9e, 0x07, 0xb7, 0x13, + 0x1b, 0xf8, 0x9c, 0x8e, 0xc5, 0x64, 0x6d, 0xbe, + 0x7e, 0xec, 0x0e, 0xd6, 0xf7, 0x64, 0xef, 0xff, + 0x00, 0x2a, 0x10, 0x5f, 0x72, 0x34, 0x39, 0xa5, + 0xa2, 0xcf, 0x85, 0x0e, 0x96, 0x3c, 0x9f, 0x8c, + 0x9b, 0xe8, 0x23, 0xc7, 0x25, 0xef, 0x60, 0x46, + 0x79, 0xab, 0xdb, 0xb4, 0x32, 0xae, 0x42, 0x14, + 0x0b, 0x45, 0x49, 0x5c, 0x76, 0x7e, 0xd3, 0xd5, + 0x23, 0x95, 0xf4, 0xcb, 0x5c, 0x2c, 0xfb, 0x79, + 0x44, 0xd1, 0xec, 0xc9, 0xc9, 0xda, 0xa9, 0x5a, + 0xd0, 0xe5, 0x26, 0x9d, 0xeb, 0xd5, 0xf3, 0x92, + 0xda, 0xbd, 0xab, 0xc1, 0x74, 0xaf, 0x37, 0xa1, + 0x4d, 0x91, 0xda, 0x08, 0x25, 0x61, 0x2e, 0x9e, + 0x54, 0xad, 0x8b, 0xe7, 0x36, 0xaf, 0x00, 0x38, + 0xeb, 0x27, 0x1c, 0xb4, 0x6b, 0x64, 0x7d, 0xa7, + 0x9f, 0xa3, 0x7e, 0xf5, 0xe7, 0xb9, 0xb6, 0x9c, + 0xf4, 0xec, 0xbe, 0xd5, 0xda, 0x4e, 0x7b, 0x31, + 0x2d, 0xab, 0xef, 0xae, 0x03, 0x5a, 0x56, 0x1b, + 0x48, 0x6a, 0xd0, 0xba, 0xb4, 0x53, 0x74, 0x58, + 0x7f, 0x56, 0x98, 0xac, 0xd2, 0x35, 0x19, 0xd4, + 0x2e, 0x7a, 0xc2, 0x96, 0x49, 0x31, 0x42, 0x82, + 0xdd, 0x42, 0xa6, 0x11, 0x1a, 0xe0, 0x79, 0x4a, + 0x66, 0x63, 0xfb, 0x47, 0x0a, 0x7f, 0x95, 0xc4, + 0x3f, 0xcb, 0x4f, 0xfa, 0x9c, 0x17, 0xfe, 0x63, + 0x88, 0x7f, 0x6f, 0xa9, 0xf5, 0x69, 0x1f, 0x2c, + 0x73, 0xcf, 0x10, 0xe4, 0xc6, 0x4b, 0x68, 0xe6, + 0xe5, 0x8c, 0x6e, 0x2a, 0x60, 0x79, 0xbc, 0xbb, + 0x44, 0xcc, 0xcc, 0x47, 0x93, 0x79, 0x9f, 0xbf, + 0xae, 0x0f, 0xec, 0x8f, 0x25, 0xa9, 0x95, 0x32, + 0x0d, 0xb1, 0x5e, 0x36, 0x9a, 0xf6, 0xe4, 0x73, + 0xd7, 0x83, 0x6b, 0x49, 0x98, 0x95, 0xd8, 0x12, + 0x54, 0x74, 0x88, 0x5a, 0x27, 0x12, 0xbf, 0x12, + 0x63, 0x97, 0xbb, 0x4e, 0x9c, 0x44, 0xcd, 0x57, + 0xdc, 0xcf, 0xe6, 0x2b, 0xf6, 0x95, 0xfd, 0xb1, + 0x5e, 0x86, 0x3f, 0xb1, 0xcd, 0x7a, 0x2a, 0x7f, + 0xbb, 0x58, 0x4b, 0x2c, 0x91, 0xd8, 0xe4, 0xe5, + 0xeb, 0xf4, 0xd1, 0x0c, 0xdc, 0x57, 0x11, 0xae, + 0x1a, 0xcf, 0xa5, 0x0a, 0x53, 0xae, 0xd1, 0x46, + 0x4e, 0xd5, 0x70, 0x50, 0x0d, 0x72, 0xbb, 0x4b, + 0x27, 0x6e, 0x93, 0xda, 0x08, 0x88, 0xe9, 0x80, + 0x5d, 0xec, 0x31, 0x61, 0x89, 0x11, 0x85, 0x43, + 0x5a, 0xde, 0x41, 0x10, 0x98, 0x11, 0xe2, 0xdc, + 0x98, 0xae, 0x09, 0x0a, 0xaa, 0x35, 0xf0, 0x11, + 0x30, 0x33, 0x0c, 0x77, 0x15, 0x06, 0xf8, 0xe6, + 0x87, 0x34, 0x72, 0xc9, 0x57, 0xc5, 0x3a, 0xc3, + 0xb7, 0xfe, 0x09, 0x87, 0x76, 0xc4, 0x3a, 0x3a, + 0xc8, 0xb6, 0xe7, 0xdf, 0xe1, 0xfb, 0xd8, 0xd2, + 0xc9, 0x25, 0xd5, 0xc0, 0x2b, 0x58, 0x1f, 0x09, + 0xd3, 0xa1, 0x76, 0x2a, 0x4c, 0x30, 0xcf, 0x96, + 0xa5, 0xbb, 0x20, 0x3e, 0xde, 0x11, 0xda, 0x13, + 0xbb, 0x22, 0x02, 0x76, 0x5c, 0xa3, 0xb1, 0xa3, + 0x25, 0xd5, 0x8c, 0x38, 0xde, 0x75, 0x5a, 0x14, + 0xa6, 0xc3, 0xad, 0xba, 0xc6, 0x6b, 0x20, 0x83, + 0xb0, 0x6d, 0x8d, 0xd1, 0x55, 0x69, 0x81, 0xd9, + 0x8c, 0xb2, 0x62, 0x3d, 0x38, 0xab, 0x5e, 0xb8, + 0x7b, 0xae, 0x9c, 0x57, 0xc8, 0x64, 0x2c, 0x42, + 0x2c, 0xe4, 0xa9, 0xd0, 0xa4, 0xca, 0xa8, 0x43, + 0xcf, 0x96, 0xd5, 0x1a, 0x57, 0xc9, 0xf6, 0x36, + 0xb1, 0x29, 0x98, 0xae, 0xbc, 0x8d, 0x55, 0x72, + 0xd6, 0x6b, 0x06, 0xc1, 0xf5, 0x4d, 0x4d, 0xe9, + 0x88, 0xf3, 0xc8, 0x11, 0xe4, 0x5a, 0x0e, 0xcb, + 0xe4, 0x71, 0x75, 0xac, 0xd4, 0xa3, 0x0e, 0xaf, + 0x5c, 0x28, 0x58, 0xec, 0xbd, 0xb3, 0x22, 0x5d, + 0x58, 0xe9, 0x2d, 0x8e, 0x9e, 0xf5, 0x8f, 0x8c, + 0x0a, 0x5b, 0x19, 0xcc, 0x5e, 0x2c, 0x4f, 0x14, + 0x8d, 0x2b, 0x08, 0xa9, 0x79, 0x16, 0x70, 0x8a, + 0x1b, 0x2c, 0xc8, 0xd2, 0xc6, 0x40, 0xc7, 0x6a, + 0xbc, 0x0e, 0x00, 0xbb, 0x7a, 0xcd, 0x54, 0x8f, + 0x53, 0x96, 0x23, 0xa7, 0xd6, 0x82, 0x76, 0xd1, + 0x02, 0x25, 0xb6, 0x82, 0xb5, 0xf1, 0xb0, 0x79, + 0x6c, 0x0e, 0x13, 0xad, 0x9f, 0xec, 0x75, 0xe2, + 0xcd, 0xeb, 0x2d, 0x76, 0x43, 0x93, 0x19, 0x51, + 0x73, 0x12, 0x2a, 0xbd, 0x60, 0x6a, 0xdb, 0xaf, + 0xd6, 0xbe, 0xb2, 0x7d, 0x7e, 0xce, 0x13, 0x23, + 0x62, 0xd4, 0xac, 0x79, 0x8a, 0xf6, 0x46, 0xd5, + 0xd4, 0xe3, 0xcb, 0xc1, 0xe0, 0x85, 0x45, 0x40, + 0x8c, 0x98, 0xbe, 0xff, 0x00, 0x6a, 0x33, 0x4d, + 0xba, 0xe6, 0xe8, 0x5a, 0x26, 0x92, 0xa9, 0x3c, + 0xce, 0x79, 0xe6, 0x6c, 0x73, 0x57, 0xe9, 0x08, + 0x43, 0x0e, 0x56, 0xe0, 0x5d, 0xe6, 0x3e, 0x17, + 0xc4, 0x49, 0xc1, 0xc1, 0x12, 0x05, 0x7c, 0xcb, + 0x6d, 0x0a, 0xd7, 0x3b, 0x4e, 0xdd, 0x49, 0xd8, + 0xb7, 0x7c, 0x87, 0x4b, 0xc9, 0xb0, 0xc4, 0xc9, + 0x6f, 0x3b, 0x6a, 0x9e, 0x2a, 0x0a, 0xdb, 0xbc, + 0x1c, 0x7c, 0x50, 0xa0, 0xec, 0x34, 0x19, 0x66, + 0xfe, 0x46, 0x71, 0xf9, 0x69, 0xae, 0xb0, 0x15, + 0xa6, 0x0c, 0x13, 0x24, 0x11, 0x2e, 0x63, 0x6c, + 0x1c, 0x21, 0x2b, 0x03, 0x1e, 0x62, 0x39, 0x58, + 0x19, 0x26, 0x4d, 0xd1, 0x6a, 0xcd, 0xec, 0x3d, + 0x81, 0xb6, 0x41, 0x5d, 0xcd, 0xa3, 0x48, 0xf1, + 0x39, 0xab, 0xb7, 0xab, 0xb2, 0x10, 0xf3, 0x53, + 0x25, 0x3d, 0x86, 0xc1, 0x34, 0x50, 0x70, 0x4c, + 0x6a, 0x6a, 0x83, 0x3a, 0x64, 0x0c, 0x05, 0xa2, + 0xea, 0xf2, 0x17, 0x15, 0x8c, 0x30, 0xcc, 0xf6, + 0x92, 0x3a, 0x8a, 0x3b, 0x88, 0x76, 0x1e, 0x90, + 0xdf, 0xe4, 0x85, 0x83, 0xe1, 0x4c, 0x1b, 0x69, + 0x60, 0x74, 0xe7, 0xa8, 0x1d, 0x32, 0x86, 0x41, + 0xf7, 0x0c, 0x11, 0x36, 0x2b, 0x93, 0x0e, 0xbf, + 0x50, 0xfa, 0x04, 0xe1, 0x10, 0x69, 0x2b, 0x9a, + 0x7a, 0x72, 0xd0, 0x03, 0x60, 0x0b, 0x24, 0x76, + 0xe7, 0x11, 0x32, 0x18, 0x2d, 0xf6, 0x29, 0x8f, + 0xab, 0xc3, 0xdf, 0xe8, 0xc7, 0x0f, 0xff, 0x00, + 0x26, 0x57, 0xd3, 0x3f, 0x07, 0x2f, 0xd6, 0xa7, + 0x58, 0x7f, 0xc6, 0xcb, 0xfd, 0x92, 0xe6, 0x83, + 0xde, 0x8d, 0x1f, 0xbd, 0x3a, 0xb5, 0xf8, 0xcf, + 0x21, 0xfb, 0x41, 0x6a, 0x3f, 0xcf, 0x07, 0xfe, + 0x13, 0xd4, 0x10, 0xcc, 0x89, 0x0c, 0xc4, 0xc4, + 0xc4, 0xed, 0x31, 0x31, 0xdf, 0x13, 0x13, 0x1e, + 0x49, 0x8f, 0xb9, 0x3a, 0x82, 0xc9, 0x61, 0x70, + 0x99, 0x47, 0xc4, 0x44, 0x76, 0xcb, 0xf8, 0xf0, + 0x6d, 0xc3, 0x11, 0x8d, 0x86, 0x19, 0x60, 0x49, + 0x6c, 0x66, 0xd1, 0xf7, 0x4e, 0x48, 0x8b, 0xca, + 0x52, 0x53, 0xdf, 0xaf, 0x45, 0x38, 0x67, 0xd5, + 0xc5, 0xf3, 0x8d, 0x7a, 0x29, 0xc3, 0x3e, 0xae, + 0x2f, 0x9c, 0x6b, 0xd1, 0x4e, 0x19, 0xf5, 0x71, + 0x7c, 0xe3, 0x5e, 0x8a, 0x70, 0xcf, 0xab, 0x8b, + 0xe7, 0x1a, 0xf4, 0x53, 0x86, 0x7d, 0x5c, 0x5f, + 0x38, 0xd7, 0xa2, 0x9c, 0x33, 0xea, 0xe2, 0xf9, + 0xc6, 0xbd, 0x14, 0xe1, 0x9f, 0x57, 0x17, 0xce, + 0x35, 0xe8, 0xa7, 0x0c, 0xfa, 0xb8, 0xbe, 0x71, + 0xaf, 0x45, 0x38, 0x67, 0xd5, 0xc5, 0xf3, 0x8d, + 0x7a, 0x29, 0xc3, 0x3e, 0xae, 0x2f, 0x9c, 0x6b, + 0xd1, 0x4e, 0x19, 0xf5, 0x71, 0x7c, 0xe3, 0x5e, + 0x8a, 0x70, 0xcf, 0xab, 0x8b, 0xe7, 0x1a, 0xf4, + 0x53, 0x86, 0x7d, 0x5c, 0x5f, 0x38, 0xd7, 0xa2, + 0x9c, 0x33, 0xea, 0xe2, 0xf9, 0xc6, 0xbd, 0x14, + 0xe1, 0x9f, 0x57, 0x17, 0xce, 0x35, 0xe8, 0xa7, + 0x0c, 0xfa, 0xb8, 0xbe, 0x71, 0xaf, 0x45, 0x38, + 0x67, 0xd5, 0xc5, 0xf2, 0xfa, 0xf4, 0x53, 0x86, + 0x7d, 0x5c, 0x5f, 0x38, 0xd7, 0xa2, 0x9c, 0x33, + 0xea, 0xe2, 0xf9, 0xc6, 0xba, 0xb8, 0xec, 0x1e, + 0x0b, 0x1b, 0x67, 0xf8, 0x17, 0x29, 0xe3, 0x56, + 0x36, 0x95, 0xf7, 0xfa, 0x4d, 0x69, 0x36, 0x57, + 0xbf, 0xdf, 0x08, 0x89, 0xfb, 0xb1, 0x30, 0x5b, + 0x4e, 0x88, 0xcc, 0xa4, 0x88, 0xa6, 0x48, 0x88, + 0xa6, 0x64, 0x88, 0xa6, 0x77, 0x92, 0x29, 0x9e, + 0xf9, 0x99, 0x9e, 0xf9, 0x99, 0xef, 0x99, 0xfa, + 0x95, 0x3f, 0x09, 0x47, 0xeb, 0x47, 0x59, 0xeb, + 0x1f, 0x5d, 0x9c, 0x11, 0x5f, 0xaf, 0x9a, 0xca, + 0xbf, 0xb3, 0xda, 0xe2, 0x09, 0x4d, 0xa4, 0x75, + 0x6f, 0xd8, 0x67, 0x46, 0xca, 0xbb, 0x11, 0x74, + 0xac, 0x2b, 0x9b, 0x91, 0xcb, 0xe6, 0x2e, 0x46, + 0x09, 0x0f, 0x34, 0xed, 0xbe, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xbd, 0x32, 0xe0, + 0x0f, 0xd2, 0x49, 0xf9, 0x86, 0xad, 0x8a, 0xb8, + 0xc3, 0xd8, 0xf2, 0x62, 0xed, 0x36, 0x52, 0x77, + 0x53, 0x88, 0x8e, 0x76, 0x4b, 0x4d, 0x66, 0x52, + 0xbd, 0xa9, 0x8e, 0xcc, 0xdd, 0x43, 0xb4, 0x97, + 0x30, 0xed, 0xbf, 0x8b, 0x3f, 0x72, 0x29, 0xc7, + 0x16, 0x7b, 0x1a, 0x49, 0x85, 0x57, 0x50, 0x56, + 0x42, 0x78, 0x82, 0xc7, 0x84, 0x11, 0x8f, 0xb0, + 0xc9, 0x63, 0xa9, 0x2c, 0xc5, 0x03, 0x56, 0x52, + 0x64, 0x6d, 0x8e, 0x76, 0xd4, 0x6d, 0xa0, 0x5b, + 0x9a, 0x95, 0xd8, 0x05, 0x17, 0x24, 0x7a, 0x67, + 0xc0, 0x3e, 0x4d, 0xbd, 0x25, 0x2f, 0x24, 0x6d, + 0xdd, 0xf6, 0x87, 0x93, 0xba, 0x3b, 0xbf, 0x8b, + 0x58, 0xfa, 0x2c, 0xe3, 0x0f, 0x63, 0xbe, 0x8e, + 0x30, 0x6d, 0x05, 0x79, 0x0e, 0x22, 0x64, 0x32, + 0x62, 0xdb, 0xfb, 0x43, 0x7a, 0xa5, 0x34, 0xc8, + 0x4a, 0x60, 0xfd, 0xc7, 0x28, 0x2f, 0x61, 0xee, + 0x9e, 0x69, 0xef, 0xd5, 0x55, 0xfd, 0x73, 0xfb, + 0x17, 0xda, 0x6e, 0x3a, 0x4c, 0xb1, 0x77, 0x2e, + 0x67, 0x1c, 0xcb, 0x58, 0xc9, 0x33, 0x96, 0xfe, + 0xf7, 0x95, 0xa1, 0x35, 0xec, 0x08, 0x3c, 0xa6, + 0xc2, 0x15, 0x94, 0xaf, 0x90, 0x45, 0x77, 0xee, + 0xc4, 0x2d, 0x7c, 0xc7, 0x04, 0x4c, 0x3e, 0x34, + 0xe0, 0x23, 0x36, 0x11, 0x19, 0x99, 0xf1, 0x31, + 0x11, 0x99, 0x9c, 0xf3, 0x11, 0x91, 0x4d, 0x1d, + 0xc8, 0x88, 0xa6, 0x64, 0x8a, 0x7b, 0xe6, 0x67, + 0x79, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0xa6, 0x5c, 0x01, 0xfa, 0x49, 0x3f, + 0x30, 0xd7, 0x0c, 0xd3, 0xed, 0xb8, 0xec, 0x8f, + 0x4a, 0x73, 0x93, 0xda, 0xf1, 0x56, 0x7b, 0x65, + 0x16, 0xf5, 0x32, 0xac, 0x6f, 0xb4, 0xd8, 0xe9, + 0xab, 0x9e, 0x57, 0xcf, 0xd2, 0x6f, 0x89, 0x1c, + 0x8e, 0x06, 0x07, 0x7f, 0x2e, 0xf3, 0xae, 0x11, + 0x9c, 0x66, 0x32, 0xfe, 0x42, 0x10, 0x9c, 0xec, + 0x3a, 0x69, 0x54, 0x7d, 0x98, 0x54, 0xb2, 0xfd, + 0x7e, 0x9c, 0x33, 0xa2, 0x05, 0xc9, 0xcf, 0xc8, + 0x7c, 0xbc, 0xdb, 0x73, 0x72, 0x96, 0xde, 0x49, + 0xd7, 0xa3, 0x79, 0xcf, 0x55, 0xdd, 0xf9, 0x1d, + 0x7a, 0x37, 0x9c, 0xf5, 0x5d, 0xdf, 0x91, 0xd0, + 0x62, 0xee, 0xf0, 0x5f, 0x11, 0xd9, 0x5a, 0xaf, + 0xbe, 0xfa, 0xdb, 0x5d, 0x76, 0xa9, 0x9c, 0x1d, + 0x8a, 0xf5, 0xab, 0x9a, 0xce, 0x0f, 0x13, 0x76, + 0x08, 0x62, 0x2b, 0x09, 0x0c, 0xc7, 0x24, 0xee, + 0x53, 0xbe, 0xfa, 0xc5, 0x25, 0xfc, 0x07, 0xc4, + 0x16, 0x27, 0x0d, 0x16, 0x06, 0xa7, 0x34, 0x5e, + 0x04, 0x30, 0x1d, 0x7d, 0xf7, 0xc4, 0x2e, 0xa4, + 0x31, 0x70, 0xd7, 0x40, 0x31, 0xdd, 0x33, 0xe8, + 0x5a, 0xa9, 0x2d, 0x58, 0xf7, 0x4a, 0x8a, 0x77, + 0x8b, 0x4a, 0xcb, 0x70, 0x96, 0x7b, 0x22, 0xab, + 0x37, 0x59, 0x92, 0xf6, 0xba, 0x77, 0x69, 0x58, + 0x45, 0xe7, 0x6d, 0x16, 0x18, 0x87, 0x76, 0x3b, + 0x2b, 0x15, 0x59, 0x08, 0x11, 0xb0, 0x92, 0xac, + 0x7c, 0xdd, 0x24, 0x10, 0x31, 0x52, 0xaf, 0x18, + 0x5a, 0x7c, 0x2d, 0x98, 0x42, 0x92, 0x85, 0x54, + 0xa7, 0x51, 0x38, 0xab, 0xdd, 0x0a, 0x94, 0xd1, + 0x1b, 0x26, 0xba, 0xb9, 0x95, 0x24, 0x5b, 0x6e, + 0x4c, 0x63, 0x0e, 0x65, 0x8e, 0x7b, 0x1a, 0xe6, + 0x4c, 0x9b, 0x27, 0x58, 0xac, 0x39, 0x70, 0xae, + 0x65, 0x7e, 0x0c, 0x9e, 0xfb, 0x61, 0x8e, 0xbf, + 0xd6, 0xb7, 0x0a, 0xe7, 0x0a, 0x30, 0xd0, 0xe8, + 0x72, 0x8f, 0x60, 0x43, 0x0a, 0xba, 0x4a, 0x26, + 0x66, 0x57, 0xb6, 0xfe, 0x4d, 0x3e, 0xe2, 0x78, + 0x23, 0x2c, 0xab, 0xf9, 0x07, 0x51, 0x6e, 0x5a, + 0xc7, 0x63, 0xc8, 0x90, 0x5b, 0xec, 0x76, 0x91, + 0x78, 0xe2, 0xba, 0x66, 0xaf, 0xef, 0x1e, 0xdf, + 0x72, 0xba, 0xac, 0x5d, 0xf6, 0xdb, 0x30, 0x47, + 0x1c, 0xa8, 0x84, 0x2a, 0x65, 0x73, 0x34, 0x6f, + 0xf0, 0x2e, 0x6d, 0xe9, 0x35, 0xa1, 0x6c, 0xe9, + 0x2b, 0x21, 0x58, 0xcb, 0xb1, 0xdf, 0xbd, 0x76, + 0x9e, 0xd3, 0xe0, 0xf6, 0xec, 0x21, 0x19, 0x1b, + 0x35, 0xde, 0x05, 0xcf, 0x0f, 0x1e, 0x93, 0x97, + 0xd9, 0x9e, 0xbe, 0x79, 0x5e, 0x42, 0xff, 0x00, + 0x0a, 0x31, 0x2b, 0xa9, 0x95, 0xc5, 0xd8, 0x9c, + 0x7b, 0x46, 0xe6, 0x36, 0x29, 0x85, 0x4c, 0x7d, + 0x6a, 0x6d, 0xb8, 0x92, 0xb0, 0xa2, 0x3c, 0x95, + 0x27, 0x2e, 0x8a, 0x61, 0xf8, 0xca, 0xd0, 0x79, + 0x20, 0x62, 0x6b, 0xc2, 0x1c, 0x62, 0xd2, 0xdd, + 0xc7, 0x67, 0x81, 0xb2, 0xd9, 0x25, 0x27, 0x2f, + 0x93, 0xc9, 0x63, 0x3b, 0x46, 0x3e, 0xf2, 0xd6, + 0x11, 0x90, 0x7c, 0xb8, 0xab, 0xdd, 0xaf, 0x34, + 0xd9, 0x17, 0x2a, 0x75, 0x20, 0x1d, 0xd9, 0xf9, + 0xab, 0x4f, 0x3c, 0xb4, 0x4d, 0x84, 0x0c, 0x91, + 0x8c, 0x9e, 0x3f, 0xeb, 0x57, 0x33, 0x23, 0x93, + 0x6d, 0x06, 0x9b, 0x3c, 0x19, 0x74, 0x7a, 0x3d, + 0x85, 0x8e, 0x60, 0x88, 0x2e, 0x2b, 0xf2, 0xc8, + 0xb3, 0xad, 0x31, 0xe5, 0x8e, 0x48, 0x18, 0xdb, + 0x7d, 0x57, 0xa9, 0x77, 0x83, 0x73, 0x17, 0x17, + 0x18, 0x82, 0xc1, 0xdd, 0x39, 0xa5, 0x7d, 0x6e, + 0xbd, 0x40, 0x2c, 0x85, 0xbc, 0x77, 0x8f, 0xd9, + 0x19, 0x09, 0xb7, 0x8b, 0x6a, 0xc2, 0x2a, 0xd8, + 0x91, 0x7c, 0x4a, 0x86, 0x14, 0xc5, 0x10, 0xf3, + 0x73, 0x5f, 0xa9, 0xf5, 0x9e, 0x75, 0xa9, 0x81, + 0xe2, 0x19, 0x5b, 0x0d, 0x61, 0x6f, 0xc4, 0x4b, + 0x0a, 0x9f, 0x59, 0x05, 0x91, 0xf0, 0xcd, 0x84, + 0x82, 0x6c, 0xda, 0xe4, 0x73, 0x07, 0x2a, 0xa7, + 0x2a, 0x2c, 0x5e, 0xaf, 0x67, 0x9e, 0x8c, 0x24, + 0xa9, 0xac, 0x47, 0x2a, 0xcf, 0xac, 0xbc, 0xc6, + 0x4f, 0x1c, 0x59, 0xe5, 0x65, 0xf1, 0xff, 0x00, + 0xbc, 0xb2, 0xb4, 0x87, 0xad, 0x52, 0xb0, 0xd2, + 0x12, 0x60, 0xf6, 0x52, 0x63, 0x29, 0x59, 0x5a, + 0x96, 0xde, 0xce, 0x43, 0x5e, 0xc8, 0xf2, 0x84, + 0x75, 0xc3, 0x76, 0xae, 0x72, 0x01, 0x6b, 0x82, + 0x73, 0x25, 0x57, 0x27, 0xe1, 0x48, 0xb4, 0x95, + 0x55, 0xbe, 0x97, 0x44, 0x64, 0xb2, 0xc1, 0x98, + 0x1e, 0x85, 0x99, 0xa2, 0xde, 0x9c, 0xd6, 0xb0, + 0xb0, 0x0d, 0x8d, 0x2e, 0x55, 0x85, 0x6f, 0x0d, + 0x56, 0xfc, 0xb2, 0x0a, 0x5a, 0xf8, 0x0f, 0x24, + 0x85, 0x56, 0x1c, 0x68, 0x56, 0x42, 0xe9, 0xe5, + 0x3a, 0x42, 0x18, 0xe4, 0x64, 0x29, 0x74, 0x9f, + 0xcd, 0x5c, 0x9d, 0x61, 0x56, 0xb1, 0xf9, 0x27, + 0x56, 0xb3, 0x1d, 0x65, 0xb2, 0x59, 0x1d, 0xa4, + 0x1a, 0x32, 0x52, 0xbd, 0x05, 0x5a, 0x3c, 0x15, + 0x9a, 0xad, 0x48, 0x11, 0x97, 0x5c, 0x25, 0x95, + 0x6f, 0xd8, 0x71, 0x3f, 0x31, 0x56, 0x2a, 0x3e, + 0xc3, 0x2c, 0x76, 0x24, 0xc1, 0xf4, 0x52, 0x0a, + 0x1a, 0xea, 0x84, 0x0f, 0x28, 0x84, 0xf3, 0x19, + 0x93, 0x08, 0xf5, 0xe8, 0xde, 0x73, 0xd5, 0x77, + 0x7e, 0x47, 0x5e, 0x8d, 0xe7, 0x3d, 0x57, 0x77, + 0xe4, 0x75, 0xe8, 0xde, 0x73, 0xd5, 0x77, 0x7e, + 0x47, 0x58, 0x34, 0x3d, 0x66, 0x97, 0xa3, 0x87, + 0x70, 0x49, 0x72, 0x5a, 0x32, 0x0c, 0x53, 0x57, + 0x8e, 0x40, 0x31, 0x6c, 0x02, 0xd8, 0x80, 0xc0, + 0xe2, 0x44, 0x84, 0xa2, 0x24, 0x4a, 0x26, 0x27, + 0xbf, 0x4c, 0xfc, 0x1c, 0xbf, 0x5a, 0x9d, 0x61, + 0xff, 0x00, 0x1b, 0x2f, 0xf6, 0x4b, 0x7a, 0x0f, + 0x7a, 0x34, 0x7e, 0xf4, 0xea, 0xd7, 0xe3, 0x3c, + 0x87, 0xed, 0x05, 0xa8, 0xff, 0x00, 0x3c, 0x1f, + 0xf8, 0x4f, 0xfb, 0xa6, 0xa7, 0xe1, 0x28, 0xfd, + 0x68, 0xeb, 0x89, 0xbf, 0xd2, 0x1c, 0xdf, 0xf2, + 0x9d, 0xaf, 0xed, 0x19, 0x81, 0x8c, 0x65, 0x2a, + 0xd8, 0xec, 0x56, 0x16, 0xbb, 0x22, 0xe1, 0x56, + 0xaf, 0xdb, 0xe3, 0x33, 0xd4, 0xae, 0xb1, 0x39, + 0xca, 0x02, 0x82, 0xdb, 0xcb, 0x21, 0x60, 0xec, + 0x72, 0xe3, 0xda, 0xd6, 0x57, 0x0a, 0x91, 0xed, + 0x69, 0x12, 0xaf, 0xd5, 0xd2, 0x72, 0x8e, 0xc8, + 0x63, 0x9d, 0x52, 0xf1, 0x27, 0xc1, 0x05, 0x5d, + 0x8c, 0x26, 0x65, 0x94, 0x4a, 0xea, 0x5a, 0x7d, + 0x74, 0xca, 0xe1, 0xa8, 0x5e, 0x3c, 0x89, 0x69, + 0xb5, 0xdb, 0x02, 0xb9, 0x0b, 0x99, 0xd3, 0xdb, + 0xa9, 0xca, 0x07, 0x8c, 0xb7, 0x6b, 0x1a, 0x9c, + 0xad, 0x9c, 0xac, 0xd9, 0x7f, 0x4a, 0xd5, 0x8b, + 0xc8, 0xaf, 0x5a, 0x85, 0x6b, 0x3d, 0x94, 0x61, + 0x5e, 0x0f, 0xb5, 0x4d, 0xb3, 0x76, 0xc3, 0x55, + 0x62, 0x65, 0xae, 0x6b, 0x6b, 0xa1, 0x50, 0xb8, + 0xec, 0x8d, 0x32, 0x92, 0x1c, 0x9b, 0x2c, 0x76, + 0x98, 0xc2, 0xf3, 0x57, 0xc6, 0xe3, 0x9b, 0x71, + 0x9d, 0x17, 0xa3, 0x25, 0x9a, 0x6f, 0x67, 0xc6, + 0x95, 0x82, 0xaa, 0x70, 0xb6, 0xcd, 0x39, 0x87, + 0xb8, 0xfb, 0xe1, 0x2e, 0x1a, 0xf0, 0x6d, 0x50, + 0x01, 0xca, 0x87, 0x24, 0x66, 0xa2, 0x5f, 0x11, + 0x50, 0xcc, 0x64, 0x56, 0x11, 0xce, 0xc9, 0xeb, + 0xd6, 0xc4, 0xd3, 0xaa, 0xdc, 0x85, 0x1e, 0x97, + 0x3f, 0x4b, 0xa8, 0xa8, 0x6b, 0xee, 0x03, 0x05, + 0x7d, 0x59, 0x8a, 0xcc, 0x5f, 0x3c, 0xc4, 0x88, + 0x69, 0x0a, 0xac, 0xbe, 0x9a, 0xcf, 0x15, 0x87, + 0xb2, 0x51, 0xce, 0x67, 0xbb, 0xad, 0x63, 0x6b, + 0x58, 0x79, 0xee, 0xc2, 0x39, 0xf6, 0xc6, 0xb0, + 0xcf, 0x96, 0x27, 0x90, 0x77, 0xe5, 0x01, 0x11, + 0x88, 0x18, 0xfd, 0xdf, 0x0a, 0x7f, 0x95, 0xc4, + 0x3f, 0xcb, 0x4f, 0xfa, 0x9c, 0x21, 0xd2, 0x73, + 0x55, 0xba, 0xf3, 0xfb, 0xf4, 0xd8, 0x61, 0xbe, + 0xd7, 0x29, 0x6d, 0xbf, 0x2c, 0xc6, 0xfb, 0x6f, + 0x3b, 0x7b, 0xfa, 0xfb, 0x6e, 0xd7, 0xc6, 0x1b, + 0xfc, 0xfd, 0x7d, 0xb7, 0x6b, 0xe3, 0x0d, 0xfe, + 0x7e, 0x9d, 0x42, 0x69, 0x75, 0x68, 0x55, 0xc6, + 0xe5, 0xed, 0x65, 0xaf, 0x88, 0x95, 0x8c, 0x9f, + 0x54, 0x2b, 0x3e, 0xc5, 0x17, 0xd5, 0xb7, 0xb4, + 0xdb, 0xaa, 0xc4, 0x35, 0x35, 0x92, 0xaa, 0x34, + 0x8e, 0x2b, 0xd9, 0x0e, 0xd4, 0xcb, 0xea, 0x7a, + 0x4d, 0xd2, 0xaf, 0xae, 0x2f, 0x0e, 0x57, 0xf0, + 0x6f, 0x43, 0x6e, 0x7e, 0xdb, 0x6b, 0xab, 0xe1, + 0x6e, 0xa4, 0x0f, 0x80, 0xfb, 0x3e, 0xdd, 0x7e, + 0xdd, 0xd2, 0x9e, 0xd3, 0x0c, 0x85, 0xcd, 0x4e, + 0x84, 0x75, 0xa5, 0xf1, 0x5f, 0xdb, 0xf5, 0x6e, + 0xde, 0x6d, 0xf6, 0xd9, 0x8a, 0xa2, 0x85, 0x0b, + 0x47, 0xb6, 0xda, 0x4f, 0x35, 0xac, 0x85, 0xa4, + 0xd0, 0xa7, 0x1d, 0x44, 0xb4, 0x19, 0xb2, 0x65, + 0xcd, 0xb9, 0x30, 0x27, 0x1c, 0xd1, 0x56, 0x44, + 0xb9, 0x82, 0x48, 0x66, 0xff, 0x00, 0x5b, 0x35, + 0x56, 0x82, 0xb1, 0xf9, 0x4f, 0x03, 0xb1, 0x99, + 0x0b, 0xd7, 0x83, 0x9e, 0xe9, 0x19, 0x0a, 0x96, + 0xb5, 0xd4, 0xad, 0x71, 0x87, 0xcf, 0xc8, 0x53, + 0x27, 0x01, 0xd3, 0x50, 0x81, 0x31, 0xe4, 0xa5, + 0x47, 0x3e, 0xa6, 0xa3, 0x72, 0xc8, 0xa3, 0x6e, + 0x72, 0x2d, 0xc4, 0xa2, 0xad, 0xbb, 0xb9, 0x02, + 0x75, 0xbb, 0xe8, 0x91, 0x16, 0xa5, 0x31, 0x42, + 0xad, 0xe1, 0x01, 0x02, 0x30, 0x1e, 0xd3, 0x70, + 0xaa, 0xd4, 0x99, 0x3e, 0xe7, 0xcc, 0x03, 0x65, + 0x78, 0xab, 0x03, 0x7c, 0x71, 0x4a, 0x8c, 0x2a, + 0xec, 0x65, 0xae, 0xdf, 0xbd, 0x91, 0x94, 0x76, + 0xe6, 0xe5, 0xb2, 0x74, 0xd4, 0xb8, 0x0a, 0xc1, + 0x90, 0xb0, 0x6f, 0x68, 0x55, 0x81, 0x14, 0x51, + 0xaa, 0x4b, 0x85, 0xd7, 0x6d, 0x86, 0x40, 0x00, + 0xb1, 0xb2, 0x55, 0xac, 0xe5, 0x2b, 0xe3, 0x8b, + 0xb5, 0xd7, 0xa3, 0x5d, 0xb7, 0x72, 0x17, 0x3b, + 0x3d, 0xeb, 0x36, 0xd2, 0x16, 0x6b, 0x8d, 0x46, + 0xd4, 0x45, 0xbe, 0x65, 0x32, 0xb3, 0x52, 0xfe, + 0xd4, 0xf8, 0x45, 0x45, 0xad, 0xe8, 0xea, 0xbd, + 0x66, 0xc8, 0x0d, 0x67, 0x63, 0x27, 0x66, 0xcb, + 0x95, 0xc3, 0x95, 0xec, 0xb6, 0xd2, 0x11, 0x72, + 0xc0, 0x8d, 0xbb, 0x2a, 0xbc, 0x9c, 0x6a, 0x2b, + 0x8b, 0xbc, 0x56, 0x0d, 0x76, 0x5b, 0xb0, 0x26, + 0xd6, 0x88, 0x83, 0x7b, 0x32, 0xce, 0x03, 0xa6, + 0xd3, 0x09, 0x1a, 0x89, 0xc6, 0xc3, 0x31, 0x97, + 0xb6, 0xb6, 0x57, 0xc6, 0x2f, 0xdf, 0xf0, 0x3a, + 0xa9, 0xd7, 0x5f, 0x68, 0xed, 0xfd, 0x6b, 0xd7, + 0x6f, 0xde, 0x47, 0x45, 0x02, 0xee, 0xd8, 0x04, + 0x6f, 0x19, 0x85, 0x2c, 0xab, 0x0f, 0x51, 0xbd, + 0x0d, 0x31, 0x8b, 0xcd, 0xd3, 0x9a, 0x0b, 0xc6, + 0x37, 0x2f, 0xe1, 0x5e, 0xdd, 0x93, 0x8a, 0x2c, + 0xa7, 0x5e, 0xda, 0x69, 0x59, 0x90, 0x09, 0xa5, + 0xe1, 0x18, 0x7d, 0x67, 0xbe, 0x21, 0x95, 0x5b, + 0x8f, 0x55, 0x82, 0x81, 0x99, 0xae, 0xb7, 0x73, + 0xd7, 0x87, 0x90, 0x46, 0x62, 0x9d, 0x86, 0xad, + 0x98, 0xce, 0xa2, 0xab, 0xe4, 0x6f, 0x19, 0xae, + 0xa6, 0x65, 0xab, 0x4e, 0x37, 0x24, 0x5c, 0xf5, + 0x56, 0x1d, 0x8e, 0xcb, 0x1c, 0x8f, 0x6b, 0x13, + 0x2c, 0x92, 0x06, 0xc2, 0x0e, 0xce, 0x3d, 0x20, + 0xc8, 0x2d, 0x0a, 0x83, 0x2d, 0x56, 0xe1, 0xf8, + 0x46, 0x31, 0x16, 0x7b, 0x26, 0x4e, 0xcf, 0x26, + 0x3f, 0x22, 0x43, 0x27, 0xd9, 0xae, 0xb6, 0xda, + 0xaa, 0x2a, 0x23, 0x94, 0x1d, 0xfb, 0xe6, 0xb1, + 0xd9, 0xa7, 0xba, 0x1e, 0x3d, 0xa3, 0x9d, 0x7c, + 0xba, 0xa9, 0xd9, 0x33, 0xb4, 0xac, 0xd6, 0xb8, + 0x39, 0x29, 0x5e, 0x42, 0x2e, 0xe5, 0x6b, 0xd2, + 0x5c, 0xe2, 0x51, 0x16, 0x6f, 0x03, 0x8a, 0xf5, + 0x0a, 0x96, 0x06, 0x54, 0x92, 0x13, 0x86, 0x0d, + 0x63, 0xae, 0x7c, 0xdb, 0x0b, 0xb9, 0x85, 0x90, + 0x04, 0x2a, 0xcf, 0x51, 0x63, 0xe5, 0x77, 0xac, + 0x56, 0xae, 0xbb, 0xf9, 0x46, 0xb2, 0xed, 0x4c, + 0x7f, 0x5b, 0xaf, 0x71, 0x06, 0x9a, 0x2c, 0xac, + 0xa4, 0x14, 0x57, 0x71, 0x22, 0x2f, 0xd8, 0xa5, + 0x65, 0xa2, 0x3d, 0xd5, 0xf9, 0x98, 0xa1, 0x32, + 0x52, 0x38, 0x8e, 0xa8, 0xd4, 0xfe, 0xc6, 0x57, + 0x45, 0x8b, 0xd7, 0x32, 0xa9, 0xed, 0x59, 0x1b, + 0x98, 0xea, 0xb7, 0x19, 0x55, 0x43, 0x18, 0xee, + 0x68, 0xef, 0x78, 0xbb, 0xae, 0xc1, 0x5d, 0x0a, + 0xb5, 0xec, 0xd4, 0x0b, 0x97, 0x95, 0x64, 0x98, + 0xb1, 0x09, 0x3c, 0x95, 0x7a, 0xaf, 0x3b, 0x76, + 0xe9, 0x0d, 0x0b, 0x59, 0x2b, 0x21, 0x7a, 0x5b, + 0x8f, 0x6c, 0xaf, 0x23, 0x30, 0x85, 0xa9, 0xb0, + 0x4b, 0xa3, 0x11, 0x2d, 0x74, 0x8b, 0x08, 0x8d, + 0x7d, 0xd5, 0x46, 0xc3, 0xfd, 0xa7, 0x49, 0xdb, + 0x2c, 0x37, 0x53, 0x65, 0x3d, 0x74, 0x5a, 0xa3, + 0x6e, 0xe1, 0x25, 0x81, 0xd4, 0x35, 0x14, 0x48, + 0x5a, 0x55, 0x4b, 0x69, 0x60, 0x31, 0x66, 0x06, + 0xbb, 0x15, 0x52, 0x7d, 0xd0, 0x63, 0x04, 0xb2, + 0x03, 0x2f, 0xb6, 0xed, 0x7c, 0x61, 0xbf, 0xcf, + 0xd7, 0xdb, 0x76, 0xbe, 0x30, 0xdf, 0xe7, 0xeb, + 0x87, 0xc8, 0xa6, 0x48, 0x8b, 0x86, 0xb0, 0x32, + 0x45, 0x33, 0xbc, 0xcc, 0xce, 0x35, 0x1b, 0xcc, + 0xcc, 0xf7, 0xcc, 0xcf, 0xdd, 0x9d, 0x33, 0xf0, + 0x72, 0xfd, 0x6a, 0x75, 0x87, 0xfc, 0x6c, 0xbf, + 0xd9, 0x2d, 0xe8, 0x3d, 0xe8, 0xd1, 0xfb, 0xd3, + 0xab, 0x5f, 0x8c, 0xf2, 0x1f, 0xb4, 0x16, 0x87, + 0xfc, 0xf0, 0xff, 0x00, 0xe0, 0x66, 0xb9, 0x02, + 0x40, 0x60, 0x47, 0x9d, 0xad, 0x69, 0xc2, 0xd2, + 0x85, 0x46, 0xdc, 0xcd, 0x73, 0x0b, 0xc5, 0x05, + 0x8e, 0xf1, 0xbc, 0xf9, 0x66, 0x66, 0x04, 0x60, + 0x8e, 0x44, 0x67, 0x94, 0xf8, 0x8a, 0xaf, 0x37, + 0xf0, 0xba, 0x54, 0x72, 0x6e, 0x0d, 0xff, 0x00, + 0xc5, 0x68, 0x54, 0xe5, 0x38, 0xfe, 0x38, 0xf2, + 0xeb, 0xd2, 0x24, 0xfa, 0xb3, 0x2d, 0xf3, 0x4d, + 0x7a, 0x44, 0x9f, 0x56, 0x65, 0xbe, 0x69, 0xaf, + 0x48, 0x93, 0xea, 0xcc, 0xb7, 0xcd, 0x35, 0xe9, + 0x12, 0x7d, 0x59, 0x96, 0xf9, 0xa6, 0xbd, 0x22, + 0x4f, 0xab, 0x32, 0xdf, 0x34, 0xd7, 0xa4, 0x49, + 0xf5, 0x66, 0x5b, 0xe6, 0x9a, 0xf4, 0x89, 0x3e, + 0xac, 0xcb, 0x7c, 0xd3, 0x5e, 0x91, 0x27, 0xd5, + 0x99, 0x6f, 0x9a, 0x6b, 0xd2, 0x24, 0xfa, 0xb3, + 0x2d, 0xf3, 0x4d, 0x7a, 0x44, 0x9f, 0x56, 0x65, + 0xbe, 0x69, 0xaf, 0x48, 0x93, 0xea, 0xcc, 0xb7, + 0xcd, 0x35, 0xe9, 0x12, 0x7d, 0x59, 0x96, 0xf9, + 0xa6, 0xbd, 0x22, 0x4f, 0xab, 0x32, 0xdf, 0x34, + 0xd7, 0xa4, 0x49, 0xf5, 0x66, 0x5b, 0xe6, 0x9a, + 0xf4, 0x89, 0x3e, 0xac, 0xcb, 0x7c, 0xd3, 0x5e, + 0x91, 0x27, 0xd5, 0x99, 0x6f, 0x9a, 0x6b, 0xd2, + 0x24, 0xfa, 0xb3, 0x2d, 0xf3, 0x4d, 0x7a, 0x44, + 0x9f, 0x56, 0x65, 0xbe, 0x69, 0xaf, 0x48, 0x93, + 0xea, 0xcc, 0xb7, 0xcd, 0x35, 0xe9, 0x12, 0x7d, + 0x59, 0x96, 0xf9, 0xa6, 0xbb, 0x65, 0x5b, 0x35, + 0xef, 0xd2, 0x92, 0xe4, 0xed, 0x35, 0x08, 0x8a, + 0x14, 0x53, 0xee, 0x42, 0xc2, 0xcc, 0x41, 0xa8, + 0x32, 0xfb, 0x90, 0x63, 0xb7, 0xdc, 0x82, 0x99, + 0xfa, 0x95, 0x3f, 0x09, 0x47, 0xeb, 0x47, 0x5c, + 0x4d, 0xe3, 0x47, 0xa4, 0x39, 0xbf, 0xbb, 0x1f, + 0xfd, 0x67, 0x6b, 0x5e, 0xe8, 0x7f, 0x2c, 0x6b, + 0xdd, 0x0f, 0xe5, 0x8d, 0x7b, 0xa1, 0xfc, 0xb1, + 0xaf, 0x74, 0x3f, 0x96, 0x35, 0xee, 0x87, 0xf2, + 0xc6, 0xbd, 0xd0, 0xfe, 0x58, 0xd7, 0xba, 0x1f, + 0xcb, 0x1a, 0xa1, 0x8a, 0xc7, 0xdc, 0xc8, 0xd6, + 0x45, 0x24, 0xc3, 0xdb, 0x50, 0xf1, 0x75, 0x39, + 0x32, 0x19, 0x96, 0x0e, 0xd6, 0x6e, 0xda, 0xb8, + 0x39, 0xa9, 0x39, 0x1f, 0xf9, 0x1a, 0x91, 0xd9, + 0x0f, 0xb3, 0x56, 0x8e, 0x51, 0x5c, 0x9b, 0x1a, + 0x44, 0x54, 0x2e, 0xd8, 0xae, 0xca, 0x7d, 0x4a, + 0xcd, 0x45, 0x71, 0xad, 0x59, 0x6a, 0xa3, 0x35, + 0x51, 0xd9, 0xc0, 0x31, 0xc2, 0x01, 0x11, 0x45, + 0x46, 0xad, 0xa1, 0xcb, 0xaf, 0xc8, 0x0d, 0xe5, + 0x8d, 0xe2, 0x39, 0x99, 0x07, 0x46, 0x96, 0x51, + 0xd7, 0x6b, 0x33, 0x18, 0xc7, 0x8d, 0x7b, 0x34, + 0x51, 0x5e, 0xe7, 0x5e, 0x8d, 0x96, 0xf6, 0x82, + 0xaa, 0xd5, 0x3e, 0xe5, 0x2e, 0x8b, 0x52, 0xf9, + 0x71, 0xa6, 0xc8, 0x9b, 0xa3, 0x95, 0xfc, 0x87, + 0x5e, 0x7a, 0x62, 0x52, 0x15, 0xb8, 0x7c, 0xac, + 0xe0, 0xcd, 0xd9, 0x2b, 0x37, 0xee, 0x8d, 0x27, + 0x45, 0x50, 0x85, 0x82, 0x2b, 0x53, 0xc5, 0xd7, + 0x06, 0xd5, 0x62, 0xe6, 0xc7, 0x4d, 0x09, 0x6d, + 0x8b, 0x66, 0xc4, 0x27, 0xa9, 0x75, 0xe6, 0xc1, + 0x19, 0x89, 0xd5, 0x7b, 0xb8, 0x8e, 0xbd, 0x6c, + 0x88, 0x67, 0xe7, 0x88, 0x1b, 0xd6, 0x5a, 0x22, + 0xb4, 0x58, 0xb1, 0x8a, 0xa1, 0x5e, 0xea, 0xc7, + 0x96, 0xc3, 0x09, 0xaa, 0x75, 0xd4, 0x5a, 0xdc, + 0x58, 0x03, 0xd4, 0xaa, 0xe8, 0xe7, 0xd8, 0xc8, + 0x80, 0x59, 0x73, 0x1a, 0x92, 0xa9, 0x4e, 0x6b, + 0x51, 0x4a, 0x6a, 0xb6, 0x57, 0xbd, 0x7e, 0xcd, + 0x4d, 0x28, 0x24, 0x8c, 0x81, 0x9c, 0x12, 0x96, + 0x41, 0x20, 0x92, 0x99, 0x82, 0x25, 0x40, 0x11, + 0x00, 0x14, 0xc8, 0xc7, 0xba, 0x1f, 0xcb, 0x1a, + 0xf7, 0x43, 0xf9, 0x63, 0x5e, 0xe8, 0x7f, 0x2c, + 0x6b, 0xdd, 0x0f, 0xe5, 0x8d, 0x7b, 0xa1, 0xfc, + 0xb1, 0xaf, 0x74, 0x3f, 0x96, 0x35, 0xee, 0x87, + 0xf2, 0xc6, 0xb8, 0x4f, 0x6f, 0xf0, 0xb8, 0x87, + 0xf9, 0x69, 0xff, 0x00, 0x53, 0x87, 0x6e, 0xae, + 0x24, 0x95, 0x8e, 0xb3, 0x94, 0xa3, 0x6a, 0x63, + 0xfe, 0x49, 0x97, 0x8a, 0xbd, 0x9a, 0xf2, 0x7f, + 0x78, 0x59, 0x0a, 0x31, 0x12, 0xf2, 0x49, 0x0c, + 0x8f, 0x96, 0x3e, 0xae, 0x37, 0x24, 0x29, 0xba, + 0xac, 0xb6, 0x31, 0x76, 0x60, 0x92, 0x98, 0x86, + 0x53, 0xca, 0xbc, 0x89, 0x9d, 0x95, 0xef, 0xb2, + 0xeb, 0x9d, 0x5a, 0x22, 0x2b, 0x6f, 0x46, 0xdd, + 0x6a, 0xf4, 0xdc, 0xab, 0x00, 0x81, 0xe9, 0xcd, + 0x72, 0x7b, 0x08, 0x7c, 0x0f, 0xd6, 0x47, 0x83, + 0x26, 0x97, 0x62, 0xec, 0x51, 0x52, 0xb7, 0x67, + 0xfb, 0x3f, 0x69, 0xed, 0x9d, 0x3e, 0x9e, 0xde, + 0x12, 0xea, 0x47, 0x9c, 0x3e, 0xd9, 0xfe, 0x17, + 0x3f, 0x53, 0x63, 0xd1, 0xd3, 0xc6, 0xd9, 0xbf, + 0x4f, 0x21, 0x6b, 0x23, 0x16, 0x2d, 0xd8, 0xae, + 0xd2, 0xae, 0x33, 0x52, 0xbd, 0x7e, 0x9d, 0x44, + 0x83, 0x52, 0xf8, 0x69, 0xcc, 0xb9, 0xd6, 0x58, + 0xe0, 0x35, 0xc0, 0x47, 0x2a, 0x24, 0x48, 0xa7, + 0x7e, 0x5d, 0xd4, 0xab, 0x81, 0x76, 0xdd, 0xfc, + 0x3e, 0x53, 0x23, 0xd4, 0x5a, 0x7a, 0x3d, 0xb6, + 0xae, 0x38, 0xe9, 0xe4, 0x4d, 0x2c, 0x8b, 0x06, + 0xc6, 0x76, 0x97, 0xf2, 0xd9, 0x09, 0x62, 0xc0, + 0x88, 0x9a, 0xee, 0x7e, 0x4d, 0x87, 0x9e, 0x6d, + 0xf5, 0x33, 0x34, 0x97, 0xf5, 0xc5, 0x7b, 0x2f, + 0x69, 0x14, 0x51, 0x5a, 0x0b, 0x33, 0x51, 0xef, + 0x53, 0xaa, 0x56, 0xbd, 0x63, 0xb7, 0xa4, 0x93, + 0xd9, 0xa0, 0x0c, 0x3a, 0x3c, 0xb7, 0xab, 0xec, + 0xd6, 0x4a, 0xf9, 0x18, 0x64, 0x72, 0x18, 0x87, + 0x78, 0x4a, 0xbd, 0x51, 0x4a, 0x0c, 0x6d, 0x2e, + 0xa5, 0x57, 0xb8, 0x2e, 0x55, 0xc8, 0xe6, 0x9c, + 0x11, 0x35, 0x8a, 0xf2, 0x05, 0xd5, 0xdb, 0x4b, + 0x2d, 0xca, 0x45, 0xda, 0x92, 0x6a, 0xb2, 0xbe, + 0xe0, 0x6a, 0xfb, 0xcb, 0x1e, 0x5d, 0x8b, 0x28, + 0xbc, 0x66, 0x33, 0x33, 0x8a, 0xad, 0x45, 0xb4, + 0xd5, 0x52, 0xf3, 0xe5, 0x75, 0xf1, 0xb4, 0x28, + 0xf4, 0xb2, 0x41, 0x36, 0xd0, 0x74, 0xa5, 0xcb, + 0xc7, 0x2e, 0xc8, 0xde, 0xe4, 0x7d, 0x71, 0xe6, + 0xb0, 0xae, 0x57, 0x4a, 0x77, 0xd7, 0x12, 0xf5, + 0x61, 0x8e, 0xc5, 0xe6, 0x9b, 0x94, 0xab, 0x62, + 0x6b, 0xf2, 0x4b, 0xa1, 0x2d, 0xc8, 0x76, 0xca, + 0xb6, 0xab, 0xf3, 0x4c, 0x2c, 0xd9, 0x5e, 0xca, + 0x2b, 0xba, 0x00, 0x88, 0x41, 0xcb, 0x86, 0x26, + 0x4c, 0x3a, 0x9c, 0xe3, 0x15, 0x10, 0xab, 0x2f, + 0xab, 0x6a, 0xa6, 0x56, 0x9e, 0x4f, 0x22, 0x74, + 0xea, 0xd7, 0xc9, 0x1a, 0xb2, 0x75, 0xc6, 0xb8, + 0x05, 0x64, 0xc5, 0xab, 0x23, 0x0b, 0xa3, 0x2b, + 0x5b, 0xc5, 0x6c, 0xbd, 0xb5, 0x86, 0x13, 0xa2, + 0x7b, 0x3c, 0x14, 0x14, 0x5b, 0xc3, 0xd5, 0x8b, + 0xcd, 0x51, 0xe1, 0xac, 0xd3, 0x55, 0xa7, 0xa1, + 0x08, 0x37, 0x5e, 0xb9, 0x98, 0xc5, 0x5f, 0x61, + 0xb2, 0xb8, 0x5b, 0xb1, 0x15, 0xaa, 0xae, 0xb6, + 0x3b, 0xa0, 0x1c, 0x96, 0x2d, 0x19, 0xb7, 0x66, + 0x48, 0x84, 0x34, 0xa1, 0x6c, 0x15, 0xae, 0xd4, + 0x4e, 0x49, 0x1c, 0x13, 0x8d, 0xaf, 0xce, 0xb5, + 0x78, 0xb6, 0x30, 0xf7, 0x30, 0x7d, 0xa8, 0x9d, + 0xb3, 0xcb, 0x95, 0x27, 0xd8, 0x5d, 0xd0, 0x20, + 0xea, 0x19, 0xf3, 0x2f, 0xa8, 0xb5, 0x73, 0x17, + 0x25, 0xda, 0x8a, 0x5d, 0xeb, 0xd5, 0xd9, 0xc4, + 0xfe, 0x10, 0xc8, 0x45, 0xba, 0x94, 0xc6, 0x51, + 0x18, 0xf9, 0xbc, 0xa4, 0x2a, 0xb2, 0xfb, 0x4d, + 0x85, 0x5d, 0x35, 0xbe, 0xd9, 0xbe, 0x59, 0x62, + 0x2a, 0x2d, 0xdd, 0x05, 0x2c, 0xab, 0xae, 0x0d, + 0x93, 0x15, 0xd2, 0x76, 0xb3, 0x99, 0x3b, 0x4a, + 0x5f, 0x12, 0x03, 0x6e, 0x5f, 0x52, 0x46, 0x59, + 0xe1, 0x9c, 0x50, 0x51, 0xaa, 0x20, 0xbf, 0x09, + 0x5b, 0x25, 0x2e, 0xbb, 0x16, 0x3d, 0x48, 0xeb, + 0x1f, 0x89, 0x26, 0xc0, 0x89, 0x9d, 0x93, 0x14, + 0x14, 0xc6, 0xe6, 0x10, 0x15, 0xb1, 0x97, 0xaa, + 0x5a, 0xc6, 0x51, 0x4d, 0x68, 0xa5, 0x72, 0xf5, + 0xa1, 0xb6, 0x03, 0x94, 0x7b, 0xe6, 0xf2, 0x49, + 0xe7, 0x01, 0x61, 0x7b, 0xa5, 0xd5, 0x08, 0x87, + 0xa0, 0xb5, 0xae, 0xcc, 0x28, 0x60, 0x75, 0x55, + 0x77, 0x0b, 0x2c, 0x80, 0xac, 0xca, 0x96, 0xa2, + 0x11, 0x4a, 0xa3, 0x24, 0x8f, 0xc1, 0x58, 0xcc, + 0x7e, 0x42, 0x9e, 0xe5, 0x91, 0x54, 0xc0, 0x11, + 0xe2, 0x94, 0xda, 0x97, 0xfd, 0xd0, 0x8b, 0x98, + 0x2c, 0xa1, 0xb8, 0x0c, 0x95, 0x1b, 0xcd, 0xf0, + 0x95, 0x23, 0x5e, 0x47, 0x33, 0x75, 0xcc, 0xc7, + 0x34, 0x15, 0x6a, 0xaf, 0x84, 0x6c, 0xcb, 0xaa, + 0x95, 0x27, 0xf3, 0xc4, 0xb1, 0x95, 0x63, 0x97, + 0xa9, 0xcd, 0x15, 0xba, 0xbc, 0xb2, 0x22, 0xd5, + 0xf3, 0xf5, 0x02, 0x93, 0x20, 0x99, 0x66, 0xca, + 0x2a, 0xf4, 0x6d, 0xe4, 0x9f, 0x46, 0x9e, 0x39, + 0xf7, 0xcf, 0xac, 0xc2, 0x51, 0x36, 0xad, 0x26, + 0x39, 0x5b, 0xa1, 0x32, 0x08, 0x87, 0x13, 0x98, + 0xe7, 0x72, 0xf3, 0x32, 0x7c, 0x91, 0xf5, 0x01, + 0x6b, 0x02, 0x63, 0x18, 0x42, 0xb5, 0xac, 0x22, + 0x48, 0xd8, 0x67, 0x3c, 0xa0, 0x00, 0x31, 0xde, + 0x44, 0x45, 0x31, 0x03, 0x11, 0xdf, 0x33, 0x3b, + 0x6b, 0x1d, 0x41, 0x9c, 0xbd, 0x7c, 0x6e, 0x1f, + 0x13, 0x8f, 0xb3, 0xcb, 0x3c, 0xc3, 0x16, 0x6a, + 0x50, 0x42, 0x9e, 0x22, 0x51, 0xe5, 0x81, 0x64, + 0x10, 0xef, 0xf7, 0xe2, 0x74, 0xcf, 0xc1, 0xcb, + 0xf5, 0xaa, 0xd6, 0x1f, 0xf1, 0xaa, 0xff, 0x00, + 0x65, 0xb7, 0xa0, 0xf7, 0xa3, 0x47, 0xef, 0x4e, + 0xad, 0x7e, 0x33, 0xc8, 0x7e, 0xd0, 0x5a, 0x1f, + 0xf3, 0xc3, 0xff, 0x00, 0x81, 0x9a, 0xc5, 0x24, + 0x0b, 0x94, 0x72, 0x97, 0x32, 0x0f, 0xb1, 0x31, + 0xdd, 0x27, 0x18, 0xe8, 0xa8, 0xaa, 0xea, 0x29, + 0xfe, 0x10, 0x01, 0x59, 0x6b, 0x60, 0x7c, 0x9c, + 0xe5, 0xbf, 0xdc, 0x8d, 0x79, 0x75, 0xe5, 0xd7, + 0x97, 0x4a, 0xc6, 0x85, 0x91, 0xab, 0x2c, 0x5b, + 0x99, 0xd6, 0x25, 0xcb, 0x60, 0x61, 0x41, 0xcf, + 0x3e, 0x24, 0x1a, 0xfc, 0xbf, 0xe5, 0x77, 0x6a, + 0xc6, 0x47, 0x17, 0x9d, 0xc7, 0x67, 0x55, 0x4a, + 0x47, 0xb7, 0x05, 0x2d, 0xa1, 0xb5, 0x96, 0x73, + 0xb4, 0x36, 0x62, 0x1e, 0xfe, 0x61, 0x82, 0xf7, + 0x7e, 0xe2, 0x44, 0x7c, 0x7f, 0x18, 0x60, 0xb9, + 0x61, 0xfd, 0x17, 0xf4, 0x27, 0xba, 0x1d, 0xd2, + 0x67, 0x4a, 0x66, 0x67, 0x96, 0x22, 0x19, 0xb7, + 0x24, 0xee, 0x5e, 0x2f, 0x97, 0xcb, 0xdd, 0xe5, + 0xd5, 0x14, 0xd8, 0x19, 0x63, 0x6f, 0x53, 0x4d, + 0xb0, 0x14, 0xad, 0xa5, 0x03, 0x2f, 0x26, 0x72, + 0xd6, 0xde, 0x42, 0x25, 0x96, 0x04, 0x00, 0x49, + 0xa0, 0x23, 0xe2, 0x11, 0xf2, 0xf8, 0xd0, 0x3c, + 0xe5, 0xc8, 0xe0, 0x62, 0x8f, 0x68, 0x9e, 0x46, + 0x81, 0x2c, 0xf6, 0x9f, 0x24, 0xf2, 0x9c, 0x44, + 0xed, 0x3f, 0x73, 0xbb, 0xbf, 0x48, 0xcc, 0x5c, + 0xe2, 0x1a, 0x38, 0x84, 0xd8, 0xb0, 0xfa, 0xeb, + 0x1b, 0x8a, 0xee, 0x93, 0x41, 0x4c, 0x4e, 0xcd, + 0x2b, 0x49, 0x82, 0x99, 0x88, 0xe6, 0xe5, 0x81, + 0xee, 0x8f, 0xbf, 0xae, 0xc9, 0xbf, 0x6e, 0x03, + 0xae, 0xbb, 0x95, 0xed, 0x53, 0x03, 0x62, 0x9f, + 0x51, 0xa4, 0x42, 0xb7, 0x6c, 0x30, 0x5c, 0x9b, + 0x90, 0xc8, 0x90, 0xf3, 0x14, 0x41, 0x7b, 0x93, + 0x31, 0x91, 0x29, 0x35, 0x85, 0x7b, 0x04, 0xc5, + 0x7d, 0x94, 0x05, 0x2d, 0x23, 0x5f, 0xf9, 0xc1, + 0x81, 0xdc, 0x3f, 0xfb, 0xa8, 0x8d, 0x64, 0xb2, + 0xc9, 0xef, 0xad, 0x8d, 0x94, 0x01, 0x8c, 0x0b, + 0x0d, 0xae, 0x63, 0xda, 0x21, 0xca, 0xa8, 0x11, + 0xe5, 0xe5, 0x50, 0x49, 0x35, 0xc5, 0x25, 0xe2, + 0x44, 0x0c, 0x72, 0xec, 0x7c, 0xc3, 0x0f, 0x95, + 0xb6, 0x10, 0x45, 0xca, 0x2e, 0x90, 0x3e, 0x91, + 0x17, 0x7f, 0x8a, 0x2c, 0xdb, 0x92, 0x4b, 0xc5, + 0x2e, 0xe8, 0x9d, 0xfc, 0x59, 0xfb, 0xd3, 0xa9, + 0xb1, 0xd2, 0x77, 0x42, 0x27, 0x69, 0x7f, 0x4c, + 0xfa, 0x31, 0x3c, 0xdc, 0xbb, 0x4b, 0x76, 0xe4, + 0xdf, 0x9a, 0x60, 0x76, 0xdf, 0xdd, 0x77, 0x79, + 0x75, 0x84, 0x2c, 0xc3, 0xdb, 0x5a, 0x9e, 0x62, + 0xbb, 0x6c, 0xf5, 0x2a, 0xd4, 0xb3, 0x6d, 0xd5, + 0x97, 0x09, 0x93, 0x40, 0x1a, 0x96, 0x92, 0x32, + 0x7b, 0x4b, 0xdd, 0x29, 0x6b, 0x3e, 0x92, 0xfc, + 0x79, 0x29, 0xd8, 0xfa, 0x6d, 0x1a, 0xca, 0x7b, + 0xc5, 0x53, 0x3b, 0xca, 0xd2, 0xc2, 0x98, 0x0d, + 0xe7, 0x94, 0x8e, 0x04, 0x66, 0x43, 0x78, 0x8f, + 0xe1, 0x6d, 0xf7, 0x7e, 0xf6, 0xa4, 0x96, 0xb6, + 0x18, 0xc4, 0x88, 0xc9, 0x00, 0x11, 0x44, 0x11, + 0xcf, 0x28, 0x0c, 0xc8, 0xc4, 0xc4, 0x11, 0x97, + 0x70, 0x47, 0x94, 0xa7, 0xba, 0x37, 0x9d, 0x4a, + 0xda, 0x26, 0xb6, 0x0f, 0xba, 0x06, 0x09, 0x01, + 0x8e, 0xf1, 0x13, 0x1c, 0xc2, 0x5b, 0x14, 0x6f, + 0x13, 0x13, 0x1b, 0xc7, 0x92, 0x62, 0x75, 0xe5, + 0xd7, 0x97, 0x5e, 0x5d, 0x15, 0x1e, 0x79, 0xec, + 0xf9, 0x1a, 0x19, 0x14, 0xd9, 0x5f, 0xdc, 0x28, + 0x4d, 0x1b, 0x16, 0x94, 0x7b, 0x79, 0x3a, 0x8b, + 0x6a, 0x06, 0x40, 0xfc, 0xa3, 0x12, 0x51, 0x1d, + 0xc5, 0x3f, 0x52, 0xa7, 0xe1, 0x28, 0xfd, 0x68, + 0xeb, 0x3d, 0x52, 0xbe, 0x51, 0x61, 0x5e, 0xae, + 0x6b, 0x2b, 0x59, 0x01, 0x38, 0x9c, 0x23, 0x24, + 0x12, 0x8b, 0xf6, 0x14, 0xa0, 0xea, 0x37, 0x1a, + 0x6d, 0x3e, 0x50, 0x11, 0x8e, 0x76, 0x19, 0xb0, + 0xb6, 0xe6, 0x32, 0x22, 0x99, 0x9d, 0x79, 0xd9, + 0x5e, 0xa5, 0xc0, 0x7d, 0x15, 0xaa, 0xf5, 0xec, + 0xf1, 0x0d, 0x6a, 0x55, 0xcc, 0xe3, 0xaf, 0x60, + 0xf0, 0xb8, 0x12, 0x91, 0x5c, 0x4f, 0x8c, 0x29, + 0x58, 0xe2, 0x64, 0x9d, 0x61, 0x9f, 0x63, 0x42, + 0x86, 0x3c, 0x66, 0x10, 0xf3, 0x48, 0xae, 0x0c, + 0xc6, 0xf7, 0x6d, 0xca, 0xd8, 0x6d, 0x59, 0xe2, + 0xac, 0x87, 0x0f, 0xd1, 0x15, 0x63, 0xb8, 0x69, + 0x4c, 0x4d, 0x5a, 0x0d, 0x11, 0x7d, 0xe7, 0xb2, + 0x70, 0x2d, 0x87, 0xb4, 0x05, 0xf5, 0x84, 0x12, + 0x2b, 0x48, 0xb2, 0x61, 0xc4, 0x46, 0x1e, 0x24, + 0x6a, 0xa6, 0x2f, 0x2b, 0xc4, 0xe8, 0xac, 0x25, + 0x96, 0xbd, 0x42, 0xc4, 0x06, 0x17, 0x01, 0xd6, + 0x7a, 0xea, 0x5d, 0x56, 0x3d, 0x31, 0x44, 0x3c, + 0x10, 0x64, 0x4e, 0xb9, 0x62, 0x5f, 0xe3, 0x90, + 0xca, 0x6b, 0xd7, 0x51, 0x3d, 0xa5, 0xe2, 0xf2, + 0x96, 0x1a, 0xbd, 0xac, 0xb1, 0xcd, 0xce, 0x21, + 0x7d, 0xa4, 0xd4, 0x6a, 0xf1, 0x9c, 0x38, 0xb4, + 0x51, 0x80, 0x6c, 0xd3, 0xa8, 0xc6, 0xaa, 0x70, + 0x6c, 0x2b, 0x3d, 0x6b, 0x90, 0x5d, 0x51, 0xea, + 0x23, 0x91, 0x23, 0x1c, 0x93, 0x26, 0x5b, 0x8d, + 0xdc, 0x7c, 0x65, 0x59, 0x19, 0x7c, 0x7e, 0x16, + 0xa6, 0x61, 0xcf, 0x2c, 0x67, 0x0e, 0x4d, 0x66, + 0x1b, 0x15, 0x5a, 0xcd, 0xaa, 0x31, 0x56, 0x30, + 0x70, 0x63, 0xd1, 0xaf, 0x6c, 0x79, 0x2c, 0x76, + 0x89, 0xdd, 0x95, 0xd9, 0xba, 0xf9, 0x58, 0x3c, + 0x94, 0xb1, 0xa3, 0x96, 0xb8, 0xfc, 0x85, 0xea, + 0x58, 0xb7, 0x2e, 0x63, 0x19, 0xc2, 0xab, 0x47, + 0x68, 0xca, 0x53, 0x45, 0x85, 0x87, 0x4f, 0xc0, + 0x2c, 0x6f, 0x49, 0x66, 0xf8, 0x12, 0x98, 0x29, + 0x32, 0x01, 0x99, 0x8d, 0xa7, 0xbb, 0x43, 0xcb, + 0x90, 0x6d, 0xb4, 0x82, 0x1c, 0xcb, 0x56, 0x87, + 0x87, 0x70, 0x50, 0x80, 0x34, 0x5c, 0xb1, 0x59, + 0x92, 0x13, 0x18, 0xa2, 0xf6, 0xae, 0x9a, 0x92, + 0xfd, 0xca, 0x77, 0x01, 0x78, 0xf3, 0xfd, 0xcd, + 0x23, 0xbe, 0xd4, 0xf6, 0x9e, 0xe4, 0x6d, 0xc3, + 0x78, 0x69, 0x96, 0xcf, 0x4a, 0x5f, 0x10, 0x31, + 0x18, 0x8d, 0xf7, 0x94, 0xc4, 0xb4, 0x63, 0xca, + 0x4b, 0x89, 0x28, 0xde, 0x23, 0x4c, 0x6d, 0xb8, + 0xb9, 0x5d, 0x6a, 0x0e, 0xa3, 0x0d, 0xdc, 0x35, + 0x86, 0x58, 0x82, 0xe3, 0x97, 0x73, 0x99, 0x2c, + 0x44, 0x78, 0x83, 0xce, 0x1c, 0xc7, 0xee, 0x47, + 0x9a, 0x37, 0x98, 0xdf, 0x50, 0x3d, 0xa1, 0x88, + 0x02, 0xab, 0x6a, 0xd0, 0x35, 0xdc, 0x3b, 0x85, + 0x80, 0x38, 0xad, 0x4d, 0x97, 0x05, 0x71, 0xfd, + 0x88, 0xfb, 0x25, 0x81, 0x01, 0x14, 0xc1, 0x72, + 0xef, 0xd4, 0x82, 0xef, 0x18, 0xd5, 0x3c, 0xf8, + 0xe7, 0xa0, 0xac, 0x32, 0xfb, 0x6a, 0xdc, 0xa8, + 0x58, 0x2e, 0x1d, 0x81, 0xae, 0xae, 0xa5, 0xb4, + 0xa5, 0xc2, 0x7e, 0x0b, 0xe6, 0x2e, 0x66, 0xd3, + 0x35, 0xb2, 0x26, 0x3c, 0x52, 0x20, 0xf2, 0x6f, + 0xdf, 0x8a, 0xa1, 0x6f, 0x8a, 0x61, 0x35, 0xac, + 0x61, 0x15, 0x95, 0xca, 0xda, 0x8c, 0x07, 0x0e, + 0x4f, 0x61, 0x69, 0xb9, 0xb5, 0x8a, 0xb8, 0x47, + 0x83, 0x39, 0x4a, 0x17, 0x66, 0x12, 0x99, 0x23, + 0x9d, 0xf9, 0x88, 0xfe, 0xec, 0x0c, 0x6a, 0xe5, + 0x9c, 0xd6, 0x60, 0x97, 0x15, 0xf2, 0x8f, 0xc3, + 0x26, 0xb5, 0x5c, 0x2f, 0x0e, 0x43, 0xec, 0xdd, + 0xa9, 0x10, 0x77, 0x4f, 0xa8, 0xec, 0x49, 0x02, + 0xab, 0x55, 0x03, 0x46, 0xe7, 0xd2, 0x64, 0xb5, + 0x96, 0x54, 0x01, 0x03, 0x10, 0xc3, 0x10, 0xa4, + 0x8e, 0x26, 0x43, 0xf1, 0xe4, 0x13, 0x6e, 0x6e, + 0x86, 0x0f, 0x87, 0xa0, 0xd7, 0x44, 0x2a, 0x15, + 0xf7, 0xf5, 0x97, 0x18, 0xc3, 0x05, 0xdb, 0xac, + 0x80, 0x62, 0x9c, 0xae, 0x72, 0x01, 0xb2, 0x12, + 0x30, 0x52, 0x3b, 0x4e, 0xb0, 0x56, 0x6f, 0xe6, + 0xae, 0x73, 0xe6, 0x66, 0xcf, 0x37, 0x64, 0xc3, + 0x70, 0xbf, 0x2d, 0x50, 0xaf, 0x7e, 0x69, 0x6f, + 0x0a, 0x6e, 0x1a, 0x4e, 0xc1, 0x6d, 0x1d, 0x4e, + 0x4e, 0xaa, 0xb9, 0xa7, 0xda, 0xe0, 0xa3, 0x7e, + 0x6d, 0x62, 0x38, 0x79, 0xbc, 0x44, 0xb3, 0x9b, + 0xee, 0xa0, 0x87, 0xbc, 0x70, 0x7c, 0x3b, 0x1c, + 0x85, 0x6a, 0xf9, 0xd3, 0x64, 0xa4, 0x27, 0x19, + 0xde, 0x23, 0xc9, 0xce, 0x10, 0x73, 0xbf, 0x7f, + 0x29, 0x69, 0xb6, 0xa7, 0x88, 0xe4, 0xb0, 0x6b, + 0xc4, 0xdb, 0xbd, 0x16, 0xe3, 0x03, 0xc3, 0x9d, + 0x72, 0xb9, 0x56, 0xc1, 0x63, 0x67, 0x19, 0xb7, + 0x82, 0xe5, 0x51, 0x62, 0x72, 0x9d, 0x35, 0xcf, + 0xf8, 0x15, 0x5a, 0x0e, 0x28, 0xf2, 0xc6, 0xbc, + 0xec, 0xaf, 0x52, 0xe0, 0x3e, 0x8a, 0xd7, 0x9d, + 0x95, 0xea, 0x5c, 0x07, 0xd1, 0x5a, 0xe1, 0x9c, + 0x86, 0x45, 0xd0, 0xfb, 0x6f, 0x9c, 0xe4, 0x35, + 0xa2, 0x8a, 0xf5, 0xe0, 0xa1, 0x39, 0x56, 0x21, + 0x7e, 0xd3, 0x55, 0x48, 0x40, 0xf2, 0xa9, 0x60, + 0x3e, 0x22, 0x87, 0x9b, 0x6e, 0x62, 0xdc, 0xe4, + 0x8a, 0x74, 0xe5, 0x35, 0x29, 0xb7, 0x52, 0xd0, + 0x74, 0xad, 0xd2, 0xb4, 0x10, 0xda, 0xd6, 0x55, + 0xbe, 0xfc, 0xac, 0x09, 0xfe, 0x10, 0x17, 0x8c, + 0xa6, 0x0e, 0xc6, 0xb3, 0xef, 0x19, 0xf2, 0xc4, + 0x91, 0x85, 0x0c, 0xb5, 0x78, 0x29, 0xdf, 0xa4, + 0xac, 0xc2, 0x89, 0x61, 0xfe, 0x28, 0x75, 0xf1, + 0x6e, 0x6f, 0x2c, 0x7d, 0xce, 0xa3, 0x58, 0x5f, + 0x7c, 0xa7, 0x5f, 0x6b, 0xe6, 0xbd, 0x6d, 0x53, + 0xe8, 0x6d, 0x7d, 0xaf, 0x9a, 0xf5, 0xb5, 0x4f, + 0xa1, 0xb5, 0xf6, 0xbe, 0x6b, 0xd6, 0xd5, 0x3e, + 0x86, 0xd7, 0xda, 0xf9, 0xaf, 0x5b, 0x54, 0xfa, + 0x1b, 0x5f, 0x6b, 0xe6, 0xbd, 0x6d, 0x53, 0xe8, + 0x6d, 0x7d, 0xaf, 0x9a, 0xf5, 0xb5, 0x4f, 0xa1, + 0xb5, 0xf6, 0xbe, 0x6b, 0xd6, 0xd5, 0x3e, 0x86, + 0xd1, 0x72, 0x2b, 0x3a, 0x1c, 0xd1, 0xb1, 0x72, + 0xe6, 0x6b, 0x0f, 0x34, 0x7d, 0xe2, 0xdb, 0x0f, + 0xdf, 0xff, 0x00, 0x3e, 0xbe, 0xd7, 0xcd, 0x7a, + 0xda, 0xa7, 0xd0, 0xda, 0xfb, 0x5f, 0x35, 0xeb, + 0x6a, 0x9f, 0x43, 0x6b, 0xed, 0x7c, 0xd7, 0xad, + 0xaa, 0x7d, 0x0d, 0xad, 0xe2, 0xbe, 0x6e, 0x26, + 0x3b, 0xe2, 0x63, 0x2f, 0x57, 0xbb, 0xfe, 0xc6, + 0xd6, 0xf3, 0x5f, 0x35, 0x33, 0x3f, 0xfd, 0xaf, + 0x57, 0xe8, 0x6d, 0x7d, 0xaf, 0x9a, 0xf5, 0xb5, + 0x4f, 0xa1, 0xb5, 0xf6, 0xbe, 0x6b, 0xd6, 0xd5, + 0x3e, 0x86, 0xd7, 0xda, 0xf9, 0xaf, 0x5b, 0x54, + 0xfa, 0x1b, 0x5f, 0x6b, 0xe6, 0xbd, 0x6d, 0x53, + 0xe8, 0x6d, 0x7d, 0xaf, 0x9a, 0xf5, 0xb5, 0x4f, + 0xa1, 0xb5, 0xf6, 0xbe, 0x6b, 0xd6, 0xd5, 0x3e, + 0x86, 0xd7, 0x6a, 0xc6, 0x63, 0x0e, 0x72, 0x23, + 0xf6, 0x1b, 0xd9, 0x3b, 0x63, 0x7c, 0xea, 0x7f, + 0x8f, 0x55, 0x03, 0x56, 0xad, 0x65, 0xbb, 0xfc, + 0x17, 0x31, 0x4d, 0x60, 0x7f, 0x02, 0x47, 0x72, + 0xde, 0x48, 0xa6, 0x48, 0x8a, 0x66, 0x48, 0xa6, + 0x77, 0x99, 0x99, 0xef, 0x99, 0x99, 0x9e, 0xf9, + 0x99, 0x9f, 0x2c, 0xe9, 0x9f, 0x83, 0x97, 0xeb, + 0x55, 0xac, 0x3f, 0xe3, 0x55, 0xfe, 0xcb, 0x6f, + 0x41, 0xef, 0x46, 0x8f, 0xde, 0x9d, 0x5a, 0xfc, + 0x67, 0x90, 0xfd, 0xa0, 0xb4, 0x3f, 0xe7, 0x87, + 0xff, 0x00, 0x0b, 0x35, 0xc2, 0x7f, 0xe3, 0x1f, + 0x11, 0xff, 0x00, 0xd4, 0xdc, 0x4f, 0xfb, 0x75, + 0xe5, 0xd7, 0x97, 0x5e, 0x5f, 0xfa, 0xf5, 0x50, + 0x23, 0xbf, 0x7a, 0x97, 0xff, 0x00, 0x67, 0x2d, + 0x71, 0x96, 0x43, 0x35, 0x4e, 0xc6, 0x32, 0xab, + 0x30, 0x36, 0xb1, 0xe8, 0xed, 0xab, 0x94, 0x4d, + 0x9b, 0x97, 0x8b, 0xa7, 0x54, 0x12, 0x0c, 0xd8, + 0x99, 0xb1, 0x77, 0xcc, 0x8c, 0x4f, 0x2e, 0xf1, + 0xbc, 0xc7, 0x97, 0x59, 0xaa, 0x76, 0x9f, 0x91, + 0xb9, 0xd9, 0x38, 0x0b, 0xb5, 0x75, 0x7a, 0x0a, + 0xaf, 0x81, 0x49, 0x05, 0x52, 0x7d, 0x5e, 0xc6, + 0xa1, 0xe7, 0x0b, 0x37, 0x79, 0xa0, 0x89, 0xd6, + 0xb6, 0x54, 0xc0, 0xa0, 0x63, 0x95, 0x9c, 0xde, + 0xd3, 0x84, 0xb1, 0xda, 0x9c, 0x9c, 0x72, 0x78, + 0x4a, 0x72, 0x9d, 0x75, 0xe3, 0xeb, 0xd8, 0x27, + 0xde, 0x6d, 0x46, 0x45, 0xd0, 0xa3, 0xe2, 0x2f, + 0x7b, 0xa4, 0x25, 0x5d, 0x82, 0x00, 0xd8, 0x15, + 0x72, 0x8f, 0x22, 0xc4, 0x58, 0x50, 0x5c, 0x19, + 0x60, 0xc6, 0xf0, 0xb6, 0xc6, 0x2e, 0xde, 0xf3, + 0x94, 0x28, 0x3c, 0x91, 0x2d, 0x67, 0x52, 0x53, + 0x37, 0x59, 0xca, 0x32, 0x4f, 0x91, 0x6c, 0x99, + 0x6f, 0xbf, 0x2c, 0x9c, 0xc6, 0xe5, 0x3b, 0x91, + 0x61, 0x9f, 0x99, 0xc4, 0x16, 0x61, 0x2c, 0xcd, + 0x64, 0x96, 0xa5, 0x0d, 0xf7, 0xd1, 0xe9, 0x32, + 0x25, 0x93, 0x2c, 0xe7, 0x47, 0x79, 0xf8, 0xbe, + 0x2f, 0x24, 0xf7, 0x77, 0xef, 0xae, 0x2d, 0xcb, + 0x53, 0xae, 0xac, 0x70, 0x61, 0xf8, 0x48, 0x97, + 0x8a, 0xaa, 0x1b, 0x38, 0x2a, 0x2e, 0xa9, 0xb0, + 0xd3, 0x25, 0xce, 0x3c, 0x8d, 0x31, 0x32, 0xe6, + 0x9e, 0x65, 0xc0, 0x4f, 0x28, 0x8c, 0x86, 0xd1, + 0x3b, 0xe1, 0xb2, 0x5c, 0x2c, 0x1d, 0xaf, 0x23, + 0x92, 0xcb, 0xdf, 0x3e, 0x24, 0x7a, 0x6b, 0x55, + 0x7b, 0xce, 0xdc, 0xd9, 0x2e, 0x98, 0xdb, 0x13, + 0x02, 0x84, 0x20, 0x91, 0xc9, 0xe3, 0x80, 0xab, + 0xa4, 0xae, 0x94, 0x89, 0xa6, 0x0f, 0xbf, 0xd9, + 0x0a, 0xaf, 0x0f, 0x4c, 0xcb, 0x2a, 0xdb, 0xc4, + 0x30, 0xab, 0xd2, 0x42, 0xac, 0x74, 0x6c, 0xde, + 0x52, 0x83, 0x3d, 0xd3, 0x12, 0x4b, 0x24, 0x87, + 0x91, 0x4c, 0xea, 0xf3, 0x44, 0xf4, 0x08, 0x19, + 0x2a, 0xe9, 0x14, 0x4c, 0xea, 0xfd, 0x5e, 0xc5, + 0x94, 0xb5, 0xc3, 0xb1, 0xc2, 0xa9, 0x65, 0x79, + 0x4d, 0x4c, 0x1a, 0xb0, 0x95, 0xe3, 0xb3, 0x73, + 0x26, 0xf2, 0x32, 0x16, 0x6f, 0xd5, 0xb6, 0xcb, + 0x40, 0xce, 0x59, 0x9a, 0xe2, 0x26, 0xc8, 0x98, + 0x59, 0xd7, 0xae, 0x45, 0x22, 0x6d, 0x1a, 0x98, + 0x2a, 0x14, 0x2c, 0xf0, 0xa1, 0x70, 0x74, 0x39, + 0x7d, 0xa8, 0x52, 0xac, 0x69, 0xcf, 0x65, 0xe6, + 0x61, 0xcd, 0xa8, 0x88, 0x2e, 0xd9, 0xe4, 0x85, + 0x57, 0x37, 0xa6, 0xb9, 0x81, 0x75, 0x5a, 0x4b, + 0x1e, 0x6b, 0x01, 0xec, 0x68, 0xd6, 0x13, 0x5b, + 0x8f, 0xb5, 0x8d, 0x6b, 0xec, 0xba, 0x10, 0xa8, + 0x4c, 0xe4, 0xa7, 0x0d, 0x73, 0xa7, 0xbb, 0x81, + 0x71, 0xc8, 0xc9, 0x47, 0x5b, 0x64, 0x89, 0x88, + 0x4c, 0x41, 0x17, 0x24, 0xc8, 0xef, 0x18, 0x36, + 0x70, 0x6a, 0x21, 0xcc, 0xb3, 0x98, 0xc9, 0x8e, + 0x78, 0xd3, 0x5e, 0xbd, 0x96, 0xf5, 0xc2, 0xf1, + 0x8a, 0x95, 0x73, 0xaa, 0x2c, 0x94, 0x23, 0xb3, + 0x72, 0xfb, 0x6c, 0x42, 0xe4, 0x15, 0xd2, 0x2e, + 0xa2, 0xf9, 0xfc, 0x6f, 0x64, 0xab, 0xb8, 0x69, + 0x40, 0x36, 0x95, 0x9c, 0x0c, 0x89, 0x0a, 0xd4, + 0xe4, 0xd6, 0xc9, 0x58, 0x62, 0x95, 0x6c, 0xd4, + 0xb7, 0x01, 0xaa, 0x4d, 0x16, 0x5c, 0xd2, 0x88, + 0x20, 0x21, 0x07, 0xc1, 0x47, 0x2e, 0xc3, 0xcb, + 0xae, 0x1b, 0xba, 0xde, 0x5e, 0xd3, 0x7f, 0x86, + 0xa8, 0x5a, 0xb0, 0x62, 0x30, 0x1d, 0x46, 0x33, + 0x9c, 0xa6, 0x76, 0x8e, 0xef, 0x29, 0x4e, 0xd1, + 0xf7, 0x23, 0xba, 0x3b, 0xa2, 0x35, 0xe5, 0xff, + 0x00, 0xaf, 0x5e, 0x5f, 0xfa, 0xf5, 0xe5, 0xd5, + 0x00, 0xdf, 0xcb, 0x5b, 0x2f, 0xff, 0x00, 0x56, + 0x1b, 0x21, 0x3f, 0x52, 0xa7, 0xe1, 0x28, 0xfd, + 0x68, 0xeb, 0x89, 0xbf, 0xd2, 0x1c, 0xdf, 0xf2, + 0x9d, 0xaf, 0xa9, 0x58, 0x8a, 0x76, 0x11, 0xb0, + 0x92, 0x29, 0x9f, 0x24, 0x0c, 0x34, 0x66, 0x66, + 0x7f, 0x8a, 0x23, 0xbe, 0x75, 0x79, 0x1e, 0x12, + 0xa3, 0x5c, 0x69, 0xf1, 0xae, 0x63, 0x29, 0xd7, + 0x7d, 0x80, 0x52, 0xac, 0xe1, 0xb2, 0x76, 0x13, + 0x2d, 0xb5, 0x4d, 0x85, 0x3d, 0x3b, 0x4d, 0x47, + 0x63, 0x02, 0x8a, 0x89, 0xe7, 0xb5, 0x60, 0x1e, + 0xb2, 0xaa, 0xb6, 0xf2, 0xb6, 0x07, 0x0d, 0x92, + 0xeb, 0xad, 0x54, 0x47, 0x21, 0x5a, 0xf3, 0x5a, + 0x6d, 0x1e, 0x9d, 0x7e, 0xdb, 0x7d, 0xb9, 0x37, + 0x0b, 0x4f, 0x7e, 0x40, 0x2a, 0xdd, 0xae, 0x11, + 0x63, 0xbf, 0x61, 0x6a, 0x59, 0x1b, 0xce, 0xda, + 0xe1, 0xbb, 0xed, 0xb7, 0x55, 0x3f, 0x5b, 0x76, + 0x2d, 0x15, 0xda, 0xed, 0x78, 0x2a, 0xd3, 0x92, + 0xbb, 0x67, 0x92, 0xa7, 0x34, 0xd2, 0xc2, 0x19, + 0xb9, 0x36, 0x58, 0xc6, 0x55, 0xe4, 0xad, 0x0c, + 0x34, 0x1c, 0x09, 0xd8, 0x85, 0xa4, 0xc5, 0x9a, + 0xca, 0xe7, 0xfb, 0x55, 0x49, 0x2c, 0xa7, 0x0f, + 0xd5, 0xc7, 0x85, 0x10, 0x78, 0x4d, 0xd1, 0xca, + 0x32, 0xbd, 0x3a, 0x57, 0x01, 0x95, 0x39, 0xbb, + 0x42, 0xab, 0x20, 0x2a, 0xd8, 0xb0, 0x36, 0x8c, + 0x46, 0xbb, 0x00, 0xab, 0xad, 0x6c, 0x37, 0x1c, + 0xae, 0x31, 0x85, 0x4b, 0x88, 0x52, 0x38, 0x95, + 0x62, 0xb0, 0x4b, 0x75, 0x41, 0xe2, 0xac, 0x7d, + 0x51, 0x8e, 0xcd, 0x42, 0xa0, 0x5e, 0x41, 0x63, + 0x59, 0x94, 0x4b, 0x39, 0xb9, 0xc1, 0xa0, 0x69, + 0x9a, 0xfb, 0xb4, 0xb7, 0x8e, 0x52, 0xe6, 0xef, + 0x0b, 0x51, 0x7a, 0x95, 0xca, 0x6b, 0xc3, 0xf1, + 0x04, 0x73, 0x2a, 0xd2, 0x9d, 0x5c, 0xca, 0xe3, + 0xf3, 0x76, 0x53, 0x57, 0x9e, 0x08, 0x97, 0x0d, + 0xb2, 0x16, 0x50, 0x3d, 0x29, 0xf1, 0xb9, 0xdb, + 0x00, 0x63, 0xcd, 0xb8, 0xeb, 0x31, 0x92, 0x55, + 0xde, 0x1e, 0xad, 0x57, 0x31, 0x62, 0xcb, 0xab, + 0x36, 0xb5, 0x8b, 0xed, 0xca, 0x5b, 0x16, 0x56, + 0xb9, 0x69, 0x0d, 0xb6, 0xb7, 0x66, 0x1c, 0x9c, + 0x2b, 0xe9, 0xb6, 0x52, 0x82, 0xea, 0xd1, 0xae, + 0xc6, 0xd9, 0x3e, 0x85, 0x25, 0xc2, 0x77, 0x31, + 0xc2, 0x35, 0xb6, 0x94, 0xd5, 0x55, 0xe0, 0xdb, + 0xb5, 0x1e, 0xb2, 0x70, 0xc8, 0xf6, 0x83, 0x56, + 0x52, 0x7b, 0x09, 0xf3, 0x4c, 0x8c, 0x35, 0xe4, + 0x6b, 0x0e, 0x91, 0x47, 0x8d, 0x2c, 0x0d, 0xc6, + 0x77, 0xd7, 0x12, 0x3d, 0x77, 0x38, 0x6d, 0x15, + 0xb8, 0x8c, 0x32, 0x4a, 0xa8, 0xc5, 0xd9, 0xb8, + 0xcb, 0xb7, 0x7b, 0x6d, 0x1b, 0xcc, 0xac, 0xcc, + 0x8f, 0x6a, 0xcc, 0xba, 0xae, 0x0a, 0x6b, 0x35, + 0xaa, 0xae, 0xe2, 0xb5, 0x4e, 0xaf, 0x3b, 0x98, + 0x4a, 0xae, 0x01, 0x5a, 0x08, 0xc7, 0x11, 0x8c, + 0xc9, 0xda, 0x44, 0x55, 0xec, 0x59, 0x6e, 0xde, + 0xb8, 0x70, 0x4f, 0x2b, 0x29, 0xe6, 0xd3, 0x95, + 0xae, 0x9d, 0xc6, 0x64, 0x7a, 0x97, 0x95, 0x59, + 0xb5, 0xaa, 0xcf, 0x37, 0x2b, 0x3b, 0x4c, 0x48, + 0xcc, 0x89, 0x69, 0x77, 0x9a, 0x58, 0xec, 0xa6, + 0x5b, 0x2b, 0x5e, 0xbd, 0x0b, 0x94, 0x1c, 0xeb, + 0x1c, 0xd5, 0xd6, 0x39, 0x4c, 0xbe, 0x62, 0xeb, + 0x1e, 0x14, 0x6e, 0x53, 0xb4, 0xa1, 0x6b, 0xdd, + 0x8f, 0x14, 0xc7, 0x54, 0x46, 0x7a, 0x73, 0xbc, + 0x14, 0x77, 0x6a, 0xac, 0x56, 0xbd, 0x8e, 0x4d, + 0xf9, 0x60, 0xe6, 0x4e, 0xbd, 0x8b, 0xaa, 0xaa, + 0xa2, 0x66, 0x46, 0x95, 0x4a, 0x59, 0x4a, 0xd3, + 0x66, 0xeb, 0xa1, 0x29, 0xb5, 0x52, 0xe6, 0x28, + 0x6c, 0x82, 0x6d, 0xda, 0x16, 0xd8, 0xa7, 0x78, + 0x0c, 0x09, 0xac, 0x59, 0x73, 0x65, 0xa2, 0x8d, + 0xae, 0xac, 0x2f, 0x12, 0x34, 0x96, 0xe9, 0x66, + 0xdd, 0xae, 0xe5, 0x89, 0xad, 0x5f, 0x20, 0x75, + 0x20, 0x96, 0xb6, 0x15, 0x59, 0x12, 0xb7, 0xd2, + 0x82, 0x18, 0x29, 0xad, 0xb1, 0x9f, 0xba, 0xdb, + 0x5c, 0x32, 0xbc, 0x73, 0xb1, 0xfd, 0xaa, 0xa0, + 0x64, 0xd8, 0xd2, 0x66, 0x33, 0x11, 0x7a, 0xed, + 0x27, 0xce, 0x51, 0x8d, 0xae, 0x4a, 0xb1, 0x76, + 0x95, 0x9b, 0x54, 0x4f, 0x93, 0x95, 0xca, 0x9a, + 0xed, 0x4c, 0xef, 0xca, 0xe1, 0xf1, 0xe2, 0x0b, + 0x5c, 0x1f, 0x01, 0x9e, 0xb6, 0xba, 0x09, 0x4e, + 0x0f, 0xc2, 0x82, 0x39, 0x2b, 0x03, 0x54, 0x4f, + 0xb7, 0x11, 0xdf, 0xed, 0xa3, 0x0e, 0xe9, 0xc9, + 0x48, 0x4f, 0x35, 0xa9, 0x74, 0x4c, 0x94, 0x4e, + 0xed, 0xdf, 0x59, 0x3a, 0x0b, 0xbb, 0x04, 0x2e, + 0xe2, 0xf6, 0xdd, 0x0a, 0xa2, 0xc8, 0x9e, 0x7a, + 0xc7, 0x5a, 0xc4, 0x76, 0x81, 0x0f, 0x2c, 0xa4, + 0x99, 0x09, 0xdc, 0xa3, 0xc5, 0x93, 0x80, 0xfb, + 0xbb, 0x7d, 0x5e, 0x14, 0xff, 0x00, 0x2b, 0x88, + 0x7f, 0x96, 0x9f, 0xfd, 0xd2, 0xcf, 0xc1, 0xcb, + 0xf5, 0xaa, 0xd6, 0x1f, 0xf1, 0xaa, 0xff, 0x00, + 0x65, 0xb7, 0xa0, 0xf7, 0xa3, 0x47, 0xef, 0x4e, + 0xad, 0x7e, 0x33, 0xc8, 0x7e, 0xd0, 0x5a, 0x1f, + 0xf3, 0xc3, 0xff, 0x00, 0x84, 0xf5, 0x48, 0xe8, + 0xac, 0xec, 0x59, 0xc0, 0x59, 0xbc, 0xd3, 0xaa, + 0xa1, 0x93, 0x6b, 0x71, 0xf9, 0x10, 0xab, 0xd6, + 0x72, 0x80, 0x77, 0x26, 0x15, 0x47, 0xd3, 0x09, + 0x68, 0xc0, 0xef, 0xd1, 0x7f, 0x3c, 0x6f, 0x0b, + 0x66, 0xa6, 0x24, 0xf6, 0x98, 0xee, 0x98, 0x99, + 0xef, 0x89, 0xfb, 0xd3, 0xfc, 0x7a, 0xf7, 0x71, + 0xf0, 0xbf, 0xa7, 0x5f, 0x64, 0x8f, 0x85, 0x1a, + 0x8b, 0x34, 0x2f, 0xd8, 0xa5, 0x64, 0x60, 0x84, + 0x6c, 0x54, 0xb4, 0xca, 0xcf, 0x11, 0x38, 0xd8, + 0xa2, 0x1a, 0x93, 0x06, 0x44, 0x14, 0x77, 0x14, + 0x41, 0x6d, 0x31, 0xdd, 0x3a, 0x05, 0xe4, 0xb3, + 0x59, 0x2c, 0x82, 0xd6, 0x5c, 0xeb, 0x0b, 0xd9, + 0x1b, 0x36, 0xc1, 0x65, 0x31, 0xb4, 0x90, 0x0d, + 0x86, 0xb2, 0x04, 0xa6, 0x3b, 0xa6, 0x47, 0x69, + 0xdb, 0xbb, 0x43, 0x56, 0x33, 0xd9, 0x58, 0xac, + 0xb4, 0x1d, 0x60, 0xaf, 0x19, 0x4b, 0x70, 0x80, + 0xac, 0xc1, 0xe4, 0x65, 0x71, 0x57, 0x5f, 0xa6, + 0x28, 0x30, 0x88, 0x03, 0x54, 0x0f, 0x4c, 0x86, + 0x20, 0x64, 0x76, 0xd5, 0x51, 0x5e, 0x77, 0x2a, + 0xb1, 0xa1, 0xbc, 0x51, 0x10, 0xca, 0x5b, 0x01, + 0xa5, 0xcc, 0xb2, 0x49, 0x76, 0x48, 0x17, 0xc4, + 0x57, 0xdd, 0x44, 0x4a, 0x9e, 0x8f, 0x26, 0xeb, + 0x22, 0x0f, 0x73, 0x33, 0x1a, 0x58, 0xdf, 0xca, + 0x5c, 0xbc, 0x29, 0x26, 0x9a, 0x86, 0xe5, 0xe7, + 0xd9, 0x85, 0x1b, 0xcb, 0x9d, 0xe6, 0xb8, 0x73, + 0x4e, 0x00, 0x9c, 0x7e, 0x3b, 0x48, 0x76, 0x96, + 0x17, 0x8c, 0x7b, 0xce, 0x97, 0x44, 0xaf, 0x3c, + 0xa9, 0x25, 0x84, 0xe5, 0x53, 0x2b, 0x4c, 0x9a, + 0xaa, 0x69, 0xef, 0xce, 0xd5, 0xd7, 0x96, 0x74, + 0x41, 0x87, 0xbc, 0xf3, 0x18, 0x84, 0x11, 0x6f, + 0x3b, 0xcf, 0x7e, 0xac, 0x2e, 0xad, 0xe7, 0xd6, + 0x5d, 0xb5, 0x4d, 0x7b, 0x60, 0x8b, 0x4c, 0x48, + 0x5a, 0x41, 0x7b, 0xa4, 0x58, 0x15, 0xb0, 0x61, + 0xc9, 0x9d, 0xfb, 0xd6, 0xc8, 0x20, 0x9f, 0xbb, + 0x1a, 0x67, 0x83, 0x72, 0xb7, 0xb1, 0xfd, 0x6d, + 0xba, 0xbd, 0x86, 0xfd, 0x8a, 0x9d, 0x5e, 0x5f, + 0x73, 0xd4, 0xe8, 0x39, 0x7c, 0xfb, 0x6f, 0x3b, + 0x73, 0x6f, 0xb6, 0xfa, 0x71, 0x50, 0xca, 0x5d, + 0xa4, 0x56, 0x23, 0x96, 0xc1, 0x54, 0xbc, 0xfa, + 0xc4, 0xf1, 0xef, 0x9e, 0x57, 0x4a, 0x5a, 0x12, + 0xd1, 0xde, 0x66, 0x76, 0x3d, 0xe3, 0xbe, 0x7e, + 0xfe, 0x83, 0x18, 0x59, 0x4b, 0xa5, 0x8e, 0x5c, + 0xf3, 0x2f, 0x1f, 0x37, 0x9f, 0x34, 0x96, 0x5c, + 0xc4, 0x7b, 0x85, 0x49, 0x6f, 0x40, 0x67, 0x98, + 0x88, 0xb7, 0x85, 0xc7, 0x8c, 0x45, 0x3e, 0x59, + 0x9d, 0x4e, 0x30, 0x72, 0xd7, 0xa3, 0x1a, 0x5e, + 0x5c, 0x7c, 0x5f, 0xb3, 0x14, 0x67, 0xc7, 0x86, + 0xf7, 0xd4, 0xeb, 0x74, 0x27, 0xdb, 0x22, 0x19, + 0xde, 0xbf, 0x77, 0x10, 0x7e, 0xeb, 0xbf, 0x55, + 0xd1, 0x5b, 0x39, 0x93, 0xae, 0x8a, 0x66, 0x4c, + 0xa8, 0x94, 0x64, 0xed, 0xa5, 0x55, 0x58, 0x62, + 0xd1, 0x33, 0xae, 0xb5, 0xbc, 0x41, 0x06, 0x63, + 0x61, 0xe2, 0x44, 0xb8, 0x19, 0x21, 0x73, 0x62, + 0x67, 0x66, 0x1e, 0xee, 0xec, 0x19, 0x7b, 0xf4, + 0x7b, 0x44, 0xef, 0x63, 0xb1, 0xe4, 0x2c, 0xd6, + 0xeb, 0xcf, 0x7f, 0x7b, 0xba, 0x2e, 0x0e, 0xac, + 0xf8, 0xc5, 0xee, 0xf7, 0xf2, 0xcf, 0xdf, 0xd5, + 0x9a, 0xa1, 0x7a, 0xc0, 0x55, 0xb9, 0x2b, 0x2b, + 0x95, 0x86, 0xd3, 0x05, 0x16, 0xc9, 0x47, 0xd4, + 0x51, 0x59, 0x4c, 0x33, 0xa6, 0xf9, 0x53, 0x3c, + 0x75, 0xcb, 0x44, 0xa4, 0x0f, 0xc6, 0x1d, 0xa7, + 0xbf, 0x48, 0xed, 0x97, 0xec, 0x5b, 0xec, 0xc9, + 0x1a, 0xd5, 0xbb, 0x4d, 0xa6, 0xbf, 0xb3, 0xd7, + 0x0f, 0x70, 0x84, 0x75, 0x58, 0x5d, 0x24, 0x87, + 0xf0, 0x54, 0xbe, 0x50, 0x1f, 0xb9, 0x1a, 0xf7, + 0x71, 0xf0, 0xbf, 0xa7, 0x5e, 0xee, 0x3e, 0x17, + 0xf4, 0xeb, 0xec, 0x91, 0xf0, 0xa3, 0xfd, 0xba, + 0x3e, 0x27, 0x78, 0x1a, 0x31, 0x58, 0xea, 0x97, + 0x55, 0x5d, 0xcd, 0x12, 0x11, 0xc8, 0xdf, 0xbd, + 0x4e, 0xc5, 0x24, 0xd5, 0xa9, 0x33, 0x1e, 0xdb, + 0xc8, 0x2e, 0x65, 0x87, 0xb0, 0x39, 0x85, 0x42, + 0xa1, 0x82, 0xf7, 0x7e, 0x2e, 0xaa, 0x7e, 0x12, + 0x8f, 0xd6, 0x8e, 0xb8, 0x9b, 0xfd, 0x21, 0xcd, + 0xff, 0x00, 0x29, 0xda, 0xfd, 0xd7, 0x46, 0xb8, + 0x73, 0x9f, 0x4d, 0xad, 0x9d, 0xc8, 0x00, 0x45, + 0x68, 0x51, 0x39, 0xa6, 0x46, 0xc2, 0x10, 0x11, + 0x05, 0x81, 0x14, 0xc9, 0x14, 0x79, 0x36, 0x8e, + 0xf9, 0x88, 0xd0, 0xd8, 0x70, 0x52, 0xac, 0x93, + 0xe8, 0x40, 0x32, 0xe6, 0x5f, 0x13, 0x4e, 0x0e, + 0x6c, 0xd3, 0x4e, 0x41, 0x30, 0x1d, 0xa6, 0xea, + 0xb9, 0xa4, 0xaa, 0x58, 0x4b, 0x66, 0x07, 0x79, + 0x0e, 0x6e, 0x46, 0x72, 0xb0, 0x48, 0x60, 0xec, + 0x41, 0xe3, 0x06, 0xb8, 0x5a, 0x9a, 0x7d, 0xa1, + 0x99, 0xbc, 0x2a, 0x90, 0x76, 0x45, 0x2b, 0xb0, + 0x4b, 0x4b, 0x99, 0x7c, 0x57, 0x63, 0x95, 0x4d, + 0x02, 0x22, 0x41, 0x30, 0x23, 0x7e, 0x59, 0x2e, + 0x61, 0x28, 0x83, 0xb3, 0x07, 0x8c, 0x1a, 0xc1, + 0x6a, 0x69, 0x76, 0x86, 0x66, 0xf0, 0xaa, 0x41, + 0xd9, 0x14, 0xae, 0xc1, 0x2d, 0x2e, 0x65, 0xf1, + 0x5d, 0x8e, 0x55, 0x34, 0x08, 0x89, 0x04, 0xc0, + 0x8d, 0xf9, 0x64, 0xb9, 0x84, 0xa2, 0x0d, 0x26, + 0x49, 0x32, 0x0e, 0xe9, 0x2a, 0xf6, 0x11, 0x69, + 0x33, 0xdd, 0xbf, 0x88, 0xfa, 0xcc, 0x6a, 0x19, + 0xef, 0xad, 0x85, 0x11, 0x3d, 0xde, 0x58, 0x9d, + 0x61, 0xee, 0x35, 0x62, 0xb5, 0xe7, 0x5e, 0xf4, + 0x63, 0xc4, 0xe4, 0xe1, 0xa7, 0xd0, 0x2a, 0x81, + 0xd6, 0x30, 0x90, 0xd8, 0x50, 0xd2, 0xb8, 0xbe, + 0x81, 0xc1, 0x11, 0x32, 0x05, 0x85, 0xc9, 0x01, + 0xd3, 0x26, 0x06, 0x26, 0xae, 0x4f, 0x17, 0x92, + 0xc8, 0xcd, 0xd6, 0xd1, 0x3a, 0xd4, 0xfc, 0x2a, + 0xbe, 0x83, 0x51, 0x2c, 0x87, 0x31, 0xd6, 0x32, + 0x78, 0xac, 0x75, 0x4e, 0x82, 0xa5, 0x47, 0xce, + 0xd5, 0x58, 0x6c, 0x40, 0xc7, 0x53, 0x69, 0x56, + 0xe7, 0xaa, 0xab, 0x4d, 0xbc, 0x7d, 0x9a, 0xb6, + 0xeb, 0x59, 0xba, 0xbc, 0xaa, 0x59, 0x6e, 0x31, + 0xc3, 0x56, 0x8c, 0x9c, 0x5e, 0x6b, 0x66, 0xc5, + 0x34, 0x5d, 0x0e, 0xc7, 0x2b, 0x9e, 0xaa, 0xbb, + 0x14, 0xbc, 0xf7, 0x5f, 0x67, 0x53, 0xfa, 0xe8, + 0xea, 0x34, 0xf9, 0x91, 0x6a, 0xba, 0xeb, 0x55, + 0xbb, 0x16, 0xea, 0xb0, 0xa5, 0x2d, 0xa9, 0x70, + 0xba, 0x69, 0xb2, 0xa0, 0xb0, 0xba, 0xd6, 0xe5, + 0x7d, 0x5f, 0x69, 0x6f, 0x3d, 0x50, 0x3a, 0xee, + 0xf6, 0xb7, 0x8a, 0xca, 0x62, 0x27, 0xf7, 0x5c, + 0x29, 0xfe, 0x57, 0x10, 0xff, 0x00, 0x2d, 0x3f, + 0xea, 0xe4, 0x38, 0x8b, 0x22, 0x9b, 0x6f, 0xa5, + 0x8d, 0x04, 0x9b, 0x95, 0x44, 0x14, 0xdb, 0x67, + 0x0f, 0xb2, 0x9a, 0xa1, 0x09, 0x07, 0xbe, 0xb2, + 0x8a, 0x7a, 0x8f, 0x09, 0x9e, 0x67, 0x87, 0x89, + 0x05, 0xb6, 0xe5, 0xb0, 0xcf, 0x80, 0xdb, 0x83, + 0xe2, 0x7e, 0x1c, 0xc9, 0xb3, 0x1d, 0xe1, 0x5a, + 0x75, 0xb8, 0x97, 0x18, 0xaa, 0x13, 0x90, 0xa3, + 0x0c, 0x85, 0x35, 0xf4, 0x89, 0x17, 0x2e, 0x83, + 0x21, 0x26, 0x41, 0xd4, 0x83, 0x95, 0xce, 0xc7, + 0x12, 0x10, 0x71, 0x07, 0xcb, 0xac, 0x96, 0x5a, + 0xc8, 0xb4, 0xeb, 0xe2, 0xe8, 0x5c, 0xc8, 0xbc, + 0x11, 0x00, 0x4e, 0x34, 0xd2, 0xae, 0xcb, 0x2d, + 0x14, 0x8b, 0x0d, 0x40, 0x4d, 0x20, 0x5c, 0xc2, + 0xe0, 0xd8, 0xb0, 0x92, 0xda, 0x08, 0xc6, 0x3c, + 0x68, 0xc6, 0xe6, 0x2a, 0x83, 0x57, 0x5b, 0x29, + 0x42, 0xa6, 0x42, 0xb8, 0x58, 0x80, 0x17, 0x82, + 0x6e, 0x20, 0x2c, 0x2c, 0x5c, 0x2b, 0x63, 0x56, + 0x2d, 0x10, 0x64, 0x41, 0xc0, 0x35, 0x83, 0x05, + 0xbf, 0x29, 0x94, 0x77, 0xff, 0x00, 0x71, 0x33, + 0xf0, 0x72, 0xfd, 0x62, 0xb5, 0x87, 0xfc, 0x6a, + 0xbf, 0xd9, 0x6d, 0xe8, 0x3d, 0xe8, 0xd1, 0xfb, + 0xd3, 0xab, 0x5f, 0x8c, 0xf2, 0x1f, 0xb4, 0x16, + 0x87, 0xfc, 0xf0, 0xff, 0x00, 0xe1, 0x3d, 0x50, + 0xff, 0x00, 0x2d, 0x9f, 0xa8, 0x6e, 0x97, 0x13, + 0x95, 0x87, 0x4c, 0x00, 0xc7, 0x52, 0xde, 0x37, + 0x0f, 0x75, 0xf3, 0xb4, 0x7f, 0x0e, 0xcd, 0xcc, + 0x7b, 0xec, 0x32, 0x7f, 0x8d, 0x8d, 0x29, 0xfe, + 0x3d, 0x79, 0xc2, 0xaf, 0xa8, 0xb8, 0x7b, 0xe8, + 0x9d, 0x79, 0xc2, 0xaf, 0xa8, 0xb8, 0x7b, 0xe8, + 0x9d, 0x79, 0xc2, 0xaf, 0xa8, 0xb8, 0x7b, 0xe8, + 0x9d, 0x7d, 0xbf, 0x57, 0xd4, 0x5c, 0x3d, 0xf4, + 0x4e, 0xb8, 0x7d, 0x54, 0xee, 0x85, 0xcc, 0x9d, + 0xfa, 0x59, 0x2b, 0x19, 0x14, 0xaf, 0x03, 0xc3, + 0xa7, 0xd2, 0x75, 0x17, 0x7b, 0x6a, 0x12, 0xb8, + 0xc3, 0xf3, 0x6f, 0x4d, 0x5c, 0xe1, 0x63, 0xbc, + 0xa4, 0x98, 0xa6, 0x14, 0x44, 0x44, 0x6d, 0xaa, + 0x87, 0x72, 0xc0, 0x02, 0x2d, 0x2c, 0x2d, 0x2f, + 0xfb, 0x05, 0xc3, 0xaa, 0x3b, 0x14, 0xe5, 0x84, + 0x1d, 0x54, 0x11, 0xe1, 0x99, 0x1b, 0x1c, 0x81, + 0x8a, 0xdb, 0x2b, 0x30, 0xe6, 0x8d, 0xf9, 0x4e, + 0x23, 0x6d, 0x62, 0x59, 0x4a, 0xd5, 0xa3, 0xb5, + 0x98, 0xa5, 0xdb, 0x10, 0x0d, 0xc6, 0x70, 0xa3, + 0x41, 0x53, 0xe1, 0x1b, 0x54, 0x3a, 0x12, 0xb4, + 0xf0, 0xca, 0x99, 0x60, 0xcf, 0xb2, 0xc9, 0x04, + 0x81, 0xab, 0xc6, 0x68, 0x8f, 0x21, 0x72, 0xf8, + 0xea, 0x47, 0x24, 0xcb, 0x9f, 0x36, 0x05, 0x2b, + 0x0e, 0x1d, 0xe1, 0xf3, 0x23, 0x3a, 0x8a, 0xeb, + 0xd9, 0x5c, 0x40, 0x62, 0x4b, 0xdb, 0x10, 0x9f, + 0x6d, 0x62, 0xe7, 0xc7, 0x10, 0xf1, 0xa4, 0x76, + 0xd3, 0x5e, 0xe0, 0x90, 0x4a, 0x55, 0x0f, 0x63, + 0x67, 0x87, 0x78, 0x7f, 0x92, 0x13, 0xe2, 0x7b, + 0x74, 0x14, 0x62, 0x66, 0x0d, 0x43, 0xd4, 0x0e, + 0x76, 0x07, 0x30, 0x2f, 0x9a, 0x39, 0xe4, 0x77, + 0xd7, 0x68, 0xb7, 0x1d, 0x9d, 0x3e, 0xd7, 0xe3, + 0xb7, 0x87, 0x38, 0x7c, 0x62, 0x3a, 0xbc, 0xdd, + 0x29, 0x2f, 0xec, 0x4e, 0xe2, 0x2d, 0xe5, 0x2e, + 0x91, 0x14, 0x40, 0xb3, 0x6f, 0x12, 0x67, 0x55, + 0x96, 0x63, 0x30, 0x76, 0xdc, 0x15, 0xeb, 0x87, + 0xd6, 0xe6, 0x03, 0x99, 0x96, 0x19, 0xb4, 0x85, + 0x7e, 0x58, 0xc4, 0xee, 0x2f, 0x38, 0x28, 0x91, + 0x51, 0x72, 0xb2, 0x7f, 0xc1, 0xd6, 0x6a, 0xad, + 0xdb, 0x51, 0x52, 0xe6, 0x2f, 0x0e, 0x79, 0x10, + 0xac, 0x5c, 0x3d, 0xc3, 0xb0, 0xd6, 0x37, 0xaf, + 0x49, 0x69, 0x53, 0x04, 0xb1, 0x1b, 0xc0, 0xb0, + 0x2d, 0xf3, 0x78, 0xbe, 0x36, 0xfc, 0xbf, 0xc7, + 0xa4, 0x25, 0xca, 0x35, 0xba, 0xcb, 0xc6, 0xaa, + 0x14, 0x5c, 0x37, 0x80, 0xea, 0x1d, 0x93, 0x88, + 0x90, 0xaf, 0xc9, 0xe0, 0x9e, 0x68, 0x71, 0x89, + 0x09, 0x0a, 0xca, 0x20, 0xc8, 0x66, 0x26, 0x22, + 0x63, 0x40, 0x86, 0x0f, 0x2b, 0x5a, 0x16, 0x58, + 0xb0, 0xfa, 0xdd, 0xe1, 0xfd, 0xc8, 0x29, 0xac, + 0x9b, 0x6f, 0x6d, 0xb1, 0x33, 0x1b, 0xd6, 0x58, + 0x11, 0xbc, 0x7d, 0xd2, 0x86, 0x37, 0x38, 0x8d, + 0x5c, 0xc8, 0xa6, 0xca, 0x3b, 0x3d, 0x6a, 0xd1, + 0x61, 0x33, 0xf5, 0xbf, 0xc3, 0xf3, 0x37, 0xa7, + 0xb7, 0xd7, 0xa0, 0x6a, 0xad, 0xfd, 0x8a, 0x88, + 0x29, 0x51, 0x38, 0x8d, 0x93, 0xdf, 0xf6, 0x3e, + 0x9c, 0x0c, 0x93, 0x23, 0x60, 0xed, 0xad, 0x5d, + 0x6e, 0xaf, 0x3c, 0x2e, 0x59, 0x80, 0xe1, 0xe8, + 0x82, 0x95, 0xed, 0x0c, 0x18, 0x98, 0xc5, 0x4c, + 0x73, 0xaf, 0x98, 0x79, 0xc3, 0x7e, 0x70, 0xde, + 0x39, 0xa2, 0x37, 0x8d, 0x79, 0xc2, 0xaf, 0xa8, + 0xb8, 0x7b, 0xe8, 0x9d, 0x79, 0xc2, 0xaf, 0xa8, + 0xb8, 0x7b, 0xe8, 0x9d, 0x79, 0xc2, 0xaf, 0xa8, + 0xb8, 0x7b, 0xe8, 0x9d, 0x79, 0xc2, 0xaf, 0xa8, + 0xb8, 0x7b, 0xe8, 0x9d, 0x65, 0x2c, 0xe4, 0xee, + 0xbe, 0xeb, 0xa3, 0x3f, 0x4c, 0x00, 0x9c, 0x5b, + 0xc2, 0xc3, 0xc1, 0xb6, 0x67, 0xa6, 0x95, 0x8c, + 0x0a, 0x92, 0xbd, 0xe6, 0x67, 0x91, 0x40, 0x01, + 0xcd, 0x33, 0x3b, 0x6f, 0x33, 0xf5, 0x2a, 0x7e, + 0x12, 0x8f, 0xd6, 0x8e, 0xb8, 0x9b, 0xfd, 0x21, + 0xcd, 0xff, 0x00, 0x29, 0xda, 0xfd, 0xd7, 0x14, + 0xba, 0x3e, 0xcc, 0xac, 0x2a, 0x85, 0x7f, 0x7e, + 0x02, 0xc6, 0x5b, 0x1c, 0x8b, 0x05, 0x1f, 0xf4, + 0x45, 0x2b, 0x9f, 0xf1, 0x5b, 0x3b, 0xf9, 0x75, + 0x8e, 0x9b, 0x95, 0x7b, 0x50, 0x95, 0x8c, 0x2c, + 0x04, 0x76, 0xa2, 0xab, 0xc8, 0x5f, 0x59, 0xb8, + 0x5d, 0xe7, 0x71, 0x03, 0xe6, 0xde, 0x3b, 0xb6, + 0xee, 0xdb, 0xcb, 0xa0, 0x63, 0x68, 0xf5, 0x10, + 0x7c, 0x53, 0x6f, 0xa2, 0x9e, 0xdc, 0x6b, 0xe8, + 0xed, 0x88, 0xa5, 0xbf, 0xb7, 0x42, 0xe6, 0x5b, + 0xbf, 0xf1, 0x88, 0xed, 0xa5, 0xb1, 0xb4, 0x7a, + 0x88, 0x3e, 0x29, 0xb9, 0xd1, 0x4f, 0x6e, 0x35, + 0xf4, 0x7f, 0xb1, 0x14, 0x77, 0xf6, 0xe8, 0x5c, + 0xcb, 0x77, 0xfe, 0x31, 0x1d, 0xb4, 0x66, 0x95, + 0xf4, 0x94, 0x53, 0xe2, 0x2f, 0xa9, 0xd5, 0xe4, + 0x8f, 0xbd, 0xd4, 0x98, 0x89, 0x3f, 0x7f, 0x68, + 0xd7, 0x03, 0xb9, 0x71, 0x17, 0xae, 0xc7, 0x13, + 0x65, 0xa6, 0xba, 0xee, 0x58, 0xe5, 0x0b, 0x0e, + 0x49, 0xf0, 0xdf, 0x66, 0x43, 0x6c, 0x39, 0x83, + 0x00, 0xb2, 0x90, 0x5a, 0x62, 0x49, 0x83, 0x00, + 0x3b, 0x44, 0x4c, 0x6d, 0x1a, 0x5e, 0x62, 0xed, + 0x1a, 0xd4, 0x72, 0x95, 0x78, 0x87, 0x24, 0xb4, + 0xaa, 0x8e, 0x3d, 0x14, 0xd9, 0x93, 0x4a, 0xb1, + 0x19, 0x0b, 0xb9, 0x0c, 0x41, 0x21, 0x20, 0xa8, + 0xb9, 0x64, 0x1a, 0xb5, 0x54, 0xed, 0x8e, 0x86, + 0x5e, 0xe6, 0xbf, 0xcb, 0x61, 0xef, 0x6f, 0x4b, + 0x6c, 0x6d, 0xf5, 0x56, 0x24, 0xd1, 0x46, 0x1f, + 0x8b, 0x93, 0x18, 0x3e, 0x63, 0x6c, 0xdb, 0x18, + 0x3a, 0x71, 0x6d, 0xea, 0xb4, 0x5b, 0x58, 0x25, + 0x33, 0xb6, 0x41, 0x39, 0xbb, 0x6f, 0x5b, 0xc1, + 0x67, 0xd2, 0xdf, 0x66, 0x16, 0xa9, 0x14, 0x04, + 0xa6, 0x9d, 0xbf, 0x63, 0xfc, 0xa9, 0x05, 0x12, + 0x99, 0x2e, 0xc8, 0xaa, 0x21, 0x93, 0x6a, 0x3d, + 0xb2, 0x7c, 0x67, 0x0b, 0xaf, 0x54, 0x0b, 0xea, + 0x73, 0x22, 0x24, 0x89, 0xfb, 0x40, 0xc0, 0x0a, + 0xff, 0x00, 0x77, 0xc2, 0x9f, 0xe5, 0x71, 0x0f, + 0xf2, 0xd3, 0xfe, 0xaf, 0x15, 0xed, 0xff, 0x00, + 0xb8, 0xc7, 0x7f, 0x2c, 0xe3, 0xb5, 0x6f, 0x8f, + 0xb8, 0xb3, 0x88, 0x8f, 0x27, 0xe0, 0x0e, 0x07, + 0xc9, 0xd5, 0xc6, 0xd5, 0xe1, 0xec, 0x48, 0xe1, + 0x5d, 0x45, 0x16, 0x2a, 0xc5, 0x8b, 0x96, 0x94, + 0xeb, 0x17, 0xf2, 0x72, 0xcc, 0x9c, 0xad, 0x0a, + 0x4d, 0x67, 0x14, 0xa6, 0xba, 0x24, 0x3a, 0xac, + 0x5c, 0xc7, 0x36, 0xdc, 0x5a, 0xce, 0x14, 0x42, + 0x31, 0x71, 0x7b, 0xd8, 0x8e, 0xee, 0x7e, 0xbe, + 0x2b, 0x1b, 0xc5, 0x17, 0x38, 0xb2, 0xd2, 0xb2, + 0x89, 0x6c, 0xf6, 0x6b, 0xf9, 0x6b, 0x6c, 0x80, + 0xaf, 0x1c, 0x47, 0x10, 0xc7, 0x3a, 0x2b, 0xd1, + 0x5f, 0x45, 0x6b, 0x62, 0x56, 0x0a, 0x87, 0xb5, + 0xe2, 0x79, 0xb9, 0xe1, 0xce, 0x23, 0xb7, 0x63, + 0x29, 0x99, 0xf6, 0x25, 0xca, 0x64, 0xb3, 0xb8, + 0x70, 0xbb, 0x77, 0x31, 0x56, 0xf5, 0x89, 0xc6, + 0x94, 0xb7, 0x88, 0x32, 0x36, 0x5b, 0x36, 0x95, + 0x8f, 0xca, 0x76, 0x97, 0x36, 0xb4, 0xd7, 0xeb, + 0xd3, 0xe7, 0xeb, 0xb0, 0x42, 0xa4, 0x6d, 0x3a, + 0xce, 0xe5, 0xf8, 0xd9, 0x17, 0xab, 0xe5, 0xb1, + 0xde, 0xc6, 0x54, 0x2e, 0x70, 0xa0, 0xd0, 0x6d, + 0x70, 0x75, 0x7e, 0x09, 0x56, 0x3c, 0xeb, 0x93, + 0xf0, 0x65, 0xed, 0x83, 0x5b, 0x2a, 0xdb, 0x00, + 0x9b, 0x17, 0x2c, 0xba, 0x49, 0xcb, 0x63, 0xd3, + 0xd7, 0x05, 0x24, 0x3a, 0x3a, 0xe3, 0x63, 0xe1, + 0x54, 0x23, 0x12, 0x16, 0x7d, 0x88, 0xac, 0x71, + 0x05, 0x7c, 0x5e, 0x33, 0x8a, 0x2e, 0xf1, 0x65, + 0x84, 0x64, 0xd7, 0x64, 0x41, 0x39, 0x0c, 0xad, + 0xd6, 0x72, 0xd7, 0x8e, 0x21, 0x05, 0xbd, 0xee, + 0xe8, 0xd0, 0x5f, 0x67, 0x42, 0x89, 0x02, 0x21, + 0xd5, 0x3b, 0x10, 0xcf, 0x63, 0xd6, 0x70, 0x66, + 0x44, 0xaf, 0x5d, 0xb7, 0xc1, 0x5c, 0x4b, 0x95, + 0xc8, 0xa4, 0x72, 0xf6, 0x32, 0xdd, 0x6c, 0xc9, + 0x60, 0x0c, 0x95, 0x7a, 0xcd, 0x67, 0xd8, 0x7a, + 0xeb, 0x5e, 0xb6, 0xf8, 0x31, 0x72, 0x81, 0x75, + 0xc4, 0xfa, 0x02, 0x3d, 0x9c, 0x79, 0x3b, 0xf8, + 0x3b, 0x26, 0x9c, 0xcf, 0x0f, 0x76, 0xbe, 0x21, + 0xa5, 0x9a, 0xb1, 0xc4, 0x95, 0xab, 0x66, 0x78, + 0xb3, 0x2b, 0x9c, 0xcf, 0xf2, 0xad, 0xcd, 0x7d, + 0x9e, 0x20, 0xa6, 0xec, 0x7d, 0x8c, 0x26, 0x1e, + 0xfe, 0x33, 0x22, 0x43, 0x29, 0x22, 0xb3, 0x8d, + 0x53, 0x64, 0x8e, 0xba, 0x19, 0x69, 0xaf, 0xf6, + 0xdf, 0xed, 0xcc, 0xfc, 0x1c, 0xbf, 0x58, 0xad, + 0x61, 0xff, 0x00, 0x1a, 0xaf, 0xf6, 0x5b, 0x7a, + 0x0f, 0x7a, 0x34, 0x7e, 0xf4, 0xea, 0xd7, 0xe3, + 0x3c, 0x87, 0xed, 0x05, 0xa1, 0xff, 0x00, 0x3c, + 0x3f, 0xf8, 0x19, 0xaa, 0x1f, 0xe5, 0xb3, 0xf5, + 0x0d, 0xd0, 0xff, 0x00, 0x93, 0x1f, 0xf7, 0x7e, + 0xe2, 0x9d, 0xe2, 0xac, 0xab, 0x71, 0x51, 0xeb, + 0xb1, 0xd9, 0x9f, 0xcd, 0xd1, 0x69, 0x2a, 0x79, + 0x82, 0x19, 0xcb, 0x31, 0x32, 0x10, 0x70, 0x25, + 0x23, 0xe4, 0x2e, 0x5e, 0x52, 0xdc, 0x66, 0x63, + 0x5c, 0x18, 0xee, 0xda, 0x38, 0xc7, 0x63, 0x9f, + 0x98, 0xc9, 0xe4, 0x6d, 0x4d, 0xc9, 0x7d, 0xaa, + 0xbc, 0xb9, 0x33, 0xbc, 0x4b, 0x81, 0x60, 0x7b, + 0x75, 0xdc, 0x94, 0xc6, 0xf5, 0x96, 0x40, 0x50, + 0xc3, 0x6c, 0x09, 0x04, 0xa3, 0x9f, 0x51, 0x96, + 0xa6, 0xd5, 0xf4, 0x32, 0x75, 0x92, 0xe1, 0xa4, + 0x24, 0xbe, 0xa6, 0x26, 0x54, 0x11, 0x5a, 0x71, + 0x6d, 0x5a, 0xc1, 0x62, 0xb0, 0xab, 0xd2, 0x8e, + 0xcb, 0x22, 0xb8, 0x5b, 0x6a, 0x12, 0x88, 0x66, + 0x4e, 0x1b, 0x03, 0xc0, 0xb0, 0xfb, 0xc6, 0x84, + 0x52, 0xa6, 0xb5, 0xe4, 0x5f, 0x51, 0x86, 0x16, + 0x68, 0x4f, 0x87, 0xb2, 0x56, 0x37, 0xe7, 0x57, + 0xb6, 0xa1, 0xa0, 0xa6, 0xa9, 0xdc, 0xeb, 0xdd, + 0xab, 0x02, 0x86, 0xae, 0x08, 0xe0, 0x46, 0x57, + 0xcf, 0x7b, 0x05, 0x52, 0xd0, 0xdd, 0xe2, 0x3b, + 0x11, 0x5b, 0x15, 0x60, 0xac, 0x8a, 0x86, 0xd7, + 0x0c, 0xe5, 0x2a, 0x53, 0x7b, 0x72, 0x0e, 0x7d, + 0xa6, 0x5b, 0xb1, 0x6a, 0xdc, 0x80, 0x8c, 0x4d, + 0xb7, 0xf4, 0x39, 0xeb, 0x81, 0x05, 0x66, 0xb4, + 0xd3, 0xac, 0x48, 0x15, 0xc5, 0x47, 0x43, 0x80, + 0x78, 0x93, 0x1c, 0xc1, 0x96, 0x7d, 0x8e, 0xf5, + 0xa3, 0xce, 0x74, 0x2a, 0xcc, 0x7d, 0xc7, 0x3f, + 0xad, 0x5f, 0x90, 0x3c, 0xa5, 0xce, 0xbf, 0xe2, + 0xd6, 0x72, 0xe5, 0xeb, 0x55, 0x6e, 0x8d, 0xea, + 0xb8, 0x14, 0x22, 0x88, 0x3c, 0x5b, 0x67, 0x74, + 0x3b, 0x11, 0x70, 0xa2, 0xc5, 0x5f, 0x18, 0xab, + 0x8d, 0x2a, 0xd4, 0x8d, 0x60, 0x6f, 0x08, 0x07, + 0x4b, 0x13, 0xd0, 0xe7, 0x13, 0x3e, 0x55, 0x59, + 0xed, 0x98, 0x05, 0x54, 0xb7, 0xc5, 0x98, 0xec, + 0x87, 0x3d, 0x22, 0xb8, 0xfb, 0x2e, 0xaa, 0x8b, + 0x0e, 0x7f, 0x84, 0x6e, 0xb1, 0xf9, 0x3b, 0x21, + 0x8b, 0x94, 0x8b, 0xf9, 0x0e, 0xbb, 0x2b, 0x29, + 0xec, 0x26, 0xb7, 0x61, 0x5a, 0xd3, 0xe3, 0x67, + 0x59, 0x72, 0xc8, 0x2b, 0xb4, 0xe2, 0x1c, 0xa5, + 0x1b, 0x8f, 0xec, 0xce, 0x2c, 0xae, 0x35, 0xdc, + 0x83, 0x33, 0xee, 0x8e, 0x56, 0xb6, 0x33, 0xfc, + 0x90, 0x29, 0xd5, 0x81, 0x5d, 0xc0, 0x22, 0xb9, + 0xec, 0x87, 0x89, 0xb9, 0x56, 0x60, 0xf9, 0xa5, + 0xb5, 0xe1, 0xf9, 0x48, 0x9b, 0x4b, 0xff, 0x00, + 0x0c, 0x07, 0xac, 0x9f, 0x1b, 0xfc, 0x71, 0xfb, + 0xfa, 0x45, 0x0b, 0xb9, 0x1a, 0x2e, 0x75, 0x8b, + 0xdc, 0x44, 0x73, 0x69, 0x36, 0x3b, 0x45, 0x6a, + 0xa1, 0x90, 0xc2, 0x59, 0xc5, 0x57, 0x65, 0x87, + 0xab, 0xa8, 0x0a, 0xed, 0x96, 0xda, 0x06, 0xd0, + 0xfb, 0x2d, 0x75, 0x28, 0x5b, 0x6c, 0x55, 0x1b, + 0x6d, 0x4b, 0x15, 0x19, 0xdc, 0x60, 0x5f, 0x5e, + 0x38, 0xd8, 0x6f, 0x43, 0x97, 0x65, 0x34, 0xec, + 0x0f, 0x14, 0xe2, 0x32, 0xbd, 0x2e, 0x7e, 0x65, + 0xa6, 0xd5, 0x85, 0x54, 0x4b, 0x1a, 0x2b, 0x4b, + 0x7a, 0x76, 0x58, 0x96, 0x22, 0xb3, 0x59, 0x3c, + 0xa4, 0x55, 0xf9, 0x27, 0x1c, 0xbb, 0xd3, 0x90, + 0xba, 0xe7, 0xab, 0x09, 0x75, 0xd6, 0x31, 0x56, + 0x56, 0xc0, 0x4f, 0xf6, 0x4f, 0xb1, 0x95, 0x8b, + 0x08, 0xc6, 0xd9, 0xb4, 0xc8, 0x91, 0x8a, 0xca, + 0x94, 0x98, 0xa5, 0x70, 0x2c, 0xac, 0xa1, 0x05, + 0x6f, 0xfb, 0x8c, 0xaf, 0xfa, 0x45, 0x4f, 0xf9, + 0x32, 0xc7, 0xd4, 0xab, 0xf8, 0x4a, 0x3f, 0x5a, + 0x3a, 0xcf, 0x76, 0xbb, 0x1c, 0x61, 0x16, 0xbc, + 0x37, 0x96, 0xed, 0x51, 0x5a, 0x9e, 0x0c, 0xab, + 0x45, 0x8e, 0xdf, 0x63, 0xaf, 0x15, 0xc9, 0xb7, + 0x85, 0xa4, 0x88, 0x6f, 0x37, 0x4a, 0x58, 0x22, + 0xc9, 0x5f, 0x2c, 0x98, 0xc1, 0x6f, 0x1a, 0xfb, + 0x67, 0x8d, 0xfe, 0x25, 0xc3, 0xff, 0x00, 0x48, + 0x6b, 0xed, 0x9e, 0x37, 0xf8, 0x97, 0x0f, 0xfd, + 0x21, 0xaf, 0xb6, 0x78, 0xdf, 0xe2, 0x5c, 0x3f, + 0xf4, 0x86, 0xbe, 0xd9, 0xe3, 0x7f, 0x89, 0x70, + 0xff, 0x00, 0xd2, 0x1a, 0xfb, 0x67, 0x8d, 0xfe, + 0x25, 0xc3, 0xff, 0x00, 0x48, 0x6a, 0xcf, 0x2b, + 0xb8, 0xd5, 0x81, 0x6e, 0x9d, 0x8a, 0x4e, 0x59, + 0x52, 0xc0, 0xc4, 0x12, 0x9f, 0x11, 0xdf, 0xe2, + 0xe4, 0x62, 0x77, 0x5b, 0x45, 0x6e, 0x0f, 0xb9, + 0xce, 0xb1, 0xdf, 0x78, 0xd4, 0x8d, 0x6e, 0x25, + 0xf6, 0x50, 0xae, 0x33, 0xd3, 0x89, 0x14, 0x3b, + 0x1a, 0x91, 0x98, 0x4a, 0x81, 0x09, 0x89, 0x85, + 0xe5, 0xc6, 0x27, 0xa4, 0x85, 0xad, 0x2b, 0xff, + 0x00, 0xdd, 0xa8, 0x01, 0x63, 0xb0, 0x08, 0xc4, + 0x34, 0x97, 0xc5, 0x1e, 0xca, 0x4b, 0x27, 0x9c, + 0x31, 0xc4, 0x16, 0x31, 0xe2, 0x4e, 0x64, 0x00, + 0xae, 0x0d, 0xb2, 0x39, 0x88, 0x96, 0x1c, 0x2c, + 0x05, 0x70, 0x47, 0xb9, 0x40, 0x08, 0x8e, 0xfc, + 0xa3, 0x11, 0xa6, 0x92, 0xf8, 0xa3, 0xd9, 0x49, + 0x64, 0xf3, 0x86, 0x38, 0x82, 0xc6, 0x3c, 0x09, + 0xcc, 0x80, 0x15, 0xc3, 0x1b, 0x23, 0x98, 0x89, + 0x61, 0xc2, 0xc0, 0x17, 0x06, 0x7b, 0x94, 0x00, + 0x88, 0xef, 0xca, 0x31, 0x1a, 0x2b, 0x17, 0x32, + 0x5c, 0x7f, 0x6e, 0xc1, 0xed, 0xce, 0xfb, 0x48, + 0xc2, 0x58, 0x71, 0xed, 0x1c, 0xb1, 0xce, 0xd6, + 0xe4, 0x8d, 0x85, 0xb4, 0x44, 0x44, 0x6e, 0x53, + 0xb4, 0x46, 0xda, 0x5a, 0x0a, 0xff, 0x00, 0x1e, + 0x12, 0x12, 0x6c, 0x62, 0x53, 0x35, 0xb0, 0x52, + 0xa5, 0x31, 0xdd, 0x3e, 0xb1, 0xa9, 0x73, 0x91, + 0xe4, 0x59, 0xb7, 0xa4, 0xae, 0xa9, 0x04, 0x44, + 0xb3, 0xa6, 0xbe, 0x79, 0x9e, 0x41, 0xd9, 0x0f, + 0xb7, 0x9a, 0xf6, 0x46, 0xb4, 0xfa, 0xdc, 0xb1, + 0x59, 0xd6, 0x63, 0x10, 0xf7, 0x57, 0x80, 0x2e, + 0x70, 0x84, 0x31, 0xb9, 0x52, 0x34, 0xc0, 0x1f, + 0x8e, 0x3d, 0x39, 0x1e, 0x52, 0xf1, 0xa3, 0xbf, + 0x41, 0x90, 0x6e, 0x73, 0xd9, 0x21, 0xb7, 0xd5, + 0xb7, 0x4a, 0xf3, 0x3c, 0x12, 0x77, 0x17, 0xcb, + 0xbc, 0x0f, 0x4e, 0xd1, 0x65, 0x65, 0xe1, 0xcb, + 0x13, 0x31, 0x1c, 0xa7, 0x1b, 0x44, 0xce, 0xda, + 0xc8, 0x35, 0xf7, 0xf8, 0xf2, 0xdd, 0xac, 0x8d, + 0x5e, 0xc8, 0xeb, 0x76, 0xd1, 0x85, 0x7d, 0x98, + 0x5c, 0xb1, 0x26, 0x7b, 0x35, 0x99, 0x32, 0x32, + 0x23, 0x04, 0xc2, 0x67, 0x9e, 0x4b, 0xda, 0x88, + 0x87, 0x5f, 0x6c, 0xf1, 0xbf, 0xc4, 0xb8, 0x7f, + 0xe9, 0x0d, 0x7d, 0xb3, 0xc6, 0xff, 0x00, 0x12, + 0xe1, 0xff, 0x00, 0xa4, 0x35, 0xf6, 0xcf, 0x1b, + 0xfc, 0x4b, 0x87, 0xfe, 0x90, 0xd7, 0xdb, 0x3c, + 0x6f, 0xf1, 0x2e, 0x1f, 0xfa, 0x43, 0x5f, 0x6c, + 0xf1, 0xbf, 0xc4, 0xb8, 0x7f, 0xe9, 0x0d, 0x7d, + 0xb3, 0xc6, 0xff, 0x00, 0x12, 0xe1, 0xff, 0x00, + 0xa4, 0x35, 0xc3, 0x51, 0x88, 0x2b, 0xe7, 0x40, + 0x4f, 0x39, 0x0a, 0x2c, 0x98, 0x57, 0x5d, 0xc9, + 0x2f, 0x09, 0x91, 0x37, 0xa8, 0x15, 0x18, 0xd4, + 0x44, 0x43, 0x48, 0xe1, 0x7c, 0xa7, 0x3b, 0xae, + 0x06, 0x4b, 0x62, 0xde, 0x3e, 0xab, 0x68, 0xe4, + 0xa9, 0x54, 0xc8, 0x52, 0x7f, 0x2c, 0x3e, 0x9d, + 0xea, 0xe9, 0xb7, 0x55, 0xd0, 0x06, 0x2c, 0x08, + 0x6d, 0x77, 0x83, 0x14, 0xce, 0x56, 0x00, 0x30, + 0x79, 0xc2, 0x79, 0x4c, 0x44, 0xa3, 0xc6, 0x18, + 0x9d, 0x74, 0x65, 0x61, 0x29, 0x90, 0xe9, 0x4a, + 0xa4, 0x07, 0xa5, 0x2a, 0xe5, 0xe5, 0xe9, 0xf4, + 0xf6, 0xe5, 0xe4, 0xe5, 0xf1, 0x79, 0x36, 0xe5, + 0xe5, 0xee, 0xdb, 0x6d, 0x03, 0x71, 0x38, 0x0c, + 0x26, 0x31, 0xaa, 0x17, 0x02, 0x99, 0x8f, 0xc5, + 0x51, 0xa4, 0x6b, 0x0b, 0x32, 0xa9, 0xb0, 0x00, + 0x75, 0x90, 0xb2, 0x01, 0x7c, 0xa5, 0x32, 0xe1, + 0x19, 0x88, 0x6c, 0xa9, 0x52, 0x7b, 0xf2, 0x0e, + 0xd7, 0xd3, 0x47, 0x87, 0xf0, 0x94, 0x95, 0x95, + 0x02, 0x5e, 0x4d, 0x55, 0x31, 0x54, 0x6b, 0xaf, + 0x22, 0xb3, 0x86, 0x09, 0x85, 0xf0, 0x4a, 0x00, + 0x6d, 0x81, 0x8b, 0x9a, 0x24, 0x36, 0x21, 0x90, + 0x50, 0xd6, 0x44, 0xc6, 0xc6, 0x5b, 0xd2, 0x2f, + 0x03, 0x62, 0xb9, 0xb1, 0xd5, 0x19, 0x43, 0x1e, + 0x5e, 0x0f, 0xa9, 0xbd, 0x0a, 0x2e, 0x57, 0x41, + 0xb4, 0xa9, 0x4f, 0x4b, 0x7a, 0xb5, 0x1a, 0x88, + 0x84, 0xb2, 0xba, 0x39, 0x12, 0x6a, 0x8e, 0x99, + 0x04, 0x87, 0x76, 0x9c, 0x38, 0x0c, 0x5e, 0x27, + 0x87, 0x2e, 0x95, 0x4b, 0x75, 0x6a, 0x64, 0xb1, + 0x38, 0x5c, 0x4a, 0x6c, 0xd0, 0x9b, 0x70, 0x12, + 0x6c, 0x40, 0x4d, 0x39, 0x41, 0x44, 0xb5, 0x48, + 0x73, 0x10, 0xd5, 0x9a, 0x2c, 0x1a, 0x17, 0xd7, + 0x03, 0xe5, 0x8d, 0xa8, 0xe7, 0x72, 0x39, 0x3c, + 0x3d, 0xb6, 0xe2, 0xe9, 0xdd, 0xaf, 0x46, 0xbe, + 0x0b, 0x84, 0xa8, 0x70, 0xa2, 0x0e, 0xde, 0x48, + 0x50, 0xab, 0xf9, 0x5c, 0x82, 0xe9, 0x5b, 0xb4, + 0xbb, 0x77, 0x9f, 0x5e, 0xb8, 0x27, 0x70, 0x5d, + 0x65, 0xac, 0x77, 0xd8, 0x79, 0x79, 0x44, 0x6e, + 0x64, 0x31, 0xf8, 0x7c, 0x5d, 0x1b, 0xf9, 0x13, + 0x26, 0x64, 0x2e, 0xd3, 0xc7, 0xd4, 0xad, 0x6e, + 0xf3, 0x0d, 0x84, 0xe3, 0x3b, 0x96, 0x52, 0xa0, + 0x75, 0x93, 0x37, 0x11, 0x34, 0x89, 0xc6, 0x72, + 0x4c, 0x22, 0x39, 0xf1, 0xa6, 0x67, 0xfb, 0x7b, + 0x3f, 0x07, 0x2f, 0xd6, 0x2b, 0x58, 0x7f, 0xc6, + 0xab, 0xfd, 0x96, 0xde, 0x83, 0xde, 0x8d, 0x1f, + 0xbd, 0x3a, 0xb5, 0xf8, 0xcb, 0x21, 0xfb, 0x41, + 0x68, 0x7f, 0xcf, 0x0f, 0xfe, 0x06, 0x6a, 0x87, + 0xf9, 0xc3, 0xff, 0x00, 0xad, 0x2c, 0x8d, 0x0f, + 0xfe, 0xcc, 0xe5, 0xfc, 0x91, 0xff, 0x00, 0xe5, + 0x30, 0xfd, 0xef, 0xc4, 0x9a, 0xf4, 0x67, 0x2f, + 0xfa, 0x4c, 0x3f, 0x42, 0x6b, 0xd1, 0x9c, 0xbf, + 0xe9, 0x30, 0xfd, 0x09, 0xaf, 0x46, 0x72, 0xff, + 0x00, 0xa4, 0xc3, 0xf4, 0x26, 0xbd, 0x19, 0xcb, + 0xfe, 0x93, 0x0f, 0xd0, 0x9a, 0xf4, 0x67, 0x2f, + 0xfa, 0x4c, 0x3f, 0x42, 0x6b, 0xd1, 0x9c, 0xbf, + 0xe9, 0x30, 0xfd, 0x09, 0xaf, 0x46, 0x72, 0xff, + 0x00, 0xa4, 0xc3, 0xf4, 0x26, 0xbd, 0x19, 0xcb, + 0xfe, 0x93, 0x0f, 0xd0, 0x9a, 0xf4, 0x67, 0x2f, + 0xfa, 0x4c, 0x3f, 0x42, 0x68, 0xed, 0x5b, 0xe1, + 0xec, 0xbb, 0xac, 0x33, 0x93, 0x9d, 0x93, 0xc4, + 0x89, 0x0e, 0x6e, 0x9a, 0xc5, 0x41, 0xe2, 0xaf, + 0x04, 0x01, 0x1c, 0xab, 0x01, 0x1e, 0xe1, 0x8d, + 0xf6, 0xde, 0x77, 0x9d, 0xe7, 0x5e, 0x8c, 0xe5, + 0xff, 0x00, 0x49, 0x87, 0xe8, 0x4d, 0x7a, 0x33, + 0x97, 0xfd, 0x26, 0x1f, 0xa1, 0x34, 0x8b, 0x95, + 0x78, 0x77, 0x2e, 0xab, 0x35, 0x5a, 0x0f, 0x43, + 0x7e, 0xb9, 0x12, 0x7d, 0x36, 0xac, 0xb9, 0x80, + 0xf9, 0x59, 0x82, 0x30, 0x2e, 0x52, 0x8d, 0xf6, + 0x31, 0x21, 0x9f, 0xbb, 0x13, 0xa9, 0x29, 0xe1, + 0xac, 0xbe, 0xe5, 0x33, 0x33, 0xff, 0x00, 0xb4, + 0xc1, 0xe5, 0x9e, 0xf9, 0xff, 0x00, 0xe8, 0x4d, + 0x7a, 0x33, 0x97, 0xfd, 0x26, 0x1f, 0xa1, 0x35, + 0xe8, 0xce, 0x5f, 0xf4, 0x98, 0x7e, 0x84, 0xd7, + 0xa3, 0x39, 0x7f, 0xd2, 0x61, 0xfa, 0x13, 0x5e, + 0x8c, 0xe5, 0xff, 0x00, 0x49, 0x87, 0xe8, 0x4d, + 0x7a, 0x33, 0x97, 0xfd, 0x26, 0x1f, 0xa1, 0x35, + 0xe8, 0xce, 0x5f, 0xf4, 0x98, 0x7e, 0x84, 0xd6, + 0x43, 0xc1, 0x38, 0xeb, 0x58, 0xe5, 0x8e, 0x76, + 0x9f, 0x54, 0x6d, 0x64, 0x63, 0x20, 0x4c, 0x39, + 0xc7, 0xda, 0xd8, 0x84, 0xe2, 0x9d, 0x3e, 0x9c, + 0x40, 0xc6, 0xdc, 0xbc, 0xa7, 0xbc, 0xf7, 0xef, + 0x1e, 0x4f, 0xa9, 0x5b, 0xf0, 0x84, 0xfe, 0xb0, + 0x75, 0xc4, 0xdf, 0xe9, 0x0e, 0x6f, 0xf9, 0x4e, + 0xd7, 0xd5, 0x0c, 0x9f, 0x8f, 0xda, 0x4b, 0x36, + 0xca, 0x13, 0xe3, 0x7b, 0x5f, 0x67, 0x1a, 0x0b, + 0xb1, 0x1e, 0x26, 0xde, 0xef, 0xa8, 0x53, 0xe3, + 0x6f, 0xee, 0x7b, 0xb6, 0xd3, 0xca, 0xb5, 0x67, + 0xe4, 0xad, 0x27, 0x87, 0xb0, 0x19, 0x35, 0x62, + 0x57, 0x63, 0x91, 0xf6, 0xdb, 0x91, 0xaf, 0x0d, + 0xc8, 0x58, 0x0e, 0x51, 0xeb, 0x35, 0x34, 0x63, + 0xc6, 0xec, 0xb5, 0xa0, 0x9d, 0xed, 0xc0, 0x53, + 0x3d, 0x35, 0x9e, 0xf9, 0xcb, 0x58, 0xfc, 0x6e, + 0x4f, 0x28, 0x74, 0x59, 0x85, 0x05, 0xe3, 0x76, + 0xb7, 0x16, 0x68, 0xba, 0xf4, 0x5e, 0x8c, 0x95, + 0x5b, 0x02, 0x8a, 0xc2, 0xe7, 0xcd, 0x07, 0xd6, + 0x84, 0x8b, 0xfa, 0x6b, 0x19, 0x18, 0xdc, 0xe3, + 0x9e, 0x67, 0x69, 0x45, 0x78, 0x35, 0xef, 0x52, + 0xa5, 0x86, 0x55, 0x71, 0xf5, 0x1d, 0x46, 0xcd, + 0x8a, 0xc0, 0xe7, 0xd0, 0x71, 0x6c, 0x33, 0x2c, + 0xaa, 0xd2, 0x25, 0xcc, 0x18, 0x8b, 0x47, 0x68, + 0x07, 0x0c, 0x34, 0x4f, 0x57, 0xeb, 0xa3, 0x87, + 0xf2, 0x0b, 0xa8, 0x86, 0x2d, 0x48, 0xcb, 0x3c, + 0xaf, 0x4a, 0x4b, 0x9c, 0x55, 0x30, 0x7d, 0x42, + 0x48, 0x54, 0x2e, 0x72, 0x29, 0x01, 0xd8, 0xb9, + 0x66, 0x7b, 0xa3, 0xbf, 0x5e, 0x0d, 0xc8, 0x22, + 0x41, 0x34, 0x32, 0xd8, 0xdc, 0x7e, 0x66, 0x17, + 0x61, 0x1c, 0xe8, 0xed, 0xd7, 0x06, 0xa8, 0x8a, + 0xcc, 0x4c, 0xe1, 0x84, 0x47, 0xb8, 0xf3, 0xa6, + 0x1b, 0x01, 0xee, 0x8b, 0xc5, 0xd6, 0x3d, 0x2c, + 0xed, 0x1d, 0x95, 0xd4, 0xf0, 0x8c, 0x76, 0xcc, + 0xf1, 0xa6, 0xce, 0x53, 0x2c, 0x8a, 0x1c, 0xa2, + 0x7c, 0xbe, 0x24, 0x74, 0xd8, 0xd6, 0x0c, 0x6d, + 0x3b, 0x74, 0xa7, 0x5c, 0x46, 0x77, 0x31, 0xb9, + 0x3a, 0xea, 0xc7, 0xa6, 0x67, 0x1c, 0xcb, 0x08, + 0x7d, 0x55, 0x35, 0xb3, 0x97, 0xa9, 0x4d, 0x40, + 0x4e, 0x72, 0x40, 0x1b, 0xcf, 0x5d, 0xc7, 0x31, + 0xca, 0x51, 0xbf, 0xd9, 0x23, 0xb8, 0x67, 0x4e, + 0xae, 0x9a, 0x68, 0x4b, 0xa2, 0xcd, 0xf5, 0x2e, + 0xa3, 0x72, 0x54, 0x41, 0xa5, 0xe0, 0xf3, 0x21, + 0xb7, 0x15, 0xba, 0xf6, 0x40, 0xed, 0xaa, 0xb4, + 0x89, 0x01, 0x58, 0x54, 0x1a, 0xc8, 0x96, 0x7c, + 0xa6, 0x52, 0x25, 0xb6, 0x32, 0xf5, 0x11, 0x03, + 0x0b, 0x18, 0x31, 0xc9, 0xd8, 0x59, 0xdd, 0xab, + 0xda, 0xa6, 0x56, 0x6e, 0xed, 0x6e, 0x45, 0x22, + 0x60, 0xda, 0x2a, 0xc9, 0x58, 0x84, 0x91, 0x02, + 0x8c, 0x47, 0x95, 0xb3, 0xcd, 0x3d, 0x33, 0xe5, + 0xcb, 0x3c, 0x6a, 0x37, 0x27, 0x6a, 0x82, 0xeb, + 0x31, 0x38, 0xba, 0xee, 0x95, 0x39, 0xc9, 0x61, + 0x37, 0xb5, 0x5b, 0x88, 0x08, 0x97, 0xb8, 0x29, + 0x8a, 0xc2, 0x09, 0x55, 0xe2, 0x4f, 0x9a, 0xc0, + 0x19, 0x78, 0x81, 0x30, 0x57, 0xec, 0x61, 0xb6, + 0x8c, 0x6d, 0x23, 0xa6, 0xbb, 0x07, 0x93, 0xb5, + 0x5b, 0x1e, 0x74, 0x2d, 0x5d, 0x03, 0x9e, 0xc0, + 0xe3, 0xbc, 0x75, 0x3a, 0x86, 0x8b, 0x09, 0xb1, + 0x5b, 0xaa, 0x21, 0x10, 0x7d, 0x28, 0x29, 0x81, + 0x93, 0x8d, 0x39, 0x73, 0x5d, 0x68, 0x34, 0x5c, + 0x2c, 0x7c, 0xc5, 0xab, 0x75, 0x2a, 0x75, 0x2f, + 0x08, 0xc1, 0xcd, 0x4a, 0xd3, 0x61, 0xeb, 0x8b, + 0x4f, 0xe5, 0x20, 0x2e, 0x9d, 0x7e, 0xa4, 0xec, + 0xd5, 0x4f, 0xfc, 0xaa, 0xf9, 0xa0, 0xc2, 0xb4, + 0x41, 0x19, 0xd9, 0x5a, 0x6b, 0xb6, 0xc5, 0x74, + 0x5c, 0xb2, 0xca, 0x65, 0x21, 0x68, 0x2a, 0x53, + 0x73, 0x42, 0xd5, 0xa2, 0x41, 0x89, 0x2c, 0xe1, + 0x0a, 0x3d, 0x98, 0x06, 0xbe, 0xf3, 0x12, 0x18, + 0xbf, 0x6e, 0xf8, 0x8a, 0xd2, 0xbe, 0x1c, 0xc9, + 0xe6, 0x2a, 0x2e, 0x2e, 0x56, 0x0b, 0x65, 0x28, + 0x51, 0xcd, 0x4b, 0x07, 0x4f, 0x9e, 0x6d, 0x76, + 0x46, 0x34, 0x27, 0xc6, 0x94, 0x88, 0xb0, 0x76, + 0x28, 0x2e, 0x52, 0x12, 0x9f, 0xab, 0xc3, 0x3f, + 0xe7, 0xb8, 0x83, 0xf9, 0x50, 0xbe, 0xad, 0xec, + 0x8b, 0x14, 0xf7, 0xae, 0x85, 0x3b, 0x57, 0x58, + 0x9a, 0xaa, 0x27, 0xda, 0x68, 0x55, 0x41, 0xbc, + 0x95, 0x59, 0x03, 0xe3, 0x39, 0xe6, 0x21, 0x22, + 0xa5, 0x0f, 0x79, 0xb2, 0x44, 0x63, 0xcb, 0xaa, + 0x5c, 0x45, 0x42, 0xad, 0xda, 0x75, 0x6f, 0x75, + 0xfa, 0x69, 0xc8, 0x28, 0x15, 0x62, 0x3a, 0x0e, + 0x34, 0x49, 0x6c, 0xb6, 0x35, 0x64, 0xb3, 0x25, + 0xc9, 0x2d, 0x8b, 0x61, 0x09, 0x0f, 0xf1, 0xef, + 0x11, 0xab, 0x45, 0x8a, 0x0a, 0xc7, 0x90, 0xe9, + 0x14, 0x56, 0x9b, 0x86, 0x61, 0x55, 0x27, 0x3d, + 0xdd, 0xa2, 0xc7, 0x4c, 0x4d, 0xad, 0x5d, 0x68, + 0xdd, 0xdd, 0x9d, 0x70, 0x27, 0x66, 0x42, 0x2b, + 0xc3, 0x51, 0xd4, 0x97, 0xaf, 0x87, 0x73, 0xd9, + 0x2c, 0xe5, 0xda, 0x75, 0xa7, 0x85, 0xea, 0x58, + 0xb1, 0x38, 0xc2, 0x21, 0xcd, 0xe5, 0xb8, 0x93, + 0x25, 0x5e, 0x80, 0x62, 0x95, 0x58, 0x16, 0x96, + 0x05, 0x92, 0x73, 0xda, 0xf0, 0x56, 0x3c, 0x41, + 0x83, 0x72, 0xf5, 0x8a, 0xc2, 0xc4, 0x15, 0x75, + 0xb2, 0x35, 0x5b, 0xc2, 0x56, 0xec, 0x25, 0xb5, + 0x72, 0xdc, 0x1d, 0x8a, 0xbd, 0x35, 0x25, 0x5f, + 0x5b, 0x14, 0xe7, 0x25, 0x89, 0xa8, 0x79, 0xbc, + 0x5e, 0x4e, 0x60, 0x7c, 0x7c, 0xd5, 0x8c, 0x9d, + 0xc2, 0xec, 0x4c, 0x57, 0x51, 0x35, 0xfb, 0x56, + 0x09, 0x51, 0x62, 0xb4, 0x31, 0xea, 0x77, 0x10, + 0x65, 0xb8, 0x7f, 0x88, 0xa1, 0xaf, 0xc1, 0x51, + 0xc8, 0x90, 0xd8, 0xe1, 0xec, 0xd2, 0x9a, 0xba, + 0xf9, 0x04, 0x57, 0xea, 0x74, 0x2e, 0xf6, 0x17, + 0x35, 0x52, 0xe5, 0x78, 0x85, 0x35, 0x6c, 0xf8, + 0xc3, 0x05, 0xbc, 0x86, 0xc5, 0xdf, 0x8f, 0xe1, + 0x84, 0xe5, 0x32, 0xa9, 0xa7, 0x18, 0xec, 0x96, + 0x62, 0xd5, 0x8e, 0xde, 0xc3, 0xc9, 0xdb, 0x95, + 0xdc, 0xa9, 0x56, 0xb5, 0x5f, 0x08, 0x32, 0x4a, + 0xda, 0xab, 0xac, 0xed, 0x31, 0xc7, 0xd0, 0x25, + 0x99, 0x74, 0xd0, 0x99, 0x67, 0x43, 0xaa, 0xa6, + 0x47, 0x0e, 0xb6, 0xd6, 0x7b, 0x20, 0x18, 0xac, + 0xed, 0xda, 0x46, 0xec, 0x3b, 0x97, 0x5f, 0x29, + 0x76, 0x9b, 0xb8, 0x77, 0x1d, 0x9c, 0xc7, 0x8d, + 0xc7, 0x0b, 0xa9, 0x01, 0xbb, 0x1f, 0xe1, 0x12, + 0xac, 0xf3, 0x13, 0x59, 0x58, 0x52, 0xaa, 0xd9, + 0x70, 0xb1, 0xcf, 0x61, 0x4e, 0x47, 0x1c, 0xdb, + 0xfc, 0x74, 0x80, 0xaf, 0xc2, 0x18, 0x4b, 0xb8, + 0xba, 0xb4, 0x11, 0x9d, 0xca, 0x5c, 0x5e, 0x46, + 0xf5, 0xfe, 0x28, 0x17, 0x1e, 0x40, 0xf1, 0x35, + 0x72, 0x75, 0xbb, 0x41, 0x76, 0x5a, 0x4a, 0x5f, + 0x85, 0x2c, 0x76, 0x59, 0x14, 0x72, 0x8c, 0xca, + 0x85, 0xd3, 0xae, 0x11, 0xc6, 0xdc, 0x9e, 0xcb, + 0x93, 0xc9, 0x08, 0x5a, 0xcd, 0x1a, 0x24, 0x22, + 0x42, 0x31, 0x74, 0x97, 0x6a, 0xf5, 0x64, 0xc8, + 0x73, 0xac, 0x7b, 0x56, 0x40, 0xeb, 0x56, 0x6f, + 0x4e, 0x64, 0x7b, 0x19, 0xda, 0x14, 0x94, 0x49, + 0x2d, 0x83, 0xc7, 0xec, 0xb3, 0x2a, 0x05, 0x62, + 0xb8, 0x73, 0x0d, 0x7b, 0x07, 0x4e, 0xac, 0x76, + 0x92, 0xaf, 0xdb, 0x2d, 0xe7, 0xe9, 0xc5, 0xa7, + 0xf5, 0x00, 0x05, 0xf7, 0xac, 0x36, 0x9a, 0xac, + 0x9d, 0x71, 0x8e, 0x82, 0xd4, 0x35, 0xe9, 0x41, + 0xb4, 0xd6, 0xdb, 0x0e, 0xcc, 0xb7, 0x24, 0xbc, + 0xdd, 0xca, 0x98, 0xc7, 0xe2, 0xac, 0x64, 0xe9, + 0xe4, 0x9b, 0x56, 0xd6, 0x5b, 0x09, 0x8a, 0xc8, + 0xd7, 0xb0, 0x81, 0xcc, 0x55, 0xb3, 0x49, 0x96, + 0xd7, 0x99, 0xc7, 0xd9, 0xc8, 0xd5, 0xf6, 0xfa, + 0x5c, 0xf5, 0x2c, 0x62, 0x39, 0x32, 0x2d, 0x5f, + 0x68, 0xae, 0x09, 0xad, 0x1c, 0x00, 0xc2, 0xaa, + 0x8c, 0x55, 0x5c, 0xb6, 0x5f, 0xa7, 0x9b, 0xa9, + 0x16, 0xe6, 0xdd, 0x9e, 0x66, 0x70, 0xfe, 0x76, + 0xfa, 0x71, 0x82, 0xce, 0xca, 0x81, 0x95, 0x28, + 0xa9, 0x03, 0x6e, 0x3b, 0x94, 0x26, 0x5e, 0x29, + 0x52, 0x60, 0xd6, 0x2c, 0x33, 0x4e, 0x48, 0x83, + 0x2f, 0x6a, 0xd6, 0x5b, 0x87, 0xef, 0xe5, 0xe9, + 0xe2, 0x32, 0x2e, 0xa6, 0xaa, 0x39, 0x86, 0xd7, + 0x6d, 0x37, 0xcc, 0x62, 0x9b, 0x5d, 0x96, 0x59, + 0x84, 0x2a, 0x75, 0xac, 0x74, 0x13, 0x52, 0xc5, + 0x08, 0xf0, 0x8a, 0xdc, 0x87, 0x59, 0x62, 0xdc, + 0xa7, 0x3a, 0x72, 0xdc, 0x4b, 0xc3, 0xf4, 0xc3, + 0x1a, 0x99, 0x5d, 0xc7, 0xe3, 0x2f, 0x5e, 0x79, + 0xf6, 0xa2, 0xc3, 0xd5, 0x54, 0x91, 0xe5, 0x7c, + 0x1f, 0xd9, 0xa3, 0xa3, 0x6e, 0xdb, 0x56, 0xe4, + 0x63, 0x6a, 0x31, 0xec, 0x01, 0x51, 0xa7, 0x29, + 0x69, 0xc3, 0xe6, 0xf3, 0xaf, 0x23, 0x93, 0x1c, + 0x46, 0x3d, 0x2f, 0x8b, 0x79, 0xdb, 0xbd, 0x52, + 0xaf, 0x6a, 0x31, 0x35, 0xaa, 0xd8, 0x73, 0x57, + 0x52, 0xc8, 0xc6, 0xd5, 0x4d, 0x96, 0xc6, 0xa7, + 0x6a, 0xb3, 0x32, 0x04, 0xbc, 0x74, 0x5c, 0x84, + 0x90, 0xbc, 0xd4, 0x51, 0x4e, 0xc6, 0x47, 0xb4, + 0x4b, 0x1c, 0xdb, 0xc5, 0x51, 0x97, 0x06, 0x02, + 0xf3, 0xb1, 0x13, 0x90, 0xb3, 0xe0, 0x37, 0xdf, + 0x08, 0x05, 0x72, 0x5f, 0x76, 0x23, 0xb1, 0x32, + 0xd8, 0xca, 0xc0, 0xfa, 0xc4, 0x5d, 0x60, 0x17, + 0x4b, 0x06, 0x30, 0x19, 0x66, 0xde, 0xb4, 0xe5, + 0x71, 0x27, 0x15, 0x71, 0x37, 0x0f, 0xbb, 0x1b, + 0x33, 0x05, 0x42, 0xa5, 0x2c, 0x7a, 0xf8, 0x8c, + 0xf1, 0x2c, 0xaa, 0x98, 0x0d, 0xd3, 0x61, 0x03, + 0xc3, 0x4a, 0xed, 0x76, 0x3a, 0x93, 0xda, 0x4f, + 0x21, 0x74, 0x9b, 0x06, 0x31, 0x4e, 0x2b, 0x60, + 0xa9, 0xe2, 0xdf, 0x08, 0x48, 0xf1, 0x37, 0x0c, + 0xa3, 0x38, 0xe8, 0x18, 0x26, 0x32, 0xb6, 0x57, + 0x24, 0xba, 0xcb, 0xc5, 0x28, 0xb9, 0xe3, 0xa0, + 0x56, 0x17, 0x2c, 0xb5, 0x69, 0xdc, 0xa4, 0x63, + 0x5d, 0x49, 0x48, 0x0c, 0x76, 0xee, 0xb2, 0x6f, + 0x54, 0xb6, 0x72, 0xeb, 0x78, 0x5c, 0xb5, 0xdc, + 0x33, 0xac, 0x4e, 0xdc, 0xd6, 0x82, 0xbc, 0x26, + 0xcd, 0x1b, 0x4c, 0xd8, 0x44, 0x7a, 0xef, 0xc6, + 0x5c, 0xa4, 0x76, 0xf9, 0x46, 0x03, 0xb5, 0xf5, + 0xf9, 0x20, 0x43, 0x96, 0x23, 0x4c, 0xff, 0x00, + 0x30, 0x5f, 0xac, 0x56, 0xb0, 0xff, 0x00, 0x8d, + 0x57, 0xfb, 0x2d, 0xbd, 0x07, 0xbd, 0x1a, 0x3f, + 0x7a, 0x75, 0x67, 0xf1, 0x96, 0x43, 0xf6, 0x82, + 0xd0, 0x7f, 0x9e, 0x1f, 0xfc, 0x0c, 0xd5, 0x0f, + 0xf3, 0xb3, 0xfa, 0xa3, 0xd0, 0xff, 0x00, 0x93, + 0x1f, 0xf7, 0x7f, 0x72, 0xe5, 0xbf, 0x1f, 0xd0, + 0xfe, 0x4e, 0xb7, 0xf5, 0x2b, 0x7e, 0x10, 0x9f, + 0xd6, 0x0e, 0xb8, 0x9b, 0xfd, 0x21, 0xcd, 0xff, + 0x00, 0x29, 0xda, 0xfa, 0xae, 0xc3, 0xda, 0xba, + 0xac, 0x6b, 0x43, 0x26, 0x19, 0x4a, 0x96, 0xac, + 0xa6, 0xe3, 0xaa, 0x33, 0x9a, 0xb4, 0xd3, 0xb3, + 0x55, 0xde, 0x0f, 0xad, 0x76, 0xd2, 0x9b, 0xb7, + 0x45, 0xf5, 0xd8, 0x35, 0x58, 0xa2, 0xe4, 0x7a, + 0x9a, 0x4a, 0x92, 0x51, 0x4b, 0x25, 0x77, 0xed, + 0x62, 0x9f, 0x8f, 0xab, 0x86, 0xab, 0x82, 0xcb, + 0xb0, 0x2d, 0x0a, 0xe4, 0x71, 0x35, 0x7b, 0x33, + 0xca, 0xe2, 0xb1, 0xc3, 0x6a, 0xf5, 0x46, 0x5b, + 0x31, 0x0b, 0x14, 0xdd, 0x59, 0x76, 0x0a, 0xb4, + 0x84, 0x29, 0xc2, 0x3c, 0xf2, 0xc0, 0xcb, 0x55, + 0x76, 0x5d, 0x29, 0xb9, 0x61, 0x5c, 0x34, 0x05, + 0x95, 0xb9, 0x57, 0x27, 0xd3, 0xcb, 0x58, 0xc4, + 0x85, 0xf0, 0xbb, 0x6c, 0xbb, 0x0e, 0x3e, 0xe5, + 0xa1, 0x92, 0xed, 0x08, 0x04, 0xb2, 0xdd, 0x64, + 0x58, 0xb2, 0xb5, 0xc3, 0xac, 0x02, 0x9c, 0x4c, + 0x58, 0x57, 0x8a, 0xcd, 0x9b, 0x31, 0x53, 0x17, + 0x4b, 0x1e, 0x77, 0x24, 0x18, 0xbe, 0xd8, 0xda, + 0xa9, 0xe9, 0x93, 0x80, 0x5d, 0x02, 0xf8, 0x4c, + 0x77, 0x22, 0xbc, 0xbc, 0x14, 0xe2, 0x42, 0x56, + 0x4c, 0x52, 0x66, 0x7a, 0x41, 0x92, 0xbd, 0x4d, + 0x92, 0xda, 0xd6, 0x2c, 0x0b, 0x12, 0x44, 0x2c, + 0x5f, 0x30, 0x8a, 0x94, 0x3e, 0xe1, 0x82, 0x26, + 0x3e, 0x30, 0xcc, 0x78, 0xc3, 0x13, 0xf7, 0x75, + 0x95, 0xcc, 0xce, 0x50, 0xc8, 0xf3, 0x59, 0xec, + 0x06, 0x4e, 0x29, 0xc6, 0x3a, 0xf4, 0x1d, 0x1a, + 0xb4, 0xb2, 0x0a, 0xb9, 0x6c, 0x2d, 0x37, 0xa3, + 0x2a, 0x3b, 0x4b, 0xe6, 0x60, 0x8a, 0xe9, 0x95, + 0x94, 0x18, 0x27, 0x9c, 0x2c, 0x1b, 0x1c, 0x29, + 0x0e, 0x1f, 0x30, 0x79, 0x4c, 0xa3, 0x25, 0xc3, + 0xed, 0xc9, 0x4f, 0x67, 0xb1, 0x1d, 0x9e, 0xa6, + 0x14, 0x9c, 0x7e, 0x2e, 0xeb, 0xf6, 0xee, 0xa3, + 0x2f, 0x38, 0xa4, 0x13, 0x06, 0x7f, 0xbd, 0x43, + 0x6f, 0x76, 0x31, 0x3c, 0x4a, 0x6e, 0x71, 0x40, + 0x64, 0x57, 0x23, 0x4f, 0xda, 0xda, 0x5d, 0x49, + 0xf0, 0xed, 0x2b, 0xbd, 0xf1, 0x03, 0x3d, 0x3f, + 0xde, 0xc9, 0x61, 0xfb, 0x67, 0x2f, 0x93, 0x93, + 0xdd, 0xcc, 0x0c, 0xe3, 0x73, 0x53, 0x69, 0x95, + 0x52, 0x11, 0xc5, 0x0c, 0xa6, 0x0d, 0xa5, 0x73, + 0xfb, 0x27, 0x49, 0x76, 0x32, 0xf7, 0x02, 0xfd, + 0x57, 0x42, 0x65, 0x0b, 0x4a, 0xc6, 0xdb, 0x42, + 0xf8, 0x5d, 0x65, 0x57, 0xd5, 0x2a, 0xf1, 0xc8, + 0xa7, 0xf5, 0xc7, 0x96, 0x81, 0x4b, 0x8b, 0x64, + 0x70, 0x5d, 0xcc, 0x3b, 0x3d, 0xa5, 0xdd, 0xd9, + 0x07, 0x55, 0xc8, 0xa9, 0x69, 0xf7, 0x1d, 0xf1, + 0x27, 0x61, 0x51, 0xd5, 0x8d, 0xd3, 0x1c, 0xdb, + 0xc9, 0xc4, 0x09, 0x6c, 0xe9, 0x66, 0x45, 0xd8, + 0x7c, 0xaa, 0x5d, 0x5a, 0xc6, 0x33, 0x25, 0x1d, + 0xb2, 0x6b, 0x2f, 0xa7, 0xd4, 0xed, 0x0a, 0x6c, + 0xe3, 0x93, 0x62, 0xf5, 0x77, 0xcc, 0xca, 0x5b, + 0x56, 0xcd, 0x74, 0x37, 0x94, 0x94, 0x6b, 0x67, + 0x4e, 0x0c, 0x58, 0x3c, 0x40, 0xe7, 0x65, 0x02, + 0xac, 0x0d, 0xee, 0x11, 0x53, 0xb2, 0x96, 0x6a, + 0x5d, 0x20, 0xc9, 0x5c, 0xaf, 0x8f, 0xcb, 0x22, + 0xcd, 0xa6, 0xa6, 0xa5, 0x77, 0xdb, 0x8e, 0xd1, + 0xb3, 0x1a, 0xa3, 0x65, 0x61, 0x63, 0x64, 0x16, + 0x56, 0xc6, 0xbb, 0x5a, 0xc9, 0x00, 0x57, 0x6c, + 0xaf, 0x8a, 0x5d, 0x1c, 0xbb, 0x2c, 0xad, 0x97, + 0xf8, 0x7e, 0x9e, 0x65, 0xd6, 0xf1, 0xac, 0xab, + 0x42, 0xbf, 0x35, 0x41, 0x76, 0x3b, 0x28, 0x34, + 0xf2, 0xe1, 0x38, 0xe8, 0x3e, 0x99, 0x32, 0xa5, + 0x36, 0xf6, 0x90, 0xea, 0xdc, 0xde, 0xbe, 0xb1, + 0xd7, 0x19, 0x94, 0x8a, 0x36, 0xb1, 0x85, 0x91, + 0x96, 0x8b, 0xb8, 0x7f, 0x15, 0x90, 0xcc, 0x5c, + 0x26, 0x5d, 0xb5, 0x90, 0xa3, 0x67, 0x19, 0x91, + 0x66, 0x1e, 0xd5, 0x5a, 0x76, 0x5a, 0xcb, 0x5d, + 0x2b, 0x82, 0xc7, 0xd0, 0xad, 0x59, 0x8b, 0x2b, + 0x35, 0x14, 0xde, 0xa7, 0x2e, 0xad, 0xe5, 0x2c, + 0x64, 0x3a, 0x16, 0xdd, 0xc2, 0x16, 0x30, 0x71, + 0x8c, 0x8a, 0x56, 0xc9, 0x93, 0x91, 0x8c, 0x77, + 0x83, 0x96, 0x62, 0xe5, 0x20, 0xa9, 0x0d, 0x27, + 0xad, 0x6b, 0x6c, 0x32, 0x6c, 0x0b, 0x81, 0xcc, + 0x25, 0x32, 0xb0, 0x28, 0x3a, 0xe5, 0xf5, 0x78, + 0x67, 0xfc, 0xf7, 0x10, 0x7f, 0x2a, 0x17, 0xee, + 0x37, 0x9e, 0xf9, 0xfe, 0x3f, 0xa8, 0x41, 0x3e, + 0x43, 0x12, 0x19, 0xdb, 0xcb, 0xb1, 0x46, 0xdd, + 0xdf, 0xc7, 0xae, 0x19, 0x5d, 0x5c, 0xe6, 0x6e, + 0x84, 0x70, 0xa5, 0x08, 0xa3, 0x8c, 0x94, 0x86, + 0x02, 0xd7, 0x34, 0xc5, 0x65, 0x53, 0x8b, 0xd6, + 0x57, 0x95, 0xc0, 0xe4, 0x51, 0x39, 0x01, 0xac, + 0xb9, 0x48, 0x59, 0xae, 0xaa, 0xdd, 0x20, 0x7d, + 0x91, 0x50, 0x04, 0x3c, 0xe2, 0x65, 0xee, 0xc9, + 0x65, 0x9b, 0x5d, 0xd7, 0xb1, 0xd9, 0x5c, 0x86, + 0x30, 0x8b, 0x1d, 0x18, 0xfc, 0xa6, 0x63, 0x14, + 0x35, 0x7b, 0x26, 0x4e, 0xd8, 0x86, 0x34, 0x2c, + 0xa9, 0xd0, 0x74, 0x28, 0xb9, 0xb5, 0x71, 0xd6, + 0xa8, 0x62, 0xdc, 0xea, 0x69, 0x63, 0x28, 0x14, + 0xf5, 0x3a, 0x99, 0x0c, 0x45, 0xb6, 0x3c, 0x2b, + 0xe4, 0xa9, 0xbe, 0x93, 0x98, 0x82, 0x08, 0xb0, + 0x0a, 0x78, 0x48, 0x14, 0xa4, 0x9a, 0xb7, 0x2c, + 0x4e, 0x22, 0x77, 0x1e, 0x75, 0x30, 0x77, 0xf2, + 0x84, 0xe9, 0x36, 0x02, 0xed, 0xec, 0x5d, 0xea, + 0xe2, 0xf5, 0xa7, 0x21, 0x8d, 0x9a, 0x9d, 0xa0, + 0x11, 0x6b, 0x93, 0xb4, 0xd7, 0x95, 0xe4, 0x2a, + 0x64, 0x29, 0x35, 0x2e, 0xe9, 0xac, 0xa4, 0x5f, + 0x51, 0xa4, 0xb6, 0x29, 0x6e, 0x41, 0x29, 0xc0, + 0x2c, 0x88, 0x64, 0xe6, 0x72, 0xb9, 0x72, 0x56, + 0x42, 0xe6, 0x45, 0x0f, 0xc9, 0xf6, 0x43, 0xbe, + 0x4c, 0xbf, 0x8f, 0xa9, 0x8f, 0xb2, 0x19, 0x1b, + 0xa8, 0xae, 0x9f, 0x08, 0x08, 0x0d, 0x40, 0xec, + 0x45, 0x09, 0xaa, 0x75, 0x11, 0xc9, 0x4e, 0x65, + 0xe9, 0x4a, 0xb6, 0xbb, 0x9b, 0x13, 0x74, 0xda, + 0xbf, 0x8e, 0xc6, 0xe3, 0x5a, 0xb9, 0x95, 0xf6, + 0x71, 0x46, 0x2e, 0xc6, 0x4e, 0xca, 0x0d, 0x63, + 0x0b, 0x86, 0xc3, 0x8c, 0xf2, 0xb6, 0x21, 0xd2, + 0x4e, 0x30, 0x21, 0x04, 0xf2, 0x2d, 0x72, 0x2c, + 0x26, 0x61, 0xf2, 0x35, 0x62, 0x0a, 0xc6, 0x2e, + 0xe1, 0x73, 0xa8, 0x8a, 0x02, 0x1f, 0x8f, 0xbe, + 0xa9, 0xa9, 0x78, 0x20, 0xe6, 0x27, 0x95, 0x89, + 0x89, 0x4d, 0xf5, 0x7f, 0xef, 0x4a, 0x97, 0x67, + 0xdc, 0x7a, 0xfc, 0xe3, 0x98, 0xb5, 0x62, 0x5e, + 0xcf, 0x0e, 0x62, 0x29, 0xe1, 0x6e, 0xa7, 0xa9, + 0x00, 0x98, 0xa9, 0x45, 0x99, 0x36, 0x2c, 0x91, + 0x20, 0x02, 0xf5, 0x58, 0x29, 0xca, 0xd8, 0xe7, + 0x6f, 0x5c, 0xb6, 0xe9, 0xa2, 0x54, 0x0a, 0x30, + 0x32, 0x61, 0x46, 0x62, 0xf6, 0x4f, 0x3b, 0x0f, + 0xb5, 0x4a, 0xcd, 0xf1, 0xca, 0x16, 0x3a, 0x55, + 0x93, 0x5e, 0x31, 0x4f, 0x1c, 0x55, 0x1b, 0xd5, + 0xe9, 0x63, 0xa9, 0x57, 0x3a, 0x18, 0xe7, 0xd9, + 0x66, 0x41, 0x29, 0x4a, 0x90, 0x4f, 0xc8, 0xf2, + 0xda, 0xbe, 0xcb, 0x86, 0x3a, 0xe1, 0xca, 0xcc, + 0xb9, 0x90, 0xb1, 0x1c, 0x31, 0x74, 0x2f, 0x51, + 0x6b, 0xda, 0x83, 0x7b, 0xcd, 0x58, 0xec, 0x8e, + 0x2d, 0x4a, 0xbe, 0x7d, 0x9a, 0x3a, 0xea, 0x0a, + 0x99, 0x26, 0x46, 0xe0, 0x29, 0xb0, 0x66, 0x94, + 0x31, 0xaf, 0x61, 0x75, 0xfa, 0xef, 0x47, 0x85, + 0xb3, 0x7d, 0x9e, 0x68, 0x5b, 0xc5, 0x50, 0x4c, + 0x3e, 0x8c, 0x46, 0x1b, 0x1f, 0x7d, 0xa9, 0x65, + 0xea, 0xd8, 0xd6, 0xf8, 0x3b, 0xb4, 0xcf, 0x69, + 0x0a, 0xeb, 0xad, 0xd7, 0xc8, 0xbf, 0x21, 0x6a, + 0xad, 0x68, 0xe9, 0xd0, 0x7d, 0x5d, 0x84, 0x87, + 0x33, 0xc3, 0xb5, 0x4e, 0xdd, 0x4c, 0x36, 0x63, + 0xb5, 0xf2, 0xd1, 0xae, 0x55, 0xc5, 0x38, 0x80, + 0xbc, 0xa8, 0x0b, 0x49, 0xc3, 0xc1, 0x56, 0x3e, + 0xcb, 0x5d, 0x8d, 0xea, 0x5c, 0x8a, 0xee, 0xed, + 0x29, 0x55, 0x97, 0xba, 0x50, 0x0b, 0x49, 0xf4, + 0x60, 0x2a, 0x58, 0xcc, 0x65, 0x6a, 0xd6, 0x0b, + 0xf4, 0xef, 0xc2, 0x6a, 0x06, 0x14, 0xd4, 0x53, + 0x49, 0x7b, 0x2e, 0xa5, 0x84, 0xe4, 0x30, 0xf7, + 0xd5, 0x76, 0x89, 0xd8, 0xe5, 0xbc, 0xda, 0xf7, + 0x42, 0xc7, 0x35, 0xa5, 0xaf, 0x62, 0x1a, 0xeb, + 0x1a, 0xf0, 0x91, 0x76, 0x59, 0xf9, 0x1a, 0xab, + 0xaa, 0xf1, 0x6b, 0x2e, 0xab, 0x1a, 0xbb, 0xb6, + 0x6d, 0xb2, 0xc0, 0x1a, 0x58, 0x63, 0x8c, 0xc5, + 0x63, 0x6a, 0xa9, 0x75, 0x6b, 0xc1, 0xa0, 0x7a, + 0x22, 0x10, 0xe8, 0x60, 0xcb, 0x93, 0x2d, 0x57, + 0x5d, 0xbd, 0xbd, 0x77, 0x72, 0x3d, 0x35, 0x5a, + 0xc9, 0xdf, 0xa1, 0x8d, 0x22, 0xa5, 0x38, 0xec, + 0x5e, 0x4b, 0x33, 0x0d, 0xf0, 0x9e, 0x42, 0x90, + 0xf6, 0x2e, 0xd7, 0x2f, 0xb3, 0x36, 0x6e, 0x1f, + 0x25, 0xdb, 0x97, 0x2a, 0x57, 0x2b, 0xd7, 0x22, + 0xad, 0x64, 0x03, 0xc8, 0x75, 0x4e, 0xce, 0x4b, + 0x19, 0x4a, 0xde, 0x46, 0x9d, 0xcc, 0x5d, 0xe2, + 0xca, 0x1e, 0x33, 0x11, 0x39, 0x3b, 0xcc, 0xc5, + 0x31, 0x6d, 0x52, 0x6e, 0x5a, 0x2c, 0x7f, 0x8f, + 0x5a, 0xc7, 0x48, 0x55, 0x65, 0x0b, 0x84, 0x2e, + 0x53, 0x3d, 0x24, 0xf6, 0x70, 0x81, 0xe5, 0xb0, + 0x76, 0xb9, 0x7b, 0x7e, 0x4f, 0x21, 0x73, 0x2d, + 0x7f, 0x92, 0x79, 0x96, 0xbb, 0x17, 0x0e, 0x3a, + 0x75, 0x56, 0x7c, 0xa3, 0xce, 0xba, 0x14, 0x95, + 0x53, 0x1e, 0x0d, 0xe5, 0x19, 0x70, 0xd5, 0xeb, + 0x48, 0x8c, 0xb3, 0x96, 0x34, 0xcf, 0xf3, 0x05, + 0xfa, 0xc5, 0x6b, 0x11, 0xf8, 0xd5, 0x7f, 0xb2, + 0xdb, 0xd0, 0x7b, 0xd1, 0xa3, 0xf7, 0xa7, 0x56, + 0x7f, 0x19, 0x64, 0x3f, 0x68, 0x2d, 0x07, 0xf9, + 0xf1, 0xff, 0x00, 0xc0, 0xcd, 0x50, 0xff, 0x00, + 0x3b, 0x3f, 0xaa, 0x3d, 0x0f, 0xf9, 0x31, 0xff, + 0x00, 0x77, 0xee, 0x54, 0x91, 0xb3, 0x46, 0x32, + 0x4f, 0xad, 0xda, 0xeb, 0x61, 0xc8, 0xec, 0xf8, + 0x46, 0xc2, 0x65, 0x5d, 0x70, 0xe4, 0xe5, 0xaa, + 0x54, 0x05, 0xed, 0x46, 0xee, 0x4d, 0x37, 0x5e, + 0x55, 0xc7, 0x04, 0x47, 0x4e, 0xb9, 0x13, 0x12, + 0x2c, 0xc6, 0xa4, 0xb3, 0x38, 0x74, 0xdb, 0xca, + 0xd7, 0xab, 0x62, 0x9d, 0x37, 0x78, 0x5e, 0x18, + 0x51, 0x77, 0x78, 0xaa, 0xb3, 0x78, 0x62, 0x19, + 0x41, 0x4c, 0x69, 0x47, 0x27, 0x8f, 0x72, 0x16, + 0x25, 0x31, 0xd4, 0x60, 0xc7, 0x7e, 0x85, 0xb7, + 0x2e, 0x51, 0xc5, 0x03, 0x6d, 0x3a, 0x95, 0x79, + 0xc8, 0x95, 0xa8, 0x9b, 0x16, 0x2b, 0x9c, 0x2e, + 0xc0, 0xae, 0x29, 0xd4, 0xb9, 0x22, 0xa4, 0x30, + 0xa1, 0x6d, 0xb4, 0xf8, 0x4d, 0x41, 0x3d, 0xc7, + 0xaf, 0xb8, 0x1c, 0x0b, 0xea, 0x59, 0x5c, 0xaa, + 0xc5, 0x66, 0x9a, 0x5c, 0xb9, 0x98, 0x9e, 0x56, + 0x2e, 0x76, 0x28, 0xdc, 0x66, 0x44, 0xbf, 0x88, + 0x86, 0x64, 0x4a, 0x3b, 0xe2, 0x66, 0x35, 0x8f, + 0x9b, 0x72, 0x82, 0xf0, 0x8d, 0x20, 0xba, 0xae, + 0x81, 0x99, 0xf4, 0xb9, 0xa6, 0x60, 0xeb, 0x3f, + 0x99, 0x6b, 0xe5, 0xb6, 0x8f, 0x12, 0x5c, 0xb0, + 0xea, 0x00, 0xc3, 0x57, 0x30, 0xd2, 0xe6, 0xee, + 0xdf, 0x78, 0xdb, 0xef, 0xef, 0xad, 0xf7, 0x8d, + 0xbe, 0xfe, 0xfa, 0xa7, 0x91, 0x33, 0x57, 0x42, + 0xeb, 0xae, 0x21, 0x43, 0x04, 0x5d, 0x51, 0x2a, + 0x5d, 0x0e, 0xac, 0xb2, 0x24, 0x20, 0x20, 0x4b, + 0xb4, 0x07, 0x4e, 0x45, 0x87, 0x33, 0xb1, 0x73, + 0x40, 0x77, 0x73, 0x79, 0x63, 0xf2, 0xe9, 0x55, + 0xd3, 0x1c, 0xee, 0x73, 0x01, 0x4b, 0x5c, 0x4c, + 0x6e, 0x4c, 0x61, 0x40, 0x00, 0xf7, 0xcf, 0x76, + 0xe4, 0x51, 0x1d, 0xff, 0x00, 0x7f, 0x46, 0xa3, + 0xda, 0x18, 0x06, 0x40, 0x43, 0xbc, 0x4f, 0x8c, + 0x13, 0x22, 0x5e, 0x4f, 0x2e, 0xd3, 0x13, 0xe4, + 0xd7, 0x96, 0x3f, 0x73, 0x96, 0xfc, 0x7f, 0x43, + 0xf9, 0x3a, 0xdf, 0xd4, 0xad, 0xf8, 0x42, 0x7f, + 0x58, 0x3a, 0xe2, 0x68, 0x9e, 0xef, 0xfd, 0xa0, + 0xcc, 0xcf, 0xfc, 0xc5, 0x91, 0xb0, 0x43, 0xf9, + 0x46, 0x62, 0x7f, 0x70, 0x93, 0x53, 0x6b, 0x26, + 0x2c, 0xdd, 0xec, 0x15, 0xfb, 0x49, 0xb4, 0x65, + 0xee, 0x0a, 0xc7, 0x69, 0xe4, 0xb8, 0x52, 0x5d, + 0xed, 0x55, 0x57, 0x0a, 0xeb, 0x99, 0x72, 0xec, + 0x76, 0xab, 0x88, 0x41, 0xf3, 0x1f, 0x26, 0x43, + 0x26, 0x06, 0xa8, 0x46, 0x35, 0xb4, 0x14, 0xf0, + 0x29, 0x3e, 0xb1, 0x96, 0x40, 0xde, 0x09, 0x94, + 0xc4, 0x2e, 0x40, 0xa0, 0x65, 0x05, 0xd5, 0xe7, + 0x62, 0xe6, 0x22, 0x47, 0x92, 0x0f, 0xbf, 0x6f, + 0x2c, 0x77, 0x79, 0x7b, 0xfc, 0x9a, 0xb5, 0x65, + 0x63, 0xcc, 0x8a, 0x40, 0xa6, 0x59, 0x67, 0x30, + 0xec, 0xb1, 0x73, 0x82, 0xba, 0xbc, 0xb3, 0xb9, + 0x49, 0xb4, 0xe0, 0x62, 0x07, 0x79, 0xf2, 0xcf, + 0x90, 0x66, 0x75, 0x5e, 0x72, 0x19, 0x8c, 0x3e, + 0x3c, 0xec, 0xb1, 0xaa, 0x5a, 0xac, 0x78, 0x5c, + 0x8a, 0x18, 0x89, 0x50, 0xb8, 0x5a, 0xca, 0xb8, + 0x8b, 0x35, 0xd3, 0xd2, 0x63, 0x61, 0x4c, 0x96, + 0xbc, 0x04, 0x48, 0x4e, 0x64, 0xba, 0x63, 0xcf, + 0xa7, 0xd2, 0xb8, 0x1d, 0x0b, 0x35, 0x9a, 0x48, + 0x72, 0x8a, 0x63, 0x71, 0x60, 0x4e, 0xd3, 0x11, + 0x31, 0x32, 0x25, 0x13, 0xe5, 0x12, 0x09, 0x91, + 0x31, 0x98, 0x21, 0x99, 0x19, 0x89, 0xd7, 0x79, + 0x44, 0x77, 0xc4, 0x4c, 0xcf, 0x90, 0x7d, 0xfd, + 0xb7, 0x9e, 0xef, 0xe2, 0x89, 0x9f, 0xbd, 0x13, + 0x3a, 0x7e, 0x31, 0x19, 0x6b, 0x33, 0x8e, 0x63, + 0x0a, 0x4a, 0xb5, 0x7b, 0x77, 0x15, 0x8f, 0xb7, + 0xdf, 0x1e, 0xdf, 0xd8, 0xd9, 0xd0, 0x83, 0xe7, + 0xe9, 0x81, 0x44, 0xd8, 0xac, 0x0d, 0xd8, 0x43, + 0x9c, 0x04, 0x87, 0x68, 0xdb, 0x78, 0xdf, 0xef, + 0x7d, 0xdd, 0x15, 0x8b, 0x56, 0xa9, 0x50, 0xa8, + 0x01, 0x52, 0x4a, 0xdd, 0xa9, 0xb5, 0x2a, 0xeb, + 0x5d, 0xaf, 0x16, 0x91, 0x54, 0x17, 0x52, 0xa5, + 0xab, 0x6e, 0xb3, 0xd0, 0x28, 0x63, 0x05, 0x15, + 0x9a, 0x09, 0x09, 0x83, 0x6b, 0x00, 0x08, 0x4a, + 0x57, 0x83, 0xf0, 0xc5, 0x1a, 0xbe, 0x13, 0x65, + 0x16, 0x52, 0x06, 0x37, 0x2a, 0x74, 0x33, 0x12, + 0xd9, 0x72, 0xe9, 0xd9, 0x4c, 0xd2, 0xc7, 0xda, + 0x57, 0xb5, 0xc9, 0x34, 0x20, 0xef, 0x85, 0x56, + 0xd7, 0x26, 0x35, 0x52, 0x20, 0xc8, 0xb0, 0x01, + 0x62, 0x55, 0x93, 0xc7, 0x32, 0x95, 0x35, 0x81, + 0xdc, 0xc9, 0xf2, 0xe5, 0x17, 0x4a, 0xb1, 0x34, + 0xcd, 0x6a, 0x41, 0x03, 0xf1, 0x8a, 0xbe, 0xd7, + 0xb4, 0xc3, 0x65, 0xae, 0xad, 0x1b, 0x1c, 0xf1, + 0xb9, 0x44, 0xf2, 0x2d, 0xc4, 0xa8, 0x35, 0x3e, + 0xa5, 0xb4, 0x33, 0x1f, 0x67, 0x27, 0x52, 0xc5, + 0x72, 0xb1, 0xd2, 0xbb, 0x5e, 0x91, 0xc8, 0x5d, + 0x1a, 0xf0, 0xea, 0xc9, 0x70, 0x3e, 0x9f, 0x2b, + 0x0e, 0xc2, 0x2d, 0xaa, 0xb3, 0x01, 0x4a, 0x23, + 0xda, 0x60, 0x95, 0xd4, 0xfd, 0xc7, 0x0b, 0xef, + 0xf7, 0x5b, 0x9f, 0x28, 0xf7, 0xbc, 0x2a, 0x71, + 0xbf, 0xfd, 0x53, 0xfd, 0xd2, 0xcf, 0xf3, 0x05, + 0xfa, 0xc5, 0x6b, 0x11, 0xf8, 0xd5, 0x7f, 0xb2, + 0xdb, 0xd0, 0x7b, 0xd1, 0xa3, 0xf7, 0xa7, 0x56, + 0x7f, 0x19, 0x64, 0x3f, 0x68, 0x2d, 0x07, 0xf9, + 0xe1, 0xff, 0x00, 0xc0, 0xcd, 0x52, 0x79, 0xce, + 0xc0, 0xbb, 0x0b, 0xe7, 0x9f, 0x27, 0x28, 0x14, + 0xf2, 0x19, 0x7f, 0xf7, 0x22, 0x53, 0x3f, 0xf3, + 0x6b, 0x23, 0x8c, 0x68, 0xf2, 0x95, 0x3b, 0x8f, + 0x50, 0xf7, 0x6d, 0xcc, 0xae, 0x79, 0x94, 0x32, + 0x3f, 0x89, 0x89, 0x90, 0x38, 0xfe, 0x22, 0xfd, + 0xcf, 0x84, 0xa2, 0x4a, 0xbe, 0x0a, 0xdd, 0x7a, + 0xd6, 0x99, 0x9a, 0xe8, 0xcb, 0xa8, 0xd1, 0x42, + 0xe9, 0x2a, 0x1c, 0xb6, 0x98, 0x92, 0xd7, 0xdb, + 0x10, 0xc0, 0x9a, 0xc3, 0x8f, 0x96, 0xaa, 0xcb, + 0x5d, 0xd3, 0x5a, 0x83, 0xdb, 0x17, 0xbf, 0x0b, + 0xd5, 0xb5, 0x5c, 0x13, 0x71, 0xbc, 0x3b, 0x89, + 0xf0, 0x5e, 0x51, 0xac, 0x77, 0x4a, 0xbe, 0x53, + 0x95, 0x85, 0x8c, 0x9b, 0xb5, 0x7a, 0x9d, 0x16, + 0xd4, 0xed, 0x30, 0x00, 0xc8, 0x8d, 0xa7, 0x73, + 0x12, 0x22, 0x20, 0x12, 0x8d, 0x61, 0x81, 0x15, + 0x2c, 0x5a, 0xbb, 0x8c, 0x8c, 0x86, 0x23, 0x30, + 0x85, 0x2e, 0x58, 0xea, 0x59, 0x0f, 0x0c, 0x5e, + 0xb8, 0x4f, 0xb6, 0x01, 0x1e, 0xd3, 0x5a, 0xc8, + 0x5d, 0x13, 0x8b, 0x67, 0x01, 0x5f, 0x9d, 0x6f, + 0x12, 0x64, 0x4a, 0xa7, 0x55, 0xb0, 0xe8, 0xb1, + 0x17, 0x6b, 0xf6, 0xf8, 0x5b, 0x2d, 0xac, 0x79, + 0x00, 0xea, 0x57, 0xdd, 0xb7, 0x6c, 0x84, 0x41, + 0xbb, 0xda, 0x97, 0x59, 0x4f, 0x64, 0x17, 0x31, + 0x41, 0x00, 0x41, 0x47, 0x97, 0x6d, 0x0d, 0x92, + 0x43, 0x55, 0x5b, 0x19, 0xc5, 0x75, 0xf2, 0x56, + 0x03, 0x21, 0x6d, 0x17, 0x11, 0x14, 0x33, 0x2c, + 0x1a, 0x93, 0xe4, 0xa1, 0x46, 0x2b, 0xe3, 0x82, + 0xe5, 0x7c, 0x70, 0xb9, 0x2e, 0x97, 0xc7, 0x2d, + 0x89, 0xdc, 0xf6, 0xe7, 0xe6, 0xb6, 0xec, 0xa1, + 0xb2, 0x78, 0x92, 0x28, 0xe4, 0xfe, 0xb7, 0x97, + 0x64, 0x1b, 0xf5, 0xc4, 0x3b, 0x5b, 0xc7, 0xf6, + 0xb6, 0x51, 0x83, 0x5f, 0x5f, 0xb3, 0xc5, 0x49, + 0xc8, 0x8e, 0x12, 0x11, 0x3c, 0xe0, 0xc1, 0xbf, + 0x38, 0xe0, 0x08, 0x8e, 0x6d, 0x59, 0x3e, 0x96, + 0x42, 0xe7, 0x13, 0x15, 0x9c, 0x47, 0x84, 0xbe, + 0xb7, 0x6d, 0xc5, 0x2c, 0xc2, 0x6b, 0x15, 0x22, + 0xe9, 0xab, 0x2e, 0x4c, 0xc4, 0xde, 0x6b, 0x18, + 0x4f, 0x8f, 0xec, 0xdc, 0x6d, 0x0a, 0x2b, 0x5d, + 0x2f, 0x08, 0xb5, 0x8d, 0xdc, 0x61, 0xcc, 0xaf, + 0x40, 0x95, 0x7e, 0x1d, 0xc5, 0x85, 0x88, 0xa1, + 0x8b, 0xbd, 0x56, 0x6d, 0x26, 0xd4, 0x5c, 0xc1, + 0xf6, 0xb1, 0xc3, 0x5e, 0x5d, 0x0b, 0x15, 0xca, + 0xe2, 0x69, 0xf6, 0xb2, 0xaa, 0x75, 0x29, 0x4b, + 0x3a, 0x70, 0x71, 0x4a, 0x16, 0xce, 0x46, 0x86, + 0x62, 0xca, 0xab, 0xbf, 0x13, 0x95, 0x8a, 0x3c, + 0x3a, 0x8b, 0x6f, 0xb5, 0x6e, 0xad, 0xfc, 0x9b, + 0x66, 0xc5, 0x8c, 0x9e, 0xf6, 0xb2, 0x0c, 0x5d, + 0x1a, 0x9d, 0x97, 0x24, 0xea, 0x84, 0x35, 0xad, + 0x43, 0x6b, 0x8d, 0xd2, 0x47, 0x7d, 0x99, 0x93, + 0xb0, 0xc9, 0x2b, 0xc0, 0x7e, 0x13, 0x8a, 0x98, + 0xc9, 0xe1, 0x76, 0xd1, 0xb8, 0xeb, 0x31, 0x5b, + 0x0f, 0xb8, 0x65, 0x31, 0x09, 0x6d, 0xbe, 0x1a, + 0xc6, 0xa5, 0x2b, 0x45, 0x3a, 0xc5, 0x4d, 0xf6, + 0x41, 0xf6, 0xab, 0xda, 0xb6, 0xc7, 0xa2, 0xcf, + 0xef, 0xa6, 0x03, 0x2d, 0xb9, 0x65, 0x8e, 0x03, + 0x8b, 0x93, 0x81, 0x24, 0xe4, 0x3e, 0xbb, 0x7b, + 0x74, 0x32, 0x6a, 0xcd, 0xee, 0xd9, 0x7a, 0x2f, + 0xce, 0x72, 0x5f, 0xdd, 0xda, 0xd5, 0x52, 0x31, + 0xfe, 0x08, 0xed, 0xb3, 0xd5, 0x11, 0x8a, 0x13, + 0x8f, 0xef, 0x91, 0x99, 0xc3, 0x63, 0xc9, 0xb3, + 0xd8, 0xaa, 0xf0, 0xf7, 0x0f, 0x39, 0x08, 0xe4, + 0x01, 0x88, 0x6b, 0xf0, 0xb4, 0xa5, 0x8e, 0x29, + 0x81, 0x83, 0x36, 0xb0, 0x79, 0x02, 0x4c, 0xca, + 0x7d, 0xad, 0x4a, 0x5f, 0xb9, 0x58, 0x44, 0x7e, + 0xe1, 0x64, 0xc1, 0x98, 0x2c, 0xbe, 0x59, 0xb7, + 0x53, 0xbf, 0xff, 0x00, 0xa3, 0x52, 0x47, 0x63, + 0x16, 0x7d, 0xfd, 0x98, 0xe6, 0x3a, 0x03, 0xbb, + 0x69, 0xe8, 0x94, 0xf9, 0x36, 0xdf, 0x5b, 0xc7, + 0x96, 0x35, 0xe1, 0x75, 0x0f, 0xef, 0x3e, 0x20, + 0x48, 0x5f, 0x5c, 0xc7, 0x78, 0x85, 0xc1, 0x00, + 0x4e, 0x46, 0xbe, 0xff, 0x00, 0xe1, 0xae, 0xc0, + 0xf5, 0x0a, 0x3e, 0xf3, 0x86, 0x63, 0xc5, 0x98, + 0xfd, 0xc7, 0x02, 0xc8, 0x44, 0x10, 0x76, 0x8c, + 0xec, 0x9c, 0x6d, 0x3b, 0x4d, 0x98, 0x39, 0xea, + 0x41, 0x6d, 0xb6, 0xf3, 0x28, 0xec, 0xbb, 0xc4, + 0x4e, 0xfc, 0x9c, 0xbe, 0x4e, 0xed, 0x64, 0xa3, + 0x21, 0x47, 0x1f, 0x53, 0x1e, 0x39, 0xee, 0x0f, + 0xed, 0xb2, 0x81, 0x78, 0xa9, 0x88, 0x3b, 0xd7, + 0xb9, 0xa2, 0xd7, 0x68, 0xb2, 0xf1, 0xe8, 0xc6, + 0xde, 0x3f, 0xb8, 0x8e, 0x99, 0x33, 0x9b, 0x78, + 0xf2, 0x03, 0xb8, 0x82, 0x93, 0x2f, 0x66, 0x57, + 0xc4, 0x03, 0xe0, 0x3a, 0xb7, 0x9c, 0x14, 0xae, + 0xb6, 0xb4, 0xe3, 0xb2, 0x7e, 0x10, 0x5e, 0x21, + 0xed, 0x03, 0xe8, 0xd1, 0x53, 0x7c, 0x1e, 0x78, + 0x8e, 0xc6, 0xb6, 0x54, 0x0c, 0x84, 0x2a, 0x31, + 0xeb, 0x96, 0xcf, 0x2c, 0xdd, 0xad, 0x17, 0x73, + 0xd2, 0x17, 0x31, 0x78, 0x3b, 0x39, 0x1a, 0xd9, + 0x61, 0x25, 0x67, 0x55, 0x42, 0xae, 0x7a, 0x57, + 0x92, 0x3c, 0xc8, 0xa1, 0x9b, 0xdc, 0x8e, 0xc1, + 0xd4, 0x80, 0xb3, 0x60, 0x16, 0xc3, 0xc6, 0x9a, + 0x52, 0xe0, 0x85, 0x6d, 0xcd, 0x83, 0xb9, 0x53, + 0x1b, 0x76, 0xe9, 0x59, 0xb7, 0xc4, 0x4e, 0x79, + 0xd5, 0xaa, 0xe6, 0xa1, 0x4e, 0xb7, 0x93, 0x17, + 0x4c, 0x39, 0xc0, 0x12, 0x94, 0x0e, 0xe5, 0x33, + 0xcc, 0xe3, 0x58, 0x88, 0x44, 0x91, 0x4c, 0x0c, + 0x4c, 0xe9, 0x8c, 0xc0, 0x57, 0xc8, 0x64, 0xed, + 0x0e, 0x71, 0x74, 0x72, 0xae, 0xc1, 0xdf, 0xad, + 0x5b, 0xae, 0x8a, 0x78, 0xac, 0x65, 0x4a, 0xde, + 0x13, 0x37, 0xe2, 0xb2, 0x51, 0x63, 0x87, 0xad, + 0x35, 0x19, 0x12, 0x99, 0x74, 0xa7, 0x1a, 0x7b, + 0x19, 0xdc, 0xea, 0xcc, 0xaf, 0xa4, 0xec, 0xf5, + 0x74, 0x2a, 0xa0, 0xe3, 0x9d, 0x97, 0xe1, 0xb1, + 0xac, 0x97, 0x2e, 0xc2, 0xab, 0x78, 0x43, 0x31, + 0x59, 0xd4, 0x52, 0x9b, 0x0b, 0x01, 0x0b, 0x09, + 0x8a, 0x39, 0x3c, 0x92, 0x52, 0xf0, 0x81, 0x13, + 0x5d, 0x68, 0xe5, 0x8e, 0x4f, 0x2d, 0xb5, 0xe1, + 0x8d, 0x6a, 0xc5, 0x9d, 0xee, 0x2b, 0x9e, 0x21, + 0x63, 0x84, 0xe7, 0x17, 0x17, 0x23, 0x23, 0x7e, + 0x0f, 0xc3, 0xdd, 0x25, 0xb2, 0x26, 0x46, 0x87, + 0x62, 0xf0, 0x50, 0xd9, 0x12, 0x28, 0x74, 0x81, + 0x51, 0x18, 0x74, 0x91, 0x69, 0x98, 0xfa, 0x58, + 0xbc, 0x9b, 0xf0, 0xd6, 0xb1, 0xd8, 0x6a, 0xd8, + 0xa7, 0x3b, 0x29, 0x58, 0x70, 0x0a, 0xb7, 0x6b, + 0xb1, 0x29, 0x36, 0xb1, 0xb4, 0xcb, 0x10, 0x1c, + 0xd9, 0x79, 0xb4, 0xc7, 0x85, 0xc5, 0xd7, 0xbe, + 0x57, 0xce, 0x4e, 0xef, 0x6a, 0x29, 0x08, 0x38, + 0x17, 0xd3, 0xc4, 0x29, 0x96, 0xdb, 0x8d, 0xe2, + 0x4c, 0xa3, 0xbb, 0x15, 0x55, 0x13, 0x2c, 0xbb, + 0x1a, 0xfa, 0xb4, 0x29, 0x63, 0xee, 0x22, 0xb2, + 0xa2, 0x58, 0xe0, 0x4a, 0xf1, 0xa6, 0xab, 0x1d, + 0x31, 0x32, 0xaf, 0x0c, 0x51, 0x1e, 0xcb, 0x66, + 0xf1, 0xec, 0x7b, 0x8b, 0x6f, 0xdb, 0xb8, 0xc7, + 0x57, 0x5d, 0xd5, 0xef, 0xcc, 0x55, 0xdd, 0x6b, + 0x33, 0x66, 0xe0, 0x53, 0x3e, 0xf9, 0xe5, 0x72, + 0x12, 0xe5, 0xf5, 0x55, 0xff, 0x00, 0x22, 0xc3, + 0x95, 0x14, 0x0b, 0x00, 0xc6, 0x33, 0x78, 0xaa, + 0x83, 0x2d, 0xc9, 0x4e, 0x57, 0x1f, 0x91, 0x55, + 0x55, 0xc7, 0x35, 0x8b, 0xb5, 0xab, 0x2b, 0x22, + 0x97, 0xae, 0xba, 0xe2, 0x3a, 0x8f, 0x65, 0x72, + 0xb0, 0xb7, 0xf4, 0x17, 0xce, 0x72, 0x12, 0xc3, + 0x00, 0xf6, 0xb3, 0x9d, 0x70, 0x7b, 0x1b, 0x43, + 0xc1, 0x77, 0x6e, 0x59, 0xcc, 0x78, 0x5b, 0x1c, + 0xe7, 0xb4, 0x98, 0xac, 0x5a, 0xea, 0x2a, 0x01, + 0xb6, 0xaa, 0xda, 0x33, 0xb1, 0x52, 0x2c, 0xd4, + 0x6d, 0xf3, 0x91, 0x7c, 0x07, 0x55, 0x43, 0x06, + 0x21, 0xcb, 0xb4, 0xcc, 0x7b, 0xdf, 0x54, 0x16, + 0xb1, 0x93, 0x63, 0x0c, 0x56, 0xb0, 0x18, 0xdc, + 0x8c, 0xce, 0x60, 0x40, 0x46, 0x23, 0xbe, 0x48, + 0x8a, 0x62, 0x22, 0x23, 0xbe, 0x66, 0x76, 0xd6, + 0x27, 0x09, 0x13, 0x13, 0x38, 0x8a, 0x21, 0x5e, + 0xc4, 0xc4, 0xc1, 0x0c, 0xdf, 0x71, 0x95, 0x9b, + 0xdc, 0xa5, 0x13, 0x3e, 0xe5, 0xed, 0x95, 0x4c, + 0x7d, 0xc2, 0x59, 0x6d, 0xdd, 0xfd, 0xd2, 0x7f, + 0xe6, 0x0b, 0xf5, 0x8a, 0xd6, 0x23, 0xf1, 0xaa, + 0xff, 0x00, 0x65, 0xb7, 0xa0, 0xf7, 0xa3, 0x47, + 0xef, 0x4e, 0xac, 0xfe, 0x32, 0xc8, 0x7e, 0xd0, + 0x5a, 0x99, 0xff, 0x00, 0x00, 0xc0, 0xff, 0x00, + 0xef, 0x0f, 0xff, 0x00, 0x1f, 0xea, 0x26, 0x65, + 0xca, 0xa1, 0x9e, 0xa8, 0xa8, 0x4a, 0x6e, 0x3f, + 0xc4, 0xa7, 0x91, 0xac, 0xbd, 0xa1, 0x55, 0xaf, + 0x32, 0x22, 0x65, 0x36, 0x12, 0x1e, 0x25, 0x7b, + 0x72, 0x32, 0x24, 0xb1, 0x14, 0xd8, 0x2e, 0xe0, + 0x28, 0x90, 0xb1, 0x83, 0xc9, 0x4e, 0xdd, 0xfd, + 0x5a, 0xd5, 0x5b, 0x71, 0x04, 0x3f, 0xe1, 0x8b, + 0xea, 0x0b, 0x95, 0x21, 0xf7, 0x60, 0xb9, 0xb6, + 0xdb, 0x5e, 0x69, 0xca, 0x7a, 0xba, 0xe7, 0xc8, + 0xeb, 0xcd, 0x39, 0x4f, 0x57, 0x5c, 0xf9, 0x1d, + 0x79, 0xa7, 0x29, 0xea, 0xeb, 0x9f, 0x23, 0xaf, + 0x34, 0x65, 0x3d, 0x5d, 0x73, 0xe4, 0x75, 0xe6, + 0x8c, 0xa7, 0xab, 0xae, 0x7c, 0x8e, 0xbc, 0xd1, + 0x94, 0xf5, 0x75, 0xcf, 0x91, 0xd7, 0x9a, 0x32, + 0x9e, 0xae, 0xb9, 0xf2, 0x3a, 0xf3, 0x46, 0x53, + 0xd5, 0xd7, 0x3e, 0x47, 0x5e, 0x68, 0xca, 0x7a, + 0xba, 0xe7, 0xc8, 0xeb, 0xcd, 0x19, 0x4f, 0x57, + 0x5c, 0xf9, 0x1d, 0x79, 0xa3, 0x29, 0xea, 0xeb, + 0x9f, 0x23, 0xaf, 0x34, 0x65, 0x3d, 0x5d, 0x73, + 0xe4, 0x75, 0xe6, 0x8c, 0xa7, 0xab, 0xae, 0x7c, + 0x8e, 0xbc, 0xd1, 0x94, 0xf5, 0x75, 0xcf, 0x91, + 0xd7, 0x9a, 0x32, 0x9e, 0xae, 0xb9, 0xf2, 0x3a, + 0xf3, 0x4e, 0x53, 0xd5, 0xd7, 0x3e, 0x47, 0x5e, + 0x69, 0xca, 0x7a, 0xba, 0xe7, 0xc8, 0xeb, 0x95, + 0x78, 0x5c, 0xb9, 0x97, 0xde, 0x1c, 0x65, 0xd9, + 0x9f, 0xbd, 0xbf, 0x72, 0x3b, 0xa3, 0xbe, 0x3b, + 0xe7, 0xbb, 0x41, 0x6f, 0x89, 0xb7, 0xc4, 0xd0, + 0x0f, 0x6c, 0xec, 0x52, 0x43, 0xe1, 0x6b, 0xf1, + 0x1e, 0x44, 0xa2, 0xbc, 0x4c, 0xf6, 0x70, 0x3f, + 0x21, 0xd8, 0xb1, 0x21, 0xc9, 0x13, 0xe2, 0x01, + 0x4e, 0xf2, 0x03, 0xca, 0xa0, 0xae, 0x84, 0x29, + 0x75, 0xaa, 0x56, 0x54, 0x6c, 0xaa, 0xb5, 0x50, + 0x3c, 0x88, 0x42, 0xff, 0x00, 0xc5, 0x58, 0xfd, + 0xdf, 0xbb, 0x3b, 0xce, 0xd1, 0xbe, 0xd1, 0xf5, + 0x1b, 0x87, 0xcb, 0xac, 0x99, 0x8f, 0x7b, 0x21, + 0xcb, 0x6a, 0xb6, 0xed, 0x38, 0xfb, 0x71, 0x1c, + 0x83, 0x72, 0xac, 0xcc, 0x4c, 0x4c, 0xf2, 0xf8, + 0x8e, 0x54, 0xf8, 0xae, 0x57, 0x8b, 0xef, 0x93, + 0x71, 0xca, 0x1c, 0xf5, 0x1d, 0xfc, 0x4b, 0x58, + 0xbf, 0x6c, 0x67, 0x2c, 0xfb, 0x98, 0xb1, 0x46, + 0x7f, 0x7d, 0xd6, 0x6e, 0xdb, 0x73, 0x2e, 0x40, + 0xe2, 0x27, 0xdc, 0xb0, 0xe3, 0xc6, 0xd7, 0x29, + 0xe1, 0x72, 0xe0, 0x5f, 0x78, 0xf1, 0x97, 0x86, + 0x7f, 0x24, 0xa3, 0x5e, 0x68, 0xca, 0xfa, 0xba, + 0xe7, 0xc8, 0xeb, 0xc1, 0xc5, 0x85, 0xc8, 0x9a, + 0x86, 0xe7, 0x6d, 0x43, 0x0b, 0x1b, 0x7f, 0xab, + 0x5d, 0x84, 0xae, 0x8d, 0x80, 0x5c, 0xc2, 0xf9, + 0x7a, 0x76, 0x84, 0x2b, 0xcb, 0x84, 0xc4, 0xbc, + 0x6a, 0xc9, 0x25, 0xc8, 0x78, 0xfc, 0xfe, 0x68, + 0xca, 0xfa, 0xba, 0xe7, 0xc8, 0xeb, 0xcd, 0x19, + 0x5f, 0x56, 0xdc, 0xf9, 0x1d, 0x79, 0xa3, 0x2b, + 0xea, 0xdb, 0x9f, 0x23, 0xaf, 0x34, 0x65, 0x7d, + 0x5b, 0x73, 0xe4, 0x75, 0xe6, 0x8c, 0xaf, 0xab, + 0xae, 0x7c, 0x8e, 0xbc, 0xd1, 0x95, 0xf5, 0x75, + 0xcf, 0x91, 0xd7, 0x9a, 0x32, 0xbe, 0xad, 0xb9, + 0xf2, 0x3a, 0xf3, 0x46, 0x57, 0xd5, 0xb7, 0x3e, + 0x47, 0x5e, 0x68, 0xca, 0xfa, 0xb6, 0xe7, 0xc8, + 0xeb, 0xcd, 0x19, 0x5f, 0x57, 0x5c, 0xf9, 0x1d, + 0x79, 0xa3, 0x2b, 0xea, 0xeb, 0x9f, 0x23, 0xab, + 0x32, 0x9c, 0x36, 0x4b, 0x9e, 0xcd, 0x47, 0xd2, + 0xea, 0x16, 0x36, 0xf7, 0x32, 0x95, 0x68, 0x7a, + 0x76, 0x25, 0x7b, 0x2a, 0x23, 0x9d, 0xa8, 0x96, + 0x57, 0x99, 0x28, 0x2d, 0x96, 0xd3, 0xda, 0x20, + 0xb6, 0x28, 0xf3, 0x46, 0x57, 0xd5, 0xd7, 0x3e, + 0x47, 0x5e, 0x68, 0xca, 0xfa, 0xba, 0xe7, 0xc8, + 0xea, 0x06, 0xb6, 0x0b, 0x27, 0xdf, 0xdf, 0xd4, + 0x7d, 0x46, 0xd4, 0x4c, 0x0f, 0xf8, 0x52, 0xeb, + 0x42, 0x95, 0xf2, 0xff, 0x00, 0x1f, 0x36, 0x87, + 0x21, 0x65, 0xf5, 0xb2, 0x5c, 0x41, 0xdf, 0xd9, + 0x46, 0xbf, 0xb7, 0x63, 0xf0, 0xfc, 0xc3, 0xb4, + 0xbb, 0xaa, 0x43, 0xcb, 0x73, 0x21, 0x1b, 0xcc, + 0x2c, 0x82, 0x3b, 0x3d, 0x62, 0xdc, 0xe2, 0x5a, + 0x42, 0x32, 0x52, 0x45, 0x32, 0x44, 0x53, 0x32, + 0x45, 0x33, 0xbc, 0xcc, 0xcf, 0x7c, 0xcc, 0xcc, + 0xf7, 0xcc, 0xcc, 0xf9, 0x67, 0xfb, 0xa5, 0x85, + 0xfc, 0x18, 0x57, 0x2c, 0xcf, 0xf1, 0x91, 0x8c, + 0xc7, 0xe5, 0x80, 0x2f, 0xc9, 0xac, 0x47, 0xe3, + 0x55, 0xfe, 0xcb, 0x6f, 0x41, 0xef, 0x46, 0x8f, + 0xde, 0x9d, 0x5a, 0x16, 0xd8, 0x42, 0xcb, 0xc2, + 0x37, 0xfc, 0x56, 0x39, 0x60, 0x5f, 0x6c, 0x1f, + 0xdc, 0x22, 0x89, 0xd4, 0x8c, 0xdb, 0xab, 0x30, + 0x51, 0x23, 0x31, 0xda, 0x55, 0xdf, 0x13, 0xdd, + 0x31, 0xee, 0xfe, 0xf6, 0xbc, 0x4b, 0x35, 0xda, + 0xb9, 0x9f, 0x16, 0x45, 0xea, 0x22, 0xef, 0xfe, + 0x09, 0x08, 0x96, 0xfb, 0xff, 0x00, 0x1e, 0xdc, + 0xb3, 0xdd, 0xe4, 0x99, 0xe5, 0x8d, 0x72, 0xd7, + 0xb5, 0x65, 0x11, 0xe5, 0xd9, 0x2f, 0x62, 0xa3, + 0xf2, 0x01, 0x47, 0xde, 0x8d, 0x79, 0xca, 0xff, + 0x00, 0xc7, 0x2c, 0x7c, 0xa6, 0xbc, 0xe5, 0x7f, + 0xe3, 0x96, 0x3e, 0x53, 0x5e, 0x72, 0xbf, 0xf1, + 0xcb, 0x1f, 0x29, 0xaf, 0x39, 0x5f, 0xf8, 0xe5, + 0x8f, 0x94, 0xd7, 0x9c, 0xaf, 0xfc, 0x72, 0xc7, + 0xca, 0x6b, 0xce, 0x57, 0xfe, 0x39, 0x63, 0xe5, + 0x35, 0xe7, 0x2b, 0xff, 0x00, 0x1c, 0xb1, 0xf2, + 0x9a, 0xf3, 0x95, 0xff, 0x00, 0x8e, 0x58, 0xf9, + 0x4d, 0x79, 0xca, 0xff, 0x00, 0xc7, 0x2c, 0x7c, + 0xa6, 0xbc, 0xe5, 0x7f, 0xe3, 0x96, 0x3e, 0x53, + 0x5e, 0x72, 0xbf, 0xf1, 0xcb, 0x1f, 0x29, 0xaf, + 0x39, 0x5f, 0xf8, 0xe5, 0x8f, 0x94, 0xd7, 0x9c, + 0xaf, 0xfc, 0x72, 0xc7, 0xca, 0x6b, 0xce, 0x57, + 0xfe, 0x39, 0x63, 0xe5, 0x35, 0xe7, 0x2b, 0xff, + 0x00, 0x1c, 0xb1, 0xf2, 0x9a, 0xf3, 0x95, 0xff, + 0x00, 0x8e, 0x58, 0xf9, 0x4d, 0x79, 0xca, 0xff, + 0x00, 0xc7, 0x2c, 0x7c, 0xa6, 0xb6, 0x9c, 0x8d, + 0xe9, 0x8f, 0xe3, 0xb7, 0x63, 0xe5, 0x35, 0x33, + 0x33, 0x33, 0x33, 0x3b, 0xcc, 0xcf, 0x7c, 0xcc, + 0xcf, 0x96, 0x66, 0x7e, 0xec, 0xcf, 0xee, 0x60, + 0xd6, 0x64, 0xb3, 0x8f, 0x21, 0x81, 0x48, 0x94, + 0x7d, 0xce, 0xe2, 0x8d, 0xa6, 0x3b, 0xbb, 0xb5, + 0xe7, 0x2b, 0xff, 0x00, 0x1c, 0xb1, 0xf2, 0x9a, + 0xf3, 0x95, 0xff, 0x00, 0x8e, 0x58, 0xf9, 0x4d, + 0x79, 0xca, 0xff, 0x00, 0xc7, 0x2c, 0x7c, 0xa6, + 0xbc, 0xe5, 0x7f, 0xe3, 0x96, 0x3e, 0x53, 0x5e, + 0x72, 0xbf, 0xf1, 0xcb, 0x1f, 0x29, 0xaf, 0x39, + 0x5f, 0xf8, 0xe5, 0x8f, 0x94, 0xd7, 0x9c, 0xaf, + 0xfc, 0x72, 0xc7, 0xca, 0x6b, 0xce, 0x57, 0xfe, + 0x39, 0x63, 0xe5, 0x35, 0xe7, 0x2b, 0xff, 0x00, + 0x1c, 0xb1, 0xf2, 0x9a, 0xf3, 0x95, 0xff, 0x00, + 0x8e, 0x58, 0xf9, 0x4d, 0x79, 0xca, 0xff, 0x00, + 0xc7, 0x2c, 0x7c, 0xa6, 0xbc, 0xe5, 0x7f, 0xe3, + 0x96, 0x3e, 0x53, 0x5e, 0x72, 0xbf, 0xf1, 0xcb, + 0x1f, 0x29, 0xaf, 0x39, 0x5f, 0xf8, 0xe5, 0x8f, + 0x94, 0xd7, 0x9c, 0xaf, 0xfc, 0x72, 0xc7, 0xca, + 0x6b, 0xce, 0x57, 0xfe, 0x39, 0x63, 0xe5, 0x35, + 0xe7, 0x2b, 0xff, 0x00, 0x1c, 0xb1, 0xf2, 0x9a, + 0xe5, 0x7d, 0xab, 0x2f, 0x8f, 0xbc, 0xe7, 0xb5, + 0x91, 0xdd, 0xe4, 0xee, 0x32, 0x9f, 0xee, 0xa8, + 0x09, 0x62, 0x82, 0x67, 0xbf, 0xdb, 0x18, 0x0b, + 0x8d, 0xbe, 0xfe, 0xe7, 0x31, 0xdd, 0xff, 0x00, + 0xfd, 0x1a, 0xe4, 0xed, 0x95, 0x24, 0xa7, 0xbc, + 0xcb, 0xb4, 0xa7, 0xbe, 0x7e, 0x1f, 0x92, 0x3c, + 0x91, 0xf9, 0x7e, 0xee, 0xb1, 0x22, 0xa7, 0xa5, + 0xa5, 0xe1, 0x35, 0xcc, 0xc2, 0xda, 0x0c, 0x98, + 0x8e, 0xcd, 0x6a, 0x37, 0xd8, 0x4a, 0x67, 0x6e, + 0xf8, 0xef, 0xfe, 0x3d, 0x07, 0xbd, 0x1a, 0x91, + 0xfb, 0xfa, 0x23, 0x84, 0xae, 0x39, 0x8a, 0x4a, + 0x79, 0x40, 0x63, 0x79, 0x99, 0xde, 0x66, 0x76, + 0x8e, 0xf9, 0x99, 0xef, 0x99, 0xfb, 0xbe, 0x5d, + 0x7b, 0x88, 0xfc, 0x9f, 0xd1, 0xaf, 0x71, 0x1f, + 0x93, 0xfa, 0x35, 0xee, 0x23, 0xe0, 0xff, 0x00, + 0x46, 0xbd, 0xc4, 0x7c, 0x1f, 0xe8, 0xd7, 0xb8, + 0x8f, 0x83, 0xfd, 0x1a, 0xf7, 0x11, 0xf0, 0x7f, + 0xa3, 0x5e, 0xe2, 0x3e, 0x0f, 0xf4, 0x6b, 0xdc, + 0x47, 0xc1, 0xfe, 0x8d, 0x7b, 0x88, 0xf8, 0x3f, + 0xd1, 0xaf, 0x71, 0x1f, 0x07, 0xfa, 0x35, 0xee, + 0x23, 0xe0, 0xff, 0x00, 0x46, 0xbd, 0xc4, 0x7c, + 0x1f, 0xe8, 0xd7, 0xb8, 0x8f, 0x83, 0xfd, 0x1a, + 0xf7, 0x11, 0xf0, 0x7f, 0xa3, 0x5e, 0xe2, 0x3e, + 0x0f, 0xf4, 0x6b, 0xdc, 0x47, 0xc1, 0xfe, 0x8d, + 0x7b, 0x88, 0xf8, 0x3f, 0xd1, 0xaf, 0x71, 0x1f, + 0x07, 0xfa, 0x35, 0xee, 0x23, 0xe0, 0xff, 0x00, + 0x46, 0xbd, 0xc4, 0x7c, 0x1f, 0xe8, 0xd7, 0xb8, + 0x8f, 0x83, 0xfd, 0x1a, 0xf7, 0x11, 0xf0, 0x7f, + 0xa3, 0x5e, 0xe2, 0x3e, 0x0f, 0xf4, 0x6b, 0xdc, + 0x47, 0xc1, 0xfe, 0x8d, 0x7b, 0x88, 0xf8, 0x3f, + 0xd1, 0xaf, 0x71, 0x1f, 0x07, 0xfa, 0x35, 0xee, + 0x23, 0xe0, 0xff, 0x00, 0x46, 0xbd, 0xc4, 0x7c, + 0x1f, 0xe8, 0xd7, 0xb8, 0x8f, 0x83, 0xfd, 0x1a, + 0xf7, 0x11, 0xf0, 0x7f, 0xa3, 0x5e, 0xe2, 0x3e, + 0x0f, 0xf4, 0x6b, 0xdc, 0x47, 0xc1, 0xfe, 0x8d, + 0x7b, 0x88, 0xf8, 0x3f, 0xd1, 0xaf, 0x71, 0x1f, + 0x07, 0xfa, 0x35, 0xee, 0x23, 0xe0, 0xff, 0x00, + 0x46, 0xbd, 0xc4, 0x7c, 0x1f, 0xe8, 0xd7, 0xb8, + 0x8f, 0x83, 0xfd, 0x1a, 0xf7, 0x11, 0xf0, 0x7f, + 0xa3, 0x5e, 0xe2, 0x3e, 0x0f, 0xf4, 0x6b, 0xdc, + 0x47, 0xc1, 0xfe, 0x8d, 0x7b, 0x88, 0xf8, 0x3f, + 0xd1, 0xaf, 0x71, 0x1f, 0x07, 0xfa, 0x35, 0xee, + 0x23, 0xe0, 0xff, 0x00, 0x46, 0xbd, 0xc4, 0x7c, + 0x1f, 0xe8, 0xd7, 0xb8, 0x8f, 0x83, 0xfd, 0x1a, + 0xf7, 0x11, 0xf0, 0x7f, 0xa3, 0x5e, 0xe2, 0x3e, + 0x0f, 0xf4, 0x6b, 0xdc, 0x47, 0xc1, 0xfe, 0x8d, + 0x7b, 0x88, 0xf8, 0x3f, 0xd1, 0xaf, 0x71, 0x1f, + 0x07, 0xfa, 0x35, 0xee, 0x23, 0xe0, 0xff, 0x00, + 0x46, 0xbd, 0xc4, 0x7c, 0x1f, 0xe8, 0xd7, 0xb8, + 0x8f, 0x83, 0xfd, 0x1a, 0xf7, 0x11, 0xf0, 0x7f, + 0xa3, 0x5e, 0xe2, 0x3e, 0x0f, 0xf4, 0x6b, 0xdc, + 0x47, 0xc1, 0xfe, 0x8d, 0x7b, 0x88, 0xf8, 0x3f, + 0xd1, 0xaf, 0x71, 0x1f, 0x07, 0xfa, 0x35, 0xee, + 0x23, 0xe0, 0xff, 0x00, 0x46, 0xbd, 0xc4, 0x7c, + 0x1f, 0xe8, 0xd7, 0xb8, 0x8f, 0x83, 0xfd, 0x1a, + 0xf7, 0x11, 0xf0, 0x7f, 0xa3, 0x5e, 0xe2, 0x3e, + 0x0f, 0xf4, 0x6b, 0xdc, 0x47, 0xc1, 0xfe, 0x8d, + 0x7b, 0x88, 0xf8, 0x3f, 0xd1, 0xaf, 0x71, 0x1f, + 0x07, 0xfa, 0x35, 0xee, 0x23, 0xe0, 0xff, 0x00, + 0x46, 0xbd, 0xc4, 0x7c, 0x1f, 0xe8, 0xd7, 0xb8, + 0x8f, 0x83, 0xfd, 0x1a, 0xf7, 0x11, 0xf0, 0x7f, + 0xa3, 0x5e, 0xe2, 0x3e, 0x0f, 0xf4, 0x6b, 0xdc, + 0x47, 0xe4, 0xfe, 0x8d, 0x7b, 0x88, 0xfc, 0x9f, + 0xd1, 0xa0, 0x6f, 0x49, 0x7c, 0xc3, 0x3b, 0x89, + 0x72, 0x0f, 0x30, 0xcf, 0xdf, 0x89, 0xdb, 0x78, + 0x9f, 0x7b, 0x51, 0x1f, 0x7b, 0xff, 0x00, 0xe0, + 0xef, 0xff, 0xc4, 0x00, 0x2b, 0x10, 0x01, 0x00, + 0x02, 0x01, 0x02, 0x05, 0x03, 0x04, 0x03, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x11, 0x21, 0x31, 0x51, 0x10, 0x41, 0x61, 0x91, + 0xf0, 0x20, 0x71, 0xf1, 0x81, 0xa1, 0xc1, 0xe1, + 0x30, 0x40, 0xb1, 0xd1, 0x50, 0x60, 0xff, 0xda, + 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x3f, 0x21, + 0x33, 0x6c, 0x79, 0x4e, 0x34, 0x50, 0x0a, 0xa5, + 0xea, 0x95, 0x56, 0x29, 0x4f, 0xff, 0x00, 0x15, + 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, + 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, + 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, + 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, + 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, + 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, + 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, + 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7b, + 0x2e, 0xec, 0xac, 0xea, 0x92, 0xf2, 0x30, 0x31, + 0xad, 0xc0, 0x16, 0x4c, 0x4f, 0x24, 0x11, 0xc8, + 0x56, 0xcb, 0xab, 0xdf, 0x76, 0x5f, 0x7f, 0x76, + 0x5f, 0x7f, 0x76, 0x5f, 0x7f, 0x76, 0x5f, 0x7f, + 0x76, 0x5f, 0x7f, 0x76, 0x5f, 0x7f, 0x76, 0x5f, + 0x7f, 0x76, 0x5f, 0x7f, 0x76, 0x5f, 0x7f, 0x76, + 0x5b, 0x7f, 0x76, 0x51, 0xaf, 0x71, 0x97, 0xdf, + 0xdd, 0x97, 0xdf, 0xdd, 0x97, 0xdf, 0xdd, 0x97, + 0xdf, 0xdd, 0x97, 0xdf, 0xdd, 0x97, 0xdf, 0xdd, + 0x97, 0xdf, 0xdd, 0x97, 0xdf, 0xdd, 0x97, 0xdf, + 0xdd, 0x97, 0xdf, 0xdd, 0x97, 0xdf, 0xdd, 0x97, + 0xdf, 0xdd, 0x96, 0xfd, 0xcc, 0xb7, 0xee, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, + 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, + 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, + 0xf7, 0x65, 0xf7, 0xf7, 0x65, 0xf7, 0xf7, 0x61, + 0xad, 0x5a, 0x0c, 0xbc, 0xff, 0x00, 0x22, 0x23, + 0x5c, 0xc7, 0xf9, 0x3c, 0xf7, 0x5e, 0x29, 0x1b, + 0x6a, 0xab, 0x38, 0xbd, 0x07, 0x1a, 0xae, 0x5d, + 0x4c, 0xac, 0xc5, 0x5f, 0xb9, 0xc3, 0x2a, 0xbc, + 0x92, 0x80, 0xa6, 0xcc, 0x21, 0xcc, 0xec, 0x08, + 0x3c, 0x84, 0x16, 0x57, 0xaa, 0x2d, 0xa4, 0x16, + 0x3c, 0x49, 0x10, 0x61, 0xe3, 0x8b, 0x26, 0x8e, + 0xa0, 0x12, 0x35, 0x29, 0x56, 0x18, 0xb8, 0x81, + 0x6d, 0xe5, 0xa3, 0x0b, 0x2d, 0x3c, 0xfb, 0xbc, + 0xb4, 0x92, 0xd0, 0xb1, 0x21, 0x72, 0x58, 0x0d, + 0xae, 0xb5, 0x31, 0xf0, 0xe9, 0x69, 0x65, 0x44, + 0xef, 0xac, 0x39, 0x94, 0x8a, 0x2b, 0x4a, 0x92, + 0x0a, 0x83, 0x25, 0xb4, 0x08, 0x16, 0x56, 0x19, + 0xea, 0x19, 0x67, 0x8d, 0xde, 0x85, 0x3c, 0xa0, + 0xcc, 0x3a, 0x76, 0x8c, 0x98, 0xe4, 0xdd, 0x06, + 0x50, 0xb6, 0xcc, 0xe0, 0x65, 0x51, 0x05, 0xcd, + 0x77, 0x8a, 0x90, 0x7a, 0xa8, 0xc4, 0x2d, 0x99, + 0x46, 0x76, 0x8a, 0x6a, 0x39, 0xae, 0xa9, 0x54, + 0x54, 0x80, 0xbb, 0x1c, 0xcf, 0xe4, 0xa4, 0xf1, + 0xfc, 0x06, 0x15, 0xce, 0x69, 0xe0, 0x79, 0xf0, + 0xe5, 0x2c, 0x69, 0x9e, 0x68, 0x00, 0xa7, 0x8a, + 0x8e, 0x59, 0x13, 0xc1, 0xd1, 0x94, 0x5b, 0x64, + 0x66, 0xb4, 0x13, 0x80, 0x35, 0x5b, 0x0e, 0xf6, + 0x1b, 0xa7, 0xbc, 0xd7, 0x67, 0x2c, 0x41, 0xf7, + 0x3c, 0xfa, 0xf7, 0x0b, 0x46, 0x29, 0xcd, 0xbc, + 0x1d, 0x1a, 0x10, 0x8c, 0x18, 0x82, 0x84, 0x25, + 0x18, 0x2a, 0xba, 0xb5, 0x13, 0xc4, 0x71, 0x34, + 0x02, 0x49, 0x15, 0xd2, 0xef, 0x96, 0xb2, 0x37, + 0x85, 0x85, 0x8c, 0x5d, 0x1e, 0x71, 0xfd, 0xa0, + 0x4a, 0x30, 0x0b, 0x62, 0x8a, 0x45, 0xb4, 0x15, + 0xac, 0x47, 0x3d, 0x9f, 0x4c, 0x01, 0xe3, 0xe1, + 0xb0, 0x45, 0x91, 0xc9, 0xd7, 0x4b, 0x9b, 0x76, + 0x41, 0x3d, 0xe8, 0x87, 0x80, 0x2d, 0xad, 0x08, + 0xe1, 0x58, 0x84, 0x11, 0xc3, 0xaa, 0x81, 0x50, + 0xbd, 0xb0, 0x41, 0x65, 0xf3, 0x16, 0x2a, 0xca, + 0x10, 0xb0, 0x4b, 0xf1, 0x76, 0xd0, 0x14, 0x41, + 0x58, 0xb2, 0x5b, 0x9f, 0x84, 0x06, 0x35, 0x4d, + 0xd1, 0x3f, 0xc6, 0xca, 0xa8, 0xb3, 0x71, 0xcc, + 0x39, 0x50, 0xf5, 0xc4, 0xf9, 0x7c, 0x7c, 0xbe, + 0x3e, 0x5f, 0x1f, 0x2f, 0x8f, 0x97, 0xc7, 0xcb, + 0xe3, 0xe5, 0xf1, 0xf2, 0xf8, 0xf9, 0x7c, 0x7c, + 0xbe, 0x3e, 0x5f, 0x1f, 0x2f, 0x8f, 0x97, 0xc7, + 0xcb, 0xe3, 0xe5, 0xf0, 0x91, 0x3a, 0x9a, 0xed, + 0xd0, 0x5c, 0xa5, 0x3f, 0x6e, 0x29, 0xfb, 0x71, + 0x4f, 0xdb, 0x8a, 0x7e, 0xdc, 0x53, 0xf6, 0xe1, + 0x26, 0x0a, 0xc1, 0x43, 0xdc, 0x80, 0xac, 0x4d, + 0xcc, 0xf1, 0x10, 0x37, 0x91, 0x04, 0xe8, 0xca, + 0x7e, 0xdc, 0x53, 0xf6, 0xe2, 0x9f, 0xb7, 0x14, + 0xfd, 0xb8, 0xa7, 0xed, 0xc6, 0x47, 0x6e, 0xa3, + 0x4c, 0x65, 0xc8, 0x8f, 0x02, 0x9e, 0x2b, 0x69, + 0xe7, 0xba, 0xc7, 0x52, 0x4a, 0x75, 0xed, 0x29, + 0xd7, 0xb4, 0x59, 0x24, 0x97, 0x36, 0x21, 0x3e, + 0xdb, 0xc0, 0x1b, 0xca, 0xf2, 0x68, 0x4e, 0x08, + 0xdd, 0x01, 0xca, 0x2e, 0x18, 0x75, 0x6e, 0xbe, + 0x8a, 0x5f, 0x23, 0x7b, 0x90, 0x36, 0xea, 0x79, + 0x3d, 0x54, 0xb3, 0x9b, 0x6a, 0xf1, 0x8f, 0x64, + 0xc8, 0x42, 0x90, 0x72, 0x7e, 0x2a, 0xef, 0xb1, + 0xda, 0x4f, 0xdc, 0x97, 0x87, 0x86, 0x74, 0xe2, + 0x86, 0xe9, 0x54, 0xb5, 0xda, 0x13, 0x3a, 0x6e, + 0x00, 0x0b, 0x52, 0xe0, 0x03, 0x2a, 0xe8, 0x45, + 0x93, 0xec, 0x28, 0xd6, 0xa8, 0x52, 0x4e, 0x21, + 0x54, 0x17, 0x8f, 0xf0, 0x7c, 0xea, 0x0c, 0x00, + 0x00, 0x00, 0x08, 0x1c, 0xff, 0x00, 0x63, 0xab, + 0x07, 0x12, 0x41, 0xae, 0x05, 0x11, 0x36, 0x1a, + 0xbc, 0xa7, 0x52, 0x91, 0x8d, 0x1b, 0x0b, 0x27, + 0xb8, 0x77, 0x7b, 0x80, 0x6e, 0xe2, 0x7f, 0x57, + 0x58, 0x63, 0x8d, 0xa7, 0xf0, 0x7e, 0xb6, 0x09, + 0x58, 0x48, 0x9c, 0x25, 0x2a, 0x10, 0xcd, 0x36, + 0x63, 0x97, 0x80, 0xf6, 0x84, 0xf7, 0x6c, 0x7e, + 0xfe, 0xef, 0x19, 0xa8, 0x32, 0x1f, 0xa7, 0xfa, + 0x81, 0x7c, 0x5e, 0xe1, 0xc2, 0xc4, 0xcc, 0xa8, + 0x4e, 0x8d, 0xc9, 0xe3, 0xa1, 0x67, 0xc0, 0x75, + 0x2c, 0xe0, 0x59, 0xb3, 0xba, 0x0d, 0x40, 0xb0, + 0xb2, 0x07, 0x41, 0x4a, 0x16, 0x06, 0x80, 0x0b, + 0x56, 0x56, 0x62, 0x24, 0xf2, 0x5b, 0x40, 0x6c, + 0x6a, 0x82, 0x91, 0xd4, 0x77, 0x1f, 0x0c, 0x0d, + 0xe2, 0x26, 0xd0, 0x86, 0xa1, 0x8a, 0x56, 0x57, + 0xa1, 0xaa, 0x89, 0x9c, 0x9e, 0xa0, 0x94, 0x1d, + 0x6b, 0x11, 0x1c, 0xd4, 0x44, 0x12, 0xaa, 0xa1, + 0x98, 0x85, 0x32, 0x34, 0x76, 0xd1, 0x2d, 0x01, + 0x8d, 0x44, 0x62, 0xe4, 0xd2, 0xdb, 0x21, 0xf2, + 0x16, 0x92, 0xa8, 0x6d, 0x3a, 0xf6, 0x94, 0xeb, + 0xda, 0x53, 0xaf, 0x69, 0x4e, 0xbd, 0xa5, 0x3a, + 0xf6, 0x94, 0xeb, 0xda, 0x53, 0xaf, 0x69, 0x4e, + 0xbd, 0xa5, 0x3a, 0xf6, 0x94, 0xeb, 0xda, 0x53, + 0xaf, 0x6e, 0x02, 0xd8, 0x0a, 0x52, 0x41, 0x14, + 0x19, 0xb4, 0x12, 0x9e, 0xdc, 0xb3, 0x23, 0x68, + 0xde, 0x32, 0xdb, 0xe4, 0x39, 0xa4, 0x11, 0xb5, + 0xd5, 0x0f, 0x4f, 0x9c, 0x71, 0x20, 0xd0, 0x83, + 0x62, 0xb2, 0x68, 0x8a, 0x25, 0x8e, 0x69, 0xfe, + 0x9b, 0xa3, 0xb4, 0x96, 0xe1, 0x51, 0x88, 0x53, + 0xb0, 0x70, 0x86, 0x62, 0xfa, 0x62, 0xd0, 0x85, + 0x81, 0x55, 0x0e, 0x37, 0x67, 0xf7, 0x6e, 0x4f, + 0x82, 0xb4, 0xaf, 0xfd, 0xa2, 0x69, 0x01, 0x74, + 0x35, 0x7c, 0x04, 0xb9, 0x15, 0x14, 0xa8, 0x26, + 0xd4, 0xe4, 0x93, 0xc3, 0x90, 0x7b, 0x8a, 0x35, + 0xeb, 0x15, 0x84, 0x10, 0x32, 0x4a, 0x79, 0xc6, + 0x12, 0x5e, 0xa4, 0xcd, 0x2c, 0x12, 0x4e, 0x3b, + 0xd2, 0x5a, 0x06, 0x1c, 0x05, 0xc8, 0x78, 0xc5, + 0x0d, 0x90, 0x10, 0x42, 0x1b, 0x6c, 0x2e, 0xaa, + 0x51, 0x19, 0x41, 0x62, 0x26, 0xe1, 0xcd, 0x92, + 0xbf, 0xc5, 0x23, 0x4c, 0x88, 0x2e, 0x51, 0xb5, + 0x4f, 0x46, 0xe7, 0xcc, 0xdc, 0x8f, 0xc4, 0x53, + 0x3a, 0xb9, 0x09, 0xa2, 0x65, 0xc8, 0x4c, 0xa7, + 0x54, 0x26, 0x54, 0x24, 0x3f, 0x5a, 0xb4, 0x85, + 0xce, 0x12, 0x3f, 0x84, 0x83, 0x4b, 0x26, 0x82, + 0x3a, 0xfe, 0x5a, 0x31, 0xbe, 0x37, 0xbd, 0xdf, + 0x31, 0x49, 0x88, 0xd3, 0xb1, 0x52, 0x3c, 0xff, + 0x00, 0x2f, 0xa8, 0x7e, 0x13, 0x09, 0x0b, 0xb8, + 0xb7, 0x8a, 0xda, 0x79, 0xee, 0xbe, 0x88, 0x8d, + 0xcf, 0x85, 0x42, 0xf4, 0x5a, 0xc3, 0x13, 0x40, + 0x9d, 0xbd, 0xc0, 0xa5, 0xe2, 0xa3, 0xf5, 0x81, + 0xc0, 0xcf, 0xad, 0xe0, 0x8c, 0xe6, 0x9a, 0x8c, + 0x6b, 0x6b, 0x41, 0x7a, 0xa2, 0x49, 0xca, 0xef, + 0x54, 0x04, 0xfd, 0xcd, 0x81, 0x65, 0x00, 0xd7, + 0xca, 0x90, 0x3b, 0x9b, 0x7b, 0x00, 0x5b, 0xf6, + 0x48, 0x30, 0x0b, 0x86, 0xe1, 0x86, 0x89, 0x5a, + 0x99, 0x55, 0x93, 0x18, 0x75, 0x9d, 0xe2, 0x4b, + 0x5f, 0xca, 0x35, 0xe6, 0x24, 0xe6, 0xa6, 0x8e, + 0x0c, 0x69, 0xf2, 0xd7, 0xe6, 0xd6, 0x76, 0xfc, + 0x50, 0x16, 0x63, 0x1a, 0x61, 0x03, 0xd3, 0x3c, + 0x5e, 0xf2, 0x2e, 0x90, 0x66, 0xed, 0xbb, 0x87, + 0x75, 0xd6, 0x7f, 0x6c, 0x72, 0xce, 0x11, 0x00, + 0x54, 0xe2, 0x96, 0xb7, 0x78, 0x93, 0x02, 0x75, + 0xd5, 0x99, 0x82, 0x8f, 0xbd, 0xef, 0x15, 0x89, + 0x68, 0xe1, 0x05, 0x27, 0x6c, 0xbc, 0x69, 0x97, + 0x88, 0xa1, 0x03, 0x5f, 0xe8, 0x71, 0x92, 0x68, + 0xc5, 0x4d, 0x0b, 0x91, 0xa4, 0xb8, 0x2f, 0x48, + 0x6b, 0x8a, 0x05, 0x22, 0x6e, 0x2c, 0x8b, 0xb4, + 0x92, 0xa9, 0xd0, 0x22, 0x08, 0xc9, 0xa4, 0x15, + 0xa0, 0x89, 0xf1, 0xfb, 0x0c, 0x21, 0x2b, 0x17, + 0xee, 0x0f, 0x04, 0x13, 0xcd, 0xcd, 0x73, 0x3a, + 0xe4, 0xbe, 0x09, 0x95, 0x32, 0xc9, 0x7c, 0x4b, + 0x7d, 0x5f, 0xfe, 0xbb, 0xc3, 0xf1, 0xee, 0x89, + 0x2a, 0x0b, 0x09, 0x5f, 0x8b, 0x23, 0xac, 0x82, + 0xd1, 0xf1, 0x85, 0x0c, 0xcd, 0xf1, 0x2c, 0x2d, + 0x6d, 0x38, 0x04, 0x24, 0xa1, 0x4b, 0xb0, 0x05, + 0x61, 0x8e, 0x98, 0x94, 0x72, 0xc1, 0xa0, 0xe7, + 0x18, 0x93, 0xb8, 0xce, 0x9e, 0x7a, 0x11, 0x85, + 0xd8, 0x8d, 0x32, 0x02, 0x04, 0x1d, 0x10, 0x43, + 0x0a, 0xcb, 0x77, 0xa5, 0x06, 0x88, 0x13, 0x55, + 0x0b, 0x13, 0x2b, 0x36, 0x3f, 0x93, 0xcb, 0x69, + 0xf1, 0xc8, 0x96, 0xe2, 0x83, 0x85, 0x2e, 0x9c, + 0x39, 0x96, 0x19, 0x07, 0xa8, 0x05, 0xdf, 0x54, + 0xd3, 0x9b, 0xd0, 0x3b, 0x47, 0xda, 0x95, 0xf2, + 0x96, 0xc8, 0x83, 0x50, 0x0e, 0x2f, 0xc4, 0x22, + 0x1a, 0x82, 0x71, 0xc5, 0x37, 0x56, 0xa0, 0x96, + 0xd3, 0x1f, 0x0c, 0x9c, 0x65, 0xd8, 0x35, 0xc4, + 0xd3, 0x33, 0x63, 0x6d, 0xde, 0x23, 0x61, 0x48, + 0xd1, 0x8f, 0x8b, 0x45, 0xf2, 0x20, 0xec, 0xc8, + 0x16, 0x1f, 0x6a, 0x8b, 0x68, 0x6e, 0xa4, 0x67, + 0x96, 0xd4, 0x6e, 0x73, 0x3b, 0x52, 0x81, 0x42, + 0x84, 0x2c, 0x55, 0xb5, 0xaf, 0x51, 0xbe, 0x82, + 0x6b, 0x59, 0x21, 0xb0, 0x10, 0xc6, 0x49, 0x4a, + 0xf1, 0x1b, 0x31, 0xd2, 0xed, 0x02, 0x48, 0x23, + 0xa2, 0x8c, 0xe7, 0x84, 0x47, 0xa5, 0x4e, 0xa5, + 0x4a, 0x95, 0x21, 0x89, 0x90, 0xe4, 0x48, 0xa0, + 0x1c, 0x2d, 0x81, 0xc3, 0x98, 0x55, 0x2a, 0x88, + 0xb6, 0x03, 0x98, 0x21, 0x57, 0x16, 0xfe, 0x3f, + 0xfa, 0x4a, 0x07, 0x35, 0xb1, 0xab, 0x39, 0x70, + 0xf1, 0x95, 0xc7, 0xcf, 0x47, 0x89, 0x61, 0x1c, + 0x91, 0x90, 0x2f, 0xba, 0xd1, 0x63, 0x02, 0xc6, + 0x2c, 0xbe, 0x18, 0xca, 0x2b, 0x41, 0xa8, 0x62, + 0xe0, 0x2c, 0x1a, 0x57, 0x50, 0x40, 0x05, 0x56, + 0x88, 0x55, 0x37, 0xf7, 0xd0, 0xca, 0x16, 0x20, + 0x22, 0x53, 0x1e, 0xe0, 0x1d, 0x94, 0x0a, 0x81, + 0x6d, 0xe6, 0x31, 0x56, 0xe6, 0x9e, 0x97, 0x52, + 0x64, 0x3c, 0x3a, 0x73, 0xea, 0xe6, 0x43, 0xa1, + 0x81, 0xb9, 0x79, 0x38, 0x36, 0xfc, 0xc8, 0x30, + 0xb0, 0x2e, 0xda, 0xc9, 0xeb, 0x9b, 0xb5, 0x7b, + 0xe1, 0x6e, 0x87, 0x23, 0x00, 0x82, 0x39, 0x7d, + 0x48, 0x80, 0xd6, 0x20, 0xaa, 0x16, 0xad, 0xc6, + 0xb3, 0x4c, 0xb7, 0x8a, 0xda, 0x79, 0xee, 0xbe, + 0x88, 0x86, 0x89, 0xec, 0x21, 0xb0, 0xab, 0xd3, + 0xb0, 0xc6, 0x1f, 0x95, 0x2b, 0x52, 0x58, 0x38, + 0xe7, 0x6a, 0x6c, 0xe4, 0x6a, 0xcc, 0xcf, 0x9e, + 0xc7, 0xcf, 0x63, 0xe7, 0xb1, 0xf3, 0xd8, 0xf9, + 0xec, 0x7c, 0xf6, 0x3e, 0x7b, 0x1f, 0x3d, 0x8f, + 0x9e, 0xc7, 0xcf, 0x63, 0xe7, 0xb1, 0xf3, 0xd8, + 0xf9, 0xec, 0x7c, 0xf6, 0x3e, 0x7b, 0x1f, 0x3d, + 0x8f, 0x9e, 0xc1, 0x7e, 0x87, 0x56, 0xa3, 0xae, + 0x1b, 0xd8, 0x58, 0x21, 0x5c, 0xb5, 0x99, 0x73, + 0x97, 0xd6, 0xd6, 0x22, 0x04, 0x35, 0x5a, 0x9e, + 0x6f, 0xc1, 0xf5, 0x0b, 0x37, 0x09, 0x78, 0x26, + 0x54, 0x00, 0x8e, 0x10, 0x6a, 0xb8, 0x23, 0x4d, + 0x31, 0xf3, 0x18, 0x59, 0x22, 0x5f, 0x4a, 0x37, + 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, + 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, + 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x37, + 0x4a, 0x37, 0x4a, 0x37, 0x4a, 0x35, 0xea, 0x1d, + 0x52, 0xab, 0x05, 0xa1, 0xc1, 0x83, 0x38, 0x31, + 0xfd, 0xbb, 0x36, 0x6c, 0xd9, 0xb3, 0x66, 0xcd, + 0x9b, 0x36, 0x6c, 0xd9, 0xb3, 0x66, 0xcf, 0x9b, + 0x36, 0x6c, 0xd9, 0xb3, 0xe7, 0xcd, 0x9b, 0x36, + 0x44, 0x4c, 0x1d, 0x5a, 0x4e, 0xad, 0x27, 0x1d, + 0x05, 0xe9, 0x0d, 0xda, 0x7a, 0x83, 0xb5, 0x89, + 0x82, 0xa5, 0xc1, 0x5a, 0x66, 0x7e, 0x7d, 0xa0, + 0x58, 0x0f, 0xbc, 0xd3, 0x2d, 0xe2, 0xb6, 0x9e, + 0x7b, 0xac, 0x50, 0x6b, 0x74, 0x8a, 0xe4, 0x76, + 0x50, 0x35, 0xa4, 0x2a, 0x20, 0x19, 0x64, 0xae, + 0xe9, 0x88, 0xb7, 0x76, 0xf2, 0x1d, 0x19, 0xd4, + 0x42, 0x91, 0x6b, 0x41, 0x5a, 0x35, 0xd2, 0x2f, + 0x4c, 0xec, 0x15, 0xd8, 0x83, 0xd9, 0x7a, 0x58, + 0x97, 0xb6, 0x48, 0xd0, 0xc0, 0x2c, 0xb1, 0x2c, + 0xdc, 0xbd, 0x4e, 0xb3, 0x42, 0xb4, 0xdf, 0xa3, + 0x07, 0xe5, 0x50, 0x01, 0x54, 0x0b, 0x13, 0x6a, + 0x33, 0xe6, 0x6e, 0x3a, 0x20, 0x7f, 0x3d, 0x5e, + 0xeb, 0xb4, 0xe9, 0xb9, 0x40, 0xbd, 0x3c, 0x16, + 0xd8, 0xed, 0xd2, 0x61, 0x6e, 0x0c, 0x55, 0x00, + 0x02, 0xc1, 0x8a, 0x97, 0x96, 0x67, 0x95, 0x28, + 0x07, 0x00, 0x41, 0xb1, 0xd1, 0x96, 0xff, 0x00, + 0xab, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, + 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, + 0xbf, 0x7d, 0xf8, 0x5b, 0xdd, 0x6b, 0x2a, 0x79, + 0x60, 0xc1, 0x28, 0xd7, 0x06, 0xb2, 0xfc, 0x77, + 0x49, 0xb6, 0x23, 0x00, 0x03, 0x01, 0x7f, 0xd5, + 0x77, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, + 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, + 0xdf, 0xba, 0x00, 0xb3, 0x1d, 0x57, 0x89, 0xce, + 0x40, 0x9b, 0xe2, 0x2a, 0xcc, 0x0d, 0x63, 0x3b, + 0x46, 0xa8, 0xd9, 0xe2, 0x57, 0x40, 0xda, 0x19, + 0x1f, 0xe6, 0xb3, 0xb0, 0x15, 0x08, 0xec, 0x86, + 0xf1, 0x5b, 0x4f, 0x3d, 0xd7, 0xd2, 0x5a, 0xd5, + 0x2f, 0x96, 0xc3, 0xc3, 0x28, 0xd6, 0x34, 0x7a, + 0x54, 0xc6, 0x43, 0xfd, 0x0a, 0x54, 0x8e, 0x0a, + 0x86, 0x46, 0x8e, 0xfb, 0xd7, 0x69, 0x14, 0xa6, + 0x5e, 0x1f, 0xae, 0x58, 0x71, 0x2b, 0xc0, 0x5e, + 0x84, 0xad, 0x40, 0x40, 0xbf, 0x52, 0xcc, 0x06, + 0x76, 0xd2, 0x88, 0x9b, 0x45, 0x5a, 0x58, 0x57, + 0x2e, 0xce, 0x33, 0xaa, 0x17, 0xfe, 0x76, 0x3a, + 0x1e, 0xe4, 0xb6, 0x1e, 0x58, 0x93, 0x5a, 0xc5, + 0x81, 0x46, 0x81, 0xb9, 0xee, 0x3b, 0xfe, 0xe7, + 0xb8, 0xef, 0xfb, 0x9e, 0xe3, 0xbf, 0xee, 0x7b, + 0x8e, 0xff, 0x00, 0xb9, 0xee, 0x3b, 0xfe, 0xe7, + 0xb8, 0xef, 0xfb, 0x9e, 0xe3, 0xbf, 0xee, 0x38, + 0x15, 0xe6, 0x58, 0xce, 0x1b, 0x43, 0x29, 0xa5, + 0x46, 0xc9, 0xf6, 0x92, 0x9f, 0x4a, 0xf8, 0x29, + 0xa9, 0x90, 0xea, 0x6c, 0x16, 0x37, 0x5d, 0x00, + 0x8a, 0xdd, 0x42, 0x99, 0x74, 0xbc, 0x2a, 0x1b, + 0x22, 0xbf, 0x49, 0x66, 0x22, 0xe8, 0xdf, 0x0b, + 0x84, 0x55, 0xc0, 0xad, 0xcc, 0x0c, 0xa5, 0x8d, + 0xe2, 0x19, 0x9e, 0x30, 0x61, 0x55, 0x9a, 0xaf, + 0xe3, 0x49, 0xdd, 0x4f, 0xda, 0x4a, 0x59, 0x4b, + 0x8b, 0x55, 0xea, 0x00, 0x1c, 0x50, 0x54, 0x87, + 0x5b, 0x08, 0x8f, 0x71, 0xdf, 0xf7, 0x3d, 0xc7, + 0x7f, 0xdc, 0xf7, 0x1d, 0xff, 0x00, 0x73, 0xdc, + 0x77, 0xfd, 0xcf, 0x71, 0xdf, 0xf7, 0x3d, 0xc7, + 0x7f, 0xdc, 0x06, 0x6a, 0x59, 0x65, 0x36, 0xe4, + 0x4a, 0x1a, 0x4d, 0x41, 0x32, 0x0c, 0x00, 0x00, + 0x31, 0xd1, 0x10, 0x47, 0xa2, 0x4e, 0x7d, 0xf8, + 0x82, 0x87, 0x6e, 0x7a, 0x4f, 0x71, 0xdf, 0xf7, + 0x3d, 0xc7, 0x7f, 0xdc, 0x37, 0x74, 0x70, 0x49, + 0xc2, 0xd8, 0x45, 0x01, 0xce, 0xd7, 0x2d, 0x86, + 0x8c, 0x65, 0x28, 0x5f, 0x71, 0x47, 0xe9, 0x84, + 0xf4, 0xd8, 0x86, 0xdd, 0xa3, 0xaa, 0xe6, 0xaf, + 0x9d, 0x72, 0xbd, 0x0d, 0x72, 0xb1, 0xa1, 0xa8, + 0x12, 0x14, 0xe2, 0x83, 0x18, 0x31, 0x2e, 0x6d, + 0x0c, 0x86, 0xe5, 0x73, 0xa5, 0x0a, 0x20, 0x04, + 0xf2, 0x49, 0xeb, 0xbe, 0x5d, 0xb2, 0x5b, 0x57, + 0xcc, 0xc1, 0x84, 0x5a, 0x6e, 0x40, 0xa4, 0xd7, + 0x82, 0x24, 0x20, 0xdc, 0x54, 0xe7, 0xa9, 0xbf, + 0x3b, 0xcd, 0x69, 0xa4, 0x04, 0xd5, 0x23, 0xb3, + 0xc3, 0x49, 0x67, 0x24, 0xa2, 0xbe, 0x87, 0xec, + 0xb6, 0x50, 0xb0, 0x81, 0xe6, 0xf8, 0x26, 0x89, + 0xef, 0xa3, 0x3e, 0x27, 0x25, 0x42, 0x87, 0x18, + 0x76, 0x2f, 0xa2, 0x36, 0x03, 0x88, 0x85, 0x04, + 0x88, 0x72, 0xe4, 0x03, 0xa3, 0xc3, 0x01, 0x6e, + 0x45, 0xab, 0x17, 0x60, 0xcb, 0xa0, 0x01, 0x09, + 0xcc, 0xb8, 0xa9, 0x98, 0x4f, 0x28, 0x42, 0x36, + 0x16, 0xa9, 0xba, 0x53, 0x34, 0x3d, 0x40, 0x92, + 0xbc, 0xca, 0xb5, 0x67, 0x35, 0xcf, 0x71, 0xdf, + 0xf7, 0x3d, 0xc7, 0x7f, 0xdc, 0x45, 0xe4, 0xe3, + 0x62, 0xe8, 0x66, 0x82, 0xe3, 0x40, 0x1b, 0xa3, + 0x84, 0x2d, 0x31, 0xfe, 0x2b, 0x69, 0xe7, 0xba, + 0xfa, 0x4b, 0x5a, 0xc7, 0x9d, 0x29, 0xce, 0xd5, + 0xd6, 0x53, 0x92, 0xc8, 0x25, 0xcf, 0x64, 0xd2, + 0x6a, 0x93, 0x23, 0x5b, 0xc0, 0xa8, 0xc4, 0xad, + 0xda, 0xd8, 0x50, 0x91, 0xe5, 0x80, 0xf6, 0x08, + 0x4c, 0x13, 0xfe, 0x24, 0xf4, 0x0a, 0x10, 0xe5, + 0x6d, 0x34, 0x21, 0xe1, 0x5e, 0xc5, 0x68, 0xa7, + 0xf4, 0x4c, 0x7e, 0xe0, 0xff, 0x00, 0x66, 0x77, + 0xaf, 0xbb, 0xc0, 0xf6, 0xa7, 0xb5, 0x3d, 0xa9, + 0xed, 0x4f, 0x6a, 0x7b, 0x53, 0xda, 0x8f, 0x54, + 0xa9, 0x6c, 0x00, 0x56, 0xc0, 0x6c, 0x98, 0x2a, + 0xb5, 0x96, 0xdb, 0xe9, 0xc7, 0x6c, 0x8c, 0x92, + 0x58, 0x73, 0xdd, 0x12, 0x51, 0x46, 0xc6, 0xf2, + 0x70, 0x65, 0xf5, 0x13, 0x07, 0x04, 0x8f, 0x68, + 0xce, 0xa1, 0x2d, 0x6d, 0x82, 0xa9, 0x02, 0x59, + 0xa9, 0x5d, 0x7b, 0x15, 0x38, 0x52, 0x7f, 0xda, + 0xd7, 0x32, 0x96, 0xb6, 0x5a, 0x98, 0x82, 0xa7, + 0xbe, 0xfd, 0xc8, 0x4e, 0x96, 0x25, 0x61, 0x0c, + 0x25, 0x4a, 0x38, 0x6e, 0xa0, 0xe4, 0x45, 0x7a, + 0xac, 0x13, 0xda, 0x9e, 0xd4, 0xf6, 0xa7, 0xb5, + 0x3d, 0xa9, 0xed, 0x4c, 0x44, 0x74, 0xde, 0xdf, + 0x81, 0xc0, 0x06, 0x3a, 0x7f, 0x84, 0xe7, 0xb5, + 0x3d, 0xa8, 0x3c, 0xd7, 0x33, 0x50, 0x5d, 0xf5, + 0xc6, 0x01, 0x77, 0x8d, 0x23, 0x87, 0x1f, 0x00, + 0x48, 0xad, 0x8a, 0x1e, 0xec, 0xc6, 0xb4, 0x32, + 0x13, 0x2f, 0xb4, 0x52, 0x48, 0xd4, 0x2c, 0x80, + 0xdd, 0x09, 0xe4, 0x83, 0x2b, 0xd8, 0xc9, 0x64, + 0x1c, 0x43, 0x7c, 0x12, 0xac, 0x64, 0xa0, 0x03, + 0x37, 0xb4, 0x98, 0x8c, 0x28, 0xcd, 0x9a, 0xce, + 0x30, 0x12, 0xdd, 0x18, 0xbd, 0x3e, 0x24, 0x81, + 0x16, 0xb7, 0x19, 0x60, 0x12, 0x5a, 0x1b, 0x7a, + 0x4b, 0xf7, 0x37, 0x13, 0x03, 0x20, 0xee, 0xdf, + 0x56, 0x6e, 0x52, 0x50, 0x11, 0xd0, 0xa6, 0x38, + 0xad, 0x83, 0x16, 0xaf, 0x08, 0xd4, 0x91, 0x0a, + 0x9c, 0xcd, 0x3d, 0x14, 0x2d, 0x2c, 0x27, 0xe7, + 0x62, 0x16, 0xa9, 0x55, 0x85, 0xd4, 0x85, 0x55, + 0x10, 0x19, 0x62, 0x86, 0x34, 0xa4, 0xec, 0xcb, + 0x44, 0x59, 0xb7, 0x01, 0xc9, 0xd8, 0x20, 0x9d, + 0x4f, 0x4d, 0x34, 0x55, 0x8b, 0x6c, 0x7e, 0x5d, + 0x01, 0x5d, 0x44, 0x60, 0x16, 0x75, 0xf9, 0x91, + 0xcb, 0x31, 0x59, 0x44, 0x63, 0xe6, 0x14, 0xbd, + 0xa9, 0xed, 0x4d, 0x5b, 0x7c, 0x1c, 0xc2, 0xd3, + 0x1f, 0xe2, 0xb6, 0x9e, 0x7b, 0xac, 0xc2, 0x75, + 0x6c, 0x7c, 0x3a, 0x1a, 0x85, 0x74, 0xd7, 0x59, + 0x68, 0x15, 0xa3, 0x2e, 0x26, 0xa3, 0x3c, 0x4c, + 0x6b, 0xc0, 0x13, 0x0d, 0xe4, 0xd3, 0x81, 0x62, + 0xca, 0x0a, 0xa1, 0x68, 0x2d, 0x2b, 0x90, 0xca, + 0xe8, 0x19, 0x78, 0xaa, 0x2f, 0xb0, 0xb8, 0x03, + 0x61, 0x30, 0x46, 0xb5, 0xa4, 0x67, 0x8f, 0x40, + 0xa1, 0x81, 0x61, 0x3d, 0x87, 0x86, 0x2d, 0x48, + 0xe3, 0x87, 0x23, 0x40, 0xd2, 0x68, 0xf3, 0x87, + 0xb0, 0x01, 0x8d, 0x5d, 0x2b, 0x16, 0x72, 0xb0, + 0x83, 0x85, 0x48, 0x0a, 0xaa, 0xc2, 0x85, 0x95, + 0x1a, 0x6c, 0x34, 0xed, 0x0a, 0x0d, 0x58, 0xe1, + 0xb8, 0x20, 0x75, 0x5f, 0xe1, 0xf2, 0x9f, 0xa8, + 0x7f, 0xb2, 0xcb, 0xdd, 0x6e, 0x38, 0x4c, 0x77, + 0xc2, 0xaa, 0x1b, 0xa7, 0x0e, 0x01, 0x84, 0x1e, + 0x50, 0xf8, 0x18, 0x3d, 0x43, 0x87, 0x0e, 0x1c, + 0x38, 0x72, 0xf7, 0x6d, 0x86, 0x5a, 0x6d, 0x2f, + 0x9e, 0xb9, 0x5c, 0x01, 0xb0, 0x5a, 0x0b, 0x2c, + 0xa3, 0x43, 0xa4, 0xe4, 0x40, 0x44, 0x10, 0xea, + 0x15, 0xbe, 0xe6, 0xb9, 0x98, 0x72, 0x85, 0x0e, + 0x60, 0xd8, 0x74, 0x9d, 0x27, 0x99, 0x1a, 0xf4, + 0xc7, 0x59, 0xe6, 0x46, 0xdb, 0x19, 0x70, 0x22, + 0xe7, 0x9a, 0xaf, 0x67, 0x68, 0x2e, 0xfe, 0x09, + 0x1c, 0x38, 0x70, 0xe1, 0xc3, 0x87, 0x5a, 0xc7, + 0x36, 0x4a, 0x24, 0x34, 0x1d, 0xc6, 0xb2, 0xfa, + 0x83, 0x92, 0x58, 0x39, 0x27, 0x30, 0x2b, 0x39, + 0xcd, 0x24, 0xbd, 0xca, 0x64, 0x25, 0xe0, 0x13, + 0x8e, 0x2c, 0x70, 0xec, 0xbc, 0x92, 0xb5, 0x15, + 0xb5, 0xe7, 0x5c, 0x03, 0x61, 0x42, 0xd8, 0x5f, + 0xe4, 0xe3, 0xac, 0x37, 0x86, 0x2b, 0xd6, 0xfa, + 0xef, 0x9c, 0xa4, 0xc1, 0x69, 0x6a, 0xbd, 0xae, + 0x72, 0xf2, 0x6a, 0xd4, 0x56, 0xd7, 0x9d, 0x74, + 0x80, 0xd0, 0x5b, 0x20, 0xfb, 0xc8, 0x35, 0x45, + 0x45, 0x14, 0x14, 0x6c, 0x6d, 0xe9, 0x00, 0xa1, + 0xb6, 0x41, 0xd9, 0x9f, 0x35, 0x26, 0xd8, 0xca, + 0x6c, 0x16, 0x96, 0xab, 0xda, 0xf1, 0x80, 0x50, + 0x5b, 0x20, 0xec, 0xcf, 0x91, 0x27, 0x67, 0xe9, + 0x32, 0xde, 0x6b, 0x6d, 0x9e, 0xdd, 0x5b, 0xe7, + 0x79, 0xb3, 0x0f, 0x34, 0xba, 0xc7, 0x7b, 0xd6, + 0x37, 0xd6, 0x26, 0xb4, 0x50, 0x26, 0xbb, 0x22, + 0x1d, 0x04, 0x8d, 0xd1, 0x13, 0x3c, 0x2c, 0xeb, + 0x4c, 0xab, 0x29, 0x78, 0x43, 0xb2, 0xdb, 0x32, + 0x4d, 0x66, 0xc8, 0xf9, 0x66, 0xd0, 0xaa, 0x04, + 0xc2, 0x22, 0x05, 0x70, 0xaf, 0x60, 0x48, 0xea, + 0xa3, 0x83, 0x99, 0x47, 0xf8, 0xad, 0xa7, 0x9e, + 0xeb, 0xe9, 0xd5, 0xe8, 0x32, 0x80, 0xd9, 0xab, + 0xe4, 0xf8, 0x45, 0x77, 0x02, 0x10, 0x2e, 0xc1, + 0xb0, 0xa5, 0xed, 0x65, 0xc5, 0x8b, 0x15, 0xe0, + 0xbc, 0xd0, 0xf3, 0x37, 0x68, 0xa5, 0x14, 0xb4, + 0xa5, 0xe5, 0x91, 0x05, 0x79, 0x88, 0xf5, 0xd9, + 0xb3, 0x1a, 0x04, 0x9b, 0xa5, 0x00, 0xb9, 0x55, + 0x49, 0x4e, 0x67, 0xcf, 0x0d, 0x92, 0x9f, 0xd7, + 0x9a, 0x38, 0x3d, 0x31, 0xd1, 0x4c, 0x17, 0x96, + 0xb3, 0xb6, 0x64, 0x9b, 0x0a, 0xaf, 0x4d, 0x48, + 0xae, 0xdf, 0x7c, 0x8a, 0x0d, 0x20, 0x29, 0x71, + 0xf9, 0x0b, 0x09, 0x92, 0xd5, 0x2d, 0xb1, 0x98, + 0x8d, 0x05, 0x1a, 0x95, 0x92, 0xae, 0x4e, 0xb9, + 0xda, 0x9b, 0x52, 0x75, 0xe6, 0x58, 0x88, 0x51, + 0xa9, 0x24, 0x72, 0x81, 0x75, 0xcd, 0x41, 0xfc, + 0x39, 0x9f, 0xb8, 0x3f, 0xde, 0x1f, 0x56, 0xea, + 0x2d, 0xea, 0xcb, 0xf4, 0x27, 0x85, 0x7e, 0x27, + 0x85, 0x7e, 0x27, 0x85, 0x7e, 0x27, 0x85, 0x7e, + 0x27, 0x85, 0x7e, 0x22, 0x40, 0xa8, 0x06, 0x60, + 0x2d, 0x08, 0xd6, 0x8e, 0x77, 0x78, 0x9b, 0x0e, + 0x9d, 0x31, 0xfd, 0x89, 0x0f, 0x6a, 0x21, 0xa5, + 0xce, 0x73, 0x45, 0x69, 0x00, 0x19, 0x6b, 0x8a, + 0xce, 0xa8, 0xf4, 0x2b, 0xda, 0x45, 0x6a, 0x39, + 0x54, 0x61, 0x62, 0xca, 0x43, 0x2d, 0x7c, 0x22, + 0x59, 0x68, 0x68, 0x3b, 0x09, 0xb2, 0x4f, 0x10, + 0xc6, 0xe8, 0x09, 0xdf, 0xed, 0x14, 0x51, 0xc7, + 0x56, 0xb2, 0xbe, 0xcb, 0xee, 0x5b, 0x8d, 0x71, + 0xb2, 0x16, 0x52, 0xd0, 0xc2, 0xde, 0xab, 0xf6, + 0xab, 0xa9, 0xa7, 0x85, 0x7e, 0x27, 0x85, 0x7e, + 0x27, 0x85, 0x7e, 0x27, 0x85, 0x7e, 0x27, 0x85, + 0x7e, 0x27, 0x85, 0x7e, 0x21, 0x00, 0x00, 0xd2, + 0x0a, 0x3d, 0xb3, 0x87, 0x44, 0x00, 0x0f, 0x7e, + 0x78, 0x57, 0xe2, 0x78, 0x57, 0xe2, 0x78, 0x57, + 0xe2, 0x53, 0x20, 0xee, 0x78, 0xd2, 0xd9, 0x04, + 0xd5, 0x2d, 0xac, 0xaa, 0x24, 0xfe, 0x13, 0x59, + 0x6b, 0x97, 0xc1, 0xea, 0xf5, 0x41, 0xb2, 0x26, + 0xde, 0xca, 0xce, 0x15, 0x56, 0x99, 0xaa, 0x9d, + 0xec, 0x09, 0x69, 0x15, 0xb6, 0x5c, 0x4d, 0x37, + 0x40, 0x00, 0xb4, 0xc9, 0x61, 0xe7, 0x41, 0x04, + 0xd6, 0x1e, 0x7c, 0x2d, 0x74, 0x70, 0x39, 0xaa, + 0x49, 0xe2, 0xc1, 0xc0, 0x67, 0x4f, 0x8a, 0xa4, + 0x04, 0x8f, 0xe8, 0x58, 0x98, 0x78, 0xd5, 0x8d, + 0x70, 0x83, 0x90, 0xe4, 0x13, 0x96, 0x83, 0x65, + 0x41, 0x42, 0x4e, 0x29, 0x5c, 0x97, 0x2c, 0x98, + 0xc5, 0xca, 0xf1, 0xf6, 0xf1, 0x20, 0x20, 0x4d, + 0x83, 0x41, 0x25, 0xdf, 0x0a, 0xa0, 0x31, 0xbc, + 0xd7, 0xd7, 0x8d, 0xa8, 0xc1, 0x99, 0xf9, 0x69, + 0x14, 0x91, 0x0b, 0x29, 0xbb, 0x71, 0x85, 0x87, + 0xce, 0x0b, 0xde, 0x71, 0x78, 0x57, 0xe2, 0x78, + 0x57, 0xe2, 0x78, 0x57, 0xe2, 0x78, 0x57, 0xe3, + 0xd1, 0x9b, 0x35, 0xfe, 0x2b, 0x69, 0xe7, 0xba, + 0xfa, 0x4f, 0xd1, 0xb6, 0x3f, 0xb6, 0xe9, 0xdc, + 0x09, 0xf8, 0x97, 0xc0, 0x67, 0x45, 0x38, 0xc4, + 0x18, 0x24, 0x54, 0x65, 0x3e, 0xfb, 0x92, 0xa4, + 0xa5, 0x2b, 0x79, 0x74, 0x9c, 0x22, 0xb4, 0x02, + 0x0e, 0x46, 0x48, 0xf8, 0x89, 0x2b, 0x8d, 0x08, + 0x95, 0x21, 0x3c, 0x31, 0x5c, 0xb2, 0x4b, 0x4c, + 0xad, 0x3d, 0x1e, 0xfc, 0x29, 0x93, 0x63, 0x97, + 0xc0, 0x8c, 0xc4, 0x8c, 0x4d, 0x5d, 0x2e, 0x17, + 0x57, 0xa4, 0x00, 0x01, 0x56, 0xc0, 0xc2, 0xf4, + 0x78, 0x26, 0xde, 0x3a, 0x3c, 0xe0, 0xa8, 0x51, + 0xea, 0xa3, 0xd1, 0x78, 0x4b, 0x91, 0x7d, 0xea, + 0x50, 0xe2, 0x2c, 0x80, 0x4f, 0xb4, 0x18, 0xbf, + 0x8d, 0x31, 0x91, 0xc1, 0x20, 0x02, 0xa4, 0x12, + 0xa0, 0x01, 0x43, 0x60, 0x68, 0x83, 0x8f, 0xe0, + 0xd5, 0xdc, 0x9f, 0xeb, 0x1f, 0x5f, 0xf1, 0x3e, + 0xe0, 0xff, 0x00, 0x7f, 0x83, 0xec, 0x83, 0xb4, + 0x39, 0x70, 0x1f, 0x65, 0xfd, 0x4a, 0x81, 0xd6, + 0x80, 0x22, 0x6c, 0x15, 0x63, 0xa3, 0xef, 0x22, + 0xd6, 0x2d, 0x3c, 0x23, 0x8a, 0x38, 0x75, 0x03, + 0x1e, 0xe1, 0xce, 0x2b, 0x2a, 0x83, 0x8c, 0xf7, + 0x2f, 0xd2, 0x2a, 0xa1, 0x1b, 0xe6, 0xd6, 0x7c, + 0x2f, 0x2a, 0xcd, 0x90, 0x62, 0xbc, 0xd6, 0xaa, + 0x34, 0xd4, 0x1d, 0x82, 0xea, 0x95, 0x40, 0x02, + 0xef, 0x51, 0x8f, 0xd1, 0xf7, 0xb7, 0x21, 0x5d, + 0x13, 0xc8, 0x45, 0x57, 0xee, 0xc1, 0x06, 0x48, + 0x84, 0x02, 0x5b, 0x9d, 0x85, 0x2c, 0x95, 0xca, + 0x54, 0x7f, 0x23, 0x98, 0x62, 0xa1, 0xa5, 0x1b, + 0x34, 0x70, 0x9a, 0x27, 0x69, 0xd2, 0x13, 0x66, + 0xdb, 0x32, 0x5e, 0x75, 0x33, 0x1a, 0x68, 0x56, + 0xb9, 0x84, 0x8f, 0xa2, 0x31, 0xdc, 0xaa, 0x70, + 0x05, 0x2e, 0x16, 0xf8, 0x15, 0xb6, 0xb3, 0xc9, + 0xa2, 0x88, 0xd7, 0x13, 0x9e, 0x0a, 0xa2, 0x90, + 0x17, 0xc6, 0x9d, 0x55, 0x37, 0x10, 0x1b, 0x48, + 0xe0, 0x1c, 0x92, 0xc6, 0xae, 0xf1, 0xf8, 0x4c, + 0x66, 0xd0, 0x13, 0x45, 0x64, 0xae, 0xa6, 0x3d, + 0x59, 0xd2, 0x9f, 0x87, 0x4e, 0xb0, 0xa5, 0x07, + 0x62, 0x4b, 0x64, 0x84, 0x6e, 0x01, 0xd0, 0x64, + 0x98, 0x36, 0xca, 0xbb, 0x48, 0xca, 0x8d, 0x3b, + 0x03, 0x6e, 0xba, 0xe8, 0x03, 0xfa, 0x43, 0x8e, + 0x40, 0xa3, 0x49, 0x8c, 0x7e, 0x7b, 0x78, 0x01, + 0x24, 0xe5, 0x8c, 0xbc, 0x41, 0xaa, 0xa2, 0x68, + 0x42, 0x09, 0xf2, 0x05, 0xac, 0xbe, 0xca, 0x81, + 0x34, 0x0c, 0x7d, 0x61, 0xa7, 0x4b, 0xe2, 0xb6, + 0x9e, 0x7b, 0xaf, 0xa4, 0xfd, 0x10, 0x2a, 0x2a, + 0x59, 0x80, 0x1a, 0x21, 0x4b, 0xa0, 0x59, 0x2a, + 0x5f, 0x71, 0x21, 0x33, 0x00, 0x73, 0x09, 0x65, + 0xac, 0x78, 0x26, 0x24, 0x14, 0x20, 0x24, 0xd6, + 0xe0, 0x0c, 0x25, 0x82, 0x1a, 0x8f, 0x0d, 0xb4, + 0x5b, 0xdb, 0x75, 0x0d, 0x3c, 0xae, 0x0d, 0x59, + 0x81, 0x6d, 0x5b, 0x9d, 0x4f, 0x1b, 0x02, 0x9a, + 0xe9, 0x4b, 0x25, 0x2b, 0xa0, 0x10, 0xb9, 0x42, + 0x5b, 0x15, 0xb0, 0xc0, 0x4c, 0xe0, 0x14, 0x14, + 0x06, 0x54, 0xe0, 0x0c, 0xae, 0x08, 0xaf, 0x3b, + 0x98, 0x3d, 0x45, 0x55, 0x23, 0x48, 0x39, 0x8e, + 0x15, 0xcf, 0x3a, 0x25, 0x4b, 0x8d, 0x11, 0x82, + 0x2a, 0x40, 0x1d, 0x15, 0x35, 0xc5, 0x11, 0xa2, + 0x94, 0x36, 0x55, 0xd3, 0xfc, 0x53, 0x7e, 0xe0, + 0xff, 0x00, 0x78, 0x7d, 0x41, 0xa5, 0x14, 0x2a, + 0x78, 0x89, 0x48, 0x94, 0x54, 0x7a, 0x16, 0x2c, + 0x58, 0xb1, 0x52, 0x00, 0x64, 0x23, 0xa5, 0xa4, + 0x82, 0x70, 0xe8, 0x06, 0x92, 0xf6, 0x64, 0x9a, + 0x60, 0x66, 0x8d, 0x7e, 0x68, 0x8a, 0x78, 0x02, + 0x66, 0xef, 0x7c, 0x92, 0x9e, 0xc9, 0xbb, 0x2d, + 0x72, 0x5b, 0x00, 0xca, 0xf8, 0x89, 0x05, 0xbf, + 0x62, 0x10, 0xb5, 0xcd, 0xf3, 0xe9, 0x28, 0xb8, + 0xe5, 0x90, 0xce, 0x29, 0x88, 0x54, 0x10, 0x06, + 0xa2, 0x14, 0x04, 0xee, 0xa2, 0xcc, 0x70, 0xe6, + 0x90, 0x4b, 0x61, 0xbc, 0x57, 0x11, 0xe4, 0x91, + 0x22, 0x86, 0x07, 0xb6, 0xba, 0xe4, 0x38, 0x02, + 0x90, 0xe1, 0xbd, 0x34, 0x02, 0x0f, 0x05, 0xe1, + 0x41, 0x7e, 0x87, 0x8d, 0x93, 0x2f, 0xa8, 0x2c, + 0x58, 0xb1, 0x62, 0xc2, 0x6b, 0x6e, 0x8f, 0x38, + 0x89, 0x0d, 0x52, 0xa8, 0xe1, 0x58, 0x80, 0xb5, + 0xcd, 0x05, 0x71, 0xb6, 0x91, 0x01, 0xe2, 0x24, + 0xc9, 0x30, 0x1a, 0x96, 0x62, 0x9f, 0x08, 0x23, + 0x90, 0x38, 0x7d, 0x43, 0xef, 0x9b, 0x95, 0xf5, + 0x34, 0x9a, 0x32, 0xd4, 0x87, 0xf9, 0xd2, 0x12, + 0xa9, 0x2a, 0xd1, 0x8a, 0xf3, 0xcd, 0x07, 0x4d, + 0xab, 0xc0, 0x89, 0x84, 0xe1, 0xc5, 0x76, 0xb0, + 0x14, 0x0c, 0xca, 0xc2, 0x6e, 0xc0, 0xb6, 0x3f, + 0xd4, 0xc8, 0x98, 0xd9, 0x61, 0x01, 0x24, 0xfc, + 0xe3, 0xc8, 0xd4, 0x9f, 0xc0, 0xc7, 0x5c, 0x4f, + 0x02, 0xe1, 0x6e, 0x27, 0x75, 0x1d, 0xd0, 0x23, + 0xec, 0xac, 0x72, 0x49, 0xbc, 0x71, 0x88, 0x07, + 0x30, 0x6a, 0x0d, 0x9b, 0xd0, 0xf3, 0xaf, 0xdb, + 0x46, 0x28, 0xd0, 0xd3, 0x04, 0x6a, 0x9d, 0xab, + 0x5e, 0x20, 0xa3, 0xf4, 0x42, 0xdc, 0x78, 0xf1, + 0x35, 0x12, 0xb9, 0x02, 0x2a, 0x99, 0x61, 0x0d, + 0x04, 0xe1, 0xc7, 0x96, 0x7a, 0xb2, 0x90, 0x04, + 0xd7, 0x85, 0x22, 0xd9, 0xc2, 0x74, 0xbe, 0x2b, + 0x69, 0xe7, 0xba, 0xfa, 0x7e, 0xd5, 0x4d, 0x77, + 0x82, 0x92, 0xf4, 0xbb, 0xb1, 0x31, 0xfb, 0xb8, + 0xca, 0xea, 0x58, 0xad, 0x2e, 0xa7, 0x26, 0xa0, + 0x0d, 0xea, 0x12, 0x3c, 0x25, 0xb2, 0x58, 0xca, + 0xc4, 0x7b, 0xd6, 0x8b, 0xd3, 0xfd, 0x9f, 0x96, + 0x43, 0xa5, 0x14, 0x9d, 0xb7, 0x38, 0x0d, 0x69, + 0xee, 0xe0, 0xde, 0x7c, 0x0e, 0x89, 0x65, 0x6a, + 0xc5, 0xf7, 0x82, 0xb6, 0xa8, 0x2c, 0x69, 0xa2, + 0x06, 0x17, 0x41, 0xf2, 0x1a, 0x10, 0x51, 0x2b, + 0xba, 0x1d, 0x38, 0x56, 0x4a, 0x3a, 0x90, 0xef, + 0x32, 0x5c, 0xc2, 0x37, 0x4a, 0x9b, 0x5b, 0xc4, + 0x71, 0x0b, 0x21, 0x4d, 0xb8, 0x09, 0xaf, 0xef, + 0xaa, 0x06, 0x21, 0xd0, 0x37, 0x6f, 0xf4, 0xa2, + 0x12, 0x4d, 0xd4, 0x12, 0xf0, 0x96, 0x82, 0x7a, + 0x3e, 0xff, 0x00, 0x0d, 0xce, 0xd7, 0xef, 0xdc, + 0x1f, 0xef, 0xaf, 0xec, 0xdb, 0xdc, 0x21, 0x73, + 0x47, 0xc1, 0x00, 0xad, 0x24, 0xd6, 0x11, 0x03, + 0x74, 0xa7, 0x54, 0x6e, 0x23, 0x1e, 0xcc, 0xd8, + 0x53, 0x8b, 0x5b, 0xb9, 0xc3, 0x0d, 0x14, 0x62, + 0xd4, 0xc1, 0x95, 0x2b, 0x00, 0xc3, 0xe6, 0xeb, + 0x29, 0x69, 0xa2, 0x9b, 0x56, 0x74, 0xdd, 0x82, + 0x9b, 0x33, 0xd8, 0x57, 0xa0, 0x14, 0x97, 0x47, + 0xd2, 0x38, 0xcd, 0xb3, 0x2c, 0xd6, 0x23, 0x18, + 0xa9, 0xb9, 0x21, 0xbb, 0x7d, 0xb2, 0xb4, 0x94, + 0x4b, 0x5e, 0x92, 0x3a, 0xe1, 0x97, 0x8e, 0x84, + 0x48, 0x60, 0x0d, 0xa8, 0x23, 0x81, 0x4d, 0xa6, + 0xae, 0xd0, 0x78, 0x42, 0xe5, 0x12, 0x7e, 0xd8, + 0xfe, 0x15, 0xd7, 0x2a, 0x40, 0xb9, 0x52, 0xe0, + 0x55, 0x98, 0x49, 0x37, 0x78, 0x9d, 0x87, 0x4b, + 0x76, 0xcc, 0xee, 0x96, 0x3d, 0x73, 0xe4, 0xcb, + 0x4d, 0x29, 0xb9, 0x4d, 0x7b, 0xd3, 0x5b, 0x31, + 0x31, 0xef, 0x35, 0x9f, 0x23, 0x09, 0xca, 0x11, + 0x64, 0x32, 0x1a, 0x06, 0x8b, 0x8c, 0x8e, 0x1c, + 0xb3, 0x95, 0x3a, 0xa2, 0x98, 0x9e, 0xdc, 0x23, + 0x30, 0xf3, 0xcf, 0x39, 0x62, 0x59, 0x14, 0xc1, + 0x51, 0xd9, 0x2c, 0x22, 0x88, 0x58, 0xf7, 0x8d, + 0x57, 0x42, 0xdb, 0x16, 0x0a, 0x5d, 0xdc, 0x62, + 0x50, 0xd5, 0x6c, 0x39, 0xe6, 0x69, 0x37, 0x04, + 0xa7, 0x56, 0x23, 0xb4, 0x89, 0xae, 0xea, 0xab, + 0xf5, 0x07, 0x0f, 0x0d, 0x8b, 0xc2, 0x35, 0xce, + 0x84, 0x6d, 0x2b, 0xc3, 0xee, 0xe1, 0x06, 0x63, + 0xf0, 0xc4, 0x70, 0x98, 0x87, 0x1b, 0x84, 0x2a, + 0xac, 0xec, 0x01, 0x09, 0x45, 0x26, 0x04, 0x6b, + 0x3c, 0x85, 0x36, 0x69, 0x01, 0x25, 0x89, 0x32, + 0x87, 0x66, 0x50, 0x03, 0x0a, 0x5d, 0x5e, 0xad, + 0x65, 0x93, 0xb4, 0xea, 0x14, 0xf3, 0x8c, 0x89, + 0x7b, 0x44, 0x16, 0x6c, 0xe7, 0xd7, 0x81, 0x97, + 0x4e, 0x2e, 0x52, 0x27, 0x34, 0x9d, 0x86, 0x45, + 0xe6, 0xa1, 0x28, 0xc2, 0xef, 0xe0, 0x28, 0xf5, + 0x60, 0xd0, 0x41, 0x14, 0x21, 0x9f, 0x31, 0x58, + 0x8a, 0x48, 0x24, 0xac, 0xe2, 0x6b, 0xd1, 0xf1, + 0xb7, 0xdd, 0xd7, 0xc5, 0x6d, 0x3c, 0xf7, 0x58, + 0x82, 0x7b, 0x4f, 0x06, 0x3b, 0xe1, 0x2a, 0x31, + 0xe8, 0x11, 0xac, 0x48, 0x0d, 0x46, 0x27, 0x9c, + 0x70, 0x5e, 0x8d, 0x43, 0x05, 0xe7, 0xa8, 0x39, + 0xed, 0x6b, 0xd2, 0x50, 0xb8, 0x0c, 0x41, 0x61, + 0x1c, 0x22, 0xf3, 0x18, 0xab, 0xbb, 0x57, 0x99, + 0x23, 0xac, 0xc4, 0x7b, 0xa6, 0xe9, 0x58, 0x68, + 0x12, 0x01, 0x5c, 0xfc, 0x9d, 0x47, 0x4d, 0x1c, + 0xe7, 0x01, 0xb4, 0x0c, 0x1c, 0xd4, 0xb2, 0x88, + 0x9f, 0xa2, 0xbc, 0x85, 0x44, 0xf6, 0xdc, 0x48, + 0xf5, 0x37, 0xa0, 0x15, 0x3a, 0x3c, 0x96, 0xf4, + 0x00, 0x81, 0xd8, 0xaa, 0x0a, 0x8e, 0x1d, 0x88, + 0xf6, 0x73, 0x15, 0x75, 0x54, 0xae, 0xa2, 0x6a, + 0xaa, 0x4b, 0x0a, 0x06, 0x70, 0x0e, 0xe4, 0xb3, + 0xe1, 0x89, 0x84, 0x20, 0x14, 0x39, 0x4b, 0x40, + 0x3f, 0x87, 0xb2, 0x96, 0x96, 0xec, 0xb5, 0xc3, + 0x16, 0x7a, 0x1f, 0x50, 0xe4, 0xef, 0xc3, 0xea, + 0xf1, 0x2e, 0x91, 0x8f, 0xf6, 0x6b, 0xc7, 0x33, + 0xe8, 0xf5, 0xeb, 0xd7, 0xbb, 0xca, 0xcb, 0xf8, + 0x95, 0xed, 0xaa, 0x20, 0x80, 0x8a, 0xf3, 0x7f, + 0x84, 0x8d, 0x15, 0x5b, 0x0b, 0x12, 0x34, 0xdf, + 0x10, 0x39, 0xe8, 0xdf, 0x68, 0x18, 0xaa, 0x94, + 0x18, 0xab, 0x99, 0x6d, 0xa3, 0x9c, 0x3c, 0x70, + 0xaa, 0x04, 0x4d, 0x05, 0x05, 0xb9, 0x13, 0xd8, + 0xb5, 0xad, 0x7a, 0x3d, 0xc1, 0x4e, 0x81, 0x6a, + 0x9a, 0x20, 0x86, 0xd5, 0x9e, 0x97, 0x26, 0x36, + 0xb0, 0xbf, 0xb3, 0x9a, 0x0a, 0x91, 0x91, 0x51, + 0x06, 0x10, 0xc0, 0x5d, 0xa7, 0xf4, 0xa9, 0x68, + 0x8c, 0x37, 0xea, 0x9f, 0x39, 0x34, 0x2d, 0x40, + 0xd7, 0x04, 0xa2, 0x10, 0x28, 0xf2, 0x25, 0x36, + 0xa2, 0x99, 0xd5, 0xb4, 0xd5, 0xea, 0xb7, 0xaf, + 0x5e, 0xbd, 0x7a, 0x4b, 0x43, 0xa2, 0x56, 0x30, + 0xb3, 0x08, 0x9b, 0x90, 0x88, 0x4c, 0x44, 0xbe, + 0x17, 0x18, 0x45, 0x1d, 0x98, 0xc4, 0x14, 0x47, + 0xb3, 0x63, 0x4d, 0x8c, 0x81, 0x21, 0x2f, 0x63, + 0x85, 0x2b, 0x3d, 0x49, 0xcd, 0x81, 0x21, 0x2f, + 0xce, 0xc4, 0x6a, 0x58, 0x76, 0x2a, 0xb1, 0xba, + 0x14, 0x94, 0xea, 0x2a, 0x13, 0x3a, 0xb1, 0xf3, + 0x67, 0x44, 0xb4, 0xc0, 0x00, 0x82, 0x32, 0x24, + 0x53, 0x6b, 0xac, 0x31, 0x08, 0x6d, 0xb4, 0x42, + 0xaf, 0x8a, 0x8e, 0x20, 0xd4, 0xc5, 0x59, 0xc6, + 0x50, 0x62, 0x3a, 0xc5, 0xac, 0x54, 0x8a, 0xab, + 0x4a, 0x37, 0x70, 0x50, 0x3e, 0xbd, 0x90, 0x80, + 0x28, 0xed, 0x6a, 0xc0, 0xa9, 0x4a, 0x6f, 0x5a, + 0x4e, 0x5d, 0x85, 0x4d, 0x84, 0x6d, 0x32, 0xfa, + 0x33, 0x3d, 0xf6, 0xc9, 0xd8, 0x94, 0x84, 0x07, + 0x3e, 0x8c, 0xc0, 0x35, 0x7e, 0x02, 0x7a, 0x75, + 0x2b, 0xfc, 0xcf, 0x38, 0xd8, 0xf7, 0xde, 0xdc, + 0x09, 0xac, 0x86, 0x3b, 0x87, 0x3a, 0x13, 0x89, + 0x93, 0x98, 0x01, 0x3a, 0xde, 0x72, 0x06, 0xf6, + 0xa7, 0x0a, 0xac, 0x60, 0xe5, 0x76, 0x32, 0x9d, + 0xac, 0xc8, 0xa6, 0x94, 0x58, 0xf0, 0x5d, 0xe1, + 0xb0, 0x17, 0x3c, 0x0b, 0xe8, 0x65, 0x00, 0x56, + 0xa0, 0x0c, 0x26, 0x46, 0x64, 0x10, 0x32, 0x8c, + 0x7a, 0x68, 0x98, 0x31, 0x4f, 0x2f, 0x4a, 0x00, + 0x47, 0x4a, 0xc9, 0x0d, 0xfd, 0x6c, 0x2d, 0xf6, + 0xdb, 0xb6, 0x6a, 0xa9, 0x43, 0x58, 0x2e, 0x26, + 0x10, 0x09, 0xf9, 0x12, 0xea, 0x05, 0x12, 0xab, + 0x6d, 0xdd, 0x18, 0x19, 0x98, 0xcf, 0x5d, 0xca, + 0xf8, 0xad, 0xa7, 0x9e, 0xeb, 0xc6, 0xab, 0x50, + 0x19, 0x59, 0x80, 0x4d, 0xce, 0x31, 0xda, 0x19, + 0xc3, 0x85, 0x64, 0xaa, 0x15, 0xf1, 0x85, 0x73, + 0xa0, 0xc6, 0x09, 0xc3, 0x08, 0xf4, 0xf0, 0x62, + 0x6d, 0x18, 0x24, 0x0b, 0x02, 0x34, 0xcd, 0x84, + 0xff, 0x00, 0x04, 0xb1, 0x57, 0x4a, 0xc1, 0x11, + 0x64, 0xce, 0x04, 0x6d, 0x26, 0x00, 0x6d, 0xb6, + 0x2d, 0x12, 0xff, 0x00, 0x00, 0x2e, 0x8c, 0x24, + 0xd6, 0x01, 0x35, 0x0a, 0xf4, 0x61, 0xc3, 0x84, + 0x65, 0xd0, 0x17, 0xda, 0x91, 0xc3, 0xa1, 0x0c, + 0xdb, 0x73, 0x43, 0x08, 0x8b, 0xc6, 0xc2, 0x96, + 0xd7, 0x38, 0x8d, 0x9d, 0x1c, 0xa1, 0x9c, 0xe1, + 0x4c, 0x64, 0x1a, 0xed, 0x33, 0xa7, 0x9c, 0xc5, + 0xa8, 0x2a, 0x67, 0xca, 0x47, 0xc9, 0x68, 0x47, + 0xe4, 0x13, 0x2f, 0x08, 0x56, 0x21, 0xa8, 0xc2, + 0x01, 0xc9, 0x20, 0xa1, 0x78, 0xe1, 0xc2, 0xb6, + 0xdb, 0xaa, 0x40, 0x62, 0x2c, 0xba, 0x4d, 0x13, + 0xf7, 0x07, 0xfb, 0xeb, 0xfb, 0x22, 0xed, 0x3a, + 0x52, 0x33, 0xac, 0x8e, 0x8c, 0xf1, 0xcd, 0x4f, + 0x25, 0x94, 0x05, 0x0f, 0xac, 0x70, 0x43, 0x88, + 0xc4, 0xc9, 0xbe, 0x98, 0xde, 0x59, 0x18, 0xa7, + 0x36, 0x57, 0xee, 0xc3, 0x56, 0xc3, 0xac, 0x02, + 0x2d, 0x74, 0xe6, 0x79, 0x85, 0xbd, 0xf9, 0xb2, + 0x54, 0x01, 0x62, 0xf7, 0xd2, 0x8a, 0x50, 0x41, + 0x3f, 0x29, 0xdb, 0x07, 0x34, 0xf0, 0xeb, 0x96, + 0xa8, 0x12, 0x6d, 0x43, 0x0f, 0x30, 0xb2, 0xaf, + 0x7c, 0x0f, 0x25, 0x60, 0x53, 0x0c, 0x6e, 0x2c, + 0x53, 0xba, 0x19, 0x8b, 0x82, 0x11, 0x36, 0x4b, + 0xad, 0x24, 0xb9, 0x61, 0x86, 0x54, 0x7f, 0xc4, + 0xc1, 0xad, 0xa9, 0x73, 0x74, 0x7c, 0xff, 0x00, + 0xe0, 0x47, 0x2d, 0x75, 0x4a, 0xf8, 0xad, 0xa7, + 0x9e, 0xeb, 0xfc, 0x15, 0x7a, 0x8e, 0xf3, 0xca, + 0x48, 0x14, 0x13, 0x17, 0xae, 0x71, 0x91, 0x67, + 0xf7, 0x77, 0x06, 0x53, 0xb3, 0x43, 0xf3, 0x4d, + 0x6d, 0xe2, 0xc6, 0x06, 0x7c, 0xb3, 0xf5, 0x0f, + 0xcd, 0xb5, 0x26, 0xe7, 0xa3, 0xe2, 0x5e, 0xd3, + 0x02, 0xe9, 0xf4, 0x78, 0x6d, 0x9e, 0x3c, 0xfc, + 0x9e, 0xe8, 0xde, 0x40, 0xbc, 0xdf, 0x45, 0x93, + 0x1c, 0x90, 0x62, 0x43, 0x3e, 0xd0, 0x06, 0xc2, + 0x77, 0x3a, 0x46, 0x4c, 0xae, 0xfa, 0x6e, 0x9f, + 0xbe, 0x4d, 0x10, 0x82, 0x5a, 0x1a, 0xd5, 0xd0, + 0xf2, 0x32, 0x73, 0xc5, 0x46, 0xeb, 0x47, 0xa3, + 0x3f, 0xb8, 0x3f, 0xde, 0x1f, 0x5a, 0x3b, 0x8d, + 0xc5, 0x4a, 0xb8, 0x59, 0x40, 0x8a, 0x3e, 0x9f, + 0x5e, 0xbd, 0x7a, 0xb8, 0x00, 0x57, 0x48, 0x25, + 0xb5, 0x34, 0xa9, 0x5c, 0x01, 0x17, 0x75, 0x17, + 0x2e, 0x5f, 0x46, 0xa3, 0x11, 0x39, 0xbd, 0x33, + 0x5a, 0x0d, 0x71, 0x69, 0x76, 0x78, 0x34, 0x4d, + 0x7f, 0xc5, 0xf6, 0xb5, 0xab, 0xac, 0xae, 0x25, + 0xd1, 0x6a, 0x32, 0x02, 0xfc, 0xfb, 0xc6, 0x75, + 0x2b, 0xc9, 0x4d, 0x8c, 0x5e, 0x86, 0xd6, 0xc7, + 0x5d, 0x76, 0x2a, 0x80, 0x20, 0x23, 0xf8, 0x09, + 0x8c, 0x3b, 0x00, 0x32, 0x43, 0xa8, 0x6e, 0x17, + 0xc6, 0x83, 0x14, 0x4c, 0x15, 0x92, 0x2e, 0x8d, + 0x9f, 0xba, 0x42, 0x63, 0x2a, 0x39, 0x74, 0x76, + 0xe4, 0x8c, 0xde, 0xaa, 0x83, 0x8b, 0x0a, 0x79, + 0xa2, 0xe6, 0x8c, 0x32, 0x42, 0x91, 0x87, 0xa8, + 0xf5, 0xeb, 0xd7, 0xaf, 0x5b, 0xf2, 0xa4, 0xe5, + 0xbb, 0x24, 0x85, 0x01, 0x84, 0x7f, 0xb4, 0xd7, + 0x54, 0xaf, 0x8a, 0xda, 0x79, 0xee, 0xb1, 0x56, + 0x18, 0xbe, 0xc8, 0x14, 0x09, 0x35, 0xb5, 0x34, + 0x15, 0x4a, 0xf2, 0x3e, 0x99, 0xf3, 0xe7, 0xcf, + 0x59, 0x70, 0x73, 0x40, 0xb0, 0x9d, 0xf3, 0xd8, + 0x01, 0x48, 0x19, 0x4b, 0x44, 0x46, 0x46, 0xcb, + 0x8a, 0x01, 0x5f, 0xe9, 0xcb, 0xdd, 0x68, 0x7a, + 0x51, 0x8c, 0x94, 0x31, 0x38, 0x1f, 0x73, 0x6d, + 0xfa, 0xf1, 0xb5, 0x9e, 0x80, 0x9f, 0x3e, 0x7b, + 0x4c, 0xcb, 0xd8, 0xd9, 0x39, 0x35, 0x39, 0xea, + 0x06, 0x69, 0xa0, 0xa0, 0x12, 0x7e, 0x88, 0x12, + 0x7b, 0xc5, 0x4d, 0x16, 0xd5, 0x68, 0xa8, 0xc3, + 0x50, 0xa4, 0x87, 0x20, 0xec, 0xa9, 0x75, 0x8a, + 0x02, 0x5b, 0x01, 0x8d, 0xaa, 0x0e, 0x25, 0x8c, + 0x66, 0x47, 0xb4, 0x70, 0xe5, 0xb2, 0x00, 0x29, + 0x49, 0xeb, 0xc6, 0xbd, 0xba, 0x3d, 0x71, 0xc9, + 0xf3, 0xe8, 0x13, 0xe3, 0xca, 0x28, 0x0d, 0x05, + 0x06, 0xcd, 0xce, 0x41, 0xcc, 0xff, 0x00, 0x78, + 0x7d, 0x0e, 0xa4, 0xa6, 0x6f, 0x73, 0x1c, 0x0a, + 0xc0, 0x7f, 0x0e, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, + 0xbf, 0x71, 0x5e, 0x2a, 0x1c, 0x24, 0x4d, 0xc8, + 0xab, 0x67, 0x62, 0xc0, 0x26, 0x16, 0x2a, 0x28, + 0xc4, 0x29, 0x11, 0x38, 0x3c, 0xd4, 0x6f, 0xdf, + 0xe1, 0x2d, 0xf9, 0x43, 0x06, 0xda, 0x85, 0x39, + 0x68, 0x6b, 0x00, 0x8d, 0x52, 0xbf, 0x84, 0xdf, + 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, 0x25, 0x8a, + 0x0c, 0x20, 0xc4, 0xc0, 0xef, 0x80, 0x4c, 0x7f, + 0x61, 0xd4, 0xd5, 0xdb, 0x8c, 0x5f, 0x15, 0xb4, + 0xf3, 0xdd, 0x78, 0xa5, 0x41, 0x39, 0xa8, 0xf4, + 0xdb, 0x51, 0x4a, 0x58, 0x98, 0x53, 0x85, 0xfb, + 0x33, 0xa7, 0x35, 0x72, 0x17, 0xa0, 0xc4, 0xa2, + 0x45, 0x4f, 0x72, 0xda, 0xcc, 0x19, 0xd0, 0x52, + 0x14, 0xd2, 0xd4, 0x64, 0xa6, 0x44, 0x2e, 0x08, + 0xce, 0x02, 0x97, 0x37, 0xf0, 0x17, 0xd5, 0x23, + 0x5e, 0x33, 0x71, 0x00, 0x86, 0xf8, 0x0f, 0x27, + 0xc2, 0xb1, 0x05, 0x25, 0xc6, 0x5e, 0xa3, 0x4f, + 0xbc, 0x5c, 0xc3, 0x1c, 0x88, 0x70, 0xbe, 0xed, + 0x57, 0xc7, 0x39, 0x4f, 0x5b, 0x59, 0xc0, 0x2e, + 0x8f, 0x7e, 0xbe, 0xd6, 0x27, 0xdd, 0xb7, 0x60, + 0x54, 0xf0, 0x23, 0xa7, 0xb6, 0xcb, 0x32, 0x77, + 0xd9, 0x1e, 0x08, 0x34, 0x29, 0x0f, 0xa1, 0xe1, + 0xa9, 0x2a, 0x8a, 0xe9, 0x8c, 0xbe, 0x4b, 0xc5, + 0xd6, 0xf6, 0x80, 0xe1, 0xbe, 0x85, 0x6e, 0x49, + 0x89, 0x96, 0x27, 0x7a, 0xe6, 0xb4, 0x2c, 0x48, + 0x96, 0x9b, 0xc1, 0xa6, 0x18, 0x47, 0xaf, 0x6c, + 0x72, 0xaa, 0x2b, 0x88, 0x0f, 0x6e, 0x74, 0x50, + 0xa0, 0x3e, 0x2f, 0x7c, 0x74, 0xa3, 0x58, 0xb4, + 0x02, 0x1a, 0x9c, 0x23, 0x2e, 0x4e, 0xb5, 0x8d, + 0xf9, 0x48, 0xab, 0xed, 0xa5, 0x82, 0xb6, 0x5a, + 0x60, 0x83, 0x7a, 0x11, 0x80, 0x02, 0x09, 0x5a, + 0x21, 0xf0, 0x00, 0x6e, 0xc3, 0x0e, 0x10, 0xae, + 0x6b, 0x79, 0x10, 0x1c, 0xaa, 0xe7, 0xdc, 0x1f, + 0xef, 0xf1, 0x7d, 0x91, 0xcc, 0xf7, 0x3f, 0xd9, + 0xce, 0xb1, 0xc9, 0x5c, 0x69, 0x31, 0xd1, 0xa9, + 0x83, 0x89, 0xcf, 0x39, 0x76, 0xa6, 0x3e, 0x00, + 0xe3, 0xf5, 0x1b, 0x12, 0xaa, 0x62, 0xb3, 0xd6, + 0xb8, 0xb5, 0xac, 0x71, 0xda, 0x9b, 0x1f, 0xca, + 0xdd, 0x58, 0x5f, 0xfc, 0x27, 0x25, 0x75, 0x4e, + 0x78, 0xad, 0xa7, 0x9e, 0xeb, 0xc5, 0x2a, 0x6c, + 0x8c, 0x2a, 0x1e, 0x41, 0xed, 0x68, 0xd3, 0x03, + 0xc0, 0xf9, 0x19, 0x35, 0xf4, 0x8b, 0x9b, 0x00, + 0x65, 0x30, 0x16, 0xe4, 0x4d, 0xed, 0xb7, 0x0c, + 0x18, 0xf2, 0x4a, 0x1c, 0x20, 0xf4, 0xec, 0x04, + 0x14, 0x16, 0x0a, 0x20, 0x7b, 0x71, 0x5e, 0xa0, + 0x1e, 0x9a, 0x52, 0xa6, 0x17, 0xa0, 0x13, 0x1d, + 0xa4, 0x7a, 0x18, 0xea, 0x51, 0x45, 0xe1, 0xad, + 0xbf, 0x06, 0xac, 0xff, 0x00, 0x05, 0xa8, 0x88, + 0xa0, 0x22, 0x84, 0x0a, 0xf0, 0x02, 0xba, 0x78, + 0x5c, 0x7b, 0x13, 0xec, 0x30, 0xeb, 0xa8, 0x06, + 0x6b, 0xc1, 0xee, 0x26, 0x37, 0x19, 0xb4, 0xb0, + 0x00, 0x01, 0x77, 0x12, 0x1e, 0xe1, 0xb3, 0x52, + 0x6d, 0x01, 0x06, 0xad, 0x57, 0xd1, 0xbc, 0xcf, + 0xe8, 0x2f, 0xf0, 0xe2, 0x2d, 0x5e, 0x6a, 0x00, + 0x94, 0x6c, 0xe6, 0x0e, 0x43, 0x1f, 0x2b, 0x18, + 0x6c, 0xc9, 0xc1, 0x43, 0x8f, 0x9a, 0x19, 0x4a, + 0x1c, 0x33, 0xa9, 0x4e, 0x8e, 0xcc, 0x10, 0xc9, + 0xcc, 0x7f, 0x56, 0x97, 0x05, 0xaa, 0xe6, 0x59, + 0x44, 0xb0, 0x04, 0x2c, 0xf9, 0x74, 0xdd, 0xce, + 0x29, 0xc9, 0x84, 0x48, 0x1c, 0x83, 0x61, 0xd1, + 0x68, 0xb6, 0x30, 0xd2, 0xcb, 0xd4, 0x9f, 0x70, + 0x7f, 0xb1, 0xf4, 0x64, 0xed, 0x3b, 0x20, 0xfa, + 0x58, 0x3f, 0x4b, 0x26, 0x88, 0xd7, 0xaa, 0x3a, + 0x74, 0xe9, 0xd3, 0xaa, 0x02, 0x34, 0x83, 0x44, + 0xb1, 0xac, 0x3a, 0x8e, 0x20, 0x14, 0xbd, 0xb3, + 0x09, 0xb9, 0x59, 0x32, 0x26, 0xa3, 0x16, 0x27, + 0x63, 0xd0, 0xd1, 0x93, 0x2a, 0x29, 0xc1, 0x13, + 0x59, 0x2c, 0x8d, 0xc9, 0x16, 0x19, 0xb0, 0x0e, + 0x38, 0x47, 0x46, 0x48, 0x80, 0xc9, 0xc0, 0xaf, + 0xe0, 0x2c, 0x04, 0x7e, 0x8d, 0xdb, 0x47, 0x24, + 0x04, 0x11, 0xce, 0x0e, 0x70, 0xca, 0x26, 0xb3, + 0x6d, 0xe3, 0x4a, 0x54, 0xf1, 0xfc, 0x92, 0x4b, + 0x70, 0xce, 0xf2, 0x33, 0xdd, 0x7b, 0x2f, 0xa3, + 0x8f, 0x8f, 0x00, 0xf3, 0x3d, 0x67, 0x4e, 0x9d, + 0x3a, 0x74, 0xed, 0x85, 0x6a, 0x70, 0x34, 0x5c, + 0x41, 0xb7, 0x43, 0x3f, 0xb5, 0x95, 0xd5, 0x39, + 0xe2, 0xb6, 0x9e, 0x7b, 0xac, 0x6f, 0xb3, 0xfe, + 0xd4, 0xb7, 0x7f, 0xb4, 0x2f, 0xa2, 0x3d, 0x99, + 0x35, 0x3d, 0x40, 0x01, 0x48, 0xbd, 0xfd, 0xcd, + 0xf0, 0x91, 0x23, 0xa6, 0xda, 0x15, 0x07, 0x0a, + 0x3f, 0x5a, 0xd6, 0x1e, 0x56, 0x3d, 0xa1, 0xbb, + 0x57, 0xe0, 0x50, 0xb3, 0x94, 0xff, 0x00, 0x03, + 0xae, 0x88, 0xd6, 0xe3, 0x13, 0xf8, 0x08, 0x50, + 0xa1, 0x42, 0x85, 0x0a, 0x17, 0x8a, 0xea, 0xd0, + 0x3c, 0x01, 0x6a, 0x23, 0x64, 0x84, 0xae, 0xab, + 0xef, 0x2f, 0xd2, 0xb8, 0x1a, 0x20, 0xe8, 0x3e, + 0xdc, 0x2d, 0x10, 0x2b, 0x28, 0x23, 0xa1, 0x69, + 0xbb, 0x50, 0x69, 0xd1, 0xa4, 0x6b, 0x44, 0x73, + 0x34, 0x3e, 0x45, 0x82, 0x4f, 0xe7, 0x4e, 0x6d, + 0x89, 0x3a, 0x9c, 0xce, 0x5d, 0x67, 0x39, 0xa7, + 0x2f, 0x59, 0x5b, 0x45, 0x7c, 0xbd, 0x2b, 0x79, + 0xcf, 0x0f, 0xa9, 0x58, 0xf5, 0x65, 0xe3, 0x66, + 0x32, 0x62, 0x22, 0x94, 0xcc, 0x68, 0x2d, 0xb0, + 0x15, 0xf1, 0x68, 0x3f, 0x2d, 0x24, 0xae, 0xaa, + 0x80, 0x42, 0x99, 0x85, 0x1f, 0x24, 0x1d, 0x47, + 0xb2, 0x00, 0x54, 0x9a, 0x0f, 0x82, 0x02, 0x63, + 0x90, 0xa6, 0xb7, 0xd6, 0xa8, 0x09, 0x9f, 0xd5, + 0x76, 0x1c, 0x68, 0xce, 0x55, 0x9a, 0xa6, 0x47, + 0x82, 0x2c, 0x3a, 0xa9, 0xf0, 0x48, 0x36, 0x3a, + 0x1a, 0x89, 0x47, 0x03, 0xf0, 0xae, 0xb4, 0x0e, + 0xae, 0x01, 0xe2, 0x2c, 0x12, 0x0a, 0x92, 0x7c, + 0xed, 0xeb, 0x8c, 0xac, 0xd6, 0x8f, 0xfc, 0x07, + 0x37, 0x2f, 0x92, 0x77, 0x8a, 0xda, 0x79, 0xee, + 0xbf, 0xda, 0xb1, 0xf7, 0x07, 0xfb, 0x29, 0xdb, + 0x33, 0xe4, 0xa9, 0x71, 0xb5, 0x84, 0xa9, 0x96, + 0x4d, 0x04, 0xec, 0x91, 0xa9, 0x92, 0x6f, 0x50, + 0xd4, 0xa9, 0x52, 0xa5, 0x58, 0x08, 0x68, 0x5e, + 0x6e, 0x90, 0x92, 0x40, 0x81, 0x0d, 0x3d, 0x58, + 0x45, 0x1b, 0x1a, 0xdb, 0x59, 0x6c, 0xc9, 0xd0, + 0xeb, 0x31, 0x33, 0x2f, 0x0b, 0x11, 0x8c, 0xa9, + 0x6d, 0x21, 0xdd, 0x61, 0xa7, 0x94, 0x19, 0x2a, + 0x08, 0x84, 0x74, 0xbe, 0xab, 0x38, 0xc4, 0x11, + 0x9c, 0x62, 0xd6, 0x1f, 0x72, 0xb3, 0xbd, 0xa6, + 0x48, 0xcd, 0xd3, 0xea, 0xaa, 0xd5, 0xec, 0x8d, + 0xa0, 0x55, 0x41, 0x03, 0x09, 0xd5, 0xaa, 0x1c, + 0xa1, 0x51, 0x23, 0x12, 0x69, 0x7b, 0x16, 0xc6, + 0xf6, 0xc7, 0x71, 0x6c, 0x95, 0x20, 0xca, 0x2b, + 0x3d, 0x2a, 0x54, 0xa9, 0x52, 0xaa, 0x7c, 0x7a, + 0xa1, 0x33, 0xaa, 0xb8, 0x06, 0x34, 0x17, 0x10, + 0x0d, 0x65, 0xbc, 0xe1, 0x37, 0x6b, 0x66, 0xfb, + 0x9b, 0xad, 0x2b, 0x31, 0xa0, 0x93, 0x90, 0xc5, + 0x11, 0x5d, 0x7c, 0x56, 0x3e, 0x2b, 0x1f, 0x15, + 0x8f, 0x8a, 0xc7, 0xc5, 0x63, 0xe2, 0xb1, 0xf1, + 0x58, 0xf8, 0xac, 0x7c, 0x56, 0x3e, 0x2b, 0x1f, + 0x15, 0x8f, 0x8a, 0xc7, 0xc5, 0x63, 0xe2, 0xb1, + 0xf1, 0x58, 0xf8, 0xac, 0x7c, 0x56, 0x3e, 0x2b, + 0x1f, 0x15, 0x8f, 0x8a, 0xc1, 0xcd, 0x55, 0xc9, + 0xab, 0x94, 0x66, 0x43, 0x35, 0x10, 0x8e, 0x37, + 0x03, 0xf8, 0xad, 0xa7, 0x9e, 0xeb, 0x37, 0x8f, + 0xbd, 0x0f, 0xab, 0xdd, 0x9f, 0x57, 0xbb, 0x3e, + 0xaf, 0x76, 0x7d, 0x5e, 0xec, 0xfa, 0xbd, 0xd9, + 0xf5, 0x7b, 0xb3, 0xea, 0xf7, 0x67, 0xd5, 0xee, + 0xcf, 0xab, 0xdd, 0x9f, 0x57, 0xbb, 0x3e, 0xaf, + 0x76, 0x7d, 0x5e, 0xec, 0xfa, 0xbd, 0xd9, 0xf5, + 0x7b, 0xb3, 0xea, 0xf7, 0x67, 0xd5, 0xee, 0xcf, + 0xab, 0xdd, 0x9f, 0x57, 0xbb, 0x3e, 0xaf, 0x76, + 0x7d, 0x5e, 0xec, 0xfa, 0xbd, 0xd9, 0xf5, 0x7b, + 0xb3, 0xea, 0xf7, 0x67, 0xd5, 0xee, 0xcd, 0xc3, + 0xa9, 0xcd, 0xde, 0x31, 0x59, 0x1b, 0x5a, 0x20, + 0xb6, 0x51, 0xe2, 0x00, 0x31, 0x54, 0x15, 0xd4, + 0x9b, 0xd8, 0x79, 0x6a, 0xc1, 0x20, 0xd4, 0xfe, + 0xaa, 0xa5, 0x4a, 0x95, 0x2a, 0x54, 0xa9, 0x52, + 0xa5, 0x4a, 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, + 0x4a, 0x95, 0x1c, 0x81, 0x6a, 0xcc, 0xb0, 0x75, + 0xa9, 0x09, 0x91, 0x0c, 0xb2, 0xb5, 0x06, 0x88, + 0x48, 0xde, 0x37, 0xcc, 0x42, 0xb0, 0x66, 0xcc, + 0x6b, 0x0c, 0xb3, 0x69, 0x8b, 0xa0, 0x28, 0x02, + 0x5e, 0x6f, 0x23, 0x3a, 0xd9, 0x54, 0xb9, 0xc4, + 0xc6, 0xdb, 0xa4, 0x9e, 0x60, 0xaf, 0x21, 0xf8, + 0x69, 0x9c, 0x72, 0x16, 0x93, 0x21, 0x4c, 0x63, + 0xee, 0x1d, 0x9b, 0xfd, 0x20, 0x15, 0x7f, 0xd8, + 0x93, 0x39, 0xa2, 0xd0, 0x5a, 0x86, 0xf1, 0x96, + 0x2f, 0x1d, 0xc3, 0x21, 0x13, 0x2a, 0x8c, 0xfb, + 0x4c, 0x38, 0x9d, 0x1b, 0x33, 0xed, 0x9c, 0xcd, + 0x27, 0x02, 0xd0, 0xea, 0x3b, 0x19, 0xcb, 0x03, + 0x1a, 0x04, 0xd5, 0x8c, 0x22, 0xb2, 0x6d, 0x6b, + 0x11, 0xf4, 0x95, 0xb5, 0x87, 0x02, 0x46, 0x18, + 0xc6, 0x24, 0x9b, 0x69, 0xc9, 0x0f, 0xc2, 0xa4, + 0x55, 0xd4, 0x02, 0x52, 0xd3, 0x83, 0x9a, 0xec, + 0xaa, 0xde, 0xf4, 0x8f, 0xca, 0x97, 0x8c, 0xc3, + 0xc4, 0x44, 0x2c, 0x50, 0x8a, 0x63, 0x0c, 0x96, + 0x64, 0xea, 0xc6, 0x73, 0x39, 0xe3, 0x30, 0x1d, + 0xc4, 0x54, 0x39, 0x03, 0x51, 0xa0, 0x2c, 0x43, + 0xa2, 0xa0, 0x37, 0xd6, 0xe6, 0x59, 0x2e, 0x4b, + 0xcd, 0xe6, 0x86, 0xfe, 0x33, 0x26, 0xba, 0x02, + 0xc6, 0xc2, 0xc1, 0x48, 0x99, 0x4a, 0x50, 0xa1, + 0x87, 0xdc, 0x5b, 0x48, 0x5e, 0x3a, 0xa3, 0xf8, + 0xad, 0xa7, 0x9e, 0xeb, 0xfd, 0xa9, 0x9f, 0x70, + 0x7f, 0xb1, 0xd7, 0x1d, 0x0d, 0x68, 0x8b, 0xcc, + 0x22, 0xc3, 0x98, 0xa9, 0xe1, 0x71, 0xe4, 0xaf, + 0x45, 0x70, 0x1b, 0xa2, 0xb5, 0x05, 0x56, 0xdb, + 0xd5, 0x04, 0x4e, 0x2a, 0x9b, 0x38, 0xd0, 0x78, + 0x78, 0x01, 0x94, 0x5e, 0x0e, 0x8e, 0x0a, 0x05, + 0x2f, 0x35, 0x99, 0xa3, 0x3c, 0xe2, 0xa5, 0xcc, + 0xe2, 0xc4, 0x15, 0x28, 0xf9, 0x07, 0xd0, 0x2b, + 0x30, 0xb2, 0xdd, 0x2b, 0x68, 0x87, 0x3c, 0x73, + 0x65, 0x20, 0xa1, 0x9e, 0x3c, 0x89, 0x3f, 0x80, + 0xf2, 0x6c, 0xba, 0xe0, 0x00, 0x0a, 0x39, 0xa3, + 0x51, 0x8a, 0xce, 0xbb, 0xae, 0x51, 0x36, 0x3c, + 0x9a, 0xa6, 0x34, 0x89, 0xed, 0xea, 0x8f, 0x03, + 0xc4, 0xb9, 0xc8, 0xb5, 0x11, 0x79, 0xdc, 0x0b, + 0x38, 0x6e, 0xb0, 0x29, 0x44, 0x68, 0x4c, 0xf4, + 0x7d, 0xa0, 0xc4, 0xa9, 0xde, 0xb4, 0x11, 0x2f, + 0x93, 0x09, 0xa9, 0x14, 0x65, 0x8d, 0xe7, 0x35, + 0x19, 0x8a, 0x9b, 0xce, 0x74, 0x7e, 0xa8, 0xc0, + 0xc6, 0x6d, 0x94, 0x3c, 0x23, 0x19, 0xf0, 0xd7, + 0x39, 0x6e, 0x60, 0x60, 0x19, 0xe4, 0x2c, 0x9a, + 0xe3, 0x50, 0x00, 0x2f, 0x6a, 0x01, 0x6c, 0x70, + 0x07, 0x5f, 0x52, 0x1a, 0xc8, 0x34, 0x32, 0x6a, + 0x32, 0xa5, 0xd4, 0x65, 0xc0, 0x5b, 0x50, 0xf2, + 0x01, 0x51, 0x6f, 0xb2, 0xb7, 0x75, 0xa8, 0x11, + 0xb5, 0xa6, 0x62, 0x3f, 0xfb, 0x79, 0x21, 0x61, + 0x59, 0xa4, 0x78, 0x5c, 0x1d, 0x08, 0x49, 0xc5, + 0x05, 0x72, 0x02, 0x8d, 0xc8, 0x9a, 0xb2, 0x6a, + 0xeb, 0xa0, 0x20, 0x68, 0xb4, 0x2c, 0x42, 0x25, + 0x41, 0x20, 0xe4, 0x00, 0x03, 0x69, 0xe4, 0x8e, + 0x1c, 0x40, 0x15, 0x8c, 0xb7, 0x89, 0x40, 0xec, + 0x37, 0x67, 0xa3, 0x90, 0x0c, 0x9e, 0xc2, 0xc5, + 0xc3, 0x8e, 0xef, 0x01, 0xde, 0x45, 0xcb, 0x51, + 0x48, 0xf3, 0xc6, 0x07, 0x83, 0x2a, 0x77, 0x95, + 0xef, 0x40, 0xe5, 0x0d, 0xc5, 0x08, 0x61, 0xc0, + 0xc4, 0x0c, 0x42, 0x44, 0x12, 0x48, 0x75, 0x85, + 0xf6, 0xf8, 0xe6, 0x7e, 0xfb, 0xe4, 0x6d, 0xc8, + 0x2e, 0x2f, 0x31, 0x44, 0xbc, 0xb1, 0x83, 0x01, + 0x98, 0xee, 0x46, 0xd0, 0x0c, 0xf6, 0x00, 0x8c, + 0xb0, 0x51, 0x0b, 0x26, 0x52, 0x81, 0x83, 0x56, + 0x6e, 0xa5, 0x5c, 0x9a, 0xb1, 0x87, 0x77, 0x9c, + 0x30, 0xb4, 0x84, 0xe7, 0x47, 0x4e, 0x80, 0x5b, + 0xf2, 0x56, 0xc6, 0x29, 0x0d, 0x12, 0x60, 0xaa, + 0x16, 0xc1, 0x78, 0xab, 0x69, 0x20, 0xfe, 0x1e, + 0x85, 0x62, 0x17, 0x1d, 0x1a, 0xc0, 0x50, 0xb6, + 0xbc, 0x8a, 0x0c, 0x5c, 0x64, 0x26, 0xed, 0x5e, + 0x8c, 0x17, 0x8e, 0x92, 0x35, 0x33, 0xf0, 0x0b, + 0xb1, 0x76, 0xd2, 0x3f, 0x06, 0x13, 0x9e, 0x82, + 0x00, 0x3e, 0x50, 0x91, 0xf9, 0xe3, 0xaa, 0x3f, + 0x8a, 0xda, 0x79, 0xee, 0xbf, 0xda, 0x99, 0xf7, + 0x07, 0xfb, 0xc3, 0x0d, 0xab, 0xbb, 0xde, 0x13, + 0x50, 0x2e, 0xd3, 0x55, 0x1b, 0x11, 0x17, 0x04, + 0x81, 0xff, 0x00, 0x9d, 0x62, 0x27, 0x8f, 0x0d, + 0x8a, 0x62, 0x91, 0xec, 0x7a, 0x6c, 0xb1, 0x2e, + 0x53, 0x18, 0x18, 0x6d, 0xb1, 0x3f, 0xba, 0x25, + 0xd0, 0x38, 0x85, 0x86, 0xec, 0x70, 0x15, 0xb8, + 0x71, 0xe7, 0x19, 0x99, 0x94, 0x1e, 0xfe, 0x41, + 0x97, 0x02, 0x20, 0x81, 0x51, 0xf1, 0xd5, 0xcc, + 0xb4, 0x15, 0xe8, 0xcc, 0x37, 0xcb, 0xd2, 0x69, + 0xcb, 0x6d, 0xef, 0xa9, 0x3e, 0xc5, 0x5b, 0x39, + 0x68, 0xfe, 0x17, 0xd0, 0x57, 0xbe, 0xa0, 0x95, + 0x09, 0x19, 0x2d, 0x53, 0x46, 0xe9, 0x68, 0xf1, + 0xa8, 0xf8, 0x2c, 0x8c, 0x23, 0x2c, 0xe6, 0x49, + 0x7a, 0xa6, 0xb9, 0x9a, 0x88, 0x04, 0x55, 0x10, + 0x2e, 0xa8, 0x8b, 0xf0, 0x5e, 0xd5, 0x64, 0x2b, + 0x2a, 0x10, 0x59, 0x51, 0xac, 0x8a, 0x45, 0x17, + 0xda, 0x81, 0xdd, 0xd3, 0xc0, 0x42, 0x04, 0xd7, + 0xc4, 0x4f, 0x11, 0x6e, 0x38, 0xfe, 0x3f, 0x21, + 0x9d, 0x9c, 0x5b, 0xfd, 0x66, 0xae, 0xfa, 0x44, + 0x52, 0xd6, 0xd5, 0x16, 0xb5, 0xe9, 0xee, 0x26, + 0x4b, 0x05, 0xf0, 0x43, 0x3b, 0xaa, 0x98, 0xdc, + 0x53, 0x2c, 0x6d, 0x88, 0xde, 0xd2, 0xa2, 0x65, + 0x28, 0x94, 0x45, 0x03, 0x03, 0xe9, 0x3e, 0xbd, + 0xaf, 0x28, 0xcc, 0xb4, 0x2c, 0x1d, 0xcf, 0xc6, + 0xb9, 0x40, 0x19, 0xcd, 0x59, 0xbb, 0xd2, 0xb2, + 0xbd, 0x4a, 0x42, 0xa1, 0x42, 0xe9, 0x0c, 0x3a, + 0x31, 0x6a, 0x3e, 0xdc, 0xd4, 0xd7, 0x00, 0xc9, + 0x29, 0xe1, 0x80, 0x28, 0xb0, 0xc5, 0xc6, 0x4d, + 0x85, 0xc7, 0x77, 0xa3, 0x60, 0xc1, 0xae, 0x16, + 0x22, 0x39, 0xa2, 0x12, 0x67, 0x76, 0xc0, 0x5e, + 0x9e, 0x78, 0x39, 0xdf, 0xd4, 0x42, 0x0e, 0x08, + 0x10, 0xd6, 0xaf, 0x3d, 0x5f, 0xbe, 0xa5, 0xe9, + 0x65, 0x26, 0x28, 0x45, 0x3c, 0x8c, 0x66, 0xdd, + 0x55, 0x8d, 0x54, 0xb8, 0x84, 0x9d, 0xce, 0x3b, + 0x8a, 0x9d, 0xd4, 0x21, 0x14, 0x02, 0x07, 0x14, + 0x63, 0x28, 0x80, 0x2d, 0x19, 0x60, 0x25, 0x24, + 0x2e, 0xe9, 0xa9, 0x38, 0xe5, 0x40, 0x04, 0x89, + 0x11, 0x8b, 0x5d, 0x13, 0x14, 0x48, 0xce, 0xaa, + 0xe0, 0x57, 0x1b, 0x9e, 0x5a, 0x8d, 0xee, 0xf7, + 0x49, 0x2d, 0x0e, 0x3d, 0xdf, 0x36, 0x9f, 0x02, + 0x24, 0xb3, 0xd9, 0xc8, 0x11, 0xfe, 0xf3, 0x85, + 0xa5, 0x37, 0x70, 0x78, 0x13, 0xae, 0xca, 0x38, + 0x1c, 0x08, 0x48, 0x00, 0x66, 0xcc, 0x87, 0xd8, + 0x8f, 0x20, 0x36, 0x86, 0x4c, 0xce, 0x32, 0xf2, + 0x58, 0x88, 0x55, 0x62, 0xd1, 0x90, 0x04, 0x03, + 0x80, 0x38, 0x79, 0x86, 0x96, 0x86, 0xc0, 0x6b, + 0xe3, 0xa7, 0xec, 0x8b, 0x91, 0x5b, 0xb0, 0x34, + 0x00, 0x28, 0x17, 0x67, 0x1d, 0x49, 0xfc, 0x56, + 0xd3, 0xcf, 0x75, 0xfe, 0xd6, 0x43, 0x53, 0xdc, + 0x8c, 0x02, 0xaf, 0x2a, 0xe6, 0x53, 0x16, 0xa3, + 0xff, 0x00, 0x15, 0x18, 0xe8, 0x99, 0x85, 0xb1, + 0x74, 0xb0, 0x41, 0xe9, 0x64, 0xca, 0x74, 0x8a, + 0x42, 0x0c, 0x67, 0xbc, 0xbf, 0x06, 0x24, 0x88, + 0x51, 0x17, 0x63, 0x21, 0x1d, 0xe5, 0x2c, 0xe8, + 0xb8, 0x44, 0x16, 0x6b, 0x29, 0x9a, 0xf3, 0x6f, + 0x9a, 0x39, 0x38, 0x76, 0x8b, 0xfc, 0x2e, 0x96, + 0xd1, 0x4e, 0x83, 0x17, 0xd0, 0xa4, 0xff, 0x00, + 0x6b, 0xad, 0xbc, 0x7f, 0xad, 0xd7, 0xde, 0x39, + 0xd9, 0xb7, 0x91, 0xf3, 0xba, 0x2b, 0x45, 0x31, + 0xef, 0x26, 0xf5, 0x44, 0xb2, 0xa3, 0x12, 0x60, + 0x2f, 0xe6, 0xeb, 0xc6, 0xee, 0x4b, 0xcd, 0xbe, + 0x68, 0xfa, 0x34, 0xdc, 0xec, 0xdb, 0xc9, 0xc9, + 0xc3, 0xb4, 0x5c, 0xec, 0xdb, 0xf0, 0x9a, 0x86, + 0x96, 0x6d, 0x12, 0xbd, 0xb0, 0x5b, 0x96, 0x14, + 0x49, 0x03, 0xa3, 0x40, 0x00, 0xe8, 0x38, 0x47, + 0xe5, 0x12, 0xcd, 0x46, 0x19, 0x08, 0xe9, 0xc3, + 0x20, 0x66, 0xd8, 0xaf, 0x4f, 0x75, 0x15, 0x71, + 0x40, 0x94, 0x0d, 0x3a, 0x5e, 0x37, 0x09, 0x43, + 0x31, 0x20, 0x5c, 0x96, 0x8b, 0x06, 0xe6, 0x6c, + 0x91, 0x9f, 0x0e, 0xef, 0x6c, 0x57, 0x1d, 0xa4, + 0x14, 0xbf, 0xc1, 0x07, 0x2d, 0x1b, 0x34, 0x99, + 0xb9, 0xe2, 0xbb, 0xb6, 0x96, 0x6e, 0x72, 0x88, + 0x79, 0x93, 0x99, 0x5a, 0x9d, 0x1a, 0x53, 0xb6, + 0x64, 0xd5, 0x29, 0x86, 0x27, 0x32, 0x9b, 0x6d, + 0xf0, 0xc9, 0x15, 0x3e, 0xa9, 0x1b, 0x18, 0xa3, + 0x13, 0xf0, 0x25, 0xb8, 0xdb, 0xa3, 0xe5, 0x87, + 0x2f, 0x30, 0xb7, 0x2a, 0x3e, 0x5c, 0xd3, 0x6e, + 0x99, 0xea, 0x29, 0x4c, 0x55, 0x57, 0x71, 0x5e, + 0xdd, 0xbe, 0x86, 0xc0, 0x49, 0xf3, 0x18, 0x28, + 0x72, 0x0e, 0x69, 0x09, 0xf7, 0x57, 0xe6, 0x59, + 0xa1, 0x12, 0xc1, 0xa1, 0x0e, 0xb8, 0x45, 0x4a, + 0xb0, 0x26, 0xb7, 0x3a, 0xf5, 0xac, 0x54, 0x0e, + 0x25, 0xda, 0x60, 0x8e, 0x72, 0x0d, 0x69, 0x9c, + 0xf8, 0x77, 0x52, 0xd8, 0xa0, 0x05, 0x91, 0x1d, + 0x14, 0x5a, 0x46, 0x56, 0x93, 0x2e, 0x59, 0xf5, + 0xf1, 0x4a, 0x08, 0x9e, 0x03, 0xbd, 0x70, 0x24, + 0x82, 0x78, 0xb5, 0x34, 0x55, 0x29, 0xbf, 0xb8, + 0x6c, 0x81, 0x36, 0xea, 0x79, 0x84, 0x78, 0xe1, + 0x92, 0xa8, 0x07, 0xd1, 0x2a, 0x17, 0x9f, 0x15, + 0xb4, 0xf3, 0xdd, 0x7f, 0xb4, 0x90, 0xd4, 0xf7, + 0x38, 0x7d, 0x26, 0xd0, 0x8f, 0xcc, 0x24, 0x9f, + 0x76, 0x08, 0x3d, 0x3f, 0xff, 0x00, 0xff, 0x00, + 0xff, 0x00, 0xfe, 0xf1, 0x88, 0xd9, 0x96, 0xec, + 0xe6, 0x45, 0x86, 0xb9, 0xad, 0x45, 0xbe, 0x9c, + 0xa7, 0x0a, 0x00, 0x14, 0x45, 0xbd, 0x83, 0x6b, + 0x8d, 0x95, 0xd3, 0x25, 0x67, 0x83, 0x70, 0xce, + 0xac, 0x2c, 0xb4, 0x0f, 0x70, 0x0d, 0x87, 0x33, + 0x80, 0x56, 0x92, 0x4a, 0xec, 0x84, 0x10, 0xf1, + 0xa3, 0xcc, 0x21, 0x86, 0x52, 0xad, 0xc5, 0x46, + 0xe2, 0x6b, 0x50, 0xd9, 0xf0, 0x4d, 0xa2, 0xef, + 0x06, 0xda, 0xed, 0x4f, 0x2e, 0xe9, 0x36, 0x2e, + 0x88, 0xd4, 0xc6, 0x67, 0x74, 0xf1, 0x52, 0x45, + 0x54, 0x2f, 0x59, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x87, 0x64, 0x05, + 0x33, 0x27, 0xf0, 0xfc, 0x22, 0xc9, 0xc6, 0x18, + 0xed, 0xc5, 0xb3, 0xd4, 0x89, 0xb6, 0x01, 0x68, + 0x12, 0xd9, 0x5a, 0xc2, 0xfb, 0x0c, 0x44, 0xec, + 0x2a, 0x60, 0x20, 0xcb, 0xa6, 0x04, 0xe5, 0x8f, + 0x39, 0x41, 0xd5, 0x4f, 0x98, 0xf7, 0xa1, 0x31, + 0x70, 0xc2, 0x9f, 0x84, 0x4c, 0x63, 0xb3, 0xab, + 0xbb, 0x0e, 0x6f, 0xbc, 0x05, 0x3c, 0x2b, 0xcc, + 0x54, 0xcb, 0xe9, 0x41, 0xfe, 0x42, 0x3c, 0x91, + 0x16, 0x84, 0x54, 0x28, 0x47, 0x6e, 0xa6, 0x9a, + 0x66, 0xb5, 0xa3, 0x00, 0x81, 0x39, 0x2f, 0x44, + 0xdb, 0x4c, 0x66, 0x49, 0x94, 0x52, 0xa9, 0xad, + 0x11, 0x8e, 0xd7, 0x55, 0x7b, 0x45, 0x31, 0xc5, + 0xe9, 0x20, 0x31, 0x7b, 0xdf, 0xae, 0x9e, 0x12, + 0x28, 0x45, 0x33, 0x44, 0xa0, 0x43, 0x25, 0x18, + 0x5e, 0xd5, 0x71, 0x31, 0x9e, 0x80, 0x9d, 0xa0, + 0x3b, 0x6c, 0x11, 0xa4, 0x52, 0xc1, 0x95, 0x26, + 0xd8, 0x39, 0x54, 0x14, 0x79, 0x85, 0x42, 0x82, + 0xa5, 0xa3, 0x85, 0x17, 0xdd, 0xcb, 0xc3, 0x49, + 0x69, 0x88, 0xbc, 0x0f, 0xdc, 0x9a, 0xef, 0xea, + 0xe3, 0x2d, 0xb7, 0xdb, 0xa4, 0xdc, 0x81, 0x23, + 0xf0, 0x91, 0x10, 0x73, 0xe2, 0x27, 0x92, 0x34, + 0x26, 0xc4, 0x49, 0x67, 0xae, 0x1a, 0x9a, 0x82, + 0xce, 0x80, 0x2e, 0x88, 0x03, 0xd1, 0x92, 0x54, + 0x2f, 0x3e, 0x2b, 0x69, 0xe7, 0xba, 0xc2, 0x96, + 0x53, 0xaf, 0x69, 0x4e, 0xbd, 0xa5, 0x3a, 0xf6, + 0x94, 0xeb, 0xda, 0x53, 0xaf, 0x69, 0x4e, 0xbd, + 0xa5, 0x3a, 0xf6, 0x94, 0xeb, 0xda, 0x53, 0xaf, + 0x69, 0x4e, 0xbd, 0xa5, 0x3a, 0xf6, 0x94, 0xeb, + 0xda, 0x53, 0xaf, 0x69, 0x4e, 0xbd, 0xa5, 0x3a, + 0xf6, 0x94, 0xeb, 0xda, 0x53, 0xaf, 0x69, 0x4e, + 0xbd, 0xa5, 0x3a, 0xf6, 0x94, 0xeb, 0xda, 0x53, + 0xaf, 0x69, 0x4e, 0xbd, 0xa5, 0x3a, 0xf6, 0x94, + 0xeb, 0xda, 0x02, 0xcd, 0x75, 0x39, 0x46, 0x59, + 0x43, 0x0b, 0x05, 0x65, 0x16, 0x94, 0x2d, 0x0b, + 0x96, 0xb3, 0x59, 0x8c, 0x0f, 0xf6, 0xc7, 0x6c, + 0xb0, 0x58, 0x1e, 0x9f, 0x35, 0xea, 0xc7, 0xa7, + 0x35, 0xdf, 0x26, 0x31, 0x8b, 0x1d, 0x14, 0xbf, + 0xb3, 0x29, 0xdf, 0xd8, 0x2d, 0x3c, 0x62, 0x0c, + 0xb5, 0xb4, 0x7d, 0x10, 0xc5, 0x13, 0x61, 0x68, + 0x32, 0x31, 0x0a, 0x95, 0xea, 0x25, 0x11, 0xd8, + 0x70, 0x89, 0x9d, 0x10, 0xb7, 0x8e, 0x25, 0x1f, + 0xea, 0x9d, 0x56, 0x1c, 0xf0, 0xfb, 0x42, 0xe7, + 0x78, 0x44, 0x12, 0x8f, 0x81, 0x49, 0x0a, 0x6a, + 0x93, 0x2e, 0x8a, 0xc6, 0x3a, 0x05, 0x79, 0x58, + 0xac, 0xd0, 0x19, 0x12, 0xd1, 0xb3, 0x90, 0x3a, + 0xbd, 0x2f, 0xaa, 0x8b, 0x48, 0xc0, 0x00, 0x3d, + 0xfa, 0x8c, 0xbc, 0x2a, 0x5c, 0x19, 0xa2, 0xc8, + 0xe7, 0x78, 0x05, 0x18, 0xce, 0x39, 0x2e, 0xbf, + 0xaa, 0x05, 0x14, 0x51, 0x45, 0x14, 0x51, 0x45, + 0x14, 0x51, 0x45, 0x14, 0x51, 0x45, 0x14, 0x51, + 0x74, 0x7f, 0x3c, 0x91, 0xc6, 0x4b, 0x93, 0x1c, + 0xab, 0x24, 0x2a, 0x81, 0xab, 0x9c, 0xf8, 0xad, + 0xa7, 0x9e, 0xeb, 0xfd, 0xa9, 0xe6, 0xa7, 0xb9, + 0x1c, 0x06, 0xce, 0x04, 0x12, 0x57, 0x00, 0x28, + 0x80, 0x5c, 0xbe, 0x92, 0xd5, 0xfe, 0x76, 0xc8, + 0x6c, 0x4e, 0xac, 0xff, 0x00, 0x53, 0xd7, 0xaf, + 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, + 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x44, 0x4d, + 0x99, 0x3b, 0xc2, 0x37, 0x92, 0x4b, 0x39, 0x66, + 0x65, 0xa5, 0x69, 0x42, 0x0a, 0xaa, 0x58, 0xa9, + 0x2c, 0x7b, 0xf8, 0xd0, 0xd8, 0xe0, 0xb8, 0x34, + 0x0b, 0x0d, 0x14, 0x6c, 0x88, 0x32, 0xde, 0x92, + 0x0f, 0x37, 0x3b, 0x4f, 0xdf, 0x15, 0x84, 0x81, + 0xc1, 0x83, 0x07, 0x9f, 0xf5, 0x07, 0xd7, 0xf9, + 0x72, 0x4a, 0x07, 0x63, 0xc5, 0x6d, 0x3c, 0xf7, + 0x59, 0xca, 0xb4, 0xe6, 0x75, 0x27, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa7, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa7, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa7, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa7, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa7, 0xb3, 0xef, + 0xfa, 0x9e, 0xcf, 0xbf, 0xea, 0x7b, 0x3e, 0xff, + 0x00, 0xa9, 0xec, 0xfb, 0xfe, 0xa1, 0x91, 0x8e, + 0x67, 0x3f, 0xd4, 0x7e, 0x73, 0xc6, 0x0d, 0xfb, + 0x80, 0x9c, 0x33, 0xc2, 0x45, 0x08, 0x42, 0x82, + 0x82, 0xd0, 0xe5, 0x4e, 0x55, 0xca, 0xe5, 0x9e, + 0x7c, 0xa9, 0xe7, 0xca, 0x9e, 0x7c, 0xa9, 0xe7, + 0xca, 0x9e, 0x7c, 0xa9, 0xe7, 0xca, 0x97, 0x19, + 0xce, 0x05, 0xaa, 0xef, 0xdb, 0x03, 0xac, 0x50, + 0x85, 0x54, 0xb2, 0xcc, 0x44, 0x11, 0x91, 0x03, + 0x4b, 0xf3, 0xe5, 0x40, 0x13, 0x6d, 0x74, 0x19, + 0x0d, 0xc4, 0x92, 0x72, 0x2e, 0x79, 0xf2, 0xa7, + 0x9f, 0x2a, 0x79, 0xf2, 0xa7, 0x9f, 0x2a, 0x79, + 0xf2, 0xa7, 0x9f, 0x2a, 0x79, 0xf2, 0xa7, 0x9f, + 0x2a, 0x79, 0xf2, 0xa7, 0x9f, 0x2a, 0x20, 0x01, + 0x20, 0x36, 0xb6, 0xc0, 0x49, 0x74, 0x64, 0x80, + 0xca, 0x08, 0x5a, 0x8b, 0x67, 0xbe, 0x50, 0x82, + 0x04, 0x03, 0x2b, 0x0a, 0x84, 0xf6, 0x53, 0x17, + 0xfc, 0x33, 0x26, 0x4c, 0x99, 0x32, 0x64, 0xc9, + 0x93, 0x2b, 0xdf, 0x9a, 0xb9, 0x23, 0x38, 0xd4, + 0x93, 0x30, 0x22, 0x53, 0x53, 0xf3, 0xa9, 0xff, + 0x00, 0x22, 0xe3, 0xb7, 0xf0, 0xa4, 0x60, 0xb2, + 0x7c, 0x5e, 0x53, 0x26, 0x4c, 0x99, 0x32, 0x64, + 0xc9, 0x8e, 0x95, 0xa5, 0x39, 0xd5, 0x69, 0x50, + 0x0b, 0x1c, 0x70, 0x94, 0xaa, 0x72, 0xae, 0x31, + 0xe2, 0xb6, 0x9e, 0x7b, 0xaf, 0xf6, 0xa9, 0x9a, + 0x9e, 0xe4, 0x35, 0xda, 0xbe, 0xf7, 0xf8, 0x13, + 0xff, 0x00, 0xff, 0x00, 0xe6, 0xac, 0xfb, 0xc3, + 0x98, 0x6a, 0x8e, 0xed, 0x3c, 0x94, 0x97, 0x94, + 0x90, 0x3b, 0x1c, 0x09, 0xe1, 0x61, 0x94, 0x9d, + 0x48, 0x2d, 0xfe, 0x3d, 0x79, 0x5d, 0x74, 0x63, + 0x79, 0x48, 0x65, 0xc6, 0xa4, 0x57, 0xc2, 0x4d, + 0x7c, 0x48, 0x0b, 0x19, 0x6a, 0x1f, 0xef, 0x19, + 0x53, 0x4e, 0x01, 0x2b, 0xb4, 0x5d, 0x54, 0x53, + 0x92, 0x99, 0x21, 0x43, 0xc0, 0x23, 0x4d, 0xfa, + 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, + 0x0f, 0xf5, 0x7e, 0x78, 0x2d, 0xa0, 0x07, 0x70, + 0x1e, 0xfc, 0xf8, 0x37, 0xfc, 0x9f, 0x06, 0xff, + 0x00, 0x93, 0xe0, 0xdf, 0xf2, 0x7c, 0x1b, 0xfe, + 0x4f, 0x83, 0x7f, 0xc8, 0xe6, 0xe3, 0x50, 0xa7, + 0x12, 0x88, 0xb6, 0x41, 0xa6, 0x57, 0x37, 0x96, + 0xc6, 0x49, 0xc7, 0x27, 0x0e, 0x1d, 0x50, 0x66, + 0x9a, 0xcd, 0x83, 0x2f, 0xe9, 0x5a, 0x12, 0x28, + 0x81, 0x3c, 0x68, 0xce, 0x81, 0x2e, 0x10, 0x88, + 0xd4, 0x8d, 0xb0, 0x4a, 0xcd, 0x05, 0x66, 0x4b, + 0xee, 0x1e, 0x36, 0x60, 0xbe, 0x2a, 0x1b, 0x4c, + 0x75, 0xaa, 0xe6, 0xa0, 0x71, 0x9a, 0xb5, 0x63, + 0x21, 0xe4, 0xc9, 0x2e, 0xb2, 0xcf, 0x99, 0xc6, + 0xed, 0x46, 0xad, 0x10, 0xce, 0x00, 0x35, 0x03, + 0x14, 0x2c, 0x1d, 0x98, 0x69, 0x91, 0x52, 0xd6, + 0xda, 0xd8, 0x46, 0x54, 0x93, 0xf0, 0x6f, 0xf9, + 0x3e, 0x0d, 0xff, 0x00, 0x27, 0xc1, 0xbf, 0xe4, + 0xf8, 0x37, 0xfc, 0x9f, 0x06, 0xff, 0x00, 0x93, + 0xed, 0xdb, 0x7f, 0x87, 0xa2, 0x53, 0x82, 0x1e, + 0x2b, 0x69, 0xe7, 0xba, 0xc5, 0x13, 0xb9, 0x72, + 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, + 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, + 0x97, 0x2e, 0x5c, 0x1c, 0x9e, 0xe4, 0xad, 0x11, + 0x5c, 0x92, 0xd6, 0xd3, 0xc0, 0x1a, 0xf7, 0x31, + 0x5f, 0x94, 0xf2, 0xb9, 0xe5, 0x73, 0xca, 0xe7, + 0x95, 0xcf, 0x2b, 0x9e, 0x57, 0x06, 0x3b, 0xb8, + 0xa9, 0x6a, 0x3b, 0xc9, 0xb7, 0x99, 0x4b, 0x64, + 0x67, 0x14, 0xab, 0xc8, 0xff, 0x00, 0x1f, 0x02, + 0xae, 0x84, 0x83, 0x85, 0x16, 0xad, 0xba, 0xa4, + 0x07, 0x17, 0xd7, 0xc7, 0xac, 0x05, 0x30, 0x94, + 0x93, 0xc4, 0x36, 0x74, 0x2e, 0x54, 0xf3, 0x8e, + 0x0a, 0xcc, 0x75, 0x66, 0x88, 0xeb, 0xde, 0x11, + 0x11, 0x00, 0x5f, 0x71, 0x23, 0x92, 0xd3, 0xd1, + 0xf9, 0xb4, 0xd2, 0xbc, 0xae, 0x79, 0x5c, 0xf2, + 0xb9, 0xe5, 0x73, 0xca, 0xe7, 0x95, 0xcf, 0x2b, + 0x95, 0xa6, 0x86, 0xb3, 0x2a, 0x09, 0x2b, 0x6d, + 0x0b, 0xb4, 0xcb, 0xf2, 0x55, 0x27, 0x2f, 0x1a, + 0x4c, 0x18, 0x73, 0xeb, 0x86, 0x84, 0xe5, 0x3b, + 0xc7, 0xe4, 0x53, 0x0c, 0x84, 0x89, 0x87, 0x2f, + 0x86, 0xc1, 0x7a, 0x90, 0xd7, 0xe7, 0x49, 0x4c, + 0xff, 0x00, 0x53, 0xd5, 0x40, 0xba, 0x0a, 0xab, + 0xeb, 0x52, 0xd8, 0x19, 0x0b, 0x8f, 0x2c, 0xd4, + 0x6b, 0x20, 0xfe, 0x6b, 0xee, 0x58, 0x5c, 0x6d, + 0x17, 0x02, 0x40, 0xa1, 0x44, 0x65, 0xc6, 0xa9, + 0xd5, 0x69, 0x1d, 0xc3, 0xef, 0x69, 0xde, 0x8e, + 0x62, 0x5d, 0xa0, 0xaf, 0x58, 0x18, 0x1f, 0xfa, + 0x30, 0xcd, 0xc0, 0x5a, 0x1a, 0x7c, 0xa1, 0x42, + 0xb5, 0x57, 0x44, 0xed, 0x9b, 0xf1, 0xc8, 0x4b, + 0x2a, 0xfc, 0xb9, 0x7d, 0xc5, 0xc1, 0x97, 0xc2, + 0xff, 0x00, 0x85, 0xab, 0x24, 0xaf, 0x0e, 0x61, + 0xe2, 0xb6, 0x9e, 0x7b, 0xaf, 0xf6, 0xa9, 0x1a, + 0x9e, 0xe4, 0xaf, 0x0b, 0x7d, 0x21, 0x0b, 0x2d, + 0x69, 0x05, 0x24, 0x20, 0x5a, 0x65, 0x59, 0xc2, + 0x07, 0xa9, 0xa4, 0x29, 0xe8, 0x97, 0x2e, 0x5c, + 0xb6, 0x8c, 0xe7, 0x4f, 0x10, 0x16, 0x21, 0xd0, + 0xc1, 0xa4, 0x81, 0x0b, 0xf6, 0x1d, 0x67, 0x42, + 0x4d, 0x15, 0x84, 0xf5, 0x2f, 0x72, 0x77, 0x6a, + 0x7c, 0x46, 0x08, 0x5e, 0x66, 0xa5, 0x82, 0xb1, + 0xf0, 0x00, 0xad, 0x19, 0xb8, 0xe8, 0xe1, 0x34, + 0x1f, 0x1d, 0x3b, 0x74, 0xed, 0x4e, 0xde, 0x82, + 0x85, 0x38, 0x67, 0x8e, 0xa4, 0xfb, 0x55, 0x85, + 0xe7, 0x7b, 0x53, 0xe3, 0x4d, 0xb4, 0x12, 0x19, + 0x29, 0x91, 0x4c, 0xa0, 0xe7, 0x80, 0x82, 0xb5, + 0x13, 0x2d, 0x53, 0xde, 0xc5, 0x8d, 0x87, 0x9f, + 0x72, 0xe1, 0x54, 0x96, 0x76, 0x00, 0xac, 0xba, + 0x86, 0xc8, 0x13, 0xd3, 0x2e, 0x5c, 0xb9, 0x64, + 0x4e, 0x69, 0x8a, 0x34, 0x15, 0xd2, 0x1e, 0x16, + 0xac, 0x0a, 0x9d, 0x33, 0x6d, 0x71, 0x0d, 0xaa, + 0xde, 0xa7, 0xa0, 0xeb, 0xd7, 0xaa, 0x4a, 0x74, + 0x6e, 0x05, 0xa0, 0x0b, 0x46, 0x06, 0x51, 0x66, + 0xeb, 0x06, 0xa0, 0x16, 0xd5, 0x3b, 0x68, 0xc2, + 0x05, 0x55, 0x18, 0x6b, 0x0c, 0x1d, 0xa7, 0xa1, + 0x08, 0xb9, 0x43, 0x1e, 0x89, 0xf6, 0xc5, 0xdc, + 0xa8, 0x36, 0x0b, 0x42, 0x37, 0xa1, 0xa3, 0xa7, + 0x69, 0xe4, 0x43, 0x28, 0x88, 0xea, 0x00, 0x28, + 0xbb, 0x69, 0x56, 0x42, 0x37, 0x11, 0xa3, 0x0f, + 0xd0, 0x43, 0x77, 0xfd, 0x49, 0x4f, 0x46, 0x64, + 0x59, 0x75, 0x13, 0x93, 0x66, 0xcf, 0xa4, 0x5d, + 0xb9, 0xcc, 0xd2, 0x9d, 0xa5, 0x82, 0x98, 0x97, + 0x6a, 0xbc, 0x98, 0xd5, 0x19, 0xb1, 0x8a, 0x62, + 0xc5, 0xef, 0x43, 0x50, 0x1d, 0xb0, 0x0c, 0x69, + 0xd8, 0x9c, 0xfc, 0x7b, 0xc1, 0xf5, 0x9f, 0x44, + 0xeb, 0xd7, 0xa9, 0x82, 0x06, 0x02, 0xfa, 0x52, + 0x14, 0xb7, 0xda, 0xbe, 0x32, 0x98, 0x30, 0xf1, + 0x5b, 0x4f, 0x3d, 0xd6, 0x5b, 0x55, 0x99, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, + 0xd9, 0x9d, 0xd9, 0x9d, 0xd9, 0x9d, 0xd8, 0x5d, + 0x99, 0x75, 0x26, 0x0f, 0x01, 0x24, 0x62, 0x02, + 0x9f, 0xa4, 0xa7, 0xee, 0x60, 0xe8, 0xfa, 0x4e, + 0xe7, 0xcb, 0xd8, 0x2c, 0xcc, 0xf5, 0x27, 0x54, + 0x54, 0xe3, 0xff, 0x00, 0x0f, 0x7b, 0xa0, 0xb7, + 0xbe, 0x13, 0x3c, 0x19, 0x61, 0x6f, 0x80, 0xd3, + 0x44, 0x10, 0x81, 0xdf, 0x41, 0x40, 0x69, 0x4c, + 0xd4, 0xed, 0x85, 0xa1, 0xfc, 0x12, 0xea, 0x7d, + 0x0e, 0x05, 0x38, 0x00, 0xd6, 0x91, 0x5d, 0x55, + 0x62, 0x81, 0x98, 0x03, 0x6a, 0xcc, 0x7b, 0xee, + 0x48, 0x50, 0x73, 0x18, 0x83, 0x7e, 0xa2, 0x15, + 0x1d, 0x9b, 0x89, 0x61, 0x42, 0x80, 0x8c, 0xb8, + 0x4b, 0x42, 0x82, 0xd5, 0xae, 0x80, 0xca, 0xae, + 0x03, 0x9c, 0x7e, 0xbe, 0xe1, 0x4b, 0x1c, 0xa7, + 0xd3, 0x89, 0xab, 0xaa, 0x13, 0xf7, 0x64, 0xa6, + 0x58, 0xa8, 0x9f, 0x79, 0x3e, 0x31, 0x99, 0x54, + 0xd7, 0x86, 0xa0, 0xfa, 0x30, 0x57, 0x40, 0x1d, + 0xc3, 0x21, 0xba, 0x08, 0xa7, 0x23, 0x3c, 0x14, + 0x51, 0x79, 0x38, 0x48, 0x5d, 0xcc, 0x0d, 0x8f, + 0x46, 0x77, 0xd1, 0xf7, 0x9e, 0x21, 0x6a, 0xb5, + 0xd5, 0x29, 0x59, 0x31, 0xc7, 0x66, 0x1d, 0x36, + 0xf4, 0x6c, 0x84, 0xd3, 0xd7, 0x98, 0x8e, 0x10, + 0x11, 0x5c, 0x08, 0x23, 0xb2, 0x06, 0x8a, 0x3e, + 0x74, 0xa6, 0x54, 0x69, 0x58, 0x1a, 0x8f, 0x9c, + 0x3a, 0x88, 0x68, 0x77, 0x62, 0x27, 0xac, 0x5f, + 0x9b, 0xe3, 0x4c, 0x88, 0x8b, 0xb4, 0x62, 0x58, + 0xf3, 0x6b, 0x44, 0x4f, 0x4a, 0x82, 0x49, 0x6c, + 0x33, 0x5f, 0xdb, 0x2a, 0xd2, 0x95, 0xc3, 0xfa, + 0xc7, 0x33, 0xa8, 0x44, 0x96, 0x51, 0x0c, 0x72, + 0x22, 0x01, 0xa0, 0x60, 0x0a, 0x63, 0x35, 0x26, + 0x66, 0xb5, 0xca, 0xd7, 0xf2, 0x78, 0x7b, 0xb6, + 0x16, 0x9a, 0xe4, 0x95, 0xe4, 0x07, 0x95, 0x24, + 0x63, 0x72, 0x88, 0xdf, 0x7a, 0x46, 0x5e, 0x66, + 0xa0, 0xe1, 0x15, 0xfd, 0x04, 0xd5, 0xe9, 0x16, + 0xdd, 0xc8, 0xc1, 0x46, 0x86, 0xaa, 0xf8, 0xbb, + 0x19, 0x8a, 0xd0, 0xc8, 0xa0, 0xf1, 0x08, 0x0a, + 0xf1, 0x5b, 0x4f, 0x3d, 0xd7, 0xfb, 0x47, 0x8d, + 0x4f, 0x73, 0x85, 0x66, 0xff, 0x00, 0x46, 0x96, + 0xc0, 0xf0, 0x0d, 0x90, 0xbd, 0x2c, 0x18, 0x30, + 0x60, 0xcd, 0x79, 0xea, 0xaf, 0x2d, 0x6d, 0x7c, + 0xb1, 0x62, 0x96, 0x16, 0xd1, 0x41, 0x77, 0xeb, + 0xeb, 0x16, 0xab, 0x4d, 0xc7, 0xaf, 0x6e, 0x5f, + 0xa4, 0x34, 0xcf, 0xd8, 0xfa, 0x72, 0x9a, 0xb2, + 0x15, 0xb6, 0xf3, 0x1d, 0xfa, 0xe7, 0x75, 0xbe, + 0xbe, 0xfd, 0x7d, 0x60, 0x2a, 0x80, 0xba, 0xa1, + 0xaf, 0xbb, 0xae, 0x2a, 0x8a, 0x89, 0xa2, 0xba, + 0x7b, 0x3a, 0x66, 0x6b, 0xcf, 0xa5, 0xe5, 0xad, + 0xa7, 0xe8, 0x8b, 0x93, 0x7b, 0x63, 0x16, 0x44, + 0x89, 0xa2, 0xba, 0x73, 0xc3, 0xe9, 0xe0, 0xc1, + 0x83, 0x01, 0xda, 0x81, 0x93, 0xc9, 0x60, 0x64, + 0xb5, 0x48, 0x53, 0x6d, 0xcd, 0x40, 0x8e, 0xdd, + 0x31, 0x11, 0xeb, 0x3f, 0x06, 0x9e, 0xbc, 0xd8, + 0xbc, 0xac, 0xc6, 0x81, 0x12, 0xb7, 0xe8, 0x88, + 0x5f, 0x5c, 0xdd, 0x1b, 0x18, 0x31, 0x4a, 0x08, + 0x5a, 0x2a, 0xbe, 0x38, 0x30, 0x72, 0x50, 0xd2, + 0xdf, 0xfb, 0x21, 0xa8, 0x6d, 0x83, 0x3b, 0x1c, + 0x28, 0x74, 0x4c, 0x34, 0xa3, 0x4e, 0xb4, 0xae, + 0x5a, 0xe5, 0x16, 0x6d, 0x66, 0xaa, 0xd4, 0x6b, + 0x6b, 0xe5, 0x9d, 0xdf, 0xf2, 0x1d, 0x7d, 0x75, + 0x9a, 0xbc, 0xdc, 0xbc, 0xf4, 0xd1, 0x79, 0xea, + 0x8e, 0xd3, 0xf5, 0x10, 0x34, 0xce, 0x78, 0x8b, + 0x4e, 0xb5, 0xce, 0x5e, 0xa5, 0x19, 0xb5, 0xc9, + 0x25, 0x85, 0xd0, 0x57, 0x5a, 0x3c, 0x45, 0x0e, + 0x65, 0x07, 0x3b, 0x3e, 0x97, 0xc9, 0xda, 0x79, + 0x18, 0x30, 0x57, 0x2c, 0xd3, 0xe9, 0xe5, 0x15, + 0xb1, 0x41, 0xd6, 0xf3, 0xd6, 0x97, 0xcf, 0x01, + 0xaa, 0x1a, 0x51, 0x58, 0xc7, 0x91, 0xca, 0x7a, + 0x30, 0x60, 0xc1, 0x65, 0x72, 0xa5, 0xef, 0x5d, + 0xba, 0xc4, 0x6f, 0x85, 0xe8, 0x39, 0xf5, 0x75, + 0xa1, 0x6a, 0x15, 0x55, 0xb5, 0xcb, 0xc4, 0x10, + 0xbf, 0x15, 0xb4, 0xf3, 0xdd, 0x78, 0x9e, 0x2c, + 0xfb, 0x57, 0x53, 0x25, 0x29, 0x3a, 0x52, 0x50, + 0x02, 0x7f, 0xaf, 0x35, 0xdd, 0xdd, 0xdd, 0xdd, + 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x99, 0xff, + 0x00, 0xe9, 0x10, 0x42, 0xfc, 0x56, 0xd3, 0xcf, + 0x75, 0xe0, 0xd6, 0x87, 0x03, 0x8c, 0x58, 0xd2, + 0x6b, 0xb1, 0x64, 0x05, 0x02, 0xba, 0x8e, 0xc9, + 0xf1, 0xd5, 0x6a, 0x3a, 0xaa, 0xbf, 0xd8, 0xc2, + 0x28, 0xa5, 0xd4, 0xee, 0x85, 0xd2, 0x6b, 0x88, + 0x52, 0xdc, 0x5c, 0xd7, 0x3e, 0x31, 0x9c, 0x96, + 0x53, 0x6f, 0xea, 0x99, 0x32, 0x64, 0xc9, 0x93, + 0x26, 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, + 0x4c, 0x99, 0x32, 0x64, 0xc8, 0xe5, 0xdf, 0x87, + 0x61, 0xaa, 0xe7, 0xe1, 0x19, 0x28, 0x7b, 0x20, + 0x79, 0x76, 0x4c, 0x50, 0x80, 0x0a, 0xad, 0x11, + 0xd6, 0xe6, 0x04, 0x65, 0xa2, 0x9b, 0x41, 0x0f, + 0xab, 0xfa, 0xba, 0x95, 0x2a, 0x54, 0xa9, 0x52, + 0xa5, 0x4a, 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, + 0x4a, 0x95, 0x2a, 0x54, 0xc6, 0x28, 0xb1, 0xf8, + 0xb0, 0xd9, 0xd2, 0xaf, 0xac, 0x99, 0x8c, 0xb9, + 0x8b, 0xfd, 0xb4, 0xc1, 0x42, 0x54, 0x6b, 0xdf, + 0x11, 0x58, 0xbf, 0x15, 0xb4, 0xf3, 0xdd, 0x78, + 0x35, 0x68, 0x67, 0x24, 0xf5, 0x2d, 0xfe, 0x81, + 0xfa, 0x4a, 0xae, 0x2d, 0xe6, 0xae, 0x3c, 0x6d, + 0xb9, 0x76, 0xa1, 0xa2, 0x98, 0x95, 0x8d, 0x35, + 0x7d, 0xec, 0x2c, 0x05, 0x7f, 0x57, 0xbf, 0x7e, + 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, + 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xea, + 0x0f, 0x50, 0x92, 0xc7, 0x8d, 0xb3, 0x00, 0xcb, + 0x15, 0xb4, 0x9f, 0xe3, 0xa8, 0x68, 0x20, 0x74, + 0x0d, 0x53, 0xca, 0xe0, 0xd1, 0x94, 0x00, 0x6a, + 0x98, 0x0e, 0xab, 0x82, 0x05, 0xd0, 0xbf, 0x9e, + 0xa8, 0xa0, 0x67, 0x2c, 0x13, 0x96, 0xd7, 0xea, + 0x29, 0x0a, 0x5d, 0xe3, 0x18, 0x5f, 0xad, 0xf2, + 0x43, 0x5d, 0x40, 0x81, 0x31, 0x8d, 0xcd, 0x90, + 0xab, 0x54, 0xcf, 0xa4, 0x3a, 0xda, 0x42, 0xec, + 0xce, 0x3f, 0xe9, 0x1e, 0x20, 0x6c, 0xeb, 0x88, + 0xdb, 0x7a, 0x2a, 0xe8, 0x8c, 0x7f, 0x7a, 0x0d, + 0x88, 0xf2, 0xaa, 0xa3, 0x28, 0x29, 0xc4, 0x65, + 0x4b, 0xd1, 0x30, 0x39, 0x4d, 0x4a, 0x09, 0xe1, + 0x0b, 0x55, 0x68, 0x14, 0x40, 0xa9, 0x68, 0x43, + 0x6c, 0x24, 0x6e, 0x3b, 0x75, 0x66, 0x54, 0xa1, + 0xdb, 0x16, 0x95, 0xdb, 0xa2, 0x1e, 0x86, 0xaa, + 0xcc, 0x1f, 0x3d, 0x49, 0x82, 0xe2, 0xa5, 0x6c, + 0xe2, 0xc0, 0x39, 0x95, 0x18, 0x04, 0x0c, 0x5a, + 0xa0, 0x51, 0x37, 0x59, 0x80, 0x7d, 0xc3, 0xe5, + 0xa1, 0xcf, 0x02, 0xe8, 0xc9, 0x86, 0x04, 0xd6, + 0x84, 0xca, 0x3a, 0xb9, 0xa7, 0x8a, 0x15, 0xda, + 0xf9, 0x28, 0x61, 0x9e, 0xac, 0xb0, 0x04, 0x1a, + 0x75, 0x8c, 0x3c, 0x01, 0xca, 0x88, 0x16, 0xbd, + 0xf1, 0xa3, 0xc8, 0x22, 0xb6, 0x0e, 0x80, 0xea, + 0x3b, 0xd2, 0x18, 0x71, 0xec, 0x96, 0xdc, 0x4a, + 0x9a, 0x25, 0x50, 0x49, 0xe5, 0x73, 0x51, 0xc2, + 0x05, 0xe3, 0x06, 0x4e, 0x65, 0x86, 0xb7, 0x09, + 0x99, 0xba, 0x44, 0xbd, 0xad, 0xcb, 0x57, 0x2d, + 0x0e, 0x65, 0x36, 0x4a, 0x6c, 0x94, 0xd9, 0x29, + 0xb2, 0x53, 0x64, 0xa6, 0xc9, 0x4d, 0x91, 0xf5, + 0x75, 0x92, 0xc3, 0xc5, 0x0d, 0x17, 0xb9, 0xb9, + 0x14, 0x79, 0x16, 0x1a, 0xdf, 0x32, 0x15, 0x7e, + 0x22, 0x40, 0x39, 0xc4, 0xd2, 0x51, 0x4d, 0xa5, + 0x6d, 0x2b, 0x06, 0x13, 0x74, 0x3b, 0xad, 0x93, + 0xd1, 0x76, 0x86, 0xa2, 0x00, 0x4f, 0x0c, 0x33, + 0x6c, 0x41, 0x0a, 0x31, 0xe4, 0x34, 0x2f, 0x42, + 0x90, 0x73, 0x24, 0xc1, 0xe5, 0x1b, 0x4d, 0x61, + 0x1e, 0xb0, 0xcb, 0x59, 0x89, 0x6b, 0x61, 0x75, + 0xca, 0x9b, 0x25, 0x36, 0x4a, 0x6c, 0x94, 0xd9, + 0x29, 0xb2, 0x53, 0x64, 0xa6, 0xc9, 0xae, 0x2c, + 0x0f, 0x2b, 0x5a, 0xf7, 0xab, 0x3d, 0xb8, 0xeb, + 0x97, 0xe2, 0xb6, 0x9e, 0x7b, 0xac, 0x73, 0x56, + 0x5a, 0x56, 0x6a, 0xe8, 0xe7, 0x57, 0x00, 0x5e, + 0xf5, 0xcf, 0x71, 0xdf, 0xf7, 0x3d, 0xc7, 0x7f, + 0xdc, 0x2c, 0x82, 0xea, 0xef, 0x94, 0x96, 0x15, + 0x10, 0x58, 0x80, 0x34, 0xdd, 0x17, 0x39, 0x5c, + 0xc5, 0x88, 0x31, 0x5b, 0x3d, 0x5f, 0xac, 0xc2, + 0x0f, 0xa9, 0x12, 0x90, 0xed, 0x97, 0xbd, 0xc5, + 0x3c, 0xc9, 0x40, 0xce, 0x9e, 0x3d, 0x07, 0xbf, + 0x91, 0x06, 0x8d, 0x5f, 0xb8, 0x64, 0x22, 0x04, + 0x35, 0x65, 0x82, 0x04, 0x1c, 0xc4, 0x43, 0xae, + 0x84, 0x7e, 0xd3, 0xe4, 0x5b, 0x85, 0xb5, 0x63, + 0x3c, 0x61, 0xeb, 0x2a, 0x32, 0x84, 0x78, 0x1c, + 0xad, 0x64, 0xfd, 0x58, 0x0e, 0xe3, 0xd4, 0x24, + 0x24, 0x42, 0x8d, 0x2a, 0x11, 0x34, 0x52, 0xb6, + 0x52, 0x89, 0x3c, 0x7c, 0x32, 0x50, 0xc9, 0xa4, + 0x3a, 0xb0, 0xb0, 0x1d, 0x6c, 0x16, 0x67, 0x44, + 0xd5, 0xc7, 0x59, 0x48, 0x0c, 0xeb, 0x71, 0x36, + 0x71, 0xe2, 0x02, 0xfa, 0x6e, 0x87, 0x87, 0xd8, + 0x60, 0xe0, 0xa5, 0x6e, 0x4c, 0x66, 0xa1, 0x0a, + 0x41, 0x50, 0x5a, 0xd9, 0x41, 0x31, 0x90, 0xc8, + 0x39, 0xb5, 0xd1, 0x56, 0x47, 0xa0, 0xd6, 0x75, + 0xfa, 0x84, 0x16, 0x2d, 0xfb, 0xd6, 0x53, 0xd4, + 0x4d, 0x13, 0x2d, 0xe7, 0x19, 0xd0, 0x64, 0x4f, + 0xa9, 0x65, 0x33, 0xdc, 0x77, 0xfd, 0xcc, 0x80, + 0x93, 0xb6, 0xae, 0xcc, 0xe8, 0xeb, 0x9a, 0x1c, + 0xf8, 0x15, 0x2a, 0x3f, 0x3b, 0x59, 0x42, 0x5e, + 0x64, 0x4a, 0xed, 0xef, 0x37, 0xd2, 0x64, 0x1c, + 0xa3, 0x41, 0xd4, 0x72, 0x42, 0x80, 0xf9, 0x1f, + 0x01, 0x7f, 0xfb, 0x85, 0xfa, 0xc6, 0x3f, 0x96, + 0xda, 0x9f, 0x0e, 0xb0, 0x3f, 0xd3, 0x0c, 0x53, + 0xa2, 0xf6, 0x8c, 0x74, 0x5e, 0x86, 0x9d, 0x04, + 0xc4, 0x72, 0xec, 0x99, 0x2c, 0x86, 0xc3, 0x14, + 0xcd, 0x13, 0x4a, 0x37, 0xd0, 0xd5, 0x17, 0x04, + 0x2c, 0x05, 0x47, 0xad, 0xf8, 0x05, 0x98, 0x1c, + 0x65, 0xa2, 0xea, 0x0f, 0x4e, 0x92, 0xe7, 0xc2, + 0x1f, 0x3f, 0xc4, 0xbd, 0xe3, 0x41, 0xb0, 0xbc, + 0x04, 0x25, 0x96, 0x80, 0xcd, 0x15, 0x5a, 0xc6, + 0xce, 0x60, 0x38, 0xed, 0xa2, 0x2a, 0xfb, 0xa8, + 0x0f, 0x38, 0xd3, 0x40, 0x6b, 0x38, 0xa2, 0xce, + 0xb1, 0x50, 0x9a, 0x36, 0x52, 0x59, 0x54, 0xc5, + 0x09, 0x28, 0x68, 0x40, 0x44, 0x2a, 0xd2, 0x5f, + 0x64, 0xce, 0x47, 0x66, 0x02, 0x6a, 0x18, 0x62, + 0x55, 0xd1, 0xd5, 0x35, 0xf2, 0xce, 0x01, 0x9b, + 0x48, 0xfb, 0xf5, 0x69, 0x37, 0xaa, 0x64, 0x50, + 0xc6, 0x08, 0x10, 0x5f, 0xbe, 0x3d, 0x19, 0xc2, + 0xbd, 0x58, 0x82, 0x65, 0xdd, 0xf5, 0xf6, 0x62, + 0x42, 0x5a, 0xf1, 0x61, 0x0a, 0x39, 0x38, 0xc9, + 0x14, 0xdb, 0x70, 0x91, 0x2b, 0xb7, 0xbc, 0xd7, + 0xf1, 0x81, 0xb4, 0x47, 0xd0, 0x1a, 0x15, 0x81, + 0x4c, 0xf0, 0x00, 0xc0, 0xa2, 0xe0, 0x11, 0x29, + 0xd2, 0x33, 0xdb, 0x9e, 0xdc, 0xf6, 0xe7, 0xb7, + 0x3d, 0xb9, 0xed, 0xcb, 0xed, 0x88, 0xb5, 0xad, + 0xee, 0x23, 0xf8, 0x83, 0x06, 0x03, 0x15, 0x7d, + 0xc4, 0x5d, 0xa5, 0x86, 0x24, 0x29, 0xc8, 0x4c, + 0x46, 0x3a, 0x92, 0x44, 0x9a, 0x7a, 0xf7, 0x04, + 0x0e, 0x81, 0x70, 0x8b, 0x4e, 0x61, 0xc9, 0x0e, + 0x47, 0x33, 0x26, 0x50, 0x71, 0x89, 0x5c, 0xaa, + 0x26, 0x8a, 0x33, 0xa8, 0x92, 0x69, 0xcc, 0x38, + 0x06, 0x35, 0x73, 0x51, 0x4a, 0xc9, 0xe3, 0x8f, + 0x03, 0x20, 0xde, 0x0b, 0x3d, 0xb9, 0xed, 0xcf, + 0x6e, 0x7b, 0x73, 0xdb, 0x9e, 0xdc, 0xf6, 0xe3, + 0x72, 0xeb, 0xa9, 0xa0, 0xd2, 0x17, 0x4b, 0xc0, + 0xde, 0xdb, 0x70, 0x56, 0xa5, 0xfe, 0x2b, 0x69, + 0xe7, 0xba, 0xf0, 0x3b, 0xe7, 0xf4, 0x8c, 0xa9, + 0x5e, 0x2e, 0xf6, 0x9e, 0xd4, 0xf6, 0xa5, 0x81, + 0xa8, 0xe7, 0x58, 0x80, 0x4a, 0x0b, 0xb2, 0xce, + 0xb8, 0x5f, 0x04, 0x9c, 0xc3, 0xb8, 0x01, 0x27, + 0xda, 0xbf, 0x08, 0xba, 0x55, 0xb9, 0xb9, 0x44, + 0x3c, 0x96, 0x00, 0x20, 0x8a, 0x2c, 0xca, 0x52, + 0x48, 0xd3, 0x4b, 0x37, 0xb3, 0x78, 0x56, 0x8a, + 0x14, 0x41, 0x95, 0xc3, 0xc0, 0x47, 0x74, 0x6f, + 0x01, 0xae, 0x2d, 0x12, 0x10, 0xde, 0x20, 0x2d, + 0x60, 0x6a, 0xa2, 0x45, 0x80, 0x52, 0xd5, 0x1a, + 0xf7, 0xd5, 0xb5, 0x85, 0xac, 0x2f, 0x66, 0x09, + 0x56, 0x2b, 0x3c, 0xf6, 0x2a, 0xc8, 0x76, 0xd3, + 0x6a, 0x26, 0x72, 0x2b, 0x3a, 0x7e, 0x93, 0x29, + 0xf3, 0xa4, 0x4b, 0x82, 0x93, 0x6e, 0x02, 0x8e, + 0x05, 0xb1, 0x13, 0xac, 0x12, 0xc7, 0x98, 0xd2, + 0x0a, 0x70, 0x9b, 0xa6, 0x02, 0x86, 0xbd, 0x85, + 0x45, 0x89, 0xcb, 0x26, 0x60, 0xc3, 0x0e, 0x3d, + 0xb9, 0x6b, 0xb5, 0xcc, 0x95, 0x7c, 0xfc, 0x8f, + 0x92, 0xa2, 0x7a, 0x4c, 0x19, 0xac, 0x07, 0xec, + 0x18, 0xed, 0xde, 0x7b, 0x58, 0xbf, 0x68, 0x5d, + 0xca, 0x2e, 0xae, 0x60, 0x39, 0x7d, 0x8a, 0xf4, + 0x24, 0xd4, 0xe9, 0x73, 0xa8, 0x24, 0xa8, 0xdd, + 0xef, 0xb5, 0x30, 0x29, 0xfb, 0x8f, 0x02, 0xbc, + 0x25, 0xd4, 0x51, 0x5a, 0xd5, 0x30, 0x68, 0xb4, + 0x30, 0xbe, 0x11, 0x62, 0x97, 0xc3, 0xce, 0xda, + 0x07, 0xd7, 0x46, 0x8d, 0x1a, 0x34, 0x68, 0x8c, + 0x13, 0x56, 0x80, 0x65, 0x5d, 0x00, 0xd6, 0xbb, + 0x44, 0xc2, 0x5a, 0x82, 0x7b, 0x8d, 0xcf, 0x45, + 0x1a, 0x34, 0x54, 0x6e, 0x9c, 0xe8, 0xe1, 0xf3, + 0x6a, 0x76, 0xc8, 0x8d, 0x4a, 0x01, 0xcf, 0x1b, + 0xe3, 0x9b, 0x90, 0x18, 0x59, 0x5f, 0x5d, 0x1a, + 0x34, 0x68, 0xd1, 0xa3, 0x45, 0x01, 0x78, 0x61, + 0xed, 0x3f, 0x2c, 0xa4, 0xac, 0xb6, 0x30, 0x42, + 0xac, 0xf2, 0xdd, 0x96, 0x24, 0xb1, 0x31, 0x05, + 0x25, 0x83, 0x02, 0xa4, 0xe9, 0xfe, 0x59, 0x7e, + 0x46, 0x0c, 0x18, 0x30, 0x60, 0xc1, 0x83, 0x06, + 0x0c, 0x18, 0x30, 0x2a, 0xfd, 0xc6, 0xf1, 0xb4, + 0xd4, 0x90, 0x84, 0x2e, 0x72, 0xf8, 0xd2, 0x57, + 0x08, 0x55, 0x0d, 0x30, 0x7a, 0xd8, 0x30, 0x60, + 0xc1, 0x83, 0x02, 0x4b, 0x2f, 0x5e, 0x92, 0x0a, + 0x8e, 0x4b, 0xd6, 0x8c, 0x9c, 0xa4, 0x9b, 0x3e, + 0xd9, 0x04, 0x29, 0xd3, 0xb8, 0x9d, 0xf9, 0xfc, + 0x56, 0xd3, 0xcf, 0x75, 0xe0, 0x32, 0x1e, 0x3e, + 0x52, 0xac, 0x69, 0x3c, 0xed, 0x0e, 0x71, 0x54, + 0x35, 0xe8, 0xf6, 0xc1, 0x5a, 0x8c, 0x2a, 0xb3, + 0x2a, 0x45, 0xd8, 0x78, 0x56, 0xe4, 0x61, 0xa5, + 0x9f, 0xf6, 0x6e, 0x29, 0xa7, 0x4a, 0xc5, 0x5b, + 0x54, 0x79, 0x81, 0xb6, 0xc6, 0x65, 0x1c, 0xe2, + 0x96, 0x40, 0xd8, 0xe5, 0x3d, 0xa7, 0x33, 0x3d, + 0xe5, 0xcf, 0xdf, 0xaf, 0xac, 0xe4, 0x61, 0xa5, + 0x9f, 0xf6, 0x73, 0x0e, 0x73, 0x47, 0x21, 0x7a, + 0xd3, 0xa2, 0x66, 0xe4, 0xd5, 0xa8, 0xad, 0xaf, + 0x2a, 0x8a, 0x94, 0xa0, 0xea, 0x35, 0x31, 0x8b, + 0x40, 0x6c, 0xc3, 0x1d, 0xeb, 0x1b, 0x81, 0x44, + 0x96, 0x22, 0x50, 0x32, 0x2c, 0x1a, 0x65, 0x4b, + 0x69, 0xfc, 0x9a, 0x4b, 0x0f, 0x08, 0x8f, 0x70, + 0x74, 0xc4, 0x98, 0x16, 0xd3, 0x1a, 0xee, 0x9c, + 0xfd, 0x62, 0xa8, 0xac, 0x9a, 0x2a, 0xa7, 0xb7, + 0x2c, 0xa9, 0x72, 0xdd, 0x5c, 0x8d, 0x69, 0x6e, + 0xa9, 0x4e, 0x87, 0xaf, 0xd7, 0xc3, 0xf5, 0x98, + 0x65, 0xc0, 0x9c, 0x69, 0x86, 0x7b, 0x18, 0xf1, + 0x69, 0x5a, 0x8a, 0xad, 0x5f, 0xb7, 0xe0, 0x92, + 0x09, 0x91, 0xfc, 0x4b, 0xf6, 0x43, 0x57, 0xb6, + 0x98, 0x17, 0x5b, 0x42, 0x99, 0x06, 0x11, 0x97, + 0x26, 0x28, 0x49, 0xb7, 0x06, 0x62, 0x1e, 0xac, + 0x82, 0xe4, 0x2d, 0xd9, 0x66, 0x40, 0xcb, 0x35, + 0x1d, 0x84, 0xda, 0x4b, 0xd2, 0x16, 0x63, 0xd5, + 0x1c, 0x83, 0x9b, 0x86, 0xe1, 0xc1, 0xdc, 0x00, + 0xe6, 0x66, 0xd6, 0x10, 0xf9, 0x30, 0xf4, 0x18, + 0x94, 0x35, 0xbe, 0x57, 0xf6, 0xc5, 0x13, 0x7a, + 0xad, 0x29, 0x4d, 0x35, 0x46, 0xa2, 0xff, 0x00, + 0x99, 0xcc, 0x63, 0x66, 0xdc, 0x16, 0xa3, 0x40, + 0xb6, 0xa2, 0xf2, 0x12, 0x8c, 0xa5, 0x64, 0xa8, + 0x40, 0x08, 0x21, 0xed, 0x67, 0x58, 0x50, 0x5b, + 0x07, 0x7b, 0x55, 0x26, 0xe5, 0x67, 0xd0, 0x92, + 0x90, 0x62, 0xa6, 0x56, 0x83, 0xe1, 0x4b, 0x65, + 0x6c, 0xeb, 0x56, 0xc2, 0x52, 0x3c, 0x1f, 0x49, + 0x1d, 0x73, 0x33, 0xbf, 0x19, 0x84, 0x18, 0x81, + 0xe7, 0x42, 0x1f, 0x58, 0xd7, 0x68, 0x9e, 0xc9, + 0x0b, 0xe1, 0x7d, 0xc2, 0xe1, 0xdc, 0x72, 0x05, + 0x86, 0x6c, 0xd1, 0xb4, 0x54, 0x31, 0xcc, 0xe4, + 0x18, 0x3c, 0xc6, 0x20, 0x32, 0x94, 0x69, 0x1a, + 0x78, 0x26, 0xb1, 0x29, 0x49, 0x53, 0x0d, 0x0f, + 0x45, 0xa4, 0x50, 0xbd, 0x35, 0x99, 0xf1, 0xa0, + 0x3a, 0x0e, 0x05, 0x81, 0x5d, 0xd9, 0x80, 0x68, + 0xf9, 0xc0, 0x34, 0x7f, 0xa6, 0x63, 0xdc, 0x3d, + 0xed, 0x3b, 0x01, 0xfb, 0x11, 0x11, 0x44, 0x44, + 0x69, 0x1c, 0x22, 0x6a, 0x27, 0x24, 0xe6, 0x71, + 0xf0, 0xbb, 0xb8, 0x08, 0x55, 0x0f, 0x57, 0x27, + 0xf1, 0x5b, 0x4f, 0x3d, 0xd7, 0x86, 0x2d, 0x1e, + 0x0c, 0x4b, 0xc6, 0xbf, 0x13, 0xc2, 0xbf, 0x13, + 0xc2, 0xbf, 0x13, 0xc2, 0xbf, 0x13, 0xc2, 0xbf, + 0x13, 0xc2, 0xbf, 0x12, 0x8b, 0xa9, 0x6d, 0x14, + 0xf3, 0x42, 0xc2, 0xa8, 0x12, 0x01, 0x11, 0xd1, + 0x1c, 0x0d, 0xe2, 0x15, 0x29, 0x27, 0xaa, 0x9c, + 0xa9, 0x92, 0x7a, 0x15, 0xea, 0x60, 0x50, 0x9f, + 0x91, 0x18, 0x85, 0x5f, 0x59, 0x58, 0xd1, 0x81, + 0x1d, 0xad, 0xd3, 0xc8, 0xb8, 0x99, 0x18, 0x44, + 0x4a, 0xd2, 0x99, 0xd6, 0xb3, 0x22, 0xab, 0x08, + 0xba, 0x56, 0x4c, 0xad, 0x04, 0x84, 0xfc, 0x4e, + 0xad, 0xca, 0xd4, 0x91, 0x90, 0x2d, 0x83, 0x5c, + 0xa6, 0xf5, 0x7e, 0x9f, 0xb2, 0x84, 0x5c, 0x05, + 0x71, 0xdb, 0xcb, 0x3d, 0xd2, 0xc2, 0x78, 0x57, + 0xe2, 0x78, 0x57, 0xe2, 0x78, 0x57, 0xe2, 0x78, + 0x57, 0xe2, 0x78, 0x57, 0xe2, 0x78, 0x57, 0xe2, + 0x10, 0x20, 0x0d, 0x10, 0xa3, 0xdb, 0x38, 0xfd, + 0x70, 0x01, 0x80, 0x86, 0x82, 0xa8, 0x99, 0x13, + 0x09, 0x93, 0xd6, 0x95, 0x2a, 0x54, 0xa9, 0x52, + 0x95, 0x69, 0x3f, 0x26, 0xc1, 0x20, 0xa2, 0x49, + 0xce, 0x7d, 0x13, 0x4e, 0x1c, 0x5d, 0x60, 0x82, + 0xd0, 0xdd, 0xae, 0x7d, 0xf3, 0x45, 0x32, 0x06, + 0xf9, 0x42, 0x4a, 0x49, 0x9b, 0x5d, 0x27, 0x0d, + 0x7c, 0x10, 0xc8, 0x4a, 0x22, 0xc9, 0x6d, 0x76, + 0xf1, 0x6c, 0xa4, 0x59, 0x06, 0x29, 0xc4, 0xfb, + 0xae, 0xc9, 0xed, 0x20, 0xba, 0xc8, 0xf6, 0x19, + 0x47, 0x54, 0x51, 0x2b, 0x5c, 0xa8, 0xff, 0x00, + 0x00, 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, 0x06, + 0x5e, 0xf2, 0x3b, 0x62, 0xc0, 0x4b, 0x11, 0x31, + 0x91, 0x1f, 0x54, 0x6a, 0x01, 0x4c, 0x0c, 0x5e, + 0x2a, 0x4d, 0x80, 0x3c, 0xac, 0x6d, 0x51, 0x11, + 0x73, 0x1f, 0x98, 0x91, 0x23, 0xcb, 0xaa, 0xc6, + 0x0d, 0x63, 0x52, 0xca, 0xb3, 0x2e, 0xf9, 0xe7, + 0x22, 0xdb, 0x5c, 0xb7, 0xb2, 0x94, 0xfb, 0x73, + 0xe2, 0xf9, 0xa6, 0xed, 0x47, 0x52, 0x18, 0xce, + 0xba, 0x15, 0x78, 0xc8, 0xd6, 0xcc, 0xab, 0x15, + 0xc3, 0x54, 0xd3, 0x98, 0x64, 0x95, 0x84, 0x01, + 0x51, 0x4c, 0xc5, 0x52, 0x97, 0x31, 0x8e, 0x5f, + 0xd1, 0x3e, 0x59, 0x25, 0xb1, 0x88, 0x5a, 0x40, + 0x31, 0x81, 0x21, 0xb1, 0x63, 0x88, 0xcd, 0xb3, + 0x82, 0xd5, 0xa0, 0xac, 0xf2, 0x31, 0xd0, 0x24, + 0x0e, 0x95, 0xac, 0xf5, 0x30, 0x08, 0xa0, 0xb2, + 0xd2, 0xba, 0x61, 0xa2, 0x74, 0x6d, 0x33, 0x57, + 0xd3, 0x80, 0x51, 0x5e, 0x69, 0xa2, 0x98, 0x37, + 0xcf, 0x21, 0x23, 0xcd, 0x08, 0xda, 0xe9, 0xac, + 0x85, 0x65, 0x7c, 0xd4, 0xcf, 0xd7, 0x9a, 0x0b, + 0xb3, 0x4b, 0x78, 0xf8, 0x5d, 0xde, 0x81, 0x11, + 0xe3, 0x78, 0xad, 0xa7, 0x9e, 0xeb, 0x14, 0x01, + 0xd9, 0xfe, 0x07, 0x24, 0xeb, 0xb3, 0x7d, 0x6b, + 0xdb, 0x5c, 0x23, 0x56, 0x89, 0x13, 0x9e, 0xbc, + 0x33, 0xd3, 0x7e, 0x53, 0x9b, 0x5e, 0x62, 0x00, + 0x20, 0xb9, 0x6a, 0x01, 0x91, 0x16, 0xdf, 0x96, + 0x06, 0x7c, 0x05, 0x8c, 0x7c, 0xd5, 0x6a, 0x04, + 0x48, 0x60, 0x71, 0x7b, 0x54, 0x31, 0x6e, 0xcf, + 0xd2, 0x9f, 0x57, 0xe5, 0xb8, 0x54, 0xd1, 0xac, + 0x21, 0xd0, 0xc0, 0xac, 0xd3, 0x1b, 0x16, 0xa0, + 0x00, 0x0b, 0xed, 0xa2, 0xde, 0xd8, 0x80, 0x8a, + 0xd1, 0x48, 0xd4, 0x21, 0x70, 0xf6, 0x4a, 0xad, + 0x66, 0x0d, 0x11, 0x34, 0x60, 0x23, 0x3f, 0x87, + 0x3f, 0xd1, 0x6f, 0x33, 0x35, 0x4f, 0x1b, 0x70, + 0x14, 0x01, 0xea, 0x36, 0x6c, 0xd9, 0xb3, 0x75, + 0x0a, 0x27, 0xfd, 0x5a, 0x2c, 0x19, 0x6c, 0x55, + 0x18, 0x4c, 0x54, 0xd2, 0x99, 0xe7, 0xc4, 0xf9, + 0xa0, 0x9b, 0x84, 0x69, 0xa5, 0x4a, 0xc7, 0x06, + 0x16, 0xa4, 0x34, 0xc5, 0x33, 0x02, 0xbd, 0x91, + 0xcb, 0x7b, 0xe5, 0x1a, 0x13, 0x44, 0x9d, 0x0d, + 0x5d, 0x78, 0xad, 0x49, 0xf2, 0x4d, 0x14, 0x61, + 0x28, 0x14, 0x9c, 0xe9, 0x61, 0x37, 0x8b, 0x6c, + 0x9d, 0xa7, 0x77, 0xd8, 0xa7, 0x26, 0x04, 0xd5, + 0xba, 0x48, 0x05, 0x68, 0x3a, 0xa3, 0xbe, 0xc6, + 0x6a, 0xea, 0xd0, 0x3d, 0x27, 0xd5, 0xec, 0xfa, + 0xa3, 0xd4, 0x6c, 0xd9, 0xb3, 0x66, 0xcd, 0x83, + 0x1a, 0x95, 0xa6, 0x0c, 0x36, 0xb3, 0x8d, 0xe0, + 0x7f, 0x04, 0x64, 0x51, 0x91, 0x02, 0x20, 0x54, + 0x05, 0xe0, 0x2a, 0xd0, 0x0b, 0x71, 0x19, 0x07, + 0x00, 0x17, 0x02, 0x05, 0x96, 0x87, 0x13, 0x08, + 0xc6, 0xa8, 0xea, 0x5c, 0xdd, 0x29, 0xf1, 0xa8, + 0x24, 0x70, 0x1a, 0x6b, 0xe8, 0x1d, 0x36, 0x21, + 0x90, 0x6d, 0x26, 0x4d, 0xe5, 0x89, 0x35, 0x10, + 0xf8, 0xcd, 0x69, 0x16, 0x3a, 0x50, 0x68, 0xd2, + 0x77, 0xa5, 0x63, 0x93, 0x33, 0x2e, 0x10, 0x41, + 0xb3, 0x71, 0x9f, 0x81, 0x32, 0xdc, 0xeb, 0x02, + 0x1d, 0x26, 0xc6, 0xea, 0x9e, 0x03, 0xf4, 0xa1, + 0xe9, 0xdd, 0xcc, 0x62, 0xe8, 0x4a, 0xee, 0x09, + 0xc9, 0xa7, 0xe3, 0x2b, 0xd9, 0x98, 0x3f, 0xab, + 0x08, 0x9f, 0x85, 0xdd, 0xc0, 0x46, 0x10, 0x75, + 0x71, 0x4f, 0x15, 0xb4, 0xf3, 0xdd, 0x78, 0x11, + 0xd3, 0x8b, 0x48, 0x3c, 0x35, 0xac, 0x84, 0x20, + 0x44, 0x06, 0xa1, 0xeb, 0xb1, 0xe3, 0xc7, 0x8f, + 0x1e, 0x3c, 0xff, 0x00, 0x72, 0x5d, 0xf3, 0xe1, + 0x8d, 0x6b, 0xb5, 0xbc, 0x37, 0x98, 0xd9, 0x9d, + 0x4e, 0x7e, 0xbc, 0xcf, 0x7e, 0x78, 0x12, 0x82, + 0xd8, 0x23, 0xed, 0x34, 0xe8, 0x5c, 0xfa, 0xbb, + 0xce, 0x4b, 0xcf, 0xa5, 0xe5, 0xaf, 0x79, 0xd2, + 0xe4, 0xb6, 0x72, 0x9d, 0xcd, 0xf9, 0x73, 0x3e, + 0x92, 0xa9, 0xbc, 0xea, 0xf5, 0xbc, 0xfd, 0x78, + 0xf1, 0xe3, 0xc7, 0x8f, 0x18, 0xcf, 0xbe, 0xc7, + 0x3f, 0x85, 0x03, 0x07, 0x8a, 0x6f, 0xec, 0x85, + 0xfc, 0x10, 0x24, 0xea, 0x42, 0x32, 0x16, 0xa0, + 0x06, 0x29, 0x79, 0x70, 0xb0, 0x80, 0x82, 0x16, + 0xe9, 0x20, 0xfc, 0xc6, 0x59, 0xd2, 0x7e, 0x65, + 0x96, 0x84, 0xa2, 0x8d, 0x99, 0x12, 0xfb, 0xba, + 0x42, 0x54, 0xc7, 0x82, 0x9b, 0x7d, 0xbd, 0xcb, + 0x38, 0x46, 0x3f, 0x89, 0x8c, 0xe8, 0xd5, 0x99, + 0x65, 0xd5, 0x42, 0x35, 0x33, 0x25, 0x9f, 0xf6, + 0x61, 0x0a, 0x2c, 0x17, 0x12, 0x7d, 0xe9, 0xb6, + 0x78, 0x33, 0xe8, 0xd9, 0x22, 0x40, 0x10, 0x53, + 0x2c, 0xd9, 0xa6, 0xa3, 0x2f, 0xe7, 0xd1, 0xe6, + 0x5c, 0xc6, 0x11, 0xfb, 0x50, 0xbd, 0xad, 0x59, + 0x96, 0x47, 0xd3, 0x05, 0xb8, 0x6b, 0x60, 0xad, + 0x06, 0x08, 0x71, 0x47, 0xa1, 0x7c, 0x12, 0x58, + 0x6d, 0x96, 0xcb, 0x4c, 0x03, 0xa1, 0x25, 0x41, + 0xfb, 0x80, 0xfc, 0x07, 0x89, 0xf6, 0x59, 0x20, + 0x9c, 0xc3, 0x84, 0xe8, 0x06, 0x70, 0x99, 0xb5, + 0xa2, 0xbb, 0x5a, 0xcf, 0xdd, 0x1a, 0xc1, 0x1a, + 0x37, 0x00, 0x12, 0xf0, 0x1e, 0x52, 0x35, 0x94, + 0x32, 0xcd, 0x09, 0x75, 0x08, 0x41, 0x26, 0xa9, + 0x2e, 0x1f, 0x78, 0x25, 0xf2, 0x12, 0xd1, 0x83, + 0xea, 0x13, 0x44, 0xd5, 0x10, 0xf0, 0x3a, 0xaf, + 0x0b, 0xbb, 0xd0, 0x21, 0xa1, 0xcf, 0x15, 0xb4, + 0xf3, 0xdd, 0x63, 0x66, 0x29, 0xf7, 0x3f, 0xd2, + 0xe2, 0x4a, 0xc8, 0x70, 0x86, 0x27, 0x12, 0x53, + 0x02, 0x9c, 0x00, 0xbe, 0xc2, 0xd1, 0x4f, 0x3d, + 0x05, 0x02, 0xa8, 0x90, 0x42, 0x66, 0x16, 0xdc, + 0x58, 0x7c, 0x4e, 0xb2, 0x53, 0x49, 0x19, 0x0f, + 0xcf, 0xcc, 0xe3, 0x78, 0x80, 0x6e, 0xf9, 0xdb, + 0xe9, 0xe5, 0xe7, 0xea, 0xe5, 0x9b, 0x0a, 0x80, + 0x00, 0x65, 0x02, 0xec, 0xe4, 0x1f, 0xe7, 0xe2, + 0x93, 0x44, 0x2f, 0xe9, 0x14, 0x2a, 0x5b, 0xd0, + 0xb9, 0x9f, 0xb8, 0xc0, 0x88, 0xe0, 0x3c, 0x9b, + 0x63, 0x1f, 0x8c, 0x13, 0xaa, 0x09, 0x82, 0xd4, + 0x41, 0x0c, 0x48, 0xe9, 0x0c, 0xb5, 0x10, 0x55, + 0xfd, 0x26, 0xb7, 0xe4, 0x0a, 0x53, 0xb3, 0x78, + 0xa6, 0x81, 0xd2, 0x11, 0xa1, 0x5d, 0x88, 0x0f, + 0xeb, 0xa6, 0x40, 0xaf, 0xaf, 0x90, 0x73, 0xa8, + 0xe5, 0xdd, 0x6d, 0xad, 0x42, 0xdf, 0x08, 0x0c, + 0x02, 0x5a, 0x27, 0x27, 0x20, 0x56, 0x50, 0xb0, + 0x1e, 0x42, 0x08, 0x3c, 0xa7, 0x26, 0xa6, 0x30, + 0xf8, 0x2c, 0x58, 0x0b, 0x7a, 0x28, 0xc3, 0xaa, + 0x2b, 0x86, 0x2a, 0x0e, 0xb1, 0x11, 0x56, 0x08, + 0x92, 0x05, 0x85, 0x34, 0x84, 0x88, 0xe4, 0x1a, + 0xc7, 0x57, 0xf8, 0x6f, 0x5e, 0xcf, 0xdf, 0x4d, + 0x0f, 0x1f, 0xd1, 0x20, 0x5b, 0xb6, 0x56, 0x6b, + 0xe5, 0x57, 0xaf, 0xb0, 0x8d, 0x1a, 0x34, 0x68, + 0xd5, 0x81, 0xc0, 0x46, 0xc4, 0xf4, 0x99, 0xea, + 0xc4, 0xd4, 0xb8, 0x87, 0xc0, 0x41, 0xb3, 0x45, + 0x60, 0x23, 0x0e, 0x51, 0x29, 0xe6, 0x19, 0x64, + 0x6b, 0x68, 0x4e, 0xf9, 0x3b, 0xcd, 0xfb, 0x8b, + 0x4d, 0xdd, 0x46, 0x69, 0xc6, 0x45, 0xb0, 0x4d, + 0x26, 0xbc, 0xea, 0x2b, 0x6e, 0xf0, 0xb4, 0x29, + 0x39, 0x30, 0x12, 0x82, 0x2e, 0xe8, 0xa2, 0xf7, + 0xeb, 0x96, 0xea, 0xde, 0xbf, 0x1a, 0x34, 0x68, + 0xd1, 0xa3, 0x3c, 0x5f, 0x50, 0x28, 0xe9, 0x28, + 0xce, 0xb4, 0x4e, 0x07, 0xf4, 0x2b, 0x43, 0x5f, + 0x68, 0x62, 0xb7, 0x1e, 0x24, 0x92, 0xbd, 0x30, + 0x55, 0xe3, 0x26, 0xd5, 0x15, 0x1a, 0x9f, 0xb8, + 0x22, 0xf5, 0xe0, 0xde, 0xa1, 0xa9, 0x4b, 0x5d, + 0xab, 0x3d, 0x20, 0xe7, 0x0d, 0x4f, 0x7e, 0x88, + 0xa2, 0x49, 0x24, 0x35, 0x3f, 0x70, 0x40, 0xbd, + 0x13, 0xd8, 0xe2, 0x24, 0x95, 0xfa, 0x62, 0x49, + 0x24, 0x92, 0x0c, 0x29, 0x0a, 0xd9, 0x4a, 0x8c, + 0x0b, 0xc3, 0x5d, 0xa5, 0x6a, 0xa5, 0xf5, 0x0f, + 0x82, 0x78, 0x99, 0xe7, 0x8a, 0xda, 0x79, 0xee, + 0xbc, 0x78, 0x39, 0x5a, 0x68, 0xf6, 0x41, 0x1a, + 0xe9, 0x47, 0x42, 0x13, 0x71, 0xe8, 0x72, 0x4b, + 0x28, 0xa0, 0xa4, 0x70, 0x11, 0x2e, 0x3c, 0x5f, + 0xb1, 0xa3, 0xb5, 0x4d, 0x59, 0x8b, 0x2c, 0x56, + 0x99, 0xe6, 0x71, 0x24, 0x80, 0x55, 0xd5, 0x3c, + 0x9a, 0x0d, 0x76, 0x8c, 0xde, 0x03, 0xa2, 0xd3, + 0xe1, 0x7f, 0x5e, 0x42, 0xff, 0x00, 0x5a, 0x19, + 0xe6, 0x08, 0x09, 0xfc, 0xeb, 0x59, 0x08, 0xad, + 0x0e, 0x91, 0xa4, 0x60, 0x5d, 0xe7, 0x64, 0x19, + 0xf2, 0x58, 0x59, 0x09, 0xd4, 0x69, 0xb4, 0x29, + 0x69, 0x5c, 0x12, 0xf2, 0x1a, 0xa2, 0x11, 0x54, + 0x87, 0x85, 0x46, 0x8c, 0xf3, 0x31, 0xe2, 0x8b, + 0x1f, 0x25, 0xd1, 0xa1, 0x93, 0x35, 0xda, 0xa5, + 0xed, 0xce, 0x26, 0x98, 0xb3, 0x66, 0xa6, 0x96, + 0x84, 0xae, 0x01, 0x28, 0x14, 0x2b, 0xee, 0x5f, + 0x50, 0xdd, 0x41, 0x4b, 0xc2, 0xc4, 0x64, 0x52, + 0x82, 0xb9, 0xf6, 0x64, 0xdb, 0xa4, 0x4c, 0x2a, + 0x85, 0x92, 0x1a, 0x70, 0xf6, 0xf5, 0xcd, 0x5d, + 0xea, 0x8b, 0x91, 0x46, 0xe1, 0xc4, 0xe5, 0x90, + 0x8f, 0x16, 0xa7, 0x20, 0xca, 0x53, 0x50, 0x82, + 0xb0, 0x9e, 0x35, 0xb6, 0xc1, 0x11, 0x08, 0xec, + 0x20, 0x06, 0xd3, 0x7c, 0xb8, 0x57, 0x91, 0x45, + 0x6d, 0x2a, 0x7f, 0xaf, 0x5b, 0x91, 0x15, 0x04, + 0x2c, 0x40, 0x0f, 0x4c, 0x0c, 0x70, 0x84, 0xf2, + 0x74, 0x91, 0xec, 0xc1, 0x04, 0xa8, 0x52, 0xb5, + 0x00, 0x51, 0xa0, 0xb8, 0x41, 0x88, 0x62, 0x8d, + 0x4a, 0x8a, 0x58, 0x9a, 0x33, 0x0f, 0xe2, 0xfb, + 0x21, 0x54, 0xd2, 0x3a, 0xa3, 0x49, 0x19, 0x13, + 0xaa, 0x5a, 0x51, 0x4f, 0xc3, 0x6b, 0xa5, 0xa9, + 0x1f, 0xa5, 0x10, 0x68, 0xa1, 0x56, 0x35, 0x22, + 0xf1, 0x66, 0xc9, 0x1a, 0xfe, 0x8a, 0x2b, 0xca, + 0xcc, 0x27, 0x02, 0x6d, 0xe0, 0xb0, 0x89, 0x81, + 0x15, 0x1c, 0x5c, 0x85, 0x0d, 0x56, 0x20, 0x8e, + 0x06, 0xda, 0x0e, 0x32, 0xdc, 0x00, 0x6f, 0x6b, + 0xfc, 0x8e, 0x61, 0xee, 0x32, 0x46, 0x2a, 0x29, + 0x66, 0x65, 0xa2, 0x02, 0xd4, 0xcf, 0x76, 0xc8, + 0x05, 0x3c, 0xb7, 0x3b, 0x71, 0x0c, 0x7a, 0x91, + 0x19, 0x32, 0xac, 0xa2, 0x73, 0x4f, 0x01, 0xf9, + 0x66, 0x9d, 0x64, 0x46, 0xd4, 0x10, 0xf5, 0x5f, + 0x95, 0xa7, 0x8c, 0xb6, 0x10, 0xce, 0x52, 0x0a, + 0x5a, 0xe4, 0x55, 0x92, 0xd8, 0xb9, 0xa1, 0x8f, + 0x41, 0x59, 0x21, 0xd9, 0x5b, 0x37, 0xa2, 0x0a, + 0x31, 0x9a, 0xbb, 0x2d, 0xed, 0x7f, 0xa1, 0x54, + 0x9c, 0x4c, 0x6e, 0x5c, 0xae, 0xb8, 0xfc, 0x83, + 0xf0, 0x9d, 0x39, 0x1e, 0x22, 0x4f, 0xd0, 0x49, + 0xa0, 0x46, 0x01, 0x18, 0x9a, 0x7b, 0x93, 0x21, + 0xa4, 0x46, 0x25, 0x38, 0xac, 0xe5, 0xd3, 0xf0, + 0x1c, 0x0a, 0xa2, 0xe1, 0x3c, 0xc8, 0x8f, 0xb0, + 0xef, 0x4c, 0x44, 0xb4, 0x95, 0x06, 0x02, 0x9f, + 0x34, 0xf8, 0xb2, 0x45, 0x3d, 0x2e, 0x31, 0x3a, + 0x94, 0x4f, 0x1d, 0x96, 0x9e, 0xa4, 0x4e, 0xc7, + 0x69, 0x79, 0xc6, 0x73, 0xdc, 0x5a, 0x12, 0x84, + 0x15, 0x03, 0x55, 0x68, 0xa1, 0x2a, 0x38, 0x54, + 0x3e, 0xa0, 0xcf, 0x1e, 0x78, 0xad, 0xa7, 0x9e, + 0xeb, 0xc6, 0x67, 0x07, 0xa2, 0x07, 0x97, 0x60, + 0x85, 0x00, 0x82, 0x22, 0x59, 0x2f, 0xbb, 0x9f, + 0x23, 0x80, 0xb1, 0x2f, 0x0f, 0xea, 0x35, 0x93, + 0x26, 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, + 0x4c, 0x99, 0x32, 0x64, 0x88, 0x17, 0x26, 0x4a, + 0x33, 0xbd, 0xc0, 0x99, 0x4e, 0x12, 0x3a, 0x28, + 0x50, 0x07, 0xcc, 0x44, 0xa4, 0xae, 0x50, 0x50, + 0xab, 0x7c, 0x7e, 0x9f, 0xef, 0x5f, 0x29, 0x8f, + 0xc7, 0xb6, 0xd5, 0x83, 0xac, 0x1d, 0x60, 0xeb, + 0x07, 0x58, 0x3a, 0xc1, 0xd6, 0x0e, 0xcf, 0x70, + 0xc7, 0x80, 0xc7, 0xaa, 0x62, 0x45, 0x64, 0x63, + 0x1b, 0x44, 0xb4, 0x03, 0x60, 0x47, 0x8e, 0xfc, + 0x2f, 0x9e, 0x60, 0x7c, 0xd6, 0x43, 0xe6, 0x0a, + 0x1a, 0x04, 0x51, 0x82, 0x0e, 0x92, 0x48, 0x17, + 0x74, 0x13, 0x4c, 0x98, 0xd8, 0x51, 0x79, 0xa5, + 0x8e, 0x91, 0x1e, 0x52, 0xdb, 0xcd, 0x41, 0x6d, + 0x73, 0x0a, 0xad, 0xb1, 0x2a, 0xc8, 0xaa, 0xca, + 0xc1, 0xd6, 0x0e, 0xb0, 0x75, 0x83, 0xac, 0x1d, + 0x60, 0xeb, 0x07, 0xcc, 0xe8, 0xd7, 0x0a, 0x15, + 0x31, 0x2f, 0x0c, 0x24, 0xeb, 0xd9, 0xe0, 0xaa, + 0x02, 0x8b, 0x1b, 0x06, 0x66, 0x2e, 0x0f, 0x1e, + 0x3f, 0x3c, 0x77, 0x82, 0x19, 0x9c, 0x00, 0x20, + 0x07, 0x0f, 0x19, 0x7a, 0x29, 0x8c, 0x4b, 0x23, + 0xbd, 0xd4, 0xcf, 0xa5, 0x39, 0x03, 0xb1, 0x66, + 0x39, 0xc9, 0x63, 0x92, 0xaa, 0xa0, 0xb2, 0x9b, + 0xe8, 0xa3, 0xca, 0xe7, 0x09, 0x3a, 0xba, 0xd4, + 0xee, 0xc3, 0x28, 0x40, 0x9e, 0x52, 0xad, 0x33, + 0xe4, 0x24, 0xdc, 0x32, 0xe4, 0xa7, 0x6f, 0x6f, + 0x18, 0x0d, 0x52, 0x75, 0xe1, 0x24, 0x02, 0x48, + 0x35, 0x18, 0x34, 0xcc, 0x71, 0xa2, 0xce, 0x8a, + 0xb0, 0x72, 0x72, 0x64, 0x3e, 0x53, 0x1e, 0x21, + 0x9f, 0x03, 0xd5, 0xf1, 0x40, 0xd2, 0x9a, 0x0d, + 0xa8, 0x50, 0x26, 0xaf, 0x7b, 0x6e, 0x2f, 0x48, + 0xcc, 0x81, 0xd8, 0x76, 0x3a, 0x22, 0x7f, 0xdc, + 0x20, 0x44, 0xf8, 0x48, 0xd6, 0x2c, 0x02, 0x09, + 0x58, 0xb2, 0x13, 0xb4, 0x2b, 0xd6, 0x05, 0x73, + 0x49, 0x1b, 0xac, 0x8a, 0xa7, 0x92, 0x25, 0xa1, + 0x68, 0x81, 0x57, 0x1c, 0x9f, 0x4b, 0x81, 0xbb, + 0x7a, 0x4b, 0xe4, 0xbf, 0x46, 0xa7, 0x8f, 0x1e, + 0x05, 0x78, 0x83, 0xdc, 0x40, 0x37, 0xc4, 0x20, + 0x27, 0x13, 0x85, 0x7c, 0x56, 0xd3, 0xcf, 0x75, + 0xff, 0x00, 0xc4, 0x9d, 0xc3, 0xec, 0x83, 0xc7, + 0xfa, 0x8a, 0x2c, 0xa9, 0x29, 0xf2, 0x92, 0x4e, + 0x8f, 0x40, 0xa0, 0x19, 0x63, 0xc4, 0x2a, 0xa4, + 0x5c, 0xb9, 0x09, 0x61, 0x0e, 0x62, 0xa4, 0x21, + 0xa2, 0x86, 0x2f, 0x0a, 0x6a, 0xdc, 0x1f, 0x02, + 0x13, 0x3a, 0x45, 0x3b, 0xd1, 0xe6, 0xfc, 0x2f, + 0x11, 0xee, 0x52, 0xa8, 0x16, 0xb7, 0xdc, 0x20, + 0x7f, 0x13, 0x5a, 0x39, 0x2b, 0x2a, 0xbc, 0x9e, + 0xf4, 0xe0, 0x5d, 0x5a, 0xb5, 0x78, 0xb2, 0x64, + 0xda, 0x95, 0x66, 0x3f, 0xb9, 0x6d, 0x4e, 0x33, + 0xe5, 0x0b, 0x79, 0x84, 0x2a, 0x55, 0xe5, 0xb4, + 0x52, 0x34, 0x80, 0x43, 0x9a, 0xc6, 0xfc, 0x0b, + 0x01, 0xe8, 0xcc, 0x5d, 0x9e, 0xd7, 0xbf, 0x23, + 0x25, 0xcf, 0x66, 0xd7, 0x65, 0xa5, 0xe3, 0x29, + 0xe1, 0x98, 0xb0, 0x64, 0xa3, 0xa0, 0xcd, 0xbb, + 0xfd, 0xcf, 0xc9, 0xac, 0xcd, 0xa9, 0x3e, 0x77, + 0x10, 0xee, 0x4c, 0xb9, 0x4d, 0xc3, 0x84, 0xf4, + 0xaa, 0xc9, 0x9c, 0xa8, 0x08, 0x93, 0xbf, 0xe8, + 0x43, 0x2e, 0x7c, 0xc2, 0xaf, 0x66, 0x9d, 0x3b, + 0x14, 0x11, 0x38, 0xde, 0xbe, 0x7e, 0x66, 0x65, + 0xdc, 0x06, 0x90, 0x40, 0x11, 0x80, 0x08, 0x8b, + 0x3e, 0x2d, 0xa3, 0x48, 0x2b, 0x29, 0xa1, 0x2b, + 0x44, 0x5f, 0x54, 0xd3, 0xee, 0xe7, 0xca, 0xbb, + 0x7c, 0x05, 0xf3, 0xe6, 0xa5, 0x40, 0xe2, 0xc5, + 0xab, 0x54, 0x0b, 0x03, 0x42, 0x42, 0xb8, 0xd5, + 0x0b, 0x4e, 0x5c, 0x0c, 0xc8, 0xde, 0x93, 0xcb, + 0x0c, 0x1e, 0x36, 0x59, 0x8c, 0x46, 0x22, 0xdc, + 0x5c, 0x71, 0xc6, 0x05, 0xc3, 0x26, 0x4b, 0x04, + 0x19, 0x3e, 0x16, 0x28, 0x36, 0x8a, 0xae, 0x57, + 0x89, 0xc2, 0xbe, 0x2b, 0x69, 0xe7, 0xba, 0xf1, + 0x9c, 0xb1, 0xda, 0x3c, 0xdb, 0x90, 0xfc, 0xca, + 0x85, 0xc0, 0x72, 0x16, 0xc2, 0xcd, 0x07, 0xe6, + 0x12, 0x03, 0xa5, 0x54, 0xcd, 0x17, 0xfd, 0x49, + 0xd3, 0xa7, 0x4e, 0x9d, 0x3a, 0x74, 0xe9, 0xd3, + 0xa7, 0x4e, 0x9d, 0x3a, 0x74, 0xe9, 0xd3, 0xa7, + 0x0c, 0x86, 0xab, 0x59, 0x03, 0xea, 0xa0, 0x3d, + 0xd4, 0x0e, 0x72, 0x82, 0xe6, 0x49, 0x09, 0xa3, + 0x49, 0x4d, 0xbd, 0x46, 0x00, 0xf0, 0xfa, 0x20, + 0x45, 0x2f, 0x3f, 0x35, 0x3c, 0xcb, 0xf3, 0x3c, + 0xcb, 0xf3, 0x3c, 0xcb, 0xf3, 0x3c, 0xcb, 0xf3, + 0x3c, 0xcb, 0xf3, 0x3c, 0xcb, 0xf3, 0x3c, 0xcb, + 0xf3, 0x2b, 0x76, 0xc4, 0x03, 0x07, 0xc1, 0x6e, + 0xae, 0xc9, 0x1d, 0xfd, 0x7c, 0xdd, 0x19, 0x8f, + 0x55, 0xe2, 0x02, 0x05, 0x5b, 0x89, 0x0d, 0x56, + 0xc5, 0x3b, 0xf6, 0x9a, 0x1a, 0xe4, 0x4f, 0x03, + 0x3c, 0x91, 0x26, 0x3d, 0x01, 0x39, 0x94, 0xc0, + 0x26, 0xe9, 0x1c, 0xec, 0x12, 0xfa, 0x72, 0x7d, + 0x05, 0x00, 0x99, 0xb6, 0x74, 0x93, 0xf3, 0x2f, + 0xcc, 0xf3, 0x2f, 0xcc, 0xf3, 0x2f, 0xcc, 0xf3, + 0x2f, 0xcc, 0xf3, 0x2f, 0xcc, 0xf3, 0x2f, 0xcc, + 0xf3, 0x2f, 0xcc, 0x62, 0x10, 0x9a, 0xc3, 0x67, + 0x0c, 0xcb, 0x9d, 0x0b, 0xa0, 0xeb, 0x37, 0x2c, + 0x74, 0xac, 0x1c, 0x2b, 0xcb, 0xc3, 0xea, 0x5d, + 0x37, 0x44, 0x7c, 0x17, 0xb5, 0xd5, 0xb8, 0x2a, + 0x89, 0x5c, 0xc6, 0x4e, 0x38, 0xd0, 0x24, 0x74, + 0xd7, 0xb5, 0xa6, 0xe1, 0x24, 0x93, 0x99, 0xe3, + 0x03, 0x40, 0x01, 0x8e, 0x24, 0x6a, 0x6d, 0x7d, + 0x21, 0x19, 0x4b, 0xc5, 0xc0, 0x0f, 0x4b, 0x79, + 0x2d, 0x63, 0xe0, 0xbb, 0xa7, 0xba, 0xab, 0xc1, + 0xaf, 0x23, 0x15, 0xc6, 0x51, 0x09, 0x05, 0x4d, + 0x74, 0x23, 0x02, 0x5d, 0x19, 0xb8, 0x03, 0x53, + 0x73, 0xfb, 0x80, 0xe6, 0xbd, 0xec, 0x1f, 0xb0, + 0x3b, 0xcb, 0xcf, 0xe8, 0x6e, 0x3b, 0x95, 0x01, + 0x4e, 0x86, 0x00, 0x34, 0x34, 0x6b, 0x04, 0x76, + 0x04, 0x96, 0x26, 0x05, 0x20, 0x4a, 0xb3, 0x63, + 0x84, 0xcf, 0xc8, 0xad, 0xf9, 0x67, 0x39, 0xef, + 0xc8, 0xf4, 0x8d, 0xcc, 0x0f, 0x93, 0xb3, 0x62, + 0x95, 0x45, 0x4f, 0x26, 0xae, 0x5e, 0xd7, 0xed, + 0x40, 0x38, 0xa4, 0xd3, 0x80, 0x8b, 0x92, 0xee, + 0xbb, 0x1d, 0x7d, 0xb7, 0xae, 0x81, 0x06, 0xb9, + 0x6e, 0x58, 0xeb, 0x22, 0xc0, 0x57, 0x8f, 0x50, + 0x41, 0x68, 0x83, 0x9b, 0xa1, 0xb5, 0x09, 0x4b, + 0x14, 0x8c, 0x0b, 0x63, 0xce, 0xa8, 0xef, 0x08, + 0x00, 0xd2, 0xcb, 0x0b, 0x97, 0x16, 0xa3, 0xfc, + 0x56, 0xd3, 0xcf, 0x75, 0xe3, 0x39, 0xe5, 0x78, + 0x8e, 0xb4, 0xae, 0xd9, 0x57, 0x18, 0x05, 0x55, + 0xb8, 0x76, 0xf9, 0x4f, 0x2b, 0x97, 0xb7, 0x30, + 0x99, 0x02, 0x93, 0x52, 0xae, 0xbc, 0xd4, 0xe9, + 0x1e, 0xe1, 0xae, 0xad, 0x9d, 0xd8, 0xc0, 0xb6, + 0xc0, 0x4e, 0x2f, 0x58, 0x93, 0x74, 0x64, 0x33, + 0x00, 0x2e, 0xe2, 0xe4, 0x95, 0xec, 0xb5, 0x11, + 0xb0, 0xa3, 0xa0, 0xa0, 0x80, 0x9b, 0x72, 0xf4, + 0x92, 0x6a, 0x84, 0xe8, 0x6d, 0x87, 0x24, 0x08, + 0x68, 0x52, 0x98, 0x98, 0x59, 0x90, 0xe7, 0x6a, + 0x96, 0x50, 0xbe, 0x3a, 0xb1, 0x8d, 0xcc, 0x04, + 0x8f, 0x7e, 0xcc, 0x9c, 0x61, 0xcb, 0x66, 0x13, + 0x98, 0x1d, 0xa1, 0x65, 0x92, 0xa4, 0x36, 0x6c, + 0x90, 0xcb, 0xd5, 0x26, 0xa1, 0x02, 0x3a, 0x2a, + 0x54, 0xd1, 0x20, 0xb4, 0x23, 0x5a, 0x42, 0x91, + 0xaa, 0x45, 0xa2, 0xd3, 0x3c, 0xa5, 0x7b, 0x1a, + 0xc1, 0x2b, 0x8d, 0xeb, 0x6a, 0xcb, 0x90, 0xd7, + 0x09, 0xd0, 0x62, 0x41, 0x30, 0x71, 0xd9, 0x86, + 0xb4, 0x2a, 0x82, 0xad, 0x00, 0x10, 0xdf, 0x7f, + 0xd4, 0x01, 0x0d, 0x45, 0x83, 0x82, 0x50, 0xa7, + 0x47, 0x10, 0x10, 0xf0, 0x52, 0x2c, 0x8c, 0x23, + 0x3c, 0xae, 0x79, 0x5f, 0x0c, 0x98, 0x9a, 0x80, + 0x31, 0xca, 0xc5, 0x36, 0x5c, 0x4a, 0x2f, 0x0f, + 0xac, 0xc3, 0x36, 0xce, 0x24, 0xd7, 0xaf, 0x36, + 0x21, 0x96, 0x95, 0xbf, 0x61, 0x84, 0x77, 0x01, + 0x48, 0x49, 0x41, 0x4d, 0x68, 0x0d, 0xd8, 0xd1, + 0x51, 0x94, 0x09, 0x95, 0xf9, 0xc2, 0xe5, 0xb9, + 0x70, 0x89, 0x81, 0x3b, 0x63, 0x87, 0x89, 0x80, + 0x7d, 0x3e, 0x36, 0xc9, 0x8e, 0xb8, 0x35, 0x1a, + 0x8d, 0x64, 0xf1, 0xcf, 0xf4, 0xd5, 0xa5, 0xee, + 0xc1, 0x55, 0xd9, 0x10, 0x35, 0x20, 0x4e, 0x91, + 0xda, 0xfa, 0x01, 0x70, 0x55, 0xe2, 0x0a, 0x6c, + 0x11, 0x73, 0x4a, 0x41, 0x0e, 0xaa, 0xf9, 0x09, + 0x6a, 0x63, 0xc5, 0x76, 0x19, 0x07, 0x16, 0x90, + 0x5e, 0x83, 0x10, 0x78, 0x93, 0xa2, 0x41, 0xd2, + 0x9a, 0x45, 0xa3, 0xb1, 0x66, 0x3c, 0x4a, 0x14, + 0x1d, 0x61, 0x52, 0x19, 0x20, 0x20, 0x49, 0x1a, + 0xa2, 0xd7, 0xc0, 0x4d, 0x84, 0x50, 0x50, 0x0a, + 0x3e, 0x9f, 0x58, 0x4f, 0x53, 0x38, 0x84, 0x13, + 0x6d, 0x09, 0x6c, 0xda, 0x59, 0x64, 0x05, 0x82, + 0xd9, 0xde, 0x9e, 0xe2, 0x79, 0x78, 0x2e, 0x48, + 0x22, 0x8c, 0xe9, 0x50, 0xf6, 0xcd, 0x4b, 0x61, + 0x36, 0x1a, 0xb9, 0x63, 0xf8, 0x29, 0x3b, 0x92, + 0x56, 0x43, 0x45, 0x1a, 0x0a, 0xf3, 0x7f, 0x3e, + 0x0a, 0xd1, 0xe8, 0xec, 0x18, 0x01, 0x6c, 0x91, + 0x42, 0x7c, 0x3a, 0x30, 0x95, 0xae, 0x44, 0x3a, + 0x18, 0x0a, 0xa6, 0x0e, 0x32, 0xa7, 0x22, 0x03, + 0x93, 0x54, 0xba, 0xf9, 0xa1, 0x75, 0x59, 0x7d, + 0x7d, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x52, 0xc1, + 0x55, 0x26, 0x64, 0xc0, 0x61, 0xcb, 0x8b, 0x19, + 0x7d, 0x1d, 0x7a, 0xf5, 0x18, 0x20, 0x00, 0x35, + 0x19, 0x11, 0x2c, 0x23, 0xa2, 0x45, 0x8a, 0x21, + 0x55, 0x55, 0x5c, 0xaa, 0xb7, 0x55, 0xca, 0xb9, + 0x5f, 0x5f, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0x9c, + 0xfc, 0xb8, 0x44, 0xa4, 0x5c, 0xb4, 0xd2, 0x44, + 0x04, 0xaf, 0xe4, 0x09, 0x3f, 0xc9, 0x88, 0x15, + 0x15, 0x56, 0xdc, 0xf1, 0xaa, 0x3f, 0xc5, 0x6d, + 0x3c, 0xf7, 0x58, 0xc2, 0x1c, 0xc6, 0x5c, 0x36, + 0xda, 0x8b, 0x3a, 0x8e, 0xf1, 0x17, 0xff, 0x00, + 0x52, 0x90, 0xd6, 0x42, 0x89, 0x76, 0xa9, 0xa5, + 0x00, 0xbd, 0x22, 0xcc, 0x09, 0x41, 0xd1, 0xd7, + 0x00, 0xd3, 0x2c, 0x42, 0xb0, 0xba, 0xe4, 0x77, + 0x3c, 0x1b, 0x09, 0x83, 0xbb, 0xa5, 0x9b, 0xf8, + 0x5d, 0x69, 0xf8, 0xc0, 0xcc, 0x0a, 0xef, 0xa6, + 0x42, 0x00, 0x0c, 0x99, 0x13, 0xc3, 0x69, 0x9a, + 0xe1, 0x8f, 0x43, 0xdc, 0xc9, 0x61, 0x89, 0xa2, + 0x37, 0x47, 0x09, 0x63, 0x49, 0x27, 0x33, 0xfb, + 0xe5, 0x0b, 0x4f, 0x12, 0x1c, 0x50, 0x72, 0x4d, + 0x48, 0x51, 0x9c, 0x4c, 0x49, 0x26, 0x8e, 0x3e, + 0x21, 0x49, 0xa0, 0x42, 0x62, 0x2e, 0x81, 0x2a, + 0xd8, 0x94, 0xd8, 0x10, 0x7b, 0xc2, 0x9d, 0x44, + 0x27, 0xd1, 0xd0, 0x7b, 0x8e, 0xf7, 0x47, 0x54, + 0xee, 0xa5, 0x94, 0x38, 0xdb, 0x17, 0xa2, 0xf4, + 0x12, 0x9a, 0x50, 0x20, 0xa0, 0x5d, 0xb3, 0x33, + 0xb3, 0x30, 0x2f, 0x8f, 0x6e, 0xea, 0x2a, 0x20, + 0x0a, 0x71, 0x4c, 0x62, 0x05, 0x21, 0x48, 0x75, + 0x1d, 0xe1, 0x88, 0x9d, 0xef, 0x89, 0x5e, 0x9f, + 0xb2, 0x0b, 0xa3, 0x52, 0xa5, 0x56, 0xe4, 0x05, + 0x39, 0x05, 0xc1, 0x20, 0x6a, 0x60, 0x20, 0x76, + 0x16, 0x05, 0x1c, 0x8c, 0x0d, 0x48, 0x2e, 0x4a, + 0x50, 0xc1, 0xb2, 0xc6, 0x64, 0x02, 0xfd, 0xb8, + 0xcd, 0xf4, 0xf9, 0x89, 0xee, 0xb2, 0xbb, 0x1b, + 0x48, 0x7f, 0x70, 0x05, 0xcb, 0x54, 0x85, 0xe6, + 0x78, 0x74, 0x9f, 0x3c, 0x67, 0xd5, 0x44, 0x62, + 0x1c, 0xb2, 0xbd, 0x4a, 0xd8, 0x72, 0xd7, 0xe1, + 0x75, 0xa4, 0x0d, 0x9e, 0xc2, 0xf8, 0x2a, 0x96, + 0x0e, 0x6a, 0xb8, 0xf0, 0x29, 0x47, 0x60, 0xe3, + 0x86, 0xd4, 0xa0, 0x68, 0x2a, 0x32, 0xdd, 0xb8, + 0x42, 0x03, 0x5e, 0x9e, 0xd7, 0x3b, 0x5e, 0xa4, + 0xd3, 0x05, 0xc2, 0xb7, 0x24, 0xd2, 0x3a, 0x88, + 0x8f, 0x00, 0x13, 0x4e, 0x07, 0x13, 0x71, 0x3c, + 0xee, 0x6f, 0x10, 0x96, 0x9b, 0x70, 0x53, 0x81, + 0xc3, 0x91, 0x19, 0x9e, 0x02, 0x77, 0xac, 0xda, + 0x15, 0x3b, 0x7a, 0x0a, 0x8d, 0x12, 0xea, 0xaf, + 0xc9, 0xa5, 0x51, 0x1a, 0xd4, 0x39, 0x02, 0xcb, + 0xfe, 0x47, 0x92, 0x43, 0x2e, 0xa1, 0xdc, 0x5f, + 0xee, 0x4e, 0x70, 0x98, 0xb1, 0x87, 0xf8, 0xad, + 0xa7, 0x9e, 0xeb, 0xc5, 0x38, 0xf5, 0x5f, 0x56, + 0xed, 0x31, 0x7a, 0x3f, 0x68, 0xe8, 0x90, 0x01, + 0x08, 0x10, 0x0d, 0x20, 0xb6, 0x07, 0x08, 0xe4, + 0x75, 0x96, 0x6b, 0xdb, 0x47, 0x80, 0x7e, 0x65, + 0xc7, 0x76, 0x10, 0x0f, 0xc7, 0xd4, 0x30, 0x84, + 0x88, 0x8d, 0x5a, 0x19, 0x25, 0x96, 0x49, 0x32, + 0x35, 0x01, 0x5d, 0x1c, 0x02, 0x4e, 0x83, 0x0c, + 0xb1, 0x10, 0x82, 0xfc, 0x89, 0x80, 0x00, 0xd4, + 0xf4, 0x05, 0x36, 0xe0, 0xb6, 0x8d, 0x1c, 0xc9, + 0xf7, 0x02, 0x8f, 0x66, 0x69, 0x96, 0xb7, 0x2c, + 0xec, 0x67, 0x36, 0xf9, 0x55, 0xae, 0xfc, 0x13, + 0x9a, 0x20, 0x31, 0xa8, 0xbe, 0x8d, 0xb7, 0x34, + 0x56, 0x8e, 0x24, 0xb5, 0x31, 0x9c, 0x4e, 0xb1, + 0x55, 0x6c, 0xcd, 0x95, 0xf2, 0x9e, 0xa1, 0xc1, + 0x3b, 0x92, 0xad, 0x4d, 0x58, 0x25, 0x17, 0x06, + 0x73, 0xfd, 0x32, 0xb6, 0x9f, 0x67, 0xcf, 0x78, + 0xc0, 0x7d, 0xae, 0x20, 0x42, 0x1f, 0xc6, 0xf4, + 0xbf, 0x41, 0x5f, 0x9e, 0x14, 0xaa, 0x9e, 0x24, + 0x44, 0xb1, 0x4a, 0xa6, 0x06, 0xff, 0x00, 0x7d, + 0x64, 0x5c, 0x61, 0x52, 0x05, 0x0c, 0x08, 0x40, + 0xc3, 0x03, 0x00, 0x0e, 0x1b, 0xfa, 0x78, 0xe8, + 0xb9, 0xf1, 0xb9, 0xf8, 0xd7, 0x06, 0x8a, 0x97, + 0xb2, 0x7e, 0xe2, 0x27, 0x9f, 0x99, 0x01, 0xfe, + 0x17, 0xd9, 0x18, 0x80, 0xc6, 0x14, 0xd7, 0x9c, + 0xc0, 0x3a, 0x86, 0x1d, 0xbf, 0x5c, 0x17, 0xe5, + 0x8d, 0xb8, 0x35, 0x24, 0xea, 0x32, 0xca, 0x4c, + 0x8d, 0xc5, 0x40, 0x51, 0x24, 0x94, 0xc4, 0xa5, + 0xbf, 0x1b, 0x8b, 0xd0, 0xa0, 0x49, 0x24, 0x01, + 0x10, 0x02, 0x30, 0xc9, 0x48, 0x36, 0x01, 0xa1, + 0x0b, 0x69, 0x02, 0x46, 0xd1, 0x22, 0x88, 0x53, + 0x55, 0xe6, 0x70, 0x53, 0x78, 0x61, 0x71, 0xd1, + 0x00, 0x06, 0xb4, 0xeb, 0x03, 0x9f, 0x5a, 0x33, + 0xef, 0x1a, 0x13, 0x0f, 0x84, 0x35, 0x72, 0xda, + 0xe9, 0xfe, 0x2f, 0xab, 0x93, 0xb4, 0xab, 0xe0, + 0xe3, 0x68, 0x3a, 0xa8, 0x65, 0x0f, 0x38, 0x82, + 0x43, 0x7a, 0x79, 0x88, 0xff, 0x00, 0x47, 0x0a, + 0x61, 0x61, 0xa5, 0x84, 0x51, 0xee, 0x2c, 0xec, + 0x08, 0xc4, 0x95, 0x4d, 0x65, 0x02, 0xe5, 0x03, + 0x8f, 0xfa, 0x7c, 0xd7, 0x78, 0xad, 0xa7, 0x9e, + 0xeb, 0xe8, 0x4e, 0x3e, 0x45, 0x3d, 0xb1, 0x11, + 0x10, 0xeb, 0x04, 0xcd, 0xca, 0x97, 0xd1, 0x3a, + 0x74, 0xeb, 0xf0, 0x32, 0xe8, 0x6b, 0xbc, 0x88, + 0xa7, 0x7a, 0x7b, 0x32, 0xb4, 0xaa, 0x8d, 0x22, + 0xca, 0x67, 0x3a, 0xaf, 0x48, 0xf6, 0xe6, 0xa1, + 0xb9, 0x2a, 0x20, 0xa9, 0x72, 0xc8, 0x4a, 0x7e, + 0xcc, 0x8b, 0x62, 0xe7, 0xd6, 0x8f, 0x9c, 0x6a, + 0x4c, 0x36, 0x30, 0xca, 0x2c, 0x15, 0x03, 0x6a, + 0x17, 0x42, 0x07, 0x28, 0xeb, 0x21, 0x95, 0xbe, + 0x88, 0x18, 0xa3, 0x7d, 0x2b, 0x02, 0x85, 0x60, + 0x39, 0x94, 0xe2, 0x92, 0x41, 0x30, 0xb6, 0x20, + 0x6a, 0xd6, 0x6e, 0x77, 0x3d, 0x62, 0xf3, 0x85, + 0x40, 0x4c, 0x20, 0x16, 0x4e, 0x41, 0xd9, 0x95, + 0x83, 0x22, 0xed, 0xc7, 0x34, 0xea, 0xb2, 0xad, + 0x90, 0x3d, 0xa3, 0x21, 0xc1, 0xe8, 0x44, 0x69, + 0x86, 0xb1, 0xe0, 0xb1, 0xbf, 0xc9, 0xc6, 0x49, + 0x21, 0xdf, 0x72, 0xa8, 0x0e, 0x39, 0x9a, 0x38, + 0xce, 0x9d, 0x3b, 0x64, 0x1e, 0x48, 0x28, 0xee, + 0x25, 0x84, 0xe4, 0x99, 0x39, 0x4f, 0xa9, 0x4f, + 0x7b, 0xb9, 0x21, 0x4e, 0x06, 0x1f, 0xe0, 0xfb, + 0x20, 0x15, 0xee, 0x5e, 0xac, 0xbc, 0xe3, 0x78, + 0xc5, 0xe0, 0x8a, 0x85, 0x60, 0x00, 0xd0, 0x1a, + 0xda, 0xe7, 0x10, 0x73, 0x22, 0x21, 0xaf, 0xf7, + 0x19, 0x3d, 0x4f, 0x6e, 0x1c, 0xea, 0x27, 0x1a, + 0xbd, 0x80, 0xca, 0xee, 0x78, 0x3a, 0x4c, 0x80, + 0x96, 0xf6, 0x28, 0x5f, 0x36, 0x5b, 0x6d, 0x6a, + 0xac, 0x43, 0xca, 0xf5, 0x30, 0x51, 0xa8, 0xa3, + 0xee, 0xe8, 0x11, 0x06, 0xc0, 0xe7, 0xe4, 0xae, + 0xd6, 0x34, 0x12, 0x37, 0x95, 0x6c, 0xe2, 0x8a, + 0x59, 0x6b, 0x98, 0x64, 0x2f, 0x12, 0x94, 0x21, + 0x5a, 0xb2, 0x40, 0x1a, 0x89, 0xfc, 0x2e, 0x6f, + 0x99, 0x4e, 0x15, 0x2c, 0x1c, 0x6d, 0x73, 0xad, + 0xa2, 0x76, 0x48, 0x30, 0xf7, 0x0d, 0x2c, 0x8b, + 0x41, 0xc1, 0x2b, 0x49, 0x9c, 0x09, 0xe3, 0x37, + 0x93, 0xf3, 0x43, 0xc1, 0xae, 0xbf, 0xf3, 0x85, + 0x58, 0x36, 0x82, 0x3b, 0x41, 0x69, 0x74, 0xaf, + 0x65, 0xe0, 0x91, 0x48, 0x5e, 0x78, 0x83, 0x28, + 0x20, 0x65, 0x20, 0x40, 0xac, 0xcd, 0xa8, 0xb4, + 0xd5, 0xd0, 0x27, 0x06, 0xad, 0x1b, 0xfe, 0xd8, + 0x7c, 0x03, 0x37, 0xcf, 0xe8, 0xf9, 0xae, 0xf1, + 0x5b, 0x4f, 0x3d, 0xd6, 0x3a, 0x93, 0xae, 0x0e, + 0x08, 0xf0, 0xbb, 0x3d, 0x02, 0x4b, 0x62, 0x8d, + 0x59, 0xf2, 0x24, 0xd1, 0x4b, 0x82, 0x2c, 0x39, + 0x48, 0x1b, 0xda, 0x43, 0x00, 0xe2, 0xbf, 0x0c, + 0xe6, 0x70, 0xca, 0x07, 0x3a, 0x10, 0x01, 0x5a, + 0x37, 0xe1, 0xa3, 0xc4, 0x16, 0x70, 0xe6, 0x01, + 0x95, 0x5a, 0x94, 0xa3, 0x44, 0x71, 0x23, 0xb6, + 0xa6, 0xe4, 0x49, 0x9f, 0x3c, 0xe3, 0x37, 0x71, + 0xa0, 0xb7, 0xfa, 0xeb, 0xac, 0x71, 0x67, 0x09, + 0x5f, 0x92, 0xb5, 0x18, 0xfb, 0x5d, 0x08, 0x26, + 0x7c, 0x89, 0x07, 0x9a, 0xa6, 0x28, 0x04, 0xd6, + 0x8f, 0x5d, 0xbc, 0x82, 0x35, 0xaf, 0x22, 0x54, + 0x0b, 0xbc, 0xb8, 0xf2, 0x1b, 0xc2, 0x0c, 0x26, + 0xa6, 0x57, 0xfe, 0xf8, 0x2c, 0xb0, 0x31, 0xa1, + 0x83, 0xb1, 0x23, 0xd3, 0x3e, 0x20, 0xc3, 0x47, + 0xc9, 0x40, 0xfa, 0x82, 0x07, 0x05, 0xb7, 0xf5, + 0xeb, 0xa1, 0x76, 0x76, 0x4e, 0xd1, 0x7a, 0xa7, + 0x4d, 0x10, 0x30, 0x70, 0x6f, 0xe8, 0x20, 0xf4, + 0xa4, 0x48, 0x91, 0x22, 0x4c, 0x6f, 0x8d, 0xa3, + 0x2b, 0x6a, 0x1b, 0xb4, 0x6d, 0x82, 0x55, 0x0c, + 0xa0, 0x0a, 0x28, 0x2b, 0x44, 0x8f, 0xd4, 0xa1, + 0x68, 0x7a, 0x27, 0xd3, 0x92, 0x26, 0x80, 0x15, + 0xad, 0x1b, 0x0c, 0x9a, 0x60, 0x04, 0xfa, 0x16, + 0x8a, 0xc1, 0x6d, 0x5c, 0x97, 0x39, 0xc4, 0x28, + 0x02, 0x10, 0xc9, 0x4e, 0xe8, 0x55, 0x04, 0x85, + 0xd2, 0x38, 0x7a, 0xee, 0x82, 0x29, 0x19, 0x82, + 0x6d, 0x17, 0x39, 0x4f, 0xb0, 0xd1, 0xf1, 0xc8, + 0x18, 0x25, 0x45, 0x05, 0x8a, 0xb1, 0x20, 0x88, + 0xc2, 0xa1, 0x18, 0xaa, 0xca, 0x71, 0xea, 0x48, + 0x91, 0x22, 0x44, 0x89, 0x15, 0xe8, 0x2e, 0x79, + 0x67, 0x32, 0xcb, 0x85, 0x54, 0xb8, 0x07, 0xe7, + 0x25, 0x33, 0x94, 0xcc, 0x43, 0x4f, 0x00, 0x81, + 0xb5, 0x48, 0x45, 0xad, 0x5a, 0xf3, 0xab, 0xba, + 0x24, 0x37, 0x29, 0xda, 0xe3, 0x4c, 0xfe, 0x12, + 0x5c, 0xcb, 0x88, 0x9c, 0xeb, 0x55, 0x21, 0x62, + 0x90, 0x11, 0xd1, 0xa2, 0xee, 0xb9, 0xc4, 0x07, + 0x16, 0x30, 0x48, 0x9a, 0xe5, 0xc8, 0x8c, 0x29, + 0x34, 0x88, 0xa6, 0xbb, 0xa7, 0x22, 0x26, 0x96, + 0x52, 0xd1, 0x7e, 0x33, 0x98, 0xc4, 0xce, 0xce, + 0xe8, 0xdd, 0xb6, 0xb9, 0xfc, 0xd8, 0x40, 0xd5, + 0xcb, 0x3c, 0x56, 0xd3, 0xcf, 0x75, 0xe3, 0x2d, + 0xe2, 0xb7, 0xd2, 0xf0, 0xb7, 0x98, 0xa1, 0x18, + 0xcb, 0xe8, 0xa6, 0x2f, 0xf8, 0xa5, 0x8b, 0x16, + 0x2c, 0x58, 0xb1, 0x62, 0xc5, 0x8c, 0x7c, 0x87, + 0x21, 0xd2, 0xac, 0x1a, 0x33, 0x54, 0xe0, 0x58, + 0xb1, 0x1a, 0xed, 0x20, 0x63, 0x35, 0x03, 0x0a, + 0x28, 0xd6, 0x47, 0xb6, 0x63, 0xa2, 0xd1, 0x4a, + 0x08, 0x5a, 0xae, 0x00, 0xdb, 0xd6, 0x58, 0xb1, + 0x62, 0xc5, 0x8b, 0x72, 0x90, 0x1b, 0x17, 0xe8, + 0x75, 0xfa, 0xa1, 0x9d, 0xa4, 0x03, 0x60, 0x99, + 0xa1, 0x2c, 0xba, 0xe6, 0xbd, 0x34, 0xee, 0x1b, + 0xa0, 0xc0, 0x8c, 0xb7, 0x57, 0x32, 0x16, 0xff, + 0x00, 0x34, 0x8c, 0xa4, 0xfc, 0x1c, 0x30, 0x68, + 0x66, 0x43, 0xd1, 0x0f, 0x01, 0x34, 0x98, 0x8d, + 0xd0, 0x18, 0x68, 0xb6, 0xe5, 0xd7, 0xb8, 0x6c, + 0x62, 0x16, 0x98, 0x0e, 0xa8, 0x41, 0xec, 0x90, + 0x41, 0x2b, 0x55, 0x39, 0x34, 0x02, 0xd7, 0x9b, + 0x55, 0xe8, 0x8c, 0x57, 0x95, 0x53, 0x10, 0x3a, + 0x43, 0x77, 0x74, 0x01, 0x68, 0x95, 0x9a, 0x47, + 0xda, 0x8f, 0x0c, 0xa8, 0x0f, 0xb6, 0xe4, 0x1e, + 0x2a, 0x94, 0x7e, 0x0d, 0x08, 0xf0, 0x55, 0x50, + 0xa3, 0xb2, 0x37, 0xcc, 0x17, 0x5a, 0xfc, 0xad, + 0x22, 0x03, 0x4d, 0x22, 0xf5, 0x04, 0x47, 0x0a, + 0x49, 0x20, 0x70, 0x9c, 0x23, 0xc7, 0x59, 0x4f, + 0x23, 0x15, 0x88, 0x16, 0x9f, 0x5e, 0x91, 0x0b, + 0x0e, 0xd8, 0x98, 0xc3, 0xd1, 0x1b, 0x78, 0xc5, + 0xc7, 0x05, 0x67, 0xbf, 0x5e, 0x3d, 0x75, 0x05, + 0x5c, 0x65, 0xd4, 0x4d, 0x66, 0x28, 0x74, 0x14, + 0x0c, 0x0b, 0x6c, 0x30, 0x22, 0xc6, 0xc1, 0xc1, + 0x57, 0xa8, 0x1a, 0x2f, 0x09, 0xc1, 0x53, 0x16, + 0x7c, 0x2f, 0x59, 0x5e, 0x18, 0xce, 0xba, 0x84, + 0x0b, 0xc7, 0xd0, 0xa8, 0xeb, 0xed, 0x5d, 0x3c, + 0xa4, 0x7f, 0x43, 0x3c, 0x92, 0x66, 0x1a, 0x7f, + 0x53, 0x4a, 0x38, 0xb4, 0xc0, 0xb9, 0x81, 0xa6, + 0x8a, 0x72, 0x8c, 0xb8, 0x07, 0x9f, 0xf0, 0xf9, + 0x6c, 0x53, 0x28, 0xd5, 0x04, 0xf4, 0x15, 0xf0, + 0x5a, 0xd7, 0x80, 0x11, 0x7d, 0xab, 0x74, 0xf8, + 0xf1, 0x80, 0x3b, 0x02, 0xd4, 0x32, 0xa8, 0x2f, + 0xda, 0xea, 0x94, 0x4a, 0x71, 0x2d, 0x51, 0xe1, + 0xbc, 0x00, 0x9f, 0xaa, 0xb5, 0x00, 0xfb, 0xf1, + 0x46, 0x41, 0x85, 0x42, 0x65, 0xed, 0x9e, 0x75, + 0xc1, 0x7e, 0xb4, 0xa0, 0xd6, 0x68, 0x95, 0xfc, + 0x0e, 0x2e, 0x72, 0xf5, 0x63, 0xee, 0x1a, 0x04, + 0xcd, 0xe9, 0x8d, 0xc9, 0xdd, 0x86, 0x8e, 0x36, + 0x8b, 0x2d, 0x48, 0xea, 0xa5, 0xf5, 0x5a, 0xbb, + 0x61, 0x1b, 0x85, 0x49, 0x5b, 0x7a, 0x25, 0x47, + 0x87, 0xa2, 0xf4, 0x72, 0x29, 0x25, 0x1c, 0x0d, + 0x47, 0xf8, 0xa5, 0xd6, 0x16, 0x33, 0x80, 0x0a, + 0x8d, 0x5f, 0x47, 0x14, 0xbc, 0x1e, 0x2b, 0x69, + 0xe7, 0xba, 0xc4, 0x91, 0xb6, 0xf0, 0xbc, 0xef, + 0x85, 0xd9, 0xfd, 0xb0, 0x7d, 0xa4, 0x0e, 0xe1, + 0x49, 0xa2, 0x51, 0x42, 0x51, 0xe4, 0xd5, 0x2d, + 0x75, 0x74, 0x64, 0x62, 0x73, 0xbc, 0x11, 0xce, + 0xa1, 0x3f, 0x8b, 0xc0, 0x66, 0x1a, 0x35, 0xe5, + 0xaa, 0xf3, 0xd3, 0x36, 0x1e, 0x72, 0xb5, 0x5a, + 0x32, 0x38, 0xa7, 0x0c, 0x8e, 0x90, 0xb6, 0x12, + 0x85, 0x25, 0xbd, 0xb8, 0x21, 0xb1, 0xa4, 0x63, + 0x0c, 0xe3, 0xae, 0xfa, 0xec, 0xc4, 0x97, 0x80, + 0x65, 0x60, 0x9e, 0xd0, 0x14, 0x44, 0xc6, 0x5a, + 0x31, 0x3e, 0xb3, 0x06, 0xe7, 0xca, 0xf7, 0xea, + 0x65, 0x3f, 0x3f, 0xe7, 0xf5, 0x10, 0x95, 0xc3, + 0x3e, 0x52, 0x40, 0xcd, 0xe1, 0x9c, 0x96, 0x10, + 0xc6, 0x9e, 0x45, 0xa2, 0x1a, 0x4b, 0xe0, 0xd2, + 0x14, 0xb5, 0x46, 0xc1, 0x2d, 0x7c, 0xe0, 0xa4, + 0x40, 0xa8, 0xd0, 0x9b, 0xfe, 0xa4, 0x3d, 0x0a, + 0x56, 0x62, 0xcb, 0xd3, 0xca, 0x82, 0xab, 0x74, + 0x7d, 0x55, 0xb7, 0x4a, 0x67, 0x05, 0x7b, 0xf8, + 0x12, 0xad, 0x7b, 0x77, 0x6f, 0x48, 0x28, 0xa6, + 0xaa, 0x55, 0xf7, 0x5c, 0xf0, 0x55, 0x91, 0x2a, + 0x94, 0x43, 0x6c, 0x25, 0x07, 0x16, 0x25, 0xea, + 0x3a, 0x4a, 0x77, 0x82, 0x54, 0x80, 0x6f, 0x37, + 0x92, 0x38, 0x05, 0xd5, 0xda, 0x0c, 0x59, 0xd7, + 0x46, 0xb0, 0x6f, 0x70, 0x75, 0x73, 0xb0, 0xd5, + 0x07, 0x22, 0xe2, 0x57, 0xa7, 0xdc, 0xac, 0x4f, + 0x5f, 0x8c, 0x12, 0x42, 0x18, 0x19, 0xed, 0x9c, + 0x80, 0xfb, 0xd8, 0xaa, 0x84, 0xd3, 0x07, 0xc6, + 0x0b, 0x49, 0xbd, 0xbc, 0xb1, 0xab, 0x77, 0x76, + 0xc0, 0xc0, 0x16, 0x34, 0x68, 0xaa, 0x6b, 0xfa, + 0xcb, 0xa8, 0x9f, 0x7b, 0xd0, 0x43, 0x80, 0xa1, + 0x14, 0x40, 0x45, 0xa2, 0x9b, 0xf0, 0x70, 0x42, + 0xd9, 0x5b, 0xb5, 0x3a, 0x73, 0x9e, 0x31, 0x82, + 0x90, 0x06, 0x24, 0x7d, 0x68, 0x02, 0x00, 0x59, + 0x99, 0x42, 0x40, 0x02, 0x07, 0x39, 0x83, 0x27, + 0xa6, 0x4e, 0x80, 0xda, 0x3c, 0xd2, 0x3c, 0x02, + 0xee, 0xce, 0x41, 0x74, 0xe5, 0x01, 0xa9, 0x21, + 0xae, 0x04, 0xd2, 0xbb, 0x21, 0xbe, 0x55, 0xa2, + 0xdf, 0xf4, 0x41, 0x9d, 0x39, 0xc5, 0x4e, 0x72, + 0x59, 0x73, 0xd9, 0x4a, 0x42, 0x12, 0xc6, 0xcc, + 0xaa, 0x15, 0xbc, 0x20, 0x46, 0x0e, 0x06, 0x10, + 0xa7, 0x73, 0x4f, 0x15, 0xb4, 0xf3, 0xdd, 0x7d, + 0x06, 0xe9, 0x9d, 0xf0, 0xbb, 0x3d, 0x35, 0x83, + 0xaa, 0xa8, 0xd7, 0xe9, 0x2c, 0xa4, 0x60, 0xc8, + 0x44, 0x7e, 0x2a, 0xd1, 0xe5, 0xc3, 0x3b, 0x6e, + 0x95, 0xd1, 0xb0, 0x67, 0x73, 0xf7, 0xaa, 0xde, + 0x28, 0xec, 0x80, 0x46, 0xcd, 0x59, 0x2c, 0xd0, + 0x61, 0xc0, 0xa1, 0x86, 0xbf, 0x24, 0x2a, 0xc9, + 0xce, 0x31, 0xd5, 0x13, 0x68, 0x8a, 0xda, 0xd1, + 0x47, 0xbb, 0x74, 0x44, 0x41, 0x12, 0xd1, 0x0a, + 0x7d, 0x9b, 0xa6, 0x76, 0x5a, 0x50, 0x17, 0xb5, + 0xe8, 0x87, 0xa5, 0x8c, 0x71, 0x3a, 0x34, 0xa7, + 0xd9, 0xbc, 0xc2, 0xec, 0x6f, 0x3c, 0x4e, 0x01, + 0x1b, 0x50, 0x08, 0xb4, 0x8a, 0xaa, 0xe5, 0x98, + 0x08, 0x14, 0x95, 0x6b, 0x48, 0xd6, 0x18, 0x22, + 0x82, 0x26, 0xa0, 0x8a, 0x66, 0xb3, 0xf5, 0x13, + 0xdc, 0xf5, 0x83, 0x54, 0xce, 0x82, 0x30, 0x10, + 0x6d, 0x82, 0xee, 0xb7, 0xd0, 0x9d, 0x1f, 0x42, + 0xd0, 0xc8, 0xd9, 0x50, 0x84, 0x17, 0x31, 0x37, + 0x28, 0xc8, 0x92, 0x74, 0x48, 0xdb, 0xe9, 0xa9, + 0x4a, 0x64, 0x71, 0x46, 0x35, 0x01, 0x5e, 0xec, + 0xe3, 0xeb, 0x03, 0xf1, 0x64, 0x37, 0xb5, 0x48, + 0x1c, 0xf5, 0xb0, 0x2b, 0x9b, 0x06, 0xc7, 0xa0, + 0xc2, 0xf0, 0xcb, 0xca, 0xce, 0xf9, 0x3c, 0x50, + 0x06, 0x33, 0xdd, 0x7d, 0x05, 0xa0, 0x1e, 0x6a, + 0xc8, 0x85, 0xd7, 0x5d, 0xad, 0x1d, 0x39, 0x20, + 0xad, 0x17, 0xeb, 0xb0, 0xc4, 0xc1, 0x38, 0x72, + 0x8a, 0xcf, 0x60, 0x1b, 0x8a, 0x7d, 0x35, 0x97, + 0xc0, 0x21, 0xfc, 0xea, 0x94, 0xbe, 0x44, 0x0b, + 0xa0, 0x03, 0xb2, 0x4d, 0x4c, 0x91, 0x26, 0xa4, + 0xb4, 0xb7, 0xbf, 0x5b, 0x72, 0xfc, 0x59, 0x82, + 0xd1, 0x8b, 0x56, 0xe3, 0x69, 0xac, 0xfb, 0xfb, + 0x0f, 0xd3, 0x85, 0x40, 0xaf, 0x7a, 0x33, 0x53, + 0x65, 0xaa, 0xf5, 0xab, 0xd3, 0xfb, 0x72, 0xba, + 0x78, 0xad, 0xa7, 0x9e, 0xeb, 0xc5, 0x9c, 0xb2, + 0x49, 0x68, 0xda, 0x5a, 0xa6, 0x9c, 0x2b, 0x39, + 0xe1, 0x65, 0xd8, 0xe6, 0xac, 0x16, 0x0c, 0xc7, + 0xa6, 0x75, 0x28, 0x2d, 0xd7, 0xd2, 0x2b, 0x55, + 0xb1, 0x22, 0x71, 0xd6, 0x11, 0x11, 0xa6, 0xff, + 0x00, 0xde, 0x9d, 0xc6, 0x53, 0x55, 0x49, 0xa3, + 0x28, 0x5b, 0x4f, 0x8d, 0x96, 0x31, 0xa3, 0xf4, + 0x3a, 0xda, 0x2d, 0xbb, 0xff, 0x00, 0x18, 0x00, + 0xbf, 0xa6, 0x83, 0x02, 0x1e, 0xc2, 0xc1, 0x25, + 0x4d, 0x50, 0x92, 0x76, 0x43, 0xd0, 0x02, 0xeb, + 0x55, 0x67, 0x74, 0x58, 0xda, 0x2f, 0x0b, 0x0d, + 0x54, 0xc0, 0x4f, 0x75, 0xcc, 0xc8, 0x1b, 0xdf, + 0x70, 0x0f, 0x0c, 0x51, 0xd4, 0xab, 0xe1, 0x53, + 0x96, 0xeb, 0x6f, 0xaa, 0xff, 0x00, 0x94, 0x9d, + 0x73, 0xf6, 0xa8, 0x98, 0x0c, 0x78, 0x08, 0xd4, + 0x2d, 0x0d, 0xe8, 0x4a, 0xd0, 0x9d, 0xde, 0x4f, + 0x72, 0x63, 0x19, 0x44, 0xa4, 0xb3, 0xf0, 0x1e, + 0x29, 0x5e, 0x9c, 0x54, 0x0b, 0x38, 0x17, 0xaa, + 0x8e, 0x7a, 0xf0, 0x04, 0xa9, 0xf0, 0x0a, 0x84, + 0x44, 0x11, 0x30, 0x89, 0x91, 0x1e, 0x48, 0xc4, + 0xc7, 0x53, 0x26, 0xf2, 0x08, 0x5e, 0x8c, 0x28, + 0x61, 0x67, 0x88, 0x32, 0x6d, 0x08, 0xa9, 0x9e, + 0x02, 0x28, 0x4a, 0x8d, 0x94, 0x3f, 0xce, 0x82, + 0x80, 0xea, 0xa9, 0x94, 0xa5, 0x0e, 0x10, 0xc3, + 0x9a, 0x9f, 0x05, 0xc0, 0x2a, 0x9c, 0xca, 0xa6, + 0x2f, 0xd1, 0xa7, 0x8d, 0x86, 0x26, 0x1e, 0x3d, + 0x89, 0x8e, 0x7a, 0x88, 0x13, 0x70, 0x31, 0x38, + 0xe6, 0x0a, 0x77, 0xa5, 0x51, 0x84, 0x38, 0x51, + 0xf9, 0xb0, 0xd4, 0x8b, 0x5a, 0x66, 0xa8, 0x76, + 0xc8, 0x75, 0x89, 0xb5, 0x93, 0x22, 0x10, 0xc4, + 0x6d, 0x8a, 0xcc, 0x6a, 0x97, 0x38, 0xc2, 0x21, + 0x68, 0x9a, 0xb5, 0x46, 0xd1, 0x44, 0xba, 0xf0, + 0x54, 0xd2, 0x19, 0x06, 0x8b, 0xab, 0x8a, 0x26, + 0xaa, 0x18, 0xc8, 0xc1, 0xa2, 0x14, 0x39, 0x1e, + 0xf9, 0xcd, 0x56, 0x4a, 0xf5, 0x01, 0x5c, 0xb9, + 0x63, 0x95, 0x49, 0x9b, 0x1b, 0x99, 0x07, 0xdb, + 0x35, 0xf6, 0xe2, 0x89, 0x25, 0x11, 0xaa, 0xa4, + 0x51, 0xc8, 0x00, 0x56, 0x67, 0x68, 0x72, 0xe2, + 0x70, 0x17, 0xa2, 0x86, 0x38, 0x2f, 0xf6, 0x98, + 0x54, 0xf1, 0x5b, 0x4f, 0x3d, 0xd7, 0x83, 0x35, + 0xdd, 0x73, 0xa8, 0xff, 0x00, 0xc4, 0xfd, 0x38, + 0x52, 0x97, 0x2c, 0x3b, 0x67, 0xc5, 0x53, 0x52, + 0x11, 0xcf, 0xd8, 0x10, 0x06, 0x5b, 0x60, 0x00, + 0xd4, 0x59, 0x5e, 0x7f, 0xa4, 0x6c, 0xd9, 0xbd, + 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, + 0xf7, 0xef, 0x36, 0x6c, 0xe3, 0x96, 0x71, 0xb5, + 0x96, 0x59, 0x42, 0x0d, 0x02, 0xcb, 0x73, 0x2d, + 0x2d, 0x12, 0x4d, 0x01, 0x42, 0x75, 0xdc, 0x43, + 0x8e, 0xf7, 0x8a, 0x3b, 0x08, 0x54, 0x60, 0xd5, + 0x82, 0xfa, 0xc1, 0xc6, 0xa9, 0xdc, 0x16, 0xcf, + 0xd9, 0x0d, 0x3d, 0x42, 0xb2, 0x54, 0xa4, 0x61, + 0xb0, 0x93, 0xc8, 0x9b, 0x27, 0x6f, 0x46, 0xae, + 0x31, 0x75, 0x07, 0x14, 0xba, 0x34, 0xda, 0x79, + 0x35, 0x4f, 0x06, 0xf7, 0xba, 0x70, 0x01, 0x35, + 0x37, 0x84, 0x63, 0x83, 0xf9, 0x26, 0xe4, 0xc9, + 0x93, 0x6e, 0xdc, 0x99, 0x32, 0x6d, 0xdb, 0xa7, + 0x9d, 0x58, 0x44, 0x55, 0x88, 0x44, 0x2d, 0xe3, + 0x8d, 0x6e, 0xde, 0x9a, 0xb0, 0x68, 0x74, 0xc7, + 0x90, 0x36, 0xde, 0x05, 0xbc, 0x98, 0x48, 0x81, + 0x60, 0x72, 0x81, 0x1e, 0xda, 0x94, 0xe6, 0x7f, + 0xe0, 0x49, 0xfa, 0x98, 0xa0, 0x54, 0x55, 0x55, + 0x5b, 0xfe, 0xca, 0x4e, 0x73, 0x40, 0xc1, 0xad, + 0x5d, 0xe4, 0x2c, 0x28, 0xd5, 0x56, 0x5c, 0xa9, + 0xe2, 0xb6, 0x82, 0xfc, 0xed, 0x61, 0xe4, 0x6e, + 0x91, 0x0d, 0x4e, 0x24, 0xf2, 0x6a, 0x9e, 0x53, + 0x48, 0xdd, 0x4b, 0x6e, 0x05, 0xf2, 0x92, 0x60, + 0xb8, 0x83, 0xab, 0x6a, 0x53, 0x4e, 0x95, 0xc9, + 0xa3, 0xc1, 0x09, 0x92, 0x55, 0x32, 0x2d, 0x5a, + 0x8e, 0xae, 0x46, 0xb3, 0x46, 0xc7, 0xf4, 0xa5, + 0x4a, 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, 0x4a, + 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, 0x0c, 0xa6, + 0x61, 0x14, 0x26, 0xc8, 0xd1, 0x88, 0x19, 0xcb, + 0x28, 0x2d, 0x0b, 0x50, 0xda, 0xb9, 0x5c, 0xbe, + 0x9b, 0x5a, 0x4e, 0x63, 0xc5, 0x59, 0xb0, 0x95, + 0x49, 0x62, 0x9a, 0x32, 0x8d, 0x03, 0xfa, 0x22, + 0x54, 0xa9, 0x52, 0xa5, 0x4a, 0x95, 0x2a, 0x54, + 0xa9, 0x52, 0xa5, 0x4a, 0x95, 0x2b, 0x44, 0xb3, + 0xce, 0x32, 0xe0, 0x78, 0x55, 0x31, 0x85, 0x6b, + 0x5f, 0xed, 0x33, 0x23, 0xe8, 0xf5, 0xe9, 0x61, + 0xd3, 0xa5, 0xae, 0x81, 0x71, 0x08, 0x5a, 0x15, + 0x00, 0x52, 0xb1, 0xae, 0xbf, 0x73, 0x34, 0x14, + 0x43, 0xd4, 0x0a, 0xf5, 0xb1, 0x34, 0x10, 0xb1, + 0x56, 0x0b, 0xb4, 0x9e, 0x2b, 0x69, 0xd2, 0x72, + 0x47, 0x3c, 0xb5, 0x51, 0xe4, 0x82, 0xd9, 0x46, + 0x52, 0xa6, 0xd9, 0xf1, 0xb8, 0xf8, 0xdc, 0x7c, + 0x5a, 0x3e, 0x2d, 0x1f, 0x16, 0x8f, 0x8b, 0x47, + 0xc5, 0xa3, 0xe2, 0xd1, 0xf1, 0x68, 0xf8, 0xb4, + 0x7c, 0x5a, 0x3e, 0x2d, 0x1f, 0x16, 0x8f, 0x8b, + 0x47, 0xc5, 0xa3, 0xe2, 0xd1, 0xf1, 0x68, 0xf8, + 0xb4, 0x7c, 0x5a, 0x3e, 0x2d, 0x1f, 0x16, 0x8f, + 0x8b, 0x47, 0xc5, 0xa3, 0xe2, 0xd1, 0xf1, 0x68, + 0xf8, 0xb4, 0x7c, 0x5a, 0x3e, 0x2d, 0x1f, 0x16, + 0x8f, 0x8b, 0x47, 0xc5, 0xa3, 0xe2, 0xd1, 0xf1, + 0x68, 0xf8, 0xb4, 0x7c, 0x5a, 0x3e, 0x2d, 0x1f, + 0x16, 0x8f, 0x8b, 0x47, 0xc5, 0xa3, 0xe2, 0xd1, + 0xf1, 0x68, 0xf8, 0xb4, 0x7c, 0x5a, 0x3e, 0x2d, + 0x1f, 0x16, 0x8f, 0x8b, 0x47, 0xc5, 0xa3, 0xe2, + 0xd1, 0xf1, 0x68, 0xf8, 0xb4, 0x7c, 0x5a, 0x3e, + 0x2d, 0x1f, 0x16, 0x8f, 0x8b, 0x47, 0xc5, 0xa3, + 0xe2, 0xd1, 0xf1, 0x68, 0xf8, 0xb4, 0x7c, 0x5a, + 0x3e, 0x2d, 0x1f, 0x16, 0x8f, 0x8b, 0x47, 0xc5, + 0xa3, 0xe2, 0xd1, 0xf1, 0x68, 0xf8, 0xb4, 0x7c, + 0x5a, 0x3e, 0x2d, 0x1f, 0x16, 0x8f, 0x8b, 0x47, + 0xc5, 0xa3, 0xe3, 0x71, 0xf1, 0xb8, 0x64, 0x31, + 0xd8, 0xfb, 0x87, 0x82, 0xe6, 0x87, 0xae, 0x67, + 0x41, 0x41, 0xc3, 0xa5, 0x3a, 0x33, 0xa3, 0x3a, + 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, + 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, + 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, + 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, + 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, + 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, + 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, + 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, + 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, + 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, + 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, + 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, + 0x33, 0xa3, 0x3a, 0x33, 0xa3, 0x3a, 0x33, 0xa3, + 0x3a, 0x32, 0xae, 0x5c, 0x3f, 0xff, 0xda, 0x00, + 0x0c, 0x03, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x10, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x01, + 0x04, 0x92, 0x49, 0x24, 0x82, 0x49, 0x24, 0x92, + 0x49, 0x00, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x10, 0x01, 0x24, 0x90, + 0x00, 0x20, 0x90, 0x40, 0x00, 0x10, 0x48, 0x04, + 0x12, 0x00, 0x00, 0x00, 0x00, 0x04, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x20, 0x92, 0x48, 0x04, 0x92, + 0x41, 0x20, 0x80, 0x09, 0x00, 0x00, 0x40, 0x24, + 0x10, 0x00, 0x20, 0x80, 0x09, 0x04, 0x80, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x90, 0x48, 0x24, 0x92, + 0x01, 0x00, 0x02, 0x09, 0x04, 0x02, 0x40, 0x00, + 0x92, 0x40, 0x24, 0x82, 0x08, 0x24, 0x00, 0x48, + 0x00, 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x01, 0x20, 0x90, 0x40, 0x00, 0x00, 0x01, 0x00, + 0x12, 0x41, 0x20, 0x80, 0x01, 0x8c, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x3a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x01, + 0x00, 0x13, 0xc7, 0x93, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x05, 0x1c, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xdb, 0x8b, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xc6, 0x12, 0x00, 0x08, 0xca, 0x55, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x02, 0x49, 0x24, + 0xaa, 0xf5, 0x7e, 0x92, 0x49, 0x2e, 0xc2, 0x4c, + 0x92, 0x60, 0x59, 0x1d, 0x2d, 0x3d, 0x21, 0x24, + 0x00, 0x10, 0x7d, 0x74, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x39, 0x24, 0x92, 0x4a, 0x97, 0x9b, + 0xc9, 0x24, 0x8f, 0xa9, 0x20, 0x15, 0x44, 0xbb, + 0xe3, 0x01, 0x6c, 0x96, 0x48, 0x20, 0x23, 0xa1, + 0x00, 0xe6, 0xb7, 0x60, 0x00, 0x00, 0x3c, 0xb4, + 0x00, 0x00, 0xdf, 0x3d, 0xa8, 0x00, 0x00, 0x18, + 0xc0, 0x38, 0x92, 0xfd, 0xf4, 0xba, 0x5a, 0xd0, + 0x6c, 0x90, 0x01, 0x40, 0x72, 0x4e, 0xae, 0xf1, + 0x10, 0x00, 0x00, 0x39, 0x04, 0x92, 0x49, 0x04, + 0x12, 0x41, 0x24, 0x92, 0x00, 0x24, 0x80, 0x49, + 0x00, 0x00, 0x08, 0x04, 0x92, 0x00, 0x20, 0x10, + 0x82, 0x52, 0xfb, 0x11, 0x20, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x12, 0x08, 0x24, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x24, 0x90, 0x09, 0x24, 0x12, + 0x40, 0x00, 0x12, 0x40, 0x21, 0x12, 0x0e, 0x3a, + 0xf8, 0x88, 0x00, 0x00, 0x00, 0x04, 0x80, 0x00, + 0x20, 0x10, 0x40, 0x04, 0x00, 0x01, 0x03, 0x02, + 0x00, 0x20, 0x10, 0x41, 0x20, 0x92, 0x09, 0x24, + 0x80, 0x4a, 0x05, 0xf0, 0x6f, 0x10, 0x24, 0x80, + 0x00, 0x02, 0x09, 0x00, 0x02, 0x48, 0x20, 0x82, + 0x48, 0x00, 0x00, 0x06, 0x1b, 0x00, 0x41, 0x24, + 0x82, 0x00, 0x24, 0x90, 0x01, 0x00, 0x94, 0x27, + 0xb9, 0xf0, 0x75, 0xc1, 0x00, 0x00, 0x00, 0x10, + 0x49, 0x20, 0x82, 0x41, 0x00, 0x02, 0x49, 0x20, + 0x1e, 0x40, 0x00, 0x12, 0x40, 0x04, 0x80, 0x01, + 0x20, 0x92, 0x08, 0x28, 0x04, 0x48, 0x00, 0x02, + 0x00, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x01, 0x04, + 0x12, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, + 0x00, 0x00, 0x02, 0x40, 0x00, 0x82, 0x00, 0x00, + 0x02, 0x40, 0x00, 0x00, 0x09, 0x20, 0x80, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x08, 0x04, 0x00, 0x01, 0x00, + 0x00, 0x09, 0x04, 0x02, 0x00, 0x00, 0x92, 0x49, + 0x24, 0x92, 0x08, 0x24, 0x92, 0x49, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x90, 0x40, 0x20, 0x02, 0x41, 0x00, 0x92, 0x49, + 0x24, 0x12, 0x49, 0x00, 0x00, 0x00, 0x24, 0x92, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x82, 0x00, + 0x24, 0x10, 0x40, 0x00, 0x10, 0x48, 0x24, 0x90, + 0x00, 0x00, 0x12, 0x49, 0x04, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x41, 0x24, 0x80, 0x49, 0x24, 0x92, + 0x49, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04, + 0x12, 0x48, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x24, 0x92, 0x41, 0x00, 0x10, 0x01, + 0x24, 0x92, 0x05, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x80, 0x49, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x6d, + 0xb6, 0xdb, 0x6d, 0xb6, 0xdb, 0x6d, 0xb4, 0x5c, + 0x92, 0x7e, 0x0e, 0x22, 0x59, 0x5d, 0xc2, 0x48, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x3f, 0x59, 0x02, 0xd2, 0x3c, + 0x0e, 0xf2, 0xe4, 0xac, 0xa5, 0xbc, 0x9d, 0xb4, + 0x7a, 0x2f, 0x7f, 0x56, 0xda, 0x04, 0x12, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x90, + 0x6d, 0x59, 0xd4, 0xa3, 0xfe, 0x1a, 0x3a, 0x87, + 0x6c, 0x19, 0x27, 0xe2, 0xe8, 0x19, 0xc6, 0x0a, + 0x24, 0xd0, 0x48, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x49, 0x24, 0xd3, 0x14, 0xfe, + 0x79, 0xb4, 0xf9, 0x69, 0xee, 0x84, 0xef, 0xf6, + 0xdf, 0x6f, 0xf7, 0xdb, 0xff, 0x00, 0xf6, 0x44, + 0x90, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x20, 0x00, 0x08, 0x00, 0x80, + 0x48, 0x00, 0x00, 0x40, 0x00, 0x00, 0x08, 0x20, + 0x82, 0x48, 0x00, 0x82, 0x09, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x40, 0x00, 0x12, 0x09, 0x04, 0x90, 0x00, 0x04, + 0x02, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x02, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x82, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x42, 0x7f, 0xff, 0x00, 0xf5, 0xf9, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xfe, 0x08, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x92, 0x49, 0x2c, 0x21, 0xd3, + 0x24, 0x92, 0x48, 0x30, 0x00, 0x04, 0x02, 0x00, + 0x04, 0x80, 0x00, 0x00, 0x12, 0x01, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x2c, + 0x92, 0x49, 0x1a, 0xa1, 0x85, 0x24, 0x92, 0x42, + 0x00, 0x00, 0x08, 0x24, 0x80, 0x48, 0x00, 0x00, + 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7f, 0x6d, 0xa4, 0xd2, + 0x6d, 0x26, 0x9b, 0x6d, 0xac, 0x40, 0x04, 0x80, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x82, 0x08, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x24, 0x00, 0x49, 0x00, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x09, 0x24, + 0x90, 0x01, 0x20, 0x90, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x24, 0x80, 0x08, 0x00, 0x02, 0x41, 0x00, + 0x02, 0x49, 0x04, 0x92, 0x00, 0x20, 0x00, 0x01, + 0x20, 0x10, 0x09, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf2, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xa0, 0x80, 0x42, 0x3f, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0x87, 0x42, 0xa4, 0x47, 0xa5, + 0xe2, 0x98, 0x62, 0x74, 0xb8, 0x49, 0x24, 0x92, + 0x1c, 0x60, 0x12, 0x49, 0x25, 0xc1, 0x04, 0x95, + 0x2c, 0x8c, 0xca, 0x86, 0x6e, 0x9e, 0xaf, 0x15, + 0x14, 0x9c, 0x15, 0x7f, 0x70, 0xfe, 0x8c, 0x13, + 0xca, 0xfe, 0xdb, 0x6d, 0x19, 0xa9, 0xad, 0xb6, + 0xdb, 0x69, 0x12, 0x09, 0x34, 0x94, 0x78, 0xf9, + 0x40, 0xc6, 0xec, 0x7a, 0x44, 0x11, 0x6d, 0xb6, + 0xdb, 0x7f, 0xf8, 0xdb, 0x6d, 0xb4, 0x23, 0x6d, + 0xb6, 0xdb, 0x6d, 0xe4, 0xdb, 0x6d, 0xba, 0x24, + 0x00, 0x03, 0xa5, 0x06, 0xca, 0x58, 0x64, 0x42, + 0x62, 0xd0, 0x40, 0x00, 0x00, 0x49, 0x24, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x49, 0x04, + 0x00, 0x41, 0x00, 0x92, 0x48, 0x04, 0x82, 0x49, + 0x24, 0x10, 0x08, 0x20, 0x92, 0x49, 0x20, 0x90, + 0x00, 0x00, 0x10, 0x41, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x82, 0x01, 0x04, 0x00, 0x01, + 0x24, 0x10, 0x01, 0x00, 0x00, 0x41, 0x00, 0x02, + 0x40, 0x00, 0x00, 0x41, 0x00, 0x00, 0x01, 0x20, + 0x82, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x08, + 0x24, 0x92, 0x48, 0x00, 0x02, 0x49, 0x20, 0x82, + 0x49, 0x24, 0x82, 0x08, 0x04, 0x02, 0x49, 0x24, + 0x02, 0x00, 0x00, 0x12, 0x09, 0x20, 0x90, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x82, 0x40, 0x24, 0x00, + 0x00, 0x04, 0x82, 0x41, 0x04, 0x12, 0x41, 0x24, + 0x10, 0x49, 0x00, 0x02, 0x00, 0x04, 0x92, 0x49, + 0x20, 0x82, 0x09, 0x04, 0x92, 0x49, 0x00, 0x90, + 0x48, 0x20, 0x92, 0x41, 0x20, 0x92, 0x41, 0x04, + 0x80, 0x00, 0x20, 0x92, 0x48, 0x04, 0x10, 0x49, + 0x20, 0x82, 0x08, 0x00, 0x00, 0x01, 0x20, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x82, 0x00, 0x24, + 0x02, 0x00, 0x24, 0x00, 0x41, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x49, 0x24, 0x92, 0x01, 0x04, 0x92, 0x49, 0x24, + 0x12, 0x41, 0x24, 0x92, 0x01, 0x24, 0x00, 0x09, + 0x20, 0x02, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, + 0x10, 0x48, 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, + 0x04, 0x82, 0x49, 0x20, 0x90, 0x08, 0x24, 0x02, + 0x5e, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x34, 0x48, 0x00, 0x00, 0x49, 0x20, 0x80, 0x00, + 0x00, 0x00, 0x40, 0x20, 0x82, 0x01, 0x00, 0x80, + 0x08, 0x20, 0x82, 0x48, 0x04, 0x55, 0xf2, 0x80, + 0x92, 0x97, 0xb3, 0x07, 0xff, 0x00, 0x60, 0x80, + 0x49, 0x04, 0x02, 0x01, 0x04, 0x10, 0x48, 0x00, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x48, + 0x24, 0x90, 0x08, 0x08, 0xf8, 0xbc, 0x1a, 0xb6, + 0xa5, 0x4b, 0xfc, 0xf1, 0x00, 0x92, 0x00, 0x20, + 0x82, 0x49, 0x24, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x82, + 0x2e, 0xcd, 0x9a, 0xa0, 0x12, 0x0d, 0x9b, 0x93, + 0x22, 0x00, 0x00, 0x12, 0x01, 0x24, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x41, 0x04, 0xed, 0xbf, 0xfb, + 0xef, 0xb7, 0xfb, 0xed, 0xbe, 0x84, 0x00, 0x00, + 0x24, 0x90, 0x08, 0x04, 0x00, 0x00, 0x00, 0x10, + 0x41, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x82, 0x49, 0x00, 0x10, 0x41, 0x24, 0x80, 0x49, + 0x00, 0x00, 0x08, 0x24, 0x92, 0x49, 0x20, 0x12, + 0x09, 0x24, 0x90, 0x00, 0x20, 0x92, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x92, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x10, + 0x00, 0x04, 0x00, 0x49, 0x00, 0x02, 0x48, 0x00, + 0x02, 0x40, 0x00, 0x10, 0x09, 0x20, 0x12, 0x01, + 0x00, 0x92, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x09, 0x24, + 0x00, 0x41, 0x00, 0x90, 0x00, 0x00, 0x80, 0x48, + 0x00, 0x90, 0x49, 0x20, 0x10, 0x41, 0x04, 0x00, + 0x08, 0x00, 0x10, 0x40, 0x24, 0x12, 0x08, 0x00, + 0x10, 0x08, 0x00, 0x82, 0x00, 0x20, 0x10, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x48, 0x24, 0x90, 0x01, 0x00, + 0x12, 0x41, 0x24, 0x10, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x12, 0x41, 0x24, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x40, 0x20, 0x92, 0x08, 0x24, 0x00, 0x00, + 0x24, 0x92, 0x00, 0x20, 0x12, 0x40, 0x04, 0x80, + 0x09, 0x24, 0x92, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x12, 0x01, 0x00, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x48, 0x04, 0x10, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x24, 0x92, 0x41, 0x3f, 0xff, 0xc4, 0x00, + 0x2e, 0x11, 0x01, 0x01, 0x00, 0x02, 0x01, 0x02, + 0x04, 0x04, 0x07, 0x00, 0x03, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x11, 0x00, 0x21, 0x31, 0x41, + 0x51, 0x61, 0x71, 0x91, 0xa1, 0x10, 0x40, 0xd1, + 0xf1, 0x20, 0x30, 0x50, 0x81, 0xb1, 0xe1, 0xf0, + 0x80, 0x90, 0xc1, 0x60, 0x70, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, 0x10, 0xff, + 0x00, 0x90, 0xba, 0x80, 0xba, 0x53, 0x4c, 0x14, + 0xf5, 0xf1, 0x65, 0x1d, 0x1c, 0x69, 0xd8, 0x20, + 0x74, 0x80, 0x6c, 0x1a, 0x22, 0x81, 0xf7, 0xce, + 0x7e, 0xf9, 0xcf, 0xdf, 0x39, 0xfb, 0xe7, 0x3f, + 0x7c, 0xe7, 0xef, 0x9c, 0xfd, 0xf3, 0x9f, 0xbe, + 0x73, 0xf7, 0xce, 0x7e, 0xf9, 0xcf, 0xdf, 0x39, + 0xfb, 0xe7, 0x3f, 0x7c, 0xe7, 0xef, 0x9c, 0xfd, + 0xf3, 0x9f, 0xbe, 0x73, 0xf7, 0xce, 0x52, 0x14, + 0x74, 0x14, 0x03, 0x59, 0xd0, 0xa0, 0xaf, 0x05, + 0x43, 0xba, 0x1b, 0xc3, 0xc2, 0xd7, 0x6a, 0x5f, + 0x2b, 0x2a, 0xd1, 0x37, 0xfa, 0xc2, 0x3d, 0x5d, + 0xe4, 0xce, 0x12, 0x4c, 0xd4, 0x3c, 0xb1, 0x18, + 0xb2, 0x29, 0x04, 0x00, 0xab, 0x94, 0x31, 0x58, + 0x7a, 0x4d, 0x0a, 0x02, 0xba, 0x0a, 0xa1, 0x57, + 0x46, 0x11, 0x0e, 0xe8, 0x48, 0x57, 0x82, 0xa8, + 0x6e, 0x3e, 0x98, 0xc2, 0x2e, 0x15, 0x18, 0x0a, + 0x15, 0x05, 0x85, 0x42, 0xf7, 0x4c, 0x4c, 0x3c, + 0x90, 0x02, 0x47, 0x20, 0x16, 0x27, 0x51, 0x8e, + 0x40, 0xc5, 0x90, 0xaa, 0xd9, 0x02, 0x03, 0xa8, + 0x00, 0x21, 0xd9, 0x82, 0x43, 0x41, 0x1f, 0xe7, + 0x1c, 0x2f, 0x67, 0x50, 0x79, 0xc2, 0xe2, 0x1a, + 0xad, 0x07, 0x07, 0x3a, 0x12, 0x1f, 0x02, 0x7a, + 0x6d, 0xa1, 0x09, 0x65, 0x17, 0x29, 0xcf, 0x63, + 0x87, 0x46, 0x95, 0x29, 0x04, 0xe9, 0x50, 0xdb, + 0xd8, 0x17, 0xe5, 0x14, 0x28, 0x50, 0xa1, 0x42, + 0x85, 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, + 0x0a, 0x14, 0x28, 0x50, 0x50, 0xb0, 0xbb, 0x88, + 0xce, 0xb0, 0x48, 0xbd, 0xaa, 0x1e, 0x26, 0x01, + 0xe0, 0xc8, 0x74, 0xe6, 0x46, 0x48, 0x2f, 0xc0, + 0xa7, 0xeb, 0x67, 0x40, 0x22, 0x4c, 0x53, 0x23, + 0x7e, 0x55, 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, + 0x85, 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, + 0x0a, 0x14, 0x28, 0x50, 0x74, 0xdd, 0xdd, 0xf7, + 0x8e, 0xc8, 0x81, 0xbd, 0x98, 0x5a, 0x9d, 0x61, + 0x50, 0x9b, 0x25, 0x58, 0xb3, 0xf2, 0x44, 0x98, + 0x95, 0x61, 0xc2, 0xe2, 0xcb, 0xd0, 0xf9, 0x81, + 0x8e, 0x0b, 0x48, 0xc7, 0xca, 0xe9, 0x1a, 0x38, + 0x63, 0x0c, 0x5f, 0xe6, 0xb6, 0x6b, 0x73, 0xd3, + 0x72, 0xf4, 0x3c, 0x83, 0x34, 0xe7, 0xd9, 0xa5, + 0x04, 0x62, 0xae, 0x16, 0x67, 0x9c, 0xf9, 0xb7, + 0x59, 0xef, 0x17, 0x6a, 0x1a, 0x0e, 0xf3, 0x18, + 0x18, 0xb0, 0x16, 0xa7, 0xe4, 0x3f, 0xc5, 0xc7, + 0x7a, 0xc3, 0x70, 0xe0, 0x68, 0x88, 0x72, 0x41, + 0x9e, 0x4c, 0x1e, 0x4c, 0x1e, 0x4c, 0x1e, 0x4c, + 0x1e, 0x4c, 0x1e, 0x4c, 0x1e, 0x4c, 0x0a, 0xa3, + 0x7a, 0x0d, 0x7b, 0xf1, 0xe3, 0x11, 0x2c, 0x57, + 0x70, 0x8f, 0x5a, 0x26, 0x07, 0xde, 0x85, 0x66, + 0x56, 0x95, 0xdd, 0xd5, 0x97, 0x0e, 0x9d, 0xc6, + 0xb3, 0x54, 0x53, 0xcc, 0xae, 0x31, 0x66, 0x47, + 0x61, 0xeb, 0x32, 0xec, 0x08, 0xbc, 0x52, 0xc1, + 0xcf, 0x97, 0x51, 0xaa, 0xd0, 0x85, 0xcc, 0xcd, + 0x04, 0x4c, 0x63, 0x95, 0xae, 0x6b, 0xd3, 0x14, + 0xb7, 0x1e, 0x63, 0x11, 0x1b, 0x2f, 0xa1, 0x2e, + 0x14, 0x94, 0x27, 0x42, 0xa2, 0x3e, 0x4c, 0x1e, + 0x4c, 0x1e, 0x4c, 0x1e, 0x4c, 0x1e, 0x4c, 0x1e, + 0x4c, 0x0e, 0xe6, 0x12, 0x10, 0x0a, 0x58, 0x08, + 0x08, 0x6c, 0x3c, 0x51, 0xc8, 0xf3, 0x3f, 0x9c, + 0x67, 0x25, 0xc5, 0x5a, 0xaa, 0x45, 0x5d, 0x75, + 0x57, 0x3c, 0x98, 0x3c, 0x98, 0x08, 0xa9, 0x1d, + 0x03, 0xb5, 0xb0, 0x42, 0x12, 0x96, 0x0b, 0xa9, + 0xc2, 0xbd, 0x23, 0x20, 0xf7, 0x57, 0x36, 0x12, + 0xc1, 0x64, 0x06, 0xaa, 0x7a, 0x4c, 0xf7, 0x04, + 0x51, 0x77, 0xa0, 0x51, 0xd9, 0xa9, 0x59, 0x7c, + 0x92, 0xc7, 0x0f, 0xc3, 0x8a, 0x6d, 0xc5, 0x64, + 0xc8, 0x07, 0x1f, 0x6d, 0x62, 0xb9, 0x23, 0x74, + 0x1b, 0x08, 0x6c, 0x75, 0xdf, 0x67, 0x5b, 0xd1, + 0x74, 0x3b, 0xcd, 0xa2, 0x77, 0x6f, 0x61, 0xa4, + 0x50, 0xeb, 0x54, 0xe6, 0x82, 0xc0, 0x11, 0xa1, + 0xe0, 0xe6, 0x27, 0xe1, 0xc7, 0xff, 0x00, 0x16, + 0xb4, 0xe0, 0x3a, 0x4a, 0x22, 0x1b, 0x3e, 0x0b, + 0xfc, 0x6f, 0x18, 0x02, 0x26, 0x1d, 0x19, 0x31, + 0x0d, 0x46, 0x1b, 0x6c, 0x58, 0xc1, 0xd5, 0xc7, + 0x81, 0x00, 0x3d, 0x59, 0x5c, 0x7e, 0x7d, 0x4a, + 0x00, 0x37, 0x25, 0x66, 0x3f, 0x25, 0x50, 0x15, + 0x57, 0xa8, 0x4a, 0xd2, 0xee, 0xb9, 0xc8, 0x1b, + 0xa0, 0x26, 0x29, 0x8f, 0x45, 0x5e, 0x93, 0x82, + 0xb7, 0x1a, 0x47, 0xcf, 0x6f, 0x32, 0x3e, 0x2b, + 0x60, 0x78, 0x01, 0x03, 0x42, 0x1e, 0x4c, 0x1e, + 0x4c, 0x08, 0xe4, 0x7b, 0x0d, 0x09, 0x88, 0x2c, + 0xe0, 0x48, 0x4f, 0xe4, 0xc9, 0x2d, 0x60, 0xb6, + 0x13, 0x1e, 0x94, 0xb6, 0xbf, 0x32, 0x0a, 0xdf, + 0x76, 0x86, 0x43, 0x1e, 0x3d, 0x89, 0x11, 0x44, + 0xe2, 0x39, 0xbc, 0x66, 0xe8, 0x1e, 0x1c, 0x3d, + 0x51, 0x43, 0xeb, 0xb6, 0xca, 0xa4, 0x48, 0x62, + 0xa7, 0x6d, 0x5e, 0x7e, 0x18, 0xd6, 0x70, 0x81, + 0x16, 0x00, 0x38, 0x03, 0xc8, 0x9f, 0xc7, 0xc8, + 0xff, 0x00, 0xd2, 0x96, 0x91, 0x2f, 0x1b, 0x1a, + 0x7a, 0x9e, 0x9c, 0xfe, 0x42, 0x22, 0x22, 0x22, + 0x1e, 0x59, 0x8c, 0x05, 0xb6, 0x84, 0x24, 0x2a, + 0x58, 0xa3, 0x91, 0x0f, 0x3a, 0xf3, 0xce, 0x14, + 0x75, 0xc2, 0x61, 0xaa, 0xad, 0x1e, 0xb8, 0x0f, + 0x06, 0x61, 0x86, 0x75, 0x60, 0x81, 0xd2, 0xf9, + 0xd7, 0x2c, 0x1f, 0x41, 0xc9, 0x22, 0xee, 0xcf, + 0x31, 0xe8, 0xc2, 0xc3, 0xec, 0xba, 0x99, 0x05, + 0x26, 0xc1, 0x97, 0x22, 0x00, 0x16, 0x33, 0x0f, + 0x24, 0x00, 0x9a, 0x63, 0x07, 0xa9, 0x45, 0xc0, + 0xe6, 0x94, 0xf2, 0x5b, 0xa4, 0x45, 0x13, 0x7f, + 0x17, 0xa3, 0x8f, 0xc6, 0x88, 0x88, 0x89, 0xc0, + 0x9a, 0x2c, 0xe2, 0xf6, 0x47, 0x7f, 0xeb, 0x39, + 0x1e, 0x67, 0xf3, 0x9f, 0x53, 0xe4, 0x5d, 0xdd, + 0xfb, 0xbf, 0x14, 0x4a, 0x7e, 0xce, 0x44, 0xa6, + 0x8a, 0x3a, 0x04, 0x6d, 0x42, 0xe2, 0x33, 0x4f, + 0xd3, 0xc9, 0x4d, 0xa2, 0xca, 0xd5, 0x79, 0x2a, + 0x3f, 0xa4, 0x60, 0x1f, 0xbd, 0x31, 0x58, 0x92, + 0x39, 0xd4, 0x25, 0x67, 0xdb, 0x86, 0x92, 0x46, + 0x05, 0xc0, 0xbd, 0x89, 0x66, 0x15, 0x8c, 0x40, + 0x03, 0x07, 0x11, 0xbb, 0xcf, 0x16, 0xaf, 0x66, + 0xb8, 0x88, 0x14, 0x31, 0xbf, 0x60, 0xc4, 0x24, + 0x04, 0x4d, 0x80, 0x10, 0x13, 0x61, 0xfe, 0x68, + 0x2b, 0xab, 0x99, 0x09, 0xa8, 0x7a, 0xd8, 0x44, + 0x2d, 0xcf, 0x89, 0x24, 0x0c, 0x78, 0xd2, 0x40, + 0xe9, 0xd0, 0xc9, 0x73, 0xf1, 0x99, 0x93, 0xcd, + 0x68, 0xd3, 0x70, 0xac, 0x5e, 0x11, 0xf9, 0xb5, + 0x60, 0x82, 0x68, 0xe6, 0x79, 0xe0, 0xca, 0x6e, + 0xc9, 0x49, 0xfa, 0x31, 0x8b, 0xc9, 0xc5, 0xc5, + 0xde, 0x03, 0xa6, 0x47, 0x04, 0x8a, 0x25, 0x98, + 0x1c, 0x49, 0xc1, 0x17, 0x8b, 0x8a, 0x7c, 0xb3, + 0x48, 0x8f, 0x7a, 0x28, 0x39, 0xd9, 0x53, 0x2d, + 0x71, 0x80, 0xe4, 0xce, 0xc2, 0x78, 0x7d, 0xdd, + 0xbb, 0xfc, 0x51, 0x2b, 0xf8, 0x1f, 0x12, 0xd1, + 0xd8, 0xff, 0x00, 0x3c, 0x3f, 0x26, 0x4a, 0x99, + 0xb3, 0x61, 0xcc, 0x2b, 0x85, 0x50, 0x2b, 0xb5, + 0x86, 0xf0, 0xbb, 0x9d, 0x0c, 0x85, 0x15, 0x6a, + 0x04, 0x4d, 0x2e, 0xc4, 0xe4, 0xf8, 0x0e, 0x26, + 0xa0, 0x40, 0x28, 0x02, 0xa5, 0x40, 0x03, 0x6a, + 0x80, 0x57, 0xe2, 0x55, 0x3a, 0x2f, 0x2d, 0x41, + 0x49, 0x06, 0x04, 0xa2, 0x5a, 0x39, 0xd0, 0x0e, + 0xdf, 0xce, 0x9b, 0xb5, 0xad, 0x07, 0xa5, 0xa5, + 0xa4, 0xb4, 0x9c, 0xdb, 0xa9, 0xde, 0xe6, 0xda, + 0x33, 0xb0, 0xe4, 0xd8, 0x85, 0xa4, 0xb4, 0x74, + 0xe2, 0xc1, 0x37, 0x14, 0xc3, 0x92, 0x4a, 0x7d, + 0x60, 0x3a, 0x98, 0x8b, 0x85, 0xce, 0x05, 0x0a, + 0x50, 0x04, 0x48, 0x82, 0x29, 0xb3, 0x13, 0x9a, + 0xd4, 0xbb, 0x81, 0x04, 0xf0, 0x05, 0xfc, 0xaf, + 0xea, 0x98, 0x18, 0xd3, 0xa1, 0x10, 0xcc, 0x00, + 0x60, 0x53, 0x85, 0x78, 0x22, 0x20, 0x1c, 0xe1, + 0x84, 0xed, 0x1f, 0x8f, 0x8f, 0x1e, 0x3c, 0x78, + 0xf1, 0x5a, 0xd6, 0xd0, 0xa7, 0x83, 0x81, 0xeb, + 0x9d, 0x2f, 0x18, 0x03, 0x41, 0x50, 0x14, 0x35, + 0x0e, 0x0b, 0xd2, 0x74, 0x38, 0x30, 0x01, 0x00, + 0xb9, 0x02, 0x3e, 0x61, 0x2f, 0x07, 0x3d, 0xb3, + 0x68, 0xed, 0x14, 0xdf, 0xd8, 0x1d, 0xc3, 0xc0, + 0xd6, 0x77, 0x89, 0xcf, 0x76, 0xbc, 0x6b, 0xce, + 0xfc, 0xf3, 0xb4, 0x4e, 0x3b, 0xb5, 0xe3, 0x5e, + 0x77, 0xe7, 0x91, 0xbc, 0xfe, 0x5b, 0x46, 0x29, + 0x9d, 0xd2, 0xff, 0x00, 0x90, 0x1c, 0x78, 0xf1, + 0xe3, 0xc7, 0x8f, 0x11, 0x9d, 0x1f, 0x91, 0xb8, + 0xa1, 0xb1, 0x36, 0xdf, 0xc2, 0xa9, 0x3a, 0x19, + 0xda, 0x74, 0x91, 0x52, 0x57, 0x3e, 0x3f, 0x1e, + 0x3b, 0x3a, 0x14, 0xbb, 0xe7, 0x6b, 0xbc, 0xf0, + 0xcb, 0xf3, 0x91, 0x1a, 0x08, 0xed, 0x06, 0x5e, + 0xfa, 0x39, 0xaf, 0xab, 0x69, 0xaf, 0x6b, 0xa6, + 0xb6, 0xee, 0xf3, 0x71, 0x9b, 0x4c, 0xd2, 0xbc, + 0x7b, 0x97, 0x57, 0x36, 0x74, 0x29, 0x77, 0xce, + 0xd7, 0x79, 0xe1, 0x83, 0x41, 0xb9, 0x8b, 0x2f, + 0x78, 0xe4, 0x09, 0x06, 0x10, 0x87, 0x0e, 0xc7, + 0x49, 0xe1, 0xc6, 0x05, 0x02, 0xe6, 0x2c, 0xa7, + 0x0c, 0x67, 0x59, 0x7a, 0xb7, 0x0e, 0x8d, 0x6c, + 0x9a, 0xf3, 0xbe, 0x39, 0xde, 0x46, 0xd2, 0x71, + 0x5c, 0xf2, 0xba, 0xf0, 0x71, 0xdb, 0x02, 0x81, + 0x73, 0x16, 0x53, 0x86, 0x33, 0xac, 0xff, 0x00, + 0x6e, 0xde, 0x8f, 0xed, 0x32, 0x0d, 0x09, 0xad, + 0x6d, 0xae, 0x6b, 0x7a, 0xf5, 0x79, 0xcd, 0x1d, + 0x52, 0xcd, 0x36, 0xdb, 0x35, 0xb7, 0x77, 0xbe, + 0x32, 0xdc, 0x36, 0xc0, 0xd0, 0xbd, 0xcd, 0x81, + 0x33, 0x0a, 0xfe, 0xa7, 0x13, 0x49, 0xe2, 0x9b, + 0x29, 0x3f, 0x05, 0xc4, 0xd4, 0xd2, 0x89, 0xbd, + 0x44, 0x81, 0x57, 0x6a, 0xe1, 0x00, 0x77, 0x88, + 0xac, 0x2a, 0xb8, 0x4c, 0xac, 0x1e, 0x97, 0xf9, + 0x32, 0x55, 0x14, 0x70, 0x02, 0x50, 0xae, 0xac, + 0x7d, 0x79, 0x50, 0x07, 0xae, 0xbc, 0xb0, 0x82, + 0xf1, 0xc5, 0x61, 0xb6, 0x1f, 0x3c, 0x8a, 0x0e, + 0x82, 0x0c, 0x0d, 0xa6, 0x82, 0x31, 0x4b, 0x35, + 0x20, 0xcd, 0xa9, 0x79, 0x6d, 0x84, 0x2f, 0xcb, + 0x23, 0xe5, 0x19, 0x79, 0x9a, 0x3b, 0xe0, 0x4a, + 0x6c, 0x40, 0x1f, 0x3b, 0x8a, 0x90, 0x68, 0x30, + 0xc5, 0x3b, 0x88, 0xad, 0xc9, 0xc2, 0x9f, 0xea, + 0xa5, 0xfd, 0xd9, 0x24, 0x87, 0xd2, 0x38, 0x4c, + 0xd9, 0x60, 0x47, 0x9f, 0x0c, 0xc0, 0x81, 0x03, + 0xe3, 0x0b, 0x43, 0x21, 0xf2, 0x40, 0xe0, 0xf2, + 0x3c, 0xb5, 0x70, 0xed, 0x28, 0x13, 0x43, 0x5c, + 0x4b, 0x60, 0x80, 0x6d, 0x60, 0xdf, 0x3c, 0xea, + 0xb5, 0x95, 0x33, 0x52, 0x46, 0xc3, 0x6b, 0x44, + 0xb0, 0x7f, 0xf0, 0x3f, 0xe4, 0xcc, 0x50, 0x2c, + 0xbb, 0x32, 0x89, 0x5d, 0x90, 0xb9, 0x47, 0x5e, + 0xdb, 0x40, 0x76, 0xfd, 0x18, 0xfe, 0x0e, 0x87, + 0x1a, 0x1e, 0xd1, 0x7c, 0x41, 0xe6, 0x30, 0x3e, + 0x35, 0xba, 0xb8, 0xb2, 0x01, 0xea, 0xc5, 0xc0, + 0xb0, 0x06, 0x7c, 0x44, 0x29, 0x66, 0xbb, 0xd7, + 0x32, 0x55, 0x0a, 0x12, 0x24, 0x05, 0xa7, 0x3a, + 0x1b, 0x2a, 0x8a, 0x25, 0x2b, 0x1a, 0x99, 0x5f, + 0xae, 0x19, 0x0e, 0xc7, 0xa1, 0x92, 0xfc, 0xd2, + 0x5a, 0x6c, 0x64, 0x34, 0x22, 0xd1, 0xb0, 0xe1, + 0x1c, 0x99, 0x1d, 0xd0, 0xf5, 0x8b, 0xb9, 0x19, + 0xe0, 0xdf, 0xb5, 0x3a, 0xb6, 0x5d, 0x6f, 0xb8, + 0xbb, 0x2b, 0x0c, 0x9c, 0x4b, 0x11, 0x9a, 0x88, + 0x0a, 0x62, 0xa6, 0x61, 0x95, 0x3a, 0x3a, 0x02, + 0x8a, 0x01, 0x44, 0x6f, 0xf2, 0x01, 0x85, 0xae, + 0x3d, 0x10, 0xc2, 0x77, 0x29, 0x7c, 0xce, 0xdf, + 0xac, 0xc9, 0xd0, 0xbf, 0x4a, 0x4a, 0xa5, 0xde, + 0xe0, 0x1c, 0xf6, 0x83, 0x62, 0x86, 0x9f, 0x22, + 0x8a, 0xa7, 0x99, 0xa6, 0x41, 0x70, 0x53, 0x58, + 0x60, 0x0a, 0x45, 0x50, 0xd2, 0x16, 0x04, 0x0b, + 0x97, 0x62, 0xb4, 0xaa, 0xa5, 0x62, 0x9d, 0x1d, + 0x4d, 0x02, 0xe7, 0x62, 0xbf, 0x71, 0x44, 0x10, + 0x0a, 0x06, 0x5b, 0x38, 0x22, 0x1a, 0xfa, 0x12, + 0x68, 0x9a, 0x08, 0x6c, 0x69, 0x4f, 0xc8, 0x1e, + 0x1c, 0xa0, 0x40, 0x02, 0xaa, 0x80, 0x0a, 0xb3, + 0x36, 0xb5, 0x73, 0xa0, 0x94, 0xab, 0x09, 0x50, + 0xa2, 0x72, 0x60, 0x08, 0xa4, 0x44, 0x32, 0xe7, + 0x2d, 0x94, 0x70, 0x09, 0x36, 0x2f, 0x82, 0x97, + 0xa1, 0x37, 0x98, 0x27, 0x19, 0x17, 0xf4, 0x28, + 0x8c, 0xd6, 0x1c, 0xfa, 0x2d, 0xc3, 0x00, 0x2c, + 0xf8, 0x9d, 0xa3, 0x60, 0x50, 0x7f, 0x1d, 0x38, + 0x3b, 0x33, 0x4e, 0xb3, 0xf3, 0x89, 0x24, 0x04, + 0x15, 0x25, 0x02, 0xb2, 0x22, 0xf2, 0xc1, 0xd5, + 0xe2, 0xe7, 0x5d, 0x19, 0x8b, 0x56, 0x3d, 0x05, + 0x7e, 0x38, 0x09, 0x43, 0x09, 0x8f, 0x95, 0xb6, + 0x6f, 0xff, 0x00, 0xea, 0x8f, 0xac, 0xe2, 0x43, + 0x80, 0xfc, 0x83, 0x9d, 0xee, 0x17, 0xee, 0x9a, + 0x9b, 0xb7, 0x1c, 0x6f, 0x3e, 0x1d, 0xd8, 0x6e, + 0x93, 0xd5, 0x90, 0x87, 0x0d, 0x14, 0xde, 0xc4, + 0x43, 0xf4, 0x8e, 0x7c, 0x12, 0xe8, 0x56, 0xb8, + 0x43, 0xbb, 0x31, 0x0e, 0xfa, 0xf0, 0x27, 0x18, + 0x48, 0x03, 0x85, 0x08, 0x34, 0x84, 0x04, 0x38, + 0x31, 0xd2, 0x8b, 0x2e, 0xa9, 0x94, 0x36, 0x09, + 0xaf, 0x85, 0x21, 0xea, 0xba, 0xdb, 0xbf, 0x85, + 0x04, 0x25, 0x54, 0x83, 0x3f, 0x6d, 0x1f, 0xa1, + 0xcf, 0x84, 0xef, 0x1f, 0xcc, 0xe4, 0xf7, 0xc3, + 0x20, 0x42, 0x87, 0x30, 0xc4, 0xff, 0x00, 0x7b, + 0xfc, 0x73, 0xeb, 0xe3, 0x93, 0x5c, 0xe1, 0x6b, + 0xcc, 0xcf, 0x37, 0xa1, 0x32, 0x4b, 0xc5, 0x07, + 0x1c, 0x24, 0xea, 0x62, 0xed, 0xd7, 0xe1, 0xfe, + 0xd5, 0xdd, 0xff, 0x00, 0x97, 0xf6, 0xf9, 0xc9, + 0x2b, 0x36, 0xfa, 0xe9, 0x12, 0xff, 0x00, 0xf1, + 0x32, 0x16, 0x1f, 0x6c, 0x93, 0x87, 0x5e, 0x85, + 0xbd, 0xd4, 0xf8, 0x1c, 0xf9, 0x08, 0x35, 0x95, + 0xe6, 0x7c, 0x23, 0x15, 0xcc, 0x92, 0xb1, 0xce, + 0xe0, 0x7e, 0x32, 0xc8, 0xca, 0xa3, 0xbf, 0x30, + 0xb1, 0xee, 0xe4, 0xb4, 0x0e, 0x6e, 0xbf, 0x19, + 0x5a, 0xa0, 0x59, 0x7a, 0x7b, 0x74, 0xca, 0x9c, + 0x4f, 0xe3, 0x56, 0xd9, 0x23, 0x58, 0xd5, 0x6e, + 0xee, 0x0e, 0x42, 0x3f, 0x29, 0x0c, 0x6d, 0xd2, + 0x4f, 0x45, 0x6c, 0xbf, 0xec, 0x34, 0x23, 0x4a, + 0x0a, 0xc2, 0x4b, 0xe0, 0xae, 0xc8, 0x64, 0x45, + 0x5a, 0x99, 0x20, 0x5b, 0x0b, 0x38, 0x19, 0x7c, + 0x50, 0xa2, 0x1e, 0x4e, 0xf8, 0x48, 0x83, 0xe1, + 0xbd, 0x25, 0xdc, 0xc4, 0x61, 0xc6, 0xfe, 0x70, + 0x7f, 0xa1, 0x5c, 0x44, 0x2b, 0x52, 0xa7, 0x21, + 0x2c, 0xac, 0xf9, 0xd5, 0xc1, 0xd8, 0xb9, 0x7f, + 0xd2, 0xc8, 0xa6, 0xba, 0x85, 0xf1, 0xdc, 0xc2, + 0xdc, 0x67, 0xd7, 0xc0, 0x73, 0x00, 0x7c, 0x40, + 0x46, 0x2c, 0x50, 0x08, 0x47, 0xbc, 0xad, 0xb6, + 0x2f, 0xea, 0x27, 0x7f, 0x27, 0x16, 0x2c, 0x58, + 0xb1, 0x62, 0xc5, 0x8b, 0x16, 0x2c, 0x58, 0xb1, + 0x62, 0xc5, 0x8b, 0x16, 0x29, 0x96, 0x03, 0x7e, + 0x96, 0x86, 0x4c, 0x80, 0x36, 0x3f, 0xf9, 0xce, + 0xea, 0x0a, 0x02, 0xc5, 0xa1, 0xcc, 0x09, 0x60, + 0x24, 0x0f, 0x94, 0x60, 0xc1, 0x83, 0x06, 0x0c, + 0x18, 0x30, 0x60, 0xc1, 0x83, 0x06, 0x0c, 0x18, + 0x30, 0x60, 0xc1, 0x83, 0x04, 0xec, 0x0d, 0xc6, + 0x8a, 0x21, 0xe2, 0x96, 0x25, 0x03, 0x7f, 0xa0, + 0x11, 0xac, 0x33, 0x3c, 0xd1, 0xa8, 0x20, 0xa0, + 0x69, 0x6c, 0x50, 0xb1, 0x10, 0x18, 0x88, 0x10, + 0x60, 0x40, 0x3e, 0x53, 0x06, 0x0c, 0x18, 0x30, + 0x60, 0xc1, 0x83, 0x06, 0x0c, 0x18, 0x30, 0x60, + 0xc1, 0x83, 0x06, 0x0c, 0x18, 0x1f, 0xa6, 0x16, + 0x0e, 0x1e, 0x3c, 0x48, 0x14, 0x73, 0xa5, 0xca, + 0x04, 0x18, 0xf0, 0xa2, 0x8c, 0xdc, 0x52, 0x38, + 0xa1, 0xcf, 0xa3, 0x4c, 0x44, 0x9a, 0xd9, 0x86, + 0x80, 0x64, 0xf7, 0x7a, 0x1f, 0x5c, 0x9e, 0xef, + 0x43, 0xeb, 0x86, 0x4d, 0xeb, 0xe8, 0xdf, 0x5a, + 0xf4, 0x40, 0xc4, 0xd3, 0x81, 0x71, 0x75, 0xf3, + 0xdd, 0xa8, 0xf3, 0x99, 0x9f, 0x80, 0xe3, 0xcf, + 0x97, 0x67, 0x2e, 0x46, 0xc9, 0x71, 0x41, 0x8a, + 0xa0, 0xa0, 0xa8, 0x20, 0x29, 0x82, 0xed, 0x0a, + 0xe4, 0x56, 0x4c, 0x8f, 0x0c, 0xc3, 0xb1, 0x40, + 0xdc, 0xe8, 0x09, 0x81, 0xc8, 0xa0, 0xad, 0x95, + 0x77, 0x4d, 0xea, 0xe5, 0x01, 0x18, 0x54, 0xd1, + 0xa3, 0x46, 0xed, 0xd9, 0xa3, 0x7b, 0x30, 0xa1, + 0xfe, 0x1f, 0xe4, 0x29, 0x45, 0x94, 0x40, 0x92, + 0xb1, 0xb2, 0x34, 0x40, 0xf2, 0x7c, 0x51, 0x9d, + 0x06, 0x21, 0x14, 0xf8, 0x7a, 0x38, 0x80, 0x45, + 0xc7, 0xd3, 0x4d, 0x2f, 0x0d, 0x3b, 0xed, 0x27, + 0x8d, 0x99, 0x49, 0x05, 0x06, 0x63, 0x8f, 0x8a, + 0x56, 0x51, 0x84, 0x3a, 0x35, 0xbb, 0xe9, 0x97, + 0xab, 0xa1, 0x1d, 0x5e, 0x4c, 0xe0, 0x31, 0xd4, + 0xdc, 0xda, 0x5a, 0x6d, 0x01, 0x4a, 0x88, 0x10, + 0x14, 0x89, 0x0a, 0x94, 0x8a, 0xc6, 0x9b, 0x23, + 0xb3, 0x04, 0x04, 0xa1, 0x04, 0x48, 0x88, 0xec, + 0x44, 0x62, 0x27, 0x0e, 0x4f, 0x77, 0xa1, 0xf5, + 0xc9, 0xee, 0xf4, 0x3e, 0xb8, 0xdb, 0x87, 0x69, + 0xd3, 0x6f, 0x2e, 0x25, 0x41, 0x30, 0x21, 0x80, + 0x32, 0x0c, 0xe5, 0x50, 0x88, 0xaa, 0x1a, 0xdf, + 0xcf, 0xc2, 0x9c, 0xa4, 0x40, 0x22, 0x02, 0xb2, + 0x82, 0x20, 0x12, 0xfb, 0x3e, 0xf8, 0xa1, 0x07, + 0x51, 0x42, 0xec, 0x14, 0xef, 0x96, 0xb0, 0x64, + 0x87, 0x13, 0xf6, 0xf2, 0x81, 0xd4, 0xe1, 0x43, + 0x70, 0xea, 0x2b, 0x73, 0x15, 0x7a, 0x44, 0x01, + 0x80, 0xa0, 0x3c, 0x82, 0x7f, 0x7d, 0xc1, 0x00, + 0x51, 0xd7, 0x28, 0x83, 0xb4, 0xe1, 0x53, 0x70, + 0x62, 0x11, 0x6c, 0x31, 0x95, 0x96, 0xe0, 0xbc, + 0x76, 0x45, 0xf8, 0x77, 0x89, 0x83, 0x44, 0x86, + 0xef, 0x24, 0xe8, 0x8c, 0xe2, 0x01, 0x03, 0x0e, + 0x60, 0x62, 0xea, 0x7e, 0xbd, 0xcb, 0x48, 0x4d, + 0x2e, 0xd8, 0xc9, 0x1f, 0x3c, 0xfd, 0xc3, 0xa0, + 0xba, 0xff, 0x00, 0xf5, 0x59, 0xe5, 0xbb, 0x5c, + 0x71, 0x6c, 0xdb, 0xe8, 0x80, 0x91, 0x40, 0x81, + 0x0d, 0xcb, 0x0c, 0x53, 0xb4, 0xc6, 0x21, 0x80, + 0x1b, 0xe3, 0x22, 0x02, 0xe2, 0x36, 0x2c, 0xe9, + 0x85, 0x84, 0x50, 0x58, 0x86, 0x9c, 0x55, 0x31, + 0x79, 0x1c, 0x90, 0x03, 0x26, 0x74, 0x14, 0x0f, + 0x18, 0x18, 0x64, 0xb8, 0x15, 0x9a, 0xc0, 0x30, + 0xd4, 0xa3, 0x94, 0x27, 0x75, 0x11, 0x91, 0xac, + 0x3a, 0x19, 0xa1, 0xd9, 0xd5, 0x59, 0x4a, 0xdf, + 0xd4, 0xe6, 0x6c, 0x19, 0x00, 0xef, 0x40, 0xd9, + 0x43, 0x88, 0x73, 0x64, 0xc2, 0xd3, 0x1d, 0xc8, + 0x1c, 0x4b, 0x01, 0x71, 0xb1, 0x27, 0x96, 0x3d, + 0x43, 0x27, 0xe8, 0x42, 0xe8, 0x13, 0x28, 0x2a, + 0x40, 0x5d, 0x49, 0xb5, 0x5d, 0xa1, 0x88, 0xe0, + 0xd7, 0xe0, 0xfb, 0x38, 0x50, 0xad, 0x17, 0x3e, + 0x1c, 0xf1, 0xde, 0xbf, 0xde, 0x78, 0xef, 0x5f, + 0xef, 0x1f, 0xb3, 0xe1, 0xa1, 0xd4, 0x15, 0xb0, + 0x02, 0xcc, 0x46, 0x39, 0x65, 0x2e, 0xb8, 0x6d, + 0x78, 0xd9, 0x56, 0x42, 0xfb, 0x23, 0x3a, 0xa1, + 0x40, 0x10, 0x89, 0x61, 0x9f, 0x01, 0x5b, 0x05, + 0x3d, 0xce, 0xdc, 0xaf, 0x01, 0xd1, 0x84, 0x87, + 0x5d, 0x45, 0x23, 0x4c, 0xf3, 0xc0, 0x33, 0x8e, + 0xaf, 0xc4, 0x36, 0xef, 0xa6, 0x6f, 0xa4, 0x8f, + 0x30, 0xa5, 0xfd, 0xe9, 0x4a, 0x3e, 0xa4, 0x00, + 0x1a, 0x35, 0x78, 0x7d, 0x1d, 0x01, 0x07, 0x68, + 0x60, 0x33, 0x0f, 0x10, 0x8e, 0xa9, 0x3a, 0x62, + 0x77, 0xb9, 0xc0, 0x12, 0x1d, 0x2c, 0xe3, 0x30, + 0x01, 0x42, 0x68, 0x57, 0x79, 0x63, 0x4c, 0xa7, + 0x3c, 0x5f, 0x2b, 0x1b, 0x83, 0x67, 0xfd, 0x7f, + 0x77, 0xd7, 0x51, 0x56, 0x02, 0x9d, 0x46, 0x45, + 0xf3, 0x46, 0xf4, 0x62, 0x01, 0x03, 0xe4, 0xf8, + 0xae, 0xd9, 0x28, 0x86, 0x33, 0xc0, 0xb6, 0xfc, + 0x87, 0x32, 0x5b, 0xab, 0xc0, 0x61, 0x99, 0x2c, + 0x1a, 0x10, 0x97, 0xba, 0xba, 0x03, 0x9b, 0x7e, + 0x3b, 0xd7, 0xfb, 0xcf, 0x1d, 0xeb, 0xfd, 0xe7, + 0x8e, 0xf5, 0xfe, 0xf1, 0x1d, 0xe7, 0x73, 0xfe, + 0x6d, 0x7e, 0xfc, 0xfc, 0xfa, 0x6a, 0x2f, 0x40, + 0x3e, 0x97, 0xcd, 0xd7, 0xfa, 0xaf, 0xe8, 0xfa, + 0xb0, 0xe3, 0xad, 0x71, 0xab, 0x95, 0xad, 0x65, + 0x64, 0x59, 0x15, 0xfb, 0x8e, 0x29, 0x64, 0x61, + 0x29, 0xe2, 0x2a, 0x34, 0x76, 0xae, 0xff, 0x00, + 0xe5, 0x91, 0x88, 0xc9, 0xa1, 0x73, 0xe3, 0x11, + 0xfd, 0xe1, 0xd2, 0x28, 0xea, 0x17, 0x99, 0xd4, + 0xcc, 0xe6, 0x81, 0x54, 0x65, 0x39, 0x5c, 0x69, + 0xe2, 0xa2, 0x41, 0xa0, 0xbd, 0x99, 0x42, 0xae, + 0xf3, 0xed, 0x20, 0x5a, 0x01, 0xaa, 0x64, 0x24, + 0xfd, 0x91, 0x86, 0x84, 0x5e, 0xfa, 0x39, 0x5d, + 0x71, 0xe8, 0xc8, 0x0b, 0x8a, 0x0a, 0x05, 0x82, + 0xcb, 0x0e, 0x95, 0xc1, 0x36, 0xa2, 0x41, 0xb4, + 0x04, 0x93, 0x6b, 0xb0, 0x58, 0x0e, 0x13, 0x0f, + 0x05, 0x52, 0xc8, 0xc6, 0xd9, 0x41, 0x47, 0x9c, + 0x80, 0xd2, 0x10, 0x39, 0x31, 0x06, 0x43, 0x61, + 0x4e, 0xe7, 0xbd, 0x2b, 0x09, 0x5d, 0x56, 0x64, + 0x60, 0x02, 0x25, 0x8e, 0xa3, 0x24, 0x3e, 0x80, + 0xc3, 0x4b, 0x8e, 0xf3, 0x0d, 0x80, 0x36, 0x92, + 0xe7, 0x26, 0x63, 0xdc, 0x6e, 0x54, 0x52, 0xd2, + 0x32, 0x51, 0x00, 0x11, 0x7d, 0x45, 0x39, 0x28, + 0x7e, 0x94, 0x6c, 0xa1, 0x14, 0x24, 0xdf, 0xe2, + 0xb1, 0x58, 0xdc, 0x65, 0x06, 0x5f, 0x18, 0x62, + 0x5a, 0x8e, 0x4b, 0x60, 0x00, 0x6a, 0x2c, 0xec, + 0x07, 0x7d, 0xbe, 0x27, 0x90, 0x9d, 0xc8, 0x53, + 0xd5, 0x1e, 0x19, 0xb1, 0xa6, 0xeb, 0xb6, 0xe3, + 0xf6, 0xb8, 0xaf, 0x08, 0x00, 0x3e, 0xb0, 0x4e, + 0x59, 0x76, 0xca, 0x21, 0xf0, 0x02, 0xd9, 0x0a, + 0xbf, 0x30, 0xa0, 0x26, 0x17, 0x1b, 0x42, 0x58, + 0x8a, 0x0b, 0x64, 0x04, 0xaa, 0x9f, 0x4f, 0x28, + 0x5f, 0x99, 0x97, 0xfe, 0x27, 0xe2, 0xa1, 0x57, + 0x01, 0x5d, 0xca, 0x5a, 0x61, 0x92, 0x05, 0x0c, + 0xea, 0xd9, 0x14, 0x3d, 0xa2, 0xa8, 0x2d, 0x04, + 0xb2, 0x64, 0xa0, 0x7e, 0x4a, 0x9c, 0x58, 0x1e, + 0x14, 0x93, 0x8c, 0x38, 0x1e, 0xb9, 0xde, 0xd0, + 0xa7, 0x1c, 0xc5, 0x00, 0x00, 0x21, 0x06, 0xa4, + 0x53, 0x05, 0x30, 0x23, 0x4a, 0x30, 0xbb, 0x75, + 0x40, 0x97, 0x59, 0x00, 0x22, 0x48, 0x50, 0x29, + 0x28, 0x54, 0x03, 0xb3, 0x09, 0x70, 0x41, 0xaa, + 0xda, 0xe6, 0xde, 0x45, 0x72, 0xbc, 0x63, 0xd0, + 0x9a, 0x73, 0xc2, 0xd0, 0x68, 0x41, 0x05, 0x1d, + 0xce, 0x80, 0xfd, 0x27, 0xa2, 0xa5, 0xf0, 0xce, + 0x93, 0x03, 0x01, 0xba, 0xfc, 0x4e, 0x33, 0x28, + 0x1b, 0xa1, 0x1c, 0xc1, 0x59, 0x60, 0x53, 0x6a, + 0xdf, 0x11, 0x02, 0x79, 0x9b, 0xd4, 0x10, 0x4a, + 0x00, 0x85, 0x90, 0x29, 0x04, 0x01, 0xf0, 0x02, + 0xe8, 0xd7, 0x85, 0x20, 0x38, 0x0e, 0x44, 0x20, + 0xe1, 0xe6, 0xb4, 0x5e, 0x94, 0x48, 0xa7, 0x74, + 0x5f, 0x9f, 0x04, 0x8d, 0xa2, 0x4c, 0x7e, 0x88, + 0x21, 0x0e, 0x39, 0x57, 0xa1, 0x68, 0x39, 0xd2, + 0x94, 0x75, 0xa0, 0x82, 0x2a, 0x31, 0x72, 0x6d, + 0x09, 0x38, 0x77, 0x19, 0x74, 0xdf, 0xad, 0x61, + 0x91, 0xc4, 0xbe, 0x21, 0x47, 0xaa, 0x9d, 0xec, + 0xb2, 0x31, 0x16, 0x16, 0x8f, 0x89, 0x74, 0x57, + 0x4e, 0x15, 0x93, 0xae, 0xaf, 0x7e, 0xf3, 0x65, + 0xdb, 0x25, 0xd9, 0x3b, 0x5d, 0xa6, 0x68, 0x4d, + 0x4b, 0x53, 0x52, 0xf7, 0x4e, 0x6e, 0x6f, 0xbb, + 0x52, 0x2e, 0xe4, 0xed, 0x7a, 0x7c, 0x30, 0x3d, + 0x84, 0xf7, 0x32, 0xf1, 0xf4, 0x76, 0x74, 0x9e, + 0xe7, 0x4f, 0xed, 0x81, 0xf0, 0x75, 0xac, 0x2d, + 0xf7, 0xf1, 0xf8, 0xf3, 0x8b, 0xf2, 0xfb, 0xbb, + 0x6d, 0xf7, 0xf1, 0xf8, 0xf3, 0x9b, 0x17, 0x6b, + 0xa5, 0xd8, 0x9d, 0x97, 0x2d, 0x30, 0xe1, 0x5a, + 0xb0, 0x91, 0x15, 0x9a, 0x9a, 0x01, 0x82, 0x74, + 0x74, 0x08, 0x07, 0x54, 0xdc, 0xcc, 0xbe, 0xff, + 0x00, 0x76, 0x5e, 0xbb, 0xe6, 0xb0, 0xd4, 0x34, + 0x35, 0x0f, 0x73, 0xa5, 0xf1, 0x32, 0x0d, 0x2a, + 0xf2, 0xec, 0x7f, 0x7c, 0xcc, 0x40, 0x85, 0xa9, + 0xa9, 0x7b, 0xa7, 0x5e, 0x6f, 0xbb, 0x64, 0xbb, + 0xa7, 0x6b, 0xbc, 0xf0, 0xcf, 0xe4, 0x9f, 0x79, + 0xc9, 0x57, 0x66, 0xfc, 0x06, 0x87, 0x9c, 0x85, + 0xb3, 0xf0, 0x0c, 0xc4, 0x86, 0x2a, 0xc4, 0xde, + 0x40, 0xe8, 0xa9, 0x47, 0xca, 0xbd, 0x7a, 0xf5, + 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, + 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0x72, + 0x1a, 0xa4, 0x26, 0xca, 0x80, 0x44, 0xcb, 0xb0, + 0x37, 0xff, 0x00, 0xce, 0xdd, 0xc7, 0x44, 0x80, + 0x94, 0x0a, 0x52, 0x8d, 0x29, 0x43, 0xe5, 0x6c, + 0xd9, 0xb3, 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, + 0xb3, 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb3, + 0x66, 0x23, 0xd0, 0x0a, 0x90, 0x14, 0x22, 0x86, + 0x04, 0x52, 0x22, 0xfe, 0xac, 0x95, 0x9e, 0x27, + 0xf0, 0x47, 0x6a, 0x8e, 0x45, 0x0c, 0x60, 0x20, + 0x22, 0x52, 0x57, 0x2b, 0x28, 0x54, 0xaa, 0xe5, + 0xf6, 0x7d, 0xf2, 0xfb, 0x3e, 0xf9, 0x7d, 0x9f, + 0x7c, 0xbe, 0xcf, 0xbe, 0x5f, 0x67, 0xdf, 0x2f, + 0xb3, 0xef, 0x8d, 0x99, 0xcf, 0x2b, 0x23, 0x8c, + 0x72, 0x0f, 0x7a, 0x18, 0xda, 0xe0, 0x0b, 0xc3, + 0x45, 0x34, 0x4b, 0x90, 0x3c, 0x5f, 0x67, 0xdf, + 0x16, 0xbc, 0x36, 0x3a, 0x00, 0xea, 0x6d, 0x74, + 0xba, 0x97, 0xd9, 0xf7, 0xcb, 0xec, 0xfb, 0xe5, + 0xf6, 0x7d, 0xf2, 0xfb, 0x3e, 0xf9, 0x7d, 0x9f, + 0x7c, 0xbe, 0xcf, 0xbe, 0x5f, 0x67, 0xdf, 0x2f, + 0xb3, 0xef, 0x97, 0xd9, 0xf7, 0xcb, 0xec, 0xfb, + 0xe1, 0x57, 0xb3, 0xe2, 0x40, 0xea, 0x1e, 0xb3, + 0x15, 0x99, 0xe3, 0xf5, 0x64, 0x2d, 0x58, 0xf2, + 0xf1, 0xe7, 0xbf, 0x67, 0xf1, 0x73, 0xc0, 0xfa, + 0x63, 0xc0, 0xfa, 0x63, 0xc0, 0xfa, 0x63, 0xc0, + 0xfa, 0x63, 0xc0, 0xfa, 0x63, 0xc0, 0xfa, 0x63, + 0xc0, 0xfa, 0x61, 0xea, 0x41, 0xfc, 0x27, 0x0e, + 0xf3, 0x3a, 0x7b, 0xe7, 0x48, 0x7c, 0x31, 0x88, + 0x34, 0xe7, 0x93, 0x14, 0x48, 0x44, 0xcb, 0xa0, + 0x84, 0x65, 0x2a, 0xb4, 0x9c, 0x4d, 0x3c, 0xb2, + 0xde, 0x73, 0xc4, 0x4e, 0x01, 0x83, 0x81, 0x5e, + 0x1e, 0x54, 0xd3, 0x35, 0x45, 0x70, 0xf4, 0xc0, + 0x6d, 0x10, 0x17, 0x22, 0xf9, 0x81, 0x1f, 0x12, + 0x1b, 0x7c, 0x2f, 0x7e, 0x81, 0x64, 0xc6, 0x86, + 0x01, 0xc7, 0x81, 0xf4, 0xc7, 0x81, 0xf4, 0xc7, + 0x81, 0xf4, 0xc7, 0x81, 0xf4, 0xc7, 0x81, 0xf4, + 0xc7, 0x81, 0xf4, 0xc7, 0x81, 0xf4, 0xc3, 0x74, + 0x83, 0x3a, 0xe1, 0xff, 0x00, 0x85, 0x9c, 0x9f, + 0x37, 0xf9, 0xfd, 0x58, 0xf5, 0x3b, 0x60, 0x24, + 0xa2, 0x83, 0x4e, 0x3b, 0x08, 0xd7, 0xf9, 0x9f, + 0x8c, 0x88, 0x88, 0x88, 0xb3, 0xd5, 0x53, 0xc5, + 0xae, 0xbc, 0x1f, 0x38, 0x3c, 0xe7, 0x6e, 0x5c, + 0xa2, 0x10, 0x22, 0x36, 0x6f, 0x80, 0xd8, 0x99, + 0xf9, 0x12, 0x6f, 0x4e, 0x88, 0x18, 0x0f, 0x2d, + 0x16, 0xcc, 0x05, 0xbb, 0x04, 0x4f, 0x0d, 0xa5, + 0x4b, 0xce, 0xc2, 0x85, 0x0a, 0x97, 0x22, 0x8c, + 0x84, 0xc5, 0xf9, 0x38, 0xb6, 0xe6, 0x9b, 0x14, + 0xe4, 0x84, 0xaa, 0xd0, 0x80, 0xb4, 0x00, 0x17, + 0xe4, 0x49, 0x26, 0x44, 0x44, 0x44, 0x47, 0xbc, + 0x9a, 0x42, 0x02, 0xd8, 0xf2, 0x04, 0xe4, 0x74, + 0x73, 0xfa, 0xb2, 0x00, 0x01, 0x00, 0x40, 0x8a, + 0x04, 0x44, 0x62, 0x22, 0x26, 0x92, 0x60, 0x69, + 0x6c, 0x80, 0x6a, 0x87, 0x4b, 0xb0, 0x1f, 0x00, + 0x6b, 0xe5, 0x55, 0x2a, 0x54, 0xa9, 0x52, 0xa5, + 0x4a, 0x95, 0x2a, 0x54, 0xa9, 0x52, 0xa5, 0x4a, + 0x95, 0x2a, 0x54, 0xa9, 0xc2, 0x9a, 0x4f, 0x9b, + 0x37, 0x8c, 0x2e, 0xd0, 0x96, 0x7f, 0xe0, 0xee, + 0x86, 0xf0, 0x6c, 0x9a, 0xce, 0x5b, 0x20, 0x6d, + 0xa5, 0xf1, 0x84, 0x9b, 0x52, 0x03, 0xd6, 0x82, + 0xe8, 0x1f, 0x28, 0x14, 0x28, 0x50, 0xa1, 0x42, + 0x85, 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, + 0x0a, 0x14, 0x28, 0x5e, 0xe7, 0xf8, 0xbc, 0x59, + 0x06, 0x48, 0xe5, 0x23, 0xfe, 0x0e, 0xe5, 0x09, + 0xad, 0x79, 0xf9, 0x4b, 0x46, 0xff, 0x00, 0x43, + 0xf2, 0xb4, 0x99, 0xd8, 0x50, 0xa1, 0x42, 0x85, + 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, 0x0a, + 0x14, 0x28, 0x50, 0xa1, 0x42, 0x98, 0x44, 0x20, + 0x3f, 0x94, 0xf1, 0xc0, 0x41, 0xcd, 0xe4, 0x3e, + 0x19, 0x54, 0x89, 0x74, 0x8b, 0x1f, 0xc6, 0x4e, + 0xd1, 0xa2, 0xf4, 0x94, 0x54, 0x13, 0xd0, 0x5c, + 0x75, 0xcc, 0xf1, 0x32, 0x22, 0x89, 0x51, 0x21, + 0x2d, 0x1c, 0x9f, 0x2a, 0xa1, 0x42, 0x85, 0x0a, + 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, + 0x28, 0x50, 0xa1, 0x42, 0x85, 0x17, 0xe4, 0x5c, + 0xd4, 0x81, 0x08, 0xe6, 0x7c, 0x23, 0xa0, 0x7c, + 0x9b, 0xda, 0x7a, 0xb8, 0x04, 0x8e, 0x8e, 0x58, + 0x65, 0xf6, 0x7a, 0x3e, 0x98, 0x28, 0xab, 0x03, + 0x55, 0xa0, 0x26, 0xd4, 0x03, 0xc5, 0xc3, 0x06, + 0xad, 0xa1, 0x76, 0x07, 0x21, 0xc2, 0x6c, 0x0b, + 0xc8, 0x92, 0xc1, 0x91, 0x1b, 0xc5, 0x62, 0xe3, + 0x30, 0x38, 0x5a, 0x3d, 0xfa, 0x0b, 0x39, 0x9e, + 0x40, 0x77, 0x98, 0xe4, 0x5a, 0x13, 0xce, 0x49, + 0x46, 0x4f, 0x40, 0x77, 0xe7, 0xf3, 0xc3, 0x74, + 0x14, 0x24, 0x32, 0xd7, 0x64, 0xd2, 0x95, 0x32, + 0x48, 0x10, 0xac, 0xcc, 0x09, 0xc7, 0xd3, 0x10, + 0x2b, 0xc2, 0x58, 0x81, 0x6c, 0x6c, 0xb4, 0xbd, + 0x26, 0x58, 0x6c, 0x1a, 0xd7, 0xb0, 0x41, 0x67, + 0x1e, 0x3a, 0x94, 0x46, 0x03, 0xb7, 0x99, 0x6f, + 0x65, 0x2d, 0x2d, 0x46, 0xd6, 0x6c, 0xe3, 0x14, + 0x43, 0x61, 0x31, 0x6d, 0x17, 0xb6, 0x62, 0x92, + 0x30, 0x24, 0x27, 0xfd, 0xa1, 0xa6, 0x51, 0xb5, + 0x99, 0x63, 0x6c, 0xc9, 0x4d, 0x6e, 0x7d, 0xc0, + 0xbc, 0x12, 0x4a, 0x3d, 0xcf, 0x68, 0x63, 0xa8, + 0x5b, 0xc5, 0x78, 0x45, 0x48, 0xee, 0x2a, 0x94, + 0x96, 0x5b, 0xd0, 0x32, 0x6a, 0xa5, 0x80, 0xa8, + 0x88, 0x12, 0x10, 0x2d, 0x1a, 0x59, 0x37, 0x51, + 0xc2, 0x0a, 0x16, 0x06, 0x31, 0x98, 0x0a, 0xd0, + 0xce, 0x5b, 0x86, 0xbd, 0x0c, 0x8a, 0x85, 0xf6, + 0x7a, 0x3e, 0x98, 0x6b, 0xa1, 0x88, 0x6c, 0x3a, + 0xe2, 0x52, 0x83, 0x1a, 0x50, 0x65, 0x04, 0xe4, + 0x79, 0x9f, 0xce, 0x23, 0xcb, 0x90, 0xa8, 0xec, + 0x57, 0x6e, 0xa7, 0x3d, 0x32, 0x7b, 0x1e, 0xd9, + 0x3d, 0x8f, 0x6c, 0x9e, 0xc7, 0xb6, 0x4f, 0x63, + 0xdb, 0x27, 0xb1, 0xed, 0x93, 0xd8, 0xf6, 0xc9, + 0xec, 0x7b, 0x64, 0x42, 0x5d, 0x65, 0xfb, 0x33, + 0x50, 0x5f, 0x45, 0x35, 0x1c, 0x77, 0xa8, 0xac, + 0x79, 0x40, 0x28, 0x4c, 0x22, 0x2f, 0x45, 0x00, + 0x20, 0xc6, 0xa0, 0x61, 0x34, 0x1b, 0xa9, 0xde, + 0x97, 0x94, 0xd3, 0xa5, 0x44, 0x0c, 0x64, 0xd3, + 0x7c, 0x47, 0x50, 0x35, 0x13, 0x4c, 0x88, 0xc1, + 0x18, 0xe9, 0x3a, 0xb4, 0x0d, 0x40, 0xaf, 0x84, + 0xc4, 0x63, 0xc1, 0x91, 0x87, 0x6f, 0xe7, 0x94, + 0xb1, 0x4f, 0x63, 0xdb, 0x27, 0xb1, 0xed, 0x93, + 0xd8, 0xf6, 0xc9, 0xec, 0x7b, 0x64, 0xf6, 0x3d, + 0xb2, 0x7b, 0x1e, 0xd9, 0x3d, 0x8f, 0x6c, 0x01, + 0xae, 0x77, 0xe1, 0xc8, 0xe3, 0x64, 0xbd, 0x9d, + 0xf0, 0x7e, 0x36, 0x29, 0x35, 0xf0, 0xfe, 0xc6, + 0x82, 0x8e, 0xc3, 0xd3, 0x3c, 0x98, 0x3c, 0x98, + 0x08, 0xe4, 0x72, 0x77, 0x17, 0xb2, 0x35, 0x1e, + 0xc1, 0xd5, 0x6f, 0xa1, 0x10, 0x76, 0x04, 0x6b, + 0xcc, 0xe0, 0xe7, 0xc3, 0x85, 0x63, 0x5e, 0xc6, + 0x28, 0xc0, 0xc7, 0x03, 0xf5, 0xec, 0x90, 0x2c, + 0x0e, 0x13, 0x61, 0x67, 0xaf, 0xe5, 0x72, 0x2b, + 0xaf, 0xce, 0x6c, 0x94, 0x96, 0x5d, 0x60, 0x51, + 0x16, 0x71, 0xbc, 0x06, 0xcc, 0xb0, 0x9f, 0x2d, + 0xdd, 0x55, 0x61, 0x05, 0x40, 0x98, 0x6a, 0xba, + 0x54, 0x01, 0x10, 0x86, 0x6c, 0x09, 0x0f, 0x83, + 0x4d, 0x79, 0xb6, 0x7a, 0xd5, 0xb3, 0x6b, 0x2d, + 0x65, 0x37, 0x26, 0x88, 0x0e, 0xbf, 0x30, 0x2c, + 0x08, 0xd4, 0x20, 0x9a, 0xd4, 0x23, 0x65, 0xfd, + 0x8f, 0xd7, 0x43, 0x12, 0x06, 0xa5, 0x83, 0xe0, + 0x76, 0x45, 0xef, 0x95, 0xf7, 0xd9, 0xde, 0xa2, + 0x5d, 0xc7, 0x68, 0xfe, 0x76, 0x47, 0x90, 0xf5, + 0x1f, 0x14, 0x63, 0x48, 0x5f, 0x00, 0x45, 0x20, + 0x0d, 0xaf, 0xa8, 0xc7, 0x87, 0x01, 0xb9, 0xd9, + 0x29, 0x2b, 0xe6, 0x72, 0x0d, 0x28, 0x97, 0x58, + 0x65, 0xac, 0xc2, 0x77, 0xef, 0xc6, 0x4f, 0x5a, + 0x0a, 0xa2, 0xd1, 0x8c, 0x83, 0x63, 0xc8, 0xa2, + 0x2f, 0x93, 0x00, 0xf1, 0x6d, 0xb5, 0x8d, 0x81, + 0x42, 0xf7, 0x6c, 0x11, 0x4f, 0x81, 0xa3, 0x2c, + 0x0a, 0x27, 0x35, 0xc4, 0x33, 0x38, 0x9d, 0x72, + 0xbb, 0xbd, 0x1c, 0x47, 0x60, 0x1b, 0xa0, 0x06, + 0xc4, 0xe0, 0xa8, 0x8f, 0x44, 0xb8, 0x20, 0x63, + 0x28, 0x72, 0x56, 0x16, 0xb3, 0x5c, 0x5e, 0x14, + 0xb2, 0x05, 0x61, 0x62, 0xe8, 0x40, 0x28, 0x39, + 0xc1, 0x84, 0xcd, 0x68, 0x6e, 0xdd, 0x4b, 0xe5, + 0x38, 0x0c, 0xf2, 0xc9, 0xd8, 0x8b, 0x51, 0x69, + 0xc1, 0x1e, 0x06, 0x01, 0xcb, 0xe0, 0xea, 0x84, + 0x32, 0x4c, 0x07, 0x04, 0x6d, 0x2b, 0x38, 0x96, + 0x48, 0x96, 0xc3, 0xbd, 0x2c, 0x22, 0x60, 0x73, + 0x78, 0x54, 0x3d, 0x02, 0x0c, 0x6a, 0xa9, 0x88, + 0x54, 0xc8, 0x89, 0x0c, 0x14, 0x05, 0x25, 0x94, + 0x03, 0x7e, 0x80, 0x1c, 0x40, 0x46, 0xd4, 0x6f, + 0x76, 0xee, 0xb8, 0x70, 0xd5, 0x72, 0x0e, 0x1a, + 0xa0, 0x8d, 0x00, 0x7b, 0xb9, 0x28, 0x34, 0xf0, + 0x12, 0xe5, 0x23, 0x8a, 0x86, 0x88, 0x2a, 0x7c, + 0xb9, 0x91, 0x67, 0xea, 0xd2, 0x85, 0x4b, 0x56, + 0x22, 0x8d, 0x6c, 0x97, 0x20, 0x30, 0xe0, 0xc8, + 0x4b, 0x0a, 0x38, 0xaa, 0xb4, 0x73, 0x87, 0x2d, + 0x9d, 0x6e, 0x49, 0x82, 0x60, 0xad, 0xe7, 0x00, + 0x96, 0x30, 0xeb, 0x33, 0x08, 0xe3, 0x6d, 0x94, + 0xbd, 0x11, 0xf0, 0x56, 0x65, 0x54, 0x1f, 0x15, + 0xfc, 0x21, 0x83, 0x4c, 0x5f, 0x95, 0xdd, 0xe8, + 0xe2, 0x8f, 0x85, 0x02, 0x60, 0x75, 0x34, 0x37, + 0x0a, 0x14, 0x0f, 0x39, 0xc8, 0xf3, 0x3f, 0x9c, + 0x42, 0xb0, 0xad, 0x1a, 0x3b, 0x6d, 0x8c, 0xef, + 0x97, 0xdb, 0xea, 0xe5, 0xf6, 0xfa, 0xb9, 0x7d, + 0xbe, 0xae, 0x5f, 0x6f, 0xab, 0x97, 0xdb, 0xea, + 0xe5, 0xf6, 0xfa, 0xb8, 0xa0, 0x5d, 0xa7, 0x41, + 0x55, 0xf2, 0x30, 0xfc, 0xd8, 0xe7, 0xa2, 0x66, + 0xc4, 0x0c, 0x38, 0xe1, 0x52, 0xd8, 0xd1, 0xc3, + 0xaf, 0x28, 0x86, 0x57, 0x40, 0x3f, 0xa3, 0xb6, + 0x2b, 0x6c, 0x58, 0x45, 0x48, 0x72, 0x20, 0x3a, + 0xcf, 0x6a, 0x3a, 0xc0, 0xfe, 0x8a, 0x61, 0x5a, + 0xb9, 0x88, 0x18, 0xd5, 0x48, 0x2b, 0xfc, 0xa5, + 0xdc, 0xfc, 0x91, 0x86, 0xb2, 0x78, 0x95, 0x38, + 0x32, 0x6b, 0x51, 0x6f, 0x49, 0x64, 0x12, 0x84, + 0xd2, 0x4a, 0xe5, 0xf6, 0xfa, 0xb9, 0x7d, 0xbe, + 0xae, 0x5f, 0x6f, 0xab, 0x97, 0xdb, 0xea, 0xe5, + 0xf6, 0xfa, 0xb9, 0x7d, 0xbe, 0xae, 0x5f, 0x6f, + 0xab, 0x97, 0x00, 0x1e, 0x4a, 0xd0, 0x80, 0xbc, + 0x0b, 0xb4, 0x19, 0x41, 0x4b, 0x19, 0xf8, 0xb7, + 0x23, 0xa3, 0xec, 0xe4, 0x3a, 0x7c, 0x1e, 0x6f, + 0xc5, 0x11, 0x2c, 0x9d, 0xf0, 0x1f, 0xc4, 0x30, + 0x22, 0x2c, 0xad, 0x5a, 0x12, 0x4e, 0x61, 0x12, + 0xef, 0x39, 0xd1, 0x27, 0xf8, 0xab, 0xdd, 0x09, + 0x32, 0x30, 0x91, 0xd3, 0xf1, 0x6c, 0x65, 0x0e, + 0xa7, 0x44, 0x02, 0x86, 0x4f, 0xb8, 0x6f, 0xfe, + 0xf0, 0x21, 0x1c, 0xee, 0x10, 0x3c, 0xe0, 0x84, + 0xae, 0x21, 0x00, 0xa7, 0xb6, 0x06, 0xfd, 0xa6, + 0x6d, 0x11, 0xa9, 0x30, 0x76, 0x80, 0x1a, 0x70, + 0x0c, 0x17, 0x41, 0x2c, 0x73, 0x8a, 0xc8, 0x77, + 0x77, 0x7a, 0x36, 0x74, 0x8c, 0x72, 0x2e, 0x23, + 0x82, 0x7a, 0x8f, 0x8d, 0x77, 0xc4, 0xc3, 0xa8, + 0xc8, 0x34, 0xce, 0xa0, 0xe5, 0xbc, 0x42, 0x60, + 0x26, 0x41, 0x52, 0x71, 0x2d, 0x34, 0xe1, 0xf6, + 0x6c, 0x79, 0xbe, 0x9a, 0xc0, 0x71, 0x94, 0xe4, + 0xa9, 0x7d, 0x88, 0x34, 0x2f, 0xdf, 0x1b, 0x00, + 0xb8, 0x14, 0x34, 0x7f, 0x9d, 0xe4, 0x71, 0xb0, + 0x6f, 0x10, 0xfd, 0xc9, 0x49, 0x26, 0x02, 0xaa, + 0xf7, 0x60, 0x10, 0x18, 0x46, 0xc6, 0x72, 0x9e, + 0x89, 0x58, 0xae, 0x24, 0x03, 0xbe, 0x43, 0x41, + 0xbc, 0x2d, 0xe8, 0xbf, 0xe1, 0x43, 0x2f, 0x28, + 0x13, 0x88, 0xfb, 0x50, 0x92, 0xbe, 0xcf, 0xdf, + 0xc3, 0xe0, 0x56, 0x06, 0x35, 0x3a, 0xd1, 0x0b, + 0x5c, 0x80, 0x53, 0x22, 0x03, 0x96, 0xe4, 0x0c, + 0x45, 0x2a, 0x50, 0x63, 0x62, 0x22, 0xfe, 0x58, + 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x28, 0x50, 0xa1, + 0x42, 0xb6, 0x2e, 0xc2, 0xc4, 0xe2, 0x57, 0x45, + 0x65, 0x42, 0x3f, 0xb3, 0x1b, 0x33, 0x9b, 0x64, + 0xe1, 0xd5, 0x2a, 0xaf, 0xe3, 0x14, 0x28, 0x50, + 0xa1, 0x42, 0x85, 0x1f, 0xd8, 0xa0, 0xd8, 0x33, + 0xae, 0x84, 0xba, 0x68, 0x67, 0x48, 0xa5, 0xab, + 0x26, 0x74, 0xfa, 0x94, 0x47, 0xe6, 0xe2, 0x04, + 0x08, 0x10, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, + 0x10, 0x80, 0x8b, 0x7e, 0x17, 0xd1, 0xdb, 0x3f, + 0x4f, 0x0d, 0x0e, 0x6d, 0xe7, 0x4c, 0x51, 0xdd, + 0x43, 0x20, 0x3f, 0x18, 0x40, 0x81, 0x02, 0x04, + 0x08, 0x6d, 0xe4, 0x11, 0x4f, 0x55, 0x8d, 0x74, + 0x12, 0xbd, 0x4e, 0x71, 0x80, 0x25, 0xc1, 0x90, + 0x5d, 0x77, 0x51, 0xcd, 0xf8, 0xf4, 0x4b, 0xc0, + 0x50, 0xa8, 0x0a, 0x48, 0x50, 0xd9, 0xe5, 0x6e, + 0xf4, 0x07, 0x84, 0x11, 0x8c, 0x5a, 0x10, 0x6a, + 0x9f, 0x0e, 0x3d, 0x19, 0x38, 0xae, 0x7a, 0xbc, + 0x50, 0x8a, 0x92, 0x46, 0x12, 0x49, 0x35, 0x93, + 0x53, 0x89, 0xac, 0x0e, 0x04, 0xb9, 0x17, 0x6e, + 0xf1, 0xaf, 0x3b, 0xe3, 0x9c, 0xde, 0x3b, 0x44, + 0x1d, 0xe0, 0xf2, 0x0f, 0x13, 0xcb, 0x20, 0xd0, + 0x1b, 0xb6, 0xdf, 0x33, 0xaf, 0x6e, 0xf9, 0xde, + 0x46, 0xd2, 0x6c, 0xae, 0x3d, 0xcb, 0xae, 0x28, + 0x8a, 0xad, 0x45, 0xb9, 0x74, 0xc7, 0x72, 0x9a, + 0x67, 0x39, 0xb3, 0xa1, 0x4b, 0xbe, 0x76, 0xbb, + 0xcf, 0x0c, 0x50, 0x45, 0x04, 0x88, 0xa0, 0x8f, + 0x22, 0x73, 0x1c, 0xd0, 0x68, 0x1a, 0x68, 0x8f, + 0x70, 0xd4, 0x7c, 0x72, 0xab, 0x98, 0xa0, 0x1d, + 0x6a, 0xac, 0xec, 0x83, 0x14, 0x21, 0x37, 0x0a, + 0xc8, 0x1a, 0xac, 0xd2, 0x91, 0xb3, 0x1a, 0x9d, + 0x25, 0xa3, 0x5b, 0xdc, 0x9a, 0xdd, 0x1b, 0xe7, + 0x58, 0xb8, 0x56, 0x76, 0x4b, 0xa3, 0xcd, 0x16, + 0xcd, 0xf6, 0xc8, 0x2a, 0x0a, 0xca, 0xef, 0x67, + 0x15, 0xdd, 0x9d, 0x2e, 0x02, 0xd0, 0x5d, 0xb4, + 0x16, 0xa4, 0x5d, 0x75, 0x9a, 0x7b, 0x9a, 0xc5, + 0x01, 0x20, 0xe1, 0x28, 0x73, 0xc1, 0xa9, 0xcb, + 0xc7, 0x77, 0x27, 0xc7, 0xc2, 0x3c, 0x74, 0xdf, + 0x09, 0x9a, 0x2c, 0xb8, 0xff, 0x00, 0xa5, 0x25, + 0x08, 0xd6, 0x19, 0x5a, 0xbc, 0xea, 0x6a, 0x4e, + 0x46, 0xb0, 0xe5, 0x0c, 0x7c, 0xca, 0x4c, 0xc2, + 0x97, 0x52, 0x9a, 0x68, 0x44, 0x51, 0x17, 0xe4, + 0xf1, 0xe3, 0xc7, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, + 0xe3, 0xc7, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, + 0xc6, 0x00, 0x1a, 0x80, 0x43, 0x2b, 0x28, 0x01, + 0xdd, 0x00, 0x6d, 0x40, 0x5c, 0x07, 0xb8, 0x33, + 0x84, 0xd7, 0xa8, 0x42, 0xa9, 0x36, 0x1f, 0xd5, + 0xe2, 0x71, 0x26, 0x22, 0xa7, 0x7b, 0x4b, 0x35, + 0x46, 0x62, 0xfb, 0xbd, 0xb1, 0x5e, 0x3e, 0x8d, + 0x7f, 0x19, 0x5e, 0x3e, 0x8f, 0xae, 0x6e, 0x1c, + 0x01, 0x32, 0x15, 0xb0, 0x8a, 0x1a, 0x1d, 0x63, + 0x5a, 0xc3, 0xab, 0x3e, 0x9c, 0x31, 0x19, 0x2b, + 0x28, 0x38, 0x36, 0x91, 0x16, 0x87, 0x82, 0xc5, + 0x04, 0x09, 0x4c, 0x41, 0xda, 0xf0, 0xe8, 0x1e, + 0xaa, 0xc9, 0x9a, 0x07, 0xc4, 0x8c, 0x90, 0x2a, + 0x95, 0x21, 0x5a, 0x11, 0x52, 0x62, 0xb0, 0xb7, + 0x89, 0x9e, 0xd5, 0xd5, 0x2b, 0x44, 0x42, 0x5b, + 0xf1, 0x09, 0x4e, 0xea, 0x28, 0x18, 0x67, 0xaf, + 0x71, 0x9d, 0x19, 0xa4, 0x51, 0xd0, 0x9a, 0xc4, + 0xe4, 0x4c, 0x7a, 0xa3, 0xc1, 0x18, 0xcf, 0xd8, + 0x69, 0x08, 0xd1, 0xd4, 0xd8, 0x89, 0x09, 0x10, + 0x0e, 0xa2, 0xf0, 0x4b, 0xab, 0x34, 0x15, 0x01, + 0x5b, 0x0f, 0x3a, 0x0c, 0x11, 0x69, 0x4e, 0x54, + 0x55, 0x0c, 0x45, 0x67, 0xb6, 0x82, 0x6a, 0xc7, + 0x36, 0x6c, 0xb2, 0x59, 0x10, 0x24, 0x1c, 0x35, + 0xbe, 0x99, 0x07, 0x71, 0x03, 0xc5, 0x21, 0x8c, + 0xec, 0xcb, 0x84, 0x1d, 0xa4, 0x64, 0xe0, 0xf5, + 0x0d, 0x78, 0xfa, 0x3e, 0xb9, 0x5e, 0x3e, 0x8f, + 0xae, 0x57, 0x77, 0xb6, 0x14, 0x3b, 0xa1, 0xba, + 0xc0, 0x26, 0x70, 0x24, 0xb7, 0xea, 0xef, 0x83, + 0x8b, 0xb5, 0x37, 0xe9, 0x9c, 0xf8, 0x2f, 0xa6, + 0x05, 0x39, 0x53, 0x9e, 0x0f, 0xe4, 0xca, 0xee, + 0xf6, 0xc5, 0x21, 0x59, 0xf5, 0x55, 0x38, 0x03, + 0x75, 0x66, 0xba, 0xf1, 0x88, 0xec, 0x5a, 0xa2, + 0x29, 0x89, 0x0d, 0x64, 0xd1, 0x38, 0x1a, 0x79, + 0x35, 0x56, 0x28, 0x1d, 0x37, 0x6e, 0xac, 0x9b, + 0x65, 0xa3, 0x3a, 0xed, 0x97, 0x12, 0xe6, 0x7d, + 0x72, 0xa0, 0x6d, 0x36, 0x0b, 0x91, 0x1c, 0xb0, + 0x38, 0x1e, 0xdc, 0x74, 0x6e, 0x14, 0x88, 0xec, + 0xc7, 0x1c, 0x19, 0x2f, 0x87, 0xf2, 0xa8, 0x25, + 0x53, 0x62, 0xac, 0xe2, 0x80, 0x2f, 0xb6, 0x45, + 0x7e, 0xd9, 0x61, 0x32, 0xe4, 0xbc, 0x00, 0x56, + 0x79, 0x67, 0x13, 0x07, 0x65, 0xc1, 0xf2, 0x58, + 0x5e, 0x13, 0xde, 0xf9, 0xb7, 0x1d, 0xa7, 0x4c, + 0xf4, 0xc2, 0x22, 0xc4, 0x33, 0x8b, 0xc5, 0x01, + 0x16, 0xcb, 0xc3, 0x56, 0x16, 0x74, 0xcd, 0x25, + 0x44, 0xfc, 0xd3, 0xf4, 0x42, 0xd2, 0x49, 0x05, + 0x26, 0x04, 0x31, 0x20, 0x88, 0x72, 0x99, 0x8e, + 0xb4, 0xb1, 0x2f, 0xfc, 0x7c, 0xce, 0x01, 0x0e, + 0x20, 0x28, 0x91, 0x5d, 0xde, 0xd9, 0x5d, 0xde, + 0xd9, 0xe2, 0xbd, 0x30, 0xd0, 0x10, 0x7b, 0xc9, + 0xfb, 0x31, 0xd5, 0x3a, 0xfe, 0xae, 0x0e, 0xc0, + 0x5e, 0x41, 0x55, 0xe8, 0xe8, 0x15, 0x02, 0xc2, + 0xe4, 0x02, 0x28, 0x82, 0x0c, 0x50, 0x94, 0x47, + 0x48, 0xec, 0x79, 0xc9, 0xf0, 0x9f, 0xdc, 0xfa, + 0x7c, 0x19, 0x3d, 0x14, 0x30, 0x4e, 0xe3, 0xd2, + 0x88, 0x8a, 0x6b, 0x19, 0x18, 0x39, 0x28, 0x4b, + 0xec, 0x90, 0xd8, 0xa6, 0xb0, 0x37, 0xce, 0x80, + 0xac, 0x91, 0x61, 0x9c, 0x08, 0x60, 0xae, 0x72, + 0x89, 0x20, 0x85, 0xe8, 0x15, 0x67, 0x4a, 0xa2, + 0x88, 0x62, 0x4f, 0xb8, 0x14, 0xfe, 0x47, 0x9b, + 0x71, 0xa2, 0x8c, 0xc4, 0x77, 0xef, 0x91, 0x1c, + 0x38, 0x69, 0xfa, 0x44, 0x14, 0x78, 0x1d, 0xd4, + 0x5a, 0xe7, 0x16, 0xe1, 0xd4, 0x1a, 0x1a, 0xce, + 0xa6, 0x54, 0xd2, 0xb9, 0x50, 0xe5, 0x90, 0x14, + 0x5f, 0x09, 0x3e, 0x86, 0xa8, 0xcd, 0x12, 0x41, + 0xe0, 0x31, 0x38, 0xfb, 0x02, 0xd4, 0x94, 0xa0, + 0xa7, 0xc3, 0x20, 0x77, 0xd0, 0xf6, 0x90, 0x07, + 0x45, 0x4e, 0x4f, 0xf4, 0x19, 0xb9, 0xe2, 0xcb, + 0xe9, 0x50, 0x47, 0x42, 0xc4, 0x78, 0x28, 0x37, + 0x35, 0xbc, 0x84, 0x2c, 0xa7, 0x5a, 0x01, 0x0e, + 0x0a, 0x50, 0xe2, 0x60, 0x12, 0x58, 0x71, 0xe9, + 0x35, 0x9e, 0x5f, 0x08, 0xac, 0xf1, 0x7d, 0x0f, + 0xa6, 0x78, 0xbe, 0x87, 0xd3, 0x3f, 0xc5, 0xfa, + 0x31, 0x38, 0x44, 0x1b, 0xdc, 0x82, 0xfb, 0x1b, + 0x1f, 0xac, 0x0b, 0xb4, 0x40, 0x17, 0x10, 0xd0, + 0x2a, 0x40, 0x68, 0xde, 0xbe, 0x51, 0x6a, 0xd5, + 0xab, 0x56, 0xad, 0x5a, 0xb5, 0x6a, 0xd5, 0xab, + 0x56, 0xad, 0x5a, 0xb5, 0x6a, 0xd5, 0xa0, 0x22, + 0x0a, 0x34, 0x42, 0x44, 0xe1, 0x1e, 0x29, 0x80, + 0x84, 0xb8, 0x00, 0x3c, 0x80, 0x03, 0xf6, 0xff, + 0x00, 0xae, 0x9f, 0xff, 0xc4, 0x00, 0x2d, 0x11, + 0x01, 0x01, 0x00, 0x02, 0x01, 0x02, 0x05, 0x03, + 0x04, 0x03, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x11, 0x00, 0x21, 0x31, 0x51, 0x71, 0x41, + 0x61, 0xa1, 0xd1, 0xf0, 0x40, 0x81, 0x91, 0x10, + 0x30, 0xb1, 0xf1, 0x20, 0x50, 0xc1, 0x60, 0x80, + 0x90, 0x70, 0xff, 0xda, 0x00, 0x08, 0x01, 0x02, + 0x01, 0x01, 0x3f, 0x10, 0xff, 0x00, 0xd8, 0x59, + 0x20, 0xeb, 0xd3, 0xa0, 0xa0, 0x00, 0x5c, 0x14, + 0xa2, 0xc8, 0x17, 0x5c, 0x13, 0x4b, 0xae, 0x33, + 0x86, 0x8d, 0xfd, 0x13, 0x2c, 0xb2, 0xcb, 0x2c, + 0xb2, 0xcb, 0x2c, 0xb2, 0xcb, 0x2c, 0xb2, 0xcb, + 0x3e, 0x4d, 0xf1, 0xd3, 0x23, 0xd4, 0xca, 0xa6, + 0x13, 0x49, 0x41, 0x45, 0x62, 0x3f, 0xee, 0x00, + 0xa2, 0x78, 0x60, 0x88, 0x89, 0x75, 0x56, 0xf0, + 0xc2, 0x0f, 0xb1, 0x2f, 0x2a, 0x8f, 0xc0, 0x10, + 0x00, 0x00, 0x00, 0x2f, 0x02, 0xf6, 0xde, 0x02, + 0xe8, 0x15, 0xe8, 0x17, 0x10, 0xe5, 0x1d, 0xc4, + 0xfe, 0x71, 0x12, 0x51, 0x2e, 0xca, 0x72, 0x75, + 0x30, 0xab, 0x25, 0x77, 0x7c, 0x07, 0xc8, 0x83, + 0x01, 0x5d, 0x0e, 0x34, 0x0a, 0x62, 0x64, 0xd4, + 0x3a, 0x9c, 0xfe, 0xfe, 0x80, 0xad, 0x49, 0x6f, + 0x5d, 0xdf, 0x28, 0x22, 0x62, 0xd7, 0x67, 0x1b, + 0xb1, 0x37, 0x42, 0x27, 0x3a, 0x41, 0x9a, 0x69, + 0xc6, 0x37, 0xb0, 0x8b, 0x34, 0x50, 0x0e, 0xb5, + 0x5e, 0x32, 0x1c, 0x7d, 0x2a, 0x85, 0x0a, 0x14, + 0x28, 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x28, + 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x25, 0xff, + 0x00, 0xa9, 0x50, 0xde, 0xa5, 0xbe, 0x8a, 0x85, + 0x60, 0xb8, 0x15, 0x0e, 0x16, 0x45, 0x24, 0xcd, + 0x0f, 0xa5, 0xf4, 0x50, 0xa1, 0x42, 0x85, 0x0a, + 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, + 0x28, 0x50, 0xa1, 0x42, 0x80, 0xb2, 0x4b, 0x54, + 0xcf, 0x91, 0xcf, 0x31, 0xfc, 0xb1, 0xc4, 0x98, + 0x9e, 0x68, 0xb9, 0x45, 0x64, 0x0e, 0x17, 0xf6, + 0x02, 0x89, 0x10, 0x22, 0x60, 0x0b, 0x11, 0x51, + 0xd9, 0x52, 0x6a, 0x35, 0x60, 0x47, 0x6c, 0xc0, + 0x64, 0xbc, 0x54, 0x15, 0x02, 0xa7, 0x8b, 0xad, + 0x2f, 0x27, 0xa8, 0x5f, 0xdc, 0x22, 0x88, 0x5c, + 0x83, 0x69, 0xe4, 0x6d, 0x36, 0x54, 0x0e, 0x80, + 0xb0, 0xb5, 0xf0, 0x5b, 0xcb, 0x74, 0x19, 0xb8, + 0x72, 0x36, 0x33, 0x53, 0x88, 0xb0, 0xc5, 0x11, + 0x1f, 0x42, 0x04, 0x2c, 0x11, 0x88, 0x74, 0x16, + 0xca, 0x38, 0x54, 0xd3, 0x71, 0x78, 0xe5, 0x74, + 0x7d, 0x3d, 0xb2, 0xba, 0x3e, 0x9e, 0xd9, 0x5d, + 0x1f, 0x4f, 0x6c, 0xae, 0x8f, 0xa7, 0xb6, 0x57, + 0x47, 0xd3, 0xdb, 0x2b, 0xa3, 0xe9, 0xed, 0x95, + 0xd1, 0xf4, 0xf6, 0xc1, 0x1c, 0xcc, 0x65, 0x39, + 0x4e, 0x43, 0x0d, 0x43, 0x0a, 0x3b, 0x7c, 0xcd, + 0x71, 0x05, 0x48, 0x0d, 0xd5, 0x0a, 0xba, 0xb0, + 0x52, 0x5b, 0x39, 0x7c, 0x09, 0x4e, 0xc8, 0x4c, + 0x95, 0x83, 0x05, 0x00, 0x04, 0xc6, 0x0c, 0x23, + 0x0c, 0xc2, 0xe5, 0x1a, 0x84, 0x04, 0x9d, 0x8d, + 0x1b, 0x15, 0x70, 0x24, 0xac, 0xf2, 0x86, 0x16, + 0x8a, 0x2a, 0x53, 0x8b, 0x0d, 0x54, 0xe6, 0xe0, + 0x8f, 0x1c, 0xcd, 0x3c, 0x0e, 0x38, 0x20, 0x48, + 0x94, 0x90, 0x40, 0x1a, 0x81, 0x15, 0x28, 0x5a, + 0xe8, 0xfa, 0x7b, 0x65, 0x74, 0x7d, 0x3d, 0xb2, + 0xba, 0x3e, 0x9e, 0xd9, 0x5d, 0x1f, 0x4f, 0x6c, + 0xae, 0x8f, 0xa7, 0xb6, 0x57, 0x47, 0xd3, 0xdb, + 0x2d, 0xea, 0x85, 0x9b, 0x74, 0x1b, 0x1d, 0xa7, + 0x9a, 0x0e, 0x97, 0x1d, 0x0f, 0x6c, 0x88, 0xc7, + 0x09, 0x03, 0x80, 0xd7, 0x06, 0x57, 0x47, 0xd3, + 0xdb, 0x2b, 0xa3, 0xe9, 0xed, 0x81, 0xe0, 0x29, + 0x98, 0x13, 0xc8, 0x25, 0x04, 0xf5, 0x80, 0x02, + 0x1f, 0x91, 0xae, 0x9b, 0xac, 0x3d, 0x83, 0x9d, + 0xa1, 0xbe, 0x0e, 0x47, 0x08, 0x0c, 0x5f, 0x14, + 0x33, 0x8c, 0x2b, 0x49, 0xb4, 0x01, 0x5a, 0xa4, + 0xeb, 0xa8, 0x81, 0x46, 0xe8, 0x20, 0x40, 0xb1, + 0x36, 0x30, 0xb1, 0x26, 0x14, 0x16, 0xd6, 0x05, + 0x2e, 0xa8, 0xa8, 0x00, 0x0c, 0xb1, 0x9f, 0xd9, + 0xae, 0x05, 0x37, 0x4c, 0xdf, 0x52, 0xd3, 0x8c, + 0xab, 0xd1, 0x48, 0x95, 0x17, 0x76, 0x22, 0x4d, + 0x8c, 0x83, 0x76, 0xdb, 0xc8, 0x1e, 0x86, 0x55, + 0x2a, 0xc8, 0x17, 0x21, 0x80, 0x5d, 0x84, 0xa0, + 0x00, 0x63, 0x3c, 0xae, 0x47, 0x81, 0xf4, 0x80, + 0xcc, 0xd5, 0xec, 0x44, 0x98, 0xb4, 0x84, 0x02, + 0xe4, 0x94, 0xa9, 0xeb, 0x49, 0xb2, 0x2b, 0x0d, + 0xb0, 0xd7, 0xea, 0x80, 0x6c, 0x30, 0xc3, 0x0b, + 0x21, 0x74, 0x65, 0x2a, 0xa8, 0x5d, 0x03, 0x36, + 0xd8, 0x8b, 0xb4, 0x89, 0x4b, 0xe2, 0x92, 0x46, + 0x21, 0x72, 0x72, 0x29, 0x51, 0x28, 0x58, 0x78, + 0xca, 0xce, 0x49, 0xa5, 0xc4, 0x21, 0xd4, 0x5a, + 0x54, 0x4d, 0x15, 0x91, 0x16, 0xba, 0x3e, 0x9e, + 0xd9, 0x5d, 0x1f, 0x4f, 0x6c, 0x80, 0xc0, 0x44, + 0x15, 0x3d, 0x21, 0xb1, 0x48, 0xba, 0x50, 0x95, + 0x7f, 0x60, 0x2e, 0x8e, 0x58, 0x05, 0x30, 0x5a, + 0x75, 0x09, 0x2c, 0xc1, 0x49, 0x92, 0x03, 0xd4, + 0x22, 0xf1, 0x42, 0xa6, 0x21, 0x46, 0x78, 0x5f, + 0xd5, 0xdb, 0xb5, 0x89, 0xfa, 0xb2, 0x94, 0xba, + 0x52, 0x19, 0x97, 0xad, 0x7d, 0x09, 0x12, 0xc8, + 0x66, 0x99, 0xc0, 0x33, 0x88, 0x00, 0x05, 0xfa, + 0x44, 0xbf, 0x42, 0x2f, 0xcd, 0x0e, 0x44, 0xe5, + 0x3f, 0xe6, 0x7c, 0xfc, 0x39, 0xf3, 0xf0, 0xe7, + 0xcf, 0xc3, 0x9f, 0x3f, 0x0e, 0x7c, 0xfc, 0x39, + 0xf3, 0xf0, 0xe7, 0xcf, 0xc3, 0x83, 0x4a, 0x73, + 0x22, 0x84, 0x01, 0x83, 0xc4, 0x3a, 0x1a, 0x3e, + 0x30, 0x7f, 0xd9, 0x1f, 0xef, 0x80, 0xe2, 0x9a, + 0x08, 0x23, 0x2c, 0x0d, 0xa8, 0x8d, 0x01, 0xe1, + 0xe8, 0x48, 0xdc, 0xbc, 0x36, 0x94, 0x83, 0xb7, + 0xca, 0x08, 0x14, 0xe0, 0x01, 0x27, 0xfb, 0x39, + 0xe0, 0x81, 0x7c, 0x40, 0x44, 0x80, 0x22, 0xb1, + 0x66, 0xaa, 0x8e, 0xe2, 0x96, 0xd9, 0x7a, 0x22, + 0x47, 0x08, 0xb4, 0xb1, 0x2c, 0x15, 0x82, 0x92, + 0x12, 0xbc, 0x74, 0xb2, 0xa7, 0x46, 0x4c, 0xdd, + 0xf7, 0x33, 0xe7, 0xe1, 0xcf, 0x9f, 0x87, 0x3e, + 0x7e, 0x1c, 0xf9, 0xf8, 0x73, 0xe7, 0xe1, 0xcf, + 0x9f, 0x87, 0x3b, 0xc2, 0x37, 0x78, 0x5e, 0xbd, + 0x43, 0x38, 0x3d, 0x9f, 0xe3, 0x20, 0x5d, 0x0b, + 0xec, 0x2e, 0xa6, 0x7c, 0xfc, 0x39, 0xf3, 0xf0, + 0xe0, 0xbd, 0x27, 0xaf, 0x2a, 0x33, 0x9b, 0xbe, + 0xa2, 0x04, 0x6d, 0x12, 0x34, 0x41, 0x5a, 0x79, + 0x87, 0x55, 0x9e, 0xe7, 0x64, 0xa4, 0xe7, 0x31, + 0x74, 0xb3, 0x68, 0x22, 0x01, 0x1b, 0xfa, 0x60, + 0x8c, 0x69, 0x80, 0x3a, 0xab, 0x82, 0x12, 0x6e, + 0x24, 0x88, 0xbe, 0x76, 0x30, 0x8b, 0x05, 0x16, + 0xd5, 0x62, 0x09, 0x22, 0x07, 0x57, 0xce, 0xc2, + 0xa9, 0x00, 0xaa, 0xa3, 0xe1, 0xb2, 0x24, 0x7d, + 0xd9, 0x4c, 0x39, 0xe1, 0xbe, 0x31, 0x85, 0x92, + 0x53, 0x40, 0x23, 0xc5, 0x61, 0x92, 0xe6, 0x2a, + 0xbd, 0xa0, 0xc5, 0x22, 0x69, 0x60, 0x0c, 0x8f, + 0x05, 0x8b, 0x6b, 0xcf, 0x55, 0xd7, 0xb0, 0x98, + 0x42, 0x9d, 0x74, 0x9c, 0x2d, 0x81, 0xa0, 0x50, + 0x16, 0xc1, 0xa9, 0x06, 0x49, 0x33, 0x9e, 0xc2, + 0xd1, 0x5c, 0x49, 0xda, 0x45, 0xd3, 0x05, 0x2c, + 0x62, 0xc0, 0x85, 0xcc, 0xd0, 0xe7, 0xa3, 0x45, + 0xe1, 0x26, 0x8d, 0x09, 0xab, 0x6c, 0x96, 0xb0, + 0x4b, 0x5e, 0x23, 0x1a, 0xc4, 0xde, 0x91, 0x51, + 0x05, 0x34, 0x39, 0x45, 0x6f, 0x5d, 0x9e, 0xf6, + 0x00, 0xa7, 0x6e, 0xf0, 0xbf, 0x2b, 0xa9, 0x9f, + 0x3f, 0x0e, 0x7c, 0xfc, 0x39, 0xe0, 0x8f, 0x31, + 0x5d, 0xf7, 0xfa, 0x75, 0xfe, 0x7f, 0x64, 0x2a, + 0x14, 0x27, 0x80, 0x2a, 0xce, 0x74, 0x57, 0x10, + 0x41, 0x47, 0x20, 0x44, 0xee, 0x3b, 0x3f, 0x40, + 0x5e, 0x05, 0xd2, 0xeb, 0xa1, 0xcb, 0xd8, 0xf1, + 0xfd, 0x47, 0xa4, 0xd9, 0x44, 0xb2, 0xca, 0x0e, + 0xe6, 0xe7, 0x4c, 0xda, 0x69, 0x96, 0x8a, 0x37, + 0xb0, 0x95, 0x34, 0xec, 0xe8, 0xf4, 0xfd, 0x10, + 0x88, 0xb9, 0x81, 0x18, 0xf0, 0xc6, 0x3b, 0xc6, + 0x05, 0x00, 0x54, 0x89, 0x4e, 0xa5, 0xe4, 0xf3, + 0x35, 0x9b, 0xc6, 0xc0, 0x22, 0xa8, 0x68, 0x22, + 0x54, 0x51, 0x89, 0x78, 0x71, 0x12, 0x88, 0x36, + 0xa9, 0x01, 0xd5, 0x52, 0x1f, 0xb4, 0x2d, 0x73, + 0x9a, 0xa0, 0x6d, 0x01, 0xd1, 0x70, 0x6c, 0x0a, + 0x48, 0xbe, 0x0a, 0x15, 0xb1, 0x2b, 0x42, 0x1c, + 0x2d, 0x2e, 0x17, 0xf9, 0xe7, 0xcf, 0x9f, 0x3e, + 0x7c, 0xfc, 0x1e, 0x1f, 0x1e, 0x15, 0xe6, 0x78, + 0x7e, 0xd9, 0xe0, 0x6b, 0xe6, 0x78, 0xdd, 0x73, + 0x66, 0xb5, 0x38, 0x76, 0x1f, 0x7c, 0xf8, 0x1a, + 0xdd, 0xa7, 0x33, 0xd7, 0x3b, 0x2e, 0xfe, 0xbb, + 0xbf, 0x3b, 0xe6, 0xcb, 0xbf, 0xae, 0xcf, 0xce, + 0x64, 0xf3, 0x1d, 0x9d, 0xab, 0x60, 0x91, 0xa0, + 0xe0, 0x30, 0xff, 0x00, 0x3c, 0xb9, 0xf3, 0xe7, + 0xcf, 0x9f, 0x3d, 0x46, 0xdd, 0x68, 0x4e, 0xc8, + 0x3e, 0x90, 0x08, 0xaf, 0xe8, 0x0a, 0xf4, 0xa3, + 0x29, 0x51, 0x08, 0x05, 0xc0, 0x29, 0xfa, 0xac, + 0xf9, 0xf4, 0x4d, 0x56, 0xcd, 0x57, 0xac, 0xf1, + 0xfe, 0x99, 0xd4, 0xe5, 0xfb, 0xb7, 0xf3, 0x9d, + 0x97, 0x7c, 0x97, 0x64, 0xe9, 0xe5, 0xc0, 0x38, + 0x3b, 0xcc, 0x2b, 0x9d, 0x13, 0x55, 0xb3, 0x55, + 0xeb, 0x3c, 0x78, 0x07, 0x07, 0xd8, 0xbf, 0x8c, + 0xa9, 0xcb, 0x5e, 0x6e, 0x50, 0x36, 0x1b, 0xd4, + 0x2c, 0xec, 0xbb, 0xfa, 0xee, 0xfc, 0xef, 0x80, + 0x58, 0x77, 0x98, 0x57, 0xbe, 0x40, 0xd8, 0x6f, + 0x50, 0xb3, 0xc9, 0xe3, 0xf3, 0xe3, 0x77, 0xf1, + 0xe7, 0xe0, 0xe7, 0x91, 0xd3, 0xcb, 0xe5, 0x9b, + 0x2e, 0xf9, 0x2e, 0xc9, 0xd3, 0xcb, 0x88, 0x23, + 0x20, 0x58, 0x83, 0x04, 0x42, 0xac, 0xa0, 0xde, + 0x48, 0xf1, 0x83, 0xb9, 0x2a, 0x35, 0xd7, 0x04, + 0x64, 0x10, 0x33, 0x3b, 0xe5, 0x21, 0x6b, 0x9e, + 0x40, 0x4a, 0xbf, 0x60, 0xe5, 0x43, 0x78, 0x6d, + 0x1b, 0x12, 0x58, 0x04, 0xa4, 0xa9, 0xe8, 0x9d, + 0x80, 0xfd, 0x80, 0xab, 0x8c, 0x30, 0x03, 0x38, + 0x1d, 0xdc, 0xda, 0x90, 0xc8, 0x69, 0x0a, 0xb0, + 0x23, 0x8e, 0x4a, 0xc9, 0xd2, 0x24, 0x5f, 0xda, + 0x0e, 0x7d, 0x48, 0x98, 0x13, 0x93, 0x09, 0x7c, + 0xf2, 0xe1, 0xa3, 0x1b, 0x40, 0x69, 0x8b, 0x31, + 0x01, 0xd1, 0xee, 0x8b, 0x85, 0xb5, 0x2c, 0x32, + 0x38, 0xd1, 0x3a, 0xc4, 0x59, 0xc1, 0x14, 0xda, + 0x09, 0xc1, 0xa9, 0x80, 0x1b, 0xfc, 0x73, 0x2a, + 0x4b, 0x30, 0x35, 0x03, 0x2b, 0xdc, 0x88, 0x85, + 0xd8, 0xf1, 0x2d, 0x0a, 0x08, 0x2f, 0x2e, 0xfc, + 0xc1, 0x7b, 0xa0, 0x94, 0x81, 0x81, 0x46, 0x4b, + 0xc0, 0xaa, 0x80, 0x6d, 0x4d, 0x8a, 0xe5, 0x22, + 0x27, 0x68, 0x0d, 0xa1, 0xd9, 0xca, 0x11, 0xbb, + 0x77, 0x52, 0xd2, 0x36, 0x22, 0xe8, 0x19, 0x86, + 0x33, 0x75, 0xa2, 0xf1, 0xb5, 0xe5, 0x93, 0x98, + 0x7f, 0xe0, 0x22, 0xc2, 0xb9, 0xb7, 0x7e, 0xec, + 0x6b, 0x84, 0xf3, 0x06, 0x1a, 0xba, 0x3c, 0x05, + 0xbb, 0xe6, 0x2e, 0x4d, 0x28, 0xe1, 0x0d, 0x48, + 0xf2, 0x3a, 0xeb, 0x13, 0x16, 0x06, 0x4c, 0x0a, + 0xff, 0x00, 0x2c, 0x45, 0xc0, 0x02, 0x16, 0x86, + 0xdb, 0x1a, 0xea, 0x47, 0x9e, 0x7c, 0xfb, 0x25, + 0x41, 0x36, 0xc3, 0xb0, 0xb5, 0x01, 0xa8, 0x15, + 0x01, 0xb8, 0x05, 0x6d, 0x3b, 0x08, 0x61, 0x0f, + 0xc2, 0x09, 0xa3, 0x02, 0x3f, 0xa2, 0x1c, 0x07, + 0x00, 0x00, 0xb5, 0xea, 0xb3, 0xa3, 0x5c, 0x55, + 0x5d, 0x37, 0x24, 0x9c, 0x14, 0x37, 0x54, 0x03, + 0x48, 0x84, 0xcb, 0xb5, 0x64, 0x2e, 0x90, 0x58, + 0xd4, 0xd6, 0x61, 0x07, 0x72, 0x19, 0x50, 0xc4, + 0xe5, 0xf3, 0x8d, 0x05, 0xa8, 0x00, 0x82, 0x92, + 0x31, 0x04, 0xa4, 0xd2, 0x09, 0xe2, 0x1f, 0xb0, + 0x67, 0x54, 0x13, 0xb8, 0xfc, 0x79, 0x7f, 0xb9, + 0x0a, 0x80, 0x40, 0x88, 0x82, 0x24, 0x40, 0xc8, + 0xa5, 0x28, 0x3a, 0xa5, 0xe7, 0x10, 0x20, 0x0d, + 0x11, 0x0a, 0x25, 0x49, 0x12, 0x89, 0x4a, 0x51, + 0x39, 0x3f, 0x44, 0x40, 0x51, 0x04, 0xa2, 0x9a, + 0x4a, 0x94, 0xea, 0x51, 0x35, 0xe2, 0x27, 0x87, + 0xe8, 0x51, 0x48, 0x15, 0x05, 0x83, 0x95, 0x38, + 0x0f, 0x15, 0xd1, 0xe3, 0x86, 0x2b, 0x34, 0x31, + 0x2d, 0x60, 0x82, 0x25, 0x82, 0x0b, 0xe0, 0xe0, + 0xae, 0xca, 0x48, 0xed, 0xac, 0x10, 0x41, 0xda, + 0x9c, 0x3d, 0x30, 0x15, 0x00, 0x55, 0x40, 0x02, + 0xaa, 0xe8, 0x00, 0xda, 0xaf, 0x06, 0x3e, 0x73, + 0x44, 0x91, 0xd1, 0x40, 0x8f, 0x92, 0x65, 0x3d, + 0x21, 0xb9, 0x10, 0x9a, 0x11, 0x28, 0x0b, 0x4a, + 0x80, 0xd7, 0x04, 0x41, 0x10, 0x00, 0x54, 0xa8, + 0x59, 0x05, 0x8c, 0x17, 0x71, 0x9c, 0x7e, 0xcf, + 0xca, 0x74, 0xfd, 0x51, 0xcc, 0x86, 0x47, 0x70, + 0x49, 0x6d, 0x28, 0x02, 0x81, 0xfa, 0x35, 0x6a, + 0x3b, 0x3d, 0xa5, 0x20, 0x9c, 0x25, 0x0c, 0x29, + 0x0f, 0xeb, 0x01, 0x5b, 0x3a, 0xcb, 0x87, 0x87, + 0x53, 0x12, 0xe0, 0x10, 0xd4, 0x59, 0xc2, 0x4a, + 0x1e, 0x93, 0xb8, 0xb5, 0xa6, 0xe4, 0x70, 0x70, + 0xdf, 0xa1, 0x28, 0x17, 0x9b, 0x3c, 0x67, 0x34, + 0x82, 0x78, 0x5d, 0x29, 0xf7, 0xb3, 0xae, 0x95, + 0x4a, 0x9e, 0x3c, 0x40, 0xe6, 0x02, 0xd5, 0x05, + 0x2a, 0x90, 0xa5, 0x83, 0x85, 0x00, 0x73, 0x17, + 0xb9, 0x61, 0xd3, 0x7c, 0x79, 0x59, 0x0e, 0x40, + 0x26, 0x95, 0x41, 0xb3, 0x37, 0x06, 0x13, 0x8c, + 0x17, 0x20, 0x05, 0x5d, 0x80, 0x2b, 0xcd, 0x00, + 0xbf, 0x7c, 0x70, 0x41, 0x87, 0x64, 0x26, 0x9a, + 0xd5, 0x42, 0x12, 0x0e, 0x43, 0x40, 0x82, 0xe8, + 0x85, 0x08, 0x46, 0xa1, 0x06, 0x05, 0x6f, 0x35, + 0x77, 0x41, 0x0a, 0x96, 0x5a, 0x8c, 0x04, 0x9f, + 0x84, 0x09, 0x48, 0xc4, 0xef, 0xd8, 0x41, 0xe1, + 0x8f, 0x94, 0xe9, 0xfa, 0xbf, 0xc6, 0xab, 0x70, + 0x91, 0xb4, 0x14, 0x04, 0x93, 0x9c, 0x6d, 0x60, + 0x2e, 0x14, 0xcd, 0x83, 0xd5, 0x35, 0x69, 0x7d, + 0x60, 0x90, 0xbc, 0x69, 0x0e, 0x4a, 0x89, 0x1d, + 0x12, 0xf0, 0x8c, 0x92, 0xf5, 0x33, 0x31, 0x38, + 0x92, 0xcf, 0x9a, 0x5a, 0x42, 0xd1, 0x4b, 0xce, + 0xda, 0x21, 0xea, 0x35, 0xe3, 0xa7, 0x3d, 0x7c, + 0xd1, 0xcb, 0x86, 0xbd, 0x60, 0xc5, 0x5e, 0xc2, + 0xca, 0x8e, 0x40, 0x10, 0xfa, 0x69, 0x87, 0xc1, + 0xfe, 0xbe, 0xda, 0xab, 0x66, 0xd3, 0x54, 0x41, + 0x31, 0x7c, 0x2e, 0xc9, 0x1c, 0x20, 0x11, 0x40, + 0xcb, 0x62, 0x05, 0xa2, 0xd9, 0x89, 0xf0, 0x64, + 0x96, 0xf7, 0x20, 0x6c, 0x3c, 0x88, 0x0e, 0x84, + 0x22, 0x00, 0x28, 0x82, 0xd8, 0xe2, 0xae, 0x0b, + 0xb7, 0x84, 0xa8, 0x49, 0xd3, 0x10, 0x9a, 0x60, + 0xd1, 0x04, 0x5c, 0x44, 0xe0, 0xa8, 0x1d, 0x14, + 0x29, 0x09, 0x85, 0x92, 0x53, 0x60, 0xb0, 0x91, + 0xa0, 0xa0, 0xc5, 0x1a, 0x19, 0x2a, 0x18, 0xd5, + 0xe7, 0x55, 0x41, 0xd6, 0x8f, 0xec, 0x1f, 0x29, + 0xd3, 0xf5, 0x49, 0x4a, 0x0b, 0x03, 0x2d, 0x01, + 0xc2, 0xb9, 0xa2, 0xf7, 0xe9, 0x1c, 0x63, 0x58, + 0xf0, 0x5e, 0x1a, 0x14, 0x82, 0x08, 0x65, 0x7f, + 0x54, 0x3f, 0x67, 0x54, 0x9b, 0x2e, 0xa6, 0x63, + 0x52, 0x41, 0x44, 0xfd, 0x02, 0x85, 0xe8, 0x6d, + 0x13, 0x29, 0x11, 0xa1, 0xa4, 0xa2, 0x69, 0x1f, + 0xa3, 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, + 0x0a, 0x14, 0x28, 0x50, 0xa1, 0x42, 0x85, 0x0a, + 0x15, 0xda, 0x5e, 0x95, 0x62, 0x23, 0x88, 0x54, + 0x4d, 0xe0, 0x1a, 0xff, 0x00, 0xde, 0x82, 0x1e, + 0x9c, 0x5d, 0xe3, 0x64, 0x65, 0x15, 0x40, 0x45, + 0x22, 0x3f, 0x4b, 0xc3, 0x87, 0x0e, 0x1c, 0x38, + 0x70, 0xe1, 0xc3, 0x87, 0x0e, 0x1c, 0x38, 0x70, + 0xe1, 0xc3, 0x87, 0x0e, 0x00, 0xde, 0x47, 0x04, + 0x0a, 0x4b, 0x68, 0x02, 0x15, 0xd1, 0x5f, 0xf4, + 0x0c, 0xd7, 0xe5, 0x08, 0x13, 0x55, 0x07, 0x24, + 0x26, 0x14, 0x02, 0x7c, 0x2b, 0x1d, 0x2a, 0x20, + 0xa3, 0xa6, 0x5a, 0x69, 0x48, 0xbf, 0x49, 0xbf, + 0x7e, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, + 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xf9, + 0xe5, 0x9b, 0x7b, 0x51, 0xa2, 0x7c, 0x49, 0x18, + 0xb4, 0x86, 0x29, 0x2c, 0x1c, 0x7a, 0x40, 0xbb, + 0xd6, 0xae, 0x16, 0x8a, 0x04, 0x54, 0x13, 0xa7, + 0x78, 0xe5, 0x42, 0xab, 0x93, 0x84, 0xe0, 0xa7, + 0x8d, 0xad, 0xe3, 0xa4, 0xcc, 0x14, 0x0a, 0xe6, + 0x9b, 0x58, 0x7a, 0x61, 0x5d, 0x3e, 0xd7, 0x31, + 0x8a, 0x83, 0xc5, 0x6f, 0x9d, 0x73, 0xa3, 0x5d, + 0xfa, 0x7d, 0xf0, 0xd3, 0xad, 0x86, 0x83, 0x80, + 0x02, 0xb0, 0x2c, 0x05, 0xe8, 0x60, 0xfe, 0x05, + 0x65, 0x6c, 0xea, 0x98, 0x9b, 0xdc, 0xaf, 0x55, + 0x37, 0x4e, 0x48, 0x53, 0xc3, 0x7d, 0x37, 0xad, + 0xe7, 0x31, 0x28, 0xda, 0x46, 0x87, 0x85, 0xe9, + 0xf7, 0xc0, 0x81, 0xf4, 0xd3, 0x5a, 0x31, 0x02, + 0xd4, 0x02, 0xd8, 0x56, 0x44, 0x16, 0x5d, 0x3a, + 0x36, 0x8d, 0x4e, 0xc3, 0x07, 0xf1, 0x23, 0x3a, + 0x96, 0x22, 0x24, 0x94, 0x94, 0x68, 0xab, 0xcb, + 0x69, 0x21, 0x6f, 0x49, 0xcd, 0xc3, 0x32, 0x53, + 0x61, 0x4c, 0x4f, 0x58, 0xa1, 0x51, 0xe1, 0x5b, + 0xe7, 0x5a, 0x74, 0x6b, 0x73, 0x7d, 0x37, 0xac, + 0xe6, 0x05, 0x26, 0x48, 0x4b, 0x12, 0xd7, 0xb0, + 0x17, 0x4a, 0x8d, 0x51, 0x54, 0xb4, 0x01, 0x49, + 0xcd, 0x39, 0xd7, 0x8e, 0x32, 0xa2, 0xc4, 0xd2, + 0x3b, 0x0f, 0x47, 0x27, 0x09, 0xc1, 0xb3, 0x17, + 0x82, 0x07, 0xde, 0x14, 0xc4, 0x89, 0x10, 0x04, + 0xdd, 0x69, 0xa3, 0x64, 0xdc, 0x2b, 0xb1, 0x37, + 0x4f, 0xd7, 0xc8, 0xf3, 0xf0, 0x51, 0x23, 0x79, + 0x21, 0x43, 0x5f, 0x00, 0xa3, 0x1e, 0x5e, 0x98, + 0x3c, 0x73, 0x39, 0xc8, 0x5d, 0xe9, 0xec, 0xba, + 0xba, 0x57, 0x76, 0xe2, 0x44, 0x2e, 0x85, 0xc1, + 0xc4, 0x24, 0x3c, 0xef, 0x18, 0x60, 0xaf, 0x60, + 0x74, 0x60, 0xd3, 0x2b, 0x2b, 0x24, 0x05, 0x1c, + 0x2a, 0x68, 0xf6, 0xb3, 0x62, 0x11, 0x8a, 0xe7, + 0x45, 0x01, 0xa7, 0xd2, 0xb6, 0xb5, 0x08, 0x05, + 0x44, 0x6c, 0xe3, 0x44, 0xc0, 0xad, 0x72, 0x93, + 0xe2, 0xc2, 0xd1, 0x74, 0xb3, 0x50, 0x2e, 0x06, + 0xa4, 0xa2, 0xd5, 0x61, 0xc2, 0x14, 0x6e, 0x55, + 0xab, 0x46, 0x06, 0x85, 0xd5, 0xc3, 0x1f, 0x70, + 0x3c, 0xb2, 0x25, 0xc2, 0x01, 0xa5, 0x54, 0x2a, + 0x0e, 0x97, 0x05, 0x28, 0x60, 0xbe, 0x9c, 0x4d, + 0x62, 0x05, 0x49, 0x7f, 0x47, 0x25, 0x6a, 0x02, + 0xa7, 0x01, 0x0b, 0x84, 0x92, 0x10, 0x80, 0x95, + 0x24, 0xec, 0xb0, 0x7c, 0xf6, 0xb0, 0x94, 0xa8, + 0x6e, 0x84, 0x6a, 0xfb, 0xc9, 0xd1, 0x8d, 0x08, + 0xa7, 0x3c, 0xdd, 0xa4, 0x91, 0xd4, 0x54, 0x09, + 0x32, 0x60, 0x2c, 0xa2, 0x20, 0x12, 0xb2, 0x03, + 0x48, 0x02, 0x85, 0x06, 0xec, 0x96, 0x9c, 0x0c, + 0x25, 0xdc, 0x05, 0x17, 0x42, 0xe7, 0x23, 0x89, + 0x2c, 0xa7, 0x14, 0x5e, 0xb1, 0x48, 0x41, 0x4c, + 0x2e, 0xb8, 0xa2, 0x48, 0x90, 0x13, 0x41, 0x09, + 0xbc, 0x3a, 0xf8, 0x50, 0x6c, 0xa6, 0x95, 0xbd, + 0xc6, 0x69, 0x87, 0xbd, 0xc2, 0x44, 0x39, 0x4b, + 0xb1, 0x04, 0x7c, 0x47, 0x22, 0xca, 0x70, 0x01, + 0x84, 0xba, 0x6b, 0xf8, 0x36, 0x99, 0xa3, 0x65, + 0x7f, 0x3b, 0x0f, 0x57, 0x3e, 0x45, 0xcf, 0x91, + 0x72, 0xf9, 0xae, 0x88, 0xd0, 0x78, 0x38, 0xa8, + 0xca, 0x0a, 0x85, 0x5b, 0xb8, 0x3a, 0xb2, 0xdd, + 0xdc, 0x11, 0xc5, 0xbb, 0x10, 0xb2, 0x9d, 0xa7, + 0x2d, 0x62, 0x97, 0xda, 0x60, 0x97, 0x26, 0x67, + 0xf3, 0x74, 0xf5, 0xa6, 0x30, 0xb6, 0x04, 0x0b, + 0x8f, 0x31, 0x79, 0x62, 0x62, 0xc1, 0x8b, 0x09, + 0x78, 0x99, 0x24, 0x14, 0x2c, 0x86, 0x7b, 0x2f, + 0x49, 0x94, 0xfd, 0x89, 0x4c, 0x25, 0x6f, 0x15, + 0x16, 0x6a, 0x14, 0xab, 0xba, 0x62, 0xf5, 0x55, + 0x57, 0xd7, 0xc7, 0x11, 0x58, 0xc8, 0x29, 0x56, + 0x79, 0x08, 0x47, 0x80, 0x05, 0xd0, 0x75, 0x9e, + 0xb7, 0xb1, 0x44, 0x0c, 0x2d, 0xc4, 0x41, 0x9c, + 0x0c, 0x45, 0x40, 0xdb, 0xa0, 0xd3, 0x50, 0x65, + 0xd8, 0xa0, 0xe7, 0x11, 0x88, 0x06, 0x92, 0x78, + 0x94, 0xce, 0x05, 0xd8, 0xe5, 0xb4, 0x06, 0xba, + 0xb7, 0x14, 0x92, 0x12, 0x99, 0xf8, 0x16, 0xb9, + 0xb0, 0x30, 0x36, 0x9b, 0xaf, 0xac, 0x40, 0x6a, + 0x4a, 0x06, 0xa7, 0x3e, 0x2c, 0xea, 0x3b, 0xa1, + 0xd1, 0xa9, 0x53, 0x58, 0xb9, 0xf9, 0x17, 0x3e, + 0x45, 0xcf, 0x91, 0x71, 0xf9, 0x80, 0xfc, 0xbf, + 0xfd, 0xfa, 0xfe, 0x65, 0x3c, 0xc1, 0xc7, 0x8a, + 0x77, 0xf9, 0x32, 0x3a, 0x3f, 0x2c, 0x5c, 0x0c, + 0xc0, 0x14, 0x89, 0xae, 0xd9, 0xcb, 0x92, 0xc0, + 0x33, 0x00, 0x4c, 0xaa, 0x9d, 0x04, 0x22, 0x9a, + 0xcf, 0x60, 0x20, 0x94, 0xac, 0x99, 0xa8, 0x0a, + 0xb1, 0x80, 0xb5, 0x1d, 0xc3, 0xe4, 0xf9, 0x26, + 0x20, 0x86, 0x15, 0xca, 0x7a, 0x68, 0xb5, 0x84, + 0xf0, 0x38, 0x0a, 0xc3, 0x72, 0x2a, 0x7f, 0x4d, + 0xa4, 0x1e, 0x11, 0x14, 0x65, 0x42, 0x88, 0xc6, + 0x5e, 0xc2, 0x85, 0xc3, 0xf1, 0xc1, 0x43, 0x15, + 0xbf, 0x13, 0xcc, 0xf1, 0x79, 0xb3, 0x8b, 0x86, + 0xfd, 0x5e, 0xdc, 0x20, 0x28, 0x36, 0xa0, 0x0b, + 0x56, 0x0e, 0x5c, 0x5c, 0xe0, 0x6e, 0xc2, 0x05, + 0x6d, 0x76, 0x02, 0xf9, 0xca, 0x88, 0x0c, 0x9e, + 0xc4, 0xc4, 0xdc, 0xfc, 0x24, 0x90, 0x05, 0xcf, + 0x1d, 0x1e, 0xa0, 0x7e, 0x83, 0xe1, 0xe1, 0x99, + 0x72, 0xea, 0xfe, 0x10, 0xd7, 0x34, 0x88, 0x30, + 0xc1, 0x4d, 0x80, 0xbf, 0x08, 0x99, 0x5d, 0x60, + 0x2b, 0x19, 0x6c, 0x02, 0x05, 0x68, 0x1e, 0x8c, + 0x82, 0x88, 0x86, 0x61, 0x87, 0xe7, 0x01, 0xf1, + 0xc0, 0xf0, 0x01, 0xdc, 0xf1, 0x14, 0x20, 0xd6, + 0x7f, 0x88, 0xaa, 0xe0, 0x61, 0x1c, 0x45, 0xc2, + 0x00, 0xaf, 0x22, 0x94, 0x06, 0x98, 0x70, 0xb3, + 0x74, 0x4c, 0x84, 0xb8, 0x86, 0x61, 0xea, 0x32, + 0xb6, 0x64, 0x20, 0x20, 0x61, 0x03, 0x73, 0x44, + 0x89, 0x04, 0x99, 0xbd, 0x0e, 0xac, 0xbc, 0x97, + 0xfd, 0xfb, 0x67, 0x88, 0x3e, 0x84, 0x8f, 0xfc, + 0xc2, 0x8b, 0xc1, 0x44, 0xc4, 0x3b, 0x52, 0x77, + 0xc1, 0xb3, 0x27, 0xe3, 0x89, 0xf8, 0xe3, 0x5e, + 0x4a, 0x9d, 0x10, 0x02, 0x4a, 0x06, 0x83, 0x32, + 0x0c, 0x5b, 0x15, 0xa8, 0x55, 0x38, 0x0c, 0x76, + 0x35, 0x6c, 0x0c, 0x95, 0x10, 0x38, 0x18, 0xb7, + 0x90, 0x40, 0x1f, 0x32, 0xc5, 0x3c, 0x99, 0xba, + 0x8a, 0xbd, 0x27, 0x38, 0x60, 0xc0, 0x96, 0xb1, + 0x10, 0xb8, 0x8b, 0x68, 0x2d, 0xbe, 0xcf, 0x54, + 0xa2, 0x84, 0x19, 0x75, 0x13, 0x28, 0x3a, 0xd8, + 0x55, 0xa1, 0x68, 0x00, 0x29, 0x01, 0x8a, 0x09, + 0x91, 0x42, 0x8c, 0xeb, 0x55, 0x88, 0xfc, 0x18, + 0x16, 0xc1, 0x3c, 0x95, 0xbc, 0x29, 0xc2, 0xc4, + 0xab, 0x72, 0x0b, 0x37, 0x31, 0x82, 0xb7, 0x39, + 0x65, 0x9f, 0xf6, 0xd2, 0x05, 0x11, 0x61, 0x47, + 0x10, 0x4c, 0x43, 0x01, 0x36, 0x06, 0x86, 0x5f, + 0x3c, 0x43, 0x04, 0xe9, 0x12, 0x1b, 0xc2, 0x40, + 0x76, 0xae, 0x84, 0x95, 0x6c, 0x2a, 0x28, 0x91, + 0x56, 0x2e, 0x51, 0x94, 0xf8, 0xd5, 0x07, 0x9b, + 0x4d, 0x3d, 0xa0, 0xd0, 0x93, 0xc3, 0x26, 0x4b, + 0xa5, 0x54, 0x89, 0x08, 0xc1, 0x5c, 0x03, 0xee, + 0xcd, 0x3d, 0xe4, 0xc5, 0x36, 0x81, 0x0e, 0xcf, + 0x8a, 0x45, 0xc9, 0xf8, 0xe2, 0x7e, 0x38, 0x2c, + 0x5c, 0x40, 0x35, 0x57, 0xc5, 0x5e, 0x00, 0x54, + 0x02, 0x81, 0x9c, 0xc5, 0x2f, 0x5c, 0xe6, 0xa0, + 0x91, 0xaa, 0x3f, 0x5e, 0xb9, 0xa3, 0x1a, 0x83, + 0x6c, 0x4b, 0xac, 0x16, 0xc2, 0x0d, 0x0c, 0xdd, + 0xc2, 0xbe, 0x4b, 0x10, 0xb1, 0x8f, 0x08, 0x3e, + 0x5f, 0xa0, 0xc2, 0xfd, 0x41, 0xf0, 0x44, 0x6c, + 0x00, 0xa4, 0x34, 0x91, 0x00, 0x96, 0x9b, 0xec, + 0x90, 0x04, 0x45, 0xd0, 0x00, 0x36, 0x4a, 0xcb, + 0x40, 0x8f, 0x27, 0xda, 0xf4, 0x6b, 0x35, 0x4d, + 0x1d, 0x35, 0x7e, 0x31, 0xe2, 0xef, 0x34, 0x3c, + 0x07, 0x4c, 0xfe, 0x66, 0xf9, 0xdd, 0x7c, 0xdf, + 0xa4, 0xcf, 0xbc, 0xe9, 0xf1, 0x8e, 0x98, 0x5b, + 0x95, 0xd4, 0xdf, 0x17, 0x4f, 0x26, 0x43, 0x81, + 0xd4, 0xf2, 0xba, 0x79, 0x3f, 0x48, 0x83, 0x31, + 0x58, 0xec, 0x0f, 0x97, 0x66, 0x6e, 0x3a, 0x96, + 0x33, 0xb0, 0xa3, 0x41, 0x33, 0x42, 0x80, 0x54, + 0xa1, 0xc5, 0xaa, 0x69, 0xe6, 0x6a, 0xbd, 0x66, + 0x3c, 0x5d, 0xee, 0x97, 0x90, 0xe9, 0xfa, 0x62, + 0x7e, 0x06, 0x79, 0x5d, 0x3c, 0x99, 0xa2, 0x69, + 0xe9, 0xab, 0xf1, 0x8e, 0xa6, 0x66, 0xfd, 0x68, + 0x1c, 0x83, 0xa8, 0x37, 0x2d, 0xae, 0x03, 0x39, + 0xa9, 0x04, 0x14, 0xab, 0x43, 0xee, 0x64, 0x32, + 0xb3, 0xe9, 0x4d, 0x12, 0x34, 0x68, 0xd1, 0xa3, + 0x46, 0x8d, 0x1a, 0x34, 0x68, 0xd1, 0xa3, 0x46, + 0x8d, 0x1a, 0x34, 0x6b, 0x53, 0x3c, 0x05, 0x12, + 0x01, 0x8d, 0x45, 0x79, 0xff, 0x00, 0xf9, 0xd9, + 0xa3, 0xea, 0x26, 0x75, 0x13, 0x6b, 0x91, 0x1f, + 0x4b, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, + 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, + 0xdf, 0xbf, 0x61, 0x0a, 0x04, 0x7c, 0x6c, 0x52, + 0xe3, 0x18, 0xb0, 0xc6, 0x71, 0xfe, 0xdc, 0x64, + 0xcc, 0x21, 0x66, 0x49, 0x69, 0x88, 0x9a, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x02, 0x64, 0xf4, 0xfa, 0x7b, 0x64, + 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, 0x64, + 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, 0x64, + 0xf4, 0xfa, 0x7b, 0x61, 0xf3, 0xa9, 0xd4, 0xba, + 0x09, 0x07, 0x34, 0x7a, 0x18, 0x28, 0xfb, 0x90, + 0xda, 0x05, 0x21, 0x0a, 0x01, 0x52, 0x32, 0x7a, + 0x7d, 0x3d, 0xb1, 0xe1, 0x98, 0x22, 0xe7, 0x50, + 0xdf, 0x0a, 0x45, 0x63, 0x2c, 0xf4, 0xfa, 0x7b, + 0x64, 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, + 0x64, 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, + 0x64, 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, + 0x64, 0xf4, 0xfa, 0x7b, 0x64, 0xf4, 0xfa, 0x7b, + 0x64, 0xf4, 0xfa, 0x7b, 0x60, 0xd7, 0x20, 0x6a, + 0x06, 0xdb, 0x7d, 0x36, 0xc7, 0x3b, 0xfd, 0xb5, + 0x1f, 0x5f, 0x55, 0xf5, 0x3a, 0x67, 0x77, 0xae, + 0x3b, 0xbd, 0x71, 0xdd, 0xeb, 0x8e, 0xef, 0x5c, + 0x77, 0x7a, 0xe3, 0xbb, 0xd7, 0x1d, 0xde, 0xb8, + 0xd8, 0x56, 0x97, 0x5e, 0x41, 0xd5, 0x9e, 0x3c, + 0xd4, 0xe3, 0xe4, 0x94, 0x88, 0x43, 0xc6, 0x05, + 0x91, 0xd4, 0x89, 0x88, 0x32, 0x8a, 0x66, 0x0a, + 0x64, 0x59, 0x45, 0xda, 0x61, 0xaa, 0x20, 0x5a, + 0xc8, 0x2e, 0x4f, 0xb2, 0x0c, 0x5f, 0xe0, 0x75, + 0xa1, 0x15, 0x60, 0x4c, 0x48, 0x9a, 0xdb, 0x60, + 0x45, 0x31, 0x22, 0x81, 0x31, 0x92, 0xa3, 0x9e, + 0xbc, 0x05, 0xc4, 0xaa, 0xcb, 0x85, 0x15, 0x1c, + 0xee, 0xf5, 0xc7, 0x77, 0xae, 0x3b, 0xbd, 0x71, + 0xdd, 0xeb, 0x8e, 0xef, 0x5c, 0x77, 0x7a, 0xe3, + 0xbb, 0xd7, 0x17, 0x3b, 0xe6, 0x57, 0x92, 0xea, + 0xeb, 0xd3, 0x0d, 0x83, 0xd7, 0xfd, 0xb4, 0x19, + 0x0a, 0xe8, 0x19, 0xcd, 0x22, 0xd5, 0xf4, 0xf2, + 0x89, 0x9d, 0xde, 0xb8, 0xee, 0xf5, 0xc7, 0x77, + 0xae, 0x3b, 0xbd, 0x71, 0xdd, 0xeb, 0x8e, 0xef, + 0x5c, 0x77, 0x7a, 0xe0, 0x4e, 0x51, 0xe9, 0x51, + 0x50, 0x63, 0xc2, 0x1e, 0xa3, 0x9e, 0x0f, 0xa1, + 0x59, 0x28, 0x74, 0x94, 0x3b, 0x55, 0xe0, 0x47, + 0x4e, 0x66, 0x3c, 0x64, 0x93, 0x46, 0x44, 0x31, + 0x44, 0x38, 0xdc, 0x12, 0x18, 0x03, 0x4f, 0x3b, + 0x2c, 0x83, 0xac, 0xd9, 0x2f, 0x10, 0x92, 0x84, + 0x76, 0x90, 0x00, 0x8c, 0x25, 0x6c, 0xe8, 0xe1, + 0x4e, 0xc0, 0x8f, 0x79, 0xaf, 0x96, 0xe4, 0xcb, + 0x14, 0xe2, 0x51, 0x88, 0x48, 0xd2, 0x78, 0xee, + 0xf5, 0xc7, 0x77, 0xae, 0x3b, 0xbd, 0x71, 0xdd, + 0xeb, 0x8e, 0xef, 0x5c, 0x77, 0x7a, 0xe3, 0xbb, + 0xd7, 0x05, 0xdf, 0x7b, 0xaf, 0x2d, 0xc1, 0xec, + 0x6e, 0x3c, 0x7f, 0xb6, 0x14, 0x44, 0x51, 0x1a, + 0x22, 0x88, 0x9c, 0x22, 0x6c, 0x4f, 0x04, 0xd9, + 0x88, 0x14, 0x67, 0x02, 0x1a, 0x07, 0x44, 0x78, + 0xa2, 0xf8, 0xab, 0xf4, 0xa5, 0x0a, 0x14, 0x28, + 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x28, 0x50, + 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x28, 0x97, 0xc0, + 0x83, 0x9e, 0x94, 0x64, 0xc1, 0x04, 0x00, 0x54, + 0x00, 0xff, 0x00, 0xd1, 0xdd, 0x82, 0x34, 0x88, + 0x98, 0x71, 0x46, 0x08, 0x31, 0x15, 0x69, 0x12, + 0xa6, 0xf9, 0xc2, 0x0f, 0x8d, 0xa2, 0x8c, 0x94, + 0xbf, 0x4b, 0xd3, 0xa7, 0x4e, 0x9d, 0x3a, 0x74, + 0xe9, 0xd3, 0xa7, 0x4e, 0x9d, 0x3a, 0x74, 0xe9, + 0xd3, 0xa7, 0x4e, 0x9b, 0x27, 0x22, 0x40, 0x09, + 0x61, 0x86, 0x88, 0xda, 0x9c, 0x02, 0xe6, 0xd6, + 0xe1, 0x95, 0x13, 0xe3, 0x4d, 0xa5, 0xf4, 0x94, + 0x68, 0xd1, 0xa3, 0x46, 0x8d, 0x1a, 0x34, 0x68, + 0xd1, 0xa3, 0x46, 0x8d, 0x1a, 0x34, 0x68, 0xd1, + 0xa2, 0x20, 0xcc, 0x6d, 0x87, 0x84, 0x33, 0xe4, + 0x77, 0xf1, 0x7a, 0xf4, 0x1a, 0xdd, 0x93, 0x03, + 0x6c, 0x7f, 0x9e, 0x3e, 0x17, 0x83, 0x0d, 0x3e, + 0x7c, 0x22, 0x68, 0xd7, 0x8c, 0x48, 0x3a, 0x56, + 0x82, 0xc4, 0x0d, 0x02, 0x43, 0xa1, 0x6c, 0x6d, + 0x0e, 0x3e, 0x95, 0x42, 0x85, 0x0a, 0x14, 0x28, + 0x50, 0xa1, 0x42, 0x85, 0x0a, 0x14, 0x28, 0x50, + 0xa1, 0x42, 0x85, 0x0a, 0x0c, 0x89, 0xd3, 0xd2, + 0xa0, 0x4c, 0x0f, 0x23, 0x00, 0xfd, 0x28, 0x38, + 0x53, 0x13, 0x6c, 0x89, 0xe0, 0xb5, 0xc4, 0xd0, + 0xf1, 0x99, 0xdd, 0xeb, 0x88, 0x2a, 0x20, 0x2a, + 0x30, 0x02, 0xa9, 0xf0, 0x00, 0xaf, 0x91, 0x8b, + 0x2a, 0xf7, 0x5e, 0x18, 0xb1, 0xa9, 0xd2, 0x0f, + 0x23, 0x8f, 0x12, 0xf0, 0xe0, 0xac, 0x65, 0x43, + 0x09, 0xca, 0x2d, 0x08, 0xf6, 0xb0, 0xac, 0x40, + 0x53, 0x00, 0x81, 0x82, 0x92, 0xd3, 0x68, 0x90, + 0x25, 0xcc, 0x80, 0x1d, 0x61, 0x42, 0xb9, 0x8c, + 0x16, 0xe0, 0xb1, 0x4a, 0x02, 0x3c, 0x90, 0xba, + 0xe6, 0x30, 0x1d, 0xd8, 0x8a, 0x60, 0xa1, 0x69, + 0x72, 0xa8, 0x53, 0x68, 0x1b, 0x64, 0x15, 0x92, + 0xa9, 0x26, 0x68, 0x83, 0x69, 0xea, 0x4e, 0x2a, + 0x2a, 0xc8, 0x02, 0x8a, 0x20, 0xc4, 0x2a, 0x11, + 0x4a, 0x12, 0x68, 0x63, 0xc1, 0x06, 0x53, 0xa1, + 0x90, 0x5e, 0x6d, 0x05, 0x20, 0x83, 0x15, 0x62, + 0x29, 0xdb, 0x50, 0x3c, 0xf9, 0x59, 0x50, 0x51, + 0x30, 0xdb, 0x2d, 0x11, 0x38, 0x82, 0xd9, 0x42, + 0x4f, 0x02, 0x88, 0x24, 0xa0, 0x28, 0x8e, 0x61, + 0x65, 0xb0, 0x26, 0x20, 0x21, 0x5e, 0x2a, 0xd9, + 0x98, 0x6e, 0x00, 0xbc, 0xd4, 0xed, 0x16, 0xdf, + 0xe2, 0x43, 0xd6, 0x71, 0x49, 0x61, 0xa4, 0x82, + 0xd0, 0x81, 0x4d, 0x96, 0xbc, 0xe8, 0x57, 0x4f, + 0x0a, 0xb2, 0x57, 0xc3, 0x80, 0x68, 0x8a, 0x10, + 0x30, 0x92, 0x10, 0x00, 0x51, 0x91, 0x0e, 0x44, + 0x1a, 0x4a, 0x1c, 0xee, 0xf5, 0xc1, 0x2c, 0xd6, + 0x87, 0x8c, 0x4d, 0xc6, 0xd9, 0xaa, 0x53, 0xaa, + 0x70, 0xe3, 0xa1, 0x7a, 0x0e, 0x1c, 0x10, 0x10, + 0x1a, 0x09, 0xc6, 0x09, 0x3f, 0x19, 0xdd, 0xeb, + 0x8e, 0xef, 0x5c, 0x77, 0x7a, 0xe3, 0xbb, 0xd7, + 0x1d, 0xde, 0xb8, 0xee, 0xf5, 0xc7, 0x77, 0xae, + 0x13, 0xa3, 0x8f, 0x8d, 0x54, 0x4c, 0x02, 0xc5, + 0xa8, 0x5b, 0x23, 0x37, 0x2c, 0x98, 0x61, 0x94, + 0x31, 0x15, 0x00, 0x6a, 0x18, 0xf8, 0x42, 0x9c, + 0x20, 0x53, 0x16, 0xd5, 0x09, 0x02, 0xe1, 0x81, + 0x38, 0x7a, 0x05, 0x6f, 0x11, 0xa0, 0x94, 0x1d, + 0xbb, 0xb3, 0x74, 0xaa, 0x0e, 0x85, 0xbb, 0x8d, + 0x18, 0x22, 0xac, 0xaa, 0xd4, 0x51, 0x5b, 0x83, + 0x17, 0x12, 0x1e, 0x08, 0x2e, 0xec, 0xb6, 0x4e, + 0xef, 0x8d, 0xcc, 0x40, 0x99, 0xdd, 0xeb, 0x8e, + 0xef, 0x5c, 0x77, 0x7a, 0xe3, 0xbb, 0xd7, 0x1d, + 0xde, 0xb8, 0xee, 0xf5, 0xc7, 0x77, 0xae, 0x03, + 0x44, 0x8a, 0x3c, 0x69, 0x25, 0xab, 0x28, 0x65, + 0xe4, 0xff, 0x00, 0x39, 0x88, 0x50, 0x50, 0xa8, + 0x69, 0x78, 0x52, 0x33, 0xc1, 0x72, 0xba, 0x3e, + 0x9e, 0xd9, 0x5d, 0x1f, 0x4f, 0x6c, 0x95, 0x01, + 0x2e, 0x52, 0xdd, 0x83, 0x66, 0xd9, 0x90, 0xd5, + 0x8c, 0x38, 0xb7, 0x2d, 0x13, 0x0e, 0xdf, 0x83, + 0x27, 0x10, 0xd6, 0x2f, 0xd2, 0x92, 0xdf, 0x36, + 0x09, 0x9e, 0x2d, 0x79, 0xe4, 0x01, 0x4c, 0x55, + 0xc5, 0xcf, 0x50, 0x82, 0xcc, 0x33, 0x18, 0xd6, + 0xc2, 0x21, 0xaa, 0x0c, 0x0c, 0xbc, 0x2a, 0x83, + 0x8c, 0xcf, 0x88, 0xa0, 0x04, 0x07, 0xd3, 0x4d, + 0x47, 0x60, 0x83, 0x08, 0x09, 0x8b, 0x01, 0x8c, + 0x84, 0x65, 0x05, 0x79, 0x51, 0x51, 0x70, 0xc1, + 0x2a, 0xcf, 0x1e, 0xf2, 0xa0, 0x43, 0xcb, 0x62, + 0xb0, 0xa9, 0xb9, 0xdd, 0x30, 0xa2, 0x21, 0x46, + 0xe1, 0x89, 0xaa, 0xd4, 0x09, 0x8e, 0xf1, 0x29, + 0x58, 0x26, 0x68, 0x92, 0x4d, 0xd2, 0x9d, 0xca, + 0x75, 0x5a, 0x64, 0x21, 0x96, 0x5a, 0x8c, 0x6a, + 0xfe, 0x4a, 0x14, 0xb2, 0x2a, 0x73, 0x92, 0x38, + 0xa8, 0xd3, 0x9b, 0xc3, 0x50, 0xb3, 0x43, 0x29, + 0xa0, 0xdc, 0xaa, 0xb8, 0x04, 0xe8, 0x0d, 0x46, + 0x6f, 0x0f, 0x74, 0xff, 0x00, 0x75, 0xa1, 0x33, + 0xb7, 0x84, 0x2c, 0xaf, 0x81, 0xa6, 0xa3, 0x4c, + 0xaa, 0x49, 0xb8, 0x9a, 0x45, 0xc0, 0xd0, 0x51, + 0x14, 0x08, 0xfd, 0x98, 0xe5, 0x74, 0x7d, 0x3d, + 0xb0, 0x53, 0x20, 0x00, 0x25, 0x7e, 0x4e, 0x54, + 0x3c, 0x01, 0x1a, 0x7e, 0x86, 0xd8, 0x02, 0xbc, + 0x82, 0x47, 0x99, 0xda, 0x96, 0x79, 0xbf, 0xcf, + 0xb6, 0x5b, 0x50, 0x1e, 0x46, 0xc4, 0xf1, 0x1d, + 0x70, 0xe2, 0xbe, 0x3b, 0x39, 0xab, 0xbe, 0x22, + 0x40, 0x35, 0xf4, 0x08, 0x18, 0xd4, 0x82, 0x1e, + 0x42, 0xae, 0x22, 0x20, 0x5f, 0xe3, 0x59, 0x82, + 0x01, 0xd3, 0x9e, 0x21, 0x01, 0x83, 0x60, 0x4b, + 0x9c, 0xca, 0x82, 0x2c, 0x0a, 0x36, 0x20, 0x02, + 0x10, 0xa7, 0xa2, 0x3c, 0x1d, 0x06, 0x14, 0xd8, + 0x10, 0x2a, 0xd4, 0x22, 0x26, 0x94, 0x4d, 0x24, + 0x28, 0x74, 0x20, 0x4b, 0xd0, 0x9f, 0x44, 0x92, + 0xbe, 0x46, 0x32, 0x3d, 0x97, 0x3d, 0x3e, 0x99, + 0x98, 0xc2, 0x99, 0x0c, 0x28, 0x06, 0x6d, 0x7f, + 0x3d, 0x6e, 0xba, 0xf6, 0xe8, 0x2c, 0x13, 0x02, + 0x44, 0x1b, 0x4d, 0x05, 0x4b, 0xd0, 0x2b, 0x9c, + 0x06, 0x14, 0xb4, 0x53, 0xc6, 0xf6, 0xc0, 0xd5, + 0xbc, 0x6d, 0x83, 0x0b, 0xf8, 0xa8, 0x0b, 0x43, + 0x29, 0x85, 0xdd, 0x39, 0x0f, 0x75, 0x35, 0x8b, + 0x7a, 0x44, 0x20, 0x86, 0x02, 0x46, 0x03, 0x71, + 0xda, 0x8b, 0x3f, 0x38, 0xa1, 0xc0, 0xb7, 0x18, + 0x99, 0xc5, 0x6a, 0x85, 0x1e, 0x96, 0xa0, 0x75, + 0x61, 0x65, 0x77, 0xf3, 0x0d, 0x98, 0x95, 0x72, + 0x50, 0x71, 0xc0, 0x20, 0xda, 0xe7, 0xf2, 0x73, + 0x8e, 0x48, 0xa6, 0x7f, 0x2b, 0x65, 0xd0, 0x59, + 0x22, 0x86, 0x5c, 0xec, 0xf3, 0x7f, 0x9f, 0x6c, + 0x71, 0xcd, 0x70, 0x59, 0x52, 0x22, 0xca, 0xc4, + 0xc3, 0x70, 0x5e, 0x07, 0x1d, 0x8f, 0x67, 0x0c, + 0x01, 0x20, 0x14, 0xe3, 0x45, 0xad, 0x67, 0x77, + 0xc7, 0xdb, 0x3b, 0xbe, 0x3e, 0xd9, 0xdd, 0xf1, + 0xf6, 0xce, 0xef, 0x8f, 0xb6, 0x77, 0x7c, 0x7d, + 0xb3, 0xbb, 0xe3, 0xed, 0x85, 0xff, 0x00, 0xd3, + 0xfa, 0xc2, 0xf9, 0x95, 0xb3, 0x49, 0xa0, 0xd1, + 0xd4, 0x93, 0x60, 0x23, 0x0d, 0xfc, 0x75, 0x6c, + 0x5a, 0x42, 0xe7, 0x7b, 0x8d, 0x3d, 0x63, 0x94, + 0x85, 0xed, 0x98, 0x2b, 0x78, 0x6a, 0x23, 0xd9, + 0xcf, 0x32, 0x44, 0x82, 0xb6, 0x01, 0xe3, 0x52, + 0x9b, 0x35, 0xa3, 0x70, 0x6c, 0x6d, 0xbb, 0x22, + 0xe5, 0xc2, 0xf4, 0x5c, 0x04, 0x45, 0x46, 0x49, + 0x26, 0xc0, 0x8e, 0x59, 0xc4, 0x09, 0xfb, 0x1c, + 0xb1, 0x18, 0x58, 0x19, 0x9d, 0xdf, 0x1f, 0x6c, + 0xee, 0xf8, 0xfb, 0x67, 0x77, 0xc7, 0xdb, 0x3b, + 0xbe, 0x3e, 0xd9, 0xdd, 0xf1, 0xf6, 0xce, 0xef, + 0x8f, 0xb6, 0x77, 0x7c, 0x7d, 0xb0, 0xc5, 0x6a, + 0x80, 0x79, 0xd9, 0xa8, 0x74, 0x35, 0x5f, 0x0a, + 0x5e, 0x4f, 0xf3, 0xe4, 0x2d, 0xf3, 0x21, 0xcb, + 0xbf, 0xc7, 0x1f, 0x7f, 0x0c, 0xf9, 0xf8, 0x73, + 0xe7, 0xe1, 0xc0, 0x60, 0x49, 0xe0, 0x16, 0x07, + 0x2c, 0xbd, 0x01, 0x93, 0xd2, 0x96, 0x62, 0x9e, + 0x8b, 0xd7, 0xa4, 0x8c, 0xe2, 0x4a, 0x32, 0x7b, + 0x14, 0x5b, 0xc2, 0xc3, 0x08, 0xd8, 0x10, 0xd0, + 0xf4, 0xa9, 0xb5, 0x00, 0xcd, 0x50, 0x49, 0x14, + 0x21, 0x8d, 0xb5, 0x8f, 0xe0, 0xd3, 0x67, 0x07, + 0x58, 0xed, 0x66, 0x04, 0xdd, 0x21, 0xf6, 0x52, + 0x8a, 0x40, 0x4a, 0xee, 0xb6, 0x7b, 0xd4, 0xd0, + 0x5c, 0x94, 0x71, 0xa1, 0x22, 0xc6, 0x0a, 0x27, + 0x24, 0x0c, 0x11, 0x80, 0x6e, 0xec, 0x42, 0x4d, + 0x89, 0x18, 0xcc, 0x12, 0x1a, 0xb1, 0xea, 0x6c, + 0x05, 0x8f, 0x5a, 0x78, 0x34, 0x96, 0x31, 0x56, + 0x9e, 0xa7, 0x98, 0xd9, 0xd5, 0x86, 0xbe, 0x70, + 0x30, 0x03, 0x6b, 0x32, 0xee, 0x7d, 0x47, 0x62, + 0xa8, 0xa9, 0x02, 0xa9, 0xc2, 0x52, 0xc1, 0x29, + 0x36, 0x0d, 0xde, 0x26, 0x2a, 0x49, 0x82, 0xb6, + 0x12, 0x10, 0x41, 0x63, 0xa2, 0xb1, 0x4e, 0x55, + 0x93, 0xf7, 0x01, 0x35, 0x37, 0xdb, 0xda, 0x5e, + 0x25, 0x16, 0x68, 0x53, 0x2b, 0x6d, 0x9b, 0x20, + 0xe1, 0x0e, 0x0a, 0x59, 0x32, 0x70, 0xd2, 0x0a, + 0xe9, 0x83, 0x85, 0xf2, 0x86, 0xb8, 0xd5, 0x01, + 0x71, 0xc0, 0x6f, 0x11, 0x4f, 0xe7, 0xe1, 0xcf, + 0x2e, 0x87, 0x37, 0x92, 0xeb, 0xfa, 0x01, 0x81, + 0xdc, 0xb0, 0xe7, 0x08, 0xab, 0x64, 0x82, 0xd0, + 0x03, 0x88, 0x69, 0x2d, 0x0f, 0x7b, 0x88, 0xe8, + 0xa1, 0xea, 0x7e, 0xe4, 0xb9, 0x72, 0xe5, 0xcb, + 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xf8, 0x33, 0xdc, + 0x81, 0x81, 0x82, 0x50, 0x16, 0xa1, 0x07, 0x3e, + 0xfa, 0x6a, 0xbd, 0x87, 0x83, 0x5d, 0xb9, 0x60, + 0x7e, 0xc4, 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2c, + 0xa9, 0x22, 0x06, 0xda, 0x99, 0x75, 0x93, 0x62, + 0x83, 0xf4, 0x15, 0xcd, 0x99, 0xb9, 0xe8, 0x07, + 0x1a, 0x42, 0x0b, 0xc7, 0xf6, 0x7c, 0xff, 0x00, + 0x67, 0xcf, 0xf6, 0x7c, 0xff, 0x00, 0x67, 0xcf, + 0xf6, 0x7c, 0xff, 0x00, 0x67, 0xcf, 0xf6, 0x7c, + 0xff, 0x00, 0x67, 0xcf, 0xf6, 0x7c, 0xff, 0x00, + 0x67, 0xcf, 0xf6, 0x7c, 0xff, 0x00, 0x67, 0xc9, + 0x26, 0xd4, 0x52, 0xeb, 0x21, 0x93, 0x6e, 0x0c, + 0x61, 0x0d, 0x49, 0x15, 0xad, 0xba, 0x00, 0x0d, + 0x48, 0x11, 0xda, 0xff, 0x00, 0x67, 0xcf, 0xf6, + 0x7c, 0xff, 0x00, 0x67, 0xcf, 0xf6, 0x7c, 0xff, + 0x00, 0x67, 0xcf, 0xf6, 0x7c, 0xac, 0x55, 0x0d, + 0x04, 0x57, 0xa5, 0x03, 0xee, 0x98, 0xf3, 0x24, + 0xb0, 0x00, 0xa0, 0x2b, 0x8e, 0x80, 0x3b, 0x2f, + 0xf2, 0xd1, 0xc0, 0x4e, 0x29, 0x44, 0x82, 0x48, + 0x50, 0xa2, 0x4b, 0x02, 0x2e, 0xa1, 0x53, 0x28, + 0x28, 0x50, 0x96, 0x2d, 0x7a, 0x2c, 0xfd, 0x05, + 0x05, 0xc0, 0x76, 0x3f, 0xe3, 0x1b, 0xee, 0xfe, + 0xbb, 0xff, 0x00, 0x38, 0xdd, 0x76, 0x75, 0xdf, + 0xf9, 0xc7, 0x87, 0xa9, 0xda, 0x73, 0xbd, 0x71, + 0xf8, 0x09, 0xe5, 0xbc, 0x9e, 0x47, 0xa6, 0x05, + 0xc0, 0x76, 0x3f, 0xe3, 0x1a, 0xd3, 0x53, 0xc9, + 0xad, 0xee, 0x63, 0x5c, 0xd7, 0xd3, 0x5f, 0xe3, + 0x11, 0xe3, 0x35, 0xba, 0xec, 0xeb, 0xbf, 0xf3, + 0x86, 0x00, 0x44, 0xed, 0x8c, 0x32, 0x66, 0x4b, + 0x42, 0x80, 0xdc, 0x60, 0x0c, 0x59, 0xc4, 0x44, + 0x94, 0x58, 0x95, 0x94, 0xab, 0xb8, 0x76, 0x1a, + 0x1d, 0xe1, 0xd0, 0x70, 0x10, 0x80, 0x0f, 0x21, + 0x37, 0xbe, 0x35, 0x86, 0xb3, 0x83, 0x59, 0x79, + 0x9e, 0x6c, 0xfe, 0x03, 0xcb, 0xe9, 0x89, 0x34, + 0xa3, 0xcb, 0xbd, 0xfb, 0xfe, 0xa7, 0x42, 0xa8, + 0x6c, 0x21, 0x4b, 0x48, 0xd6, 0x09, 0x05, 0x29, + 0x57, 0xff, 0x00, 0x14, 0x82, 0x31, 0x7a, 0x0c, + 0xc3, 0x06, 0xe8, 0x1c, 0x30, 0x41, 0x40, 0x55, + 0x2e, 0xce, 0xef, 0x63, 0x07, 0x48, 0x22, 0x7d, + 0x22, 0xb5, 0x6a, 0xd5, 0xab, 0x56, 0xad, 0x5a, + 0xb5, 0x6a, 0xd5, 0xab, 0x56, 0xad, 0x5a, 0xb5, + 0x6a, 0xd0, 0x15, 0x90, 0x2e, 0x99, 0xd7, 0x40, + 0x4a, 0xf4, 0x01, 0x5e, 0x02, 0xe7, 0x80, 0xc0, + 0x4f, 0x83, 0x6e, 0xd6, 0xb6, 0x1d, 0x6d, 0xfe, + 0xdf, 0x9f, 0x08, 0x3c, 0x83, 0xfa, 0x24, 0x14, + 0xa9, 0x18, 0xfc, 0x8b, 0xdb, 0x23, 0xab, 0xf9, + 0x7d, 0xb2, 0x3a, 0xbf, 0x97, 0xdb, 0x26, 0x90, + 0x50, 0x78, 0x84, 0x20, 0xde, 0xa5, 0x78, 0x29, + 0xce, 0x02, 0x56, 0x08, 0xce, 0x24, 0xd3, 0x72, + 0x20, 0xa4, 0xec, 0x8a, 0x45, 0x35, 0x19, 0x85, + 0x5d, 0x08, 0x21, 0x28, 0x0d, 0x9a, 0xde, 0x01, + 0xf4, 0x86, 0xdd, 0x40, 0x50, 0x96, 0x0d, 0x2d, + 0xc0, 0xd3, 0xaa, 0x87, 0x0d, 0x00, 0xc8, 0xf8, + 0x8b, 0x4f, 0x13, 0x18, 0x92, 0x4c, 0xa8, 0xa3, + 0xfa, 0x5e, 0x7c, 0x05, 0xac, 0xd7, 0x36, 0x44, + 0x4d, 0x94, 0x40, 0x4e, 0xd5, 0xc3, 0x5e, 0xfd, + 0x99, 0x96, 0xd0, 0xeb, 0xde, 0xfc, 0x8e, 0xb8, + 0x3c, 0x41, 0xc4, 0x23, 0x9e, 0x3d, 0x4c, 0x01, + 0x38, 0x8e, 0x46, 0x18, 0xdd, 0x42, 0x0e, 0xda, + 0x38, 0x04, 0x30, 0xe9, 0x51, 0x0c, 0xac, 0x00, + 0xe9, 0x27, 0x5a, 0xac, 0x99, 0x6a, 0x17, 0x1e, + 0x27, 0x57, 0xa3, 0xc0, 0x43, 0x53, 0x34, 0x9c, + 0x95, 0xb3, 0xe2, 0x00, 0x87, 0xd5, 0x02, 0xa0, + 0x8a, 0x18, 0x16, 0xa9, 0x8a, 0x94, 0x2e, 0x50, + 0xe9, 0x04, 0x55, 0x02, 0xe1, 0xa2, 0x55, 0x34, + 0xe8, 0x92, 0xa1, 0x0a, 0x62, 0x2d, 0x89, 0x91, + 0xd5, 0xfc, 0xbe, 0xd9, 0x1d, 0x5f, 0xcb, 0xed, + 0x9d, 0xa7, 0xdd, 0xed, 0x96, 0xe0, 0x88, 0xd3, + 0x46, 0x2f, 0x3b, 0x29, 0xa2, 0xbf, 0xf6, 0xe0, + 0xdb, 0x0e, 0x43, 0x3c, 0x0d, 0x36, 0x87, 0x8f, + 0xa6, 0x47, 0xc1, 0xff, 0x00, 0x71, 0x27, 0x83, + 0xd1, 0xfe, 0x1c, 0x9e, 0x8f, 0xc1, 0xef, 0x87, + 0x29, 0xcd, 0x61, 0x00, 0xa2, 0xef, 0xa5, 0x7e, + 0xd8, 0x3a, 0xba, 0xc3, 0x78, 0xb4, 0x34, 0x94, + 0x48, 0x81, 0x11, 0x6b, 0x43, 0x86, 0xa0, 0xdb, + 0xb5, 0x2d, 0x91, 0x28, 0xca, 0x8a, 0x78, 0x20, + 0xde, 0x4b, 0x61, 0xff, 0x00, 0x71, 0x44, 0xe9, + 0x59, 0x93, 0x20, 0x44, 0x22, 0x54, 0x10, 0x63, + 0xae, 0xad, 0xeb, 0x01, 0x08, 0x2e, 0x30, 0xc6, + 0x0d, 0xa5, 0xc0, 0x41, 0x60, 0x08, 0x9d, 0x83, + 0xe8, 0xac, 0x31, 0x18, 0xb2, 0x70, 0x0c, 0xbd, + 0xdd, 0xf0, 0x3f, 0x0b, 0x30, 0x02, 0x80, 0x26, + 0x4e, 0xd6, 0x98, 0xa3, 0x7e, 0xc3, 0x15, 0xe0, + 0x25, 0xe9, 0x4f, 0x86, 0xc3, 0x21, 0x29, 0x08, + 0x46, 0xc0, 0xd0, 0x4e, 0x52, 0x70, 0x0c, 0x89, + 0xc8, 0x80, 0x03, 0x06, 0x86, 0x8c, 0x10, 0xd7, + 0x68, 0x95, 0xc0, 0x29, 0xfe, 0xcd, 0x24, 0x99, + 0xde, 0xea, 0x26, 0xde, 0x51, 0x9a, 0xf7, 0xd0, + 0xb9, 0xd2, 0xef, 0x2b, 0x90, 0x16, 0x59, 0xd7, + 0x28, 0x05, 0x55, 0x44, 0x4d, 0x82, 0xaa, 0xae, + 0x4f, 0x47, 0xe0, 0xf7, 0xc9, 0x7c, 0x1f, 0x83, + 0xdf, 0x23, 0xe0, 0xff, 0x00, 0xb8, 0x74, 0xc8, + 0xd4, 0x9e, 0x09, 0xe0, 0xbd, 0x3b, 0x7f, 0xb7, + 0x93, 0xeb, 0x9c, 0xdc, 0x70, 0x8d, 0x6b, 0x19, + 0x14, 0x20, 0x85, 0x36, 0x3b, 0x11, 0x42, 0x3c, + 0x22, 0x69, 0x1f, 0x04, 0xe7, 0x3c, 0x87, 0xe3, + 0xb6, 0x79, 0x0f, 0xc7, 0x6c, 0x74, 0x8c, 0x0b, + 0x9a, 0xc3, 0x1d, 0xa5, 0x2b, 0x64, 0x70, 0xed, + 0x40, 0xab, 0x5a, 0x08, 0x27, 0x62, 0x20, 0xec, + 0x2e, 0x28, 0xd5, 0x7b, 0x23, 0xe7, 0x56, 0x73, + 0xc4, 0xa0, 0xdb, 0x17, 0x14, 0x0b, 0x08, 0x81, + 0x95, 0x81, 0x54, 0x91, 0xa9, 0x2e, 0x8f, 0x1c, + 0xae, 0xe7, 0x65, 0x61, 0x1e, 0x3a, 0x32, 0x19, + 0xcc, 0x44, 0xf3, 0x0c, 0x12, 0xbc, 0x08, 0x10, + 0xc3, 0xa6, 0xb9, 0x1b, 0xb4, 0x09, 0x0a, 0xc6, + 0x10, 0x67, 0x8f, 0x30, 0xee, 0x38, 0xad, 0x96, + 0x0a, 0xc5, 0x85, 0xe3, 0x11, 0x2e, 0x68, 0x4a, + 0x08, 0x8e, 0x40, 0x5a, 0x40, 0x2e, 0x8c, 0x07, + 0x35, 0xc1, 0x0c, 0x59, 0x1d, 0x4a, 0x1a, 0x08, + 0x01, 0x07, 0x9b, 0x43, 0x1b, 0xea, 0xe7, 0xb3, + 0xa0, 0xdd, 0xe6, 0x4c, 0x66, 0xe7, 0x2e, 0x15, + 0x0b, 0xdb, 0xa0, 0x02, 0xf8, 0x3c, 0x10, 0x10, + 0x04, 0x59, 0x4d, 0x25, 0xd8, 0x49, 0xf2, 0x08, + 0x64, 0x9a, 0x9d, 0x0d, 0x48, 0xb4, 0x0b, 0xce, + 0x69, 0x9f, 0x30, 0x70, 0xb3, 0xfd, 0xc3, 0x93, + 0x3c, 0x87, 0xe3, 0xb6, 0x79, 0x0f, 0xc7, 0x6c, + 0xf2, 0x1f, 0x8e, 0xd8, 0x4b, 0x7d, 0x20, 0x06, + 0x62, 0xac, 0x5c, 0x08, 0xf4, 0xaf, 0xfb, 0x70, + 0x63, 0x9c, 0x00, 0x1f, 0x60, 0x1f, 0x4b, 0x7e, + 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, + 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, + 0xea, 0xaa, 0xaa, 0xaf, 0x2a, 0xd5, 0xee, 0xbf, + 0xfc, 0xe9, 0xff, 0xc4, 0x00, 0x2b, 0x10, 0x01, + 0x00, 0x02, 0x01, 0x02, 0x05, 0x03, 0x04, 0x03, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x11, 0x21, 0x31, 0x51, 0x10, 0x61, 0x91, + 0xd1, 0xf0, 0x20, 0x41, 0xc1, 0x71, 0xa1, 0xe1, + 0xf1, 0x30, 0x40, 0xb1, 0x81, 0x50, 0x60, 0xff, + 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x3f, + 0x10, 0x74, 0xf4, 0x05, 0xdb, 0xb1, 0xab, 0xf4, + 0x36, 0xd5, 0xce, 0x95, 0x6b, 0x66, 0xb4, 0xc2, + 0xce, 0x2e, 0x47, 0x1a, 0xf4, 0xff, 0x00, 0xe2, + 0x65, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, + 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, + 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, + 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, + 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, + 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, + 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, + 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, + 0xbb, 0x2c, 0x94, 0x9b, 0x97, 0x11, 0xd6, 0xb2, + 0x99, 0x01, 0x34, 0x96, 0x27, 0x99, 0xf7, 0xbc, + 0xe4, 0x2a, 0x38, 0x8a, 0x62, 0x9a, 0xc8, 0x35, + 0xf4, 0xaa, 0xc7, 0xe2, 0x56, 0x06, 0x58, 0x05, + 0xde, 0x86, 0xb2, 0xab, 0xf7, 0x9e, 0x1d, 0xf3, + 0x3c, 0x3b, 0xe6, 0x78, 0x77, 0xcc, 0xf0, 0xef, + 0x99, 0xe1, 0xdf, 0x33, 0xc3, 0xbe, 0x67, 0x87, + 0x7c, 0xcf, 0x0e, 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, + 0xbf, 0xe6, 0x3a, 0x05, 0x7a, 0x58, 0xdf, 0x56, + 0x78, 0x77, 0xcc, 0xf0, 0xef, 0x99, 0xe1, 0xdf, + 0x33, 0xc3, 0xbe, 0x67, 0x87, 0x7c, 0xcf, 0x0e, + 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, 0x3b, 0xe6, 0x78, + 0x77, 0xcc, 0xf0, 0xef, 0x99, 0xe1, 0xdf, 0x33, + 0xc3, 0xbe, 0x60, 0xed, 0x08, 0xec, 0x3b, 0xd0, + 0x62, 0x6d, 0x20, 0xec, 0x9b, 0xd1, 0x67, 0x87, + 0x7c, 0xcf, 0x0e, 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, + 0x3b, 0xe6, 0x78, 0x77, 0xcc, 0xf0, 0xef, 0x99, + 0xe1, 0xdf, 0x33, 0xc3, 0xbe, 0x67, 0x87, 0x7c, + 0xcf, 0x0e, 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, 0x3b, + 0xe6, 0x78, 0x77, 0xcc, 0xf0, 0xef, 0x99, 0xe1, + 0xdf, 0x33, 0xc3, 0xbe, 0x67, 0x87, 0x7c, 0xcf, + 0x0e, 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, 0x3b, 0xe6, + 0x78, 0x77, 0xcc, 0xf0, 0xef, 0x99, 0xe1, 0xdf, + 0x33, 0xc3, 0xbe, 0x67, 0x87, 0x7c, 0xcf, 0x0e, + 0xf9, 0x9e, 0x1d, 0xf3, 0x3c, 0x3b, 0xe6, 0x78, + 0x77, 0xcc, 0xf0, 0xef, 0x99, 0xe1, 0xdf, 0x33, + 0xc3, 0xbe, 0x67, 0x87, 0x7c, 0xcf, 0x0e, 0xf9, + 0x9e, 0x1d, 0xf3, 0x3c, 0x3b, 0xe6, 0x78, 0x77, + 0xcc, 0xf0, 0xef, 0x99, 0xe1, 0xdf, 0x33, 0xc3, + 0xbe, 0x67, 0x87, 0x7c, 0xcf, 0x0e, 0xf9, 0x9e, + 0x1d, 0xf3, 0x3c, 0x3b, 0xe6, 0x78, 0x77, 0xcc, + 0xf0, 0xef, 0x99, 0xe1, 0xdf, 0x33, 0xc3, 0xbe, + 0x63, 0x6f, 0x5c, 0xc9, 0x4d, 0xb6, 0x5c, 0x34, + 0xc1, 0xe7, 0x1c, 0x3b, 0x57, 0xcb, 0x29, 0xf8, + 0x1f, 0xae, 0x9c, 0xfc, 0x66, 0xdc, 0x59, 0xdc, + 0x2b, 0xde, 0x71, 0x22, 0xf0, 0xcd, 0x9e, 0x05, + 0xca, 0xab, 0xd2, 0x49, 0x6d, 0xb0, 0xe2, 0x42, + 0x1a, 0x0b, 0xb8, 0xc5, 0x80, 0xe3, 0x7c, 0x67, + 0xe8, 0xaa, 0x1f, 0x95, 0x8d, 0xed, 0x81, 0x0b, + 0xf0, 0x47, 0x18, 0xdc, 0x1b, 0xe5, 0x62, 0x0b, + 0xb8, 0x0b, 0x08, 0x15, 0x6d, 0xec, 0x87, 0x78, + 0x01, 0xc8, 0x22, 0x90, 0xca, 0x5a, 0x3b, 0x1c, + 0xf6, 0x1e, 0xca, 0xf0, 0xca, 0x57, 0x02, 0xb9, + 0x34, 0xc5, 0x6c, 0xb6, 0x5e, 0x8c, 0x19, 0xf1, + 0xa5, 0x89, 0xe4, 0xc1, 0x09, 0x59, 0x4d, 0xbf, + 0xe9, 0x77, 0x99, 0xc4, 0x0d, 0xad, 0xe5, 0xc2, + 0x6c, 0xda, 0x02, 0x1a, 0x2e, 0x36, 0x16, 0x7d, + 0x02, 0xc8, 0xee, 0x81, 0x37, 0x80, 0x25, 0x70, + 0x3f, 0x3e, 0x4e, 0x11, 0xaf, 0xe9, 0x70, 0x65, + 0x7f, 0x8b, 0x96, 0xc9, 0xb5, 0x6b, 0x1b, 0x89, + 0x90, 0xaa, 0xa8, 0x4c, 0x38, 0x7d, 0xf8, 0x13, + 0x1c, 0x7d, 0x5b, 0xcb, 0x0b, 0x35, 0x82, 0x92, + 0x5a, 0x4a, 0x52, 0x6c, 0x7c, 0x07, 0x20, 0x6c, + 0xc9, 0x9d, 0x4f, 0x92, 0x6e, 0x19, 0x1e, 0x10, + 0xdb, 0x6e, 0x1e, 0xcf, 0x71, 0x7a, 0x65, 0xa6, + 0x3e, 0x06, 0xbf, 0xf7, 0x67, 0x64, 0xd3, 0x68, + 0xdd, 0x1f, 0xd5, 0x07, 0x09, 0x7c, 0x4f, 0x61, + 0x02, 0x00, 0x10, 0x6c, 0x4f, 0x4c, 0xe7, 0x04, + 0xb6, 0x12, 0x45, 0xe0, 0xe9, 0x5a, 0x84, 0x01, + 0xcb, 0xa5, 0x81, 0x82, 0x6e, 0x42, 0x5d, 0x02, + 0x08, 0x7e, 0xa3, 0x00, 0x44, 0x02, 0xb4, 0x5d, + 0xee, 0x69, 0xb6, 0x22, 0xcc, 0xd9, 0xd6, 0x52, + 0xf2, 0xe8, 0x5d, 0x4e, 0xe1, 0x42, 0x85, 0x88, + 0xac, 0xd3, 0xd1, 0x25, 0xa4, 0x04, 0x33, 0x6b, + 0x5a, 0xd0, 0xb1, 0x2d, 0x36, 0x47, 0x2d, 0x1e, + 0x80, 0x99, 0x06, 0x8e, 0x76, 0xa5, 0xa1, 0x02, + 0x8e, 0xd4, 0x58, 0x6f, 0x1c, 0x3f, 0x60, 0x2f, + 0xad, 0x76, 0xe2, 0xde, 0x59, 0xa4, 0x21, 0x47, + 0x95, 0x53, 0x64, 0x25, 0x36, 0xe1, 0x12, 0x2f, + 0xf1, 0x92, 0x43, 0xb1, 0x29, 0xa0, 0x8a, 0x14, + 0xa2, 0x93, 0xec, 0xbf, 0xe8, 0x5c, 0xb9, 0x72, + 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, + 0xcb, 0x97, 0x03, 0x07, 0xb2, 0x46, 0x2d, 0x2c, + 0xea, 0x3a, 0x99, 0xd3, 0xd5, 0x66, 0xcd, 0x9b, + 0x36, 0x74, 0xa6, 0x06, 0xe1, 0xc4, 0x19, 0x5e, + 0xc0, 0xb0, 0x13, 0x3d, 0x41, 0x8d, 0x64, 0xfa, + 0xf7, 0x07, 0xd5, 0x66, 0xcd, 0x9b, 0x36, 0x69, + 0x8b, 0x81, 0x13, 0xab, 0x1a, 0x98, 0xac, 0xa5, + 0x62, 0xf8, 0x6d, 0xf2, 0xfb, 0xe7, 0x8c, 0xda, + 0x0c, 0x68, 0xf2, 0x4b, 0xe8, 0xce, 0x57, 0x52, + 0x72, 0xba, 0x90, 0xb5, 0xd5, 0xb1, 0x9c, 0xa6, + 0x9f, 0xf6, 0x30, 0xab, 0x98, 0x13, 0x45, 0x99, + 0xf7, 0x3a, 0xe3, 0x52, 0xc4, 0x0a, 0x81, 0x20, + 0x42, 0xe7, 0xc6, 0x03, 0x24, 0x65, 0x4a, 0x2a, + 0x03, 0x03, 0x52, 0x98, 0x9f, 0x3f, 0x4c, 0x49, + 0x23, 0x87, 0x27, 0xcf, 0xdd, 0x90, 0xb6, 0xb0, + 0xa0, 0x73, 0x65, 0x7c, 0x91, 0x85, 0x87, 0xfb, + 0x7f, 0x5e, 0xb9, 0x12, 0x0e, 0x64, 0xa4, 0x11, + 0x7e, 0x2f, 0xa1, 0x98, 0x1a, 0x9f, 0x30, 0x3b, + 0x03, 0x94, 0x00, 0x15, 0x40, 0x9a, 0x80, 0x25, + 0xc6, 0x97, 0x1b, 0x7c, 0x63, 0x69, 0x01, 0x69, + 0x38, 0xbd, 0x98, 0x4f, 0xc2, 0xb0, 0x01, 0x7d, + 0xe4, 0x95, 0x9d, 0xd2, 0x9f, 0x96, 0x88, 0xa7, + 0x79, 0xe9, 0xa4, 0xdc, 0xed, 0xce, 0x15, 0x6a, + 0x98, 0xf1, 0xea, 0xef, 0xfc, 0x4c, 0xee, 0x05, + 0x54, 0x71, 0x39, 0x4d, 0x73, 0x10, 0x67, 0x39, + 0xd1, 0x0e, 0x4b, 0x3b, 0x41, 0xee, 0xea, 0xd8, + 0xfe, 0x3a, 0x79, 0x0d, 0x1d, 0xd8, 0xb6, 0x54, + 0xb2, 0x9a, 0xc6, 0x04, 0xa5, 0xc3, 0x57, 0x4c, + 0x3c, 0x5b, 0x69, 0x32, 0x8f, 0x3a, 0xbd, 0xe3, + 0xf0, 0x01, 0xc8, 0xc9, 0x01, 0xd6, 0x88, 0x0e, + 0xab, 0x54, 0x33, 0x00, 0x55, 0xc1, 0xd4, 0x1a, + 0xf7, 0x4f, 0x88, 0x66, 0x89, 0xc4, 0x61, 0x8b, + 0x88, 0x66, 0x44, 0x40, 0xc4, 0x6a, 0xc0, 0x1b, + 0x70, 0x8d, 0xbb, 0xd4, 0x55, 0x00, 0x16, 0x29, + 0x49, 0xe1, 0x8f, 0x23, 0x14, 0x64, 0x45, 0xc5, + 0xc5, 0x10, 0xb4, 0x70, 0x3c, 0xc6, 0x5e, 0x34, + 0xb3, 0x37, 0xb0, 0xc1, 0x85, 0xab, 0xce, 0x99, + 0x72, 0x4b, 0xe8, 0x68, 0x6a, 0x21, 0x03, 0x75, + 0x58, 0x0a, 0x51, 0x16, 0x52, 0xd9, 0xbc, 0xb1, + 0x0a, 0x7f, 0x44, 0x1f, 0xba, 0x0a, 0x66, 0xb6, + 0xe9, 0xd3, 0xf8, 0x9c, 0xae, 0xa4, 0xe5, 0x75, + 0x27, 0x2b, 0xa9, 0x39, 0x5d, 0x49, 0xca, 0xea, + 0x4e, 0x57, 0x52, 0x72, 0xba, 0x93, 0x95, 0xd4, + 0x9c, 0xae, 0xa4, 0xe5, 0x75, 0x27, 0x2b, 0xa9, + 0x18, 0xb5, 0x5d, 0xe3, 0xd1, 0x7d, 0x8e, 0x5f, + 0x10, 0x75, 0xbb, 0xc7, 0x6c, 0xc7, 0xfc, 0xe7, + 0xf9, 0x20, 0xd1, 0x4e, 0x20, 0x07, 0x86, 0xe1, + 0x0b, 0x29, 0xa7, 0x0d, 0xbb, 0xf9, 0xb4, 0x18, + 0x90, 0xdc, 0xc1, 0x33, 0x04, 0x53, 0xba, 0xb0, + 0x8f, 0xe1, 0x9a, 0xaa, 0x50, 0x7d, 0x37, 0xb1, + 0x75, 0xd5, 0x89, 0x60, 0xa9, 0x60, 0xc4, 0xe6, + 0x0c, 0xf2, 0x25, 0x16, 0x1b, 0xf0, 0xfa, 0x70, + 0x12, 0x44, 0x72, 0x69, 0x61, 0x1c, 0x0d, 0x2b, + 0x8d, 0xa3, 0x68, 0x9a, 0x61, 0xff, 0x00, 0xe2, + 0x03, 0xf6, 0xd6, 0x04, 0x3b, 0x13, 0xc0, 0x80, + 0x36, 0x98, 0x77, 0x32, 0x02, 0x3c, 0x69, 0x58, + 0x3f, 0x28, 0xc6, 0x82, 0x55, 0xf7, 0x60, 0x3e, + 0xc7, 0xbe, 0xce, 0x98, 0xc3, 0xee, 0x6c, 0xca, + 0x36, 0x3a, 0x12, 0x8d, 0x8e, 0x84, 0x42, 0x9c, + 0x1a, 0x3e, 0xc4, 0x03, 0x79, 0x71, 0x46, 0x0d, + 0x12, 0x6b, 0xa9, 0xea, 0x50, 0xc7, 0xf0, 0x07, + 0xdd, 0x41, 0x6b, 0x44, 0xc8, 0x33, 0x5c, 0x21, + 0x81, 0xbc, 0x6a, 0x40, 0x98, 0x06, 0xcd, 0xcc, + 0x26, 0x02, 0x3a, 0x5b, 0x5d, 0x5c, 0xf6, 0x55, + 0xc7, 0x3e, 0xe9, 0x4b, 0xe0, 0x4e, 0x23, 0x25, + 0x48, 0x34, 0x8f, 0xa3, 0x12, 0x36, 0x74, 0xae, + 0xb5, 0xa8, 0xf7, 0xfa, 0x59, 0x7a, 0x59, 0xac, + 0x3d, 0xd8, 0xc5, 0x1f, 0x6a, 0x49, 0x74, 0x5d, + 0xf0, 0x6e, 0xac, 0xd1, 0xcf, 0xcc, 0xc6, 0xb2, + 0x1e, 0x89, 0xd4, 0xc9, 0x7f, 0x02, 0x39, 0x45, + 0x81, 0x01, 0x32, 0xfa, 0x58, 0x20, 0xe5, 0x85, + 0xba, 0x2d, 0xb0, 0xb5, 0x4b, 0xc9, 0x30, 0xcf, + 0xa1, 0x58, 0xb7, 0x4f, 0x68, 0xff, 0x00, 0x89, + 0x0e, 0x85, 0xe3, 0x5c, 0x49, 0xf9, 0x7d, 0xf3, + 0xc6, 0x6d, 0xe8, 0x30, 0x5a, 0xcf, 0x3e, 0x5f, + 0x34, 0x44, 0x6f, 0x96, 0x79, 0x06, 0xb6, 0xb4, + 0x56, 0xf3, 0xb2, 0x95, 0x53, 0x65, 0x5c, 0xfe, + 0xb7, 0xeb, 0x15, 0x55, 0x25, 0x11, 0xdb, 0x43, + 0x72, 0x8b, 0xc3, 0x66, 0x8f, 0xa7, 0x42, 0x16, + 0xdf, 0xca, 0x69, 0x5b, 0x97, 0xde, 0x6a, 0xe9, + 0xa3, 0xbb, 0xc3, 0xc0, 0x32, 0x7e, 0x98, 0x24, + 0x51, 0xf8, 0x84, 0x97, 0x4f, 0xd0, 0x78, 0x62, + 0xc9, 0xed, 0x21, 0x78, 0x5f, 0x32, 0xcb, 0xe0, + 0x5f, 0xf1, 0x0d, 0x61, 0xb8, 0xe4, 0x2e, 0x6f, + 0x22, 0xe8, 0x62, 0xe7, 0xed, 0xf6, 0xbe, 0x07, + 0xd1, 0x3e, 0x74, 0x9a, 0x98, 0x6b, 0x37, 0xd7, + 0x5b, 0x53, 0x06, 0x85, 0x4a, 0xe0, 0x74, 0x5c, + 0x80, 0x49, 0x2a, 0x15, 0xe2, 0xcb, 0xa7, 0x33, + 0x0d, 0x8b, 0x11, 0x2e, 0x30, 0x5e, 0xfa, 0x8b, + 0x9a, 0x6e, 0xa5, 0xc5, 0x59, 0x87, 0xbf, 0x5d, + 0xe0, 0xf7, 0x25, 0x27, 0x46, 0xa3, 0x29, 0x49, + 0xe4, 0xc3, 0xaa, 0x7e, 0xeb, 0x76, 0x48, 0x4b, + 0xc1, 0x20, 0xce, 0x00, 0xa0, 0x2c, 0xca, 0x26, + 0xe2, 0x88, 0x00, 0xb4, 0x41, 0xb4, 0x82, 0x7c, + 0x32, 0xfc, 0x87, 0xa3, 0x1a, 0xcb, 0x0f, 0x01, + 0x32, 0x7c, 0x81, 0x0e, 0x99, 0x7b, 0xa8, 0x42, + 0x27, 0x11, 0x4a, 0x91, 0xab, 0xe9, 0x84, 0xc2, + 0x9f, 0x05, 0xea, 0x93, 0xc5, 0x35, 0x35, 0x87, + 0x95, 0xc7, 0x9c, 0xa1, 0x9f, 0x4a, 0x1e, 0x45, + 0x1d, 0x46, 0x3f, 0x70, 0x6a, 0xc8, 0x72, 0xeb, + 0x5e, 0x31, 0x1a, 0xda, 0xa6, 0x8a, 0xa4, 0x3f, + 0x0a, 0x36, 0x8b, 0xc7, 0x20, 0x15, 0xfa, 0x47, + 0xe2, 0x2f, 0x2e, 0x94, 0xef, 0x05, 0x40, 0xe1, + 0xaf, 0xb3, 0xb1, 0xa6, 0xe6, 0x9d, 0x57, 0x8b, + 0x20, 0x08, 0x01, 0x80, 0x50, 0x68, 0xc3, 0xdb, + 0xf1, 0x2c, 0xfe, 0x1d, 0x5c, 0x5c, 0xbf, 0x32, + 0x54, 0x48, 0xff, 0x00, 0x21, 0x5c, 0x26, 0x66, + 0x3b, 0xca, 0xb6, 0xd6, 0x85, 0x40, 0x24, 0x60, + 0xb1, 0x7c, 0x81, 0xb3, 0x93, 0xe5, 0x1a, 0x53, + 0x56, 0x2c, 0xd0, 0xbb, 0x79, 0xc0, 0x85, 0x9b, + 0x10, 0xab, 0x7f, 0x8a, 0x8c, 0xb0, 0x98, 0x0c, + 0xc9, 0x90, 0xa8, 0x84, 0x8b, 0x71, 0x62, 0xe1, + 0x13, 0x91, 0xb5, 0x84, 0x5e, 0xfa, 0x25, 0xd7, + 0xea, 0xb0, 0x4d, 0x3d, 0x15, 0x5f, 0x78, 0x6e, + 0xe7, 0xa7, 0xd3, 0xfc, 0x18, 0x63, 0xdc, 0xa7, + 0x21, 0x59, 0xd0, 0xc2, 0x7d, 0x05, 0xa9, 0xe8, + 0x8f, 0x02, 0x74, 0xac, 0x58, 0x5a, 0x20, 0x39, + 0x9b, 0x02, 0x24, 0x2d, 0xe9, 0x9c, 0x4f, 0xdb, + 0xd9, 0xc6, 0x96, 0xae, 0x1c, 0x01, 0x16, 0x2e, + 0x80, 0x30, 0x91, 0xbb, 0x27, 0xfd, 0x85, 0x7e, + 0xa3, 0x7c, 0x50, 0x20, 0x28, 0x26, 0xa1, 0x50, + 0x13, 0x86, 0xea, 0x79, 0xc6, 0x35, 0xf2, 0x6e, + 0x02, 0x0c, 0x6f, 0x2a, 0xde, 0x0b, 0x5d, 0x69, + 0x2e, 0x87, 0x34, 0x44, 0xde, 0xbe, 0xef, 0x05, + 0xf1, 0xb8, 0x58, 0xae, 0x26, 0x05, 0x9e, 0x19, + 0x2b, 0xc9, 0x52, 0x01, 0x2f, 0x71, 0x03, 0xef, + 0x82, 0xc6, 0x84, 0xb1, 0x7e, 0x79, 0x60, 0xdf, + 0x38, 0x29, 0xd0, 0x92, 0x2d, 0x20, 0x7b, 0x34, + 0x1e, 0x49, 0xc0, 0xa8, 0x40, 0xda, 0xb3, 0xcd, + 0xf2, 0x1a, 0xa4, 0xe0, 0x11, 0x20, 0xb2, 0xb5, + 0x70, 0x41, 0x07, 0x8c, 0x1a, 0x4e, 0x32, 0x6f, + 0x2c, 0xda, 0xea, 0x3f, 0xc1, 0x71, 0xd4, 0xcb, + 0xc7, 0xd2, 0x52, 0x0e, 0x31, 0x39, 0x0a, 0xe7, + 0x96, 0xbe, 0x06, 0xbd, 0x99, 0xd3, 0xd2, 0x71, + 0x15, 0xfc, 0x68, 0xa3, 0x90, 0x70, 0x41, 0xc0, + 0x97, 0x19, 0xa4, 0x22, 0x87, 0x2b, 0x4a, 0x05, + 0x55, 0xc1, 0x37, 0x97, 0xdf, 0x3c, 0x66, 0xde, + 0x83, 0x0b, 0xe1, 0x23, 0x86, 0x37, 0xab, 0xff, + 0x00, 0xcc, 0x43, 0x99, 0x82, 0x61, 0x0a, 0xa1, + 0x9d, 0xa5, 0x5f, 0xcc, 0x50, 0xbf, 0xa3, 0x26, + 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, 0x4c, + 0x99, 0x32, 0x64, 0xc9, 0x93, 0x25, 0x20, 0x40, + 0xa0, 0xd0, 0x0b, 0x4a, 0xc2, 0x1a, 0xb8, 0x0d, + 0x05, 0xc4, 0x1e, 0x12, 0x8d, 0x4f, 0x69, 0x05, + 0x11, 0x6c, 0x22, 0x07, 0x3a, 0x2a, 0x27, 0xd1, + 0xd4, 0xc8, 0x83, 0x08, 0x88, 0xa2, 0x3c, 0x0f, + 0xc8, 0x7b, 0xe1, 0x06, 0xe8, 0x89, 0x45, 0x50, + 0x23, 0xb9, 0xa8, 0xc7, 0x5f, 0xf5, 0x6c, 0x15, + 0xdc, 0x1f, 0xe8, 0x91, 0xa3, 0x46, 0x8d, 0x1a, + 0x34, 0x68, 0xd1, 0xa3, 0x46, 0x8d, 0x1a, 0x34, + 0x68, 0xd8, 0x0b, 0x00, 0x56, 0x00, 0x24, 0x80, + 0x03, 0x40, 0x05, 0x00, 0x7f, 0x40, 0x81, 0x02, + 0x04, 0x08, 0x10, 0x20, 0x40, 0x81, 0x02, 0x04, + 0x08, 0x10, 0x21, 0x7d, 0x5a, 0xd6, 0x9e, 0xc7, + 0xd3, 0xd4, 0x20, 0x40, 0x81, 0x02, 0x14, 0xe9, + 0x21, 0x6e, 0xbe, 0x88, 0x10, 0x20, 0x40, 0x41, + 0x3a, 0x82, 0xd0, 0x2d, 0x20, 0xc1, 0xa9, 0xc0, + 0x18, 0x4d, 0x0f, 0x26, 0x01, 0xd7, 0xa0, 0x20, + 0x08, 0x3e, 0xc4, 0x47, 0x03, 0xc4, 0x09, 0x87, + 0x00, 0x1a, 0x25, 0x80, 0x69, 0x2c, 0x6c, 0xb3, + 0x82, 0x6f, 0x2f, 0xbe, 0x78, 0xcd, 0xa1, 0x41, + 0x03, 0x98, 0xbf, 0x68, 0x9c, 0x9e, 0xa7, 0xb4, + 0xb2, 0xf4, 0x43, 0xce, 0xbb, 0x99, 0xfb, 0x88, + 0x46, 0xc8, 0x47, 0x3e, 0xca, 0x04, 0xa0, 0x4c, + 0xd0, 0xaf, 0x81, 0x68, 0xe0, 0x51, 0x6a, 0x82, + 0xd0, 0x65, 0x6a, 0x83, 0x2c, 0xc4, 0xa9, 0x5c, + 0x30, 0x6a, 0xd2, 0xb4, 0x59, 0x6d, 0x56, 0x61, + 0x25, 0xc6, 0x8a, 0x14, 0x5a, 0x24, 0x2d, 0x0b, + 0x43, 0x74, 0x2f, 0xb4, 0x39, 0x81, 0x66, 0x6b, + 0xe8, 0xa0, 0xb3, 0x65, 0x9c, 0xe5, 0x91, 0x38, + 0x9a, 0x18, 0xaf, 0x29, 0x09, 0xeb, 0x1e, 0xdd, + 0x57, 0x3b, 0x54, 0xff, 0x00, 0x38, 0x0f, 0x7e, + 0x4d, 0x38, 0xaa, 0xc8, 0xc4, 0x03, 0xf4, 0x22, + 0x0c, 0x39, 0x3d, 0x4f, 0x68, 0x02, 0x43, 0x47, + 0xb3, 0x6e, 0x11, 0x42, 0x3c, 0x14, 0x88, 0xe6, + 0x31, 0x9a, 0xdf, 0x03, 0x52, 0xad, 0x43, 0xfa, + 0x93, 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb3, + 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb3, 0x66, + 0xcd, 0x2f, 0x2e, 0xab, 0x2e, 0x91, 0xaf, 0x7a, + 0x12, 0x2d, 0x68, 0x59, 0xf5, 0x96, 0x37, 0x61, + 0x24, 0x19, 0xe5, 0x14, 0xd1, 0x70, 0x41, 0x40, + 0x2a, 0x40, 0x01, 0x55, 0x5a, 0x00, 0x32, 0xab, + 0x80, 0x32, 0xb1, 0xc9, 0xbe, 0xa3, 0x6a, 0x5c, + 0x3e, 0x6f, 0x2b, 0xfd, 0x49, 0xb3, 0x66, 0xcd, + 0x9b, 0x36, 0x6c, 0xd9, 0xb3, 0x66, 0xcd, 0x9b, + 0x36, 0x6c, 0xd9, 0xb3, 0x66, 0xcd, 0xb1, 0xbd, + 0x07, 0x94, 0xaf, 0x79, 0xa1, 0x3d, 0x0c, 0xac, + 0x25, 0x75, 0x54, 0x75, 0x4a, 0x2f, 0xe4, 0xa1, + 0x27, 0xe4, 0xc1, 0x00, 0x6c, 0xc0, 0xb4, 0xb1, + 0x1b, 0x36, 0xeb, 0x0d, 0x03, 0x2e, 0x17, 0xef, + 0x13, 0xcb, 0xef, 0x9e, 0x33, 0x6f, 0x48, 0x10, + 0x3b, 0xe4, 0x00, 0x5a, 0x1f, 0x4a, 0x59, 0x94, + 0x50, 0x5d, 0xd1, 0x45, 0x61, 0xda, 0xd9, 0x70, + 0xe1, 0xc2, 0x5e, 0x90, 0x23, 0x0e, 0xfc, 0xd7, + 0x15, 0x17, 0xab, 0x8d, 0x45, 0x82, 0xf4, 0xda, + 0x8c, 0xaf, 0x80, 0x1b, 0x13, 0xaf, 0x20, 0x06, + 0x98, 0xc4, 0x65, 0xac, 0x9c, 0xfa, 0x3e, 0xeb, + 0xff, 0x00, 0xf4, 0x2f, 0xf6, 0xd3, 0x63, 0x22, + 0xc5, 0xd1, 0x27, 0xa9, 0x29, 0x25, 0x61, 0x69, + 0xe8, 0x32, 0xe0, 0xe0, 0xc8, 0x34, 0x9e, 0xb5, + 0x29, 0x4a, 0x52, 0x95, 0x80, 0xcc, 0xf8, 0x52, + 0x1c, 0x42, 0x70, 0x44, 0x0a, 0xce, 0xdc, 0x0d, + 0xab, 0x09, 0xa7, 0xb7, 0x51, 0xc7, 0x95, 0x22, + 0x77, 0x0c, 0x0c, 0xf5, 0xba, 0xbb, 0x85, 0x65, + 0x11, 0x44, 0xae, 0x4a, 0x23, 0x80, 0x13, 0x9e, + 0xdc, 0xeb, 0x6e, 0xca, 0x0c, 0x2c, 0x2b, 0x5b, + 0xec, 0x71, 0x37, 0x58, 0xfc, 0x41, 0x90, 0xaa, + 0x2b, 0xae, 0x1b, 0xbb, 0xf0, 0x27, 0x44, 0x63, + 0xa9, 0x69, 0x4d, 0x12, 0x15, 0xe1, 0x4d, 0x4f, + 0x5a, 0x8a, 0x52, 0x94, 0xa5, 0x19, 0xb0, 0x55, + 0x64, 0xe8, 0xa0, 0xd8, 0x80, 0xaf, 0x10, 0x59, + 0xcc, 0x2b, 0x1c, 0x6f, 0x74, 0x22, 0x7b, 0x8b, + 0x1f, 0x2a, 0x07, 0x17, 0xa2, 0x36, 0x5a, 0x16, + 0xf1, 0x52, 0xaa, 0x25, 0xf1, 0x54, 0xc9, 0x49, + 0xfe, 0x38, 0xcb, 0xac, 0xbc, 0x5c, 0x08, 0x26, + 0xd6, 0xfe, 0xba, 0x55, 0xbf, 0x1b, 0x4b, 0x47, + 0x64, 0x5d, 0x71, 0x4b, 0x95, 0x80, 0x6f, 0x9e, + 0x1b, 0x55, 0x49, 0xdb, 0xae, 0x12, 0x8f, 0x39, + 0x9b, 0x38, 0x97, 0x5f, 0xf2, 0x04, 0xa0, 0x6b, + 0xaf, 0x2a, 0xea, 0x00, 0x1b, 0x6b, 0x04, 0x12, + 0x8f, 0x9c, 0x84, 0x51, 0x86, 0x02, 0x30, 0x13, + 0x6b, 0x3e, 0x9f, 0x66, 0xcd, 0x77, 0xf9, 0x52, + 0x25, 0xb8, 0x68, 0x85, 0x23, 0x6e, 0xa6, 0x88, + 0x0a, 0x9e, 0x69, 0x2d, 0x38, 0xae, 0x8a, 0x05, + 0x36, 0x85, 0x70, 0x9a, 0xb2, 0x55, 0x2d, 0xbb, + 0x89, 0x42, 0xbb, 0x94, 0xc4, 0x95, 0x0c, 0x75, + 0x00, 0xe9, 0xcf, 0x07, 0xc8, 0x39, 0xb7, 0xad, + 0x2e, 0x83, 0xcf, 0xa1, 0x82, 0xd0, 0x64, 0x0c, + 0xe0, 0xa2, 0xfc, 0x68, 0x50, 0x46, 0x3b, 0x7d, + 0x1d, 0x83, 0x2e, 0x8c, 0x3a, 0x2a, 0x25, 0x30, + 0x12, 0x28, 0x47, 0x35, 0xb9, 0xca, 0xb5, 0x29, + 0x6d, 0xad, 0xa9, 0x2f, 0xda, 0x54, 0xa0, 0x1c, + 0x14, 0xab, 0x04, 0x2f, 0x5b, 0x9a, 0x10, 0x32, + 0x8d, 0xa3, 0x55, 0xf0, 0x16, 0x7f, 0xcb, 0xef, + 0x9e, 0x33, 0x6f, 0x48, 0x10, 0x32, 0x56, 0xfc, + 0x25, 0x1c, 0x38, 0x5e, 0x67, 0xcf, 0xeb, 0x42, + 0x0e, 0xa3, 0x8d, 0x9f, 0xa1, 0x7c, 0x93, 0x2c, + 0xc9, 0x56, 0xa7, 0xf2, 0xc3, 0x84, 0xd7, 0x37, + 0x76, 0xcd, 0x13, 0xc5, 0x0b, 0x40, 0x1d, 0xad, + 0x9a, 0xa3, 0x3f, 0x06, 0xce, 0x1e, 0x2c, 0xd0, + 0x68, 0x57, 0xf4, 0x0c, 0xf8, 0x2d, 0x93, 0x03, + 0x02, 0xeb, 0xa6, 0x89, 0xd4, 0xca, 0x7e, 0x73, + 0xbc, 0xa7, 0xe7, 0x3b, 0xca, 0x7e, 0x73, 0xbc, + 0xa7, 0xe7, 0x3b, 0xca, 0x7e, 0x73, 0xbc, 0xa7, + 0xe7, 0x3b, 0xca, 0x7e, 0x73, 0xbc, 0x0c, 0x4c, + 0xc4, 0x1e, 0x02, 0x0c, 0x21, 0xb0, 0xd0, 0x07, + 0xe2, 0x67, 0xaf, 0x1f, 0x9e, 0xe5, 0x74, 0x75, + 0xeb, 0x82, 0xd7, 0x8d, 0xd4, 0x09, 0x32, 0x59, + 0x14, 0x23, 0x74, 0x4a, 0x34, 0xff, 0x00, 0xb4, + 0x2e, 0x0a, 0x00, 0x0c, 0xc0, 0xa3, 0x97, 0xd4, + 0x43, 0x95, 0x3a, 0x3c, 0x64, 0xe4, 0xbc, 0x20, + 0xa6, 0x81, 0x5d, 0xe5, 0x09, 0x92, 0xea, 0x78, + 0x39, 0x96, 0x41, 0x8c, 0x0e, 0xb3, 0x4d, 0x63, + 0x21, 0x42, 0x64, 0x1b, 0x0a, 0x28, 0x53, 0xf3, + 0x9d, 0xe5, 0x3f, 0x39, 0xde, 0x53, 0xf3, 0x9d, + 0xe5, 0x3f, 0x39, 0xde, 0x53, 0xf3, 0x9d, 0xe5, + 0x3f, 0x39, 0xde, 0x19, 0x34, 0x25, 0x1c, 0xbc, + 0xef, 0xdb, 0x37, 0x90, 0xf0, 0x96, 0x48, 0xfb, + 0xdc, 0x96, 0x60, 0x5c, 0xfb, 0x54, 0xa7, 0xe7, + 0x3b, 0xca, 0x7e, 0x73, 0xbc, 0x0d, 0x29, 0xe8, + 0x36, 0x9a, 0xa7, 0x51, 0x40, 0xde, 0x4a, 0x78, + 0x0a, 0x46, 0x35, 0xc3, 0x7c, 0x08, 0x8b, 0xe5, + 0x97, 0x68, 0x42, 0xf2, 0x7e, 0xd7, 0x63, 0xd4, + 0xd0, 0x75, 0xe2, 0xde, 0xfb, 0x2e, 0x11, 0x82, + 0x25, 0xd9, 0xb3, 0x44, 0x95, 0x3a, 0x80, 0x90, + 0x60, 0xa8, 0xd0, 0x21, 0xe6, 0xb5, 0xb2, 0x8e, + 0x3d, 0x48, 0xf6, 0x64, 0xe4, 0x96, 0x68, 0xc2, + 0xb9, 0xb6, 0x98, 0x1d, 0x5b, 0x44, 0xb4, 0xa7, + 0xd9, 0x83, 0x16, 0x9b, 0xba, 0xdf, 0xc3, 0x00, + 0xb3, 0x70, 0x46, 0xeb, 0xaa, 0x03, 0x9d, 0x61, + 0xea, 0xc0, 0xd2, 0xb6, 0x4e, 0xd4, 0xf7, 0x9a, + 0xe8, 0x9d, 0x4a, 0xdc, 0x5b, 0xa7, 0xda, 0xae, + 0xe5, 0xf8, 0x01, 0x34, 0x42, 0xb8, 0x13, 0xf7, + 0xe6, 0x49, 0xee, 0xbe, 0x03, 0xeb, 0x39, 0xde, + 0x15, 0x88, 0xe1, 0x00, 0x42, 0x15, 0xea, 0x90, + 0xa6, 0x71, 0x66, 0x2d, 0x86, 0x24, 0xa2, 0xc1, + 0x53, 0x3e, 0x7c, 0xf2, 0xb3, 0x9a, 0x46, 0xed, + 0x80, 0xc2, 0xad, 0x21, 0x66, 0xfc, 0xe5, 0x3f, + 0x39, 0xde, 0x53, 0xf3, 0x9d, 0xe5, 0x4c, 0x05, + 0xb6, 0x36, 0x09, 0x69, 0xd6, 0x97, 0x46, 0xf4, + 0xed, 0xc4, 0xd9, 0xff, 0x00, 0x2f, 0xbe, 0x78, + 0xcd, 0xa1, 0x20, 0x1a, 0xcd, 0xff, 0x00, 0x59, + 0x73, 0xbe, 0xc7, 0x68, 0xcd, 0xcf, 0x4b, 0x86, + 0x48, 0x55, 0x1c, 0xa1, 0x41, 0xb0, 0x34, 0x2a, + 0x05, 0x70, 0x45, 0x4e, 0x20, 0xec, 0x20, 0x0a, + 0x34, 0x00, 0x0a, 0x87, 0x44, 0xe0, 0xc8, 0x48, + 0x63, 0xa8, 0x10, 0x14, 0x2a, 0xfa, 0x02, 0x80, + 0x2f, 0x16, 0xad, 0x86, 0x65, 0x10, 0x68, 0x75, + 0xb4, 0x40, 0xa4, 0x5a, 0x5d, 0x76, 0xc6, 0xae, + 0x58, 0x45, 0x9c, 0x86, 0x47, 0x4a, 0x9b, 0xaa, + 0x6e, 0xea, 0xab, 0x37, 0xa5, 0x56, 0xb7, 0x78, + 0xa9, 0xec, 0x5c, 0x49, 0xbe, 0xed, 0x6a, 0x8a, + 0x19, 0x14, 0x9a, 0xf0, 0xc6, 0x90, 0x40, 0x1b, + 0xe0, 0xfb, 0x31, 0x7f, 0xcd, 0x13, 0x42, 0x99, + 0xec, 0x6c, 0x21, 0x55, 0x48, 0xc6, 0xc6, 0x3f, + 0xa9, 0x06, 0xf7, 0x00, 0x7b, 0xbf, 0xc0, 0x91, + 0x88, 0x3a, 0xa3, 0xfe, 0x46, 0xce, 0x52, 0xa1, + 0x7b, 0xec, 0x30, 0x1c, 0xa4, 0x3d, 0x09, 0x65, + 0xe0, 0xa3, 0xf0, 0xe8, 0x1f, 0xad, 0x6c, 0x44, + 0x0b, 0x16, 0x2c, 0x58, 0xb1, 0x62, 0xd1, 0xe5, + 0x16, 0x14, 0xd0, 0xbb, 0xaf, 0x31, 0x5e, 0xd5, + 0x16, 0x32, 0x24, 0x15, 0xac, 0x21, 0x79, 0x85, + 0x1e, 0xc4, 0x46, 0x17, 0x66, 0x1d, 0xd5, 0x00, + 0x2f, 0xa8, 0xc0, 0x02, 0x15, 0xb1, 0xfd, 0x5c, + 0xf2, 0x08, 0x72, 0x99, 0xd9, 0xb6, 0xdc, 0x82, + 0xb6, 0x5c, 0xe5, 0xca, 0xeb, 0x5c, 0xeb, 0x2f, + 0x0d, 0x4a, 0x26, 0x01, 0x1b, 0x13, 0x19, 0x1c, + 0x94, 0x61, 0xcc, 0xac, 0x48, 0x32, 0x1e, 0xac, + 0xa3, 0x0e, 0x29, 0x46, 0xbd, 0x3d, 0x42, 0xc5, + 0x8b, 0x16, 0x2c, 0x5f, 0xac, 0xff, 0x00, 0xde, + 0x08, 0x81, 0xc7, 0x72, 0xd5, 0xc8, 0xe6, 0x20, + 0x73, 0xfe, 0x57, 0xdf, 0xf0, 0x58, 0x76, 0x14, + 0x12, 0xcb, 0xb8, 0x16, 0xdc, 0x02, 0x4f, 0x89, + 0x5a, 0xc3, 0x74, 0x8b, 0x45, 0x8a, 0xc2, 0x98, + 0x21, 0x81, 0x4d, 0xa3, 0x09, 0x39, 0x41, 0xab, + 0xcd, 0x45, 0x84, 0x5c, 0x44, 0x45, 0x44, 0x70, + 0x88, 0xd1, 0x13, 0x52, 0x00, 0xa9, 0x36, 0x87, + 0x5a, 0xab, 0x41, 0x16, 0x80, 0xbd, 0x88, 0xba, + 0x6c, 0xae, 0x4e, 0xaf, 0x94, 0xc5, 0xd6, 0xc2, + 0xef, 0x37, 0x73, 0x51, 0x42, 0xf2, 0x76, 0xf6, + 0x69, 0xe6, 0x66, 0x7c, 0x96, 0x47, 0x7c, 0xd9, + 0x9c, 0xaa, 0xf3, 0x53, 0x2c, 0xd8, 0x72, 0x31, + 0x60, 0xd2, 0x96, 0x0b, 0x4d, 0x5e, 0x58, 0x08, + 0x32, 0x88, 0x01, 0xaa, 0xa0, 0xd6, 0x06, 0x14, + 0x60, 0xc4, 0xcb, 0xbd, 0x1c, 0x84, 0x64, 0x6c, + 0x96, 0x39, 0x1a, 0xc4, 0xbe, 0xc6, 0x34, 0x18, + 0xe0, 0x6c, 0x36, 0xce, 0x4c, 0x61, 0xce, 0xb3, + 0x77, 0x67, 0x27, 0x63, 0x36, 0x7d, 0x86, 0x95, + 0xa1, 0xb4, 0xcb, 0xb7, 0x1c, 0x8c, 0x68, 0xd9, + 0x2c, 0xf6, 0x6a, 0x59, 0x97, 0xb1, 0xf6, 0xfa, + 0x0a, 0xe4, 0xc0, 0xd1, 0x80, 0x3d, 0x88, 0x00, + 0x24, 0x08, 0x00, 0x69, 0x39, 0x31, 0x19, 0x2d, + 0xac, 0xb3, 0x27, 0x25, 0x6e, 0x66, 0xf7, 0x7f, + 0x74, 0xce, 0x17, 0x79, 0xbb, 0x88, 0x2c, 0x89, + 0x13, 0xed, 0x9b, 0xc3, 0xa3, 0x23, 0x9f, 0x16, + 0xd1, 0x87, 0xf0, 0x33, 0x38, 0xae, 0x6c, 0x55, + 0xa7, 0xd4, 0x6a, 0x08, 0xbd, 0x84, 0xad, 0x85, + 0x72, 0x51, 0x9a, 0x00, 0x24, 0x6d, 0x9a, 0x48, + 0x51, 0x95, 0xa5, 0x51, 0x91, 0x2e, 0xf4, 0x23, + 0xe5, 0xf7, 0xcf, 0x19, 0xb7, 0xa9, 0x42, 0x5c, + 0x72, 0x4d, 0x9f, 0xc6, 0xc2, 0xf2, 0x88, 0xf5, + 0xdc, 0xd8, 0x03, 0xa5, 0xe0, 0x0e, 0x28, 0xcc, + 0x90, 0x6d, 0xfe, 0xd0, 0xe7, 0x33, 0x59, 0xc5, + 0x98, 0x24, 0xab, 0x64, 0xb9, 0x78, 0x71, 0x49, + 0x54, 0x96, 0xc2, 0xe8, 0x6c, 0xaa, 0x52, 0x78, + 0x00, 0xbc, 0x1b, 0x86, 0xd3, 0x5c, 0x3e, 0x6a, + 0x13, 0xe0, 0x44, 0x77, 0x18, 0x64, 0x0e, 0x72, + 0x93, 0x96, 0x43, 0x85, 0x5c, 0xc5, 0x33, 0x45, + 0xa1, 0x60, 0xe0, 0x22, 0xad, 0xc7, 0xdf, 0x11, + 0xe6, 0x44, 0x4e, 0xa2, 0x44, 0x93, 0x46, 0x9e, + 0xf0, 0xb2, 0xf6, 0x0a, 0x49, 0xe3, 0x15, 0xfd, + 0x90, 0x58, 0x2a, 0x28, 0x88, 0xe8, 0x51, 0x4a, + 0x5d, 0x6b, 0xf8, 0x90, 0x5a, 0xfc, 0xd3, 0x1c, + 0xb9, 0xb1, 0xd2, 0xaa, 0xb5, 0x1a, 0x50, 0xe5, + 0xfe, 0x18, 0xbe, 0x0b, 0x67, 0x05, 0xea, 0x84, + 0x24, 0x01, 0xb9, 0x55, 0x2a, 0xfb, 0xab, 0x7e, + 0xab, 0xf7, 0xef, 0xdf, 0xbe, 0x33, 0x65, 0xf6, + 0x8b, 0x78, 0x19, 0xe0, 0x53, 0x11, 0x39, 0xac, + 0x80, 0xcf, 0xf3, 0xcd, 0x05, 0xe0, 0xf0, 0x4e, + 0xae, 0x53, 0xda, 0xbf, 0x37, 0x6b, 0x80, 0x3e, + 0xb1, 0x81, 0xe0, 0x47, 0x3b, 0x4c, 0x2d, 0xad, + 0x2a, 0x19, 0x95, 0x5a, 0xb7, 0xdc, 0x28, 0x49, + 0xb0, 0x35, 0xb9, 0x6a, 0xb9, 0x72, 0x06, 0xd0, + 0x83, 0x99, 0xe3, 0x18, 0x59, 0x0a, 0xca, 0x10, + 0x37, 0x8a, 0xed, 0xbc, 0x0a, 0x45, 0x73, 0x5d, + 0xd4, 0x4e, 0xa1, 0x4d, 0x77, 0xe2, 0x8a, 0xa9, + 0x96, 0x7c, 0xfa, 0xcb, 0xf7, 0xef, 0xdf, 0xbf, + 0x7c, 0xea, 0xba, 0x44, 0x16, 0x8d, 0x00, 0x16, + 0xe5, 0xa3, 0x5e, 0x05, 0xc6, 0x88, 0x02, 0x8e, + 0xa1, 0x46, 0xbf, 0xe7, 0xa2, 0xfd, 0xfb, 0xeb, + 0x90, 0x0f, 0x32, 0x38, 0x1d, 0x13, 0x62, 0x0c, + 0x11, 0x60, 0xd5, 0x98, 0x32, 0xe6, 0xb6, 0x5d, + 0xbb, 0xdc, 0x71, 0xb5, 0xda, 0x25, 0xe1, 0xed, + 0x30, 0x0f, 0xdc, 0x8d, 0x01, 0x0f, 0x92, 0x49, + 0x6d, 0x0a, 0x0c, 0x41, 0xcc, 0x30, 0xb9, 0xfd, + 0x20, 0x28, 0x2d, 0xb8, 0x53, 0x38, 0x79, 0x1a, + 0x4f, 0x13, 0x03, 0x02, 0x05, 0xc3, 0xdf, 0x4b, + 0x1e, 0xab, 0x58, 0xc0, 0xb9, 0xc5, 0x3e, 0x2b, + 0xcd, 0xd3, 0x86, 0x82, 0x43, 0xc6, 0x4e, 0x35, + 0x4e, 0x26, 0xaa, 0x67, 0x03, 0x2b, 0xc2, 0x3b, + 0x75, 0x4b, 0x4f, 0x4d, 0x8c, 0xb7, 0x9d, 0x94, + 0x20, 0x95, 0xaf, 0x9a, 0x36, 0x00, 0x6f, 0x22, + 0x3e, 0xb7, 0x32, 0x41, 0x9f, 0x03, 0x1c, 0x32, + 0x21, 0x95, 0x2f, 0x39, 0xd4, 0x7c, 0x0e, 0xfe, + 0x1e, 0xf8, 0x6a, 0xa3, 0x8a, 0x77, 0xa7, 0x29, + 0x7e, 0xfd, 0xf1, 0xe4, 0x04, 0x00, 0x08, 0x0c, + 0x00, 0x56, 0x07, 0xb0, 0x70, 0xcd, 0xa6, 0x47, + 0xcb, 0xef, 0x9e, 0x33, 0x68, 0x17, 0xa9, 0xc9, + 0x53, 0xa3, 0x28, 0xe7, 0xd5, 0xef, 0x0d, 0x6b, + 0xf3, 0x15, 0xea, 0x71, 0x37, 0x9a, 0x8c, 0x08, + 0x5a, 0x99, 0x32, 0x45, 0x19, 0x77, 0x3e, 0x14, + 0xae, 0xf6, 0xe2, 0x92, 0x20, 0xac, 0x02, 0x5e, + 0x38, 0x4e, 0xb3, 0x24, 0x1e, 0x7f, 0xd2, 0x21, + 0xa5, 0x72, 0x85, 0x1b, 0xc0, 0x84, 0x18, 0x37, + 0x0a, 0x27, 0x08, 0x99, 0xe5, 0x0a, 0xb9, 0x63, + 0xea, 0xbe, 0x46, 0xb3, 0xbe, 0x9d, 0xa7, 0x3c, + 0x18, 0x7a, 0xfc, 0x1e, 0x08, 0x21, 0xe1, 0x66, + 0x03, 0x86, 0x93, 0x28, 0x50, 0xac, 0x0a, 0xf8, + 0x0e, 0xd7, 0x4e, 0x5f, 0x32, 0x84, 0xca, 0x5a, + 0x3c, 0x43, 0x4c, 0x95, 0x9b, 0x30, 0x57, 0x4c, + 0x3b, 0x33, 0x09, 0x2b, 0xbf, 0x14, 0xb9, 0xe2, + 0x5f, 0x21, 0x60, 0xeb, 0x3f, 0x88, 0x68, 0x0d, + 0x06, 0x23, 0xd6, 0xa6, 0x81, 0x53, 0x11, 0x16, + 0x13, 0x79, 0x28, 0x03, 0xd9, 0x6b, 0xa9, 0x01, + 0xee, 0x7d, 0x67, 0x67, 0x3f, 0xe0, 0x5f, 0x19, + 0x4e, 0xdc, 0xdc, 0xa5, 0x54, 0x5a, 0xe4, 0x02, + 0x8c, 0x09, 0xf8, 0xca, 0x36, 0xa0, 0xb8, 0xfe, + 0x41, 0x60, 0x36, 0xf0, 0x3a, 0x84, 0x36, 0xc7, + 0xb3, 0xd4, 0x48, 0x6b, 0xac, 0xa9, 0x4a, 0xa6, + 0xc5, 0x47, 0x44, 0xb2, 0x80, 0xec, 0xa9, 0x69, + 0x7d, 0x48, 0x98, 0x22, 0x14, 0x86, 0xc7, 0x88, + 0x84, 0xc1, 0xe3, 0xa4, 0x01, 0x82, 0xa2, 0x16, + 0xd2, 0x8b, 0x60, 0x6a, 0xe9, 0xcb, 0x53, 0xe4, + 0xaf, 0x0c, 0x04, 0x79, 0xd2, 0xe4, 0xe1, 0xc1, + 0xd6, 0xb9, 0xc4, 0x72, 0x53, 0xb3, 0xf9, 0x7b, + 0x6c, 0x02, 0xe4, 0x8e, 0xc7, 0xdd, 0x89, 0x8d, + 0x4e, 0x0a, 0x46, 0xbf, 0x1b, 0x56, 0x9f, 0xc1, + 0x3a, 0x72, 0xd5, 0x53, 0x97, 0xc8, 0x44, 0x38, + 0x46, 0xe2, 0xdf, 0xf6, 0xaf, 0x41, 0xac, 0x15, + 0x79, 0x5f, 0x35, 0x2f, 0xe8, 0x42, 0xe7, 0xaf, + 0xbd, 0xa0, 0xd2, 0xb5, 0xf4, 0x27, 0xed, 0xad, + 0x69, 0x92, 0x67, 0xec, 0x15, 0x82, 0x58, 0x8d, + 0x89, 0x2a, 0xa7, 0x70, 0x13, 0x73, 0xfc, 0x55, + 0xcc, 0xe3, 0xc4, 0xe1, 0x84, 0x83, 0xae, 0xf3, + 0x09, 0x65, 0xf2, 0xb5, 0x60, 0x24, 0x89, 0x14, + 0x2c, 0x7b, 0x30, 0x52, 0x9d, 0x2d, 0x35, 0x9d, + 0xeb, 0xc6, 0x4d, 0x87, 0xe3, 0xe4, 0x86, 0x31, + 0xb9, 0x19, 0xd4, 0x85, 0xca, 0xa4, 0x65, 0xc3, + 0xbd, 0x53, 0x99, 0x53, 0x58, 0x16, 0x61, 0xcb, + 0x50, 0x37, 0x19, 0x37, 0x18, 0x24, 0x7f, 0x78, + 0xf5, 0x59, 0xfe, 0x77, 0x5d, 0x09, 0x8b, 0xab, + 0x9c, 0xaf, 0x5a, 0x79, 0x7d, 0xf3, 0xc6, 0x6d, + 0x08, 0x2c, 0x43, 0x76, 0x36, 0x6e, 0x75, 0x23, + 0x1a, 0xd1, 0xe0, 0x18, 0x51, 0xdb, 0x1d, 0xd0, + 0xfb, 0x47, 0xa6, 0x65, 0x39, 0x14, 0x2e, 0xa3, + 0x22, 0x85, 0x63, 0x6a, 0x98, 0x86, 0xd2, 0x21, + 0x7a, 0xb4, 0x2e, 0x25, 0x06, 0x80, 0x23, 0x45, + 0xa3, 0xac, 0x53, 0x2f, 0xb0, 0x45, 0xc8, 0x23, + 0x33, 0xfe, 0xe9, 0x88, 0xa5, 0xe9, 0x93, 0x06, + 0xc4, 0x02, 0xd2, 0x09, 0xd0, 0x57, 0x8c, 0xf1, + 0x43, 0x4c, 0x1f, 0x00, 0x7e, 0x70, 0x85, 0x76, + 0x0c, 0xa0, 0x05, 0x42, 0x15, 0x64, 0xa2, 0x30, + 0x06, 0x66, 0x05, 0x30, 0x35, 0x49, 0x07, 0x42, + 0x78, 0x4d, 0x76, 0xd2, 0x1c, 0x59, 0x07, 0x3a, + 0x9a, 0x27, 0xbc, 0x9f, 0x69, 0x94, 0xbc, 0x2f, + 0xe0, 0xc2, 0xe8, 0x08, 0xd4, 0x3e, 0xb1, 0xb3, + 0x82, 0xf7, 0x99, 0x29, 0x85, 0x6f, 0xf1, 0x00, + 0xa3, 0x1f, 0x56, 0xd1, 0xa3, 0x46, 0x92, 0x41, + 0x8e, 0xe1, 0x6f, 0xcc, 0x08, 0xee, 0x10, 0xc7, + 0x62, 0xd3, 0x85, 0x2d, 0xaf, 0x05, 0x2d, 0x84, + 0x13, 0x12, 0xc5, 0x28, 0xeb, 0xe7, 0xe4, 0x0a, + 0x67, 0xf1, 0x77, 0xbd, 0xc9, 0xb1, 0xe6, 0x83, + 0x08, 0x8b, 0x40, 0x7e, 0x80, 0x34, 0x47, 0x71, + 0xfa, 0xb5, 0xae, 0x80, 0xd7, 0x01, 0xf4, 0x65, + 0xe8, 0x79, 0x8c, 0x48, 0xdc, 0x87, 0x0f, 0x2e, + 0x30, 0x0c, 0xae, 0x17, 0x4c, 0x11, 0x6b, 0x15, + 0x46, 0xe4, 0xd8, 0xe1, 0xa4, 0x12, 0xd4, 0x1d, + 0xd5, 0xb0, 0x10, 0x37, 0x6c, 0x6b, 0xcc, 0x02, + 0xfb, 0xf9, 0x18, 0x80, 0x20, 0x0b, 0x1a, 0x2c, + 0x7e, 0xb6, 0xf5, 0x34, 0x68, 0xd1, 0xa3, 0x43, + 0x56, 0xc9, 0x5c, 0x92, 0xaa, 0x3a, 0x52, 0xce, + 0x09, 0x83, 0x57, 0x02, 0x7e, 0xb6, 0x17, 0x4e, + 0xb8, 0xfe, 0x36, 0xad, 0x47, 0x0b, 0xbd, 0x07, + 0xd7, 0xd3, 0xb8, 0x4e, 0x79, 0x87, 0x80, 0x16, + 0xb0, 0x69, 0x8f, 0xf1, 0xeb, 0x18, 0xb5, 0x2e, + 0x07, 0xb1, 0x17, 0xd3, 0x1b, 0x04, 0x18, 0x2c, + 0xcd, 0x16, 0x55, 0x4d, 0x4a, 0x24, 0x4e, 0x0a, + 0x89, 0xda, 0x5d, 0xa2, 0xab, 0x38, 0xcc, 0x3a, + 0x58, 0x70, 0xf3, 0x44, 0xcf, 0x41, 0x32, 0x4e, + 0x80, 0x0a, 0xa8, 0x45, 0x2a, 0x2e, 0x36, 0x8e, + 0x5e, 0x16, 0x1c, 0x1a, 0xca, 0x91, 0x71, 0x84, + 0x46, 0x25, 0xa5, 0x19, 0x5f, 0x77, 0x4c, 0xa3, + 0xfb, 0xaa, 0xee, 0xcd, 0xe2, 0x8e, 0x91, 0xf6, + 0xa2, 0x89, 0x99, 0xe8, 0x89, 0x8c, 0x66, 0x20, + 0x72, 0x2a, 0xc8, 0x90, 0xf4, 0x95, 0x9d, 0xfc, + 0xe7, 0xa0, 0xf8, 0xa9, 0x52, 0xa6, 0x2c, 0x2d, + 0xcb, 0x3e, 0xb2, 0xd8, 0x84, 0x24, 0x54, 0x64, + 0x88, 0x91, 0x13, 0x16, 0xf0, 0x87, 0x27, 0x38, + 0x5b, 0x18, 0xb4, 0x47, 0x6a, 0x5e, 0x5f, 0x7c, + 0xf1, 0x9b, 0x40, 0x1b, 0x41, 0xdd, 0x9d, 0x1b, + 0x1d, 0x08, 0x42, 0x90, 0x36, 0xf8, 0x0a, 0x4a, + 0x52, 0x44, 0x8a, 0xc8, 0xb5, 0x17, 0x45, 0xa1, + 0x9a, 0x2f, 0x48, 0x40, 0x0a, 0xc9, 0x42, 0xa4, + 0xb4, 0x12, 0xb5, 0xad, 0xe1, 0xd4, 0xb9, 0x2e, + 0x5c, 0x1e, 0xe0, 0x10, 0x07, 0x1d, 0x30, 0x76, + 0x51, 0xf6, 0x62, 0xb1, 0x01, 0xfa, 0xdc, 0x75, + 0xb1, 0x05, 0x63, 0x5f, 0x01, 0x5d, 0xb6, 0x67, + 0xfb, 0x8b, 0xc3, 0xf6, 0x38, 0xcc, 0x8f, 0xb0, + 0x4c, 0x31, 0xd1, 0x1c, 0x97, 0x06, 0x94, 0xfe, + 0x8b, 0x4e, 0xeb, 0xe8, 0xd2, 0x22, 0x52, 0xde, + 0x2c, 0xa3, 0x9b, 0x08, 0x2d, 0x18, 0x2c, 0xac, + 0x72, 0xd9, 0xa0, 0x80, 0xe4, 0x87, 0x41, 0xf0, + 0x41, 0xf6, 0x8e, 0x9a, 0xef, 0x4c, 0x04, 0xe4, + 0x33, 0xd4, 0x5c, 0xd9, 0x65, 0x84, 0xad, 0x57, + 0xf1, 0x50, 0x3f, 0xc5, 0x99, 0xe8, 0xc1, 0x57, + 0x92, 0x37, 0x9b, 0x06, 0x81, 0xf4, 0x8d, 0x9e, + 0xa5, 0xe7, 0x7c, 0xf3, 0xeb, 0xfa, 0x84, 0x3a, + 0xad, 0x59, 0xed, 0x9a, 0xc9, 0xcd, 0x32, 0xa0, + 0x56, 0x9d, 0x1f, 0xa7, 0x12, 0x93, 0x4c, 0x30, + 0x35, 0x47, 0x59, 0x87, 0xa7, 0xa5, 0xe8, 0xc5, + 0x14, 0xeb, 0x8b, 0xc2, 0x00, 0xe0, 0x40, 0x95, + 0xe6, 0x4b, 0x8e, 0x8f, 0x2e, 0x3c, 0x09, 0xa2, + 0xc6, 0xd8, 0x37, 0xfd, 0xef, 0x9f, 0x44, 0x7f, + 0xf3, 0x41, 0x71, 0x91, 0x16, 0xa3, 0x29, 0x6c, + 0xcd, 0x8a, 0xa1, 0xcd, 0x78, 0xf3, 0x2a, 0x37, + 0xd6, 0x64, 0x41, 0x63, 0x95, 0xe3, 0x54, 0x89, + 0x6c, 0x2b, 0x2f, 0x1e, 0xc8, 0x21, 0xf2, 0x27, + 0xb1, 0x8c, 0x68, 0x44, 0x00, 0xf2, 0xdb, 0x7f, + 0x01, 0x62, 0xd9, 0x4d, 0x00, 0xb5, 0x81, 0x50, + 0x17, 0x41, 0x41, 0x43, 0x54, 0x16, 0x37, 0x65, + 0xfc, 0x80, 0x2b, 0x1e, 0xa7, 0x5f, 0x83, 0x16, + 0x19, 0x01, 0x6d, 0x46, 0x43, 0x56, 0xa0, 0xc2, + 0x14, 0x14, 0x81, 0x17, 0x03, 0x14, 0x96, 0x08, + 0xd3, 0x6d, 0x14, 0xf0, 0x89, 0xe0, 0xa4, 0x8d, + 0x36, 0xee, 0x90, 0x06, 0x74, 0xf8, 0x09, 0x2c, + 0x55, 0x95, 0xa8, 0x09, 0x77, 0xba, 0x45, 0x54, + 0x46, 0x08, 0xb3, 0x10, 0x98, 0x74, 0xf2, 0xe0, + 0x40, 0x8f, 0x42, 0x85, 0x69, 0xa3, 0x67, 0x52, + 0x08, 0xb6, 0xba, 0x08, 0x06, 0xa7, 0x8d, 0x61, + 0xb1, 0x29, 0x56, 0x6f, 0xd5, 0xc5, 0x64, 0x6e, + 0x90, 0x88, 0xc2, 0x74, 0xf1, 0x76, 0x40, 0xc2, + 0xfb, 0xf7, 0x94, 0xb7, 0xd9, 0x1f, 0xca, 0xe3, + 0x06, 0xb0, 0xd3, 0x79, 0x36, 0x5e, 0x52, 0xa8, + 0x3f, 0xd3, 0x4e, 0xcb, 0x7b, 0xd9, 0x1b, 0x95, + 0xa4, 0x75, 0x08, 0x05, 0x6d, 0x13, 0xd6, 0x00, + 0xc8, 0x65, 0x86, 0x0c, 0xc6, 0xd0, 0x9e, 0x67, + 0x04, 0xb8, 0x2d, 0x50, 0xd1, 0xf4, 0x02, 0x7b, + 0x39, 0xbf, 0xb8, 0xe9, 0x6a, 0x30, 0xd1, 0xd2, + 0x03, 0x8f, 0xcf, 0x19, 0xd4, 0x94, 0x24, 0xb2, + 0xf6, 0x7a, 0xe1, 0x1c, 0x41, 0xa2, 0x72, 0x81, + 0x36, 0x18, 0x29, 0xf9, 0x96, 0x25, 0xee, 0x4e, + 0x20, 0xf8, 0x78, 0xff, 0x00, 0x4a, 0x91, 0x80, + 0xb8, 0xeb, 0x7c, 0xe6, 0xab, 0x19, 0x30, 0xbf, + 0xf6, 0x21, 0xd4, 0x44, 0xdc, 0x6f, 0x85, 0x32, + 0x0d, 0x40, 0xe5, 0xcb, 0xcb, 0xef, 0x9e, 0x33, + 0x68, 0x21, 0x6f, 0xe8, 0xaf, 0x4c, 0x67, 0x31, + 0xf0, 0xe5, 0x08, 0x45, 0xf3, 0xc4, 0xea, 0x87, + 0x0c, 0x53, 0xae, 0x01, 0xd7, 0x4b, 0x62, 0xc3, + 0x92, 0x02, 0xea, 0x35, 0x89, 0xa1, 0xcd, 0x1f, + 0xa9, 0x12, 0xed, 0x25, 0x80, 0x09, 0x89, 0x40, + 0x86, 0x20, 0x5c, 0x11, 0x59, 0x9f, 0x4e, 0x4a, + 0xb1, 0xde, 0xca, 0xcf, 0xa2, 0x1e, 0xc0, 0x85, + 0x8d, 0xd9, 0xac, 0xc1, 0x39, 0x0d, 0x56, 0x91, + 0xa9, 0x14, 0xdc, 0x19, 0x08, 0xda, 0xfc, 0xb3, + 0xa8, 0x27, 0x65, 0xa3, 0xa3, 0xc4, 0x69, 0x35, + 0x88, 0x1e, 0x92, 0x48, 0x80, 0x0e, 0xc6, 0xc8, + 0xb2, 0x96, 0x36, 0x44, 0x8f, 0x92, 0x9b, 0x30, + 0x85, 0x90, 0xcb, 0x5f, 0x02, 0xa7, 0x7d, 0xd6, + 0x07, 0xb3, 0x1e, 0xab, 0x32, 0x49, 0x14, 0x9a, + 0x7c, 0x47, 0x07, 0x43, 0x45, 0x0e, 0x0a, 0xaf, + 0xc4, 0x3e, 0x86, 0xad, 0x4b, 0x8f, 0xf0, 0x18, + 0x2b, 0xd2, 0x5e, 0x9d, 0xcd, 0x40, 0xfc, 0x43, + 0x97, 0xa9, 0x78, 0x72, 0xb4, 0x03, 0x1f, 0xa5, + 0x41, 0x54, 0x67, 0xcf, 0x9f, 0x6e, 0xf9, 0xdc, + 0xb1, 0xe5, 0x31, 0x4c, 0x3a, 0xdc, 0xd3, 0xbc, + 0x70, 0xc4, 0xe2, 0x4b, 0xc1, 0xba, 0x81, 0x50, + 0x6b, 0x20, 0x03, 0x8a, 0xaf, 0x9e, 0x94, 0x1e, + 0xf7, 0xcc, 0x35, 0x3f, 0x7f, 0x0a, 0xb4, 0xa5, + 0x65, 0x4e, 0x04, 0xb6, 0xb9, 0x92, 0x86, 0x17, + 0x0d, 0xee, 0xab, 0x28, 0x31, 0xda, 0x35, 0xd6, + 0x05, 0x2a, 0x52, 0xc2, 0x91, 0x5a, 0x4c, 0x82, + 0x1e, 0x84, 0x54, 0xd2, 0xca, 0x88, 0xa2, 0x72, + 0xbc, 0x75, 0xd1, 0xb1, 0x2c, 0x84, 0x9b, 0x0d, + 0x04, 0x0e, 0x6a, 0x5b, 0xb7, 0xa1, 0xdc, 0x80, + 0x30, 0xe2, 0x02, 0x45, 0x80, 0xb0, 0x02, 0x16, + 0x1b, 0x08, 0x00, 0x01, 0x40, 0x00, 0x06, 0x80, + 0x7a, 0x8f, 0x9f, 0x3e, 0x7c, 0xf9, 0xce, 0x62, + 0x82, 0xcd, 0xf9, 0xf0, 0x8e, 0x70, 0xe2, 0xcd, + 0xd8, 0x12, 0x93, 0xcb, 0xf6, 0x9e, 0xd0, 0x5b, + 0xf5, 0x45, 0x5d, 0x8a, 0x66, 0x83, 0x67, 0xa2, + 0x37, 0x05, 0xb2, 0x11, 0xc6, 0x24, 0x43, 0x33, + 0x94, 0xac, 0x8b, 0x11, 0xd0, 0x53, 0x0b, 0x82, + 0x9e, 0x76, 0x31, 0xd4, 0x55, 0xa9, 0xc9, 0x0f, + 0xda, 0x83, 0xeb, 0x53, 0x8a, 0x80, 0x59, 0x59, + 0x60, 0x80, 0x0d, 0x84, 0x32, 0xf8, 0x3a, 0x9b, + 0xe3, 0x09, 0xd1, 0x99, 0x36, 0x43, 0x78, 0xd8, + 0xfd, 0x57, 0xec, 0x11, 0x48, 0x90, 0x40, 0xb8, + 0x7d, 0x2b, 0xbb, 0x29, 0x66, 0x67, 0xe8, 0xb0, + 0x53, 0xe0, 0xee, 0x42, 0x3d, 0xd5, 0x51, 0xa8, + 0x12, 0x2f, 0x22, 0x35, 0x74, 0x56, 0x24, 0xb2, + 0x11, 0x14, 0x72, 0xf7, 0x04, 0x85, 0x7a, 0x59, + 0x10, 0x34, 0x42, 0x83, 0x5b, 0xf3, 0x56, 0x71, + 0x01, 0x76, 0xeb, 0x99, 0xd0, 0x50, 0xa8, 0x59, + 0x4b, 0x36, 0x41, 0xee, 0x18, 0x7c, 0xe6, 0x62, + 0x72, 0xd3, 0x9e, 0x52, 0xf5, 0x50, 0xc4, 0x2a, + 0x32, 0xcc, 0x28, 0xc5, 0x0b, 0x62, 0x2d, 0x94, + 0xdd, 0x7a, 0x41, 0x0d, 0x69, 0x43, 0x05, 0x14, + 0x59, 0x5a, 0x79, 0x0a, 0x82, 0x6a, 0xb4, 0xb3, + 0x7b, 0x27, 0x7c, 0xcd, 0xe1, 0x84, 0x30, 0x00, + 0xd8, 0x10, 0x2b, 0x81, 0x6d, 0xa5, 0x72, 0x9c, + 0x64, 0xb8, 0xa4, 0xcf, 0x49, 0xb2, 0x88, 0xd4, + 0x3f, 0x83, 0xa7, 0x1c, 0x9f, 0xe0, 0x91, 0x36, + 0x9c, 0xdb, 0xd6, 0x30, 0x4c, 0x5b, 0xd0, 0x5e, + 0x9d, 0xc2, 0x55, 0xbe, 0x78, 0x9d, 0x60, 0x9e, + 0x5f, 0x7c, 0xf1, 0x9b, 0x7a, 0x9e, 0xcb, 0x57, + 0xb0, 0x4a, 0xe1, 0xc0, 0xa2, 0xbf, 0xc5, 0x8b, + 0x6a, 0x10, 0x52, 0x12, 0x1a, 0xcb, 0x6e, 0x5a, + 0x73, 0x84, 0x57, 0x15, 0x6e, 0x5b, 0xb8, 0x98, + 0x1a, 0x03, 0x04, 0x12, 0x2f, 0x92, 0x5c, 0x07, + 0x3e, 0xaf, 0xa2, 0x91, 0x96, 0xce, 0x65, 0xc0, + 0x0d, 0xa1, 0x35, 0x30, 0x1a, 0x05, 0x13, 0xe4, + 0x73, 0x39, 0xd3, 0x8f, 0xad, 0x43, 0x8c, 0x58, + 0xb1, 0x50, 0xec, 0x56, 0xea, 0x51, 0x6b, 0x5e, + 0xb5, 0xb7, 0x18, 0x0f, 0x45, 0xe6, 0x15, 0x1b, + 0x53, 0x6b, 0x91, 0x50, 0x15, 0x00, 0xca, 0xb4, + 0x06, 0xec, 0xd5, 0x56, 0xd9, 0x55, 0x7b, 0x91, + 0xb8, 0x83, 0x02, 0x49, 0x74, 0xca, 0x50, 0xb1, + 0xb3, 0x21, 0x49, 0x35, 0x2a, 0x17, 0x86, 0xa8, + 0x93, 0x60, 0x22, 0x48, 0x66, 0xb7, 0x0a, 0x44, + 0x0c, 0x28, 0x4d, 0x6f, 0x0b, 0x95, 0x14, 0xce, + 0x11, 0x62, 0x93, 0xa8, 0x4d, 0xf5, 0xa8, 0x7d, + 0xa5, 0x08, 0x8b, 0xc1, 0x6c, 0xfe, 0x05, 0xf1, + 0x8d, 0x26, 0x48, 0xea, 0x3d, 0x1a, 0x20, 0x64, + 0x65, 0x48, 0x8a, 0x38, 0x0c, 0xe2, 0x01, 0xed, + 0xf4, 0xad, 0x0f, 0x2f, 0x68, 0x71, 0x1d, 0x0d, + 0x10, 0x0d, 0x9d, 0x45, 0xd1, 0x31, 0xc3, 0x2e, + 0x46, 0x0f, 0xfc, 0xe0, 0xb9, 0x77, 0xb0, 0xf4, + 0x51, 0x35, 0xa1, 0xcc, 0x90, 0xa3, 0x31, 0x2c, + 0x25, 0x41, 0x86, 0x6d, 0xef, 0x2c, 0x41, 0xe4, + 0x14, 0xd3, 0x16, 0x90, 0x41, 0x36, 0x6f, 0xa2, + 0x6a, 0xfc, 0x1b, 0x0e, 0xc1, 0x98, 0x6a, 0xf0, + 0xd3, 0x77, 0x64, 0x20, 0x0f, 0x12, 0x57, 0x75, + 0x97, 0x6f, 0x21, 0x1d, 0x6b, 0x32, 0x89, 0x02, + 0xfd, 0x23, 0x7f, 0xfc, 0x18, 0x1b, 0x7a, 0xa5, + 0xe5, 0xf7, 0xcf, 0x19, 0xb7, 0xf0, 0x3d, 0xb1, + 0x58, 0xf2, 0xc7, 0xdb, 0xc3, 0x46, 0xac, 0x8e, + 0xa1, 0xd1, 0x1a, 0xe6, 0x6b, 0x5f, 0xff, 0x00, + 0x61, 0x04, 0x17, 0x82, 0x74, 0x94, 0x3d, 0x39, + 0xb0, 0x50, 0xf6, 0xea, 0xf2, 0xb3, 0xcc, 0xdb, + 0x9d, 0x62, 0xb2, 0xc2, 0xf5, 0x96, 0x56, 0xa0, + 0xd8, 0xd9, 0xfa, 0xd1, 0x22, 0xa0, 0x03, 0xda, + 0x4a, 0xd0, 0x6d, 0x06, 0xf7, 0x6b, 0x81, 0xd2, + 0x0d, 0x6b, 0x04, 0xd2, 0xca, 0xad, 0x39, 0xac, + 0xae, 0x61, 0x78, 0xaa, 0xe2, 0xac, 0xc3, 0xae, + 0x68, 0xe1, 0xa3, 0x27, 0x0f, 0x23, 0xb6, 0x78, + 0x2d, 0x9c, 0x17, 0x8c, 0xe2, 0x25, 0xfd, 0x9b, + 0xfe, 0x64, 0x60, 0xbe, 0x84, 0x48, 0x91, 0x22, + 0x56, 0xd9, 0xaa, 0x6e, 0x7a, 0x3b, 0xc0, 0xd6, + 0x46, 0x36, 0x20, 0x0b, 0x2a, 0x09, 0x9e, 0x54, + 0xac, 0xaa, 0xf8, 0x5c, 0x25, 0x38, 0xdd, 0xd5, + 0x18, 0xe2, 0x98, 0x5f, 0xa1, 0xe3, 0x36, 0x40, + 0x22, 0x26, 0xe5, 0x58, 0x78, 0x10, 0x95, 0xc6, + 0xa5, 0x0b, 0x8b, 0x11, 0xa1, 0x70, 0x61, 0xa0, + 0xa2, 0x53, 0x3d, 0x3a, 0xcd, 0x5e, 0x88, 0x49, + 0xcc, 0x0a, 0x45, 0x99, 0xb0, 0xf5, 0x32, 0xd8, + 0xe7, 0x6f, 0xe3, 0x2f, 0xa5, 0x19, 0x9d, 0xee, + 0x27, 0xc4, 0xb8, 0x6d, 0x73, 0x34, 0xc6, 0x2c, + 0xbb, 0xf6, 0x7a, 0x0c, 0x61, 0xc4, 0x04, 0x1a, + 0x52, 0x2e, 0xe2, 0xdc, 0x01, 0x1c, 0x8e, 0x45, + 0xea, 0xa2, 0x44, 0x89, 0x12, 0x27, 0x06, 0xb1, + 0x0c, 0x88, 0x8c, 0xe2, 0x4b, 0x55, 0xcf, 0xed, + 0x7a, 0xa5, 0xe5, 0xf7, 0xcf, 0x19, 0xb4, 0x56, + 0x6c, 0xf3, 0x8f, 0xbf, 0x2d, 0xbf, 0xa9, 0xde, + 0x05, 0xd4, 0xf8, 0x66, 0xca, 0xce, 0x81, 0x80, + 0xde, 0x8e, 0x1c, 0x38, 0x70, 0x42, 0x2e, 0xf3, + 0xab, 0xd4, 0xe6, 0x20, 0xd3, 0x45, 0x20, 0xc4, + 0x6f, 0xdb, 0x28, 0xc7, 0xcb, 0xf5, 0x06, 0x06, + 0xda, 0xe5, 0x67, 0xc6, 0x7a, 0xb4, 0x90, 0x3e, + 0x66, 0xa3, 0x81, 0xab, 0x6a, 0x2b, 0xe8, 0xa3, + 0x87, 0x0e, 0x0c, 0x46, 0x88, 0x0b, 0x15, 0x20, + 0x37, 0x2e, 0x22, 0x41, 0x84, 0xfa, 0x31, 0x2d, + 0x87, 0xc1, 0xa0, 0xce, 0x09, 0x00, 0x17, 0x4b, + 0x41, 0x2d, 0xf4, 0x5d, 0xc0, 0x31, 0x76, 0x99, + 0xb9, 0x40, 0xea, 0x30, 0x1a, 0xc9, 0xda, 0x1e, + 0xea, 0xf5, 0xf7, 0xad, 0x71, 0x11, 0x63, 0xd4, + 0x67, 0x73, 0xf2, 0x1a, 0x98, 0x42, 0x63, 0x46, + 0xca, 0x38, 0x8a, 0x28, 0xca, 0xf1, 0x9f, 0x0e, + 0x0a, 0xb6, 0xbb, 0x85, 0x73, 0xe3, 0xef, 0xc0, + 0x35, 0x13, 0x53, 0xf5, 0x8d, 0x9c, 0x17, 0x8b, + 0x36, 0xc5, 0x06, 0x1a, 0x1f, 0x72, 0xed, 0x7a, + 0xed, 0xdb, 0xb7, 0x6e, 0xdd, 0xbb, 0x77, 0x20, + 0x67, 0x43, 0xea, 0xa1, 0x7f, 0x45, 0xc2, 0x46, + 0x04, 0xfb, 0xb4, 0x3e, 0x5c, 0x29, 0xdb, 0x78, + 0xe8, 0x7c, 0x15, 0x41, 0xe3, 0x3c, 0x28, 0x3d, + 0x07, 0x2f, 0x28, 0x4b, 0xe2, 0x20, 0xe2, 0xbc, + 0x09, 0xde, 0x6d, 0x1a, 0xdc, 0xf4, 0xfe, 0x1c, + 0x20, 0xb9, 0x6e, 0xdd, 0xbb, 0x76, 0xed, 0xdb, + 0xb6, 0x71, 0xb1, 0xed, 0xcb, 0x3e, 0xdc, 0xc2, + 0xbf, 0xb3, 0x15, 0x82, 0xaf, 0x15, 0x69, 0x2a, + 0x55, 0x8c, 0x99, 0x47, 0xa5, 0x3c, 0xbe, 0xf9, + 0xe3, 0x36, 0xe2, 0x56, 0xf9, 0x58, 0xb4, 0xde, + 0x8d, 0x98, 0x59, 0x41, 0xa5, 0x38, 0x48, 0x52, + 0x17, 0xd6, 0x16, 0x9a, 0x66, 0x8c, 0xa5, 0xd7, + 0xd4, 0x4a, 0x10, 0x08, 0x90, 0x62, 0x86, 0x54, + 0x58, 0x28, 0xd4, 0x0c, 0x41, 0x7e, 0xfd, 0xbb, + 0xe1, 0x9c, 0x0a, 0x34, 0x28, 0x17, 0xa2, 0x59, + 0xa2, 0x33, 0x96, 0x3c, 0xa6, 0x84, 0x01, 0xb5, + 0xc2, 0x23, 0x8d, 0x6d, 0xf0, 0x22, 0x19, 0x25, + 0x48, 0x5c, 0x02, 0x45, 0x74, 0x43, 0xf3, 0x05, + 0x2b, 0xa3, 0xf9, 0xd0, 0xd8, 0xa0, 0x08, 0xfb, + 0x60, 0x2a, 0xd9, 0xc6, 0x70, 0x48, 0x25, 0x6b, + 0x22, 0x10, 0x27, 0x4f, 0xe6, 0x10, 0x3c, 0x34, + 0x48, 0x62, 0x3d, 0x0a, 0xe4, 0x42, 0x89, 0x31, + 0x91, 0xec, 0x08, 0xc6, 0x2b, 0x3c, 0x2a, 0x43, + 0xcc, 0xc5, 0xc7, 0xc4, 0x15, 0x84, 0xd6, 0xe7, + 0x02, 0xb7, 0x50, 0x7a, 0xc0, 0xa0, 0x24, 0xc9, + 0x1a, 0xfd, 0xe3, 0xa5, 0x1a, 0x6a, 0x6d, 0x04, + 0x54, 0xab, 0x4b, 0x0f, 0x10, 0x7d, 0xc2, 0x18, + 0x3c, 0x3f, 0x8c, 0xfd, 0x6b, 0xae, 0xfc, 0x19, + 0xca, 0x72, 0xb1, 0xa1, 0x9c, 0xe2, 0x11, 0x1f, + 0x61, 0x2a, 0x6e, 0x01, 0x6e, 0xdf, 0xdf, 0x7e, + 0xce, 0x0a, 0x08, 0x24, 0x28, 0xfa, 0xad, 0xf0, + 0x5a, 0x9b, 0x16, 0x95, 0xcf, 0x05, 0xb3, 0xf8, + 0x97, 0xc6, 0x3c, 0x7d, 0x92, 0xba, 0xa2, 0xb3, + 0x44, 0xd5, 0xdd, 0x1e, 0x53, 0x5b, 0x77, 0x95, + 0x69, 0x43, 0x58, 0xdd, 0x9d, 0xf6, 0xb7, 0x37, + 0x9d, 0x2e, 0x0d, 0x40, 0x25, 0xe6, 0xb5, 0x0f, + 0xe2, 0x57, 0x71, 0x36, 0x68, 0x60, 0x28, 0x1f, + 0xf8, 0x96, 0x36, 0xc1, 0xa7, 0xcb, 0xef, 0x9e, + 0x33, 0x6e, 0x25, 0x60, 0x61, 0x8d, 0x9d, 0xb0, + 0xa3, 0x0d, 0x91, 0xe3, 0x89, 0x4e, 0x00, 0xdc, + 0x9b, 0x02, 0xee, 0x8f, 0x86, 0x64, 0x6f, 0xe1, + 0x55, 0x9d, 0x45, 0x88, 0x2f, 0x71, 0x7d, 0x27, + 0xe2, 0x12, 0x81, 0x12, 0x55, 0x09, 0x4a, 0xbe, + 0x3e, 0x2b, 0x5b, 0xdc, 0xf5, 0x4b, 0x04, 0xd2, + 0x87, 0x78, 0x47, 0x06, 0x2f, 0x38, 0x89, 0x19, + 0x7b, 0x37, 0x10, 0xe5, 0x89, 0x29, 0xf7, 0xe0, + 0x68, 0xb7, 0x8d, 0xb0, 0x4e, 0x19, 0xdf, 0xc4, + 0x88, 0x4f, 0x83, 0xcb, 0x55, 0xc3, 0x08, 0x03, + 0x87, 0x62, 0x98, 0xea, 0xc5, 0x4c, 0x18, 0xfe, + 0x78, 0xc7, 0x1f, 0x73, 0xd4, 0x10, 0x0b, 0x86, + 0xb6, 0x0a, 0xf0, 0xf0, 0x59, 0xfc, 0xcb, 0x49, + 0x6c, 0x86, 0xa4, 0x4c, 0xc5, 0x48, 0x7b, 0x06, + 0xc4, 0xbd, 0x45, 0xfa, 0xf9, 0x36, 0x50, 0x90, + 0xe5, 0xa0, 0xe2, 0x8c, 0x2d, 0xc1, 0x0f, 0x73, + 0x7e, 0x60, 0x7f, 0xa1, 0xec, 0xd9, 0x5a, 0x71, + 0x6a, 0x28, 0xb4, 0x3f, 0x9e, 0x88, 0xf3, 0x72, + 0x6c, 0xf4, 0xbc, 0x9f, 0xf9, 0x11, 0xe5, 0x48, + 0x30, 0x40, 0x68, 0xc5, 0x90, 0x56, 0xb2, 0x5d, + 0x3b, 0x37, 0x82, 0xd9, 0x30, 0xa5, 0xe2, 0x74, + 0xbb, 0x55, 0x7c, 0xeb, 0xd7, 0xc8, 0xb4, 0x5d, + 0x25, 0x93, 0x2e, 0x65, 0x96, 0x0c, 0x18, 0x30, + 0x60, 0x5b, 0x6f, 0x3d, 0x72, 0xa3, 0x41, 0xa4, + 0xe9, 0x48, 0x7b, 0x7b, 0x18, 0x2c, 0xde, 0xa6, + 0xdd, 0x02, 0xd9, 0x24, 0x22, 0xc4, 0x86, 0xef, + 0x7d, 0x15, 0x65, 0xaf, 0xc6, 0x31, 0x1d, 0x9d, + 0xc6, 0x59, 0x42, 0xa3, 0x46, 0x48, 0x78, 0x27, + 0x9a, 0x70, 0xc0, 0xac, 0xc4, 0xa9, 0xf7, 0xb8, + 0x55, 0x44, 0xc2, 0x4b, 0xc4, 0x37, 0xe2, 0x28, + 0xcd, 0xb6, 0x9e, 0x53, 0x6d, 0xd4, 0xd7, 0x5c, + 0x6e, 0xe3, 0x01, 0x47, 0x85, 0x41, 0x80, 0xcf, + 0x48, 0x45, 0xa6, 0xa1, 0xa6, 0x23, 0x77, 0xab, + 0x06, 0x0c, 0x18, 0x30, 0x60, 0x1d, 0xa3, 0xbf, + 0x45, 0x27, 0x9d, 0x5f, 0xed, 0xd4, 0x5f, 0x06, + 0x9f, 0x2f, 0xbe, 0x78, 0xcd, 0xa2, 0xb4, 0x20, + 0x07, 0x4b, 0xbb, 0xca, 0xce, 0xeb, 0x39, 0x2f, + 0x1f, 0x58, 0xe7, 0x95, 0x0a, 0xb9, 0x3c, 0xb2, + 0xd5, 0xb0, 0x85, 0x8b, 0x84, 0xd2, 0x98, 0x51, + 0xa3, 0x1a, 0x60, 0xc8, 0x39, 0x8b, 0x07, 0x20, + 0x3a, 0x83, 0x91, 0x7e, 0xf0, 0x05, 0x40, 0x75, + 0x0b, 0x1f, 0x6c, 0xfb, 0xb1, 0xbc, 0xc7, 0xa9, + 0x6b, 0x83, 0xd3, 0x08, 0xb8, 0x52, 0x34, 0x55, + 0x4f, 0xa2, 0xe1, 0xff, 0x00, 0x38, 0x6c, 0x3f, + 0x02, 0x6a, 0x67, 0xa3, 0x64, 0xba, 0x14, 0x53, + 0xd7, 0xb3, 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0x42, + 0x79, 0xdb, 0xf2, 0xcb, 0x9a, 0x85, 0xf8, 0x88, + 0x5a, 0xc6, 0x8a, 0xd3, 0xfe, 0xb2, 0xa5, 0x2b, + 0x3a, 0x17, 0x07, 0xb6, 0x3d, 0x98, 0xc6, 0x26, + 0x45, 0xcc, 0x94, 0xb9, 0x13, 0x38, 0x5d, 0x46, + 0x5c, 0x73, 0x62, 0x16, 0xa6, 0x96, 0x36, 0xb6, + 0xb2, 0x40, 0x28, 0x23, 0x60, 0x0e, 0x90, 0xcb, + 0x2f, 0x20, 0x46, 0x0a, 0x8c, 0x31, 0xa2, 0xd2, + 0xd6, 0x0d, 0x2c, 0x93, 0x45, 0x8d, 0x5b, 0xa0, + 0x9b, 0x9f, 0xd0, 0x8e, 0xd1, 0xce, 0x57, 0x59, + 0xa9, 0xc1, 0xa6, 0x5a, 0x1c, 0x2d, 0x69, 0x78, + 0xb9, 0xa6, 0x8e, 0x15, 0xd7, 0x54, 0xb4, 0x1b, + 0xde, 0x2a, 0x8a, 0x52, 0x05, 0xf4, 0x90, 0x08, + 0x26, 0x9a, 0x09, 0xf4, 0xd8, 0x83, 0x21, 0x97, + 0x28, 0xdf, 0xda, 0x4b, 0x60, 0xc9, 0x90, 0x9d, + 0x57, 0x38, 0x09, 0x18, 0xf1, 0x84, 0x23, 0xe1, + 0x0d, 0xef, 0x78, 0x3e, 0xb9, 0x2e, 0x23, 0x26, + 0x6e, 0x84, 0xf6, 0xa7, 0x12, 0xb7, 0xce, 0x48, + 0x5c, 0xaf, 0x9f, 0xc4, 0xa7, 0x7d, 0x1f, 0x2d, + 0xae, 0xc1, 0x88, 0x00, 0xec, 0x2f, 0xe4, 0x91, + 0xa7, 0x5d, 0x29, 0x3e, 0xf4, 0x52, 0x55, 0x52, + 0x73, 0x9b, 0xa8, 0x24, 0x71, 0x32, 0xc4, 0x85, + 0x76, 0x62, 0xd4, 0x21, 0x57, 0x26, 0x8b, 0x59, + 0x7f, 0xeb, 0x9f, 0xef, 0xb6, 0x49, 0x46, 0x1d, + 0xab, 0x8a, 0x56, 0xae, 0x90, 0xa2, 0xbd, 0xae, + 0x7b, 0xcf, 0x2f, 0xbe, 0x78, 0xcd, 0xbf, 0xb4, + 0xbd, 0xe0, 0xb6, 0x47, 0x50, 0x3f, 0x8a, 0x13, + 0x2c, 0x2c, 0x5e, 0x2c, 0xb2, 0xcb, 0x21, 0x0b, + 0x22, 0xf2, 0x2f, 0xf5, 0x63, 0xe2, 0xd2, 0x86, + 0x51, 0x83, 0x06, 0x0c, 0x36, 0x63, 0xe1, 0x32, + 0x47, 0x4c, 0x33, 0x19, 0x06, 0x01, 0x52, 0xf7, + 0x9e, 0x21, 0x8b, 0x03, 0x65, 0x63, 0x3f, 0xe2, + 0xbe, 0x83, 0xda, 0x14, 0x54, 0xd1, 0x26, 0x31, + 0xca, 0x35, 0x44, 0xb3, 0x81, 0x70, 0xe1, 0xb2, + 0x1a, 0x3e, 0x64, 0xc9, 0xd8, 0x15, 0x93, 0x7d, + 0xba, 0x66, 0x06, 0x66, 0x59, 0xa7, 0xd6, 0xb1, + 0xc5, 0xe9, 0x08, 0x90, 0x94, 0xb0, 0x0a, 0x9c, + 0x95, 0xb0, 0x2c, 0xde, 0x2f, 0x87, 0x39, 0xfb, + 0xf5, 0x8e, 0xe7, 0x84, 0x2f, 0x7b, 0x46, 0x16, + 0x33, 0x3c, 0x60, 0x20, 0x00, 0x60, 0x02, 0x83, + 0xd2, 0x30, 0x60, 0xc1, 0x80, 0xf9, 0x00, 0xa4, + 0x80, 0x01, 0xf7, 0x1d, 0x15, 0xa2, 0x4e, 0xad, + 0xdc, 0xc1, 0x53, 0x15, 0xaa, 0x59, 0x1e, 0x0d, + 0x1f, 0x39, 0xbc, 0x18, 0x91, 0xdb, 0x16, 0x37, + 0x9f, 0xf5, 0x6b, 0x16, 0x2c, 0x58, 0xb1, 0x62, + 0xc5, 0x8b, 0x16, 0x2c, 0x58, 0xb1, 0x62, 0xc5, + 0x8b, 0x16, 0x2c, 0x59, 0x7d, 0x82, 0xac, 0xbd, + 0x09, 0x40, 0xff, 0x00, 0x7e, 0x86, 0x80, 0x99, + 0x7e, 0x5f, 0x7c, 0xf1, 0x9b, 0x42, 0x52, 0xc0, + 0x00, 0x08, 0xa2, 0xea, 0x29, 0xdd, 0x5f, 0xaa, + 0xbe, 0xf3, 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, + 0xb3, 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb3, + 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb3, 0x3e, + 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb3, 0x3e, 0x07, + 0xfb, 0x33, 0xe0, 0x7f, 0xb3, 0x3e, 0x07, 0xfb, + 0x33, 0xe0, 0x7f, 0xb3, 0x3e, 0x07, 0xfb, 0x33, + 0xe0, 0x7f, 0xb3, 0x3e, 0x07, 0xfb, 0x33, 0xe0, + 0x7f, 0xb3, 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, + 0xb3, 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb3, + 0x3e, 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb3, 0x3e, + 0x07, 0xfb, 0x33, 0xe0, 0x7f, 0xb2, 0xdf, 0xa0, + 0x87, 0x39, 0x5a, 0x38, 0x58, 0x20, 0xe8, 0xe7, + 0x30, 0xde, 0x63, 0xfd, 0xb3, 0x96, 0x12, 0xe4, + 0x45, 0xb8, 0x11, 0xfd, 0x51, 0xf3, 0xe7, 0xcf, + 0x9f, 0x3e, 0x7c, 0xf9, 0xf3, 0xe7, 0xcf, 0x9f, + 0x3e, 0x7c, 0xf9, 0xf3, 0xe7, 0xdf, 0xb7, 0xbf, + 0xe1, 0x02, 0xfe, 0x42, 0x10, 0xdc, 0x09, 0x4e, + 0x62, 0x49, 0xd2, 0x1e, 0xc1, 0x54, 0x59, 0x21, + 0x1b, 0x6e, 0x25, 0xc5, 0xb6, 0x0c, 0x08, 0xc2, + 0xe9, 0x8f, 0x25, 0x77, 0x9e, 0x4a, 0xef, 0x15, + 0x51, 0x21, 0xe9, 0x9d, 0x9a, 0xac, 0x84, 0x19, + 0x45, 0xd8, 0x0c, 0x1a, 0xbd, 0x04, 0x02, 0x64, + 0x9b, 0x7e, 0xa5, 0x07, 0xb8, 0x25, 0x86, 0x79, + 0x26, 0x4c, 0xac, 0x84, 0x45, 0x25, 0x56, 0x82, + 0x34, 0xf4, 0x42, 0xe4, 0x02, 0xcc, 0x83, 0x67, + 0xc0, 0xbc, 0x4e, 0x4f, 0x1c, 0xb2, 0xa2, 0x20, + 0x65, 0x63, 0x0d, 0x5d, 0xac, 0x30, 0xce, 0x2f, + 0x19, 0x82, 0x80, 0xaa, 0x12, 0x01, 0x56, 0x98, + 0x05, 0x96, 0x16, 0x96, 0x6f, 0x07, 0x3f, 0x8a, + 0x88, 0x53, 0xda, 0xe8, 0x43, 0x0d, 0xc2, 0x10, + 0x39, 0x76, 0xec, 0x2c, 0x61, 0x32, 0x41, 0x31, + 0x5c, 0x47, 0x2b, 0xe9, 0xc5, 0x05, 0x96, 0xbb, + 0x53, 0xfe, 0xa5, 0xa9, 0x85, 0x66, 0xee, 0xa2, + 0x75, 0x48, 0x10, 0x18, 0xc5, 0x9d, 0x69, 0x7d, + 0x28, 0x6e, 0xe1, 0xca, 0x03, 0x23, 0xa1, 0x54, + 0xd9, 0x65, 0x23, 0xa4, 0xd3, 0x5d, 0x2c, 0xd1, + 0x81, 0xd3, 0x32, 0x30, 0x12, 0xa0, 0xfa, 0x45, + 0x85, 0xa5, 0x94, 0x80, 0xd9, 0x92, 0x9c, 0x99, + 0x31, 0x06, 0x00, 0xa0, 0x22, 0x22, 0x23, 0xa2, + 0x23, 0x48, 0xfb, 0x24, 0xf2, 0x57, 0x79, 0xe4, + 0xae, 0xf1, 0x84, 0x08, 0xa0, 0xd1, 0xdd, 0x5a, + 0x14, 0x23, 0x8a, 0x87, 0xad, 0x91, 0x10, 0x4b, + 0x1b, 0xd6, 0x88, 0x16, 0x8d, 0xda, 0x6c, 0xa9, + 0xd2, 0x96, 0xd6, 0x5d, 0xc5, 0x7a, 0xab, 0x3c, + 0xbe, 0xf9, 0xe3, 0x36, 0xfe, 0xd3, 0x27, 0x82, + 0xd9, 0x18, 0xf7, 0x96, 0x23, 0xab, 0x8a, 0x84, + 0xa9, 0x80, 0x14, 0x57, 0x77, 0x44, 0x22, 0xb9, + 0xf6, 0x23, 0xd1, 0x8a, 0xef, 0xe8, 0x50, 0x64, + 0xc1, 0x48, 0x36, 0x32, 0x63, 0xa9, 0x85, 0xe6, + 0x80, 0xd5, 0x46, 0xc0, 0xf1, 0x53, 0xa8, 0xb5, + 0x88, 0x16, 0xc9, 0xb0, 0xf8, 0xc1, 0xdc, 0x86, + 0x2d, 0x00, 0xf5, 0xd2, 0x26, 0xb5, 0xb8, 0x17, + 0x45, 0xca, 0xf1, 0x5e, 0x2a, 0xbb, 0xac, 0x40, + 0xc9, 0x11, 0x07, 0x30, 0x80, 0xe3, 0x7b, 0xe3, + 0xa1, 0x58, 0x75, 0xdc, 0x01, 0x41, 0xf1, 0xaa, + 0xb2, 0xe1, 0x92, 0xb8, 0x6f, 0xb0, 0x0c, 0x4d, + 0x37, 0x2f, 0x70, 0x26, 0x01, 0x18, 0x5f, 0x84, + 0x04, 0x2f, 0x43, 0xe1, 0xc0, 0x94, 0x19, 0x8a, + 0xea, 0xd2, 0x10, 0x73, 0xfb, 0x81, 0xc3, 0xdf, + 0x40, 0x83, 0x57, 0x0d, 0x10, 0x16, 0x92, 0x4c, + 0x1d, 0x2b, 0x63, 0x9d, 0xa7, 0x08, 0x90, 0x2c, + 0x8c, 0x05, 0x89, 0xb8, 0x20, 0xa0, 0x8d, 0x61, + 0x82, 0x21, 0x1a, 0x92, 0xe9, 0x84, 0x8f, 0xd9, + 0x5a, 0x4a, 0x08, 0x7f, 0x04, 0xc1, 0x10, 0xe6, + 0x4e, 0x72, 0x53, 0xb8, 0x35, 0x9c, 0xfe, 0x63, + 0x5f, 0x4d, 0x71, 0x76, 0xc3, 0xb0, 0x5a, 0x8b, + 0x72, 0x0c, 0x4d, 0x71, 0xfb, 0xea, 0x62, 0x5e, + 0xec, 0x82, 0x19, 0x04, 0x66, 0xbf, 0xa2, 0x7e, + 0x07, 0x6a, 0x3c, 0xbf, 0xc9, 0x32, 0xfc, 0x1b, + 0x9e, 0xa9, 0x0b, 0x8d, 0x4c, 0x72, 0x2a, 0x15, + 0x55, 0xaf, 0x6c, 0x4a, 0x30, 0xaf, 0x50, 0x00, + 0xc2, 0xa8, 0x1a, 0x14, 0x00, 0x0a, 0x23, 0xd6, + 0xd9, 0x4d, 0x5f, 0xf0, 0x9c, 0xf7, 0x57, 0xb4, + 0xe7, 0xba, 0xbd, 0xb8, 0x6d, 0xce, 0xae, 0x92, + 0x09, 0x44, 0x97, 0xeb, 0xf8, 0x00, 0xca, 0x6a, + 0xb9, 0x12, 0x64, 0xf8, 0x71, 0x15, 0x2f, 0xc9, + 0xd2, 0x9b, 0x1c, 0xce, 0x62, 0x16, 0x4f, 0xc2, + 0x8d, 0x8a, 0xad, 0xba, 0x33, 0xd0, 0x3d, 0xb6, + 0x7f, 0x5c, 0x3e, 0x06, 0x7d, 0x2f, 0x71, 0xa4, + 0x72, 0x0a, 0xf7, 0x98, 0x49, 0x36, 0xc4, 0xec, + 0x8b, 0x42, 0xf7, 0x0d, 0x4c, 0x04, 0x41, 0xea, + 0x25, 0x56, 0x30, 0x5e, 0x55, 0x08, 0x36, 0x0a, + 0x8b, 0x62, 0xb5, 0xba, 0x25, 0x08, 0x4e, 0x23, + 0x75, 0xc6, 0xac, 0x4e, 0x58, 0x85, 0x94, 0x50, + 0x49, 0x28, 0x34, 0x14, 0x32, 0x2d, 0x44, 0x0b, + 0x30, 0x57, 0xde, 0x60, 0x73, 0x38, 0x23, 0x20, + 0x6e, 0x53, 0xe2, 0x00, 0x34, 0xe9, 0xa6, 0xd2, + 0xed, 0x11, 0xf5, 0xa9, 0x94, 0x11, 0x43, 0xee, + 0x1b, 0x39, 0x5a, 0x6c, 0x31, 0x04, 0xe5, 0x94, + 0x52, 0x6f, 0x9d, 0x4c, 0x4f, 0x02, 0x3a, 0xe2, + 0x92, 0x1d, 0x7f, 0x99, 0x26, 0x4a, 0x37, 0x3d, + 0xd5, 0xed, 0x39, 0xee, 0xaf, 0x69, 0xcf, 0x75, + 0x7b, 0x41, 0x31, 0xb0, 0x87, 0x5b, 0x0d, 0x7f, + 0xef, 0x13, 0x64, 0x3e, 0x5f, 0x7c, 0xf1, 0x9b, + 0x42, 0x0b, 0x10, 0xe6, 0xc2, 0xcd, 0xce, 0xa4, + 0xb3, 0x73, 0xa9, 0x2c, 0xdc, 0xea, 0x4b, 0x37, + 0x3a, 0x92, 0xcd, 0xce, 0xa4, 0xb3, 0x73, 0xa9, + 0x2c, 0xdc, 0xea, 0x4b, 0x37, 0x3a, 0x92, 0xcd, + 0xce, 0xa4, 0xb3, 0x73, 0xa9, 0x2c, 0xdc, 0xea, + 0x4b, 0x37, 0x3a, 0x92, 0xcd, 0xce, 0xa4, 0xb3, + 0x73, 0xa9, 0x2c, 0xdc, 0xea, 0x4b, 0x37, 0x3a, + 0x92, 0xcd, 0xce, 0xa4, 0xb3, 0x73, 0xa9, 0x2c, + 0xdc, 0xea, 0x4b, 0x37, 0x3a, 0x92, 0xcd, 0xce, + 0xa4, 0xb3, 0x73, 0xa9, 0x2c, 0xdc, 0xea, 0x4b, + 0x37, 0x3a, 0x91, 0x1a, 0x87, 0xd6, 0x36, 0x40, + 0x5a, 0xa5, 0x1c, 0x34, 0xfc, 0x7f, 0x51, 0x52, + 0xf3, 0x23, 0x4c, 0x2b, 0x2a, 0xae, 0xf4, 0x57, + 0x61, 0x76, 0xbf, 0xd7, 0x61, 0xa0, 0x68, 0xbd, + 0xd6, 0x88, 0xf4, 0x87, 0x15, 0x57, 0xd0, 0xad, + 0x70, 0xaa, 0x98, 0xcc, 0x06, 0xeb, 0x8e, 0x9c, + 0x03, 0x4e, 0xbb, 0xe0, 0xfb, 0x5b, 0xc9, 0x92, + 0x4e, 0xd9, 0xbe, 0x1b, 0x14, 0xa7, 0x8e, 0x06, + 0x95, 0x8e, 0xe6, 0xa1, 0x38, 0x15, 0x50, 0x0e, + 0x79, 0xef, 0x02, 0xe1, 0x52, 0x03, 0x81, 0xa6, + 0x80, 0x5a, 0x80, 0xb3, 0x53, 0xb0, 0xe9, 0x63, + 0x1b, 0xe4, 0x1a, 0x8e, 0x2b, 0x86, 0x40, 0x96, + 0x9a, 0x29, 0xc2, 0x69, 0x52, 0x73, 0x33, 0x41, + 0x49, 0x9f, 0xb9, 0x41, 0x36, 0x00, 0x1d, 0xeb, + 0x52, 0xb0, 0x8e, 0x36, 0x58, 0x45, 0xec, 0xeb, + 0xe1, 0x8e, 0xac, 0x95, 0xfb, 0x96, 0x3a, 0x4a, + 0x3b, 0xa9, 0x12, 0x26, 0x2d, 0x3e, 0xc2, 0x7a, + 0x31, 0xb1, 0xae, 0xcf, 0x28, 0x1c, 0x6e, 0xce, + 0x6c, 0xa3, 0x6c, 0xc1, 0x92, 0xcc, 0x65, 0xf0, + 0x93, 0x47, 0x4c, 0x37, 0x40, 0x89, 0xa4, 0x80, + 0x99, 0x2e, 0x7d, 0xda, 0x1e, 0x45, 0x1c, 0x00, + 0x4a, 0x13, 0x10, 0x5c, 0x13, 0xf3, 0xea, 0x84, + 0xf0, 0xc2, 0xa0, 0x70, 0xc1, 0x02, 0x06, 0x04, + 0x06, 0xb2, 0x34, 0x12, 0xc1, 0xeb, 0x32, 0x36, + 0x36, 0x8b, 0x2f, 0xfe, 0xb5, 0x86, 0x59, 0x49, + 0x87, 0x13, 0x05, 0x21, 0x15, 0x89, 0xb1, 0x07, + 0x79, 0xb6, 0xca, 0xba, 0xd8, 0x23, 0xc4, 0x31, + 0x7d, 0xfd, 0x59, 0x7d, 0xfd, 0x59, 0x72, 0xd1, + 0x6f, 0xc4, 0x22, 0xe2, 0x51, 0x84, 0xfc, 0xbf, + 0xad, 0xf6, 0x70, 0x81, 0x72, 0x81, 0xe5, 0x78, + 0xa9, 0x58, 0x33, 0x98, 0xb1, 0xe0, 0xfa, 0x1b, + 0xde, 0x0d, 0x8d, 0x45, 0x13, 0xe6, 0x44, 0x53, + 0x8e, 0xf3, 0x08, 0xe4, 0xc5, 0x70, 0x5b, 0x4f, + 0x7f, 0x56, 0x6f, 0x51, 0x1b, 0x81, 0x0e, 0x7a, + 0xe8, 0x54, 0x0e, 0x0c, 0xc7, 0x3a, 0x11, 0x18, + 0x86, 0x3b, 0xf4, 0x9d, 0x62, 0x33, 0x02, 0x17, + 0x35, 0x65, 0x2d, 0x2a, 0x56, 0xde, 0x2d, 0xd6, + 0x94, 0x8a, 0x52, 0x50, 0x89, 0x4e, 0xd8, 0x78, + 0x3d, 0xed, 0x59, 0x38, 0x20, 0x31, 0xad, 0x93, + 0xd3, 0x09, 0x6d, 0x3c, 0xb9, 0x1f, 0x82, 0xb9, + 0x51, 0xb4, 0x98, 0x92, 0x5b, 0x84, 0xa5, 0x55, + 0x51, 0x1e, 0x46, 0xd8, 0xf1, 0x13, 0x76, 0x4a, + 0x60, 0x04, 0xf1, 0x99, 0x72, 0x52, 0x35, 0x1a, + 0x3c, 0xb5, 0x36, 0x72, 0x99, 0x24, 0xdb, 0x52, + 0x14, 0x52, 0x4e, 0x3b, 0x6e, 0xba, 0xfb, 0xfa, + 0xb2, 0xfb, 0xfa, 0xb0, 0xb0, 0xe6, 0xbd, 0x3a, + 0xe0, 0x6c, 0x36, 0x06, 0x97, 0x33, 0xc3, 0x8d, + 0xcb, 0x10, 0x80, 0x00, 0x0a, 0x88, 0x2d, 0x6a, + 0x33, 0x1a, 0x11, 0xe6, 0x47, 0xcb, 0xef, 0x9e, + 0x33, 0x68, 0x23, 0x70, 0x3b, 0xf3, 0xa3, 0x63, + 0xa1, 0x28, 0xd8, 0xe8, 0x4a, 0x36, 0x3a, 0x12, + 0x8d, 0x8e, 0x84, 0xa3, 0x63, 0xa1, 0x28, 0xd8, + 0xe8, 0x4a, 0x36, 0x3a, 0x12, 0x8d, 0x8e, 0x84, + 0xa3, 0x63, 0xa1, 0x28, 0xd8, 0xe8, 0x4a, 0x36, + 0x3a, 0x12, 0x8d, 0x8e, 0x84, 0xa3, 0x63, 0xa1, + 0x28, 0xd8, 0xe8, 0x4a, 0x36, 0x3a, 0x12, 0x8d, + 0x8e, 0x84, 0xa3, 0x63, 0xa1, 0x28, 0xd8, 0xe8, + 0x4a, 0x36, 0x3a, 0x12, 0x8d, 0x8e, 0x84, 0xa3, + 0x63, 0xa1, 0x28, 0xd8, 0xe8, 0x4a, 0x36, 0x3a, + 0x12, 0x8d, 0x8e, 0x84, 0x26, 0x91, 0xf4, 0x0d, + 0xc8, 0x5f, 0x2e, 0x20, 0xd7, 0xe6, 0x07, 0xe8, + 0x2b, 0xcb, 0x80, 0xde, 0xeb, 0x8b, 0x6b, 0xbc, + 0x80, 0x44, 0x5c, 0x18, 0x21, 0x4d, 0x10, 0x53, + 0xe8, 0x96, 0x96, 0x2b, 0x6c, 0x4c, 0xe1, 0xba, + 0xc4, 0x89, 0xc5, 0x8a, 0x9b, 0x97, 0x37, 0x3f, + 0xa1, 0x62, 0x09, 0x8a, 0x05, 0x09, 0xa2, 0xb2, + 0x7b, 0xe1, 0x6c, 0x67, 0x69, 0xbe, 0x22, 0x9d, + 0x03, 0x6b, 0xca, 0xb9, 0x4a, 0xc4, 0x5a, 0x6d, + 0xc1, 0x5d, 0xd3, 0x05, 0x99, 0x17, 0x22, 0x59, + 0xcc, 0xee, 0x3a, 0x8e, 0x5a, 0x41, 0x96, 0x91, + 0xa2, 0x0a, 0x7b, 0x6a, 0x5b, 0x4c, 0x40, 0x00, + 0x00, 0x56, 0x01, 0x02, 0xdd, 0xa5, 0x60, 0xb6, + 0xe4, 0xdd, 0x81, 0x58, 0x08, 0xb6, 0x02, 0xbb, + 0x0d, 0xbd, 0xcd, 0x83, 0x7a, 0xd8, 0x45, 0x70, + 0xb1, 0x6d, 0x17, 0xcb, 0x5e, 0x63, 0xee, 0xeb, + 0x2a, 0x50, 0x08, 0xa7, 0x29, 0x31, 0x85, 0xc9, + 0x30, 0x6b, 0xb1, 0x0b, 0x88, 0x2d, 0x69, 0x54, + 0x22, 0x36, 0x10, 0x5a, 0x1f, 0x1d, 0xd0, 0xcd, + 0x1f, 0xe1, 0xab, 0x52, 0xff, 0x00, 0xc0, 0x1e, + 0xc9, 0x55, 0x57, 0x96, 0x98, 0xfa, 0x4c, 0x21, + 0x89, 0x58, 0x63, 0x1d, 0xc3, 0x01, 0xe6, 0x66, + 0x04, 0xa0, 0x16, 0xa0, 0x97, 0xea, 0xe4, 0xff, + 0x00, 0xd9, 0x8d, 0xc9, 0x36, 0xe0, 0xae, 0xe9, + 0x85, 0xf3, 0x99, 0xfd, 0x8a, 0xb5, 0x15, 0xb5, + 0xe5, 0x5c, 0xb4, 0x8a, 0x2a, 0xb2, 0xe5, 0x5b, + 0x57, 0x77, 0x86, 0x2a, 0xfc, 0x79, 0xcf, 0x67, + 0x47, 0xd4, 0xc5, 0xbe, 0x12, 0xf5, 0x60, 0x1c, + 0xa8, 0x16, 0xcd, 0x05, 0xf1, 0x8e, 0xe5, 0xc6, + 0x02, 0x68, 0x23, 0x36, 0x01, 0x36, 0x0b, 0x97, + 0xa7, 0x34, 0xfb, 0xa2, 0xd1, 0x23, 0x15, 0x4e, + 0xa5, 0x79, 0x87, 0x02, 0x58, 0xa0, 0x38, 0x60, + 0xe8, 0xe7, 0x42, 0x96, 0x91, 0x28, 0x04, 0x5a, + 0x41, 0x81, 0x05, 0xec, 0x79, 0xda, 0x4a, 0x89, + 0xd5, 0xc6, 0xf4, 0x52, 0x8a, 0x06, 0x74, 0xa5, + 0x80, 0x0b, 0x5b, 0xae, 0x39, 0xf8, 0x6e, 0x88, + 0x49, 0x8e, 0x75, 0x44, 0xb1, 0xb3, 0x58, 0x83, + 0x82, 0x49, 0x17, 0xbe, 0x65, 0x34, 0xf8, 0x26, + 0xbd, 0x94, 0xc2, 0x4b, 0xc1, 0x27, 0xf2, 0xee, + 0x80, 0x71, 0x93, 0x65, 0x63, 0x96, 0x16, 0xdc, + 0x8a, 0x1f, 0x21, 0x0e, 0x59, 0x5d, 0x64, 0x6d, + 0xff, 0x00, 0x7b, 0x16, 0x44, 0xc2, 0x65, 0x73, + 0x55, 0x07, 0x18, 0x4e, 0x7a, 0x28, 0x0f, 0x3b, + 0x0f, 0x18, 0x0f, 0x5c, 0x6f, 0x61, 0xf5, 0xb8, + 0x05, 0x46, 0x1a, 0x9c, 0x0a, 0x34, 0x38, 0x6a, + 0x47, 0x6f, 0x79, 0xe2, 0x8e, 0x11, 0xa4, 0x61, + 0xa6, 0x32, 0x1c, 0x73, 0xed, 0xb6, 0x65, 0xbe, + 0x47, 0xd1, 0xca, 0x03, 0x57, 0x9c, 0xc6, 0xf5, + 0x6c, 0x62, 0xb9, 0x19, 0x28, 0xf9, 0xfd, 0x22, + 0xa8, 0xac, 0x84, 0x76, 0xc4, 0xb4, 0xb1, 0xaf, + 0xd4, 0x80, 0x68, 0x96, 0x81, 0xbb, 0x49, 0xab, + 0xcc, 0x21, 0x83, 0x32, 0x71, 0x6b, 0xf8, 0x05, + 0x60, 0x4e, 0xf2, 0xfb, 0xe7, 0x8c, 0xdb, 0xfb, + 0x45, 0xfe, 0x63, 0x72, 0x64, 0x4e, 0x9e, 0xbf, + 0x90, 0x31, 0x04, 0xf4, 0x78, 0x51, 0x04, 0x8d, + 0x9b, 0x36, 0x6c, 0xd9, 0x80, 0xa9, 0x72, 0x6d, + 0x4d, 0x07, 0x58, 0xae, 0xf0, 0xb2, 0xcc, 0xb4, + 0x25, 0xf4, 0x8c, 0x43, 0xa8, 0x63, 0x71, 0xee, + 0x98, 0x17, 0xe4, 0xe3, 0x10, 0xae, 0x9f, 0x13, + 0x6d, 0x5d, 0xfe, 0x39, 0x59, 0xc2, 0xc1, 0xfa, + 0x95, 0x1f, 0x9e, 0x56, 0xb3, 0xc4, 0x88, 0xc6, + 0xc8, 0x00, 0x35, 0x7f, 0x27, 0xfd, 0x00, 0x46, + 0x34, 0xc8, 0x35, 0x20, 0xf0, 0xc2, 0x4e, 0x1d, + 0x67, 0x7b, 0xb9, 0xc5, 0xa8, 0xb7, 0x50, 0x85, + 0x8f, 0xf8, 0xa4, 0x92, 0x38, 0xb5, 0x21, 0x70, + 0x7f, 0x5b, 0x36, 0x6c, 0xd9, 0xb3, 0x66, 0x2f, + 0x0c, 0xdb, 0xe8, 0x19, 0x56, 0x06, 0xfe, 0x83, + 0x40, 0x23, 0xa0, 0x94, 0x87, 0x22, 0xcb, 0x20, + 0x2c, 0x14, 0xd9, 0x52, 0xb4, 0x4d, 0x70, 0x18, + 0x16, 0x10, 0xc8, 0x9b, 0xe8, 0x61, 0xdc, 0x3f, + 0x0d, 0x61, 0x56, 0x80, 0xf9, 0xc0, 0x74, 0xb9, + 0xc5, 0x9c, 0xac, 0xc3, 0x0e, 0x2e, 0x47, 0xdf, + 0x6a, 0x64, 0x60, 0x16, 0x17, 0x7a, 0x34, 0xbd, + 0xdc, 0x4d, 0x7b, 0x66, 0x46, 0xe0, 0x18, 0xf7, + 0x68, 0x35, 0x6c, 0x80, 0x44, 0x98, 0x1d, 0xe5, + 0xe4, 0xb9, 0xfe, 0x2b, 0x33, 0x1a, 0x2b, 0x98, + 0xb3, 0x51, 0xa2, 0x5d, 0xdc, 0x61, 0xa2, 0x42, + 0x1d, 0xac, 0x69, 0x33, 0xfb, 0xba, 0x4a, 0xde, + 0x8a, 0x2b, 0x53, 0xeb, 0x82, 0x73, 0x4c, 0x66, + 0x04, 0x9c, 0x56, 0x4d, 0x5c, 0x8b, 0x11, 0x24, + 0x2d, 0x3f, 0x93, 0xba, 0x2b, 0x91, 0x52, 0x82, + 0x04, 0xb5, 0xbb, 0x75, 0x7c, 0x9e, 0xa2, 0xa4, + 0xe0, 0x1f, 0x56, 0x9d, 0x2e, 0xfa, 0xe4, 0xad, + 0x80, 0x70, 0x4d, 0xec, 0x41, 0xf9, 0xb3, 0xec, + 0x64, 0x09, 0x81, 0x21, 0x5e, 0x2c, 0x17, 0x9d, + 0x47, 0xa4, 0x9e, 0x02, 0xa2, 0xbb, 0xf4, 0x30, + 0xf4, 0xcf, 0x66, 0xf0, 0xd7, 0xc1, 0x33, 0x1b, + 0x7a, 0x6a, 0xe3, 0x78, 0xb3, 0x86, 0xbf, 0x9f, + 0x79, 0x7d, 0xf3, 0xc6, 0x6d, 0x00, 0x0c, 0xa8, + 0x2d, 0x0b, 0x4d, 0x9f, 0xe2, 0x4e, 0x57, 0x52, + 0x72, 0xba, 0x93, 0x95, 0xd4, 0x9c, 0xae, 0xa4, + 0xe5, 0x75, 0x27, 0x2b, 0xa9, 0x39, 0x5d, 0x49, + 0xca, 0xea, 0x4e, 0x57, 0x52, 0x72, 0xba, 0x93, + 0x95, 0xd4, 0x9c, 0xae, 0xa4, 0xe5, 0x75, 0x27, + 0x2b, 0xa9, 0x39, 0x5d, 0x49, 0xca, 0xea, 0x4e, + 0x57, 0x52, 0x72, 0xba, 0x93, 0x95, 0xd4, 0x9c, + 0xae, 0xa4, 0xe5, 0x75, 0x27, 0x2b, 0xa9, 0x39, + 0x5d, 0x49, 0xca, 0xea, 0x4d, 0x27, 0xf5, 0x0d, + 0xc9, 0xae, 0xcb, 0xae, 0x09, 0x8b, 0x37, 0x20, + 0x0b, 0x42, 0xd8, 0x40, 0x92, 0x5e, 0x95, 0x4e, + 0x0a, 0x5b, 0x9f, 0xea, 0x00, 0x5a, 0x65, 0xf3, + 0x60, 0x54, 0xb0, 0x66, 0x87, 0xb4, 0x6b, 0xab, + 0x46, 0x5d, 0xdd, 0xb9, 0x52, 0x39, 0x92, 0x86, + 0x0c, 0x15, 0x40, 0x70, 0xf1, 0x39, 0xd5, 0x34, + 0x32, 0x18, 0xb0, 0xfe, 0xf1, 0xb3, 0x49, 0x10, + 0x5a, 0x95, 0xdf, 0x3e, 0x06, 0x2a, 0xd1, 0xd7, + 0x28, 0xb4, 0x17, 0x32, 0x6e, 0xbd, 0xc2, 0x32, + 0xc8, 0xc6, 0xb5, 0x3c, 0x7c, 0xd4, 0x93, 0xbf, + 0x21, 0xeb, 0x8b, 0x26, 0x3d, 0x99, 0x85, 0x70, + 0x69, 0x58, 0x04, 0x0c, 0xf5, 0xed, 0x9a, 0x18, + 0x37, 0x1d, 0x5a, 0x09, 0x68, 0x94, 0x0a, 0xa0, + 0x19, 0x57, 0x01, 0x01, 0x81, 0xf0, 0x99, 0x86, + 0x0e, 0x14, 0x8b, 0xd3, 0x85, 0x77, 0xfb, 0xaa, + 0x62, 0xc4, 0x76, 0x9d, 0x95, 0x53, 0xfb, 0xbc, + 0xfe, 0xef, 0x3f, 0xbb, 0xcf, 0xee, 0xf3, 0xfb, + 0xbc, 0xfe, 0xef, 0x3f, 0xbb, 0xcf, 0xee, 0xf3, + 0xfb, 0xbc, 0xfe, 0xef, 0x3f, 0xbb, 0xcf, 0xee, + 0xf3, 0xfb, 0xbc, 0xfe, 0xef, 0x3f, 0xbb, 0xcf, + 0xee, 0xf3, 0xfb, 0xbc, 0xfe, 0xef, 0x3f, 0xbb, + 0xcf, 0xee, 0xf2, 0xde, 0xe1, 0xe4, 0x9f, 0xbb, + 0xb9, 0x0f, 0x36, 0xcf, 0xae, 0x5a, 0x6c, 0xbd, + 0xfa, 0x2f, 0xeb, 0x47, 0xd2, 0x12, 0x9b, 0xd3, + 0xc1, 0x71, 0x3a, 0x77, 0x8d, 0x71, 0x25, 0xe5, + 0xf7, 0xcf, 0x19, 0xb7, 0xf6, 0x92, 0x3c, 0xc6, + 0xe4, 0x4e, 0x1a, 0xc4, 0xda, 0x36, 0x03, 0x04, + 0xc8, 0x16, 0x19, 0xe3, 0x2b, 0xd3, 0x55, 0x68, + 0x61, 0x49, 0x08, 0xfe, 0xa2, 0xed, 0xdb, 0xb7, + 0x6e, 0xdd, 0xbb, 0x76, 0xed, 0xdb, 0xb7, 0x6e, + 0xdd, 0xbb, 0x76, 0xed, 0xdb, 0xaf, 0x1d, 0xfc, + 0x8c, 0x2c, 0x4b, 0xa9, 0x2a, 0xb4, 0xa2, 0x5c, + 0x4d, 0xd3, 0x66, 0x6f, 0x57, 0xad, 0xd8, 0xff, + 0x00, 0x8c, 0x80, 0x68, 0x7e, 0x8f, 0xf9, 0x07, + 0xf5, 0x27, 0xe9, 0xaf, 0xa7, 0x3e, 0x05, 0x25, + 0x80, 0xd9, 0x15, 0x0d, 0x74, 0x38, 0xd2, 0x02, + 0x73, 0x74, 0x16, 0xb6, 0x6f, 0x81, 0x3a, 0x6f, + 0xf2, 0x38, 0x6a, 0x16, 0xbf, 0x97, 0xdf, 0x3c, + 0x66, 0xd0, 0x81, 0x81, 0xa3, 0x6d, 0x2e, 0xf6, + 0x0e, 0xf5, 0xff, 0x00, 0x25, 0xb6, 0x75, 0x45, + 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, + 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, + 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, + 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, + 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, + 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, + 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, + 0x45, 0xb6, 0x75, 0x45, 0xb6, 0x75, 0x45, 0xb6, + 0x75, 0x45, 0xb6, 0x75, 0x43, 0x69, 0x3e, 0xa3, + 0x72, 0x31, 0x75, 0x43, 0x66, 0x3c, 0x4e, 0xff, + 0x00, 0x00, 0x91, 0x37, 0x3e, 0xd0, 0x04, 0x6b, + 0xb5, 0x65, 0x0a, 0x2a, 0xb2, 0xdb, 0x9d, 0x58, + 0xb6, 0xe7, 0x56, 0x2d, 0xb9, 0xd5, 0x8b, 0x6e, + 0x75, 0x62, 0xdb, 0x9d, 0x58, 0xb6, 0xe7, 0x56, + 0x15, 0xb1, 0x79, 0x52, 0x08, 0xc4, 0xb0, 0x70, + 0xd9, 0x10, 0x62, 0xb1, 0x6c, 0x08, 0xd6, 0xb4, + 0x5b, 0x28, 0xc5, 0xb7, 0x3a, 0xb0, 0x94, 0xcd, + 0x98, 0xe6, 0x1a, 0x64, 0xf7, 0xa9, 0x42, 0xdb, + 0x9d, 0x58, 0xb6, 0xe7, 0x56, 0x2d, 0xb9, 0xd5, + 0x8b, 0x6e, 0x75, 0x62, 0xdb, 0x9d, 0x58, 0xb6, + 0xe7, 0x56, 0x2d, 0xb9, 0xd5, 0x8b, 0x6e, 0x75, + 0x62, 0xdb, 0x9d, 0x58, 0xb6, 0xe7, 0x56, 0x2d, + 0xfe, 0xdb, 0x84, 0xed, 0xb6, 0x32, 0x6d, 0x4a, + 0x24, 0x28, 0x40, 0x0d, 0x03, 0x02, 0x6e, 0x0c, + 0x0b, 0x8c, 0x4b, 0xe4, 0x62, 0x5c, 0x70, 0x74, + 0x62, 0x21, 0x61, 0xa7, 0xf8, 0x58, 0xf1, 0xe3, + 0xc7, 0x8f, 0x1e, 0x3c, 0x6b, 0x89, 0xa8, 0x54, + 0x62, 0xa6, 0x55, 0x43, 0x5e, 0x99, 0x51, 0x24, + 0xe0, 0x49, 0xca, 0x02, 0x48, 0x11, 0x4b, 0xcb, + 0x07, 0x83, 0x28, 0x9c, 0xfe, 0x12, 0xf1, 0xf3, + 0x63, 0x51, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, 0xe3, + 0xc6, 0x5c, 0x6a, 0xbd, 0xf9, 0xb2, 0x0f, 0x60, + 0x54, 0x6a, 0x35, 0xd2, 0x77, 0x65, 0xad, 0x7b, + 0xdb, 0x3b, 0x46, 0x12, 0x06, 0x5d, 0x6f, 0xed, + 0x93, 0xcb, 0xef, 0x9e, 0x33, 0x6f, 0xed, 0x1e, + 0xf9, 0x8d, 0xc9, 0x41, 0x6d, 0xc7, 0x3a, 0x0f, + 0xf5, 0x3c, 0x17, 0x3c, 0x17, 0x3c, 0x17, 0x3c, + 0x17, 0x3c, 0x17, 0x3c, 0x17, 0x3c, 0x17, 0x2d, + 0xb0, 0x18, 0xdd, 0xc2, 0xf3, 0xf3, 0x08, 0x84, + 0x54, 0x97, 0x37, 0x11, 0xd1, 0x53, 0xdd, 0xa0, + 0xcc, 0xbf, 0x98, 0xc9, 0x60, 0x1c, 0x63, 0x86, + 0x4f, 0xd7, 0x41, 0x6a, 0xb0, 0x42, 0x2b, 0x9d, + 0xd0, 0x4b, 0x02, 0x09, 0xba, 0xe4, 0x2a, 0xf6, + 0xab, 0x9c, 0x23, 0xe8, 0xc4, 0x26, 0x4c, 0x13, + 0xf3, 0xb1, 0x94, 0xcb, 0x91, 0x34, 0x8b, 0x67, + 0x50, 0x0f, 0xc1, 0x73, 0xc1, 0x73, 0xc1, 0x73, + 0xc1, 0x73, 0xc1, 0x73, 0xc1, 0x73, 0xc1, 0x70, + 0x53, 0x64, 0x82, 0xf5, 0x49, 0x32, 0x86, 0x5e, + 0x0a, 0x78, 0x00, 0xe9, 0xc6, 0x5d, 0x95, 0x46, + 0xae, 0x8b, 0xad, 0xbd, 0x45, 0x8b, 0x16, 0x2c, + 0x59, 0xe1, 0x56, 0x23, 0x5f, 0xcd, 0x3c, 0xe3, + 0x94, 0x5c, 0xcd, 0xb1, 0x8c, 0xab, 0x38, 0x33, + 0xcd, 0x35, 0x93, 0x5b, 0x9a, 0xc2, 0x44, 0xa9, + 0x84, 0x45, 0x86, 0xde, 0xc6, 0x02, 0x3a, 0x24, + 0x72, 0x95, 0xe2, 0x45, 0xc3, 0xb0, 0xf7, 0x03, + 0x7d, 0x0e, 0x6d, 0x50, 0xaa, 0xad, 0xa9, 0x5c, + 0xc0, 0xe0, 0x04, 0x86, 0xff, 0x00, 0x77, 0x9f, + 0xbe, 0x32, 0x64, 0xe3, 0xa8, 0x4d, 0x4a, 0x17, + 0x12, 0x8b, 0x04, 0xa2, 0x30, 0xb2, 0x71, 0x1d, + 0xba, 0x21, 0x6d, 0x7e, 0x15, 0xd0, 0xa8, 0x27, + 0xff, 0x00, 0xdf, 0x3a, 0xb1, 0x83, 0x60, 0xfd, + 0x7a, 0x4b, 0x16, 0x2c, 0x58, 0xb1, 0xd0, 0x14, + 0x51, 0x05, 0x1d, 0x41, 0x2c, 0x3e, 0x86, 0xa9, + 0x56, 0xf9, 0x7d, 0xf3, 0xc6, 0x6d, 0x08, 0x19, + 0x50, 0xef, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x2f, 0xb1, 0xf7, 0xef, 0x2f, 0xb1, 0xf7, + 0xef, 0x1f, 0x48, 0xff, 0x00, 0xa6, 0xe7, 0x38, + 0xaf, 0x6b, 0x77, 0x7d, 0x84, 0xe8, 0x02, 0x33, + 0x13, 0x98, 0xe8, 0x94, 0xdd, 0xd1, 0x29, 0xbb, + 0xa2, 0x53, 0x77, 0x44, 0xa6, 0xee, 0x89, 0x4d, + 0xdd, 0x12, 0x9b, 0xba, 0x23, 0x0a, 0x2f, 0x2a, + 0x5f, 0x81, 0x69, 0x98, 0xe7, 0xe7, 0xb2, 0x96, + 0x0b, 0x01, 0xa3, 0x58, 0x9a, 0x09, 0x1a, 0xce, + 0x98, 0xb7, 0x0e, 0x0a, 0x17, 0x59, 0x24, 0x5f, + 0xa8, 0x87, 0x35, 0x30, 0xf4, 0x70, 0x54, 0xbe, + 0xae, 0x00, 0x02, 0x0e, 0xb5, 0x3d, 0xc1, 0x17, + 0xcd, 0x97, 0xc3, 0x5e, 0x50, 0xed, 0x4c, 0xdd, + 0x69, 0x84, 0xb2, 0x27, 0x4e, 0x03, 0x34, 0x65, + 0x08, 0x34, 0xdd, 0xd1, 0x29, 0xbb, 0xa2, 0x53, + 0x77, 0x44, 0xa6, 0xee, 0x89, 0x4d, 0xdd, 0x12, + 0x9b, 0xba, 0x25, 0x37, 0x74, 0x45, 0xae, 0x6f, + 0xae, 0x08, 0x2d, 0xe9, 0xa0, 0x80, 0x09, 0x8a, + 0xa0, 0x21, 0x75, 0x41, 0x0a, 0x10, 0x03, 0x84, + 0x1b, 0x3d, 0x60, 0x29, 0x2d, 0x04, 0x98, 0xb7, + 0x4a, 0x0c, 0x3c, 0x77, 0xe9, 0xfe, 0x62, 0x43, + 0x27, 0x08, 0xc9, 0x4b, 0x67, 0xae, 0x9f, 0x11, + 0xeb, 0x3c, 0xe4, 0xb3, 0x8c, 0x6c, 0x25, 0x1e, + 0x25, 0xee, 0x24, 0xae, 0xbe, 0x65, 0xd2, 0x21, + 0xc7, 0x83, 0xaa, 0x5b, 0x3a, 0xf8, 0x00, 0x14, + 0x38, 0xaa, 0x02, 0x1a, 0xe6, 0x02, 0xca, 0xe3, + 0xb4, 0xec, 0x78, 0x10, 0x06, 0xba, 0xd3, 0x12, + 0xaf, 0x9b, 0x0c, 0xf4, 0xca, 0x94, 0xc7, 0x69, + 0xd1, 0x7d, 0xc5, 0xd2, 0xd9, 0x59, 0x43, 0x61, + 0x27, 0xf9, 0xce, 0xf6, 0xc1, 0x48, 0x0b, 0xd2, + 0x35, 0x9f, 0xc1, 0x0e, 0x1a, 0xaa, 0x42, 0xb4, + 0x33, 0x14, 0x41, 0xa8, 0x1e, 0x5f, 0x7c, 0xf1, + 0x9b, 0x7f, 0x68, 0x4b, 0xcc, 0x6e, 0x47, 0x62, + 0xd0, 0x55, 0x32, 0x16, 0x3a, 0x6a, 0xf1, 0x59, + 0x06, 0x30, 0x43, 0xf0, 0x18, 0xd4, 0x40, 0x0f, + 0x49, 0x6a, 0xd5, 0xab, 0x43, 0x4d, 0x72, 0x33, + 0x5c, 0xc3, 0x84, 0x4a, 0x20, 0xce, 0x38, 0x2c, + 0x32, 0x92, 0x08, 0x53, 0x76, 0x04, 0x23, 0x3a, + 0x22, 0x1f, 0xa5, 0xe7, 0x08, 0xab, 0x5a, 0x5d, + 0x12, 0xf9, 0x54, 0x60, 0x62, 0x60, 0xf2, 0x64, + 0xcd, 0xaa, 0x0b, 0x30, 0x0a, 0xc8, 0x2a, 0x03, + 0xa9, 0x60, 0x32, 0x9b, 0x95, 0x99, 0xce, 0x0c, + 0x45, 0xa6, 0xa0, 0xc9, 0xf5, 0x0c, 0x7f, 0xec, + 0x08, 0x1c, 0x55, 0x86, 0x2d, 0x4a, 0x92, 0x70, + 0xd2, 0xb3, 0x84, 0x6b, 0x15, 0x8c, 0xa3, 0x38, + 0x44, 0xf2, 0x25, 0x2d, 0x71, 0xcc, 0x24, 0x29, + 0x01, 0x5f, 0xaf, 0xfb, 0xd3, 0x1b, 0xe3, 0xcc, + 0x8c, 0xd4, 0x0b, 0x50, 0x55, 0xa2, 0x69, 0xc8, + 0xe8, 0x14, 0xc8, 0xfa, 0x6d, 0x5a, 0xb5, 0x69, + 0xfd, 0x5b, 0x62, 0x3d, 0xfb, 0x77, 0x28, 0x4a, + 0x70, 0xaa, 0x94, 0x13, 0x38, 0x53, 0x04, 0xa8, + 0xaa, 0x97, 0xa5, 0x9f, 0x3e, 0x76, 0x36, 0xfb, + 0x0c, 0xd7, 0x40, 0x78, 0x66, 0x03, 0xa9, 0x5d, + 0x22, 0x77, 0xcf, 0x50, 0xcb, 0x2d, 0x3f, 0xa1, + 0x1f, 0x0e, 0xfc, 0x20, 0x20, 0x6e, 0x01, 0x51, + 0xee, 0x1c, 0xf7, 0x2c, 0x45, 0x4d, 0x89, 0x4d, + 0xd1, 0x10, 0x73, 0x7b, 0x60, 0x66, 0x20, 0xa3, + 0x60, 0x69, 0xe9, 0x33, 0xc7, 0x8c, 0xac, 0x0e, + 0x33, 0xf7, 0xdf, 0x1e, 0xd0, 0xc6, 0x2c, 0xd4, + 0x00, 0xc3, 0xbd, 0x77, 0x74, 0x2d, 0xd6, 0xc6, + 0x04, 0xa2, 0x90, 0xa5, 0xa0, 0x8f, 0xd4, 0x66, + 0x7f, 0xd2, 0x5b, 0x62, 0x07, 0xb0, 0xce, 0x1a, + 0x79, 0x2b, 0x9f, 0xbe, 0x25, 0xc3, 0xe3, 0xbb, + 0x46, 0x1a, 0xa7, 0xbb, 0x93, 0xda, 0x29, 0x18, + 0xea, 0x3a, 0x4c, 0x2c, 0x40, 0xe8, 0xc1, 0xa2, + 0x61, 0xc2, 0xbd, 0xaf, 0x09, 0xa2, 0xe0, 0xd0, + 0xea, 0x5b, 0x45, 0x7b, 0xad, 0x43, 0x1e, 0xef, + 0xa3, 0x3e, 0x7c, 0xe4, 0xd3, 0x8d, 0xd8, 0x78, + 0x6c, 0xf4, 0xc2, 0xf4, 0x56, 0xa2, 0x10, 0x79, + 0x7d, 0xf3, 0xc6, 0x6d, 0x0e, 0x95, 0x01, 0x48, + 0x3c, 0xdf, 0x7b, 0xf7, 0xb7, 0x1e, 0xeb, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x2f, + 0xf2, 0x8e, 0xd2, 0xff, 0x00, 0x28, 0xed, 0x1f, + 0xf8, 0xc3, 0x73, 0x94, 0x62, 0x0d, 0x02, 0xab, + 0xa0, 0x0e, 0xaf, 0xd0, 0x8c, 0xb6, 0x01, 0x88, + 0x01, 0x1c, 0xfb, 0x6b, 0x13, 0xb0, 0x5f, 0x46, + 0x37, 0x1e, 0x1f, 0xe1, 0x5e, 0x2d, 0xf7, 0xb7, + 0x0c, 0xa8, 0x87, 0xda, 0xb7, 0xa5, 0xe8, 0xb3, + 0x30, 0xc2, 0x85, 0xa1, 0xf3, 0x7e, 0xfd, 0x0c, + 0x53, 0x07, 0x50, 0x1b, 0x85, 0xaa, 0xa4, 0x8b, + 0x8a, 0x7d, 0x4e, 0x99, 0x1f, 0x1a, 0xaa, 0x8c, + 0x8e, 0xb4, 0x59, 0x9b, 0xd3, 0xbb, 0x5d, 0x2d, + 0x17, 0x13, 0xc1, 0xe2, 0x01, 0xde, 0xab, 0x5e, + 0xb4, 0xdf, 0x78, 0x0e, 0x38, 0x54, 0x13, 0x8e, + 0x0f, 0x2f, 0x42, 0x32, 0xb8, 0xa8, 0x6c, 0x44, + 0x84, 0x38, 0x00, 0x15, 0x60, 0x16, 0x1d, 0xf4, + 0xa2, 0x45, 0x91, 0xa4, 0xc2, 0xff, 0x00, 0x02, + 0xe6, 0x3e, 0x6b, 0xdd, 0x4e, 0xac, 0xbe, 0x37, + 0xd8, 0xdd, 0xde, 0x7e, 0x1d, 0x18, 0xcf, 0xa4, + 0x0d, 0x82, 0x22, 0x90, 0x58, 0x1a, 0x73, 0x81, + 0xc9, 0x6a, 0x08, 0x04, 0x78, 0x17, 0x10, 0x98, + 0xb5, 0x56, 0x28, 0xb6, 0x8b, 0x59, 0x0a, 0x1a, + 0xe3, 0x81, 0x5c, 0xb1, 0x25, 0x39, 0x99, 0x44, + 0x0b, 0xaf, 0xa1, 0x5a, 0x6f, 0xdf, 0x00, 0xbb, + 0x46, 0x0d, 0x49, 0x5c, 0xaf, 0xc1, 0x1f, 0x6e, + 0x2f, 0x0a, 0x3e, 0xe5, 0xf3, 0xbc, 0x27, 0xf8, + 0xaa, 0x05, 0x6f, 0xc6, 0x52, 0x0b, 0xa0, 0x35, + 0x6f, 0x83, 0x67, 0x9d, 0x28, 0x3a, 0xec, 0x46, + 0xfd, 0x85, 0x72, 0xce, 0xb5, 0x26, 0x18, 0x33, + 0x58, 0x87, 0x7a, 0xd0, 0xa5, 0x25, 0xa1, 0x9b, + 0xae, 0x86, 0x3e, 0xe2, 0x44, 0x80, 0x58, 0x23, + 0x64, 0x34, 0x74, 0x57, 0x60, 0xb7, 0xa2, 0x72, + 0x91, 0xae, 0xb9, 0x5d, 0x42, 0xa8, 0xdc, 0x41, + 0x4c, 0xe2, 0xbf, 0x6e, 0xb7, 0xf6, 0xb9, 0xc3, + 0xc8, 0x9b, 0x86, 0xe4, 0x57, 0x0c, 0x91, 0x98, + 0xf3, 0x60, 0x9f, 0x36, 0xcf, 0x41, 0xd7, 0xda, + 0x8d, 0xcd, 0x40, 0xb6, 0x9f, 0xcb, 0xd4, 0xdf, + 0x40, 0xfe, 0x7a, 0xc3, 0x25, 0xa0, 0x70, 0x7b, + 0x05, 0xab, 0x40, 0x52, 0x02, 0xc2, 0x40, 0x02, + 0x0d, 0x88, 0xb8, 0x89, 0x84, 0x4c, 0x89, 0xa9, + 0x1a, 0x50, 0xa7, 0xb8, 0x6b, 0x06, 0xe5, 0x57, + 0x7a, 0xbf, 0xca, 0x79, 0x7d, 0xf3, 0xc6, 0x6d, + 0xfd, 0xa6, 0x7f, 0x31, 0xb9, 0xc1, 0x03, 0x3c, + 0x32, 0xba, 0xdc, 0x27, 0x5f, 0xd2, 0x38, 0x71, + 0xe3, 0xc7, 0x8f, 0xca, 0xd1, 0x97, 0xee, 0x32, + 0x56, 0xae, 0xaf, 0x3a, 0xc5, 0x56, 0xe1, 0x08, + 0x94, 0xb1, 0x63, 0x4c, 0x5b, 0x35, 0x8b, 0x89, + 0xb6, 0xb5, 0x14, 0xd3, 0xad, 0x7e, 0xc3, 0xd9, + 0xa1, 0xb4, 0x3a, 0x83, 0xc6, 0x08, 0xc0, 0x0c, + 0x06, 0x80, 0x06, 0xc0, 0x06, 0x20, 0xc5, 0x30, + 0x20, 0x28, 0x2a, 0x24, 0xba, 0x15, 0x45, 0xc8, + 0xab, 0x76, 0xb2, 0x9d, 0x0f, 0xc4, 0xfb, 0x8e, + 0x73, 0x2a, 0x67, 0x64, 0x6e, 0xec, 0x03, 0x96, + 0x72, 0xb9, 0xcc, 0xb5, 0xb3, 0xe7, 0x4f, 0x5b, + 0x13, 0x6f, 0x7a, 0x48, 0xa8, 0x4c, 0x04, 0x2a, + 0xc9, 0x14, 0x39, 0x52, 0x82, 0x97, 0x4a, 0x17, + 0xa4, 0x52, 0xd7, 0xa9, 0x66, 0x03, 0x43, 0xda, + 0x1e, 0xc5, 0x54, 0xa3, 0x97, 0xe1, 0x49, 0xa5, + 0x8d, 0x29, 0xc9, 0x49, 0x4e, 0x4c, 0xfa, 0x78, + 0xf1, 0xe3, 0xc4, 0x56, 0xd2, 0xeb, 0x89, 0x86, + 0xd0, 0x3c, 0x1d, 0x48, 0x76, 0x0c, 0xef, 0xb6, + 0x94, 0xf5, 0x21, 0xf0, 0xa8, 0x75, 0x68, 0x5f, + 0x75, 0x12, 0x5c, 0x7c, 0xcf, 0xe1, 0x79, 0x6b, + 0xae, 0x10, 0x03, 0xab, 0x4c, 0x26, 0xde, 0x1c, + 0x78, 0xd1, 0x6b, 0x2d, 0x0b, 0x7a, 0xd5, 0xb5, + 0x7e, 0xf5, 0x0f, 0x12, 0xaa, 0x09, 0x2b, 0x6a, + 0x00, 0xb5, 0xcb, 0x8c, 0xb1, 0x41, 0x15, 0x1c, + 0x22, 0x82, 0x6c, 0x8e, 0x52, 0xd1, 0xaf, 0x16, + 0x21, 0xea, 0x1c, 0x17, 0xb8, 0x52, 0x7b, 0x54, + 0x44, 0xfb, 0x63, 0x26, 0xe2, 0x6b, 0xc9, 0x75, + 0x15, 0xd5, 0x2d, 0xab, 0x5c, 0xb5, 0xcf, 0x5f, + 0xdf, 0xa9, 0x15, 0xc9, 0xee, 0x5a, 0x98, 0x9b, + 0x83, 0x01, 0x6d, 0x29, 0x5a, 0x11, 0x4b, 0x5f, + 0x1c, 0x97, 0xea, 0x3f, 0x49, 0x9c, 0x7b, 0x43, + 0xe6, 0xa0, 0x43, 0x95, 0x7e, 0x6c, 0x88, 0xa1, + 0xcc, 0xf0, 0xb5, 0x1d, 0x8d, 0xd0, 0xe6, 0xe9, + 0xca, 0xe5, 0x0b, 0x65, 0xa2, 0xd1, 0x39, 0x20, + 0xab, 0x4e, 0x32, 0xef, 0x03, 0x28, 0x14, 0xa0, + 0x47, 0xb0, 0xac, 0x6b, 0xd8, 0xd0, 0xf6, 0xa8, + 0x2d, 0x00, 0xd5, 0x46, 0xd0, 0xa2, 0x94, 0x55, + 0xdd, 0x56, 0x26, 0xa1, 0x62, 0x91, 0x89, 0x74, + 0xe4, 0x51, 0x61, 0x43, 0x45, 0xe8, 0x7a, 0x38, + 0xf1, 0xe3, 0x63, 0x57, 0xe4, 0xdf, 0x37, 0x98, + 0x11, 0x1e, 0x72, 0x09, 0x75, 0xa8, 0x9b, 0x54, + 0x4f, 0x29, 0x45, 0x57, 0x8f, 0x2b, 0x7e, 0x5f, + 0x7c, 0xf1, 0x9b, 0x43, 0x0b, 0x90, 0xdd, 0x9d, + 0x9b, 0x9d, 0x49, 0x70, 0x04, 0x0c, 0x8e, 0x9a, + 0x88, 0x54, 0xb7, 0xc8, 0x5d, 0xb4, 0x52, 0xf0, + 0xb5, 0x53, 0xda, 0xcb, 0xd3, 0xca, 0xda, 0xdd, + 0x96, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, + 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, + 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, + 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, + 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, + 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, + 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, + 0xd7, 0x16, 0xd9, 0xd7, 0x16, 0xd9, 0xd7, 0x08, + 0x06, 0x8d, 0x23, 0x56, 0x2e, 0x9b, 0xd6, 0xdf, + 0xe7, 0xfe, 0x89, 0x26, 0x34, 0xa3, 0xb5, 0x3f, + 0x2f, 0xbe, 0x78, 0xcd, 0xa0, 0x0d, 0x80, 0xee, + 0x40, 0x2e, 0x5e, 0xb0, 0xe9, 0x26, 0xbd, 0x41, + 0x88, 0xc2, 0x03, 0xde, 0x46, 0xba, 0x40, 0x2d, + 0x8a, 0x00, 0x5a, 0x00, 0xa3, 0xfb, 0x0e, 0x72, + 0xea, 0x44, 0x99, 0xa0, 0xd2, 0x61, 0x65, 0x17, + 0x4a, 0xa5, 0x5a, 0x30, 0xd2, 0xb2, 0x28, 0x80, + 0x6b, 0xfa, 0x8e, 0xdd, 0xbb, 0x76, 0xed, 0xdb, + 0xb7, 0x6e, 0xdd, 0xbb, 0x76, 0xed, 0xdb, 0xb7, + 0x6e, 0xdd, 0xbb, 0xdd, 0xaf, 0xde, 0x85, 0xeb, + 0xa7, 0xeb, 0x06, 0xa5, 0x2d, 0xaa, 0x13, 0xfd, + 0x2f, 0xe4, 0x98, 0x34, 0xd1, 0x7b, 0x58, 0x90, + 0xa9, 0x27, 0x02, 0xa1, 0x33, 0x16, 0xc4, 0xa7, + 0xab, 0x54, 0x35, 0x37, 0xfa, 0xa7, 0x3b, 0x76, + 0xed, 0xdb, 0xb7, 0x6e, 0xdd, 0xbb, 0x76, 0xed, + 0xdb, 0xb7, 0x6e, 0xdd, 0xbb, 0x76, 0xed, 0xd9, + 0xc4, 0x48, 0x37, 0x2a, 0x18, 0x16, 0xa9, 0xd4, + 0x00, 0x03, 0x07, 0x3d, 0x2e, 0x2c, 0x40, 0x44, + 0xba, 0x3c, 0x9e, 0x0f, 0xb2, 0x15, 0x81, 0x0f, + 0xcb, 0xef, 0x9e, 0x33, 0x6e, 0x00, 0x0a, 0x25, + 0x03, 0xf1, 0x80, 0x43, 0xf6, 0xea, 0x6f, 0x65, + 0xca, 0x1d, 0x97, 0x68, 0x91, 0x84, 0x8d, 0x29, + 0x18, 0x1a, 0x38, 0xcb, 0x1f, 0x34, 0x11, 0x42, + 0xa6, 0x86, 0x90, 0x7f, 0xab, 0x36, 0x6c, 0xd9, + 0xb3, 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb3, + 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb5, 0x9d, + 0x14, 0xb6, 0xe5, 0x6e, 0x10, 0x8e, 0xe5, 0x26, + 0xb5, 0x6f, 0xac, 0x9f, 0xe5, 0x66, 0x66, 0x04, + 0x14, 0x19, 0x4d, 0xbd, 0x1d, 0xe2, 0xc0, 0xb8, + 0xfb, 0x74, 0x04, 0xb5, 0x50, 0x00, 0xaa, 0x80, + 0x2e, 0x22, 0x1b, 0xeb, 0x1b, 0x62, 0xa9, 0xbe, + 0xf3, 0x8e, 0xbe, 0x4d, 0x01, 0x9a, 0x2f, 0x4d, + 0xb5, 0x2e, 0x20, 0xb2, 0xff, 0x00, 0xf4, 0xb2, + 0x87, 0x76, 0x59, 0x19, 0xeb, 0x5a, 0x13, 0x0a, + 0xec, 0xdf, 0xe3, 0x41, 0x28, 0x45, 0xd8, 0x74, + 0x9f, 0xe0, 0x15, 0x1a, 0x25, 0x21, 0x0f, 0xd4, + 0xf0, 0xcb, 0x82, 0x70, 0xd4, 0x1c, 0x4d, 0xee, + 0xbd, 0x01, 0xc5, 0x45, 0x33, 0x08, 0xc0, 0x26, + 0xb3, 0xde, 0x47, 0xfc, 0x9c, 0x21, 0x84, 0xa7, + 0x87, 0x6e, 0x58, 0xdc, 0x97, 0x75, 0xa3, 0x7a, + 0xc5, 0x1c, 0x1f, 0xe0, 0x03, 0x22, 0x2a, 0x22, + 0x45, 0x6c, 0x54, 0x00, 0xa8, 0x59, 0x82, 0x3c, + 0xe9, 0x51, 0x21, 0xe8, 0x35, 0x72, 0x73, 0x9c, + 0x19, 0x42, 0x37, 0x71, 0x17, 0x02, 0x68, 0x41, + 0xbe, 0x37, 0x1d, 0x74, 0x65, 0x10, 0x43, 0xfc, + 0x69, 0xe5, 0x79, 0x68, 0xd4, 0x88, 0x9b, 0x71, + 0xd4, 0x3f, 0x61, 0x52, 0x19, 0x51, 0x84, 0xc6, + 0x5c, 0x80, 0x1f, 0xba, 0x64, 0x02, 0x2c, 0x17, + 0xeb, 0xc8, 0x8c, 0x24, 0x4e, 0x25, 0x70, 0x0b, + 0x5a, 0xea, 0xb2, 0x16, 0x38, 0x33, 0x03, 0xd4, + 0xdb, 0xd1, 0xde, 0x6f, 0xa8, 0xe4, 0x05, 0xe9, + 0xb2, 0x83, 0x16, 0x35, 0x08, 0x41, 0x82, 0x85, + 0x10, 0x44, 0x4d, 0x11, 0xc2, 0x26, 0x11, 0xc2, + 0x45, 0xc4, 0x57, 0x7c, 0xd6, 0x49, 0x6d, 0x71, + 0xab, 0x3f, 0x78, 0x4f, 0xde, 0x13, 0xf7, 0x84, + 0xfd, 0xe1, 0x3f, 0x78, 0x4f, 0xde, 0x13, 0xf7, + 0x84, 0x70, 0xda, 0xc7, 0x58, 0x40, 0xae, 0x51, + 0x55, 0x54, 0x86, 0x96, 0x4a, 0x18, 0x47, 0x00, + 0xac, 0x52, 0x83, 0x0a, 0xd6, 0xac, 0xb4, 0x3a, + 0x4e, 0x90, 0x06, 0x01, 0xbf, 0x1a, 0x6c, 0xc0, + 0x91, 0x61, 0x3e, 0x95, 0x56, 0x77, 0x6e, 0xd5, + 0x3a, 0x0e, 0xcc, 0x90, 0x89, 0x85, 0x5a, 0xb2, + 0xd6, 0xb5, 0x7c, 0xe2, 0x79, 0x61, 0xec, 0x37, + 0x29, 0x4b, 0x36, 0xb5, 0x5f, 0x27, 0xef, 0x09, + 0xfb, 0xc2, 0x7e, 0xf0, 0x9f, 0xbc, 0x27, 0xef, + 0x09, 0xfb, 0xc2, 0x7e, 0xf0, 0x8c, 0x47, 0xb8, + 0xdb, 0x00, 0x89, 0xa1, 0x6b, 0x25, 0x2a, 0xa6, + 0xca, 0xe2, 0xed, 0x9f, 0x97, 0xdf, 0x3c, 0x66, + 0xd0, 0x45, 0x8f, 0x52, 0x15, 0x9b, 0xca, 0x06, + 0x1d, 0x73, 0xdb, 0x61, 0x95, 0x4b, 0xd2, 0x16, + 0xda, 0xab, 0x05, 0x00, 0xe8, 0xd6, 0xa9, 0x5c, + 0x14, 0xa0, 0x51, 0xa6, 0x98, 0x1a, 0xe6, 0xa1, + 0x70, 0xa5, 0x77, 0x38, 0x82, 0x85, 0x8c, 0x77, + 0xd7, 0x0a, 0x0b, 0xbc, 0x9f, 0xad, 0x8a, 0xda, + 0x00, 0xb2, 0x7d, 0x01, 0x7d, 0xe3, 0x8d, 0xb2, + 0x21, 0x83, 0xce, 0xa4, 0x28, 0xfd, 0xcf, 0x98, + 0x35, 0x3b, 0x01, 0xd9, 0x71, 0x4f, 0xef, 0xcd, + 0x30, 0x96, 0x21, 0x92, 0x96, 0x86, 0x22, 0x3a, + 0x2b, 0x77, 0x42, 0x86, 0x84, 0x0c, 0xd8, 0xdf, + 0x5d, 0x7c, 0x93, 0x1f, 0x2a, 0xa2, 0x64, 0xb6, + 0xc1, 0x34, 0x12, 0xac, 0x87, 0x06, 0x80, 0x65, + 0x4d, 0xd4, 0x89, 0x80, 0x5e, 0x4a, 0xb3, 0x24, + 0x69, 0x24, 0xba, 0x61, 0x23, 0x4f, 0x8b, 0x38, + 0x65, 0xf1, 0xd8, 0xea, 0xcc, 0x7d, 0x4d, 0x5c, + 0x71, 0x19, 0x89, 0x18, 0x83, 0xf9, 0x6b, 0x31, + 0xbc, 0x3e, 0x48, 0x73, 0x4c, 0x78, 0x70, 0x75, + 0x4a, 0x51, 0xa8, 0x61, 0x22, 0x75, 0x29, 0x7a, + 0x91, 0x7c, 0x7d, 0x2f, 0xc2, 0x2e, 0x9a, 0x5e, + 0x2a, 0x33, 0x66, 0xc5, 0x7a, 0x17, 0xb9, 0x85, + 0x56, 0x97, 0xb6, 0x82, 0x51, 0x3f, 0xa4, 0x42, + 0x8e, 0x60, 0x53, 0x42, 0x22, 0x45, 0x35, 0x52, + 0x11, 0x46, 0xaa, 0x59, 0x2c, 0x58, 0x62, 0x22, + 0x18, 0x4a, 0x93, 0x6b, 0x19, 0x6d, 0x9d, 0x7c, + 0x47, 0x9f, 0xb2, 0x77, 0x97, 0x35, 0x30, 0x4c, + 0x35, 0x6d, 0xbc, 0x08, 0x4f, 0x64, 0x23, 0x41, + 0x1b, 0x67, 0x60, 0x3a, 0x21, 0x0c, 0x8c, 0xaa, + 0x17, 0x96, 0x71, 0xad, 0x6d, 0x4c, 0x5a, 0xed, + 0x15, 0xaf, 0x91, 0xf2, 0x11, 0xaa, 0x77, 0x28, + 0x64, 0xf8, 0x27, 0x9a, 0xc7, 0x41, 0xab, 0x4a, + 0x10, 0x66, 0x3d, 0xac, 0x7e, 0xef, 0xd6, 0x8f, + 0x0f, 0xa1, 0x86, 0xdb, 0xf0, 0x76, 0xae, 0x51, + 0x25, 0x00, 0x2a, 0x77, 0x64, 0xde, 0xb7, 0x92, + 0x23, 0xf6, 0x35, 0x98, 0x27, 0xec, 0x09, 0x9d, + 0x94, 0xd3, 0xe0, 0x95, 0xff, 0x00, 0xd5, 0xb5, + 0x14, 0x4f, 0xc9, 0xdb, 0x6b, 0xa1, 0x5f, 0x77, + 0x41, 0x6a, 0xd4, 0xcd, 0xe0, 0x8c, 0x1a, 0x08, + 0x47, 0x29, 0x81, 0xa1, 0x0e, 0xc8, 0xc6, 0x76, + 0xa1, 0x6d, 0x9c, 0xf0, 0xa4, 0xe0, 0x28, 0x2d, + 0x9e, 0x06, 0x62, 0xa1, 0xa1, 0x88, 0xf7, 0xf8, + 0xef, 0x9a, 0x3c, 0x2c, 0x45, 0x03, 0x21, 0xd8, + 0xa0, 0x28, 0x24, 0x90, 0x10, 0x13, 0x8c, 0x9e, + 0x7c, 0x3a, 0x52, 0x0a, 0x19, 0x0d, 0xf5, 0x6e, + 0x52, 0xcf, 0x37, 0x30, 0x4a, 0xfa, 0xde, 0x29, + 0xe4, 0x0d, 0xda, 0xd4, 0x18, 0x51, 0x30, 0x3e, + 0xfe, 0xc9, 0xde, 0x51, 0x69, 0xd8, 0x08, 0xe1, + 0xcb, 0x30, 0xb1, 0x24, 0x85, 0x27, 0xd0, 0x7b, + 0xce, 0x0e, 0x7b, 0xed, 0x2e, 0x55, 0xfa, 0x15, + 0x20, 0x08, 0x95, 0x54, 0x86, 0x3d, 0x8d, 0x25, + 0xbf, 0x6f, 0x69, 0x6f, 0xdb, 0xda, 0x5b, 0xf6, + 0xf6, 0x96, 0xfd, 0xbd, 0xa5, 0xbf, 0x6f, 0x69, + 0x6f, 0xdb, 0xda, 0x24, 0x2d, 0x94, 0x2d, 0x06, + 0x5a, 0xf6, 0x2c, 0x0b, 0x7d, 0xb2, 0x47, 0x5c, + 0xf9, 0x13, 0x9b, 0xb4, 0x0e, 0x13, 0x66, 0x05, + 0xe0, 0x23, 0x9d, 0x3e, 0x4a, 0xb7, 0xce, 0xfa, + 0xc2, 0xea, 0xc2, 0xd4, 0xb0, 0xa5, 0x4e, 0x85, + 0xc1, 0xd0, 0xcf, 0x3b, 0xb9, 0x75, 0xd2, 0xfa, + 0x62, 0x90, 0x13, 0x4e, 0x53, 0x1a, 0x3c, 0xab, + 0x79, 0x11, 0x73, 0xcc, 0x2e, 0xc9, 0xdc, 0x72, + 0xd8, 0x85, 0x50, 0x6c, 0x2b, 0x04, 0x97, 0xc6, + 0xc5, 0xa9, 0x40, 0xdb, 0xf6, 0xf6, 0x96, 0xfd, + 0xbd, 0xa5, 0xbf, 0x6f, 0x69, 0x6f, 0xdb, 0xda, + 0x5b, 0xf6, 0xf6, 0x96, 0xfd, 0xbd, 0xa5, 0xbf, + 0x6f, 0x68, 0x9f, 0x68, 0xf1, 0x37, 0xbd, 0x45, + 0x01, 0x83, 0x90, 0xa5, 0x8e, 0x98, 0x5f, 0x2c, + 0x9a, 0x5e, 0xac, 0x7c, 0xbe, 0xf9, 0xe3, 0x36, + 0xe0, 0xd7, 0xa9, 0x3c, 0x58, 0x19, 0x72, 0xd5, + 0xdd, 0x0f, 0x69, 0xa7, 0xe7, 0x3b, 0xca, 0x7e, + 0x73, 0xbc, 0x41, 0xa8, 0xea, 0xbf, 0x26, 0x72, + 0x5f, 0xea, 0x70, 0x92, 0xce, 0xe0, 0x95, 0x58, + 0x58, 0x52, 0x93, 0xf5, 0x33, 0x8a, 0x4e, 0xc3, + 0x1a, 0x3b, 0xce, 0x03, 0x18, 0xd1, 0x51, 0x81, + 0x72, 0x46, 0x47, 0x20, 0x15, 0x40, 0x45, 0xef, + 0xc8, 0x42, 0x99, 0x14, 0x43, 0x9c, 0x2b, 0xf7, + 0x65, 0xa7, 0x2e, 0x20, 0xd9, 0xfa, 0xc1, 0xe0, + 0x75, 0x11, 0x14, 0x5b, 0x93, 0x45, 0x9d, 0x31, + 0x57, 0x27, 0x2e, 0xda, 0x1d, 0x4d, 0x11, 0x54, + 0x12, 0xe5, 0x28, 0x30, 0x29, 0x9c, 0xc8, 0x32, + 0x45, 0xd2, 0xc4, 0xb1, 0xe6, 0x74, 0xda, 0x81, + 0x19, 0x05, 0x27, 0x1d, 0x60, 0xb1, 0x82, 0x17, + 0xd1, 0x50, 0x03, 0xab, 0xb9, 0x38, 0xbb, 0x8f, + 0x90, 0xda, 0xba, 0x33, 0xf0, 0x0b, 0x66, 0x53, + 0x9d, 0x10, 0x20, 0x14, 0x90, 0x0a, 0x0a, 0xbb, + 0x60, 0x6f, 0x5c, 0x92, 0x90, 0x2d, 0x24, 0x40, + 0xe3, 0x2a, 0x1a, 0xd1, 0x7f, 0xe0, 0x77, 0x01, + 0x87, 0x5e, 0xb2, 0x4d, 0xfb, 0xc9, 0x40, 0xcd, + 0xcb, 0xde, 0x77, 0x62, 0xf0, 0xaa, 0xcd, 0x27, + 0x9d, 0x0c, 0xa1, 0x8c, 0xcd, 0x13, 0xde, 0x9f, + 0x9c, 0xef, 0x0c, 0x3c, 0x00, 0x12, 0xf1, 0x77, + 0xe7, 0xc1, 0x17, 0x3e, 0xe6, 0x2b, 0x04, 0xd9, + 0x5b, 0x81, 0x15, 0x98, 0x5e, 0xce, 0xb1, 0x62, + 0x5c, 0x59, 0x83, 0xd5, 0x12, 0x24, 0x48, 0x91, + 0x22, 0x15, 0x17, 0x3f, 0xba, 0x80, 0x6a, 0x30, + 0x01, 0x57, 0x01, 0x1b, 0x2d, 0x83, 0x42, 0x96, + 0x03, 0xa2, 0x22, 0x58, 0x58, 0xdc, 0xab, 0x58, + 0x4d, 0x1f, 0x77, 0x4f, 0x7b, 0xe9, 0xee, 0x9a, + 0xbe, 0xce, 0xbe, 0xd7, 0xd7, 0xd9, 0x0c, 0x7d, + 0x09, 0x9d, 0x67, 0xd1, 0x1e, 0xe4, 0xfa, 0xfd, + 0x7b, 0x2f, 0xd5, 0x72, 0xea, 0x2d, 0x44, 0xff, + 0x00, 0x81, 0x91, 0x22, 0x44, 0x89, 0x12, 0x24, + 0x47, 0x0c, 0x49, 0x65, 0x7e, 0xcf, 0x6e, 0x9f, + 0x90, 0x25, 0x18, 0x94, 0x63, 0x21, 0x04, 0xd6, + 0x02, 0xc4, 0xb2, 0x0e, 0xe9, 0xee, 0x35, 0x08, + 0x78, 0x39, 0xf7, 0xf3, 0x30, 0x30, 0x60, 0xc1, + 0x83, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc1, 0xd0, + 0xef, 0xed, 0x17, 0x2a, 0x90, 0xc1, 0xa2, 0x57, + 0xe5, 0x8a, 0x82, 0x1d, 0xec, 0x7b, 0xfe, 0xb4, + 0x40, 0x60, 0xc1, 0x83, 0x06, 0x0f, 0x11, 0x79, + 0x7e, 0x72, 0x66, 0xc1, 0xab, 0x26, 0x85, 0x74, + 0xad, 0x90, 0x2e, 0x51, 0x21, 0x2a, 0xdc, 0x55, + 0x6e, 0xa0, 0x8b, 0x3c, 0xbe, 0xf9, 0xe3, 0x36, + 0x80, 0x01, 0x1c, 0x69, 0x97, 0xee, 0x7b, 0x7d, + 0x63, 0x2b, 0x91, 0x4c, 0xb1, 0x2d, 0xbb, 0xfc, + 0x17, 0xc2, 0x1d, 0xbf, 0xe3, 0x9e, 0x1e, 0x21, + 0x32, 0x80, 0xb0, 0xa0, 0x60, 0xa2, 0xdd, 0xf1, + 0xab, 0x99, 0xa7, 0x0b, 0xc2, 0x01, 0x6a, 0xc0, + 0x22, 0xe1, 0x41, 0x69, 0x4c, 0x59, 0x15, 0x1b, + 0x65, 0x9a, 0x2a, 0x55, 0x95, 0x12, 0xb1, 0x55, + 0x55, 0x88, 0x02, 0x20, 0xee, 0xc9, 0x2b, 0x6d, + 0xb3, 0x75, 0xb9, 0x6c, 0xcb, 0xac, 0xf7, 0x5c, + 0x32, 0x14, 0x52, 0xb9, 0xa1, 0x84, 0x41, 0x58, + 0xa8, 0x03, 0x41, 0xa6, 0x81, 0x6b, 0x69, 0x72, + 0xf5, 0x55, 0x35, 0x16, 0xd3, 0x96, 0x08, 0x05, + 0xab, 0x00, 0x8b, 0x85, 0x05, 0xa5, 0x31, 0x64, + 0x5d, 0x2a, 0x68, 0xee, 0x22, 0x82, 0x58, 0x26, + 0x1a, 0x4b, 0x30, 0xc5, 0x8a, 0x40, 0x82, 0xae, + 0x9b, 0x46, 0x02, 0x72, 0x83, 0x4b, 0xed, 0x14, + 0x00, 0x11, 0x00, 0x38, 0x44, 0x50, 0x89, 0x84, + 0x70, 0xca, 0x48, 0xde, 0x02, 0x8b, 0x4c, 0x2b, + 0x2b, 0x61, 0x76, 0xad, 0xe6, 0x1f, 0x17, 0x18, + 0xd1, 0x80, 0xd8, 0x94, 0x18, 0x4c, 0x03, 0x0b, + 0x79, 0x1b, 0x4f, 0x68, 0x13, 0x41, 0x73, 0x4a, + 0xa5, 0xae, 0x5c, 0xc4, 0x74, 0x96, 0xc0, 0xd8, + 0xbb, 0x06, 0xf1, 0x32, 0xe3, 0xd6, 0x06, 0xc6, + 0xd2, 0xdc, 0x81, 0xc2, 0x64, 0x20, 0x48, 0x15, + 0x86, 0x66, 0x28, 0x05, 0xa8, 0x60, 0xb5, 0xa3, + 0x04, 0x14, 0x2a, 0x0a, 0x10, 0x51, 0x16, 0x09, + 0x83, 0x90, 0xd5, 0x30, 0xe2, 0x2c, 0x84, 0x2a, + 0x2b, 0x37, 0x6a, 0xd4, 0xb6, 0xdd, 0x05, 0xdb, + 0xbc, 0x04, 0x00, 0x80, 0x00, 0x08, 0x03, 0x00, + 0x05, 0x00, 0x34, 0x38, 0x5e, 0x4f, 0x78, 0xf0, + 0x2f, 0xf8, 0x86, 0xcd, 0x60, 0x4b, 0xb2, 0xf8, + 0xcb, 0xb7, 0x6d, 0xa6, 0xa7, 0x61, 0x35, 0x9c, + 0x4c, 0xf5, 0x5d, 0x11, 0xbb, 0xfb, 0xa6, 0xc2, + 0xb2, 0x55, 0x94, 0x56, 0xdd, 0x44, 0xcf, 0x9c, + 0xc5, 0x4a, 0xbd, 0xbd, 0xcb, 0x20, 0x14, 0x2d, + 0x93, 0xcd, 0x1c, 0x07, 0xbb, 0x3d, 0x67, 0xec, + 0x19, 0xcc, 0xb7, 0x29, 0x26, 0x30, 0x7d, 0xcc, + 0x14, 0x80, 0x22, 0x6d, 0x4b, 0xbe, 0x83, 0x1c, + 0x75, 0x90, 0x0a, 0x69, 0xba, 0x7f, 0x33, 0x68, + 0x1b, 0x62, 0xf5, 0x1e, 0x1c, 0x95, 0xec, 0x5d, + 0xcd, 0xb0, 0x97, 0x4b, 0x4c, 0x8b, 0x92, 0xc8, + 0xb1, 0xfd, 0xcc, 0xde, 0xa2, 0xca, 0x04, 0x29, + 0x52, 0xf3, 0x2d, 0xbc, 0x13, 0x12, 0x7e, 0x8a, + 0x24, 0x8a, 0x7f, 0x31, 0x85, 0xa2, 0xe6, 0xdd, + 0xea, 0x72, 0x4f, 0xe4, 0x3b, 0x10, 0x76, 0x57, + 0x35, 0x3d, 0xbd, 0x91, 0x50, 0x81, 0x3b, 0x71, + 0x64, 0xa3, 0x03, 0x09, 0x6a, 0x59, 0x30, 0x80, + 0x29, 0x6c, 0x8d, 0x5d, 0x51, 0xd6, 0xdc, 0x5a, + 0x5f, 0xc8, 0x2e, 0xe5, 0x56, 0x06, 0xe0, 0x64, + 0xd1, 0x66, 0x82, 0x78, 0x61, 0x22, 0x74, 0x71, + 0xc6, 0x56, 0xeb, 0x5f, 0x03, 0x3f, 0x03, 0xbb, + 0x90, 0x75, 0xa2, 0x67, 0x08, 0x8b, 0xe4, 0xa2, + 0xd8, 0x53, 0xa8, 0xe9, 0x39, 0x30, 0xd5, 0x07, + 0xdf, 0xc7, 0x45, 0x93, 0x29, 0x11, 0x12, 0x00, + 0x05, 0x02, 0x20, 0x0a, 0x04, 0x40, 0x44, 0x44, + 0x1f, 0x4d, 0xf3, 0xc4, 0xa6, 0xf9, 0x25, 0xc0, + 0xc4, 0x0f, 0x3c, 0xa8, 0x79, 0x7d, 0xf3, 0xc6, + 0x6d, 0xe8, 0x65, 0xf1, 0x61, 0x55, 0x54, 0x5c, + 0xaa, 0xea, 0xee, 0xae, 0x5e, 0x9b, 0xf7, 0xef, + 0xdf, 0xa2, 0x7d, 0x8b, 0x4a, 0x19, 0x02, 0x87, + 0x56, 0x3a, 0x8a, 0x86, 0x73, 0xa1, 0xb8, 0x21, + 0xd6, 0x40, 0x92, 0x2b, 0x42, 0x12, 0x35, 0x52, + 0x96, 0x9b, 0x9c, 0x16, 0x5b, 0x52, 0x6a, 0xea, + 0xfb, 0xa2, 0x29, 0x11, 0xdd, 0x71, 0xf8, 0xc9, + 0x43, 0xaf, 0xb9, 0x90, 0xf8, 0xe8, 0x27, 0x08, + 0xf4, 0x87, 0x7c, 0xfe, 0xc7, 0x7c, 0x8f, 0x0c, + 0x1c, 0x3d, 0x8b, 0x59, 0xb4, 0x3c, 0xa8, 0xc5, + 0x42, 0xb6, 0x1d, 0xa0, 0xf6, 0xe4, 0xab, 0x92, + 0x91, 0x77, 0x4a, 0xfb, 0xe3, 0x73, 0x12, 0x05, + 0x06, 0xac, 0x7a, 0xaf, 0xdf, 0xbf, 0x7e, 0xfd, + 0xf1, 0x8a, 0xeb, 0x10, 0x5b, 0xb4, 0x00, 0x5a, + 0xab, 0x46, 0x55, 0x75, 0x78, 0xaf, 0x65, 0xff, + 0x00, 0x75, 0x0e, 0x22, 0xf1, 0x65, 0x02, 0x22, + 0x3e, 0xbc, 0xf9, 0xf3, 0xe7, 0xcf, 0x9d, 0xa1, + 0x90, 0x0c, 0xa9, 0x98, 0xff, 0x00, 0x95, 0xdd, + 0x4c, 0x17, 0x5c, 0x07, 0x20, 0x67, 0x71, 0x54, + 0x45, 0x6e, 0x1e, 0xf6, 0x8a, 0xc4, 0x9d, 0x2e, + 0x62, 0x98, 0xb2, 0x6d, 0x3d, 0xa7, 0xe7, 0xb2, + 0xef, 0xc6, 0x80, 0x18, 0x08, 0xe4, 0x31, 0xaa, + 0xc6, 0x13, 0xf8, 0xd8, 0x13, 0x28, 0x5c, 0x50, + 0x82, 0x76, 0x2c, 0xef, 0x28, 0x7a, 0x52, 0x37, + 0xd8, 0xe5, 0x31, 0x4c, 0x7f, 0x82, 0x33, 0xe7, + 0xcf, 0x9f, 0x3e, 0x7c, 0xea, 0xa8, 0xd3, 0x45, + 0xde, 0x61, 0x64, 0x29, 0x16, 0x22, 0xfa, 0x60, + 0x21, 0x57, 0xc0, 0x0a, 0xe4, 0x8c, 0x0f, 0x85, + 0x9b, 0x24, 0x1f, 0x7b, 0x0d, 0x5c, 0x98, 0x76, + 0xac, 0x5a, 0x0e, 0xd5, 0xdb, 0x3a, 0x69, 0x09, + 0xdd, 0x60, 0x43, 0xa4, 0x18, 0x55, 0xaa, 0xd9, + 0x0e, 0xa2, 0xa5, 0x10, 0x1c, 0x82, 0x89, 0x11, + 0x8a, 0x7a, 0x84, 0x55, 0x78, 0x88, 0x82, 0x88, + 0xee, 0x84, 0xcc, 0x9b, 0xd6, 0x4a, 0x40, 0x45, + 0x75, 0x01, 0x33, 0x75, 0x21, 0x65, 0xd1, 0x93, + 0x02, 0x4a, 0x4c, 0x0d, 0xa4, 0xc2, 0xe7, 0x0e, + 0x1e, 0xb4, 0x0a, 0x38, 0x60, 0xd3, 0x7e, 0x48, + 0xc0, 0xf5, 0xe1, 0xa8, 0x87, 0x00, 0xd6, 0x48, + 0x81, 0x08, 0x4b, 0xa9, 0x03, 0xaa, 0x92, 0x41, + 0x0d, 0x20, 0x5e, 0x51, 0x36, 0x3b, 0x13, 0xe0, + 0x71, 0x46, 0x26, 0x34, 0xec, 0xe9, 0x82, 0x03, + 0xda, 0xc5, 0x7a, 0x40, 0x26, 0xfe, 0xf9, 0x1a, + 0x7b, 0xa3, 0x00, 0x8e, 0x10, 0xc0, 0x01, 0x82, + 0x0a, 0xfa, 0xef, 0x9e, 0xd9, 0x17, 0xcb, 0xef, + 0x9e, 0x33, 0x68, 0x70, 0xc0, 0xc1, 0xe5, 0x7d, + 0xdb, 0xd8, 0xe7, 0x18, 0x68, 0x19, 0xb0, 0xbf, + 0x74, 0xf5, 0xd8, 0x6e, 0x9a, 0xd6, 0xb1, 0xf5, + 0x8a, 0xad, 0x4e, 0xa4, 0x51, 0x6d, 0xcb, 0x5b, + 0x2d, 0x0a, 0x9d, 0xd3, 0xd6, 0xa0, 0x62, 0x58, + 0xc7, 0x6e, 0x19, 0x55, 0x1a, 0x7d, 0x59, 0xc1, + 0x1e, 0x09, 0xed, 0x9f, 0x01, 0x3d, 0x67, 0x9f, + 0x43, 0x43, 0x86, 0x19, 0xe1, 0xdc, 0xbe, 0x91, + 0x8c, 0xc7, 0x96, 0x54, 0xaa, 0x18, 0x19, 0xb1, + 0x24, 0xbf, 0x71, 0x20, 0x76, 0xdf, 0x04, 0x24, + 0x1b, 0xd5, 0x5d, 0x20, 0xec, 0xcc, 0xef, 0xa9, + 0x47, 0x88, 0x63, 0xa9, 0x6e, 0x91, 0xe5, 0x23, + 0xe0, 0x82, 0xc4, 0x7f, 0xc4, 0x96, 0x16, 0x44, + 0x2e, 0xaf, 0x37, 0x06, 0x3f, 0x98, 0xec, 0xce, + 0xd8, 0x88, 0x3d, 0x2d, 0xdb, 0xb7, 0x6e, 0xdd, + 0x4d, 0xd0, 0x88, 0xc2, 0xe1, 0xf5, 0x2b, 0xc0, + 0x85, 0x5a, 0x19, 0x7a, 0xc2, 0x38, 0x48, 0x48, + 0xc2, 0x2a, 0x23, 0xf2, 0xc1, 0xb4, 0xed, 0xcb, + 0xa6, 0x05, 0x16, 0x14, 0xf6, 0x32, 0xfc, 0xfa, + 0x04, 0x46, 0xdb, 0xaf, 0x5a, 0x98, 0xb4, 0x3b, + 0x7a, 0xe0, 0xe2, 0x8e, 0x03, 0x57, 0xd5, 0x2a, + 0xfd, 0x33, 0x87, 0x8b, 0xe2, 0x67, 0x67, 0x4a, + 0x20, 0x0c, 0x9e, 0x00, 0x72, 0x7e, 0xec, 0x7b, + 0x35, 0x38, 0x15, 0x7a, 0x3d, 0x25, 0x05, 0x3f, + 0x62, 0xfa, 0xcc, 0x72, 0x04, 0xd8, 0xdd, 0xbb, + 0x76, 0xed, 0xdb, 0x85, 0x2d, 0x8e, 0x11, 0x52, + 0x0d, 0x72, 0x89, 0x21, 0xeb, 0x80, 0x30, 0x40, + 0x94, 0x53, 0x28, 0x51, 0x41, 0x64, 0x02, 0xc3, + 0x1b, 0x8c, 0x02, 0x7d, 0x57, 0x7f, 0x21, 0x11, + 0x46, 0x88, 0x75, 0x50, 0xbe, 0xf7, 0xc7, 0x24, + 0x75, 0x74, 0x14, 0x02, 0x88, 0x69, 0x0c, 0x45, + 0x35, 0xd0, 0xb2, 0xf9, 0x3c, 0x26, 0x85, 0x38, + 0xb9, 0x38, 0x10, 0x00, 0xaf, 0x4c, 0x23, 0x6b, + 0x34, 0x19, 0x17, 0xb0, 0x98, 0xb3, 0xf8, 0x28, + 0x62, 0xe5, 0x94, 0x14, 0xb0, 0x2e, 0x40, 0x10, + 0x2f, 0x8b, 0x59, 0x6c, 0xa2, 0x6a, 0x17, 0x14, + 0x03, 0x7c, 0x7d, 0x02, 0xbf, 0x87, 0xd0, 0xa7, + 0xd9, 0xab, 0x34, 0x28, 0x52, 0x45, 0x26, 0xdf, + 0x3c, 0xd4, 0x00, 0xb5, 0xe7, 0x48, 0x20, 0x50, + 0x32, 0xe1, 0x7e, 0xf9, 0x3c, 0xbe, 0xf9, 0xe3, + 0x36, 0xe2, 0x92, 0x4c, 0xaf, 0xcb, 0xeb, 0xd9, + 0xbb, 0x68, 0xae, 0x82, 0xb3, 0x2e, 0x5c, 0xb9, + 0x72, 0xe5, 0xf2, 0xb1, 0x5e, 0xc3, 0xa5, 0x7b, + 0x4a, 0xc5, 0x5f, 0x09, 0x7a, 0x11, 0x05, 0x82, + 0x85, 0x4b, 0x32, 0x05, 0x50, 0x70, 0x2a, 0xfb, + 0xcd, 0x66, 0x52, 0x1e, 0xd8, 0x08, 0x1e, 0xc8, + 0x14, 0x06, 0xc0, 0x53, 0x49, 0x9a, 0x10, 0xb9, + 0x41, 0xd5, 0xa0, 0x2d, 0xf7, 0x61, 0x6b, 0x28, + 0xaa, 0x8e, 0xd6, 0xaa, 0xb3, 0x5f, 0x75, 0xcb, + 0xef, 0x2a, 0x44, 0x58, 0x2c, 0xb0, 0xb4, 0x1c, + 0xa8, 0x2a, 0x82, 0xd1, 0x6d, 0x6b, 0x03, 0x00, + 0x02, 0x10, 0x02, 0xda, 0x86, 0x02, 0x51, 0x19, + 0xcb, 0x9c, 0xb0, 0x1a, 0xa2, 0xc0, 0x02, 0xad, + 0xa2, 0xb0, 0xb1, 0xb1, 0x96, 0xdb, 0xbb, 0x7d, + 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5a, 0x58, 0xc8, + 0x51, 0xfc, 0x3a, 0x0a, 0x25, 0xe8, 0x95, 0xf1, + 0xaf, 0x40, 0x17, 0x79, 0x09, 0x2f, 0x4e, 0x1a, + 0x15, 0x6c, 0x08, 0x4d, 0xc0, 0x81, 0x7c, 0x1e, + 0x10, 0x4b, 0x67, 0xa4, 0x0c, 0xa2, 0x4a, 0xfa, + 0x0c, 0x2a, 0x5b, 0x0d, 0xaa, 0x46, 0x38, 0xb0, + 0xce, 0x49, 0x1c, 0x23, 0xe6, 0x62, 0xb8, 0x4a, + 0x3e, 0x97, 0xc1, 0x44, 0x74, 0x92, 0xff, 0x00, + 0x5c, 0x76, 0x9a, 0x01, 0x25, 0xe5, 0xf7, 0x8f, + 0x54, 0xf5, 0x00, 0x11, 0x48, 0x8c, 0xaa, 0xb3, + 0xaa, 0x79, 0x0f, 0x16, 0x54, 0x09, 0xd5, 0xe8, + 0x3f, 0x9c, 0x51, 0xde, 0x87, 0x03, 0xb3, 0x68, + 0x06, 0x3f, 0x9c, 0x18, 0x02, 0x01, 0x3b, 0x91, + 0x29, 0xed, 0x27, 0x0a, 0x65, 0x26, 0x9c, 0xcb, + 0x3c, 0x9f, 0xb5, 0xf9, 0x0f, 0x25, 0x91, 0x61, + 0xf9, 0xaa, 0xc2, 0x34, 0x5c, 0x16, 0xa5, 0x6d, + 0x08, 0xca, 0x0b, 0xe5, 0x6b, 0xc7, 0x53, 0x70, + 0xd1, 0xc8, 0xc5, 0x5a, 0xb7, 0x3a, 0x91, 0xee, + 0xb4, 0xd0, 0x11, 0xae, 0x84, 0xf5, 0x7a, 0x08, + 0x6a, 0xa9, 0xe4, 0xc4, 0x52, 0x04, 0x8a, 0xb0, + 0x01, 0x31, 0xb8, 0xc8, 0x0d, 0x7d, 0x30, 0xbc, + 0x37, 0x80, 0x72, 0x0c, 0xc8, 0x7e, 0x05, 0xba, + 0x7a, 0x8f, 0x8e, 0x67, 0x23, 0xb7, 0xf1, 0x6f, + 0x9e, 0x6e, 0xff, 0x00, 0xcb, 0xef, 0x9e, 0x33, + 0x68, 0x01, 0x08, 0x72, 0x2f, 0xef, 0xca, 0xca, + 0x88, 0x3d, 0x2a, 0xab, 0x7d, 0xb8, 0x71, 0xb0, + 0x46, 0x5c, 0x5b, 0x36, 0x6c, 0x64, 0x61, 0x3e, + 0x9a, 0x26, 0x9c, 0xb1, 0x8f, 0x0d, 0x7d, 0x78, + 0x81, 0x1c, 0x06, 0x25, 0x11, 0x07, 0x41, 0x4e, + 0xfc, 0x6d, 0x68, 0x36, 0x95, 0x67, 0x1a, 0x31, + 0xd6, 0x49, 0x1d, 0x79, 0xb3, 0xee, 0x0d, 0x9b, + 0xc6, 0xd1, 0xed, 0x72, 0x62, 0xaa, 0xe2, 0xb1, + 0xda, 0xfb, 0xcb, 0x84, 0xe1, 0xc1, 0x4b, 0x52, + 0x3c, 0xd2, 0x28, 0xb6, 0x5d, 0x50, 0xba, 0x0c, + 0xce, 0xfe, 0x9d, 0x50, 0x2f, 0x9c, 0x73, 0xe9, + 0xb9, 0xf0, 0xe0, 0x41, 0xca, 0xf1, 0xea, 0x22, + 0x3f, 0x25, 0x75, 0x26, 0x7e, 0x57, 0xf0, 0x58, + 0x6c, 0x73, 0x8b, 0x53, 0x13, 0xe0, 0x67, 0x1d, + 0x60, 0xec, 0x4c, 0x92, 0x16, 0x0d, 0xeb, 0xba, + 0xa8, 0xe5, 0x19, 0x30, 0x94, 0x28, 0xd6, 0x0a, + 0x0d, 0x07, 0x69, 0x14, 0x41, 0xe9, 0x34, 0xa6, + 0xa6, 0xda, 0x66, 0xd4, 0x69, 0xa2, 0xd0, 0xd5, + 0x2c, 0xe8, 0x11, 0x00, 0x7e, 0x12, 0x84, 0x90, + 0xfc, 0x51, 0xa4, 0x0e, 0x58, 0x02, 0x6b, 0x14, + 0xb1, 0x36, 0x2f, 0x45, 0xf7, 0xb8, 0x73, 0xd5, + 0xae, 0x25, 0xbc, 0x80, 0x4f, 0x43, 0x88, 0x1e, + 0x9f, 0x13, 0x5e, 0x2e, 0x40, 0x63, 0xfb, 0x45, + 0xbd, 0x7c, 0x4f, 0x70, 0xfb, 0xf7, 0xef, 0xdf, + 0xab, 0x47, 0x02, 0x30, 0x00, 0x06, 0xc0, 0x00, + 0xff, 0x00, 0x91, 0xa1, 0x1a, 0x46, 0x1d, 0x12, + 0x90, 0x67, 0x53, 0x45, 0x12, 0xab, 0x4a, 0x81, + 0x58, 0x59, 0x34, 0xe2, 0x78, 0x45, 0x17, 0x52, + 0x4e, 0xea, 0xec, 0x59, 0xba, 0x35, 0x7d, 0x88, + 0xed, 0xb0, 0xa8, 0xd5, 0x25, 0x83, 0x44, 0xc2, + 0x51, 0xdf, 0x04, 0x38, 0xb9, 0xbd, 0xa7, 0xc8, + 0x22, 0x98, 0x10, 0x09, 0x40, 0x03, 0x55, 0x02, + 0x85, 0xbd, 0xf5, 0x8d, 0x6c, 0x22, 0x25, 0xa5, + 0x26, 0x89, 0x78, 0x27, 0xb2, 0x67, 0xd7, 0xf7, + 0xef, 0xdf, 0xbf, 0x7e, 0xdb, 0xe3, 0xf1, 0xf2, + 0xf8, 0x25, 0xae, 0xc5, 0x98, 0x7d, 0xa0, 0xfa, + 0x3e, 0x10, 0xf7, 0x91, 0xe4, 0xc1, 0x73, 0xab, + 0x9d, 0x65, 0xd4, 0x05, 0xa6, 0x50, 0x74, 0x6b, + 0x2a, 0xe7, 0x14, 0x58, 0x74, 0x58, 0x5b, 0x74, + 0x29, 0xbe, 0x60, 0xb6, 0x5a, 0xd0, 0x88, 0xbb, + 0x5a, 0x33, 0x29, 0x2d, 0x89, 0x7a, 0x2a, 0xde, + 0xf0, 0xae, 0x71, 0x14, 0xee, 0xeb, 0x01, 0xe6, + 0x66, 0x6e, 0x16, 0xa8, 0x40, 0x54, 0x03, 0x2a, + 0x88, 0x1b, 0xab, 0x84, 0x14, 0x58, 0xa3, 0xa2, + 0x28, 0xff, 0x00, 0xd8, 0xb9, 0xd5, 0xce, 0xa8, + 0xf3, 0x7a, 0x64, 0x2b, 0x5a, 0xb1, 0x75, 0x07, + 0xb1, 0x37, 0x51, 0xd4, 0x44, 0xb9, 0xd5, 0xce, + 0x85, 0x50, 0x44, 0xd4, 0x2d, 0x3e, 0xa6, 0x89, + 0x73, 0xab, 0x9d, 0x5c, 0xea, 0xe7, 0x47, 0x90, + 0x98, 0x0a, 0x29, 0x52, 0xb0, 0x69, 0xc5, 0x89, + 0x7e, 0xcc, 0x6b, 0x85, 0x54, 0xd0, 0xce, 0x96, + 0x94, 0xb1, 0x41, 0xa5, 0x38, 0x76, 0xae, 0x6c, + 0x15, 0x1e, 0x4d, 0x7d, 0xf9, 0xe5, 0xf7, 0xcf, + 0x19, 0xb7, 0x12, 0x2c, 0xd7, 0x3f, 0xdc, 0xe9, + 0x08, 0x7b, 0x1b, 0xa4, 0x89, 0xd4, 0xfd, 0x93, + 0xa5, 0xd1, 0x82, 0x51, 0x82, 0x46, 0x8b, 0x6c, + 0x01, 0xe0, 0xe2, 0x68, 0xed, 0x5c, 0x1b, 0x99, + 0x42, 0x44, 0xa4, 0x74, 0xc3, 0xb5, 0xdf, 0xc3, + 0x44, 0x20, 0xb1, 0x7a, 0x71, 0x64, 0x06, 0xa0, + 0x4f, 0x78, 0x4a, 0xc0, 0x81, 0xf4, 0xef, 0x6b, + 0xcf, 0xb1, 0x26, 0x00, 0x06, 0x34, 0xe2, 0x67, + 0x86, 0x80, 0x73, 0x44, 0xe2, 0xa2, 0x02, 0x11, + 0xd0, 0xa3, 0xc0, 0x66, 0xf3, 0x0d, 0xff, 0x00, + 0xdc, 0x37, 0xd6, 0x9e, 0xdf, 0x1d, 0x21, 0x12, + 0x1c, 0x3a, 0x98, 0xd1, 0x66, 0xdf, 0x17, 0x3a, + 0xca, 0x64, 0x10, 0xaa, 0xf3, 0x00, 0x21, 0xed, + 0x32, 0x1b, 0x03, 0x01, 0x4c, 0x3b, 0x36, 0xff, + 0x00, 0x7a, 0x01, 0x35, 0x8e, 0x2a, 0x38, 0x4d, + 0x54, 0xc8, 0xe1, 0x16, 0xc2, 0xed, 0xd4, 0x5e, + 0xbc, 0x54, 0x0c, 0x48, 0xbf, 0xc7, 0x05, 0x02, + 0x2d, 0x96, 0xb9, 0xbb, 0x5b, 0xda, 0x61, 0xc9, + 0x24, 0x3b, 0xc9, 0xe6, 0x44, 0x7f, 0xc2, 0x1f, + 0x16, 0x5e, 0x9d, 0x15, 0x06, 0x13, 0x98, 0xf8, + 0x34, 0xbd, 0xe5, 0x23, 0x04, 0x7a, 0x73, 0x74, + 0x90, 0xba, 0x8c, 0x3a, 0x6e, 0x71, 0x97, 0xf9, + 0x96, 0x5c, 0x38, 0x00, 0x53, 0xf9, 0x22, 0xdf, + 0x86, 0xc8, 0x74, 0x41, 0xa0, 0x6c, 0xf7, 0x53, + 0x3d, 0xb3, 0x17, 0x13, 0x90, 0x38, 0xfa, 0xb7, + 0x28, 0x15, 0x84, 0xa1, 0x43, 0x1f, 0xc8, 0x2f, + 0x8c, 0xdd, 0xb8, 0xd4, 0xa3, 0x82, 0xaf, 0x7d, + 0x31, 0x08, 0x0c, 0x03, 0x78, 0x94, 0x38, 0xe8, + 0x5f, 0x79, 0xb5, 0x5b, 0xb3, 0x89, 0x1c, 0x6c, + 0x33, 0xa3, 0x2b, 0x50, 0xe7, 0xc8, 0x6c, 0x5b, + 0x49, 0x25, 0xa0, 0x41, 0xfe, 0x65, 0x59, 0x0a, + 0xa7, 0xf8, 0x59, 0xe1, 0x54, 0x96, 0xcb, 0x76, + 0xd5, 0xff, 0x00, 0x29, 0x28, 0xd9, 0x9b, 0x00, + 0x18, 0x84, 0x1a, 0x07, 0x5a, 0xb5, 0xc8, 0x8b, + 0x89, 0x4c, 0xd3, 0x5e, 0x0b, 0x4b, 0x71, 0x9f, + 0xeb, 0x64, 0x19, 0x2d, 0x14, 0x9b, 0x47, 0x26, + 0x4e, 0x8c, 0x8a, 0x87, 0x9c, 0xbe, 0x37, 0x84, + 0x91, 0x25, 0x73, 0x28, 0xa8, 0x25, 0x6c, 0x02, + 0xbb, 0xb2, 0x22, 0xc0, 0x06, 0x3b, 0x41, 0xe7, + 0x06, 0xd6, 0x93, 0x57, 0x10, 0xab, 0x23, 0xae, + 0xe0, 0xb0, 0x78, 0xe9, 0xaa, 0x12, 0x28, 0x1a, + 0xbc, 0x57, 0x3a, 0xf8, 0x42, 0x11, 0x0b, 0x70, + 0x15, 0x31, 0x20, 0xa2, 0x01, 0x9e, 0x61, 0x84, + 0xdc, 0x68, 0x34, 0x44, 0xd5, 0x4b, 0x40, 0xa5, + 0xbb, 0x9e, 0x40, 0x7e, 0x89, 0x56, 0x56, 0xa4, + 0xc5, 0xd7, 0x87, 0x2c, 0xdf, 0x65, 0xf8, 0x27, + 0x2a, 0x54, 0x25, 0x0d, 0x1c, 0x19, 0x57, 0xdc, + 0x20, 0x23, 0xb8, 0xd0, 0x14, 0x06, 0xc7, 0x86, + 0xd1, 0xef, 0xc5, 0x74, 0x70, 0x40, 0x20, 0x7d, + 0x31, 0xb6, 0x95, 0x2f, 0xa2, 0x40, 0xb6, 0x21, + 0xb1, 0x4a, 0x88, 0x23, 0x44, 0x63, 0xfc, 0x2c, + 0x22, 0x20, 0xa0, 0x24, 0xf4, 0xb3, 0x34, 0xcb, + 0xcb, 0xef, 0x9e, 0x33, 0x68, 0x69, 0x5a, 0x9c, + 0xf9, 0x25, 0xb1, 0x5e, 0x74, 0x41, 0x44, 0x4c, + 0xc6, 0xac, 0x2a, 0x49, 0xc8, 0x20, 0xc5, 0x45, + 0xbb, 0x74, 0x09, 0xd8, 0x85, 0xfd, 0x02, 0x9c, + 0x66, 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xb3, 0x66, + 0xcd, 0x9b, 0x36, 0x6c, 0xd9, 0xae, 0xd6, 0x18, + 0x00, 0x03, 0x02, 0x80, 0x30, 0x0d, 0x00, 0xd2, + 0x1c, 0x73, 0x66, 0x4b, 0x56, 0x69, 0x19, 0xc0, + 0x5c, 0x96, 0xf1, 0xc9, 0xc9, 0x70, 0x04, 0xcd, + 0x53, 0x36, 0x23, 0x00, 0xc9, 0x5e, 0x0b, 0xd9, + 0x4a, 0xd2, 0x01, 0x61, 0x1c, 0x37, 0x1f, 0xe0, + 0xc8, 0x37, 0x6e, 0xdd, 0xbb, 0x76, 0xed, 0xcc, + 0xcd, 0x49, 0x7c, 0xb8, 0xa6, 0xf1, 0x2c, 0x67, + 0x02, 0x12, 0x1f, 0x92, 0x92, 0xa9, 0x6a, 0xd0, + 0x6a, 0x64, 0xd9, 0xfb, 0x64, 0x09, 0x93, 0x6a, + 0xd8, 0x83, 0x53, 0x5b, 0xf1, 0x8f, 0x73, 0x45, + 0xea, 0x41, 0x37, 0x5e, 0x59, 0x86, 0x36, 0xc4, + 0xb9, 0xb9, 0x4e, 0x84, 0x15, 0x4a, 0x26, 0x57, + 0xf0, 0x47, 0x12, 0x8f, 0x5e, 0xed, 0xdb, 0xb7, + 0x6e, 0xdd, 0xb8, 0x49, 0x06, 0xf1, 0xda, 0x71, + 0x11, 0xa1, 0x89, 0x3c, 0x04, 0x69, 0x68, 0x12, + 0x66, 0xca, 0xa2, 0x19, 0x1c, 0x45, 0xdb, 0xb4, + 0x78, 0xd9, 0x8a, 0xd9, 0x3f, 0x8d, 0xb8, 0x54, + 0x3d, 0xc6, 0xef, 0x11, 0x6c, 0x2a, 0x18, 0x95, + 0x1c, 0x33, 0x82, 0xce, 0x1e, 0xec, 0xc8, 0x5a, + 0x4c, 0xdb, 0x82, 0x71, 0x49, 0xc2, 0x80, 0xef, + 0xf1, 0xc1, 0xbf, 0x9a, 0xe5, 0x7e, 0x8b, 0xc0, + 0x0d, 0xc2, 0x24, 0x57, 0xe7, 0xd8, 0x6e, 0x81, + 0x45, 0x0c, 0x4c, 0xca, 0xd5, 0x48, 0x1b, 0xc5, + 0x17, 0x3c, 0x15, 0xfa, 0xa6, 0x44, 0x5d, 0x68, + 0x0e, 0xa0, 0x91, 0xba, 0x96, 0x53, 0x71, 0xe2, + 0x5b, 0xf0, 0x98, 0xd0, 0x89, 0x88, 0x1a, 0x4c, + 0x06, 0x13, 0x16, 0x91, 0x42, 0xd4, 0xb2, 0xa0, + 0x9c, 0xf4, 0xc2, 0xb1, 0x0a, 0x11, 0xe4, 0xb1, + 0x89, 0x30, 0x55, 0x64, 0x0e, 0x27, 0x1c, 0xa6, + 0x45, 0xea, 0x93, 0x6d, 0x7f, 0xc2, 0xa3, 0x52, + 0x42, 0xa9, 0x08, 0x95, 0x86, 0x4d, 0x83, 0x39, + 0x23, 0x0a, 0x5b, 0x48, 0xb5, 0x18, 0x84, 0x11, + 0x09, 0x09, 0xc5, 0xac, 0x25, 0xa5, 0x82, 0x28, + 0x40, 0x69, 0x95, 0xc6, 0xdd, 0xba, 0x09, 0x12, + 0x45, 0xa6, 0xf4, 0x24, 0x24, 0xe8, 0xd2, 0xa6, + 0xa0, 0x35, 0xb1, 0x5d, 0xe6, 0x3e, 0x5f, 0x7c, + 0xf1, 0x9b, 0x7f, 0xe1, 0xbe, 0x89, 0x5f, 0x19, + 0xd1, 0xad, 0x7d, 0xb8, 0x08, 0x59, 0x21, 0x23, + 0x36, 0x8c, 0x31, 0xd8, 0x76, 0x87, 0x2c, 0x7c, + 0x5e, 0x1d, 0xc3, 0x83, 0x39, 0x87, 0x82, 0xb1, + 0xa3, 0x44, 0x18, 0x09, 0xc1, 0x4e, 0x09, 0xa9, + 0xb3, 0x84, 0x3b, 0xf1, 0x80, 0x37, 0x00, 0x22, + 0x17, 0xde, 0x3b, 0x10, 0x39, 0x20, 0x90, 0x51, + 0x8b, 0xf8, 0xae, 0x0b, 0x47, 0xa0, 0x83, 0x65, + 0x9a, 0xbb, 0x22, 0x66, 0x02, 0xc0, 0x22, 0xb4, + 0xac, 0xdc, 0x60, 0x40, 0x20, 0xd4, 0x75, 0x51, + 0x51, 0x1d, 0x30, 0x0d, 0x01, 0x6e, 0xb4, 0x94, + 0x03, 0x2f, 0x0b, 0x13, 0xa2, 0x04, 0xe9, 0x9c, + 0xc0, 0x94, 0x32, 0x18, 0xbb, 0xae, 0xe2, 0x4b, + 0x4a, 0xf8, 0x36, 0xef, 0xaa, 0xb9, 0xe2, 0x80, + 0x0d, 0xa2, 0x4d, 0x55, 0x11, 0x2d, 0x6c, 0x3d, + 0xe3, 0x0c, 0x53, 0xb0, 0x24, 0x92, 0xd0, 0x7c, + 0x09, 0x87, 0x8a, 0xa1, 0xcb, 0xa6, 0xb0, 0xc3, + 0xa4, 0xe2, 0x6a, 0xf4, 0xf6, 0x6f, 0x23, 0x1b, + 0x08, 0xc8, 0x11, 0x62, 0x11, 0x8a, 0xbc, 0x53, + 0x84, 0xa4, 0x50, 0x96, 0xb6, 0x7b, 0x57, 0x9a, + 0xca, 0x7d, 0xb6, 0x75, 0x4e, 0x01, 0x44, 0x35, + 0x00, 0xbb, 0x9c, 0x33, 0x63, 0x42, 0x49, 0xd7, + 0xed, 0x6a, 0xae, 0xdc, 0x26, 0x72, 0x29, 0xb3, + 0x6a, 0x46, 0x2c, 0x84, 0x4b, 0x1f, 0x69, 0x6f, + 0xf4, 0x9c, 0xca, 0x56, 0x63, 0x23, 0x65, 0x8c, + 0x45, 0x48, 0xa2, 0xb0, 0x3a, 0xd0, 0x67, 0xac, + 0x13, 0x2e, 0xea, 0x4b, 0xe3, 0xd8, 0xba, 0xcf, + 0xe2, 0x92, 0x54, 0x08, 0x0a, 0xda, 0xa9, 0x5a, + 0x64, 0x34, 0xc9, 0x94, 0x2a, 0xf1, 0xc1, 0x27, + 0xcb, 0xef, 0x9e, 0x33, 0x68, 0x37, 0xab, 0xc9, + 0x53, 0xa3, 0x05, 0x6b, 0xf3, 0xd5, 0xea, 0x45, + 0x14, 0x8e, 0x7b, 0xaa, 0x48, 0x97, 0x1d, 0x55, + 0x90, 0x00, 0xc0, 0xd1, 0xe9, 0x42, 0x88, 0x63, + 0x45, 0x60, 0x7f, 0x53, 0x8f, 0x1e, 0x3c, 0x78, + 0xf1, 0xe3, 0xc7, 0x8f, 0x1e, 0x3c, 0x78, 0xf1, + 0xe3, 0xc7, 0x8f, 0x1e, 0x21, 0x83, 0x40, 0x20, + 0x95, 0xa1, 0x19, 0x67, 0x20, 0x19, 0x40, 0x2c, + 0x4a, 0x23, 0x8b, 0x62, 0x22, 0x38, 0x23, 0x89, + 0x8c, 0x8b, 0xc2, 0xc4, 0x48, 0x08, 0x80, 0x88, + 0xd8, 0x47, 0x08, 0xe4, 0x71, 0xeb, 0xe1, 0xc3, + 0x87, 0x0e, 0x1c, 0x1a, 0x9a, 0x76, 0x9a, 0x12, + 0x17, 0xd8, 0x5b, 0x51, 0x7e, 0xf5, 0x05, 0x1a, + 0xb0, 0xa1, 0xd8, 0x48, 0x0f, 0x2a, 0x08, 0x5c, + 0xe5, 0x70, 0x8c, 0xd5, 0x33, 0xe0, 0xc4, 0x11, + 0x2c, 0x6e, 0x2a, 0x1a, 0x29, 0x70, 0x65, 0xa2, + 0x57, 0xeb, 0x36, 0x85, 0x3b, 0xc3, 0xe8, 0x6c, + 0x48, 0x9b, 0xb5, 0x85, 0x67, 0x8e, 0xd9, 0x2e, + 0xc5, 0xa2, 0xab, 0x8a, 0x9f, 0xc0, 0x4c, 0x34, + 0x62, 0x18, 0xa6, 0xe1, 0xc3, 0x87, 0x0e, 0x1c, + 0x38, 0x3d, 0x15, 0x48, 0x92, 0x81, 0xa4, 0x51, + 0xa4, 0x47, 0x38, 0x71, 0xc0, 0x9b, 0xaa, 0xb4, + 0xbe, 0x19, 0x29, 0x87, 0x12, 0x61, 0x9a, 0xda, + 0x8a, 0x24, 0x8d, 0x80, 0x2e, 0x80, 0x82, 0xec, + 0xc2, 0xfd, 0x92, 0xee, 0x2c, 0x09, 0x11, 0x00, + 0xb6, 0x25, 0xb3, 0xb8, 0x53, 0xa4, 0xcb, 0x5d, + 0xb3, 0xd5, 0x8c, 0x5d, 0xa7, 0x9a, 0xfe, 0x5b, + 0xc2, 0xb4, 0x58, 0x43, 0x63, 0x03, 0xe8, 0x50, + 0xd8, 0x5c, 0x38, 0x6e, 0x2e, 0x5f, 0xa1, 0x5a, + 0x48, 0x72, 0x64, 0x18, 0x42, 0x72, 0x31, 0xfd, + 0xc1, 0x41, 0x52, 0x93, 0xb4, 0xb6, 0x57, 0x7e, + 0x72, 0x5d, 0x36, 0x3c, 0x49, 0x68, 0x33, 0xfc, + 0xaf, 0x53, 0x6e, 0xac, 0xb2, 0x4d, 0xfe, 0x0e, + 0x7e, 0x28, 0x5c, 0x10, 0x78, 0x56, 0x08, 0xbd, + 0x31, 0xd4, 0xde, 0xe3, 0x68, 0x9a, 0x16, 0xf8, + 0x0b, 0x20, 0xce, 0xe8, 0x60, 0x4e, 0x1d, 0x34, + 0xfa, 0xe8, 0xec, 0x2a, 0x84, 0x46, 0x99, 0x11, + 0x7e, 0xe5, 0x47, 0x33, 0xda, 0xa6, 0x40, 0x6b, + 0x54, 0x4a, 0x8d, 0xdf, 0x2e, 0xc9, 0x15, 0x49, + 0x16, 0xd6, 0x0a, 0x71, 0x61, 0xf1, 0x64, 0xb0, + 0xe6, 0x23, 0xa9, 0xe3, 0xe4, 0x3c, 0xc0, 0xed, + 0x8e, 0x11, 0x9b, 0x9e, 0xd0, 0x98, 0x97, 0x17, + 0x05, 0x01, 0x2c, 0xcc, 0x79, 0xf5, 0x2c, 0xae, + 0xa0, 0xd1, 0x9a, 0x9f, 0x34, 0x74, 0x60, 0xad, + 0x4e, 0x72, 0xbd, 0x4f, 0xab, 0x3c, 0xbe, 0xf9, + 0xe3, 0x36, 0xe2, 0xab, 0xb0, 0xad, 0x02, 0x83, + 0xfd, 0x2b, 0xaf, 0xa3, 0x51, 0x5d, 0xb7, 0x75, + 0x7b, 0xc4, 0x9a, 0xbf, 0x56, 0x7e, 0xf2, 0xdb, + 0xfa, 0xbb, 0xcc, 0xd3, 0x0c, 0x7a, 0x7b, 0xfc, + 0x92, 0x7a, 0xc3, 0x15, 0x8f, 0x79, 0x2a, 0xb7, + 0x41, 0x4d, 0x09, 0x46, 0xa6, 0xd0, 0x4c, 0x82, + 0x04, 0x55, 0xa2, 0xa4, 0x29, 0x21, 0x83, 0xcf, + 0x01, 0x00, 0x67, 0x98, 0x93, 0x43, 0x2a, 0x45, + 0x9c, 0x02, 0x4a, 0x60, 0x94, 0x50, 0x02, 0xa4, + 0x18, 0x24, 0xdb, 0x92, 0x93, 0xf2, 0x87, 0x25, + 0x6c, 0x06, 0x2b, 0x15, 0xbe, 0xea, 0xc4, 0x10, + 0x05, 0xc9, 0x0f, 0xad, 0x73, 0xd4, 0x95, 0x02, + 0xbd, 0xa0, 0x6d, 0x0d, 0x50, 0x53, 0xa0, 0x26, + 0x96, 0x3d, 0xad, 0xdf, 0x2a, 0x25, 0x3b, 0xa0, + 0x41, 0xd7, 0x8b, 0xac, 0xe8, 0x82, 0x11, 0xa0, + 0xdb, 0xed, 0x23, 0x0f, 0x0e, 0x0e, 0x3f, 0x73, + 0x4e, 0x8e, 0x7b, 0x03, 0xe5, 0xfc, 0xe9, 0xa8, + 0xa2, 0x84, 0xef, 0xb0, 0x2f, 0x80, 0x2c, 0x84, + 0x42, 0x38, 0xfc, 0xc1, 0x88, 0xf4, 0x02, 0x42, + 0x60, 0x4b, 0x39, 0x99, 0xcd, 0xb2, 0xc1, 0xe4, + 0x5d, 0x4e, 0x5b, 0x7f, 0x57, 0x79, 0x6d, 0xfd, + 0x5d, 0xe0, 0xd0, 0x6d, 0x9e, 0x6f, 0x78, 0xff, + 0x00, 0x49, 0xae, 0xb3, 0xb7, 0xec, 0x51, 0x63, + 0x8a, 0x57, 0xbc, 0x6d, 0x2b, 0x85, 0x38, 0xda, + 0x5c, 0xe0, 0xf5, 0x64, 0x12, 0xe8, 0x35, 0xeb, + 0xe8, 0xa2, 0x49, 0xcf, 0xf6, 0x35, 0x7b, 0x8f, + 0x72, 0xf5, 0xdb, 0xec, 0xd5, 0x2c, 0x05, 0x4e, + 0x77, 0x34, 0xf2, 0xf3, 0x50, 0x8d, 0x20, 0x5e, + 0x1e, 0xba, 0xab, 0x8b, 0x6a, 0x36, 0x21, 0x42, + 0x24, 0x53, 0xe3, 0xae, 0x86, 0x67, 0x74, 0x25, + 0x1c, 0xe4, 0x99, 0x67, 0x31, 0x1e, 0x03, 0x16, + 0x39, 0xc5, 0xff, 0x00, 0x0a, 0x22, 0x76, 0x78, + 0xee, 0x52, 0x79, 0xab, 0x7b, 0x92, 0xe5, 0x49, + 0x3c, 0x78, 0x2f, 0x32, 0x22, 0x4c, 0x94, 0x57, + 0x09, 0xb0, 0x1a, 0x06, 0x48, 0x3a, 0x41, 0x21, + 0x1f, 0x31, 0x41, 0x04, 0x49, 0x0a, 0xc6, 0x10, + 0x89, 0xc2, 0x44, 0x7c, 0x13, 0xeb, 0xe7, 0x6a, + 0x5f, 0x33, 0xf8, 0xf4, 0xec, 0x31, 0xb1, 0x29, + 0x10, 0x0f, 0x70, 0xda, 0x02, 0xdd, 0x0b, 0xa0, + 0x94, 0x40, 0x81, 0xae, 0x3a, 0xf9, 0xf7, 0x3e, + 0x90, 0x0e, 0x0b, 0xf9, 0x2a, 0xc1, 0x22, 0x94, + 0x3d, 0x76, 0x97, 0x51, 0xa1, 0x65, 0x6f, 0xd2, + 0x4f, 0xda, 0x9a, 0x2a, 0xac, 0x9a, 0x2a, 0x83, + 0x46, 0x30, 0xa2, 0xeb, 0x35, 0x76, 0xab, 0xd2, + 0xfd, 0xb8, 0x32, 0xbc, 0xa3, 0x14, 0x70, 0x46, + 0x86, 0x44, 0x3c, 0x21, 0xc6, 0x0f, 0x3d, 0xfd, + 0xe2, 0x39, 0xdc, 0xe8, 0x9d, 0x65, 0x1e, 0xe3, + 0x68, 0x55, 0xac, 0x59, 0x90, 0x1c, 0xff, 0x00, + 0x04, 0xf9, 0xf3, 0xe7, 0xcf, 0x9f, 0x3e, 0xc3, + 0x11, 0xd6, 0xd8, 0xc0, 0x24, 0xaa, 0xa0, 0x2a, + 0x96, 0x03, 0x80, 0xcd, 0x8e, 0x39, 0xf3, 0xe7, + 0x30, 0x10, 0x3b, 0x07, 0xa3, 0x05, 0x02, 0x25, + 0x88, 0xc7, 0x31, 0x07, 0xff, 0x00, 0x57, 0x89, + 0x14, 0x14, 0x2a, 0xab, 0xeb, 0x7c, 0xf9, 0xf3, + 0xe7, 0xcf, 0x8d, 0x32, 0x6d, 0x98, 0xe8, 0xa4, + 0x06, 0x11, 0xed, 0x0f, 0x5a, 0xa9, 0x5d, 0x52, + 0x4e, 0x24, 0xe4, 0x52, 0xf1, 0x13, 0xe3, 0xcb, + 0xef, 0x9e, 0x33, 0x68, 0xb0, 0x50, 0xdd, 0x8d, + 0x46, 0x8d, 0x4e, 0xb8, 0x4b, 0x62, 0x9a, 0xbf, + 0xab, 0x34, 0x9f, 0x19, 0xde, 0x16, 0xd6, 0xca, + 0xa6, 0x9f, 0xb0, 0x51, 0xac, 0xe6, 0xbc, 0x7d, + 0x21, 0x36, 0x57, 0x1a, 0x41, 0x00, 0x07, 0x2b, + 0x40, 0x6a, 0xfd, 0x90, 0x9f, 0x78, 0x14, 0x02, + 0xca, 0x7c, 0xdf, 0x58, 0xd0, 0x2a, 0x15, 0x6e, + 0xf6, 0xeb, 0x29, 0x42, 0x48, 0x68, 0x59, 0x5f, + 0x20, 0xa3, 0x2c, 0xc0, 0x86, 0x98, 0xe2, 0x4c, + 0x3d, 0x59, 0x41, 0x67, 0x04, 0x2d, 0x3f, 0xb7, + 0x72, 0x8c, 0x8c, 0xfd, 0xa5, 0xc3, 0x40, 0x84, + 0x3f, 0x2d, 0x62, 0x59, 0xd3, 0x05, 0x56, 0xec, + 0x9e, 0xb2, 0x1f, 0x37, 0x75, 0x38, 0x92, 0x82, + 0xa4, 0x6e, 0xcf, 0x95, 0x82, 0x63, 0x87, 0x01, + 0x28, 0xcd, 0x22, 0x15, 0x43, 0xd5, 0x3c, 0x61, + 0xd2, 0x82, 0x14, 0x28, 0xa2, 0xab, 0x80, 0x82, + 0x2d, 0xa8, 0x0e, 0x87, 0xc0, 0xe4, 0xba, 0x59, + 0x60, 0xc9, 0x25, 0x56, 0xf5, 0xe3, 0x55, 0x87, + 0x2d, 0x27, 0x59, 0x14, 0xdf, 0x2e, 0xb5, 0x0a, + 0x70, 0xef, 0x40, 0xd1, 0x02, 0xf5, 0x1e, 0xd5, + 0x07, 0x81, 0xf1, 0x5c, 0x24, 0xb9, 0xaf, 0x1f, + 0x49, 0x6f, 0xba, 0x01, 0x03, 0x48, 0xaf, 0x17, + 0x17, 0xc1, 0x40, 0x6d, 0xa9, 0xef, 0xed, 0xcb, + 0xf0, 0xfa, 0x17, 0xc6, 0x2c, 0x7d, 0xd9, 0xe9, + 0x3a, 0x1a, 0x8a, 0x0a, 0x48, 0x0c, 0x7d, 0x58, + 0xb5, 0x01, 0xdd, 0x67, 0x87, 0xea, 0x80, 0xcb, + 0x88, 0x05, 0xb9, 0x09, 0x90, 0xf8, 0x71, 0x7f, + 0xf8, 0xb2, 0x01, 0xed, 0xf3, 0x22, 0x12, 0x45, + 0xba, 0x82, 0x57, 0xa1, 0x7b, 0x28, 0x11, 0x8b, + 0x54, 0x73, 0x93, 0x46, 0x89, 0xe0, 0xa7, 0x24, + 0x5d, 0xc9, 0x60, 0x63, 0x80, 0x65, 0x7a, 0x9d, + 0x90, 0x3f, 0x60, 0x27, 0xfe, 0xb8, 0xfa, 0x4c, + 0xfa, 0x16, 0x35, 0xaf, 0xb5, 0x14, 0x32, 0xc6, + 0x12, 0xab, 0xc1, 0x08, 0xd9, 0x72, 0x1d, 0x2c, + 0xfc, 0xbe, 0x80, 0xc0, 0x95, 0xa0, 0x83, 0x38, + 0xb5, 0x12, 0x26, 0x36, 0x47, 0xa3, 0x0f, 0xce, + 0xf0, 0x93, 0x6e, 0x75, 0x13, 0x29, 0xd1, 0xbd, + 0xc4, 0x3e, 0x90, 0xfc, 0x82, 0x31, 0xc8, 0x7e, + 0xa7, 0xae, 0xfb, 0x54, 0x72, 0xc5, 0xc1, 0x32, + 0x77, 0x75, 0xcd, 0xe1, 0x40, 0xc6, 0xc1, 0x2e, + 0x1a, 0x6a, 0xb1, 0x88, 0xc2, 0x91, 0x3c, 0x14, + 0x73, 0x0d, 0x42, 0xc5, 0x7a, 0x10, 0x9f, 0xed, + 0xb6, 0x42, 0x96, 0x89, 0xb5, 0x12, 0x35, 0x23, + 0xcb, 0xef, 0x9e, 0x33, 0x6e, 0x25, 0xdd, 0xf5, + 0x6d, 0x41, 0x2a, 0xc9, 0x57, 0xa0, 0xd9, 0x21, + 0x92, 0xdc, 0xcd, 0x42, 0x53, 0x48, 0xc0, 0x10, + 0x08, 0x91, 0xd6, 0x1a, 0xd2, 0xcf, 0xee, 0x07, + 0xe2, 0x72, 0x6f, 0x3f, 0x79, 0x7f, 0x58, 0xf9, + 0x0b, 0xe6, 0x02, 0xc3, 0x55, 0xd4, 0xde, 0xd8, + 0x9a, 0x43, 0x05, 0x32, 0xae, 0x71, 0x84, 0x67, + 0x0c, 0x9c, 0x9c, 0x19, 0x12, 0x05, 0x51, 0xb6, + 0x12, 0x32, 0x8c, 0x9f, 0x40, 0x26, 0x04, 0x1e, + 0xf8, 0xd3, 0xe2, 0x20, 0xc4, 0x40, 0x79, 0xc2, + 0x0b, 0xa9, 0x17, 0x30, 0x00, 0x11, 0x68, 0x96, + 0xc4, 0x68, 0x08, 0x2e, 0x97, 0x33, 0x12, 0xb4, + 0x1a, 0xe8, 0xdd, 0xce, 0xaf, 0x68, 0x41, 0xc5, + 0xe5, 0x22, 0xc1, 0xae, 0xc3, 0x1e, 0x62, 0x48, + 0x9d, 0xb1, 0x48, 0x39, 0x85, 0x30, 0x85, 0xb0, + 0xe3, 0x20, 0x89, 0xa4, 0xe9, 0x17, 0xff, 0x00, + 0x70, 0xa6, 0x49, 0x5b, 0xcc, 0x24, 0xe2, 0x76, + 0xc3, 0xdb, 0x5b, 0x1a, 0x6c, 0x4a, 0x83, 0xfc, + 0xfc, 0x49, 0x2c, 0x84, 0x51, 0x2c, 0x23, 0x31, + 0x16, 0x52, 0xdc, 0xd9, 0x34, 0x3f, 0x62, 0xc0, + 0x83, 0x42, 0x01, 0x50, 0x47, 0x02, 0x95, 0x92, + 0x9c, 0x1b, 0x80, 0x9b, 0x0d, 0xde, 0xff, 0x00, + 0xf5, 0xf5, 0xd7, 0x86, 0x4b, 0x02, 0xd3, 0x43, + 0x24, 0x05, 0x9a, 0xd9, 0x0f, 0xe1, 0xa5, 0xf1, + 0x90, 0x1e, 0x9f, 0x9f, 0x99, 0x77, 0x27, 0x86, + 0x9a, 0xdc, 0xb1, 0xfe, 0x50, 0xbb, 0xfd, 0x46, + 0xf1, 0x21, 0x1d, 0x0d, 0xba, 0x45, 0x2d, 0xe8, + 0x96, 0xb7, 0x70, 0x0e, 0x50, 0x1f, 0x59, 0x80, + 0x4e, 0xae, 0x24, 0x6b, 0x66, 0xad, 0x1c, 0xc4, + 0xc9, 0x96, 0x15, 0xe4, 0xfa, 0x62, 0xa6, 0x06, + 0xa9, 0x83, 0x31, 0x02, 0x72, 0xa0, 0xdf, 0xb6, + 0xdd, 0x96, 0x7f, 0x2d, 0xd0, 0x7c, 0xf4, 0x99, + 0x6b, 0x2e, 0x2d, 0x2a, 0x40, 0x29, 0x61, 0xbf, + 0xd5, 0xba, 0xad, 0xfc, 0x47, 0x79, 0x8d, 0x84, + 0xe6, 0x1f, 0x94, 0x9a, 0x5c, 0xec, 0x18, 0x35, + 0xcb, 0x00, 0x3d, 0xe9, 0xf6, 0xa7, 0xff, 0x00, + 0xeb, 0xb8, 0xec, 0x97, 0x25, 0xb1, 0xf0, 0x53, + 0x25, 0xca, 0x43, 0x05, 0xb5, 0xb3, 0xd8, 0x09, + 0x8e, 0xf0, 0xe1, 0xa0, 0xf9, 0x7d, 0xf3, 0xc6, + 0x6d, 0xc4, 0xbb, 0xb9, 0x11, 0x4b, 0x34, 0xd9, + 0x5d, 0x8a, 0x69, 0x7b, 0x43, 0xd0, 0xcb, 0x32, + 0xa0, 0xbc, 0x71, 0xe3, 0xc6, 0x20, 0x44, 0x00, + 0x2a, 0x8d, 0x00, 0x5d, 0x55, 0x00, 0x32, 0xad, + 0x10, 0x70, 0xf9, 0x41, 0x2d, 0xad, 0xf5, 0x69, + 0x9d, 0xf2, 0xfd, 0x92, 0xb0, 0xef, 0x1a, 0xe7, + 0x89, 0x20, 0x80, 0xdd, 0xad, 0xff, 0x00, 0x5d, + 0x08, 0x1a, 0xd1, 0x4d, 0x41, 0x53, 0xd3, 0x68, + 0x00, 0x2c, 0xa1, 0xe8, 0x88, 0x6b, 0x14, 0x27, + 0x72, 0x23, 0xef, 0x89, 0x70, 0x56, 0x70, 0x85, + 0x8e, 0x87, 0x44, 0x13, 0x21, 0xbe, 0xae, 0xc0, + 0x3f, 0x76, 0xdd, 0x44, 0x1b, 0xd7, 0xc6, 0x2c, + 0x56, 0x9d, 0x16, 0xd7, 0x3a, 0x83, 0x1e, 0x19, + 0x9b, 0xa1, 0xab, 0xf7, 0xf6, 0x12, 0xf1, 0x18, + 0x4b, 0x6a, 0x4c, 0x5c, 0x2f, 0x8c, 0x8c, 0x59, + 0x65, 0xa8, 0xab, 0xb4, 0x14, 0x80, 0x19, 0xd0, + 0xb3, 0x6a, 0xbe, 0x78, 0x21, 0x8a, 0x6a, 0x71, + 0x07, 0xd1, 0xf9, 0x8f, 0x1e, 0x30, 0x11, 0x10, + 0x88, 0x4c, 0x6c, 0x18, 0xa5, 0x28, 0x10, 0x14, + 0x20, 0xc2, 0x05, 0xf0, 0xc1, 0x1e, 0x40, 0x1f, + 0x65, 0xff, 0x00, 0x87, 0xa5, 0xf1, 0x87, 0x0b, + 0x01, 0x21, 0xae, 0xb0, 0x19, 0xd0, 0x36, 0x05, + 0x5e, 0xf1, 0xa6, 0x46, 0xf7, 0xaa, 0x60, 0x05, + 0x13, 0x88, 0x1f, 0x26, 0x61, 0xd0, 0x45, 0x20, + 0x56, 0xb0, 0x30, 0x40, 0x49, 0x7b, 0xaa, 0x7d, + 0xd4, 0x81, 0x2b, 0x58, 0x17, 0x83, 0x65, 0xa8, + 0x6b, 0xf3, 0x09, 0x40, 0x23, 0x9e, 0xc0, 0x10, + 0x1c, 0x59, 0x2c, 0xa5, 0x3e, 0x4a, 0xc8, 0x7b, + 0x0a, 0x77, 0x5e, 0xca, 0x21, 0x6e, 0x27, 0x18, + 0xed, 0xf1, 0xff, 0x00, 0x76, 0x76, 0x83, 0x9b, + 0x1f, 0x01, 0xbb, 0xc2, 0x09, 0x12, 0x37, 0xfc, + 0x00, 0x39, 0x49, 0x90, 0xfa, 0x1f, 0xc2, 0xd8, + 0x30, 0x07, 0x0b, 0x81, 0x34, 0xb1, 0x45, 0x4b, + 0x62, 0xc2, 0xac, 0xbb, 0xe1, 0x7d, 0x25, 0xf5, + 0xdf, 0x79, 0x43, 0xb8, 0x81, 0x66, 0x0a, 0x06, + 0xd0, 0x60, 0x52, 0xc6, 0xe2, 0xdd, 0x69, 0xd5, + 0xcb, 0x84, 0xd2, 0xa6, 0x23, 0x1e, 0x19, 0xbd, + 0xdc, 0x2b, 0x81, 0xc6, 0xee, 0xb5, 0xc8, 0x51, + 0xc3, 0x8c, 0xf7, 0xc9, 0x99, 0xe0, 0x22, 0xdc, + 0xd5, 0xac, 0x8d, 0xf8, 0xea, 0x04, 0x8a, 0x22, + 0xef, 0x25, 0x14, 0x8c, 0x80, 0xeb, 0x8f, 0xe8, + 0xc3, 0x41, 0xf2, 0xfb, 0xe7, 0x8c, 0xda, 0x28, + 0x15, 0x79, 0x36, 0xd6, 0x16, 0x85, 0x6a, 0x5a, + 0xf3, 0x36, 0xe5, 0xea, 0x3d, 0x7e, 0x92, 0x89, + 0x72, 0xdf, 0x93, 0x6e, 0xaf, 0x0e, 0x32, 0x59, + 0x23, 0xe6, 0xf5, 0x91, 0x57, 0x0d, 0x77, 0xc0, + 0x91, 0xfe, 0xa6, 0xa9, 0x92, 0x78, 0x1e, 0x4d, + 0x67, 0x7b, 0x41, 0xf4, 0x7b, 0x2c, 0x5c, 0xc2, + 0xe6, 0x54, 0x46, 0xf5, 0x4c, 0x7f, 0xa3, 0x02, + 0xe9, 0xe5, 0xc9, 0x07, 0xbd, 0x0a, 0xdc, 0x84, + 0xf9, 0xc3, 0x63, 0x47, 0x50, 0x81, 0x20, 0x81, + 0x37, 0x41, 0x86, 0x07, 0xac, 0x61, 0x45, 0x55, + 0x59, 0xd4, 0x96, 0x2e, 0x89, 0x9c, 0xf7, 0xd6, + 0x46, 0x4a, 0x73, 0x51, 0xc2, 0xef, 0xc9, 0x83, + 0x22, 0x89, 0xc9, 0x50, 0x7a, 0x04, 0x52, 0x2f, + 0x2f, 0x78, 0x39, 0xcb, 0xb9, 0xf6, 0xc2, 0xf5, + 0x2f, 0x85, 0x59, 0xf8, 0x5e, 0x7a, 0x6a, 0x2c, + 0x7f, 0xdf, 0x18, 0x3f, 0x5a, 0x50, 0xbc, 0x2a, + 0x88, 0xc6, 0x98, 0xa3, 0xe1, 0xaa, 0x21, 0x0b, + 0xa2, 0xe8, 0xc6, 0x62, 0xd8, 0xa0, 0x7b, 0x4a, + 0xf3, 0x4f, 0x93, 0xd5, 0x7b, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xf7, 0x45, 0xa1, + 0x1c, 0xc9, 0x5e, 0xda, 0xa6, 0x15, 0x66, 0x16, + 0x29, 0x1c, 0x54, 0x5c, 0xaf, 0x86, 0xf8, 0x34, + 0xa6, 0x87, 0x1b, 0xc5, 0x11, 0x5f, 0x0e, 0x14, + 0xa9, 0x44, 0xc9, 0x34, 0x89, 0x82, 0x8a, 0x40, + 0xff, 0x00, 0xc4, 0xcf, 0xd2, 0xfa, 0x63, 0x29, + 0x3b, 0x0f, 0x90, 0x2b, 0xb0, 0x4a, 0x92, 0x16, + 0xc0, 0x13, 0x56, 0x3b, 0xff, 0x00, 0x3b, 0x75, + 0x20, 0x58, 0x02, 0x52, 0xd1, 0xf4, 0x25, 0x60, + 0x4e, 0x0a, 0x7a, 0x28, 0x95, 0x19, 0xa0, 0xb7, + 0x1c, 0x99, 0xee, 0x08, 0x0f, 0xad, 0xff, 0x00, + 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, + 0xde, 0x0d, 0x1d, 0xd7, 0xf8, 0xef, 0x2e, 0xbd, + 0x7e, 0x1a, 0x07, 0xb6, 0x89, 0x99, 0x68, 0x81, + 0x72, 0x55, 0x5d, 0x15, 0x11, 0x3a, 0x1a, 0xa8, + 0x10, 0xa4, 0xa1, 0xae, 0xad, 0x3e, 0x29, 0x53, + 0xc0, 0x38, 0xff, 0x00, 0x0e, 0x42, 0xa5, 0x7d, + 0xb0, 0x74, 0x1e, 0xaa, 0xd5, 0xd8, 0xaf, 0x26, + 0xc6, 0xbd, 0xbe, 0x20, 0x22, 0x92, 0xfa, 0x10, + 0xb5, 0x99, 0xf3, 0x9e, 0x33, 0x82, 0x6a, 0xfb, + 0x8a, 0xa5, 0x3c, 0x46, 0x19, 0x5f, 0xd0, 0x22, + 0x35, 0x33, 0xa1, 0x0d, 0x8e, 0x68, 0x18, 0x95, + 0xba, 0xbc, 0x32, 0xa0, 0x55, 0x64, 0xd7, 0xe3, + 0xfa, 0x4f, 0x2f, 0xbe, 0x78, 0xcd, 0xb8, 0xb6, + 0x3b, 0xc2, 0x17, 0x7f, 0x72, 0x1f, 0xf3, 0x3a, + 0xf7, 0xaa, 0xb3, 0x58, 0xa6, 0x78, 0xc8, 0xe4, + 0xa1, 0x51, 0x68, 0x50, 0xb4, 0x5e, 0xb4, 0x69, + 0xfc, 0x40, 0xc1, 0x83, 0x06, 0x0c, 0x18, 0x30, + 0x60, 0xc4, 0x06, 0x70, 0x68, 0x9a, 0xf8, 0x2a, + 0x80, 0x9c, 0x4b, 0x06, 0x0c, 0xc3, 0xa1, 0x73, + 0x11, 0x48, 0x34, 0xeb, 0x05, 0x36, 0xb9, 0xa5, + 0x77, 0x8a, 0x48, 0x02, 0xe8, 0x05, 0x1e, 0xb0, + 0x60, 0xc1, 0x83, 0x06, 0x0c, 0x67, 0x19, 0x39, + 0xb8, 0x91, 0x50, 0x2b, 0x34, 0xbd, 0x47, 0x31, + 0x89, 0xc5, 0xe8, 0x71, 0x4b, 0xc0, 0x6a, 0x64, + 0xc0, 0x14, 0xca, 0x35, 0xd5, 0x02, 0x38, 0x3c, + 0xb1, 0xa0, 0x67, 0x43, 0x56, 0x00, 0xa1, 0x12, + 0xc5, 0xd9, 0x12, 0x1e, 0x02, 0x87, 0x08, 0xb3, + 0x5b, 0x8c, 0xc4, 0x10, 0xd7, 0x6f, 0x1f, 0x1f, + 0x9b, 0x19, 0xfd, 0x46, 0x04, 0x45, 0x8c, 0x1a, + 0x01, 0x63, 0xa8, 0x52, 0x61, 0x52, 0xbd, 0xbf, + 0xf1, 0x01, 0x6b, 0x53, 0xc5, 0x02, 0xcc, 0x11, + 0x4c, 0x7b, 0xd2, 0x31, 0x8b, 0x38, 0x2a, 0xe6, + 0x44, 0xe5, 0xa6, 0x36, 0xff, 0x00, 0xef, 0x51, + 0x49, 0x41, 0x3f, 0xba, 0xee, 0x8a, 0x07, 0x74, + 0x48, 0xcd, 0xd1, 0x5a, 0x01, 0x64, 0x8e, 0xde, + 0xe4, 0xe1, 0x8e, 0x2f, 0x6b, 0x8f, 0x3a, 0x2f, + 0xfd, 0xc6, 0xd5, 0x5e, 0x42, 0x78, 0x25, 0xb7, + 0x62, 0xa0, 0xa9, 0x08, 0x18, 0x4b, 0xc4, 0xf1, + 0xae, 0xb4, 0x60, 0x08, 0xf8, 0x8b, 0x52, 0xa1, + 0xec, 0x67, 0xb2, 0x67, 0x32, 0x1f, 0x43, 0xd5, + 0x87, 0x42, 0x2c, 0x13, 0x10, 0xc3, 0x56, 0x2a, + 0x01, 0x47, 0x7b, 0xb7, 0x99, 0xf7, 0x05, 0x60, + 0x14, 0xdd, 0x33, 0xdf, 0xb1, 0x59, 0x64, 0x05, + 0x75, 0xe6, 0x8d, 0x4c, 0xb9, 0x04, 0xb9, 0xc2, + 0xd5, 0x05, 0x72, 0xce, 0x98, 0xa2, 0xbd, 0xb6, + 0x88, 0x1c, 0xfd, 0x7b, 0x72, 0xec, 0xab, 0x14, + 0x85, 0x61, 0x1d, 0xb0, 0x83, 0x01, 0x2c, 0x29, + 0xcd, 0xc1, 0xe3, 0x47, 0x02, 0x61, 0xa0, 0x3c, + 0xed, 0x5b, 0x28, 0x2b, 0x88, 0xe0, 0x31, 0xe1, + 0x17, 0xe8, 0x44, 0x85, 0xf3, 0x69, 0xa3, 0x01, + 0x06, 0xa9, 0x5a, 0x73, 0x4f, 0x3a, 0x0a, 0xc3, + 0x2a, 0x32, 0x03, 0x85, 0xc6, 0xa8, 0x84, 0x58, + 0x52, 0xcb, 0x80, 0x51, 0xc1, 0x0c, 0x4c, 0x0f, + 0xfd, 0xb6, 0x12, 0x5d, 0x4b, 0x1f, 0xc5, 0x8a, + 0x9e, 0x03, 0x7f, 0x52, 0x74, 0x6c, 0xe2, 0x90, + 0x63, 0x66, 0x83, 0xc9, 0x76, 0x48, 0xd4, 0xbe, + 0x10, 0x66, 0x13, 0x46, 0xc9, 0xb9, 0x72, 0xea, + 0x06, 0xcf, 0xe6, 0xae, 0x87, 0xa1, 0x1a, 0x6a, + 0x60, 0x40, 0xe7, 0x60, 0x8e, 0xc7, 0xd0, 0xe0, + 0xd8, 0xcf, 0x0b, 0x8a, 0x12, 0x62, 0xa7, 0x29, + 0x22, 0x98, 0xca, 0xf1, 0x1a, 0xf1, 0x84, 0x8d, + 0x0b, 0x53, 0xbe, 0x87, 0xf1, 0x77, 0x97, 0xdf, + 0x3c, 0x66, 0xd0, 0x42, 0x03, 0xbb, 0x7f, 0x62, + 0x28, 0x10, 0xc9, 0x61, 0x77, 0x3d, 0xce, 0x5f, + 0xde, 0x6b, 0x7e, 0x5b, 0x98, 0xcc, 0x81, 0xeb, + 0xba, 0x80, 0x9b, 0x22, 0x8c, 0x1b, 0xa5, 0x33, + 0xb2, 0x82, 0xb5, 0xd5, 0x17, 0x81, 0x87, 0xa0, + 0x04, 0x79, 0x40, 0xcb, 0x02, 0x32, 0xac, 0x71, + 0xb3, 0x94, 0x6d, 0x14, 0x90, 0x87, 0x4b, 0x1d, + 0x4a, 0x9a, 0x06, 0xa7, 0xa6, 0x12, 0xc5, 0xbc, + 0x11, 0x94, 0x4e, 0x3f, 0x0a, 0xa6, 0x63, 0x1c, + 0x5f, 0x5d, 0xaf, 0x0b, 0x0c, 0x75, 0x32, 0x9c, + 0x33, 0x36, 0x4a, 0xee, 0xa4, 0x47, 0xac, 0x71, + 0x5a, 0x09, 0x77, 0x2d, 0xc5, 0x03, 0x6c, 0x91, + 0x16, 0x6b, 0x16, 0xa9, 0x95, 0x42, 0xc5, 0x67, + 0x5b, 0x04, 0x32, 0x66, 0xce, 0x0d, 0x25, 0xf0, + 0x95, 0xcc, 0x6d, 0xc5, 0x94, 0xee, 0xb0, 0xbc, + 0x8e, 0x75, 0xcb, 0xa9, 0x37, 0xa7, 0x2d, 0x11, + 0x84, 0xda, 0xb2, 0x99, 0x48, 0x8e, 0xa6, 0x7c, + 0xf8, 0x70, 0x2f, 0x67, 0x33, 0x65, 0xdb, 0x18, + 0xb6, 0x4a, 0x56, 0x72, 0x68, 0x98, 0x0f, 0xa1, + 0xea, 0xc2, 0x28, 0x88, 0xd2, 0x22, 0x26, 0xa2, + 0x36, 0x23, 0xec, 0x8e, 0x47, 0xd9, 0x88, 0xce, + 0x2d, 0x46, 0xaa, 0xb4, 0x29, 0xa0, 0x2d, 0x5c, + 0x1c, 0x1d, 0xd7, 0x98, 0x11, 0xd0, 0xb4, 0x56, + 0x30, 0x11, 0x5a, 0x42, 0x00, 0x03, 0xce, 0x90, + 0x59, 0x28, 0xeb, 0x5a, 0x44, 0x9f, 0x19, 0x4f, + 0x4c, 0x35, 0x5e, 0xb8, 0x0a, 0x67, 0x44, 0x1d, + 0xc6, 0x81, 0xdc, 0xb1, 0xb0, 0x66, 0x19, 0xac, + 0xde, 0x8d, 0x14, 0x19, 0x34, 0x74, 0x55, 0x78, + 0x68, 0x0c, 0x9b, 0x2f, 0xc2, 0x6b, 0xfd, 0xcb, + 0xf0, 0xf7, 0x31, 0x06, 0x1f, 0xa2, 0x7d, 0xa1, + 0xa5, 0x1e, 0x94, 0xb5, 0x6e, 0x6d, 0x02, 0x9c, + 0x3a, 0xfd, 0x8b, 0x34, 0x6e, 0x01, 0xf5, 0x5b, + 0xaf, 0x2e, 0x0b, 0xc8, 0x04, 0x2d, 0xe6, 0xcc, + 0x80, 0xf6, 0xfa, 0x89, 0x9b, 0x27, 0xbe, 0x50, + 0x30, 0xa6, 0x17, 0x6b, 0x39, 0xc0, 0x2e, 0x1b, + 0x5c, 0x1a, 0x0a, 0xa4, 0x1d, 0x14, 0x1c, 0xb3, + 0x6a, 0xdd, 0x9f, 0xa5, 0x8e, 0x16, 0x97, 0x4b, + 0x02, 0x14, 0x8f, 0xd8, 0xeb, 0xbb, 0xdc, 0x60, + 0x44, 0x10, 0xc2, 0x83, 0xf5, 0x02, 0x99, 0xc4, + 0x80, 0x8d, 0xae, 0x3d, 0x96, 0xef, 0xdc, 0x2f, + 0x10, 0xf2, 0xc3, 0xe6, 0x89, 0xf9, 0x4f, 0x8c, + 0x67, 0x29, 0xc2, 0x94, 0x94, 0xbe, 0xec, 0x5a, + 0xd8, 0x15, 0x55, 0x2f, 0xdf, 0x9e, 0x5f, 0x7c, + 0xf1, 0x9b, 0x7f, 0x00, 0xa2, 0x76, 0xb7, 0xf4, + 0x85, 0xc1, 0x38, 0xca, 0xb6, 0xab, 0x98, 0x03, + 0xc8, 0x19, 0x0d, 0x64, 0x95, 0x88, 0x70, 0xf9, + 0xdd, 0x5e, 0x30, 0x81, 0x31, 0xdd, 0x36, 0x62, + 0xc8, 0x81, 0xe7, 0x6c, 0x63, 0x8c, 0xae, 0xb4, + 0xb2, 0xde, 0x3a, 0x34, 0x14, 0xb0, 0xbd, 0x2c, + 0x6c, 0xe9, 0x10, 0x55, 0x4a, 0x84, 0xae, 0x55, + 0x83, 0x60, 0xb2, 0xc5, 0x35, 0x37, 0x94, 0x50, + 0x90, 0x8b, 0xba, 0x09, 0x91, 0xed, 0x4b, 0x71, + 0x3e, 0x1b, 0x32, 0x26, 0xd0, 0xb0, 0xd5, 0x93, + 0x48, 0x8d, 0xb0, 0x8d, 0x85, 0xe0, 0x0b, 0x42, + 0xc5, 0xca, 0x1e, 0xe4, 0x1a, 0x8e, 0x58, 0xc3, + 0xe0, 0xc8, 0x16, 0x03, 0x30, 0x61, 0x21, 0x88, + 0x7f, 0xbd, 0x90, 0xec, 0x50, 0xcc, 0xdd, 0xc4, + 0x82, 0x0c, 0x02, 0xa7, 0xb8, 0x06, 0x43, 0x51, + 0xf5, 0xcb, 0x04, 0x80, 0x88, 0xe0, 0x01, 0xd5, + 0x76, 0x0c, 0xb1, 0xe2, 0xa9, 0x68, 0xb7, 0x19, + 0x6f, 0x1e, 0xf7, 0x53, 0x74, 0xe3, 0xd0, 0x9e, + 0xc9, 0xa2, 0x2c, 0x35, 0xa5, 0xc7, 0x57, 0x70, + 0xf7, 0x3c, 0x6b, 0x22, 0x5d, 0xb4, 0x84, 0xfb, + 0xb7, 0x64, 0x58, 0x68, 0xcb, 0x71, 0x14, 0x35, + 0xb1, 0x51, 0x67, 0x93, 0x74, 0xe4, 0x51, 0x3b, + 0x94, 0x8e, 0x8e, 0x07, 0x22, 0xce, 0xf7, 0xa6, + 0xf4, 0x70, 0x43, 0x68, 0xb9, 0xae, 0xbc, 0xc3, + 0xc8, 0x67, 0x79, 0xf6, 0x20, 0xd1, 0xdd, 0xd0, + 0x54, 0x80, 0x29, 0x94, 0xd4, 0x47, 0x13, 0x4c, + 0x7e, 0xba, 0xd9, 0x48, 0x38, 0x26, 0x3a, 0x28, + 0x56, 0x96, 0x0c, 0x65, 0x2d, 0x0c, 0x99, 0x4a, + 0xc9, 0x04, 0xef, 0x05, 0x91, 0x78, 0x43, 0x44, + 0xe6, 0x40, 0x78, 0x48, 0x44, 0x21, 0x2a, 0x32, + 0xe7, 0x02, 0x99, 0x8a, 0x4e, 0xa8, 0x3a, 0xf2, + 0x4a, 0x13, 0xb0, 0x53, 0xc5, 0x7a, 0xec, 0x72, + 0xf4, 0xb5, 0xe9, 0x7d, 0xd1, 0x2b, 0x56, 0xaf, + 0xdc, 0x58, 0x0f, 0xa0, 0xa5, 0x16, 0x85, 0xfe, + 0xd5, 0x55, 0x7e, 0x5f, 0x7c, 0xf1, 0x9b, 0x43, + 0x71, 0x29, 0xb7, 0x5f, 0xe7, 0x13, 0x95, 0x5d, + 0xfa, 0xff, 0x00, 0x28, 0xff, 0x00, 0x92, 0xaf, + 0x5b, 0xd8, 0xc1, 0x21, 0x55, 0x2a, 0x65, 0x10, + 0x2c, 0x57, 0x76, 0xc2, 0xac, 0x10, 0x06, 0x5b, + 0x88, 0xd2, 0x29, 0x74, 0xdd, 0x6f, 0x5e, 0xdf, + 0xf6, 0x01, 0x93, 0x18, 0xa1, 0x7a, 0xbc, 0x9b, + 0x48, 0xea, 0x8d, 0x95, 0xe7, 0xdf, 0xc8, 0x9d, + 0x6e, 0xbe, 0x69, 0x28, 0x33, 0xcb, 0x1d, 0xda, + 0xdf, 0x6f, 0x80, 0x63, 0x0d, 0x5e, 0xee, 0x0c, + 0x0b, 0x82, 0x0e, 0x6c, 0x2b, 0x04, 0xaf, 0x9a, + 0xe4, 0x5a, 0x5c, 0x44, 0x14, 0xb4, 0x08, 0x15, + 0x44, 0x32, 0x9f, 0xab, 0x63, 0x96, 0x07, 0x62, + 0x99, 0x44, 0x54, 0xb8, 0x86, 0xc4, 0xb8, 0x64, + 0x7c, 0xc6, 0x4c, 0xe4, 0x8c, 0x0c, 0x9b, 0x17, + 0x7d, 0x58, 0x26, 0xf1, 0xb9, 0x27, 0x14, 0x48, + 0x86, 0x2f, 0x58, 0x42, 0x98, 0x73, 0x68, 0xce, + 0x3e, 0xe1, 0xd3, 0x90, 0x17, 0x06, 0x9d, 0x6d, + 0x0c, 0x25, 0xa6, 0x34, 0x7e, 0x4a, 0xa7, 0xa5, + 0x20, 0xad, 0x49, 0x53, 0xd4, 0x5a, 0xac, 0x9f, + 0x04, 0x42, 0x9e, 0xc2, 0x1c, 0xa6, 0x00, 0x52, + 0x00, 0x88, 0xd8, 0x82, 0x42, 0x4e, 0xb9, 0xca, + 0x0d, 0x42, 0xe7, 0x16, 0x62, 0xfe, 0x85, 0xc9, + 0x80, 0xdd, 0x50, 0x82, 0x01, 0x0d, 0x02, 0xdb, + 0x7d, 0xf4, 0x9a, 0xa1, 0x97, 0x3c, 0x25, 0x6b, + 0x02, 0x75, 0x96, 0x94, 0xa3, 0x93, 0x55, 0xc8, + 0xe0, 0xe5, 0xb5, 0x3e, 0x90, 0x63, 0x47, 0xce, + 0x53, 0x81, 0x25, 0x58, 0x24, 0x8b, 0x34, 0x40, + 0x58, 0x9e, 0x51, 0x8e, 0x71, 0x53, 0xcd, 0x2f, + 0x77, 0x96, 0x16, 0x80, 0x93, 0x05, 0x9c, 0x4c, + 0x67, 0xb8, 0x18, 0x1d, 0x8b, 0x7e, 0x36, 0x66, + 0xbf, 0x3f, 0x45, 0x0e, 0x62, 0xd4, 0x57, 0x00, + 0x34, 0xdb, 0xd4, 0x1e, 0x1f, 0x1f, 0x12, 0xa8, + 0x73, 0x3d, 0x5f, 0x62, 0xa6, 0x81, 0x5b, 0x6d, + 0x82, 0x10, 0xcb, 0x84, 0xf0, 0xe2, 0xa0, 0x0e, + 0x4d, 0x89, 0x5b, 0x96, 0x55, 0x32, 0x80, 0xc9, + 0x34, 0x8c, 0x10, 0xce, 0x67, 0x9f, 0x7d, 0xdb, + 0x5e, 0x8a, 0xbb, 0xcd, 0xd6, 0xf9, 0xe2, 0x6e, + 0xf8, 0x2e, 0x31, 0xe2, 0x7c, 0x1a, 0x80, 0xa8, + 0x34, 0x94, 0x8a, 0x84, 0xae, 0xb2, 0xfe, 0x3f, + 0xd9, 0x69, 0x2b, 0x52, 0xc3, 0x1f, 0x5b, 0xe2, + 0x37, 0x22, 0xbb, 0x9f, 0x8e, 0x79, 0x7d, 0xf3, + 0xc6, 0x6d, 0xc1, 0x6c, 0xd0, 0x85, 0x43, 0xdd, + 0x14, 0x07, 0xbd, 0x2c, 0xd8, 0x4f, 0xb7, 0x0a, + 0x68, 0x82, 0xb3, 0x02, 0x87, 0x0b, 0x94, 0x45, + 0x14, 0x4f, 0x62, 0x10, 0x3e, 0xfc, 0x11, 0x52, + 0xa0, 0x7a, 0x2e, 0xdd, 0xbb, 0xee, 0xe4, 0xde, + 0x1f, 0xfa, 0xba, 0xf0, 0x20, 0x6d, 0xd5, 0x61, + 0x57, 0x55, 0xfa, 0xc3, 0xec, 0xe0, 0xdb, 0xd4, + 0x50, 0xa1, 0x43, 0x44, 0x0d, 0x3a, 0x0f, 0x13, + 0x76, 0xe9, 0x44, 0xe0, 0x19, 0x5f, 0x0d, 0x85, + 0x19, 0x64, 0x34, 0xb3, 0xaa, 0xa6, 0x84, 0x60, + 0xad, 0x0a, 0x66, 0x11, 0x00, 0x47, 0x7b, 0x20, + 0xb5, 0x99, 0x48, 0x48, 0x8c, 0xe2, 0x80, 0x12, + 0x66, 0x4d, 0x90, 0xe0, 0x54, 0x10, 0x34, 0x26, + 0x54, 0xaa, 0x24, 0xd9, 0x83, 0xd0, 0xd4, 0x5f, + 0xa8, 0x03, 0x90, 0x5d, 0x65, 0x84, 0xe8, 0x7d, + 0x80, 0xd2, 0xf0, 0x1f, 0x42, 0xfc, 0xa2, 0xd6, + 0xdc, 0x9e, 0x90, 0x61, 0x19, 0xff, 0x00, 0x93, + 0xa7, 0xb7, 0xe8, 0xf3, 0xe7, 0xcd, 0x6d, 0x57, + 0xeb, 0xe9, 0xf3, 0xf9, 0xf3, 0xc7, 0x8a, 0xb0, + 0xed, 0x8e, 0x7d, 0xac, 0x3b, 0x4e, 0xd9, 0x2d, + 0x0a, 0x40, 0x3c, 0x4a, 0x13, 0xe2, 0x20, 0x3c, + 0x7d, 0xe7, 0x71, 0x66, 0xb2, 0x02, 0xb4, 0xc0, + 0x74, 0x10, 0x16, 0xe5, 0x2a, 0x2e, 0x60, 0x19, + 0xd1, 0x12, 0x5f, 0x7a, 0x1f, 0x4a, 0xe9, 0x21, + 0xc4, 0x9c, 0x09, 0x7f, 0xb2, 0xc7, 0x54, 0xe3, + 0x0c, 0x3a, 0x0e, 0x84, 0x8c, 0x06, 0x87, 0x83, + 0x17, 0x97, 0xdf, 0x10, 0x06, 0xbf, 0x04, 0x3f, + 0x53, 0x22, 0x58, 0xe7, 0x4f, 0x2f, 0x57, 0x29, + 0x23, 0x3e, 0xb5, 0x08, 0x89, 0x22, 0x06, 0x08, + 0x88, 0x36, 0x23, 0x4c, 0x59, 0x73, 0x7b, 0xc4, + 0x13, 0xa8, 0x19, 0xfa, 0xf8, 0xf0, 0xab, 0xe4, + 0xf2, 0xaf, 0x98, 0x6a, 0xc1, 0x39, 0x6b, 0x83, + 0xfa, 0x2d, 0x5a, 0xb5, 0x6a, 0xd5, 0xab, 0x56, + 0xad, 0x5a, 0xb5, 0x6a, 0xd5, 0xab, 0x56, 0xad, + 0x41, 0x94, 0xab, 0x58, 0x52, 0x80, 0x13, 0x08, + 0x88, 0x98, 0x63, 0xdf, 0x26, 0x67, 0x1b, 0x54, + 0x4f, 0xa8, 0x51, 0x55, 0xf4, 0xb4, 0xa3, 0x4d, + 0x03, 0x96, 0xd2, 0x63, 0x96, 0x5a, 0x08, 0x40, + 0x08, 0x28, 0x01, 0x00, 0xc0, 0x01, 0x50, 0x0c, + 0x7f, 0x45, 0xab, 0x56, 0xad, 0x5a, 0xb5, 0x6a, + 0xd5, 0xab, 0x56, 0xad, 0x5a, 0xb5, 0x6a, 0xd6, + 0x94, 0xea, 0xc2, 0xa5, 0x06, 0x56, 0xdb, 0xa8, + 0xa8, 0xa5, 0xfe, 0xcd, 0x67, 0x48, 0x71, 0x90, + 0x3c, 0x4b, 0x2d, 0x20, 0x6a, 0x68, 0x42, 0xde, + 0x60, 0x65, 0x0b, 0x40, 0x41, 0x69, 0xa2, 0x9f, + 0x22, 0x7d, 0xe9, 0x06, 0x56, 0x69, 0x21, 0x6e, + 0x89, 0x08, 0x0e, 0xa7, 0xfb, 0xe1, 0x28, 0x59, + 0xf4, 0xe5, 0x1a, 0xcf, 0xbe, 0xb7, 0x5a, 0xe7, + 0x6b, 0x63, 0xde, 0x65, 0xbd, 0xda, 0x77, 0x03, + 0xb6, 0x48, 0xbf, 0xfc, 0x49, 0x62, 0xd2, 0xe5, + 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, + 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, + 0x2e, 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, + 0x5c, 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, + 0xb9, 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, + 0x72, 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, + 0xe5, 0xcb, 0x97, 0x2e, 0x5c, 0xb9, 0x72, 0xe5, + 0xcb, 0x97, 0x2d, 0xb1, 0x61, 0x20, 0x23, 0x80, + 0x55, 0x86, 0xc1, 0x2b, 0x02, 0x94, 0x14, 0x33, + 0xf0, 0x09, 0xf4, 0x04, 0xc6, 0x0d, 0x31, 0xed, + 0xef, 0xec, 0xc4, 0x1d, 0x7c, 0xf3, 0x7d, 0x76, + 0x8b, 0xb6, 0x8e, 0x87, 0x69, 0xca, 0xf4, 0x3b, + 0x4e, 0x57, 0xa1, 0xda, 0x72, 0xbd, 0x0e, 0xd3, + 0x95, 0xe8, 0x76, 0x9c, 0xaf, 0x43, 0xb4, 0xe5, + 0x7a, 0x1d, 0xa7, 0x2b, 0xd0, 0xed, 0x39, 0x5e, + 0x87, 0x69, 0xca, 0xf4, 0x3b, 0x4e, 0x57, 0xa1, + 0xda, 0x72, 0xbd, 0x0e, 0xd3, 0x95, 0xe8, 0x76, + 0x9c, 0xaf, 0x43, 0xb4, 0xe5, 0x7a, 0x1d, 0xa7, + 0x2b, 0xd0, 0xed, 0x39, 0x5e, 0x87, 0x69, 0xca, + 0xf4, 0x3b, 0x4e, 0x57, 0xa1, 0xda, 0x72, 0xbd, + 0x0e, 0xd3, 0x95, 0xe8, 0x76, 0x9c, 0xaf, 0x43, + 0xb4, 0xe5, 0x7a, 0x1d, 0xa7, 0x2b, 0xd0, 0xed, + 0x39, 0x5e, 0x87, 0x69, 0xca, 0xf4, 0x3b, 0x4e, + 0x57, 0xa1, 0xda, 0x72, 0xbd, 0x0e, 0xd3, 0x95, + 0xe8, 0x76, 0x9c, 0xaf, 0x43, 0xb4, 0xe5, 0x7a, + 0x1d, 0xa7, 0x2b, 0xd0, 0xed, 0x39, 0x5e, 0x87, + 0x69, 0xca, 0xf4, 0x3b, 0x4e, 0x57, 0xa1, 0xda, + 0x72, 0xbd, 0x0e, 0xd3, 0x95, 0xe8, 0x76, 0x9c, + 0xaf, 0x43, 0xb4, 0xe5, 0x7a, 0x1d, 0xa7, 0x2b, + 0xd0, 0xed, 0x39, 0x5e, 0x87, 0x69, 0xca, 0xf4, + 0x3b, 0x4e, 0x57, 0xa1, 0xda, 0x72, 0xbd, 0x0e, + 0xd3, 0x95, 0xe8, 0x76, 0x9c, 0xaf, 0x43, 0xb4, + 0xe5, 0x7a, 0x1d, 0xa7, 0x2b, 0xd0, 0xed, 0x39, + 0x5e, 0x87, 0x69, 0xca, 0xf4, 0x3b, 0x4e, 0x57, + 0xa1, 0xda, 0x72, 0xbd, 0x0e, 0xd3, 0x95, 0xe8, + 0x76, 0x9c, 0xaf, 0x43, 0xb4, 0xe5, 0x7a, 0x1d, + 0xa7, 0x2b, 0xd0, 0xed, 0x39, 0x5e, 0x87, 0x69, + 0xca, 0xf4, 0x3b, 0x4e, 0x57, 0xa1, 0xda, 0x72, + 0xbd, 0x0e, 0xd3, 0x95, 0xe8, 0x76, 0x9c, 0xaf, + 0x43, 0xb4, 0xe5, 0x7a, 0x1d, 0xa7, 0x2b, 0xd0, + 0xed, 0x39, 0x5e, 0x87, 0x69, 0xca, 0xf4, 0x3b, + 0x4e, 0x57, 0xa1, 0xda, 0x72, 0xbd, 0x0e, 0xd3, + 0x95, 0xe8, 0x76, 0x9c, 0xaf, 0x43, 0xb4, 0xe5, + 0x7a, 0x1d, 0xa7, 0x2b, 0xd0, 0xed, 0x39, 0x5e, + 0x87, 0x69, 0xca, 0xf4, 0x3b, 0x4c, 0xc4, 0x18, + 0x17, 0x43, 0xb7, 0xe6, 0x00, 0x79, 0xe7, 0xdb, + 0x9c, 0xff, 0xd9, +}; + +static const uint8_t data_ek_tm4c1294xl_jpg[] = +{ + /* /ek-tm4c1294xl.jpg */ + 0x2f, 0x65, 0x6b, 0x2d, 0x74, 0x6d, 0x34, 0x63, + 0x31, 0x32, 0x39, 0x34, 0x78, 0x6c, 0x2e, 0x6a, + 0x70, 0x67, 0x00, + 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, + 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0xf0, + 0x00, 0xf0, 0x00, 0x00, 0xff, 0xdb, 0x00, 0x43, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0xff, 0xdb, 0x00, 0x43, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xc2, + 0x00, 0x11, 0x08, 0x00, 0xac, 0x00, 0xd0, 0x03, + 0x01, 0x11, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, + 0x01, 0xff, 0xc4, 0x00, 0x1e, 0x00, 0x00, 0x01, + 0x04, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, + 0x05, 0x06, 0x07, 0x00, 0x02, 0x08, 0x01, 0x09, + 0x0a, 0xff, 0xc4, 0x00, 0x1c, 0x01, 0x00, 0x02, + 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x03, 0x05, 0x02, 0x04, 0x06, 0x07, 0x08, 0xff, + 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x10, + 0x03, 0x10, 0x00, 0x00, 0x01, 0xfb, 0x32, 0x96, + 0x06, 0x07, 0xa1, 0xe8, 0x6c, 0x1b, 0x06, 0xc1, + 0xb0, 0x28, 0x0a, 0x06, 0xe0, 0xa8, 0x28, 0x0a, + 0x8d, 0x51, 0x2a, 0x0a, 0x82, 0xc0, 0xa8, 0x6c, + 0xde, 0x06, 0x06, 0x06, 0x06, 0x05, 0x6e, 0x96, + 0x06, 0x07, 0xac, 0xf5, 0x3d, 0x85, 0xb0, 0xf7, + 0x16, 0xec, 0xd8, 0x15, 0x46, 0xe0, 0xab, 0x14, + 0x1a, 0xa2, 0x54, 0x16, 0x42, 0xa0, 0xb0, 0x2c, + 0x0b, 0x33, 0x61, 0xe0, 0x60, 0x60, 0x60, 0x55, + 0xe9, 0x78, 0xcf, 0x51, 0x81, 0xe8, 0xf6, 0x66, + 0xe9, 0x6c, 0x1b, 0x82, 0x83, 0xdd, 0x8a, 0xa4, + 0xa0, 0x2a, 0xc5, 0x50, 0xb0, 0x2a, 0x35, 0x84, + 0xb0, 0x2c, 0x0b, 0x02, 0xcc, 0xd8, 0x78, 0x18, + 0x18, 0x15, 0x32, 0x5e, 0x0f, 0xd1, 0x63, 0x7b, + 0x23, 0x60, 0xd8, 0x37, 0x6b, 0x74, 0x28, 0x35, + 0x04, 0xa0, 0x2a, 0x0a, 0x36, 0xb2, 0x4a, 0x82, + 0xc3, 0x58, 0x16, 0x62, 0xe9, 0x2c, 0x35, 0xda, + 0x58, 0x3d, 0x1e, 0x06, 0x05, 0x3a, 0x97, 0x8c, + 0xf5, 0x1e, 0x8f, 0xd1, 0x6c, 0x3d, 0xc5, 0xb8, + 0xf7, 0x12, 0x80, 0xa0, 0x28, 0xc5, 0x53, 0x58, + 0x4a, 0x82, 0xcc, 0x59, 0x0b, 0x31, 0x64, 0x2e, + 0x35, 0x9a, 0x5d, 0x0b, 0x82, 0xa3, 0xf5, 0x98, + 0x1c, 0xbf, 0x0c, 0xf0, 0x28, 0x37, 0xb4, 0x59, + 0xb6, 0xd7, 0x76, 0xac, 0xfa, 0xb7, 0xda, 0x0d, + 0x79, 0xf4, 0xb3, 0x7b, 0x92, 0x75, 0xcf, 0x4d, + 0x63, 0x12, 0xcc, 0x7c, 0x59, 0x47, 0xf0, 0xb0, + 0x90, 0x28, 0x62, 0xf8, 0xd8, 0xa2, 0x64, 0xfd, + 0x9e, 0xb3, 0xb6, 0x7a, 0xee, 0xc6, 0xab, 0x04, + 0x7b, 0xef, 0xb3, 0x56, 0x8f, 0x96, 0x0f, 0x04, + 0x7b, 0x64, 0x9d, 0xf1, 0x7d, 0x27, 0xbb, 0x47, + 0xf3, 0x5e, 0x13, 0x9c, 0x63, 0x9d, 0xb7, 0x1c, + 0xa8, 0x4e, 0x57, 0xe8, 0xea, 0x5b, 0x99, 0xfa, + 0x31, 0xf2, 0xdf, 0xcd, 0x65, 0xb7, 0x9e, 0x32, + 0xcd, 0x59, 0x6d, 0x03, 0xce, 0xeb, 0x4c, 0xa3, + 0x31, 0x57, 0x91, 0x24, 0xb8, 0xf3, 0xd7, 0x5a, + 0xd9, 0xa7, 0x47, 0xa1, 0xd4, 0x5d, 0x43, 0xd1, + 0x79, 0x75, 0x17, 0x5d, 0xd9, 0x4d, 0xab, 0x37, + 0x6a, 0x0d, 0x9b, 0x0b, 0x4b, 0x7f, 0x8b, 0x88, + 0x4f, 0xa4, 0xf5, 0x9e, 0x9c, 0xad, 0xd6, 0x2e, + 0xb3, 0xfd, 0x00, 0xf5, 0x5e, 0x23, 0xc4, 0x10, + 0xe5, 0xce, 0x51, 0xca, 0x34, 0x79, 0x72, 0x2e, + 0xbf, 0x5f, 0xcd, 0x5b, 0x32, 0x5c, 0xda, 0xd6, + 0xb6, 0xbd, 0x87, 0x98, 0x55, 0x9c, 0xe7, 0xb2, + 0xc6, 0x69, 0x3d, 0x02, 0x73, 0xa1, 0xd3, 0x87, + 0x3e, 0xd2, 0xe4, 0x5d, 0x45, 0x7b, 0xe6, 0xb5, + 0xb6, 0x9d, 0xf1, 0x9b, 0x3c, 0xdc, 0x58, 0xb0, + 0x02, 0xbf, 0xb7, 0xb9, 0xb7, 0x79, 0x68, 0x4c, + 0x68, 0x1c, 0xe0, 0x8f, 0xe8, 0xde, 0xdc, 0x9b, + 0xfc, 0xdd, 0x1b, 0xa5, 0x67, 0x61, 0x59, 0xf1, + 0x97, 0x8d, 0x8f, 0x2f, 0xf5, 0xf6, 0xfb, 0xcd, + 0x38, 0x62, 0x1c, 0xf9, 0xde, 0x29, 0x00, 0xc3, + 0x3e, 0x4f, 0xd0, 0xf4, 0xba, 0xa6, 0x68, 0xa3, + 0xf3, 0x6a, 0xc7, 0xed, 0x7c, 0xee, 0xef, 0xe5, + 0xfd, 0x82, 0xc0, 0x8a, 0x51, 0x6b, 0x2f, 0xe1, + 0x7b, 0xb9, 0x35, 0x52, 0x7b, 0x14, 0x96, 0x6a, + 0xa9, 0xfd, 0x97, 0x09, 0x1b, 0xe8, 0x3c, 0x82, + 0x9b, 0x9a, 0x91, 0xea, 0x97, 0xad, 0x37, 0x69, + 0xd8, 0x79, 0x28, 0x9d, 0x67, 0x6e, 0xf5, 0x57, + 0x6f, 0x64, 0xe7, 0x5e, 0xb6, 0xfc, 0x2c, 0xb8, + 0x6b, 0xfd, 0x1e, 0xe9, 0x3c, 0x3b, 0xaa, 0xb7, + 0x74, 0xa8, 0x5d, 0x1e, 0x93, 0xe5, 0xde, 0x87, + 0x4b, 0xcc, 0x92, 0xc9, 0x38, 0x53, 0x5b, 0xb9, + 0xf3, 0x95, 0xe5, 0x5f, 0xa2, 0x6b, 0x0e, 0xdc, + 0xc6, 0x5d, 0x18, 0xaa, 0xcf, 0x9e, 0x3b, 0x0f, + 0x10, 0x8d, 0x67, 0x17, 0x66, 0x73, 0x1e, 0xa9, + 0xe5, 0x0f, 0xa1, 0xc4, 0xb6, 0x72, 0x03, 0x7f, + 0x49, 0x8a, 0x6a, 0xae, 0x82, 0xd5, 0xd8, 0xab, + 0xb5, 0x3a, 0x08, 0xf5, 0x6f, 0x48, 0x81, 0x2d, + 0xb5, 0x27, 0x0b, 0x50, 0xf5, 0x5e, 0x70, 0xfb, + 0x06, 0x36, 0x25, 0x4f, 0x73, 0x6a, 0x59, 0xd1, + 0xfd, 0x97, 0xe9, 0x7c, 0x7f, 0x9a, 0xeb, 0xfa, + 0x7e, 0x40, 0xd3, 0xdc, 0xe1, 0xb9, 0xe6, 0x86, + 0xe1, 0x71, 0xf4, 0x5e, 0x2e, 0x3f, 0xe7, 0x15, + 0x6f, 0xb1, 0x74, 0x35, 0x4c, 0xac, 0xe7, 0x49, + 0x45, 0x76, 0xfe, 0x03, 0x4f, 0x59, 0xf1, 0xcf, + 0x11, 0x66, 0x9e, 0xc2, 0xe9, 0x8e, 0x13, 0xe8, + 0x36, 0x8b, 0xef, 0x3b, 0xaa, 0xa4, 0x9a, 0x45, + 0x0a, 0xba, 0x35, 0xfa, 0x88, 0x15, 0x1f, 0x54, + 0x16, 0xbd, 0xcb, 0x94, 0xd0, 0xcc, 0xac, 0xb8, + 0x8a, 0x13, 0xae, 0xf0, 0xbc, 0xca, 0x3e, 0xf0, + 0xe4, 0x7d, 0x9d, 0xd3, 0x1d, 0x8f, 0xb5, 0x5d, + 0x57, 0x8b, 0xd1, 0xa9, 0xfc, 0xe3, 0xa9, 0xef, + 0xf9, 0x8f, 0x9e, 0xf4, 0x25, 0x34, 0x6d, 0x1c, + 0xaf, 0xb9, 0xd0, 0xe0, 0xb3, 0xbc, 0xd5, 0x5a, + 0xef, 0x0a, 0xde, 0x1c, 0xb9, 0x17, 0xb1, 0xf1, + 0x9a, 0xef, 0x77, 0x47, 0xb0, 0xf9, 0x1f, 0x52, + 0x71, 0xac, 0xef, 0x1b, 0x2d, 0x6a, 0x60, 0xbb, + 0xfc, 0xbd, 0x62, 0x55, 0x5a, 0x15, 0xbe, 0x86, + 0xff, 0x00, 0xce, 0xd8, 0xd5, 0x73, 0xf5, 0x84, + 0x12, 0xcc, 0xf6, 0xf9, 0xe6, 0x8e, 0x9f, 0xc3, + 0xd8, 0xe7, 0xaf, 0xb1, 0xb4, 0xbb, 0x17, 0xf9, + 0x69, 0xbf, 0x45, 0x56, 0x3c, 0x55, 0x0b, 0x86, + 0x5f, 0x2d, 0x6a, 0xbd, 0x01, 0x93, 0x9c, 0xec, + 0x63, 0xd5, 0x5d, 0xe4, 0x57, 0x7f, 0x61, 0x97, + 0x56, 0xde, 0xdf, 0xb1, 0xe3, 0x5d, 0xb6, 0x29, + 0xb6, 0xd5, 0xb5, 0xa9, 0xa0, 0xb9, 0x82, 0x6d, + 0xd2, 0x74, 0x0c, 0x5b, 0x95, 0xfd, 0x75, 0xfc, + 0x5f, 0x76, 0x46, 0x15, 0x0c, 0x73, 0x7a, 0x8e, + 0xc9, 0x9a, 0x89, 0x5a, 0x1d, 0x9a, 0x3f, 0x77, + 0xad, 0x91, 0x40, 0x3d, 0x47, 0x61, 0x76, 0x43, + 0xcf, 0x33, 0x5b, 0xf2, 0x14, 0xaf, 0x51, 0xc6, + 0x31, 0xef, 0x79, 0xf7, 0xea, 0x77, 0x3d, 0x6e, + 0x6f, 0xd5, 0xb7, 0xf8, 0xdb, 0xcf, 0xfa, 0xdb, + 0xec, 0x39, 0xaf, 0x1e, 0xe4, 0x36, 0x6d, 0xdf, + 0x75, 0x6f, 0x6b, 0x2a, 0xbf, 0x43, 0x95, 0x45, + 0x2d, 0x97, 0x27, 0x35, 0x74, 0xd9, 0xf2, 0x50, + 0xc8, 0x2e, 0x22, 0xda, 0xbb, 0x51, 0x47, 0x3c, + 0x1b, 0x62, 0x69, 0x39, 0x4d, 0x60, 0xef, 0x73, + 0xcd, 0xb1, 0xb1, 0xa8, 0xe6, 0xa0, 0xb7, 0xba, + 0x89, 0x5e, 0xae, 0xd5, 0xc7, 0x6d, 0xca, 0x87, + 0x9e, 0x48, 0xd8, 0x72, 0xd5, 0x6d, 0xa7, 0x2d, + 0x51, 0x5c, 0xf9, 0x4f, 0xea, 0xf2, 0x07, 0xcd, + 0x58, 0xc9, 0xc8, 0x75, 0x76, 0x3c, 0x93, 0xb4, + 0xe7, 0x5a, 0xb6, 0xfc, 0x33, 0x45, 0xef, 0x5d, + 0x33, 0x06, 0x05, 0x49, 0x5e, 0xdb, 0x16, 0xf9, + 0x66, 0xb3, 0xec, 0xf4, 0x80, 0x41, 0xbe, 0xd4, + 0xae, 0x50, 0x25, 0x60, 0xd5, 0xbc, 0x9f, 0x3a, + 0xb6, 0x17, 0xb7, 0x68, 0x6f, 0xf3, 0xcc, 0xfa, + 0xb2, 0xd5, 0xa5, 0xd4, 0x0c, 0xd8, 0xe8, 0x3d, + 0xde, 0x1e, 0x2a, 0xf5, 0x63, 0xbb, 0x1a, 0xa3, + 0x4f, 0x5f, 0x3a, 0x92, 0xbb, 0xf4, 0x1b, 0x7d, + 0xe4, 0xfc, 0xd5, 0xa7, 0x7d, 0xf3, 0x23, 0x9f, + 0xf4, 0xea, 0x63, 0x4e, 0xfa, 0x3f, 0x96, 0xe3, + 0x1e, 0x8f, 0x41, 0xd1, 0xbb, 0x9c, 0x6b, 0xa4, + 0xba, 0x54, 0xe5, 0x3f, 0x72, 0x96, 0x13, 0x31, + 0x6d, 0x64, 0x36, 0x7a, 0xc3, 0xb8, 0x9d, 0xa6, + 0xd1, 0x9c, 0xc5, 0x84, 0x92, 0x1d, 0xf6, 0xb8, + 0xad, 0x9e, 0x64, 0xae, 0x93, 0x4d, 0xaf, 0x25, + 0x96, 0xa2, 0x39, 0xaf, 0x70, 0x84, 0xda, 0x55, + 0x7e, 0x36, 0x91, 0xa8, 0xdb, 0xee, 0x5c, 0xed, + 0xc3, 0x6b, 0xcc, 0x7d, 0xbe, 0xeb, 0x3c, 0x6f, + 0x9f, 0x74, 0xed, 0x78, 0x17, 0x94, 0xf5, 0xb6, + 0x60, 0x45, 0xb5, 0x70, 0x7a, 0x3c, 0x5c, 0x21, + 0x99, 0x30, 0xd2, 0x40, 0xbc, 0x70, 0xf1, 0xe2, + 0x8e, 0x46, 0x19, 0x6d, 0x80, 0x2b, 0x33, 0x1c, + 0xfc, 0xc2, 0x45, 0x0c, 0x36, 0x58, 0xae, 0xb0, + 0x4e, 0x58, 0x49, 0xcb, 0x25, 0xdb, 0x74, 0xc6, + 0x02, 0x26, 0x5f, 0x5e, 0x7b, 0x7f, 0x17, 0xe7, + 0xb4, 0x6a, 0x3d, 0x84, 0xa0, 0x2c, 0xc5, 0xd0, + 0xbb, 0x64, 0x20, 0x80, 0x20, 0x08, 0x68, 0x80, + 0x24, 0x08, 0x41, 0x20, 0x40, 0x10, 0xd9, 0x22, + 0x21, 0x04, 0x81, 0x23, 0x20, 0x44, 0x81, 0x20, + 0x48, 0x14, 0x1c, 0x78, 0x3f, 0x05, 0xb0, 0x2c, + 0xc5, 0xc0, 0x84, 0x10, 0x04, 0x30, 0x81, 0x92, + 0x91, 0x20, 0x48, 0x10, 0x04, 0xb0, 0x84, 0x12, + 0xc2, 0x50, 0x48, 0x12, 0x04, 0x01, 0x20, 0x48, + 0xc9, 0x11, 0x20, 0x40, 0x12, 0x1c, 0x6a, 0x1a, + 0x82, 0x80, 0xb8, 0xc8, 0x11, 0x20, 0x40, 0x12, + 0x32, 0x40, 0x91, 0x10, 0x32, 0x44, 0x40, 0x12, + 0xc2, 0x90, 0x48, 0x10, 0x32, 0x5a, 0x25, 0x04, + 0x8c, 0x81, 0x12, 0xc2, 0x53, 0x24, 0x09, 0x11, + 0x03, 0xe3, 0x16, 0x93, 0x05, 0xc0, 0x94, 0x12, + 0x32, 0x44, 0x40, 0x12, 0x04, 0x81, 0x20, 0x48, + 0x12, 0x04, 0x01, 0x20, 0x48, 0x12, 0x04, 0x81, + 0x20, 0x43, 0x09, 0x4c, 0x91, 0x12, 0x04, 0x81, + 0x0d, 0x94, 0x22, 0x11, 0xc6, 0xa3, 0xd0, 0x4a, + 0x8d, 0x70, 0x5d, 0x85, 0x24, 0x48, 0xc9, 0x02, + 0x58, 0x40, 0x89, 0x41, 0x20, 0x48, 0x10, 0xc2, + 0x86, 0x4a, 0x44, 0x36, 0x4a, 0x44, 0x30, 0xa4, + 0xc9, 0x11, 0x03, 0x24, 0x44, 0x0c, 0x96, 0x89, + 0x0f, 0xff, 0xc4, 0x00, 0x2a, 0x10, 0x00, 0x01, + 0x04, 0x03, 0x01, 0x00, 0x00, 0x06, 0x02, 0x02, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, + 0x01, 0x03, 0x04, 0x02, 0x06, 0x11, 0x07, 0x10, + 0x12, 0x13, 0x14, 0x15, 0x17, 0x20, 0x36, 0x16, + 0x26, 0x21, 0x25, 0x30, 0x35, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x01, 0x00, 0x01, 0x05, 0x02, 0xea, + 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, + 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, + 0xea, 0xef, 0xfe, 0x1d, 0x5d, 0x5d, 0x5d, 0x5d, + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, + 0x5d, 0x5d, 0x5d, 0x5d, 0x4c, 0xe9, 0x9d, 0x77, + 0xf9, 0xf5, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, + 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, + 0x75, 0x33, 0xa6, 0x4c, 0xff, 0x00, 0x0e, 0xff, + 0x00, 0x2e, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, + 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, + 0xae, 0xae, 0xa6, 0x75, 0xd4, 0xce, 0x99, 0x33, + 0xff, 0x00, 0x1e, 0xae, 0xae, 0xae, 0xae, 0xae, + 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xae, 0xa6, + 0x4c, 0xeb, 0xab, 0xa9, 0x9d, 0x32, 0xea, 0x6f, + 0x83, 0x7f, 0x02, 0x9b, 0x00, 0xd1, 0x09, 0xfd, + 0x08, 0x13, 0x2f, 0xd8, 0x80, 0x15, 0xaf, 0x4f, + 0xd6, 0xe9, 0x37, 0xed, 0xfd, 0x3d, 0x7e, 0xe2, + 0xd3, 0x99, 0x47, 0xeb, 0xfa, 0x94, 0xaa, 0x9f, + 0xb0, 0xe9, 0xf7, 0x6d, 0xd7, 0xf5, 0x8d, 0x46, + 0xca, 0xc3, 0xd5, 0xf5, 0x2c, 0x95, 0x5f, 0x53, + 0xd5, 0x6e, 0x3b, 0xfa, 0xb6, 0xa7, 0x1b, 0x7e, + 0xec, 0xd1, 0xd7, 0xed, 0x9d, 0x6b, 0xe6, 0x9b, + 0xdd, 0xb4, 0x6a, 0xd2, 0xfe, 0xfd, 0xd0, 0x16, + 0x1e, 0xe1, 0xa2, 0x3c, 0x75, 0x7d, 0x8f, 0x54, + 0xb9, 0x66, 0x4f, 0x59, 0xd7, 0x21, 0x92, 0xf7, + 0xb7, 0xea, 0x43, 0x31, 0xcb, 0xd9, 0x35, 0x18, + 0xa2, 0xfd, 0xe1, 0xa1, 0xf2, 0x3f, 0x65, 0xd3, + 0x24, 0xc2, 0x2f, 0x68, 0xd2, 0x26, 0x6a, 0xfe, + 0xb9, 0xa7, 0xdb, 0xce, 0x19, 0xa3, 0xb1, 0x1f, + 0xa0, 0x65, 0xff, 0x00, 0x6b, 0x23, 0xbf, 0xc3, + 0x62, 0x31, 0x68, 0x69, 0x3b, 0x36, 0x6d, 0xd4, + 0x50, 0x12, 0x7a, 0x23, 0x69, 0x7e, 0x74, 0x25, + 0xe8, 0xef, 0xd8, 0x9f, 0x62, 0xc6, 0xdf, 0x66, + 0x8b, 0xef, 0x23, 0x76, 0xae, 0x54, 0x72, 0x86, + 0x79, 0x1f, 0x33, 0x31, 0x4e, 0x1f, 0x28, 0x4c, + 0x08, 0xcd, 0xec, 0x5b, 0x96, 0xe2, 0x91, 0xa0, + 0x89, 0xf5, 0x32, 0xda, 0x95, 0x2b, 0x96, 0x27, + 0x96, 0xb4, 0xf2, 0xec, 0x56, 0xec, 0x52, 0xc3, + 0x09, 0x66, 0xce, 0x6a, 0x77, 0x22, 0x9b, 0x3f, + 0xba, 0x6c, 0x07, 0xc5, 0x66, 0xcc, 0xdf, 0x8f, + 0xb3, 0x1c, 0x83, 0xa9, 0x5a, 0x5a, 0x57, 0x5f, + 0x5f, 0xf4, 0x0f, 0xfe, 0xa6, 0x69, 0xbe, 0x56, + 0x7f, 0x4c, 0xca, 0x26, 0xcc, 0x1b, 0xe7, 0x67, + 0x3a, 0x72, 0xcf, 0x3e, 0xbe, 0x6b, 0x2b, 0x59, + 0x66, 0x44, 0x9e, 0x75, 0xf6, 0xf8, 0x09, 0xcd, + 0xf7, 0xcc, 0x4c, 0x9d, 0x59, 0x66, 0x30, 0x73, + 0x0c, 0xab, 0x17, 0x35, 0x2e, 0x65, 0x29, 0x46, + 0x5f, 0x18, 0xf5, 0x61, 0x09, 0xf2, 0xab, 0x5e, + 0x59, 0xe7, 0xc5, 0xe6, 0x88, 0xb9, 0x21, 0xf3, + 0xc1, 0x52, 0x46, 0x80, 0x3d, 0x03, 0x45, 0x11, + 0x19, 0xb6, 0x0d, 0x7e, 0x90, 0xf3, 0x04, 0xbf, + 0x27, 0xba, 0x92, 0xb5, 0x46, 0x19, 0xb6, 0x72, + 0xd4, 0x1c, 0x95, 0xf9, 0x49, 0x81, 0xd3, 0x35, + 0x16, 0x20, 0x3f, 0x56, 0x78, 0xaa, 0x8e, 0xdf, + 0xf8, 0xe5, 0x73, 0x5f, 0xf2, 0xb7, 0xe0, 0xc4, + 0xaf, 0xde, 0x93, 0x59, 0xa3, 0x88, 0x2b, 0x36, + 0x23, 0x83, 0x5d, 0x88, 0x89, 0x08, 0x95, 0xba, + 0xe2, 0x8d, 0x10, 0x16, 0x36, 0x90, 0xcc, 0x32, + 0x80, 0x54, 0xb9, 0x07, 0xa5, 0x54, 0xe0, 0xfa, + 0xc3, 0x49, 0x58, 0xca, 0xc6, 0xc8, 0x6b, 0x19, + 0x35, 0xfb, 0xb8, 0xde, 0x1a, 0x5f, 0x9f, 0x21, + 0x3f, 0xb8, 0xbb, 0x4b, 0x5f, 0xd7, 0x4e, 0xe5, + 0x5f, 0xea, 0x91, 0x99, 0xa9, 0x16, 0xb4, 0x0e, + 0x91, 0x5b, 0x95, 0x48, 0x0d, 0xd6, 0x84, 0xe7, + 0xb1, 0xc9, 0x46, 0xb5, 0x4b, 0x82, 0x48, 0x93, + 0xf9, 0x2e, 0xdb, 0x92, 0x4b, 0xe1, 0x7c, 0xf0, + 0x97, 0xd3, 0x0a, 0x0f, 0x3c, 0x32, 0xd9, 0x3d, + 0x0e, 0x9d, 0x09, 0xb5, 0x8b, 0xfa, 0x85, 0xd2, + 0x0b, 0x61, 0x0e, 0x64, 0x16, 0x3a, 0x41, 0x4b, + 0x85, 0x55, 0x6d, 0x4a, 0x48, 0x69, 0x19, 0x6a, + 0x77, 0xc8, 0xe4, 0x22, 0x77, 0xad, 0x1e, 0x10, + 0x0c, 0x7a, 0x14, 0x2b, 0x51, 0x5b, 0x2e, 0xcd, + 0x6b, 0x63, 0xb7, 0x05, 0xc9, 0x83, 0xdc, 0xa5, + 0xb0, 0x4c, 0x70, 0x78, 0xb0, 0x70, 0x91, 0xa3, + 0x15, 0xda, 0xc2, 0x28, 0x54, 0x36, 0xc6, 0x23, + 0xc8, 0x65, 0x32, 0x16, 0xac, 0xcf, 0xf6, 0x34, + 0x85, 0xdb, 0x96, 0x7c, 0x2e, 0x82, 0x28, 0x3a, + 0xbe, 0x51, 0x4d, 0x04, 0xa2, 0xb3, 0x98, 0x6e, + 0x16, 0x0d, 0x85, 0x79, 0xe6, 0xdc, 0x07, 0xce, + 0xc3, 0x73, 0x2d, 0x4e, 0x16, 0x84, 0x35, 0x72, + 0x3a, 0x30, 0xca, 0x95, 0xc4, 0xfa, 0x4c, 0x38, + 0xd9, 0xd2, 0x34, 0x7d, 0xc0, 0x7e, 0x8a, 0x37, + 0xd1, 0xf2, 0xa7, 0xbc, 0x91, 0xf3, 0xe0, 0x70, + 0xc1, 0x7b, 0x66, 0xf5, 0x10, 0xbb, 0x18, 0x7c, + 0xf5, 0xab, 0xee, 0xff, 0x00, 0x4a, 0x0a, 0xf4, + 0xad, 0x6b, 0xd6, 0x6f, 0xd6, 0xda, 0xe0, 0x2f, + 0xf8, 0xda, 0x58, 0xe5, 0x8e, 0x13, 0xe1, 0x1f, + 0xd1, 0x03, 0x19, 0x57, 0x26, 0x1e, 0xf5, 0xaf, + 0xac, 0x62, 0x03, 0x3f, 0x73, 0x14, 0x57, 0xea, + 0x90, 0x19, 0x56, 0x1a, 0xd3, 0x46, 0x27, 0xe9, + 0xbb, 0x08, 0x93, 0xed, 0xa8, 0x14, 0xbe, 0xf2, + 0x64, 0x5c, 0xd9, 0x2a, 0x61, 0xc2, 0x67, 0x4c, + 0x95, 0x9c, 0x32, 0xcc, 0xb4, 0xb2, 0xfd, 0x57, + 0x93, 0xee, 0xa9, 0x99, 0x01, 0xa8, 0x14, 0xcc, + 0x46, 0x9f, 0xfd, 0x78, 0xd1, 0x3a, 0x22, 0xc7, + 0xfa, 0xc0, 0x5c, 0xeb, 0xd1, 0x0a, 0x20, 0x24, + 0xc4, 0x31, 0xd5, 0xa1, 0xae, 0x5a, 0xdc, 0x46, + 0x24, 0xb0, 0xd1, 0x16, 0xcc, 0xa4, 0x35, 0xe6, + 0x9f, 0x01, 0x19, 0x6c, 0x76, 0x6a, 0x44, 0x2e, + 0xc4, 0x50, 0x6d, 0x1a, 0xcc, 0xe1, 0x32, 0xa5, + 0x46, 0xe9, 0x3b, 0x01, 0x82, 0xd6, 0xab, 0x5c, + 0xee, 0xb3, 0x8c, 0x17, 0x3f, 0x30, 0x6e, 0x35, + 0x24, 0xf3, 0x5b, 0xc6, 0x17, 0x2b, 0x23, 0x65, + 0x53, 0x1b, 0x18, 0xc3, 0x5d, 0x99, 0xe4, 0xa3, + 0x96, 0x36, 0x20, 0x83, 0x09, 0xdb, 0x03, 0x25, + 0x84, 0xc3, 0x5f, 0x52, 0xb0, 0x4e, 0x22, 0x5a, + 0xf4, 0x82, 0x6b, 0x81, 0xf4, 0x29, 0xec, 0x59, + 0x13, 0xeb, 0x39, 0xdc, 0x31, 0xa8, 0x7f, 0x5e, + 0x38, 0xf5, 0x7f, 0x15, 0xe9, 0xbb, 0x40, 0x03, + 0x94, 0x85, 0x8d, 0xc2, 0xa2, 0x2f, 0x56, 0xfd, + 0x7c, 0xc8, 0x98, 0x80, 0xab, 0x55, 0x15, 0x72, + 0xc4, 0x22, 0xef, 0xec, 0x51, 0xdf, 0x94, 0x89, + 0xd8, 0x1b, 0x0b, 0x04, 0x6a, 0x41, 0x04, 0x05, + 0x69, 0xd6, 0xa1, 0x9c, 0x63, 0x21, 0xc2, 0x10, + 0xf4, 0xe1, 0xa3, 0xb1, 0x4d, 0xf5, 0x67, 0x33, + 0x6e, 0x55, 0x64, 0x9c, 0xd3, 0xc7, 0x1d, 0x36, + 0x7b, 0x92, 0x0c, 0xc2, 0xcc, 0x31, 0xd5, 0xf9, + 0x1e, 0x48, 0x31, 0x82, 0x58, 0xe3, 0xc2, 0xe1, + 0x19, 0x69, 0x30, 0xfb, 0x55, 0xdb, 0x53, 0xa7, + 0x09, 0xb9, 0x72, 0xd8, 0xd8, 0x20, 0xb1, 0xd0, + 0x5c, 0xd4, 0xb5, 0xa9, 0x31, 0xd8, 0x34, 0xf7, + 0xff, 0x00, 0x5e, 0xd9, 0x60, 0x82, 0xd8, 0x3a, + 0x1a, 0xdc, 0x7f, 0x9f, 0x8a, 0xbe, 0x57, 0xe9, + 0x3c, 0x12, 0x44, 0x13, 0x57, 0x9c, 0x0f, 0xdc, + 0xec, 0x79, 0x0b, 0xca, 0xd6, 0x33, 0x47, 0x1e, + 0x58, 0x60, 0x47, 0x39, 0xe0, 0xbf, 0x58, 0x85, + 0xcf, 0xf1, 0x98, 0x32, 0xc6, 0xf8, 0xac, 0xab, + 0x65, 0x30, 0xd7, 0x8e, 0xd1, 0xfd, 0x54, 0xa8, + 0x56, 0x1e, 0x24, 0xf1, 0x45, 0x1c, 0x3a, 0xd6, + 0x76, 0x6a, 0x8c, 0x1c, 0x04, 0x38, 0x9a, 0x2f, + 0xb2, 0x0d, 0xc3, 0xe7, 0xc6, 0x3c, 0x68, 0x5c, + 0xad, 0x3b, 0x63, 0x24, 0xd7, 0xa7, 0x8e, 0xe5, + 0xe5, 0x2d, 0x6b, 0x4a, 0x20, 0x84, 0x4b, 0x54, + 0x15, 0x95, 0x39, 0x22, 0xd4, 0xc9, 0xdb, 0xcf, + 0x70, 0xd3, 0x5f, 0xfd, 0x7b, 0x67, 0x6f, 0x9f, + 0x5f, 0x35, 0xea, 0x9a, 0xd1, 0x4d, 0x4b, 0xc9, + 0x76, 0x1a, 0x3a, 0x51, 0x3f, 0x4b, 0xda, 0x07, + 0x6f, 0x36, 0x43, 0x4b, 0x6a, 0x14, 0x18, 0x44, + 0xa7, 0x86, 0xc9, 0xa6, 0xd9, 0xb2, 0xc2, 0xc6, + 0x5f, 0xaa, 0x70, 0x65, 0x49, 0xfe, 0xa0, 0xbb, + 0x67, 0x33, 0x8a, 0xdc, 0x99, 0x64, 0xab, 0x41, + 0x06, 0x6b, 0x29, 0xe2, 0x2d, 0x91, 0x1d, 0x86, + 0x9d, 0x8c, 0x47, 0x61, 0x9c, 0x70, 0xd3, 0xd8, + 0x88, 0xb1, 0x6d, 0x64, 0x55, 0xb2, 0x97, 0x6f, + 0xea, 0x9b, 0x18, 0x8b, 0x39, 0xea, 0xfb, 0x04, + 0x0f, 0x7e, 0x22, 0x14, 0x6e, 0x5b, 0xa9, 0x35, + 0xf8, 0xad, 0x52, 0xa9, 0x92, 0x83, 0x08, 0xe0, + 0xac, 0xf4, 0xc6, 0x57, 0x8c, 0x38, 0xe1, 0x4c, + 0x4b, 0x4c, 0xfe, 0xbd, 0xb1, 0xb4, 0xd9, 0x84, + 0x9b, 0x58, 0xa1, 0x5c, 0xbd, 0x31, 0xb6, 0xf0, + 0xc5, 0xc3, 0x97, 0xa9, 0x07, 0xf8, 0xd9, 0x57, + 0x40, 0x47, 0xe0, 0x3a, 0x0a, 0x94, 0xe6, 0x8a, + 0x58, 0xe9, 0x15, 0xc6, 0xcc, 0x23, 0x6e, 0x33, + 0xe0, 0x34, 0xb7, 0xd7, 0xfc, 0x39, 0xab, 0x35, + 0x62, 0x14, 0x46, 0x59, 0x01, 0xd2, 0xb1, 0x1e, + 0x35, 0xaa, 0xe0, 0x23, 0x29, 0x87, 0xd8, 0x37, + 0x1c, 0x3a, 0xcc, 0x4a, 0x81, 0x73, 0x00, 0x32, + 0x21, 0xb2, 0x94, 0x34, 0x5f, 0x12, 0x63, 0xd5, + 0xda, 0x9a, 0xd5, 0x8b, 0xb2, 0xe0, 0x05, 0x9c, + 0xad, 0x6b, 0x78, 0xd9, 0xc6, 0x89, 0x39, 0x71, + 0x8c, 0x65, 0xfa, 0xd7, 0x29, 0x0e, 0xab, 0x29, + 0x5d, 0x2f, 0xfa, 0xf1, 0x4a, 0xbf, 0x7c, 0x3e, + 0xe7, 0x9c, 0x5f, 0x7b, 0x3f, 0xae, 0x09, 0xf7, + 0x1f, 0x36, 0x2a, 0x9b, 0xce, 0x4b, 0xb3, 0xc5, + 0xe6, 0xc5, 0xf1, 0x7f, 0xd7, 0x45, 0x1b, 0x3c, + 0x3c, 0xf0, 0xdf, 0xcf, 0x5f, 0xce, 0x0c, 0xc4, + 0xf8, 0x79, 0xd9, 0xcf, 0xab, 0x1f, 0x9d, 0x1f, + 0xfa, 0x95, 0x7c, 0xd0, 0xe4, 0x2f, 0x5f, 0xcd, + 0x4f, 0x44, 0xb1, 0xf3, 0x63, 0x78, 0x4b, 0x5f, + 0xcd, 0x76, 0x18, 0x94, 0x3e, 0x71, 0xb1, 0x46, + 0xa1, 0xf3, 0x9d, 0x8e, 0x35, 0x1f, 0x9d, 0x6c, + 0x58, 0x2c, 0x3c, 0xef, 0x62, 0x5f, 0xaf, 0xb6, + 0x47, 0x8f, 0xf5, 0xb6, 0xc4, 0xb1, 0xf3, 0x8d, + 0x89, 0x9d, 0xfc, 0xe3, 0x63, 0x77, 0x97, 0x41, + 0xd9, 0x32, 0xac, 0x37, 0xcf, 0x36, 0x58, 0x08, + 0xeb, 0x91, 0x67, 0x08, 0xbe, 0xfc, 0x59, 0x32, + 0x64, 0xc9, 0x93, 0x26, 0x4c, 0x99, 0x32, 0x64, + 0xc9, 0x99, 0x93, 0x33, 0x26, 0x66, 0x4c, 0xcc, + 0x99, 0xb1, 0x4c, 0xcc, 0x99, 0x99, 0x33, 0x32, + 0x66, 0x64, 0xcc, 0xc9, 0x97, 0x57, 0x57, 0x53, + 0x26, 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, + 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, 0x4c, + 0x99, 0x32, 0x64, 0xdf, 0x0e, 0xa6, 0x4c, 0x99, + 0x32, 0x64, 0xc9, 0x93, 0x26, 0x4c, 0x99, 0x32, + 0x64, 0xc9, 0x93, 0x26, 0x4c, 0x99, 0x32, 0x64, + 0xc9, 0x93, 0x27, 0xf8, 0x32, 0x64, 0xc9, 0x93, + 0x26, 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, + 0x4c, 0x99, 0x32, 0x64, 0xc9, 0x93, 0x26, 0x4c, + 0x99, 0x3f, 0xc1, 0x93, 0x26, 0x4c, 0x99, 0x32, + 0x64, 0xc9, 0x93, 0x26, 0x4c, 0x99, 0x37, 0xc5, + 0x93, 0x26, 0x4c, 0x99, 0x32, 0x6f, 0x87, 0xff, + 0xc4, 0x00, 0x4b, 0x11, 0x00, 0x02, 0x02, 0x01, + 0x03, 0x03, 0x03, 0x02, 0x02, 0x06, 0x03, 0x0c, + 0x06, 0x0b, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, + 0x11, 0x05, 0x12, 0x13, 0x00, 0x06, 0x21, 0x14, + 0x22, 0x31, 0x23, 0x41, 0x15, 0x32, 0x07, 0x24, + 0x33, 0x42, 0x51, 0x61, 0x34, 0x71, 0x81, 0x16, + 0x17, 0x25, 0x35, 0x43, 0x52, 0x53, 0x63, 0x91, + 0x95, 0xd1, 0xf0, 0x10, 0x44, 0x62, 0xa1, 0xd4, + 0xf1, 0x26, 0x30, 0x55, 0x60, 0x70, 0x72, 0x92, + 0x94, 0xb1, 0xc1, 0xd3, 0xff, 0xda, 0x00, 0x08, + 0x01, 0x03, 0x01, 0x01, 0x3f, 0x01, 0xff, 0x00, + 0xe0, 0x14, 0x10, 0xac, 0xd2, 0x04, 0x7b, 0x10, + 0x56, 0x52, 0x09, 0xe5, 0xb1, 0xcb, 0xc6, 0xb8, + 0x07, 0xc3, 0x08, 0x22, 0x9e, 0x5c, 0xb7, 0xc0, + 0xc4, 0x67, 0xcf, 0xce, 0x07, 0x9e, 0xbf, 0x0d, + 0x87, 0xff, 0x00, 0x6b, 0xe9, 0x87, 0xfd, 0xe3, + 0xff, 0x00, 0xef, 0x4f, 0x1d, 0x26, 0x95, 0x0b, + 0xb0, 0x5f, 0xc6, 0x74, 0x98, 0xf3, 0xfb, 0xd2, + 0x1d, 0x45, 0x50, 0x7f, 0x5b, 0x7e, 0x1c, 0x40, + 0xfe, 0xdf, 0x1d, 0x68, 0x5f, 0xa2, 0x7e, 0xe2, + 0xee, 0x6a, 0xf2, 0xda, 0xd0, 0xae, 0x68, 0x5a, + 0x94, 0x10, 0x4b, 0xc1, 0x34, 0x90, 0xdf, 0x94, + 0x08, 0xe6, 0xd8, 0xaf, 0xc6, 0xc2, 0x5a, 0x88, + 0xdb, 0xb6, 0x3a, 0xb0, 0xf1, 0x8c, 0x1f, 0x9e, + 0xbf, 0xbc, 0x0f, 0xe9, 0x03, 0xfd, 0x1e, 0x8f, + 0xfe, 0xf1, 0x3f, 0xf8, 0x7e, 0xbf, 0xbc, 0x07, + 0xe9, 0x03, 0xfc, 0xcd, 0x1f, 0xfd, 0xe2, 0xdf, + 0xf8, 0x7e, 0xae, 0xfe, 0x84, 0x7b, 0xd3, 0x4f, + 0x8f, 0x96, 0xe3, 0xe8, 0x70, 0x26, 0x1c, 0xe6, + 0x4d, 0x55, 0x53, 0x3c, 0x6a, 0x5d, 0xf6, 0xef, + 0x85, 0x77, 0x61, 0x41, 0x27, 0x1f, 0x6e, 0xae, + 0xf6, 0x2e, 0xb5, 0x46, 0xb9, 0xb5, 0x33, 0xe9, + 0xe6, 0x1d, 0xe2, 0x30, 0xf0, 0xda, 0x32, 0xee, + 0x72, 0xc5, 0x02, 0x8d, 0x91, 0x7c, 0xee, 0x04, + 0x12, 0x70, 0x06, 0x0e, 0x48, 0xea, 0x6e, 0xd4, + 0xd4, 0x60, 0x16, 0x8b, 0xcb, 0x4c, 0xfa, 0x49, + 0x22, 0x86, 0x5d, 0xb3, 0x48, 0x73, 0x34, 0xc7, + 0xd9, 0x1c, 0x7f, 0x44, 0x07, 0x3e, 0x3d, 0xcc, + 0x0e, 0xc5, 0xfb, 0xbf, 0xcf, 0x52, 0x76, 0xb6, + 0xa3, 0x1f, 0xab, 0xfa, 0x94, 0xd8, 0xd3, 0x96, + 0x38, 0x25, 0xdb, 0x33, 0xf9, 0xb1, 0x2e, 0x71, + 0x0a, 0x66, 0x15, 0x0c, 0xc3, 0x1e, 0xe6, 0xf1, + 0x10, 0xff, 0x00, 0x49, 0xd4, 0xdd, 0xb3, 0x7e, + 0x01, 0x61, 0x9e, 0x5a, 0x78, 0xad, 0x34, 0x55, + 0x9f, 0x13, 0x3f, 0x9b, 0x33, 0x16, 0x0b, 0x5d, + 0x33, 0x10, 0xcb, 0x82, 0xa7, 0x73, 0x1d, 0xb0, + 0x8f, 0xf4, 0xa7, 0xa3, 0xda, 0xda, 0x80, 0x36, + 0xc0, 0x96, 0x9b, 0x9a, 0x72, 0xad, 0x79, 0x76, + 0xcd, 0x27, 0x9b, 0x4d, 0x9f, 0xd5, 0xe3, 0xdf, + 0x0a, 0x06, 0x91, 0x71, 0xee, 0x6f, 0x10, 0x8f, + 0xb4, 0xa7, 0xaa, 0xfd, 0x85, 0xae, 0xd9, 0xf5, + 0x8d, 0x11, 0xa3, 0xc7, 0x41, 0x77, 0x59, 0x95, + 0xad, 0x6d, 0x8d, 0x76, 0x87, 0x69, 0x15, 0x73, + 0x1f, 0x24, 0x8d, 0x18, 0x43, 0xbb, 0x62, 0x32, + 0xe7, 0xc2, 0x96, 0x3e, 0x3a, 0x1d, 0x97, 0xa9, + 0x34, 0x22, 0x74, 0xb3, 0xa7, 0xbc, 0x46, 0x4e, + 0x2d, 0xcb, 0x25, 0xa3, 0xef, 0x05, 0x41, 0x05, + 0x7d, 0x26, 0xf0, 0x32, 0xeb, 0xe4, 0xae, 0x0f, + 0xdb, 0x38, 0x38, 0x8f, 0xf4, 0x6d, 0xdc, 0x52, + 0xc6, 0xb2, 0x46, 0xda, 0x73, 0x24, 0x8a, 0x19, + 0x4f, 0xaa, 0x61, 0x90, 0xc3, 0x23, 0x20, 0xc2, + 0x18, 0x1c, 0x63, 0xc3, 0x00, 0xc3, 0xe0, 0x80, + 0x7a, 0xfe, 0xf6, 0x7d, 0xc9, 0xe7, 0xce, 0x9d, + 0xff, 0x00, 0xdd, 0x9f, 0xff, 0x00, 0x8f, 0x4d, + 0xfa, 0x3d, 0xee, 0x2d, 0xec, 0x91, 0xc7, 0x56, + 0xc3, 0x47, 0xe2, 0x4e, 0x09, 0xf7, 0x2c, 0x67, + 0xc1, 0xc3, 0x3b, 0xa2, 0x26, 0xfc, 0x10, 0x78, + 0xd5, 0x9a, 0x5c, 0x63, 0xd9, 0xf1, 0x99, 0xfb, + 0x27, 0x55, 0xab, 0x0a, 0xcf, 0x3c, 0xf4, 0x52, + 0x37, 0x93, 0x84, 0x7d, 0x4b, 0x2c, 0xeb, 0x28, + 0xf9, 0x47, 0x89, 0x6a, 0x19, 0x63, 0x61, 0xfe, + 0xb1, 0x17, 0xc1, 0x04, 0x64, 0x11, 0xd2, 0xf6, + 0xad, 0xd6, 0x8d, 0xe5, 0x16, 0x6a, 0x04, 0x49, + 0x0c, 0x4d, 0xb9, 0x35, 0x14, 0x6d, 0xe2, 0x36, + 0x94, 0xe1, 0x1a, 0x80, 0x90, 0x8d, 0x88, 0xc7, + 0x78, 0x5d, 0x9e, 0x31, 0xbb, 0x76, 0x07, 0x50, + 0xf6, 0x1e, 0xb1, 0x62, 0x49, 0x61, 0x86, 0x7d, + 0x3a, 0x49, 0x20, 0x0a, 0x65, 0x4e, 0x79, 0x90, + 0xa0, 0x6d, 0xc1, 0x77, 0x09, 0x2b, 0x27, 0xdd, + 0x5b, 0xfd, 0x9d, 0x1e, 0xd8, 0xbc, 0x24, 0x68, + 0xc4, 0xd5, 0x5b, 0x6c, 0xcf, 0x5b, 0x90, 0x3c, + 0xdc, 0x66, 0xd2, 0x67, 0x35, 0x94, 0xb4, 0x2a, + 0x4b, 0xf8, 0x3e, 0xed, 0xbc, 0x3f, 0x1f, 0x53, + 0xc8, 0xe8, 0xf6, 0xd6, 0xa2, 0x3e, 0x78, 0x87, + 0x93, 0x19, 0xf3, 0x2e, 0x39, 0xc7, 0xfd, 0x5c, + 0x11, 0x17, 0xba, 0x4f, 0x1f, 0x99, 0x73, 0x0f, + 0xfa, 0xdf, 0x3d, 0x1d, 0x02, 0xe2, 0xb2, 0xab, + 0x3c, 0x23, 0x74, 0x8d, 0x01, 0x20, 0x4e, 0xca, + 0x96, 0x57, 0xfe, 0xae, 0x4a, 0xc0, 0x73, 0x27, + 0xcf, 0xe4, 0xdf, 0x1f, 0xf1, 0x71, 0x95, 0xc9, + 0xd0, 0x2e, 0x83, 0x10, 0x73, 0x1a, 0x72, 0x48, + 0x61, 0xf2, 0x27, 0xf6, 0x4e, 0x09, 0x02, 0x16, + 0xdb, 0x09, 0xcb, 0xb6, 0x0e, 0x36, 0x6f, 0x4f, + 0x8f, 0x70, 0xdc, 0x32, 0x34, 0x0b, 0x9e, 0xc0, + 0xec, 0x91, 0x97, 0x95, 0xe0, 0x3b, 0xa2, 0xb8, + 0xc2, 0x39, 0x97, 0x3f, 0x4d, 0xcc, 0x55, 0x9c, + 0x12, 0xd8, 0x38, 0xe3, 0xe4, 0x1f, 0x76, 0x2a, + 0x08, 0xcf, 0x40, 0x74, 0xbd, 0x1f, 0x3f, 0xc0, + 0x75, 0xfa, 0x1a, 0x68, 0x1b, 0x41, 0xd5, 0x12, + 0x7b, 0x77, 0x6b, 0xa4, 0x36, 0xdd, 0x9d, 0x68, + 0xda, 0xb1, 0x58, 0xb2, 0x4b, 0x03, 0x07, 0xdf, + 0xc2, 0x41, 0x79, 0x02, 0xaf, 0xd3, 0x2b, 0xe4, + 0x0d, 0xb8, 0xf7, 0x01, 0xd5, 0x3e, 0xe9, 0xa3, + 0x6d, 0x4f, 0x04, 0x8d, 0x26, 0xc5, 0x52, 0x4b, + 0x24, 0x89, 0xe1, 0x9a, 0x44, 0x18, 0xe4, 0x55, + 0x24, 0xee, 0x89, 0xf2, 0x31, 0x9c, 0x6d, 0x6f, + 0x87, 0x52, 0x7f, 0x49, 0x5f, 0xa4, 0xbb, 0x3d, + 0xbf, 0x4f, 0x7e, 0x89, 0x7e, 0x11, 0x7a, 0x39, + 0x63, 0x82, 0x6a, 0x46, 0x10, 0xcc, 0xa2, 0x64, + 0xe4, 0x5b, 0x06, 0x56, 0x89, 0xd0, 0x6c, 0x46, + 0x5f, 0xa6, 0x7f, 0x39, 0x2b, 0x82, 0x36, 0xba, + 0x9e, 0xe1, 0xfd, 0x37, 0x6a, 0xbd, 0xc7, 0x4d, + 0x29, 0xd8, 0xd1, 0xaa, 0x54, 0x2a, 0xe3, 0xf5, + 0xaa, 0x77, 0x66, 0x13, 0x95, 0x23, 0x13, 0x45, + 0x89, 0x21, 0x78, 0xf8, 0xe7, 0x50, 0x04, 0x8b, + 0xb7, 0xec, 0x31, 0x82, 0xbd, 0x0b, 0x69, 0x2e, + 0x95, 0x5c, 0x52, 0xbd, 0x24, 0x6c, 0x4f, 0xb2, + 0xcb, 0xaa, 0xce, 0xc4, 0xe4, 0x35, 0x90, 0x57, + 0xe9, 0xab, 0x3b, 0xba, 0xb1, 0x2e, 0x57, 0x72, + 0x48, 0xe7, 0x69, 0x50, 0x72, 0x3f, 0x05, 0xd4, + 0xa7, 0x4b, 0x32, 0x9d, 0x5e, 0x8b, 0x8b, 0x06, + 0x06, 0x1c, 0x73, 0xd7, 0x3e, 0x9f, 0x6f, 0xdb, + 0xe5, 0x40, 0x27, 0xe3, 0x90, 0x7b, 0x8e, 0xd0, + 0x37, 0xe3, 0x6e, 0x1f, 0xb7, 0x35, 0x8c, 0x59, + 0x71, 0xaa, 0x55, 0x29, 0x26, 0xc9, 0x47, 0x19, + 0x88, 0xf1, 0xc5, 0x16, 0x7c, 0xfb, 0x4b, 0x7b, + 0xf2, 0x40, 0xe4, 0x51, 0xbc, 0xe0, 0x2e, 0xef, + 0x2b, 0x81, 0x05, 0xc9, 0xde, 0xc2, 0xd6, 0xd5, + 0xa2, 0x40, 0xc6, 0x39, 0x1a, 0x49, 0x23, 0x8a, + 0xbc, 0x4a, 0xa0, 0xf8, 0xc3, 0xd8, 0x30, 0xa9, + 0x93, 0xca, 0x8e, 0x4d, 0xc5, 0xce, 0x17, 0xcf, + 0xf9, 0xad, 0x53, 0x54, 0x51, 0x68, 0xfe, 0x39, + 0xa7, 0xb6, 0xf7, 0x0f, 0x12, 0xad, 0x9d, 0x2c, + 0x32, 0x44, 0xa0, 0xfb, 0x77, 0x35, 0x93, 0xf5, + 0x4e, 0x40, 0xe5, 0xf0, 0xde, 0xd5, 0xc9, 0xff, + 0x00, 0x37, 0x48, 0xba, 0xb6, 0x16, 0xe1, 0x3a, + 0xa2, 0x5c, 0x6b, 0x11, 0x1f, 0x4e, 0xd0, 0x46, + 0x03, 0xe9, 0xe4, 0x86, 0xe2, 0xe7, 0xac, 0x44, + 0x5c, 0x92, 0x0d, 0xca, 0xcd, 0xbf, 0x01, 0xd4, + 0x47, 0xee, 0x20, 0xf8, 0xab, 0x05, 0xe6, 0x88, + 0x20, 0xd5, 0xe6, 0x9a, 0x55, 0x90, 0x33, 0x39, + 0xd3, 0xeb, 0x57, 0x52, 0x99, 0x4c, 0xa6, 0xee, + 0x69, 0x11, 0x5b, 0x68, 0x70, 0xac, 0x63, 0x6f, + 0xcc, 0x0b, 0x0f, 0x6f, 0x50, 0x56, 0x45, 0x00, + 0x35, 0x61, 0x24, 0xa5, 0x57, 0x91, 0xfd, 0x6c, + 0x49, 0xca, 0xe0, 0x1d, 0xd2, 0xf1, 0x26, 0xd4, + 0x56, 0x90, 0xe5, 0x9f, 0x68, 0x19, 0x3f, 0x24, + 0xe0, 0x75, 0x3d, 0x79, 0x38, 0x83, 0x2d, 0x35, + 0x80, 0x86, 0xdc, 0xf8, 0xb4, 0x2c, 0x92, 0x83, + 0x39, 0x50, 0xa3, 0x6e, 0x33, 0xe1, 0xb7, 0x60, + 0xed, 0xf8, 0xc7, 0x5d, 0xc3, 0xa5, 0x77, 0x0e, + 0xa4, 0x9a, 0x48, 0xd0, 0xae, 0x9a, 0xcf, 0x41, + 0xe6, 0x5b, 0xf0, 0x7a, 0xa6, 0xa8, 0xe2, 0xd3, + 0x4b, 0xbf, 0xd6, 0xbf, 0xc7, 0xa8, 0x8a, 0x51, + 0x97, 0x00, 0xee, 0x1b, 0x5c, 0x6c, 0x56, 0xdc, + 0xd8, 0x8e, 0xa2, 0xea, 0x2f, 0x62, 0x16, 0xdb, + 0x62, 0x17, 0x86, 0xa4, 0x36, 0x1c, 0x16, 0x11, + 0x49, 0x62, 0x05, 0x6f, 0x53, 0x22, 0x91, 0x81, + 0xb4, 0xe6, 0x24, 0x3b, 0x0f, 0x96, 0x8d, 0xa3, + 0x3e, 0x54, 0x81, 0x0f, 0x6d, 0x56, 0x82, 0x78, + 0xec, 0xd3, 0x08, 0x8f, 0x19, 0x42, 0xcf, 0x24, + 0xf6, 0xc4, 0xc4, 0xaf, 0xb1, 0x88, 0x54, 0x26, + 0x33, 0x19, 0x84, 0x95, 0x58, 0x48, 0xd8, 0xc7, + 0x3b, 0x87, 0x92, 0x7a, 0x9a, 0xb6, 0xc4, 0x92, + 0x53, 0x34, 0x99, 0x54, 0x2e, 0xd8, 0xa9, 0x31, + 0x73, 0xb4, 0x13, 0xe3, 0x31, 0xf9, 0x3f, 0xc3, + 0xc8, 0xe9, 0xea, 0xc9, 0x6e, 0x36, 0xb4, 0xfa, + 0xd4, 0xf0, 0xa9, 0xb6, 0xd5, 0xd7, 0xd5, 0x50, + 0x9a, 0xba, 0xed, 0x62, 0xbf, 0x96, 0x30, 0x84, + 0x02, 0x37, 0xaf, 0xeb, 0x5b, 0x43, 0xc6, 0xa0, + 0x33, 0x48, 0x14, 0x75, 0x26, 0x9f, 0xb3, 0x6a, + 0xb6, 0xbd, 0x09, 0xc3, 0x90, 0x31, 0xb5, 0x81, + 0x84, 0xfc, 0x67, 0xdc, 0x18, 0xcc, 0xbf, 0x69, + 0xdc, 0x97, 0xfe, 0x67, 0xcf, 0x56, 0x74, 0xf6, + 0x8e, 0xb9, 0xb0, 0xba, 0xfc, 0x41, 0x20, 0x76, + 0x99, 0xc1, 0xd8, 0xee, 0xd5, 0x94, 0x6e, 0x65, + 0x11, 0xef, 0x2f, 0x25, 0x8c, 0x0f, 0xa7, 0x2e, + 0x1a, 0x4c, 0xf8, 0x19, 0xce, 0x0b, 0x43, 0x37, + 0x1c, 0x52, 0xc3, 0xac, 0xb4, 0xe9, 0xea, 0x1a, + 0x40, 0x62, 0x89, 0x67, 0x3e, 0x9b, 0x70, 0x1c, + 0x53, 0xa8, 0xf7, 0x25, 0x91, 0x9d, 0xaa, 0xf2, + 0x80, 0xca, 0xca, 0xc1, 0x80, 0x20, 0xa9, 0x86, + 0x6d, 0xd2, 0x15, 0x1a, 0xa5, 0xd8, 0x44, 0x6e, + 0xd0, 0x83, 0x2d, 0x39, 0x80, 0x95, 0xe6, 0x16, + 0x12, 0x38, 0x8e, 0xf8, 0x36, 0x48, 0xee, 0x61, + 0x91, 0x52, 0xc3, 0x1d, 0xb1, 0x80, 0xac, 0x76, + 0xef, 0x05, 0xba, 0x1f, 0xf3, 0xfe, 0xd3, 0xd0, + 0xeb, 0xec, 0x7f, 0xe7, 0xe7, 0xad, 0x1b, 0x51, + 0xb9, 0x47, 0xb7, 0x75, 0x41, 0x56, 0xed, 0x8a, + 0x65, 0xe6, 0x27, 0xf5, 0x72, 0xe8, 0x5c, 0xf1, + 0xc7, 0x8c, 0xc8, 0x84, 0x6d, 0xc7, 0xbb, 0x07, + 0xed, 0x9f, 0xf6, 0xf6, 0xbf, 0x72, 0x6b, 0x6b, + 0xa9, 0xaf, 0x2e, 0xad, 0x7e, 0x48, 0xfe, 0x96, + 0xe4, 0x96, 0xe4, 0xef, 0x19, 0x5e, 0x68, 0xf7, + 0x64, 0x49, 0x21, 0x18, 0xdb, 0x90, 0x4f, 0xd8, + 0x1f, 0x3e, 0x33, 0xd7, 0x7d, 0x5b, 0x7b, 0x89, + 0x3c, 0x8d, 0x2e, 0xfd, 0xd3, 0x54, 0x2a, 0x04, + 0x99, 0x00, 0x7a, 0x64, 0xf2, 0x17, 0xd4, 0x38, + 0x19, 0xc7, 0xe6, 0x10, 0x45, 0x9f, 0x9d, 0xcf, + 0xd7, 0x9f, 0xec, 0xcf, 0xff, 0x00, 0x81, 0xd6, + 0x9d, 0x58, 0xdb, 0xd0, 0x0c, 0x5c, 0xa5, 0x4f, + 0x2c, 0x5e, 0xec, 0xef, 0x1e, 0x27, 0x67, 0x1f, + 0x12, 0x4b, 0xf3, 0xe4, 0x30, 0xdd, 0xf7, 0xfc, + 0xab, 0xf1, 0xd6, 0x99, 0x5a, 0x07, 0xab, 0x0c, + 0x16, 0xab, 0x1b, 0x25, 0x1f, 0x32, 0x47, 0xbe, + 0xbb, 0x42, 0x0b, 0x1f, 0x93, 0x14, 0x9b, 0x15, + 0x8a, 0xab, 0xef, 0x01, 0x93, 0x3b, 0xbf, 0x2f, + 0x9c, 0x1e, 0xa3, 0xd3, 0x74, 0x09, 0x61, 0x45, + 0x9a, 0xa0, 0xa5, 0x23, 0x2b, 0x25, 0x75, 0x6d, + 0x37, 0x4c, 0x92, 0x6d, 0xa1, 0x41, 0x25, 0x15, + 0x4c, 0xca, 0xea, 0x84, 0xe7, 0x8e, 0x45, 0x65, + 0xdc, 0xa0, 0x98, 0xfc, 0x29, 0xe9, 0x34, 0x7d, + 0x1a, 0x55, 0x2d, 0x1e, 0x91, 0xb9, 0x72, 0xc3, + 0x27, 0x43, 0xd2, 0xc6, 0x76, 0x92, 0x33, 0x86, + 0x55, 0xf0, 0x71, 0x95, 0x38, 0xf2, 0xa4, 0x11, + 0xe3, 0xab, 0x14, 0x34, 0xaa, 0x71, 0xf2, 0x1d, + 0x0e, 0x8b, 0xc0, 0xbb, 0xb9, 0x9a, 0xde, 0x93, + 0x5d, 0x64, 0x03, 0x18, 0x51, 0x02, 0xd4, 0x8d, + 0xbd, 0xc5, 0xbf, 0x33, 0x48, 0x48, 0x03, 0xe0, + 0x78, 0x39, 0xd3, 0xf5, 0xf4, 0xd3, 0x5d, 0xdf, + 0x48, 0xed, 0x9d, 0x2e, 0x38, 0xa7, 0x45, 0xc5, + 0x8b, 0xd6, 0x54, 0x6a, 0x0d, 0x5a, 0x1c, 0x6d, + 0xde, 0x5e, 0xec, 0x63, 0x8c, 0x04, 0x97, 0xe9, + 0xa2, 0x45, 0x16, 0xed, 0x8d, 0xe5, 0xbf, 0x35, + 0x9e, 0xed, 0xd4, 0x82, 0xa3, 0xc7, 0xa3, 0xd2, + 0xae, 0x56, 0x30, 0x93, 0x3a, 0x4e, 0xb2, 0x3d, + 0x7b, 0x3c, 0x1c, 0xa6, 0x57, 0xe3, 0xb6, 0xe8, + 0x90, 0x61, 0x59, 0xd7, 0x70, 0x13, 0xaa, 0x02, + 0x3c, 0x38, 0xdd, 0xd6, 0xa1, 0xdd, 0xfa, 0x75, + 0x64, 0x79, 0x2f, 0x2d, 0xf8, 0xb5, 0x39, 0xac, + 0xef, 0xad, 0x3d, 0x1b, 0x8a, 0xf1, 0xe7, 0x3c, + 0x8c, 0x93, 0x4a, 0x6f, 0x3b, 0xa4, 0x24, 0xcb, + 0x23, 0xec, 0x06, 0x34, 0xc3, 0x2e, 0xd5, 0x0e, + 0x0b, 0x75, 0xdb, 0xfd, 0xd7, 0xa3, 0x6b, 0x51, + 0x4d, 0xea, 0x75, 0x0b, 0xf4, 0xa7, 0x81, 0xbd, + 0xf9, 0xb2, 0xc9, 0xcc, 0x92, 0x00, 0x58, 0xa0, + 0x49, 0x67, 0x2e, 0xdc, 0xdc, 0xc4, 0x7c, 0x64, + 0x1d, 0xca, 0xa0, 0x01, 0xb1, 0x74, 0x3e, 0xd8, + 0xbf, 0x5e, 0x1b, 0x92, 0x4f, 0x24, 0xd1, 0x3c, + 0x7b, 0xd2, 0x49, 0xac, 0x2e, 0xe6, 0x1e, 0xc9, + 0x4e, 0x56, 0x48, 0xf7, 0x2b, 0x8d, 0x9e, 0xe4, + 0x00, 0x78, 0x77, 0x46, 0x5c, 0x60, 0x09, 0xcd, + 0x51, 0x2f, 0x0e, 0x9e, 0x2f, 0x35, 0x0e, 0x5a, + 0xc0, 0x16, 0xb1, 0x77, 0xd5, 0xb4, 0x72, 0x15, + 0x86, 0xc6, 0xd0, 0xb2, 0xe5, 0x55, 0x52, 0x36, + 0x09, 0x00, 0x8f, 0x69, 0x9d, 0x38, 0xc4, 0x59, + 0xdc, 0x3a, 0xd7, 0xac, 0xe9, 0xb4, 0xde, 0x16, + 0xb8, 0x2e, 0x1e, 0x68, 0x7d, 0x55, 0x64, 0x3a, + 0xd4, 0xd5, 0x9e, 0x58, 0x62, 0x78, 0x64, 0x13, + 0x70, 0x4b, 0x34, 0x7b, 0x09, 0x75, 0x01, 0x44, + 0x98, 0x05, 0x7d, 0xab, 0x95, 0x7d, 0xbd, 0x50, + 0x8f, 0x4c, 0xd4, 0x6e, 0x14, 0x82, 0xb5, 0xa9, + 0x2d, 0x55, 0x41, 0x23, 0x2c, 0x77, 0x0c, 0xb2, + 0x44, 0x55, 0xc0, 0x61, 0x27, 0x0a, 0xef, 0x57, + 0x59, 0x9b, 0x0d, 0xbb, 0x28, 0x64, 0x46, 0x55, + 0x63, 0xb5, 0xfa, 0xbf, 0x0d, 0x0a, 0xba, 0x7e, + 0xa2, 0x96, 0x20, 0x9a, 0xd5, 0xb4, 0x86, 0xcc, + 0x9c, 0x76, 0xac, 0xc5, 0x32, 0xd5, 0x9c, 0xc3, + 0xbc, 0x0e, 0x5b, 0xdf, 0xb2, 0x97, 0x05, 0x43, + 0xba, 0x32, 0xf1, 0xa0, 0x48, 0x4c, 0xa3, 0x8b, + 0x6c, 0x7d, 0xb3, 0x1d, 0x19, 0xa6, 0xbf, 0x1d, + 0x9a, 0xb1, 0x2e, 0xc8, 0x51, 0x63, 0x72, 0x34, + 0xad, 0x4d, 0xc3, 0x89, 0xa7, 0x8f, 0x78, 0x84, + 0x3c, 0xdb, 0x1b, 0x28, 0xec, 0x5d, 0x95, 0x56, + 0x42, 0xd8, 0x39, 0xd9, 0xb1, 0x2d, 0x68, 0xba, + 0x1d, 0xa3, 0x2f, 0x30, 0x98, 0x94, 0x90, 0x8f, + 0xd5, 0xe9, 0xd4, 0xa6, 0x25, 0x01, 0x24, 0x64, + 0x89, 0xb8, 0x64, 0x65, 0x8d, 0x76, 0x58, 0x01, + 0xa4, 0x10, 0xac, 0xae, 0xc8, 0x8e, 0x47, 0x84, + 0xe8, 0xdc, 0x9f, 0x4d, 0xd7, 0x6c, 0x45, 0x46, + 0xc2, 0xc3, 0x24, 0xab, 0xcb, 0xe9, 0x82, 0x03, + 0x5d, 0xa4, 0x94, 0x48, 0x1d, 0xe4, 0x91, 0x24, + 0x1f, 0x50, 0x7a, 0x76, 0x24, 0xb5, 0x75, 0x6c, + 0xf1, 0xa2, 0x96, 0x54, 0xdc, 0x2f, 0xf7, 0xdb, + 0xcd, 0x7d, 0x06, 0xa3, 0xa7, 0xc5, 0x7a, 0x5a, + 0x61, 0xa3, 0x47, 0x99, 0x9e, 0xb8, 0x89, 0xbc, + 0xb7, 0x34, 0x4b, 0xef, 0x2b, 0x2e, 0xe5, 0xfa, + 0x45, 0xcb, 0xa1, 0x5f, 0xcd, 0x1f, 0xb8, 0x6d, + 0x07, 0x3d, 0x0e, 0x97, 0xac, 0xff, 0x00, 0x5f, + 0x5d, 0x8f, 0x3e, 0x9d, 0x1e, 0x9b, 0xa8, 0x25, + 0xe8, 0xb9, 0x91, 0xe6, 0x5c, 0xab, 0xd7, 0x13, + 0x26, 0x36, 0xe1, 0x80, 0xf9, 0xc6, 0x55, 0x81, + 0x3b, 0xb6, 0xfc, 0x13, 0x9f, 0x03, 0xa3, 0x6e, + 0x0a, 0xba, 0xe4, 0xb5, 0xd3, 0x45, 0x82, 0xad, + 0x61, 0x2b, 0xc2, 0xd2, 0x22, 0x29, 0xc2, 0x21, + 0xca, 0x4e, 0x14, 0x45, 0x9c, 0x10, 0xa1, 0xf6, + 0xff, 0x00, 0x07, 0xce, 0x70, 0x01, 0xeb, 0xba, + 0x84, 0xb6, 0x69, 0xcb, 0x66, 0x15, 0x76, 0xab, + 0xcf, 0x59, 0x14, 0x8c, 0xec, 0x0c, 0xb0, 0xaa, + 0x90, 0xa9, 0xce, 0x7c, 0x82, 0x3c, 0xe2, 0xba, + 0x0f, 0xfb, 0x47, 0xee, 0x16, 0x5d, 0xd8, 0xd8, + 0xff, 0x00, 0xfd, 0x27, 0xfe, 0x1d, 0x50, 0xbf, + 0x36, 0x95, 0x42, 0xba, 0x5b, 0xab, 0x1c, 0xb4, + 0xe7, 0x59, 0x56, 0x53, 0xca, 0x3d, 0x50, 0x94, + 0x0d, 0xd0, 0x08, 0xe3, 0x69, 0x25, 0xde, 0x98, + 0x24, 0x96, 0xdc, 0x11, 0x10, 0x36, 0xe0, 0x98, + 0x03, 0xa8, 0xb5, 0x2b, 0x72, 0x4f, 0x07, 0x2a, + 0x59, 0x8a, 0x0b, 0x8e, 0x4d, 0x2f, 0xa6, 0x36, + 0xcc, 0x41, 0xe3, 0x59, 0x94, 0x18, 0x8e, 0xfd, + 0x92, 0x2e, 0xd8, 0xbc, 0xb3, 0xa4, 0x6c, 0xf2, + 0x58, 0x11, 0xc4, 0x03, 0x9d, 0x6f, 0xbd, 0x66, + 0xed, 0xfa, 0x14, 0xa9, 0xfa, 0xa6, 0xb3, 0xa8, + 0x83, 0x14, 0xcf, 0x1f, 0x2e, 0x4c, 0x35, 0x86, + 0x08, 0x4b, 0x72, 0xa8, 0x57, 0x12, 0xbe, 0x31, + 0x1a, 0x2e, 0xe6, 0xc7, 0x99, 0x19, 0x90, 0x0d, + 0xfa, 0x37, 0xe9, 0x74, 0xde, 0xd4, 0xa3, 0xa9, + 0x32, 0xc7, 0xa6, 0xd2, 0x97, 0x8e, 0x35, 0xb3, + 0x31, 0xe6, 0x68, 0xa4, 0xf3, 0xb9, 0xa7, 0x6c, + 0x05, 0xe3, 0x62, 0x55, 0x55, 0xf0, 0x36, 0x1f, + 0x32, 0xfb, 0x58, 0x94, 0x9a, 0xdc, 0x75, 0x96, + 0x37, 0xb7, 0xa9, 0x55, 0x61, 0x38, 0xc4, 0x46, + 0x48, 0x88, 0xdc, 0xa7, 0x60, 0x3b, 0x04, 0x72, + 0x6c, 0xf2, 0x5d, 0x06, 0xe2, 0xa7, 0xf3, 0x0f, + 0x9e, 0x97, 0xb7, 0x34, 0x56, 0x8d, 0x1a, 0x29, + 0xef, 0xf0, 0xb2, 0xa3, 0xa2, 0x2e, 0xab, 0x77, + 0x80, 0xa7, 0x92, 0x9f, 0x4b, 0x9f, 0x6e, 0xcd, + 0xac, 0xd8, 0x52, 0x31, 0xb5, 0x88, 0x23, 0x0c, + 0x41, 0xee, 0x7d, 0x32, 0x96, 0x9f, 0x6e, 0xba, + 0xd5, 0x7d, 0x51, 0x92, 0xc5, 0x4b, 0xd3, 0x4e, + 0x91, 0xea, 0xb3, 0x85, 0xdf, 0x15, 0x8d, 0x3d, + 0x11, 0x8a, 0xcd, 0x6e, 0x31, 0xb4, 0x47, 0x3c, + 0xb1, 0x88, 0xd3, 0x39, 0x0e, 0x17, 0x6a, 0x8c, + 0x32, 0xf7, 0x28, 0x96, 0x24, 0xae, 0x36, 0x58, + 0x00, 0x4b, 0x2f, 0xf4, 0x99, 0xf9, 0x96, 0x55, + 0xc4, 0x58, 0x5f, 0x36, 0x66, 0xe3, 0x39, 0x3b, + 0x9f, 0x1b, 0x73, 0xb8, 0x1d, 0xc7, 0xed, 0xa5, + 0x41, 0x6b, 0x50, 0xce, 0x97, 0x5d, 0x23, 0x13, + 0x5b, 0x24, 0x42, 0xdb, 0xb6, 0xec, 0xe1, 0x53, + 0x2b, 0xee, 0x6d, 0xfe, 0x22, 0x0b, 0x9c, 0x36, + 0xd3, 0x9f, 0x38, 0x27, 0x1d, 0x76, 0xc1, 0x4d, + 0x28, 0x5d, 0xad, 0x6b, 0x52, 0x8a, 0x27, 0x36, + 0xa2, 0xae, 0x03, 0xc1, 0x3c, 0xb0, 0xb4, 0xce, + 0xd2, 0x42, 0x14, 0x48, 0xca, 0xb8, 0x0e, 0xd1, + 0xb2, 0xb1, 0x0b, 0xee, 0x50, 0xa5, 0xb2, 0x31, + 0xd4, 0xfd, 0xbd, 0xdd, 0x32, 0xea, 0x0e, 0xcd, + 0xa9, 0xc3, 0xea, 0xf6, 0xef, 0x27, 0xf1, 0xda, + 0xbc, 0xc0, 0x2a, 0x87, 0x27, 0x1e, 0xb0, 0x48, + 0x32, 0x30, 0xec, 0x4a, 0x02, 0x3c, 0x31, 0x23, + 0xa7, 0x5d, 0x56, 0x8d, 0x59, 0xfd, 0x7c, 0x56, + 0x35, 0x13, 0x4d, 0x08, 0x86, 0x76, 0x99, 0xec, + 0xc2, 0x77, 0x5a, 0x2a, 0x6b, 0xac, 0xd9, 0xb0, + 0xad, 0x16, 0x5b, 0x73, 0x22, 0xcc, 0x0b, 0x05, + 0x4c, 0x80, 0x07, 0x5d, 0xa7, 0x2e, 0xa7, 0x3d, + 0x48, 0xee, 0x36, 0x9f, 0xc6, 0x96, 0xe7, 0xb2, + 0xd3, 0x4f, 0xe4, 0xd9, 0x8d, 0x86, 0x02, 0x40, + 0xb8, 0xc4, 0x82, 0xb1, 0x68, 0xde, 0x46, 0xdf, + 0xb8, 0x19, 0x64, 0xdc, 0x0e, 0x58, 0x91, 0xab, + 0xda, 0x3a, 0x50, 0xad, 0x1c, 0xcf, 0x56, 0x08, + 0xee, 0xb7, 0x0c, 0x70, 0x4a, 0x93, 0xf3, 0x99, + 0x66, 0x32, 0x60, 0x16, 0x47, 0x41, 0x17, 0x33, + 0x32, 0xed, 0x67, 0xc1, 0x1b, 0x9a, 0x46, 0x65, + 0x1b, 0x49, 0xd4, 0xb5, 0x18, 0x68, 0x6a, 0x74, + 0x20, 0xaa, 0x2e, 0x83, 0x6d, 0x95, 0x37, 0xb3, + 0x56, 0x96, 0x19, 0x26, 0x17, 0x24, 0x49, 0x1e, + 0x48, 0x18, 0x48, 0xe6, 0x1d, 0xd2, 0x2a, 0x08, + 0xd6, 0x50, 0xfb, 0x77, 0x65, 0xf7, 0x2a, 0xa7, + 0x5a, 0x74, 0x56, 0x2c, 0xd3, 0xf5, 0x11, 0x2c, + 0xc7, 0x7d, 0x5b, 0x93, 0x14, 0x4d, 0x32, 0x3b, + 0x4b, 0xb7, 0x95, 0xe0, 0x2a, 0x9c, 0x6f, 0x1c, + 0x5e, 0xa8, 0x36, 0xe2, 0x98, 0x01, 0xb8, 0x0f, + 0x1a, 0x8c, 0x82, 0x7a, 0x90, 0x34, 0x7a, 0x9f, + 0x0d, 0xc3, 0x20, 0xad, 0xa5, 0xd6, 0x88, 0x49, + 0x69, 0xab, 0x85, 0x2f, 0x98, 0x58, 0x9d, 0xd3, + 0x08, 0xd7, 0xd3, 0xfd, 0x49, 0x58, 0x48, 0x79, + 0x5c, 0xed, 0x5e, 0x1d, 0xf9, 0xf6, 0xf5, 0xaa, + 0xc6, 0xc3, 0x52, 0xb4, 0x87, 0x38, 0x0e, 0x46, + 0xe6, 0x04, 0x78, 0x19, 0x20, 0x79, 0x19, 0xf8, + 0xf8, 0xcf, 0xcf, 0x82, 0x3c, 0x11, 0xd2, 0xfc, + 0x75, 0xda, 0x85, 0x3f, 0x1d, 0xa4, 0x26, 0x85, + 0x2c, 0xc2, 0x3d, 0x53, 0xbd, 0x79, 0xa2, 0x9e, + 0x78, 0x64, 0x09, 0x52, 0x77, 0x01, 0xa0, 0xae, + 0x44, 0xd2, 0xf9, 0x40, 0x42, 0xc6, 0x43, 0x16, + 0xc7, 0x90, 0x3a, 0xbf, 0xa9, 0xe9, 0xbe, 0xaa, + 0xed, 0x63, 0xa1, 0x56, 0xae, 0x8d, 0x01, 0x8d, + 0x25, 0x8a, 0x09, 0xa1, 0xb5, 0x0c, 0xd2, 0x45, + 0x16, 0x1b, 0x82, 0xe4, 0xae, 0xa1, 0x51, 0xb7, + 0x94, 0xca, 0x2b, 0x15, 0x2a, 0xc0, 0x29, 0x27, + 0x3a, 0x2d, 0x9e, 0xdf, 0x5a, 0xab, 0x05, 0xaa, + 0x0f, 0x2d, 0x94, 0x66, 0x53, 0x61, 0xab, 0x0d, + 0xcf, 0xbd, 0x89, 0x1e, 0xf8, 0x90, 0xac, 0x60, + 0x0f, 0x68, 0xde, 0xdb, 0xb0, 0x33, 0xbf, 0xef, + 0xd6, 0xad, 0x6f, 0x4a, 0x82, 0xb8, 0x8a, 0xa5, + 0x39, 0x38, 0x86, 0x65, 0x71, 0xb3, 0x76, 0x65, + 0x60, 0xd0, 0xaf, 0xd6, 0x96, 0xbc, 0xd0, 0xae, + 0xd4, 0x76, 0x3e, 0x0a, 0xc9, 0xe1, 0x46, 0xec, + 0x7b, 0x4b, 0xea, 0xd6, 0xe4, 0xd5, 0x9a, 0xf3, + 0xfe, 0xc6, 0x79, 0x98, 0x71, 0x6d, 0x0c, 0xcb, + 0x14, 0x80, 0xc4, 0xaa, 0x40, 0x5f, 0x71, 0x54, + 0x2a, 0x30, 0x06, 0x5b, 0x1e, 0x32, 0x4f, 0x9d, + 0x08, 0xd9, 0x4a, 0x8d, 0x56, 0xa6, 0x9f, 0x56, + 0x7a, 0x8d, 0x37, 0x2b, 0x49, 0xa9, 0x47, 0x25, + 0x55, 0x8d, 0x84, 0x30, 0xab, 0x16, 0x56, 0xa0, + 0x91, 0xe3, 0x03, 0x02, 0x4d, 0xb9, 0x92, 0x43, + 0xc6, 0x1b, 0xc8, 0x1d, 0x0a, 0xfa, 0x5d, 0xa9, + 0xaf, 0x56, 0x96, 0xea, 0x57, 0xb9, 0x5b, 0xc7, + 0xa7, 0xaf, 0x4e, 0x27, 0x48, 0xda, 0x5d, 0xb3, + 0x44, 0xcf, 0x30, 0xaa, 0xee, 0xb8, 0x64, 0x68, + 0x7d, 0x91, 0x90, 0xa8, 0x4b, 0x7e, 0x62, 0x00, + 0x5d, 0x32, 0xd4, 0xa3, 0xd7, 0xc9, 0x58, 0xea, + 0x2c, 0x88, 0x16, 0x7a, 0xd2, 0x49, 0x5c, 0x48, + 0x95, 0x58, 0xb8, 0x00, 0xc8, 0x48, 0x46, 0xf5, + 0x12, 0xc0, 0x63, 0x9d, 0x61, 0x8f, 0x90, 0x36, + 0xc9, 0x3d, 0xa2, 0x20, 0x7a, 0xee, 0x3e, 0xe5, + 0x87, 0x48, 0xab, 0x25, 0x18, 0xa9, 0xac, 0x37, + 0x19, 0xd6, 0xc5, 0x44, 0x73, 0x13, 0x9a, 0x3b, + 0xf9, 0x16, 0x69, 0x25, 0xda, 0xb8, 0x1c, 0x9f, + 0x01, 0x63, 0x65, 0x36, 0x06, 0xd6, 0x6c, 0x47, + 0x9d, 0xd6, 0x2c, 0xc9, 0x6a, 0x56, 0x79, 0x1c, + 0x96, 0x76, 0x24, 0xb1, 0xf3, 0x92, 0x7e, 0x58, + 0xff, 0x00, 0xc0, 0x78, 0x51, 0xe0, 0x60, 0x01, + 0xd6, 0x76, 0x10, 0x57, 0xe4, 0x7c, 0xff, 0x00, + 0x0f, 0xfc, 0xbe, 0x7f, 0xdb, 0xd7, 0x67, 0xf7, + 0x3e, 0x9d, 0x60, 0x45, 0xa4, 0x77, 0x22, 0xcd, + 0x2d, 0x7d, 0xab, 0x15, 0x3b, 0x4b, 0x7a, 0xcd, + 0x43, 0x5f, 0xda, 0xc8, 0xb0, 0x5a, 0x78, 0x64, + 0x5e, 0x5a, 0xe1, 0x58, 0xa5, 0x79, 0x24, 0xdc, + 0x6b, 0x6e, 0x29, 0x91, 0x11, 0x05, 0x35, 0x6d, + 0x74, 0x69, 0x97, 0xe0, 0x8e, 0xa1, 0xab, 0x0e, + 0x9f, 0x18, 0xab, 0x13, 0xc5, 0x70, 0x34, 0xa4, + 0x4a, 0xcf, 0x3c, 0x68, 0x8c, 0x1e, 0xb8, 0x9e, + 0x45, 0x9b, 0x6a, 0x61, 0x96, 0x78, 0xfd, 0xbe, + 0xfc, 0x95, 0xda, 0x5e, 0x69, 0x62, 0xd4, 0xad, + 0xc2, 0x6f, 0x43, 0x56, 0xb5, 0x98, 0x16, 0x48, + 0x55, 0x69, 0xde, 0x6a, 0xf1, 0x32, 0x58, 0x51, + 0x29, 0x0e, 0x91, 0xc8, 0x2c, 0x6e, 0xcc, 0x10, + 0x65, 0x08, 0x91, 0x19, 0x64, 0x2d, 0xf6, 0xeb, + 0xb9, 0x25, 0xed, 0x1d, 0x2a, 0x9d, 0x73, 0x6e, + 0x91, 0xb5, 0x66, 0x7d, 0xea, 0x89, 0x24, 0xb7, + 0xee, 0x40, 0x98, 0xd9, 0xcb, 0x80, 0x6d, 0x47, + 0x8d, 0xce, 0x62, 0xda, 0x7f, 0x36, 0x3e, 0x7e, + 0x3c, 0xe8, 0x3a, 0xf7, 0x66, 0x34, 0xb1, 0x45, + 0x5f, 0x4b, 0xf4, 0xd7, 0xe4, 0xe6, 0x53, 0x2a, + 0xd7, 0x48, 0xe2, 0x58, 0x90, 0xb1, 0x50, 0x8f, + 0x6e, 0xe1, 0x28, 0xec, 0x98, 0x07, 0x0f, 0x97, + 0x24, 0x0c, 0xf9, 0xd8, 0x2a, 0x69, 0x94, 0x5e, + 0x7b, 0xf3, 0x30, 0x01, 0x22, 0x7e, 0x66, 0x96, + 0xbc, 0xda, 0x54, 0xb2, 0x46, 0x16, 0xcc, 0x92, + 0x6e, 0x92, 0x3f, 0x58, 0x4f, 0x22, 0x86, 0x71, + 0xbb, 0x6b, 0x92, 0x4e, 0x51, 0x59, 0xb7, 0x3c, + 0x97, 0x29, 0x53, 0xa5, 0x25, 0x5f, 0x55, 0x3a, + 0xcf, 0x63, 0x8f, 0x8d, 0x2c, 0xac, 0xfe, 0x9e, + 0x49, 0xd7, 0x91, 0xb7, 0xf2, 0x2c, 0x70, 0x4c, + 0xb9, 0x44, 0x92, 0x38, 0x87, 0xbf, 0x7c, 0x89, + 0x80, 0x70, 0x06, 0x7a, 0xa1, 0xdc, 0xda, 0x7c, + 0xad, 0x35, 0x2a, 0xf2, 0x56, 0x59, 0xab, 0x47, + 0x1c, 0xd6, 0x21, 0x80, 0xca, 0x22, 0x8c, 0x4a, + 0xaa, 0x43, 0xef, 0xe3, 0x44, 0x71, 0xf1, 0x97, + 0x1f, 0xcb, 0x38, 0xe8, 0x5d, 0xab, 0x6b, 0x3c, + 0x1a, 0xa5, 0xf8, 0xd9, 0x99, 0x8b, 0x47, 0x16, + 0x0e, 0x3d, 0xa5, 0x0a, 0x22, 0x3c, 0x42, 0x44, + 0x50, 0xde, 0xf0, 0x4f, 0xbf, 0x23, 0x3b, 0x8a, + 0xb6, 0x0e, 0xbd, 0x77, 0x4e, 0x8f, 0xd5, 0x3c, + 0x76, 0x9d, 0xda, 0xa4, 0x95, 0xa6, 0x96, 0x7b, + 0xb4, 0x5f, 0x8c, 0x3d, 0xa4, 0x8c, 0x57, 0x9a, + 0x09, 0x4a, 0xb8, 0xb1, 0x2a, 0xed, 0x24, 0xb4, + 0x65, 0x4a, 0xee, 0x0b, 0x95, 0x3e, 0xee, 0xa7, + 0xfd, 0x22, 0xea, 0x50, 0xce, 0xeb, 0x5a, 0x0a, + 0x82, 0x24, 0x7f, 0x69, 0x78, 0x5c, 0x92, 0xf8, + 0xfa, 0xaf, 0xfb, 0x6f, 0x68, 0x96, 0x4d, 0xd2, + 0x6d, 0xfb, 0x02, 0x17, 0x27, 0x19, 0xea, 0xaf, + 0xe9, 0x23, 0x51, 0x8d, 0xa3, 0x49, 0xeb, 0x56, + 0x35, 0x44, 0x85, 0x9d, 0x60, 0x59, 0x62, 0x95, + 0x43, 0x2b, 0x03, 0xc4, 0xe6, 0x77, 0xda, 0x41, + 0x62, 0xe3, 0x20, 0xfb, 0x89, 0xf8, 0xc8, 0x22, + 0x5b, 0x93, 0xea, 0x35, 0xc4, 0xda, 0x44, 0x42, + 0x7a, 0x96, 0x63, 0xdd, 0x73, 0xeb, 0xfa, 0x5d, + 0xb1, 0xc9, 0x21, 0x46, 0x73, 0x0f, 0x1f, 0x25, + 0x87, 0x59, 0x4b, 0xb8, 0x8c, 0x7e, 0x69, 0x72, + 0xdb, 0xb1, 0x9d, 0xd5, 0x21, 0xd5, 0x5e, 0x35, + 0xdb, 0xa7, 0x41, 0x7a, 0x28, 0xe6, 0x69, 0xab, + 0xd8, 0x9a, 0x18, 0xe6, 0x31, 0x47, 0xcc, 0xde, + 0xaa, 0x4e, 0x47, 0x9c, 0xec, 0x96, 0xac, 0x6e, + 0x44, 0x4c, 0x5d, 0x76, 0xec, 0xfa, 0x51, 0x4a, + 0x42, 0x81, 0xd7, 0x66, 0xb3, 0x27, 0x72, 0x69, + 0xae, 0x91, 0x49, 0x61, 0x94, 0xdb, 0x2b, 0x0c, + 0x5b, 0x39, 0x25, 0x22, 0x8d, 0x93, 0xb1, 0x39, + 0x19, 0x13, 0x71, 0xfb, 0x6e, 0x75, 0x1f, 0xc4, + 0xf5, 0xdc, 0x66, 0xdf, 0xe3, 0x97, 0x1e, 0x6d, + 0x3e, 0xcd, 0x63, 0x61, 0xa2, 0x68, 0xe1, 0x7e, + 0x39, 0x24, 0xfd, 0x8c, 0x63, 0xfc, 0x93, 0xbc, + 0x6d, 0x90, 0x03, 0x7b, 0x1c, 0xe3, 0x3e, 0x7a, + 0xd2, 0xe0, 0xb5, 0x14, 0x76, 0x1e, 0xc5, 0x1b, + 0x30, 0xc4, 0x5c, 0x33, 0x4b, 0x28, 0x48, 0xe3, + 0x8e, 0x34, 0x5c, 0x16, 0x90, 0xc8, 0xe8, 0x42, + 0xa8, 0xf2, 0xcc, 0xaa, 0xd8, 0x1f, 0xcc, 0x63, + 0xad, 0x66, 0x03, 0x1e, 0x97, 0x32, 0x43, 0x52, + 0xcc, 0xe5, 0xa3, 0x82, 0x4f, 0x53, 0x19, 0x84, + 0xd7, 0xc7, 0x2a, 0x9f, 0xc8, 0x65, 0xe7, 0x21, + 0x82, 0xf8, 0x61, 0x11, 0x07, 0x20, 0xff, 0x00, + 0x10, 0x2b, 0x0b, 0x12, 0xcf, 0x5d, 0x63, 0xa9, + 0x66, 0x52, 0xb3, 0x42, 0xee, 0x8a, 0x87, 0xc2, + 0xa4, 0xa8, 0xcc, 0x37, 0x78, 0x00, 0x9f, 0x8d, + 0xcd, 0xb4, 0x0f, 0x92, 0x7a, 0xa7, 0xae, 0x45, + 0x2b, 0xb4, 0x76, 0xe4, 0x1a, 0x7e, 0x1d, 0x11, + 0x2a, 0xdb, 0x9a, 0xb2, 0x08, 0x90, 0xa6, 0x51, + 0xfe, 0x9d, 0x97, 0x50, 0xad, 0x86, 0x3b, 0x9c, + 0xef, 0x27, 0x27, 0xe3, 0x07, 0xaa, 0x91, 0x6f, + 0x97, 0x52, 0xd4, 0xed, 0x6a, 0xda, 0x75, 0x2a, + 0x92, 0x7b, 0x60, 0x08, 0x91, 0x49, 0x64, 0x1a, + 0xec, 0x6b, 0x3c, 0x93, 0x28, 0x0c, 0x6c, 0x56, + 0x63, 0x24, 0x65, 0x77, 0x83, 0x9d, 0xc8, 0x70, + 0x3d, 0xa5, 0xab, 0x6a, 0xba, 0x6d, 0x56, 0xf4, + 0xb1, 0x5c, 0x5b, 0xd3, 0xbd, 0x85, 0x82, 0x53, + 0x15, 0x64, 0x86, 0x11, 0xcd, 0x2c, 0xdb, 0x4b, + 0xca, 0x13, 0x72, 0xcd, 0x9d, 0xc6, 0x4c, 0x95, + 0xae, 0x9e, 0x4e, 0xe0, 0x77, 0x31, 0xef, 0xb8, + 0x5a, 0x3e, 0xe1, 0xbf, 0x8a, 0xf6, 0x6b, 0x02, + 0xe1, 0xe5, 0x8e, 0xcb, 0x6f, 0x76, 0x95, 0x86, + 0x5a, 0x55, 0x6c, 0x90, 0xd0, 0xc9, 0xf3, 0x11, + 0x47, 0x64, 0xc7, 0xe5, 0x20, 0x78, 0x08, 0x31, + 0x93, 0x8f, 0x1f, 0xc7, 0x3f, 0x1f, 0xd7, 0xfc, + 0xbf, 0xb3, 0xa6, 0x1e, 0x31, 0xff, 0x00, 0x23, + 0xfa, 0xbf, 0x88, 0x3d, 0x42, 0x1c, 0xb8, 0xd9, + 0x9c, 0xe7, 0xfe, 0xee, 0xbf, 0x0e, 0xbe, 0x9a, + 0x45, 0x2b, 0x36, 0xc3, 0x2d, 0x28, 0x6a, 0x55, + 0xc4, 0x76, 0xa1, 0x06, 0x48, 0x50, 0x1a, 0xea, + 0x9b, 0xdd, 0x91, 0xa6, 0x56, 0x4c, 0xb3, 0x89, + 0x03, 0x6e, 0x50, 0x36, 0xe3, 0xc8, 0xc5, 0xad, + 0x1b, 0xb9, 0x1a, 0x49, 0x6e, 0x09, 0xe5, 0x31, + 0xbc, 0xca, 0x39, 0x7d, 0x69, 0xce, 0xe9, 0x10, + 0xec, 0x42, 0x56, 0x41, 0xb4, 0xba, 0x7c, 0x30, + 0x5c, 0x63, 0xc6, 0xe1, 0x91, 0xd5, 0xae, 0xdd, + 0xee, 0x0b, 0xba, 0x65, 0x35, 0x91, 0xa2, 0x9d, + 0x21, 0x69, 0xc6, 0x65, 0xb2, 0xa8, 0xe3, 0x74, + 0xb9, 0x3b, 0xde, 0x76, 0x52, 0xdb, 0x8a, 0xfb, + 0x48, 0x66, 0x20, 0x7f, 0x0e, 0xb4, 0x8e, 0xd5, + 0xd5, 0x69, 0xdc, 0x8a, 0xcb, 0xa4, 0x3b, 0x47, + 0x24, 0x78, 0x49, 0x2b, 0x5a, 0x2f, 0x95, 0x60, + 0x50, 0x09, 0x24, 0xe1, 0x1b, 0x02, 0x9d, 0xec, + 0xee, 0xb8, 0xf8, 0x1e, 0xee, 0xa3, 0x96, 0x36, + 0x67, 0x85, 0xae, 0x46, 0x1a, 0xd2, 0x70, 0xc5, + 0x14, 0x7f, 0x85, 0xae, 0xf7, 0x38, 0x8d, 0x63, + 0xcc, 0x56, 0xda, 0x52, 0xa1, 0x99, 0x17, 0x1b, + 0x19, 0xfc, 0xff, 0x00, 0x50, 0xe8, 0xcb, 0x4f, + 0xd5, 0x20, 0x3a, 0x8e, 0x9b, 0x2d, 0x41, 0x60, + 0x51, 0x60, 0xf1, 0x48, 0x6c, 0xad, 0x89, 0x11, + 0x81, 0x83, 0x2d, 0x94, 0x67, 0x62, 0x62, 0xf6, + 0x85, 0x1b, 0xc3, 0x48, 0x18, 0x7e, 0x5e, 0xa4, + 0xd2, 0xe8, 0x71, 0x4e, 0x12, 0x24, 0x94, 0xda, + 0x8d, 0x6b, 0xcc, 0xab, 0x50, 0xaa, 0xbc, 0x7b, + 0x4a, 0x81, 0x3e, 0x78, 0xb3, 0x02, 0x0f, 0x94, + 0x52, 0x5b, 0x1f, 0x94, 0x74, 0x9a, 0x55, 0x2a, + 0x1b, 0x5e, 0x1a, 0xeb, 0x0c, 0x31, 0x99, 0x26, + 0x24, 0x16, 0x8a, 0x08, 0xe5, 0x77, 0x52, 0x5b, + 0x88, 0xbf, 0x1e, 0xe6, 0x62, 0x58, 0x3e, 0x3d, + 0xac, 0x3e, 0xcc, 0x41, 0xeb, 0xbb, 0x75, 0x08, + 0xec, 0xe8, 0xda, 0x8c, 0x21, 0x5c, 0x3d, 0x7b, + 0xc9, 0x01, 0xfa, 0x6d, 0xb3, 0x11, 0x58, 0x8c, + 0x67, 0x95, 0x4b, 0xc7, 0xb9, 0xbc, 0xe1, 0x0b, + 0xa4, 0xb8, 0x04, 0x98, 0x94, 0x75, 0x27, 0xed, + 0x5f, 0xff, 0x00, 0x9c, 0x9f, 0xfb, 0xfa, 0x27, + 0xad, 0x1d, 0xeb, 0x59, 0xed, 0xda, 0x5a, 0x7d, + 0xb2, 0x2b, 0x41, 0xc7, 0x3c, 0xc6, 0xcc, 0x51, + 0xc3, 0x2d, 0x89, 0xe4, 0x33, 0x4a, 0x12, 0xa4, + 0x0b, 0x21, 0xc9, 0x93, 0x72, 0x09, 0x02, 0xa8, + 0x25, 0xf6, 0x81, 0xed, 0x03, 0x3d, 0x5c, 0xee, + 0x7a, 0x70, 0xea, 0xd1, 0xd4, 0xa5, 0x2c, 0xf0, + 0x87, 0xd9, 0x0c, 0xf0, 0xb5, 0x72, 0x82, 0xcb, + 0x58, 0x8e, 0x48, 0x83, 0xbf, 0x1c, 0x9b, 0x4e, + 0x22, 0x95, 0x31, 0xc8, 0x37, 0x89, 0x23, 0x43, + 0x8d, 0x80, 0xe7, 0xa5, 0x96, 0x48, 0x9b, 0x74, + 0x6e, 0xc8, 0xf8, 0x75, 0xdc, 0xa4, 0xa9, 0xda, + 0xe8, 0xc8, 0xe3, 0x23, 0xec, 0xe8, 0xc5, 0x5b, + 0xf8, 0xa9, 0x20, 0xf8, 0xeb, 0xb3, 0x75, 0x79, + 0x66, 0xb9, 0xe8, 0xb5, 0x06, 0xad, 0x35, 0x24, + 0xaa, 0x7c, 0xda, 0xae, 0x92, 0x49, 0x0c, 0x70, + 0x64, 0x22, 0xc4, 0xdb, 0x37, 0xb9, 0xcb, 0x84, + 0x54, 0x91, 0xb6, 0xaa, 0xfb, 0x54, 0xaf, 0x46, + 0xe4, 0x52, 0xe9, 0x9a, 0xa5, 0xca, 0x5a, 0xcd, + 0x5a, 0xe6, 0x8f, 0x34, 0x79, 0xb7, 0x51, 0xdb, + 0x86, 0x68, 0xde, 0x00, 0xad, 0xba, 0x1a, 0x82, + 0x27, 0x45, 0xdc, 0x50, 0xae, 0xd9, 0x37, 0x19, + 0x10, 0x82, 0x42, 0x90, 0xd1, 0x24, 0x77, 0x68, + 0xd3, 0x8d, 0xac, 0xef, 0x9a, 0x75, 0x80, 0x2c, + 0xf5, 0x32, 0x86, 0xd3, 0xba, 0x57, 0xf3, 0x0b, + 0x16, 0x88, 0x44, 0xce, 0xd3, 0xb3, 0x88, 0x5d, + 0x5f, 0x31, 0xa1, 0x6c, 0x03, 0x81, 0xd4, 0x5f, + 0xa3, 0xcd, 0x27, 0x92, 0x79, 0xa6, 0xee, 0x16, + 0x64, 0x36, 0x5a, 0x2d, 0xd0, 0x57, 0xb9, 0x1e, + 0xd9, 0x5e, 0x49, 0xb3, 0x1c, 0x8f, 0xc3, 0x32, + 0x16, 0xfa, 0x6f, 0xf0, 0x70, 0x36, 0x17, 0xce, + 0xd6, 0x1d, 0x2f, 0x63, 0x6c, 0xa6, 0x26, 0xd1, + 0xe7, 0xd3, 0x75, 0x1a, 0xe8, 0x62, 0x12, 0x1d, + 0x72, 0x1b, 0xbc, 0x68, 0x2d, 0xec, 0x68, 0x64, + 0x88, 0x9a, 0xcb, 0x94, 0x6e, 0x51, 0xbd, 0xb0, + 0xa0, 0x2e, 0x7c, 0xe4, 0x11, 0xd4, 0xd5, 0x74, + 0x8a, 0x08, 0x9e, 0xaa, 0xcc, 0x86, 0x24, 0xa7, + 0x71, 0x6c, 0xb0, 0xc0, 0x48, 0x1a, 0xd5, 0xf8, + 0x2d, 0x70, 0xc5, 0x1a, 0x4a, 0x4c, 0x48, 0x4a, + 0xb2, 0xab, 0x4a, 0x16, 0x4f, 0x64, 0x6a, 0xe8, + 0x86, 0x41, 0xd6, 0xa1, 0x27, 0x68, 0x69, 0xf2, + 0xbd, 0x7b, 0x4d, 0x34, 0x8f, 0x37, 0x1c, 0xea, + 0x42, 0x33, 0xe2, 0x1b, 0x0c, 0x48, 0xb3, 0x0f, + 0x35, 0x69, 0xe3, 0x77, 0x54, 0x96, 0x5c, 0x46, + 0x00, 0xdc, 0xa4, 0x2b, 0x1d, 0xca, 0xa3, 0xad, + 0x79, 0xf4, 0x8e, 0xe6, 0x8a, 0x9d, 0x6a, 0xb4, + 0xde, 0x19, 0x66, 0x92, 0xdb, 0xc3, 0xa8, 0xcc, + 0x23, 0x47, 0x85, 0xcc, 0xea, 0xad, 0x14, 0xa9, + 0x5e, 0x11, 0x0c, 0xb5, 0xe4, 0x91, 0xd9, 0x9b, + 0x32, 0xb5, 0x85, 0x6f, 0x76, 0x37, 0xef, 0x51, + 0xa8, 0x69, 0xf6, 0x34, 0xf9, 0xe5, 0xaf, 0x32, + 0x14, 0x68, 0xce, 0x19, 0x7e, 0xdf, 0xc8, 0xa9, + 0xfd, 0xe4, 0x6f, 0x95, 0x61, 0xf3, 0xf1, 0xe0, + 0x82, 0x3a, 0x54, 0x67, 0xc2, 0x0f, 0xfc, 0xba, + 0xd0, 0x34, 0x18, 0xb4, 0x48, 0xeb, 0xea, 0xba, + 0xb5, 0x6b, 0x12, 0x59, 0x97, 0x6c, 0x9a, 0x75, + 0x3e, 0x10, 0x50, 0xf8, 0xdd, 0xea, 0x6c, 0xc9, + 0x2b, 0x44, 0x91, 0x84, 0x52, 0x25, 0x43, 0xbf, + 0x31, 0x01, 0xbf, 0xcc, 0xb8, 0x55, 0xd3, 0x7b, + 0xbb, 0x7d, 0x6b, 0x1f, 0x8b, 0xc7, 0xb2, 0xb1, + 0x5a, 0xd0, 0xab, 0x59, 0x78, 0xe7, 0x85, 0xa7, + 0x9c, 0x3b, 0x70, 0x48, 0xb8, 0x76, 0x7d, 0xc0, + 0xc4, 0xbe, 0x41, 0x4c, 0x82, 0xff, 0x00, 0x04, + 0x81, 0x61, 0xeb, 0x3b, 0x31, 0x06, 0x85, 0x69, + 0x1a, 0x7b, 0x80, 0x24, 0x8a, 0xd8, 0x6d, 0xb6, + 0xe4, 0x58, 0xf1, 0x0c, 0x41, 0x36, 0xa8, 0x8b, + 0x11, 0x8d, 0x87, 0xc0, 0x3b, 0xdb, 0x3f, 0x97, + 0xae, 0xeb, 0xb9, 0x7e, 0xad, 0x3a, 0xd5, 0xe0, + 0xb7, 0xb6, 0x17, 0x19, 0x31, 0xd6, 0x79, 0x63, + 0x5f, 0xcb, 0x03, 0x0f, 0x9c, 0x32, 0x2b, 0x6e, + 0x2e, 0x8a, 0x08, 0x1e, 0x49, 0x23, 0xae, 0xd6, + 0xd4, 0xef, 0x49, 0xae, 0x54, 0xf5, 0x56, 0x26, + 0x75, 0xd9, 0x65, 0x54, 0x4d, 0x33, 0xcb, 0x1e, + 0xfe, 0x02, 0x11, 0x4c, 0x65, 0xf0, 0x70, 0x4f, + 0xc8, 0xf7, 0x13, 0x81, 0x9e, 0xa0, 0xb8, 0xa6, + 0xd4, 0x38, 0xd4, 0x74, 0x05, 0xdd, 0x3a, 0x83, + 0x5d, 0xab, 0x66, 0xc4, 0x99, 0x96, 0x30, 0x12, + 0x29, 0x43, 0x20, 0xe6, 0x2a, 0x42, 0xe4, 0xc4, + 0xdb, 0x5d, 0xa3, 0xf0, 0x48, 0xf2, 0x27, 0xce, + 0xec, 0x5e, 0xd0, 0x86, 0x35, 0xa8, 0xe3, 0xc7, + 0xa7, 0x1b, 0x86, 0x76, 0xfe, 0xac, 0xc7, 0xef, + 0x7c, 0xe7, 0xdb, 0x27, 0xf3, 0x1e, 0x3c, 0x75, + 0x0c, 0x76, 0x0a, 0x23, 0x84, 0x12, 0x6f, 0x38, + 0xdd, 0x0c, 0x5e, 0x3e, 0xfe, 0xe2, 0x18, 0x65, + 0x40, 0xc6, 0x0f, 0x93, 0xee, 0xe9, 0xa1, 0x9c, + 0x17, 0x76, 0x82, 0x43, 0x1e, 0xc5, 0xfa, 0x68, + 0x87, 0x7e, 0xfd, 0xcd, 0xb9, 0xbf, 0x7b, 0x72, + 0xb0, 0x28, 0x02, 0x04, 0x1b, 0x76, 0xb1, 0xdc, + 0x73, 0x81, 0xab, 0xf6, 0xcc, 0x1a, 0xb0, 0x62, + 0xc9, 0x36, 0xc9, 0xa3, 0x5f, 0x30, 0x32, 0x4a, + 0x0b, 0x24, 0xac, 0xfb, 0xd2, 0x75, 0x47, 0x1b, + 0x58, 0xf8, 0x74, 0x19, 0x19, 0x51, 0x82, 0xbe, + 0x73, 0xaa, 0x76, 0x5e, 0xb5, 0x56, 0xed, 0x88, + 0xa3, 0xa5, 0x72, 0x78, 0xd5, 0xfd, 0x92, 0xa5, + 0x69, 0x36, 0xc8, 0xa7, 0x0d, 0x91, 0xfc, 0x71, + 0x9c, 0x1c, 0x7d, 0xc1, 0xea, 0x0e, 0xd5, 0xd5, + 0x65, 0x9e, 0x38, 0x64, 0xad, 0x62, 0x04, 0x66, + 0xc3, 0x4b, 0x24, 0x0c, 0xa8, 0x83, 0x05, 0xb2, + 0x49, 0xf1, 0xe7, 0x6e, 0x00, 0xcf, 0x96, 0xf1, + 0x8e, 0xb5, 0x0a, 0xd0, 0xe8, 0xb4, 0xc3, 0x99, + 0x2d, 0x34, 0x22, 0x0f, 0x4b, 0xc7, 0x16, 0x09, + 0x19, 0x33, 0x39, 0x91, 0xce, 0xe4, 0x57, 0x1f, + 0x50, 0xfd, 0x27, 0x01, 0x49, 0x03, 0x24, 0xf4, + 0x75, 0xee, 0xde, 0x77, 0x49, 0x9e, 0x85, 0xa7, + 0xb9, 0xcf, 0xbc, 0x59, 0x31, 0x40, 0xa4, 0xb6, + 0xf1, 0xc0, 0xac, 0x39, 0xdf, 0xf6, 0x4b, 0xed, + 0xca, 0xed, 0xde, 0x70, 0xcc, 0x3c, 0x0f, 0xfa, + 0x12, 0x19, 0x6c, 0x38, 0x8a, 0x14, 0x69, 0x24, + 0x21, 0x88, 0x44, 0x52, 0xcc, 0xc1, 0x14, 0xbb, + 0x61, 0x54, 0x12, 0x70, 0xaa, 0x4f, 0x8f, 0xe1, + 0xd7, 0x69, 0xe8, 0xba, 0x8d, 0x1b, 0x10, 0x6a, + 0x93, 0x54, 0x66, 0xad, 0x3a, 0x32, 0x46, 0xa8, + 0x8e, 0xd3, 0x36, 0xf2, 0x76, 0xb6, 0xc3, 0xb0, + 0x44, 0x03, 0xa2, 0xb7, 0x24, 0x9e, 0xdd, 0xbf, + 0x97, 0xc9, 0xcf, 0x4b, 0x6a, 0x3f, 0x49, 0xae, + 0xd7, 0x8a, 0x7d, 0x3e, 0xb8, 0x86, 0xbd, 0xa6, + 0xb3, 0x25, 0xdd, 0x3e, 0x09, 0xb8, 0xa5, 0xe7, + 0x8a, 0x0c, 0xcc, 0xca, 0x92, 0xbe, 0x25, 0x31, + 0xbe, 0x57, 0x67, 0xbc, 0xed, 0x6f, 0xdc, 0xd9, + 0xd6, 0x91, 0x2e, 0x9c, 0xf5, 0x29, 0xb4, 0xb3, + 0xd1, 0x33, 0x25, 0x3a, 0xc6, 0x29, 0x60, 0xad, + 0x6a, 0x33, 0x62, 0xd0, 0x82, 0x33, 0x03, 0x56, + 0x58, 0xe2, 0x8e, 0x28, 0xeb, 0xa4, 0x8d, 0x0b, + 0x3b, 0x1d, 0xde, 0xe5, 0x23, 0x62, 0xbc, 0x7b, + 0x86, 0x96, 0x29, 0x50, 0x6b, 0x2b, 0xaa, 0x3d, + 0xcb, 0xad, 0x3b, 0xc3, 0x62, 0x38, 0x60, 0xb1, + 0x7e, 0xc6, 0xd9, 0xa3, 0x9e, 0xcc, 0xad, 0x3f, + 0x04, 0xaf, 0x64, 0x45, 0x96, 0x78, 0xca, 0x98, + 0xd5, 0x00, 0x75, 0x60, 0x5d, 0x86, 0xc0, 0xb3, + 0x6a, 0xfa, 0x53, 0x08, 0xa1, 0xaf, 0x2c, 0x8a, + 0xac, 0x56, 0x19, 0xb4, 0xf9, 0xe3, 0xb5, 0xce, + 0xd1, 0x3c, 0xb1, 0x44, 0x9c, 0x61, 0x54, 0x2c, + 0x65, 0x1a, 0x51, 0xb2, 0xbc, 0xb0, 0x9e, 0x70, + 0xf9, 0x8d, 0xd7, 0x69, 0xce, 0xaf, 0x43, 0x41, + 0x35, 0x27, 0xac, 0x97, 0x27, 0x8a, 0x6d, 0xc9, + 0xc7, 0x6c, 0xc5, 0x2c, 0xf5, 0xe7, 0x88, 0xc9, + 0x01, 0x71, 0x36, 0xea, 0xb2, 0xab, 0x4d, 0x1c, + 0x6c, 0xa2, 0x27, 0x4c, 0xab, 0x6d, 0x44, 0x99, + 0x7d, 0x9b, 0xd6, 0xbf, 0x6f, 0xf6, 0xed, 0xc1, + 0x1b, 0xeb, 0x77, 0x6b, 0x5c, 0xd4, 0x26, 0x22, + 0xa5, 0x65, 0xff, 0x00, 0x0a, 0x42, 0xcb, 0x89, + 0x64, 0x48, 0x55, 0x9e, 0x28, 0x04, 0x52, 0xbb, + 0x3a, 0xb2, 0x80, 0x91, 0xd7, 0xe3, 0x55, 0xda, + 0xdb, 0xcf, 0xd5, 0xea, 0x2e, 0xde, 0x8b, 0x90, + 0xdc, 0xd5, 0xed, 0x55, 0xfc, 0x26, 0x29, 0x1d, + 0x29, 0x59, 0xa3, 0x5a, 0x19, 0xda, 0x17, 0xc4, + 0x4d, 0x15, 0x68, 0xda, 0x5a, 0x49, 0x6a, 0x3b, + 0x05, 0xd0, 0xcb, 0x1f, 0x31, 0x94, 0x29, 0x44, + 0x95, 0xec, 0x3f, 0xdf, 0xb9, 0xb4, 0x6e, 0xdb, + 0xee, 0xf4, 0x8e, 0x05, 0x47, 0xd3, 0xf5, 0x04, + 0x18, 0xa3, 0x76, 0x3d, 0x92, 0xd7, 0x92, 0x15, + 0x95, 0x4d, 0x98, 0x59, 0x22, 0x85, 0x7d, 0x9b, + 0xa5, 0x6d, 0xfc, 0x82, 0x33, 0x0c, 0x9b, 0xa6, + 0x1e, 0xd5, 0x97, 0xad, 0x27, 0xf4, 0x63, 0xa7, + 0x50, 0xbc, 0x35, 0x18, 0x24, 0x92, 0xd4, 0x30, + 0xac, 0x12, 0xd5, 0x4b, 0x10, 0x0b, 0x55, 0x9e, + 0x50, 0xdb, 0x9e, 0x62, 0x62, 0xf1, 0x32, 0x14, + 0x5c, 0xc0, 0xa7, 0xd8, 0xae, 0xe1, 0xdb, 0x7e, + 0x15, 0x44, 0x96, 0x3b, 0x9e, 0x7b, 0x34, 0xe1, + 0xb1, 0xdb, 0x11, 0xbe, 0x90, 0x81, 0x95, 0x42, + 0xd3, 0x7d, 0xa7, 0x99, 0x22, 0x5d, 0xed, 0x1a, + 0xd9, 0xf6, 0xb2, 0xee, 0x9d, 0x86, 0x29, 0xa3, + 0x46, 0x32, 0xb9, 0xfb, 0x9b, 0x9d, 0xbd, 0x51, + 0xd4, 0xbc, 0x15, 0xe6, 0x8d, 0x0a, 0x09, 0x38, + 0x2d, 0x69, 0xa6, 0xe7, 0xd4, 0x06, 0xc4, 0x89, + 0x85, 0x29, 0x24, 0x8a, 0x44, 0x92, 0xc6, 0x42, + 0xae, 0xe2, 0x9b, 0x08, 0xdb, 0x92, 0x4f, 0x49, + 0xda, 0xf5, 0x10, 0x13, 0x2c, 0x57, 0xb9, 0x26, + 0xb1, 0x34, 0x8e, 0xd0, 0x29, 0x48, 0xa3, 0xdf, + 0x2c, 0xd3, 0xa3, 0x30, 0x3b, 0x18, 0x2c, 0x79, + 0xc0, 0x65, 0x43, 0x87, 0x23, 0x68, 0xf3, 0x9e, + 0xac, 0x76, 0x26, 0x93, 0x65, 0x01, 0xbd, 0x28, + 0xb0, 0xcb, 0xca, 0xd9, 0x1b, 0x91, 0xe4, 0x57, + 0xda, 0x30, 0x77, 0xb3, 0xb1, 0x65, 0x44, 0x54, + 0x52, 0x19, 0x7e, 0xe4, 0x05, 0x24, 0x61, 0xbb, + 0x63, 0x43, 0xd2, 0x2b, 0xcd, 0x6f, 0x4c, 0x41, + 0x52, 0xd0, 0x83, 0x02, 0x4d, 0x44, 0x3c, 0x8b, + 0x5b, 0x38, 0x60, 0x5f, 0x6b, 0xba, 0xa9, 0x04, + 0x8d, 0xd8, 0x7c, 0xfd, 0xb3, 0xf6, 0xea, 0x38, + 0xe4, 0x86, 0xcd, 0x68, 0x9f, 0x52, 0xed, 0xd5, + 0xe6, 0x96, 0x22, 0xb0, 0x98, 0x5f, 0x9e, 0xc0, + 0x77, 0x83, 0xcc, 0x12, 0xc8, 0xe1, 0xb9, 0x1c, + 0x9c, 0x44, 0x76, 0x49, 0x8d, 0xd0, 0xe3, 0xc2, + 0xe3, 0xa3, 0x95, 0xdd, 0xfa, 0xee, 0x81, 0xed, + 0xd7, 0x23, 0x8c, 0xe2, 0x20, 0xc5, 0x0f, 0xb7, + 0xf5, 0x67, 0xc0, 0xf3, 0xa9, 0x1f, 0xb4, 0x87, + 0xf8, 0x8f, 0xe7, 0xd4, 0x47, 0x2b, 0x99, 0x04, + 0x91, 0x67, 0x23, 0x0e, 0xb1, 0xee, 0xf0, 0x71, + 0xf0, 0x15, 0xbe, 0x47, 0x91, 0xe7, 0xc0, 0x3f, + 0x63, 0xe3, 0xad, 0x90, 0x47, 0x17, 0xb5, 0xa4, + 0x60, 0xa9, 0xed, 0xfd, 0xac, 0x99, 0x03, 0xf9, + 0xac, 0x72, 0x48, 0xff, 0x00, 0xd8, 0x18, 0x9e, + 0xa3, 0x5a, 0xb2, 0xd6, 0x7f, 0x4d, 0xa9, 0xdb, + 0xa9, 0xed, 0x22, 0x2d, 0xe8, 0xd1, 0x00, 0xc5, + 0x72, 0x18, 0x21, 0x04, 0x15, 0x56, 0x38, 0x6c, + 0xaf, 0xe6, 0x56, 0x52, 0x32, 0x0f, 0x57, 0x74, + 0xee, 0xe3, 0xb9, 0xc5, 0xf8, 0x7d, 0xda, 0xf6, + 0x6a, 0x3b, 0x41, 0x24, 0xd6, 0xe4, 0x51, 0xb2, + 0x7a, 0x92, 0x09, 0x43, 0xac, 0x32, 0x8c, 0x96, + 0x60, 0x36, 0x92, 0xbe, 0x77, 0x26, 0xd6, 0x47, + 0x4d, 0xe5, 0x12, 0x4a, 0x27, 0x48, 0x89, 0xa6, + 0xfc, 0x4a, 0x1b, 0xa1, 0x62, 0xf3, 0x1a, 0x69, + 0xfe, 0x96, 0x49, 0x70, 0x4b, 0x06, 0x69, 0x22, + 0xde, 0xca, 0x15, 0x49, 0xe3, 0x12, 0x29, 0x5c, + 0x03, 0xb4, 0x0d, 0xdd, 0x77, 0x35, 0xb7, 0x97, + 0x4a, 0x49, 0x4c, 0x7c, 0x71, 0xcc, 0xf2, 0xae, + 0xdc, 0x87, 0xdd, 0xc6, 0x50, 0x2b, 0xe5, 0x84, + 0x6e, 0xa3, 0x26, 0x41, 0xf9, 0x0f, 0xd8, 0x90, + 0x32, 0x3a, 0xa7, 0x4f, 0xd6, 0x59, 0xab, 0x5e, + 0x33, 0xb6, 0x49, 0xa6, 0x5c, 0x33, 0x1f, 0x68, + 0xdb, 0xc8, 0xcc, 0x4f, 0xf6, 0x2e, 0x00, 0x19, + 0x24, 0xfc, 0x7c, 0xff, 0x00, 0xd1, 0xa1, 0x5e, + 0x1a, 0x66, 0xab, 0x56, 0xf1, 0x7e, 0x23, 0x5b, + 0xd4, 0x48, 0x92, 0x6d, 0x2f, 0xb6, 0x5f, 0x4d, + 0x30, 0x84, 0xed, 0xda, 0xf9, 0x1c, 0xa5, 0x33, + 0xed, 0x23, 0xf8, 0xfb, 0x73, 0xd5, 0xae, 0xff, + 0x00, 0xd2, 0x9f, 0x4b, 0x5e, 0x3b, 0x13, 0x0d, + 0x48, 0xc1, 0x5f, 0x7b, 0x7a, 0x49, 0x55, 0x0c, + 0xd9, 0x8b, 0xd4, 0xe1, 0xf8, 0xf8, 0xc0, 0x23, + 0x97, 0x05, 0x47, 0x8f, 0xdc, 0xc1, 0xc7, 0x4b, + 0xdd, 0x7a, 0x0d, 0x2b, 0x5a, 0x7d, 0x1b, 0x42, + 0x63, 0xa2, 0x9a, 0x96, 0x7d, 0x44, 0x46, 0x03, + 0x6a, 0x5b, 0x88, 0x59, 0x0d, 0x14, 0x2d, 0x27, + 0x3c, 0xe7, 0xf7, 0xc3, 0xbc, 0x92, 0x06, 0x3b, + 0x8c, 0x8d, 0x18, 0x3b, 0x54, 0x49, 0xde, 0xba, + 0x56, 0xab, 0xac, 0x53, 0x86, 0x9e, 0xf5, 0xab, + 0x52, 0x0a, 0xe2, 0x85, 0x68, 0xe3, 0x96, 0x94, + 0x55, 0x6c, 0x93, 0x3d, 0x69, 0x39, 0x21, 0xcc, + 0x02, 0xcc, 0x4b, 0x56, 0x58, 0xe3, 0x58, 0xa4, + 0x72, 0xa0, 0xfd, 0x44, 0x1b, 0xc3, 0x6e, 0xee, + 0x58, 0xf5, 0x9b, 0x74, 0x2f, 0x45, 0xa0, 0x4c, + 0xe9, 0xa8, 0xb5, 0xda, 0xd3, 0xba, 0xc3, 0x28, + 0x86, 0xc4, 0xda, 0x60, 0xac, 0xa8, 0x16, 0xb4, + 0xac, 0xc8, 0x14, 0x25, 0x9f, 0x32, 0x2a, 0xba, + 0x9c, 0xf2, 0x79, 0xfa, 0x80, 0x37, 0x6d, 0x55, + 0xd4, 0xd5, 0x34, 0x98, 0xf5, 0x37, 0x59, 0x75, + 0x58, 0x28, 0x4f, 0xf8, 0x94, 0x8c, 0x56, 0x5e, + 0x35, 0x92, 0x78, 0xde, 0x9c, 0x76, 0x24, 0x5c, + 0xab, 0x4c, 0x21, 0xde, 0x09, 0xce, 0x58, 0xf2, + 0x10, 0x4e, 0xf0, 0xc6, 0x17, 0xd1, 0xea, 0xab, + 0xc6, 0xfe, 0x43, 0x67, 0x7c, 0x53, 0x01, 0x24, + 0x63, 0xf8, 0x95, 0x52, 0x30, 0x01, 0x18, 0xc8, + 0x3f, 0x6c, 0x06, 0xf2, 0x3a, 0x36, 0x7b, 0x7c, + 0x45, 0xcb, 0xc5, 0x49, 0x63, 0x60, 0xdb, 0x66, + 0x48, 0x20, 0xfb, 0x2b, 0xbb, 0x15, 0x70, 0x3e, + 0x55, 0x56, 0x47, 0x38, 0xf8, 0x01, 0x98, 0xfd, + 0xcf, 0x46, 0x37, 0xd3, 0xaa, 0xcf, 0x34, 0x1a, + 0xc5, 0x9b, 0x51, 0xe5, 0x5d, 0xab, 0xc7, 0x44, + 0x5a, 0x91, 0x8b, 0x32, 0xb2, 0x85, 0xf7, 0xc9, + 0x2e, 0x4c, 0x2c, 0xbb, 0x79, 0x1b, 0x60, 0x5c, + 0x64, 0x08, 0x89, 0xe8, 0x77, 0x6d, 0xa4, 0x90, + 0xc6, 0x25, 0xbd, 0x12, 0xd6, 0x12, 0x0b, 0x27, + 0x8d, 0x10, 0x36, 0xfb, 0x4d, 0x1a, 0x1f, 0xe8, + 0xd2, 0x08, 0x58, 0x45, 0x27, 0x90, 0x91, 0x81, + 0xe5, 0x9b, 0x1c, 0xe3, 0x60, 0xa1, 0xac, 0x0b, + 0x11, 0xb4, 0x90, 0xea, 0xb7, 0x2b, 0x46, 0x93, + 0x4a, 0xe6, 0xa7, 0xe1, 0xfa, 0x8d, 0xbe, 0x65, + 0x7d, 0xa6, 0x26, 0xe5, 0x8a, 0x14, 0xe1, 0x81, + 0x93, 0xf2, 0xa8, 0x2b, 0x22, 0xc8, 0x1c, 0xe4, + 0xab, 0x63, 0xa6, 0xd7, 0x6e, 0x3d, 0x78, 0x60, + 0x5b, 0x4d, 0x23, 0x57, 0x9f, 0x95, 0xe5, 0x14, + 0x75, 0xa9, 0x2c, 0x38, 0x8e, 0x63, 0x24, 0x09, + 0x38, 0x82, 0xbc, 0x06, 0x00, 0xf1, 0x85, 0x12, + 0x46, 0xfb, 0xb9, 0x22, 0x3e, 0x0f, 0x9e, 0x53, + 0xa6, 0xf7, 0xc4, 0xda, 0x99, 0x94, 0x47, 0x00, + 0x8d, 0xe0, 0xab, 0x15, 0x8b, 0x11, 0x9a, 0x96, + 0xc8, 0x84, 0x49, 0x93, 0x96, 0x9c, 0xe2, 0x22, + 0x59, 0x76, 0x15, 0x87, 0x0b, 0x30, 0x5f, 0x76, + 0xd6, 0x52, 0x08, 0xb9, 0xdd, 0xd1, 0xd4, 0xcc, + 0x77, 0x27, 0x85, 0x24, 0xf8, 0x5a, 0xf0, 0x63, + 0xd6, 0xc8, 0xfe, 0xd2, 0xb1, 0x43, 0x01, 0x2f, + 0x24, 0x8e, 0xfb, 0xd1, 0x42, 0x04, 0xc9, 0x2e, + 0xb8, 0x23, 0x23, 0xa9, 0x35, 0x6d, 0x5a, 0x04, + 0x33, 0x2e, 0x95, 0xc2, 0x0c, 0xc2, 0x69, 0x16, + 0x5b, 0xd1, 0x5a, 0xb7, 0x12, 0xb3, 0x86, 0x90, + 0xc9, 0x14, 0xd5, 0x84, 0x28, 0xa1, 0x32, 0x64, + 0x8a, 0xad, 0xdd, 0xc8, 0xa0, 0xf0, 0x97, 0x60, + 0x14, 0xd9, 0xd6, 0x6d, 0xeb, 0x57, 0xe2, 0xa7, + 0x46, 0xa6, 0x9c, 0x2a, 0xca, 0xf3, 0x26, 0xa6, + 0x5e, 0x39, 0x7d, 0x56, 0x16, 0x36, 0x11, 0xca, + 0x59, 0x4e, 0x1f, 0x85, 0x82, 0x7e, 0xae, 0x49, + 0x2e, 0x4c, 0x6a, 0xce, 0x22, 0xdf, 0xb7, 0x51, + 0xb2, 0x74, 0xad, 0x42, 0x95, 0x38, 0x23, 0xd3, + 0x78, 0xa6, 0x29, 0x22, 0x47, 0x6a, 0xac, 0x7e, + 0xae, 0x52, 0xd6, 0xa2, 0x4e, 0x3a, 0xae, 0xd6, + 0x03, 0xf2, 0xe1, 0x4a, 0xc6, 0x78, 0x1a, 0x35, + 0x73, 0x02, 0xae, 0x0a, 0x84, 0x32, 0xed, 0x2e, + 0xed, 0xeb, 0x3b, 0x6b, 0x70, 0xd7, 0xa3, 0x83, + 0x1c, 0x2d, 0xed, 0x56, 0x68, 0xc9, 0xad, 0x20, + 0x01, 0x47, 0xe2, 0xcc, 0x70, 0x04, 0xdf, 0x23, + 0xc0, 0xcf, 0x51, 0xd5, 0x5b, 0x0a, 0xab, 0x1c, + 0xd1, 0xb0, 0x98, 0xbc, 0x6a, 0x07, 0x31, 0x24, + 0xae, 0xe0, 0xe3, 0x72, 0x46, 0x54, 0x15, 0xda, + 0xc3, 0x3b, 0x87, 0x91, 0xf6, 0x3d, 0x7a, 0x0d, + 0x42, 0xbc, 0x48, 0xcd, 0xf4, 0x16, 0x34, 0xc1, + 0x81, 0x7e, 0xac, 0x69, 0x1e, 0x40, 0x3e, 0xca, + 0xea, 0xcc, 0x48, 0x40, 0x78, 0xf6, 0x2f, 0x82, + 0x7c, 0x8f, 0x9c, 0x47, 0x5a, 0xc4, 0x25, 0xa2, + 0x87, 0x59, 0x52, 0x22, 0x6d, 0xac, 0x16, 0x95, + 0x92, 0x03, 0x7c, 0xf9, 0xe1, 0x52, 0x99, 0x39, + 0x12, 0x93, 0xee, 0xdf, 0x27, 0xb9, 0xf7, 0xc6, + 0xec, 0x8e, 0x7d, 0x6c, 0x6a, 0x9b, 0xf5, 0xed, + 0x9b, 0x14, 0x87, 0xc5, 0x39, 0x13, 0x70, 0x1c, + 0xa1, 0x4f, 0xbe, 0xb3, 0x05, 0xc7, 0x22, 0x67, + 0x6a, 0xa8, 0x25, 0x3f, 0x77, 0x08, 0xab, 0xab, + 0x6a, 0x2f, 0xa7, 0xda, 0x80, 0x2e, 0xa8, 0x59, + 0x2e, 0x4b, 0x62, 0x49, 0xa5, 0x5a, 0xed, 0x26, + 0xdd, 0xf2, 0xc0, 0xb0, 0x23, 0xe5, 0x22, 0x9c, + 0xc2, 0x39, 0x04, 0x6a, 0x61, 0xe4, 0x90, 0x1c, + 0xb1, 0x60, 0x0f, 0x8e, 0xec, 0x49, 0x45, 0x69, + 0xe2, 0xb1, 0x63, 0x7f, 0x1a, 0x1b, 0x09, 0x90, + 0x76, 0xc8, 0xb2, 0x3a, 0xf8, 0xfd, 0xa0, 0xf2, + 0x9f, 0x03, 0x7a, 0xc8, 0x48, 0xf2, 0x36, 0x7e, + 0xf0, 0xb6, 0xd0, 0x14, 0x92, 0x12, 0xd1, 0xcb, + 0x1b, 0x8d, 0xb2, 0x23, 0x05, 0x61, 0x9d, 0xc0, + 0xe0, 0xa8, 0x0d, 0xe5, 0x5b, 0x07, 0xdd, 0xe4, + 0x7c, 0xe4, 0x1f, 0x1d, 0x46, 0x8f, 0x23, 0x6c, + 0x8d, 0x5d, 0xdc, 0x86, 0xc2, 0xc6, 0xa5, 0x98, + 0xfb, 0x49, 0x38, 0x51, 0xe4, 0xf8, 0xc9, 0x3f, + 0xcb, 0x3d, 0x48, 0x92, 0x70, 0x0f, 0xd5, 0xac, + 0x0d, 0xc8, 0xb8, 0xcc, 0x0e, 0x17, 0xdd, 0x82, + 0xad, 0xbc, 0x8c, 0x63, 0xee, 0xa4, 0x7c, 0xf8, + 0xe8, 0xc7, 0x61, 0x26, 0x84, 0x3c, 0x12, 0xb3, + 0x04, 0x65, 0xc2, 0xa1, 0x66, 0x04, 0x6d, 0x27, + 0xda, 0x06, 0x72, 0x00, 0xf2, 0x31, 0x9c, 0x1e, + 0xb4, 0x78, 0xe5, 0xfc, 0x5a, 0x16, 0x35, 0x27, + 0xda, 0x23, 0xd9, 0xb9, 0x91, 0xe3, 0xda, 0xf2, + 0x48, 0x04, 0x52, 0x28, 0xc7, 0xbb, 0x63, 0xfe, + 0x44, 0xfd, 0xf2, 0x08, 0xc6, 0x3a, 0xa5, 0x1c, + 0x0e, 0xb1, 0xfa, 0xca, 0xf9, 0x3c, 0x9b, 0x62, + 0x26, 0x43, 0x19, 0x0c, 0xde, 0x14, 0x24, 0x9b, + 0x43, 0x2b, 0x38, 0xf9, 0x0a, 0x46, 0x71, 0x8c, + 0x9e, 0xb5, 0x1e, 0xe6, 0xab, 0xa1, 0xcd, 0x25, + 0x2a, 0xd5, 0x64, 0x8e, 0x28, 0x2a, 0x9b, 0xd3, + 0xf0, 0x3c, 0x3b, 0xac, 0xbc, 0xa2, 0x74, 0xcb, + 0x3b, 0xa9, 0x66, 0x31, 0xf1, 0xef, 0x06, 0x4f, + 0x4f, 0x96, 0xd8, 0xdc, 0xcc, 0xbf, 0x4d, 0xbf, + 0xbb, 0x3a, 0xd5, 0x4c, 0xc7, 0xd3, 0xc9, 0x33, + 0xa5, 0x54, 0x98, 0xb6, 0x22, 0x0e, 0x63, 0x4e, + 0x50, 0x62, 0x76, 0x79, 0xf6, 0xbc, 0xaa, 0xf1, + 0xbb, 0xb4, 0xa4, 0x45, 0x1b, 0x72, 0x80, 0x3f, + 0x29, 0xea, 0xee, 0xac, 0x6e, 0xe9, 0x97, 0x5d, + 0x9e, 0x8e, 0x9e, 0xb4, 0x6e, 0x44, 0xb1, 0xcf, + 0x6c, 0x09, 0x22, 0x56, 0x06, 0x26, 0x0e, 0x63, + 0x41, 0xed, 0x67, 0x12, 0x18, 0xb6, 0x10, 0xfe, + 0x58, 0x86, 0x0c, 0x0e, 0x3a, 0xbf, 0xad, 0x5b, + 0xd9, 0xa8, 0x6e, 0xd6, 0x74, 0x7a, 0xe1, 0x12, + 0xa3, 0xab, 0xc0, 0x8c, 0x0c, 0x22, 0x54, 0x48, + 0xdc, 0xd8, 0xe1, 0x65, 0x92, 0xc2, 0xce, 0x1c, + 0xf1, 0x65, 0xa4, 0x31, 0x6e, 0x8d, 0x94, 0x29, + 0x5c, 0x9b, 0x56, 0x2b, 0x09, 0x35, 0x27, 0x69, + 0xf4, 0x15, 0x7b, 0x09, 0x17, 0x34, 0x9e, 0x90, + 0xba, 0x28, 0x9a, 0x4a, 0xce, 0x4d, 0xb3, 0x8c, + 0xd8, 0x79, 0x98, 0x6f, 0x81, 0xdb, 0x71, 0x89, + 0x89, 0x65, 0x2a, 0x46, 0x7a, 0xab, 0xac, 0xdd, + 0xaa, 0x67, 0x5a, 0x5a, 0x96, 0x87, 0x50, 0x52, + 0x35, 0x78, 0x20, 0x0a, 0x4a, 0x51, 0x88, 0xc4, + 0x04, 0x8a, 0xd1, 0x82, 0x62, 0x93, 0x9b, 0x73, + 0x7b, 0xf6, 0x9f, 0xcc, 0x1b, 0xc3, 0x28, 0xe9, + 0xbb, 0xc3, 0x59, 0x4f, 0x54, 0xc9, 0xdc, 0x3d, + 0xbf, 0x0f, 0xd5, 0x81, 0x93, 0xf5, 0x47, 0x3c, + 0x30, 0x9d, 0xbb, 0x92, 0x4f, 0xa0, 0x4c, 0x9c, + 0x9e, 0x7e, 0xa6, 0x4e, 0xdc, 0x9c, 0x15, 0xc7, + 0x8a, 0x7d, 0xd7, 0x7b, 0x4e, 0x49, 0x6b, 0x57, + 0x9b, 0x40, 0xb1, 0xc9, 0x62, 0x35, 0xa3, 0x47, + 0x4f, 0xac, 0x6b, 0xec, 0x79, 0x49, 0x66, 0x69, + 0x99, 0x16, 0x35, 0xd9, 0xc6, 0x92, 0xcd, 0x2c, + 0xc4, 0x33, 0xfb, 0x4e, 0xdd, 0xe4, 0x08, 0x8d, + 0x09, 0x90, 0x1b, 0xb6, 0xb5, 0x09, 0x6a, 0xfa, + 0xdb, 0xb7, 0x05, 0x89, 0x25, 0x81, 0xec, 0x1f, + 0xa1, 0x18, 0x8d, 0x6b, 0xd4, 0xe4, 0x92, 0xb2, + 0x3f, 0x04, 0x2a, 0x98, 0x29, 0x85, 0x12, 0x17, + 0x79, 0x30, 0xaf, 0x23, 0x75, 0x76, 0xed, 0x2b, + 0x73, 0x3d, 0x6a, 0x95, 0x20, 0x92, 0xa4, 0x28, + 0x8c, 0xcc, 0xa9, 0x24, 0xd5, 0xe4, 0x77, 0xdb, + 0x10, 0x96, 0xc3, 0x6e, 0x27, 0xd3, 0x57, 0x44, + 0x7c, 0x2b, 0x27, 0x1b, 0xc9, 0x03, 0x82, 0x24, + 0x09, 0x22, 0x19, 0xb4, 0xdd, 0x28, 0xd0, 0x92, + 0x0a, 0xd1, 0xc1, 0x5e, 0xfa, 0x88, 0xda, 0x0d, + 0x41, 0x63, 0x90, 0xd8, 0xab, 0x75, 0x48, 0x78, + 0x2c, 0x45, 0xb2, 0x4d, 0xd0, 0x7d, 0x49, 0x37, + 0x14, 0x88, 0xc7, 0xba, 0x37, 0x21, 0x89, 0x56, + 0x27, 0xad, 0x7f, 0x52, 0xa5, 0x05, 0x7b, 0x96, + 0xb5, 0x87, 0x58, 0xf5, 0x7d, 0x2e, 0xbc, 0x26, + 0x1a, 0xf5, 0xee, 0xc3, 0x10, 0xd4, 0x63, 0x76, + 0x67, 0x86, 0x5a, 0xcd, 0x62, 0xb3, 0xcd, 0xca, + 0x5c, 0x4a, 0x24, 0xf6, 0xb4, 0xf1, 0x49, 0x09, + 0xf7, 0xb2, 0xec, 0x95, 0xaa, 0x77, 0x17, 0x6f, + 0xdd, 0x82, 0xe4, 0x8b, 0x50, 0xc3, 0x36, 0x9f, + 0x24, 0x5a, 0x95, 0xb8, 0x97, 0x4c, 0x86, 0xc4, + 0x84, 0x87, 0x74, 0x6b, 0x4a, 0x1a, 0xb8, 0x57, + 0x75, 0x92, 0x07, 0x59, 0x26, 0x1f, 0x56, 0x20, + 0xaa, 0x77, 0xe5, 0x97, 0xaf, 0xee, 0xb2, 0x9c, + 0xb1, 0xa1, 0x8b, 0x50, 0x91, 0x96, 0x68, 0xd1, + 0xcb, 0x0a, 0xf1, 0xc4, 0x63, 0x49, 0x64, 0x10, + 0xc6, 0x58, 0xb4, 0x6a, 0xc3, 0x33, 0x1e, 0x2c, + 0xa6, 0xed, 0x92, 0x7e, 0x62, 0x3e, 0x7a, 0xad, + 0x7e, 0x6b, 0x55, 0xd6, 0x7a, 0xb3, 0xdd, 0x9a, + 0x09, 0x01, 0xdb, 0x30, 0x05, 0x83, 0xed, 0xf6, + 0xb1, 0xdd, 0xe3, 0x27, 0x23, 0xc9, 0xfb, 0xfc, + 0xe7, 0xef, 0xd0, 0xd6, 0x6f, 0xe9, 0x9c, 0xb1, + 0x53, 0xd5, 0x74, 0x28, 0xb7, 0xea, 0x92, 0x44, + 0xf1, 0xa4, 0xb3, 0x6e, 0xe1, 0x87, 0x11, 0x2c, + 0x6c, 0xbb, 0xfd, 0x96, 0x22, 0x54, 0x11, 0xc9, + 0x18, 0xf6, 0xee, 0x56, 0x3c, 0xc3, 0x3d, 0x37, + 0x70, 0xea, 0x4c, 0xce, 0x7f, 0x13, 0xd0, 0xd9, + 0x9a, 0xf3, 0x97, 0x39, 0x9d, 0xbe, 0x86, 0x48, + 0x21, 0x4b, 0x4a, 0xde, 0xff, 0x00, 0x80, 0xc8, + 0x32, 0xbe, 0x3f, 0x6d, 0xee, 0xea, 0xce, 0xa9, + 0x24, 0xd2, 0xd7, 0x98, 0xd8, 0xd0, 0x64, 0x96, + 0xbd, 0x87, 0xdb, 0x24, 0x88, 0xc6, 0x48, 0xab, + 0xb7, 0x89, 0x84, 0x04, 0xc8, 0xe5, 0x58, 0xed, + 0x4d, 0xcb, 0xf7, 0xda, 0x47, 0x2f, 0x93, 0xd5, + 0xe7, 0xfc, 0x44, 0x28, 0xb0, 0xfd, 0xbb, 0x30, + 0x6b, 0x58, 0xc9, 0x57, 0x67, 0x15, 0x14, 0xb7, + 0xe4, 0x25, 0xc9, 0x2c, 0x32, 0x33, 0x19, 0x05, + 0x7f, 0xd7, 0x79, 0xe8, 0x69, 0x7a, 0x7a, 0xac, + 0x8d, 0xc5, 0xda, 0xf9, 0xdf, 0x60, 0xfb, 0x83, + 0xe7, 0xd2, 0x08, 0xdf, 0x0c, 0x9b, 0x9c, 0x86, + 0xb1, 0xbb, 0x18, 0x4f, 0x80, 0xfb, 0x71, 0x36, + 0x3e, 0x3a, 0xed, 0x9e, 0x3f, 0xc7, 0x74, 0xee, + 0x66, 0x55, 0x8b, 0x95, 0xc4, 0xac, 0xe7, 0x6a, + 0x2c, 0x66, 0x19, 0x43, 0x96, 0x3f, 0x65, 0x0b, + 0x92, 0x4e, 0x41, 0xfe, 0x63, 0xa9, 0x5c, 0xbd, + 0x28, 0xe9, 0x3c, 0x14, 0xda, 0x11, 0xa6, 0x41, + 0x6d, 0x02, 0x31, 0xc4, 0xda, 0x5c, 0x42, 0x31, + 0xea, 0xe0, 0x66, 0x97, 0x9c, 0x14, 0x6d, 0xeb, + 0x34, 0xd3, 0xba, 0x44, 0x51, 0x53, 0x67, 0xb8, + 0x3b, 0x49, 0x62, 0x0d, 0x18, 0xfa, 0x6b, 0xd0, + 0x8a, 0xad, 0x76, 0x2a, 0x52, 0x6a, 0x8a, 0x8d, + 0x67, 0x8d, 0x4e, 0x9b, 0x2f, 0xcd, 0x89, 0x0e, + 0xef, 0x74, 0x68, 0x42, 0x27, 0x87, 0x11, 0x79, + 0x70, 0xbe, 0xd3, 0x9e, 0xab, 0x47, 0xa2, 0x4b, + 0x2b, 0x5d, 0xb8, 0xf5, 0x22, 0x9d, 0x34, 0xef, + 0x5a, 0xc9, 0xcb, 0x1b, 0xa0, 0xd2, 0xd6, 0xc3, + 0x35, 0x7b, 0x81, 0x51, 0x99, 0x76, 0x39, 0xc7, + 0xbc, 0x9f, 0xe4, 0x57, 0xe3, 0x2b, 0x63, 0x44, + 0x8c, 0x48, 0xcd, 0xa8, 0x40, 0x9b, 0x69, 0xa6, + 0xa7, 0x26, 0x66, 0x52, 0x12, 0x94, 0xff, 0x00, + 0x92, 0xc9, 0xcf, 0xe5, 0x85, 0xf1, 0xed, 0xdb, + 0xed, 0xfe, 0x03, 0xad, 0x6c, 0xa4, 0xd6, 0x35, + 0x99, 0x05, 0xb4, 0x0b, 0x06, 0x93, 0x56, 0x4a, + 0xf2, 0xef, 0x5d, 0x95, 0xe2, 0xb1, 0x2c, 0xeb, + 0x1e, 0xa3, 0x13, 0x09, 0x4b, 0xc4, 0x5e, 0x29, + 0xc6, 0x66, 0x45, 0xc3, 0xac, 0x47, 0xdd, 0xe4, + 0x2a, 0xd8, 0x8b, 0xd9, 0xaa, 0x1e, 0x58, 0xe0, + 0xe1, 0xd1, 0xe9, 0x48, 0x8e, 0xb2, 0xc6, 0x9e, + 0x88, 0xdc, 0x79, 0x09, 0xbc, 0xbe, 0xe0, 0x23, + 0x36, 0x05, 0x8c, 0xc9, 0x2c, 0x6e, 0xa2, 0x46, + 0x89, 0xf2, 0xfe, 0xe5, 0xea, 0x19, 0x74, 0x3a, + 0xf5, 0x66, 0x5d, 0x41, 0xea, 0xc9, 0xc4, 0x2b, + 0x5b, 0xbe, 0x81, 0xeb, 0xc6, 0x04, 0x36, 0x87, + 0xd3, 0x9e, 0xf2, 0xba, 0x4b, 0x1b, 0x02, 0xbb, + 0x4f, 0x9f, 0x74, 0xce, 0x8a, 0xca, 0x57, 0xc0, + 0x33, 0xbf, 0x6c, 0x32, 0xcf, 0x1c, 0xe9, 0x40, + 0x45, 0x4b, 0x85, 0xaf, 0x1b, 0x96, 0xd1, 0x24, + 0x58, 0x24, 0x11, 0x8a, 0x73, 0xca, 0x21, 0xaf, + 0xc7, 0x22, 0x4c, 0xad, 0x21, 0x58, 0xe6, 0xd8, + 0x03, 0xa2, 0x1f, 0xde, 0x52, 0xb3, 0x2f, 0x6e, + 0xc4, 0xb7, 0x15, 0xed, 0x68, 0x81, 0x2b, 0xa4, + 0x1e, 0xa4, 0x58, 0x57, 0x95, 0xa2, 0x32, 0xe7, + 0xd3, 0x1b, 0x4e, 0x7f, 0x3a, 0xbf, 0xb0, 0xc2, + 0x0e, 0xd2, 0x07, 0x85, 0x6c, 0x63, 0x13, 0x0e, + 0xda, 0x8a, 0x49, 0xa4, 0xb1, 0x76, 0x9c, 0x52, + 0xc7, 0xc6, 0x97, 0x78, 0x51, 0x44, 0x6a, 0xd2, + 0x04, 0xf4, 0xe6, 0xce, 0xe8, 0x5d, 0x91, 0x98, + 0x6d, 0xe0, 0xe4, 0x93, 0x24, 0x12, 0x17, 0x71, + 0xea, 0x79, 0xb4, 0x28, 0x16, 0xc2, 0x9f, 0xc2, + 0xa7, 0x5a, 0xcd, 0x56, 0x29, 0xcd, 0x93, 0x89, + 0x43, 0xcb, 0xb0, 0x45, 0xea, 0x59, 0xe2, 0xc6, + 0xf2, 0xa4, 0x18, 0xb3, 0x96, 0x7f, 0x8f, 0x1f, + 0x3d, 0x6a, 0x12, 0xd3, 0x56, 0x13, 0xd4, 0x3a, + 0x45, 0x79, 0xb4, 0xeb, 0x51, 0xf3, 0x07, 0x93, + 0x87, 0x33, 0x58, 0x8d, 0xa1, 0x8e, 0x09, 0x26, + 0x08, 0x78, 0x9e, 0x58, 0xec, 0x39, 0x85, 0x9a, + 0x39, 0x36, 0xc9, 0xc6, 0x76, 0xb2, 0x06, 0x06, + 0x4b, 0xf2, 0xdb, 0x59, 0x2b, 0x5c, 0x96, 0x1d, + 0x3e, 0x9c, 0x32, 0xc3, 0x52, 0xf8, 0x97, 0x51, + 0xaf, 0x62, 0xc4, 0x92, 0xc8, 0x51, 0x92, 0x00, + 0xd1, 0xd7, 0xc5, 0x59, 0x26, 0x3b, 0x17, 0x94, + 0x4a, 0x24, 0xe3, 0x77, 0x11, 0x41, 0x1c, 0x85, + 0x65, 0x8f, 0x4f, 0xd4, 0xb4, 0xfd, 0x21, 0xae, + 0x1f, 0x47, 0xca, 0xbf, 0x88, 0x20, 0x59, 0x2a, + 0xea, 0x15, 0x29, 0xf0, 0x19, 0x22, 0x8e, 0x3a, + 0xda, 0x7d, 0xa8, 0x6d, 0x59, 0xa8, 0xb1, 0xcb, + 0x59, 0x08, 0x8a, 0xbc, 0x47, 0x70, 0x68, 0xf6, + 0xb8, 0x55, 0x90, 0x3e, 0x25, 0xee, 0x8a, 0x27, + 0x90, 0xb6, 0x99, 0x6a, 0x27, 0x8a, 0xcc, 0x50, + 0x4a, 0xcb, 0xac, 0x68, 0x71, 0xb7, 0xaa, 0x3b, + 0x78, 0xab, 0x4a, 0xff, 0x00, 0x8a, 0x6e, 0xdd, + 0x2f, 0xb0, 0x71, 0x9f, 0x2c, 0x3c, 0x7c, 0x75, + 0x72, 0xbe, 0x91, 0xab, 0xb5, 0xb9, 0x35, 0xa3, + 0xa3, 0xfd, 0x4b, 0x1a, 0x7d, 0x25, 0x8d, 0xac, + 0x2d, 0x93, 0x52, 0x4a, 0xbc, 0xae, 0xb5, 0x1e, + 0x4e, 0x68, 0x09, 0xbb, 0x24, 0x97, 0x67, 0xc9, + 0x0f, 0xb3, 0x1c, 0x49, 0xc7, 0x2a, 0xa1, 0xdd, + 0x4f, 0x49, 0xd0, 0x34, 0xdd, 0x23, 0x57, 0x88, + 0xd9, 0xd3, 0xec, 0xea, 0xf6, 0xe3, 0x9b, 0x49, + 0xf5, 0x81, 0xab, 0xd7, 0x46, 0xb0, 0x50, 0x8a, + 0x94, 0xde, 0x38, 0xdc, 0xc5, 0x14, 0xdf, 0xb3, + 0x69, 0x57, 0x66, 0x5d, 0xf2, 0xc4, 0x37, 0xc7, + 0x4d, 0x5f, 0xea, 0x29, 0xdf, 0xdb, 0x9b, 0x62, + 0x30, 0x69, 0xe7, 0x09, 0x07, 0xb2, 0xc3, 0x71, + 0x89, 0xa9, 0xb2, 0x4a, 0xd2, 0xe6, 0xc6, 0x1a, + 0x52, 0xb1, 0xc6, 0x42, 0x97, 0x0b, 0x24, 0x60, + 0xb3, 0x85, 0x8e, 0xa6, 0xab, 0xaf, 0xd6, 0xa8, + 0x21, 0x8a, 0xd7, 0x69, 0xc1, 0x8b, 0xb2, 0xc2, + 0x71, 0x33, 0xaa, 0xb4, 0xd3, 0xaa, 0xb2, 0x56, + 0x78, 0xfd, 0xaf, 0x1d, 0xe5, 0x72, 0x5e, 0x45, + 0x3e, 0xf9, 0x1d, 0x95, 0x0a, 0xaa, 0x82, 0xc4, + 0xc3, 0xca, 0x66, 0x32, 0xc9, 0xdb, 0x11, 0xe7, + 0x52, 0x9b, 0x19, 0x8e, 0x93, 0x3b, 0xea, 0x65, + 0xad, 0x34, 0x5b, 0x48, 0x3b, 0x05, 0x93, 0xfa, + 0xa0, 0x94, 0x4e, 0xbc, 0xc4, 0xb4, 0x8e, 0xad, + 0xed, 0xc3, 0x50, 0xa9, 0xa0, 0x7a, 0x76, 0xfc, + 0x4b, 0xf0, 0x4e, 0x7f, 0xc5, 0xe5, 0x58, 0xda, + 0x2f, 0x4f, 0x86, 0xb7, 0xbb, 0x31, 0x29, 0x55, + 0xca, 0xad, 0xcc, 0x7e, 0xe8, 0x67, 0x93, 0x01, + 0x59, 0x88, 0x63, 0xb4, 0x59, 0xa5, 0xda, 0xe7, + 0x06, 0xbd, 0xba, 0x15, 0x48, 0xbb, 0x22, 0xbc, + 0x70, 0xa5, 0x69, 0x39, 0xef, 0x0f, 0x74, 0x90, + 0xed, 0x20, 0xb7, 0xaa, 0xc2, 0xb6, 0x16, 0x32, + 0x1f, 0x2c, 0x72, 0xac, 0x71, 0x8b, 0x15, 0xf4, + 0xd0, 0x8b, 0xc3, 0x1e, 0x9a, 0x09, 0xd4, 0xa5, + 0x58, 0xb6, 0x4b, 0x5a, 0x46, 0x36, 0xd5, 0x24, + 0x3b, 0x86, 0xf8, 0xeb, 0x98, 0xae, 0x6e, 0x1e, + 0xe4, 0x45, 0x96, 0x58, 0xd8, 0x63, 0x07, 0xc9, + 0x54, 0xf5, 0x0a, 0xb9, 0xf4, 0xf4, 0x1a, 0x26, + 0xd4, 0xe6, 0xae, 0x1c, 0xa5, 0x5d, 0xbb, 0xd6, + 0x27, 0x69, 0x64, 0x5d, 0xd3, 0x82, 0xb7, 0xb3, + 0xc8, 0x48, 0x3f, 0x5f, 0xc6, 0x16, 0x02, 0x50, + 0x93, 0xd6, 0x87, 0x71, 0x34, 0xfd, 0x5e, 0x85, + 0xd9, 0x18, 0x22, 0x57, 0x9c, 0x48, 0xcc, 0xd0, + 0x7a, 0x95, 0x5f, 0x04, 0x02, 0xd5, 0xf7, 0xc5, + 0xcc, 0xa3, 0x3e, 0xe8, 0xb7, 0xae, 0xf5, 0xca, + 0x93, 0xe7, 0xa3, 0xfa, 0x41, 0xd1, 0xcf, 0x16, + 0xfb, 0x00, 0x94, 0xd1, 0x5a, 0x8b, 0x6d, 0xed, + 0xf5, 0x55, 0x6b, 0xde, 0x38, 0xe4, 0x8c, 0x7a, + 0xdc, 0x2e, 0x9f, 0xe0, 0xef, 0xa9, 0xfb, 0xdf, + 0x3e, 0x3c, 0x6d, 0x1d, 0xfb, 0xa2, 0x6c, 0x00, + 0xdb, 0x1b, 0xbf, 0x06, 0xf4, 0x47, 0xff, 0x00, + 0x47, 0xfc, 0x7e, 0x21, 0xbb, 0x3c, 0x83, 0xf5, + 0xaf, 0xf1, 0x66, 0x3e, 0x69, 0x63, 0xe7, 0xce, + 0x3a, 0x6e, 0xfe, 0xd1, 0x0a, 0xba, 0xfa, 0xa8, + 0xf2, 0xda, 0x28, 0xa4, 0x33, 0xdb, 0xe7, 0x07, + 0x50, 0xc9, 0x25, 0xd8, 0x7a, 0x93, 0x9d, 0x2f, + 0xcf, 0x8a, 0x58, 0x38, 0x3e, 0x71, 0xfc, 0x64, + 0xef, 0xed, 0x0d, 0xd6, 0x5c, 0x59, 0x8f, 0x7b, + 0xe8, 0xd1, 0x53, 0x5d, 0xdd, 0xbe, 0xdb, 0x4e, + 0xa0, 0x99, 0xdd, 0x24, 0xbf, 0xad, 0x30, 0x6d, + 0x37, 0x69, 0xc4, 0x75, 0x31, 0x95, 0xf3, 0x9f, + 0xfb, 0x56, 0x3b, 0xfb, 0x45, 0x95, 0x2d, 0xaa, + 0xda, 0x8c, 0xf3, 0x69, 0x55, 0xea, 0xc5, 0xc9, + 0xa0, 0x33, 0x01, 0x76, 0x32, 0xfc, 0xaf, 0x60, + 0x1b, 0x2d, 0xc9, 0xa7, 0xe1, 0xb1, 0x0d, 0x6f, + 0x2d, 0x1e, 0x4e, 0x41, 0xf3, 0xbe, 0xc7, 0xe9, + 0x03, 0x41, 0xdb, 0x69, 0x20, 0xb2, 0x92, 0xf2, + 0xe9, 0xf5, 0xa0, 0x85, 0xad, 0x76, 0xf9, 0xcf, + 0xab, 0x46, 0x91, 0xa7, 0xf5, 0x21, 0x2c, 0x01, + 0x35, 0x05, 0xde, 0x12, 0xa4, 0x18, 0x2f, 0x1a, + 0x8f, 0xa8, 0x59, 0xb7, 0x16, 0x9f, 0xf4, 0x89, + 0xa2, 0x94, 0xbc, 0xb0, 0x49, 0x5f, 0xeb, 0xd4, + 0xab, 0x0d, 0x61, 0x63, 0x41, 0x79, 0x47, 0x34, + 0x65, 0x8c, 0xe6, 0xe1, 0x36, 0x59, 0xa7, 0xac, + 0x4b, 0x7e, 0xad, 0x16, 0x4f, 0x08, 0xf0, 0x7c, + 0x0f, 0x36, 0xbf, 0x48, 0x9a, 0x34, 0xab, 0xa8, + 0xf1, 0x49, 0x57, 0x36, 0x21, 0xa4, 0x95, 0xbd, + 0x47, 0x6f, 0xc9, 0x20, 0xe4, 0x87, 0xfa, 0x47, + 0xad, 0xfd, 0x60, 0x99, 0xa1, 0x3e, 0x7d, 0x2a, + 0x2e, 0x4c, 0x5f, 0xd9, 0xe6, 0xd7, 0xe9, 0x07, + 0x45, 0x71, 0xa8, 0x88, 0x25, 0xac, 0x7d, 0x40, + 0xa7, 0xe9, 0x3d, 0x5e, 0x83, 0x24, 0xfe, 0x63, + 0x3b, 0xac, 0x8b, 0xcc, 0x65, 0x26, 0x74, 0xdc, + 0x48, 0xa4, 0xa0, 0x9e, 0x05, 0xda, 0xa7, 0xf2, + 0xf5, 0x63, 0xbf, 0xf4, 0x29, 0x06, 0xa0, 0x22, + 0x34, 0xc0, 0x9d, 0xa9, 0x9a, 0xa2, 0xc6, 0x81, + 0x24, 0xbe, 0x21, 0xda, 0x6c, 0x7a, 0xd3, 0xcc, + 0x4c, 0xe7, 0x39, 0xf4, 0x84, 0x1f, 0xa5, 0xe3, + 0x38, 0xc7, 0x56, 0x3b, 0xff, 0x00, 0x42, 0x90, + 0xea, 0x1c, 0x5e, 0x8b, 0xf5, 0x89, 0xa9, 0x35, + 0x6e, 0x7d, 0x06, 0x56, 0xcc, 0x70, 0xec, 0xe7, + 0xf5, 0xd8, 0x98, 0x99, 0xa5, 0xf0, 0xde, 0x95, + 0x94, 0xe2, 0x3f, 0x6e, 0x71, 0xf6, 0x97, 0xbf, + 0xf4, 0x27, 0x37, 0x76, 0x3d, 0x00, 0xb3, 0xdb, + 0xa7, 0x24, 0x1c, 0xda, 0x04, 0xef, 0x98, 0x62, + 0xe3, 0xe7, 0x37, 0x31, 0x21, 0xe5, 0xb2, 0x36, + 0x9f, 0x4c, 0xe9, 0xe1, 0x3d, 0xb9, 0xc7, 0xda, + 0xc7, 0x7d, 0x68, 0x2c, 0x6e, 0xf1, 0x5a, 0xab, + 0x27, 0x2d, 0xea, 0x73, 0xc0, 0xd3, 0xe8, 0x13, + 0x82, 0xf0, 0xc2, 0x22, 0x13, 0x3d, 0xc5, 0x42, + 0xc1, 0xee, 0x65, 0x18, 0xd7, 0x91, 0x49, 0x58, + 0xfd, 0xa3, 0x23, 0x1e, 0x25, 0xef, 0xbd, 0x06, + 0x43, 0x6f, 0x13, 0xd1, 0xfa, 0xba, 0x8d, 0x6b, + 0x10, 0xf2, 0xe8, 0x76, 0xce, 0x6b, 0xc6, 0x22, + 0xe4, 0x36, 0xf6, 0xf9, 0x96, 0xf8, 0xda, 0x78, + 0x25, 0x19, 0x55, 0xf6, 0xe4, 0x8f, 0x91, 0x2f, + 0x7d, 0x76, 0xfb, 0x73, 0x98, 0xe7, 0xa1, 0xef, + 0xd4, 0xa0, 0xb1, 0x17, 0x2e, 0x89, 0x70, 0xfe, + 0xab, 0x18, 0x8f, 0x7b, 0xd8, 0xc2, 0x36, 0xfd, + 0x40, 0x6d, 0x6e, 0x29, 0x57, 0x28, 0xbe, 0xd1, + 0x91, 0xf6, 0x97, 0xbe, 0xbb, 0x76, 0x4e, 0x5c, + 0x58, 0xd3, 0x8e, 0xed, 0x56, 0x1b, 0x51, 0xf2, + 0x68, 0xb7, 0xbc, 0xd5, 0x4e, 0x3d, 0xf2, 0x4e, + 0x44, 0x47, 0x76, 0xa6, 0x36, 0xb7, 0x14, 0xc3, + 0x31, 0x8c, 0x2f, 0xbb, 0x1f, 0x12, 0x77, 0xce, + 0x82, 0xc5, 0xf6, 0xda, 0xd3, 0x0e, 0x75, 0x78, + 0xed, 0xa7, 0x26, 0x8b, 0x77, 0xfa, 0x2a, 0x6c, + 0xfa, 0xd2, 0x7d, 0x03, 0xbb, 0x54, 0x04, 0x1c, + 0x4c, 0x3d, 0x83, 0x03, 0x0d, 0xd3, 0xf7, 0xbf, + 0x6f, 0xe5, 0xb6, 0x58, 0xd2, 0xc8, 0x3a, 0xba, + 0x5a, 0xf7, 0x68, 0xb7, 0xcf, 0xea, 0x8a, 0x17, + 0xeb, 0x36, 0x60, 0xff, 0x00, 0x1a, 0x03, 0x9c, + 0x4a, 0xbf, 0x4c, 0x60, 0x61, 0xba, 0x7e, 0xf2, + 0xed, 0xd2, 0xcc, 0xc2, 0xd5, 0x03, 0xbb, 0x56, + 0x4b, 0x5e, 0x74, 0xad, 0x47, 0x68, 0xa6, 0x9f, + 0xe5, 0xb1, 0xc1, 0xe3, 0x56, 0xc9, 0xfd, 0xa8, + 0x06, 0x33, 0x81, 0xef, 0xf1, 0x8e, 0x8f, 0x79, + 0x68, 0x07, 0xfc, 0xbd, 0x03, 0xfe, 0x17, 0xf5, + 0x7e, 0x74, 0xcd, 0x43, 0xfa, 0x27, 0xda, 0x6f, + 0xd8, 0x7f, 0x8c, 0xff, 0x00, 0xd6, 0x7e, 0xcf, + 0xc7, 0x86, 0xeb, 0xfb, 0xb2, 0xed, 0xdf, 0x1f, + 0x53, 0x4d, 0x6f, 0xf0, 0xc7, 0xab, 0xf3, 0xa6, + 0xea, 0x38, 0x14, 0xfe, 0xd3, 0xa8, 0xe0, 0x18, + 0xd5, 0x73, 0x8c, 0xbf, 0xec, 0xb1, 0xe4, 0x13, + 0xf6, 0xfe, 0xed, 0x74, 0x1f, 0x66, 0x3f, 0x05, + 0xf6, 0xeb, 0x2d, 0x6b, 0xdd, 0xa5, 0x6a, 0x79, + 0x5a, 0x2d, 0xbb, 0xeb, 0x2e, 0x22, 0xff, 0x00, + 0x1a, 0x1f, 0x1b, 0x9f, 0xf6, 0x47, 0x3f, 0x3d, + 0x37, 0x75, 0xf6, 0xfb, 0xc9, 0x14, 0x9c, 0xda, + 0x5c, 0x7b, 0x75, 0x49, 0x67, 0x74, 0x4d, 0x3b, + 0x52, 0x08, 0x2a, 0xb1, 0x73, 0x1d, 0xa4, 0x56, + 0x81, 0xb6, 0xea, 0x99, 0x24, 0x48, 0xea, 0x52, + 0x27, 0x57, 0x6d, 0xdb, 0x98, 0x21, 0x51, 0xdd, + 0x5a, 0x11, 0x84, 0xc5, 0xcf, 0xa3, 0x2e, 0xed, + 0x52, 0xd5, 0x9c, 0xb6, 0x9d, 0xaa, 0x65, 0x2b, + 0x3c, 0x33, 0x2c, 0x76, 0x21, 0xdb, 0x59, 0xb1, + 0xaa, 0x39, 0x71, 0xbd, 0x88, 0xe2, 0xc9, 0x27, + 0x70, 0x1e, 0x7f, 0xf7, 0xdb, 0xfe, 0x1f, 0xfa, + 0xef, 0xff, 0xc4, 0x00, 0x48, 0x11, 0x00, 0x02, + 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x03, 0x07, + 0x08, 0x08, 0x06, 0x03, 0x00, 0x00, 0x01, 0x02, + 0x03, 0x11, 0x12, 0x04, 0x21, 0x00, 0x13, 0x22, + 0x31, 0x05, 0x23, 0x32, 0x41, 0x14, 0x51, 0x61, + 0x33, 0x52, 0x71, 0x06, 0x15, 0x42, 0x62, 0x81, + 0x91, 0xa1, 0x10, 0x24, 0x43, 0x72, 0xb1, 0xc1, + 0xd3, 0xf0, 0x16, 0x30, 0x53, 0x63, 0x64, 0x92, + 0xd1, 0xe1, 0x20, 0x54, 0x60, 0x70, 0x82, 0x93, + 0xd2, 0xe2, 0xf1, 0xff, 0xda, 0x00, 0x08, 0x01, + 0x02, 0x01, 0x01, 0x3f, 0x01, 0xff, 0x00, 0xd8, + 0x29, 0x25, 0x11, 0x83, 0x48, 0xf2, 0x10, 0x47, + 0x44, 0x60, 0x65, 0xbf, 0xf5, 0xd9, 0x17, 0xf1, + 0xea, 0xfe, 0x3c, 0x7c, 0x59, 0xff, 0x00, 0xca, + 0xea, 0xbf, 0xe5, 0x87, 0xfc, 0x6e, 0x3e, 0x37, + 0xfe, 0x13, 0x57, 0xfb, 0x16, 0x1f, 0xf1, 0xb8, + 0xd5, 0x7e, 0x51, 0x68, 0xb4, 0x4e, 0x23, 0xd5, + 0x45, 0xab, 0x85, 0xca, 0x87, 0x0a, 0xd1, 0x29, + 0xb4, 0x24, 0x80, 0x41, 0x59, 0x18, 0x77, 0x52, + 0x3b, 0xf7, 0x1c, 0x7f, 0xa5, 0xde, 0x13, 0xff, + 0x00, 0x15, 0xff, 0x00, 0xd2, 0xbf, 0xe2, 0x71, + 0xfe, 0x97, 0x78, 0x4f, 0xcb, 0x55, 0xff, 0x00, + 0xd2, 0xbf, 0xe2, 0x71, 0x1f, 0xe5, 0x37, 0x87, + 0x4c, 0x6a, 0x34, 0xd5, 0xb9, 0xd8, 0x6d, 0x00, + 0x3d, 0xfb, 0x76, 0x7e, 0x17, 0xc5, 0xb4, 0xcc, + 0xd8, 0x85, 0x9b, 0x2a, 0xb2, 0xad, 0x18, 0x52, + 0x07, 0x7f, 0x76, 0xfe, 0x03, 0x73, 0xed, 0xc0, + 0xf1, 0x38, 0x1b, 0x1a, 0x49, 0xba, 0x94, 0xb0, + 0xe8, 0x5f, 0x48, 0xee, 0x4f, 0x5f, 0xf0, 0xf5, + 0x7d, 0x38, 0xfc, 0xe5, 0x01, 0xc4, 0xe1, 0x30, + 0xc8, 0x16, 0x16, 0xab, 0xe9, 0x1e, 0xfb, 0x39, + 0xef, 0xf2, 0xf5, 0x7d, 0x38, 0x1e, 0x23, 0x09, + 0xae, 0x89, 0xb7, 0x56, 0x7f, 0x4a, 0xfa, 0x17, + 0xf4, 0xbd, 0x7f, 0x5d, 0x87, 0xab, 0xf5, 0x78, + 0xfc, 0xe7, 0x0f, 0x47, 0x44, 0xdd, 0x6b, 0x98, + 0xe9, 0x4f, 0x47, 0xde, 0x34, 0xe6, 0xaf, 0xd8, + 0x6e, 0xdf, 0x4e, 0x1b, 0xc5, 0xf4, 0xca, 0x63, + 0x52, 0x93, 0xe5, 0x29, 0xe9, 0x1c, 0xb1, 0x7d, + 0xc0, 0x16, 0x73, 0xc5, 0x6c, 0x9f, 0x73, 0xdb, + 0x73, 0x43, 0x81, 0xe2, 0xfa, 0x63, 0x2f, 0x23, + 0x19, 0xb9, 0xa2, 0x3e, 0x76, 0x07, 0x94, 0x3c, + 0xab, 0xac, 0xaf, 0x9b, 0x89, 0xdf, 0x6a, 0xbb, + 0xed, 0xb7, 0x1f, 0x9e, 0xf4, 0x76, 0x57, 0x19, + 0xad, 0x58, 0xab, 0x52, 0x21, 0xa2, 0x36, 0x23, + 0x69, 0x0f, 0x6e, 0x3f, 0x3d, 0x69, 0x3e, 0xe4, + 0xff, 0x00, 0xf2, 0x2f, 0xff, 0x00, 0x9f, 0x03, + 0xc5, 0xf4, 0xb4, 0x0b, 0x09, 0x13, 0x2f, 0x4e, + 0x48, 0x2d, 0xbd, 0x86, 0xca, 0xcc, 0x40, 0x3e, + 0xc4, 0xd0, 0x3f, 0x3e, 0x13, 0xc4, 0xa2, 0x72, + 0x55, 0x63, 0x96, 0xc0, 0xcb, 0xfa, 0x20, 0x31, + 0xf9, 0x86, 0x32, 0x62, 0xc3, 0xf0, 0x27, 0xf7, + 0xf0, 0x3c, 0x4e, 0x16, 0xed, 0x1c, 0xbd, 0x81, + 0xfe, 0x86, 0xb7, 0x35, 0xdf, 0x9d, 0x5d, 0xc8, + 0xda, 0xff, 0x00, 0x87, 0x0b, 0xe2, 0xfa, 0x76, + 0x8d, 0x25, 0xe5, 0xce, 0x23, 0x92, 0xf0, 0x25, + 0x14, 0x5e, 0x26, 0x8f, 0x49, 0x7b, 0xfc, 0x2c, + 0x0b, 0xd8, 0xfb, 0xf1, 0xf9, 0xc2, 0x2d, 0xba, + 0x25, 0xed, 0x95, 0x52, 0x58, 0x43, 0xd9, 0xcf, + 0x5d, 0x57, 0xd0, 0x1c, 0xbb, 0xed, 0x5c, 0x7c, + 0x74, 0x5f, 0x76, 0x4f, 0x9f, 0xe8, 0x7a, 0x7e, + 0xf9, 0xeb, 0xd8, 0x7d, 0x3d, 0x7f, 0xab, 0xc7, + 0xc6, 0xc7, 0xdf, 0x09, 0x37, 0x19, 0x57, 0x45, + 0x95, 0xfb, 0xfb, 0xbe, 0xc3, 0xf1, 0xa6, 0xfa, + 0x71, 0xf1, 0xb1, 0xef, 0xd2, 0xfb, 0x0b, 0xfe, + 0x8f, 0x75, 0xfb, 0xc3, 0xaf, 0xb7, 0xd0, 0xd3, + 0x7e, 0xae, 0xdc, 0x1d, 0x74, 0x7e, 0xc8, 0xe7, + 0x60, 0x47, 0x54, 0x42, 0xd6, 0xea, 0xfa, 0xa5, + 0x15, 0xf8, 0x35, 0x1f, 0x90, 0x3b, 0xff, 0x00, + 0x23, 0x7a, 0x9b, 0xf6, 0x7f, 0x67, 0x07, 0x8c, + 0xab, 0xdb, 0x8f, 0x1c, 0x57, 0x6d, 0x52, 0x60, + 0x91, 0x31, 0x28, 0x82, 0xe4, 0x8d, 0x1f, 0x70, + 0xd6, 0x2b, 0x20, 0x69, 0x6c, 0xee, 0x0e, 0xdd, + 0xf8, 0x7f, 0x0c, 0x64, 0xd8, 0x80, 0x3f, 0x02, + 0x0f, 0x60, 0x0f, 0xb7, 0xf5, 0x87, 0xf9, 0x07, + 0x8f, 0x08, 0xf0, 0x38, 0x75, 0x32, 0x84, 0xd4, + 0xc4, 0x4a, 0x32, 0x97, 0x59, 0x32, 0x22, 0xeb, + 0x6c, 0x71, 0x0c, 0x3b, 0x90, 0x77, 0xf6, 0x00, + 0xfc, 0xc7, 0x1a, 0x5f, 0xc9, 0xdd, 0x36, 0x8d, + 0xb9, 0x91, 0xea, 0xa5, 0x72, 0xc3, 0x64, 0x78, + 0x96, 0x86, 0x2d, 0x41, 0xf6, 0x6f, 0x52, 0x92, + 0x40, 0x3b, 0xf7, 0x3f, 0x3e, 0x1a, 0x26, 0x49, + 0x44, 0xfa, 0xb4, 0x66, 0x63, 0x2c, 0x80, 0x79, + 0x8a, 0x23, 0xd3, 0x89, 0x05, 0x46, 0xac, 0xc9, + 0x8a, 0xf2, 0xf6, 0x55, 0x4c, 0x83, 0x9c, 0x98, + 0x0d, 0xcf, 0x11, 0xcd, 0x1e, 0x31, 0xe5, 0xa5, + 0x91, 0x1c, 0x29, 0x04, 0x6e, 0xdb, 0xff, 0x00, + 0x58, 0x77, 0x20, 0xff, 0x00, 0xfc, 0xdb, 0x8f, + 0x89, 0xd2, 0xee, 0x0c, 0x2d, 0x6a, 0xa5, 0x1b, + 0xe7, 0x95, 0x59, 0xdb, 0xbe, 0x55, 0xbd, 0x1f, + 0xd9, 0xc4, 0x73, 0xe9, 0xe6, 0xba, 0xd3, 0x4f, + 0xd2, 0xa3, 0x72, 0x92, 0x85, 0x6c, 0x85, 0xf4, + 0xda, 0x75, 0x6c, 0x77, 0x1b, 0xe3, 0xfb, 0xf8, + 0x63, 0x1d, 0x5a, 0xe8, 0xe6, 0x2d, 0x8d, 0x56, + 0x12, 0x8c, 0x98, 0x5d, 0x6e, 0x55, 0x54, 0x7e, + 0xd3, 0x43, 0x89, 0xe2, 0x28, 0x63, 0x3c, 0x93, + 0x1e, 0x24, 0x06, 0x47, 0x6b, 0x12, 0xfd, 0xec, + 0x64, 0x17, 0xb7, 0xb0, 0x23, 0xeb, 0xc3, 0x8a, + 0x94, 0xb9, 0x48, 0xc4, 0x7c, 0xac, 0x04, 0x56, + 0xc4, 0xf3, 0x37, 0xa9, 0x32, 0xd9, 0xab, 0xb5, + 0xa5, 0x81, 0xb5, 0x86, 0xbe, 0x02, 0xa4, 0x72, + 0x4a, 0xf1, 0xb6, 0x26, 0x42, 0x19, 0x94, 0x21, + 0xc4, 0x55, 0xd1, 0x0a, 0x49, 0xa3, 0xbe, 0xed, + 0x56, 0xdb, 0x5d, 0xf0, 0x8f, 0x33, 0xf2, 0xc9, + 0x94, 0x44, 0xd9, 0x5b, 0xa7, 0x2c, 0x38, 0x64, + 0x0c, 0x76, 0xcf, 0xa6, 0xb3, 0x14, 0x6f, 0xf4, + 0x7b, 0x71, 0xa6, 0xd4, 0x69, 0x61, 0x3a, 0x83, + 0xaa, 0x8b, 0x31, 0x35, 0x18, 0x9b, 0x97, 0xcc, + 0xe8, 0xaa, 0x11, 0x7e, 0xab, 0x2f, 0x6f, 0xc4, + 0x6f, 0x55, 0xc6, 0x66, 0x15, 0x8d, 0xbd, 0x2d, + 0xe6, 0x30, 0x1b, 0x64, 0x15, 0xf6, 0x41, 0xf8, + 0xd6, 0x47, 0xf0, 0x60, 0xc3, 0xbf, 0x12, 0xcd, + 0xa9, 0x7e, 0x5c, 0x6a, 0xd5, 0xa7, 0x40, 0x8a, + 0x22, 0x0d, 0x82, 0x85, 0x59, 0x55, 0xbb, 0x2a, + 0xf7, 0x0a, 0xb5, 0x64, 0xd9, 0xf4, 0x93, 0x8d, + 0xf0, 0x1f, 0xb7, 0x4a, 0xd1, 0xa0, 0x2d, 0xd7, + 0xf0, 0xe0, 0xca, 0x90, 0x77, 0xd3, 0x86, 0xb5, + 0x4f, 0xb1, 0x7e, 0x6d, 0x3b, 0x9a, 0x04, 0xe3, + 0xed, 0x7f, 0xa2, 0x7a, 0x45, 0x9d, 0xb8, 0x56, + 0x24, 0x92, 0xba, 0x57, 0xf4, 0x8e, 0xfb, 0x75, + 0x7b, 0x9e, 0xc4, 0x57, 0xea, 0xf6, 0xe1, 0x1c, + 0x96, 0x09, 0xf0, 0xcd, 0x74, 0x14, 0x36, 0xf8, + 0x87, 0xed, 0x64, 0xe3, 0x41, 0x7d, 0xca, 0xf6, + 0xfe, 0xe6, 0x9e, 0x28, 0xe4, 0xe5, 0x48, 0x84, + 0x39, 0x4f, 0x4f, 0x5b, 0x1b, 0x21, 0xcf, 0x30, + 0x60, 0xad, 0xe5, 0xf4, 0x1d, 0xfd, 0x36, 0x40, + 0x06, 0xcf, 0x06, 0xec, 0x11, 0x14, 0x6c, 0x86, + 0x30, 0xf7, 0xcd, 0x50, 0x41, 0xb8, 0xda, 0xf0, + 0xf5, 0x74, 0x86, 0x07, 0x1b, 0xef, 0xd1, 0x56, + 0x0e, 0x3c, 0x37, 0xa9, 0xbf, 0x67, 0x07, 0x86, + 0x1f, 0xc7, 0x83, 0x14, 0x72, 0x6b, 0x13, 0x34, + 0x0f, 0xd2, 0xbe, 0xa1, 0x90, 0xee, 0xfe, 0xc7, + 0x61, 0xd8, 0x7e, 0x3c, 0x6b, 0x34, 0x7a, 0x7e, + 0x40, 0x2b, 0x04, 0x6a, 0xd9, 0x77, 0x58, 0xd4, + 0x1d, 0xd4, 0xfc, 0x97, 0xf6, 0xfe, 0xce, 0x34, + 0x29, 0x84, 0xea, 0xb5, 0x4a, 0xb1, 0x3f, 0xd0, + 0x1e, 0xa7, 0xbf, 0xf3, 0xbf, 0xe3, 0xed, 0xc0, + 0xae, 0x8d, 0xfb, 0x03, 0xb7, 0xb6, 0xf2, 0x02, + 0x47, 0xf1, 0xdb, 0x7b, 0xf9, 0xf1, 0xa8, 0x29, + 0xa6, 0x96, 0x6d, 0x56, 0x2b, 0x6c, 0x02, 0xb6, + 0x4c, 0xe0, 0x60, 0xb4, 0x9e, 0xd9, 0xe2, 0x57, + 0x22, 0x41, 0x55, 0xb2, 0x7b, 0x9a, 0xdc, 0x48, + 0x8f, 0x12, 0xb8, 0x8d, 0x94, 0xba, 0x6a, 0x66, + 0x70, 0x90, 0xb9, 0x88, 0xe3, 0x34, 0x8c, 0xc0, + 0x48, 0x40, 0x4b, 0xc6, 0x39, 0x33, 0x2a, 0xc5, + 0xb2, 0x22, 0xf2, 0x63, 0x44, 0xf3, 0x65, 0x93, + 0x62, 0x5f, 0x4f, 0x2b, 0xc8, 0xce, 0x99, 0xbd, + 0x48, 0x65, 0x58, 0xf0, 0xe7, 0x0e, 0xa2, 0x18, + 0x88, 0xce, 0x36, 0x7b, 0x0e, 0xfb, 0x70, 0x93, + 0xcc, 0xcb, 0x7c, 0xd6, 0x04, 0x12, 0xb4, 0xf2, + 0x4c, 0xad, 0xd2, 0x6a, 0xfb, 0xfb, 0xf7, 0x04, + 0x6c, 0x47, 0xd3, 0x86, 0x9e, 0x75, 0xc5, 0x8c, + 0xec, 0x10, 0x1e, 0xb2, 0x8f, 0x33, 0x37, 0xc9, + 0x68, 0x6e, 0x4f, 0x55, 0x5e, 0xdd, 0xaf, 0x83, + 0x02, 0xcf, 0x7c, 0xdd, 0x64, 0xf2, 0x34, 0x4e, + 0x51, 0x96, 0x24, 0xf2, 0x56, 0x5e, 0xee, 0x05, + 0x27, 0xaa, 0xd9, 0x77, 0xb6, 0x63, 0xb8, 0x27, + 0xe4, 0xba, 0x38, 0xfc, 0xdc, 0x9e, 0x79, 0x02, + 0x80, 0xf1, 0xd2, 0xa8, 0xf8, 0x85, 0x2c, 0xc3, + 0x94, 0x81, 0xb1, 0x3c, 0xcb, 0x00, 0x1b, 0xa4, + 0x25, 0xd7, 0x7a, 0xba, 0xd3, 0xf8, 0x64, 0xc5, + 0x4c, 0xc4, 0x43, 0x7f, 0x0d, 0xcb, 0x99, 0xfe, + 0x18, 0xa4, 0xa6, 0x3b, 0x6c, 0x15, 0x10, 0x24, + 0x84, 0xba, 0xd0, 0x15, 0x6f, 0xd7, 0x91, 0xdc, + 0x30, 0x1c, 0x4d, 0xa0, 0xd4, 0x40, 0xca, 0x89, + 0x18, 0x99, 0x79, 0x6a, 0xc1, 0xde, 0x22, 0xdf, + 0x35, 0xa6, 0x76, 0x44, 0x5c, 0xf1, 0x0b, 0x90, + 0xf6, 0xf7, 0xef, 0xbb, 0x6a, 0xb5, 0x3a, 0x77, + 0x64, 0xb4, 0x88, 0xd9, 0xda, 0xb1, 0xed, 0x90, + 0x3b, 0xd8, 0xe9, 0xa3, 0xdf, 0xf0, 0x37, 0xc0, + 0xcb, 0x1c, 0xa4, 0x31, 0xe7, 0x8b, 0x9f, 0x44, + 0x7c, 0xb0, 0x47, 0x52, 0x5d, 0xae, 0xf6, 0x48, + 0xb6, 0x27, 0xd1, 0xbd, 0xf1, 0xa2, 0xe7, 0x3a, + 0xc8, 0x2a, 0x38, 0xf1, 0x97, 0x93, 0x97, 0x26, + 0x39, 0x03, 0x64, 0x08, 0x5e, 0xa5, 0x53, 0xde, + 0xdb, 0x6d, 0xce, 0xd9, 0x1a, 0xe3, 0x54, 0xa4, + 0xc2, 0x62, 0x9d, 0x91, 0xa1, 0x96, 0x86, 0xf1, + 0x85, 0x06, 0x80, 0x65, 0x65, 0xb3, 0xec, 0x02, + 0xb2, 0x11, 0xba, 0xec, 0x76, 0x35, 0xc6, 0x9c, + 0xf3, 0xb5, 0x28, 0xd1, 0x4a, 0xc1, 0x63, 0xe4, + 0xe9, 0xda, 0x84, 0x94, 0xc1, 0x37, 0x07, 0x96, + 0x9b, 0x3b, 0x10, 0xd6, 0xcd, 0xb9, 0x72, 0x49, + 0x3b, 0xf7, 0xd7, 0xf3, 0x0a, 0x47, 0xca, 0x95, + 0xd5, 0x98, 0xb6, 0xe0, 0x4b, 0x0d, 0x5a, 0xa9, + 0xfd, 0x25, 0x19, 0x01, 0x62, 0x86, 0xf4, 0x00, + 0xf6, 0x3b, 0xe8, 0xa7, 0xd4, 0x07, 0x9b, 0xcc, + 0x2e, 0xf1, 0x91, 0x13, 0x33, 0xc8, 0x5d, 0x47, + 0xa6, 0x50, 0x56, 0x3b, 0x20, 0x10, 0x0d, 0x1c, + 0xa8, 0x9d, 0xf6, 0xae, 0x34, 0xe2, 0x37, 0xd1, + 0x09, 0x35, 0x14, 0x52, 0x07, 0x96, 0x37, 0x95, + 0xa5, 0x32, 0xc8, 0x02, 0x4c, 0xc8, 0xa9, 0x9b, + 0x2a, 0xec, 0x0b, 0xa0, 0xc3, 0xd2, 0x94, 0x45, + 0x9f, 0x7f, 0xcd, 0x60, 0x22, 0xbc, 0x12, 0xc9, + 0x12, 0x12, 0x49, 0x44, 0xc5, 0x84, 0xbe, 0x9d, + 0x9f, 0x60, 0x69, 0x7b, 0x6c, 0x54, 0xf7, 0xef, + 0xc0, 0x36, 0x2f, 0x86, 0xf5, 0xb5, 0xfd, 0x2b, + 0xf7, 0x70, 0x78, 0xef, 0xc6, 0xa8, 0x4b, 0xce, + 0x56, 0x46, 0x02, 0x90, 0x7e, 0x95, 0x37, 0x73, + 0xbf, 0xf0, 0x35, 0x5c, 0x07, 0x59, 0x23, 0x54, + 0xe7, 0xb4, 0x92, 0xd0, 0x60, 0xac, 0x7d, 0xc8, + 0xbc, 0x77, 0x3e, 0xd7, 0xdf, 0xe9, 0xc6, 0x90, + 0x11, 0xa8, 0x5c, 0xa8, 0x54, 0x67, 0xfb, 0x49, + 0xfe, 0xfb, 0xe1, 0xd6, 0x3c, 0x76, 0xc0, 0x7d, + 0x45, 0x7c, 0xef, 0xf8, 0x9e, 0x0c, 0x29, 0xaa, + 0x33, 0x92, 0xe9, 0x24, 0x2f, 0xb2, 0x26, 0x17, + 0x19, 0x8e, 0x88, 0x94, 0x33, 0x7e, 0x9e, 0x44, + 0x50, 0x50, 0xa3, 0xff, 0x00, 0x96, 0xe7, 0x89, + 0x60, 0x8f, 0x10, 0xc3, 0xe1, 0x32, 0x86, 0x52, + 0xf2, 0xc8, 0xb1, 0xfa, 0x55, 0x73, 0x50, 0x80, + 0xf3, 0x2d, 0x64, 0xe4, 0x10, 0xac, 0xfb, 0xdb, + 0x21, 0x11, 0xaf, 0x65, 0x1a, 0x6f, 0x0a, 0x9f, + 0x5f, 0x2b, 0xbc, 0x8e, 0x62, 0x84, 0xca, 0xcd, + 0x10, 0x87, 0x1c, 0xa4, 0x0c, 0xb7, 0x82, 0x30, + 0x51, 0x8c, 0x71, 0xb7, 0xf4, 0x83, 0xed, 0x53, + 0xa4, 0xd1, 0x27, 0x1d, 0x67, 0x81, 0x4b, 0x04, + 0x41, 0xd2, 0xa5, 0x7c, 0xae, 0x45, 0xdd, 0x41, + 0x4f, 0x94, 0x58, 0xef, 0xcc, 0x1f, 0x23, 0xb3, + 0x0f, 0xae, 0xc4, 0x29, 0x72, 0x42, 0x46, 0xdd, + 0x3d, 0xc0, 0x37, 0x5d, 0xce, 0xf7, 0xfd, 0x52, + 0x7f, 0x67, 0x0f, 0x2c, 0xad, 0x92, 0xb2, 0xc7, + 0xbe, 0x4a, 0xde, 0x4c, 0x59, 0x75, 0x6c, 0xdd, + 0x41, 0x32, 0x04, 0xd7, 0x70, 0x6e, 0xc0, 0x37, + 0xb7, 0x1a, 0x36, 0x63, 0x1d, 0x11, 0x0f, 0x96, + 0xd1, 0xa2, 0x5c, 0x29, 0x78, 0x60, 0xe7, 0x1b, + 0x58, 0xd8, 0xf7, 0x50, 0x6c, 0x9f, 0x6b, 0xb2, + 0x7b, 0xe8, 0x87, 0x43, 0x86, 0x97, 0x26, 0xaf, + 0x5a, 0x46, 0xaa, 0xe8, 0x0b, 0x3d, 0x52, 0xaa, + 0x05, 0x38, 0xad, 0x22, 0xd8, 0x63, 0xd3, 0xda, + 0xef, 0x89, 0xe5, 0x58, 0x66, 0x4d, 0x49, 0x3a, + 0x89, 0x44, 0x68, 0xaa, 0xca, 0x3a, 0x53, 0x19, + 0x64, 0x55, 0xe6, 0x63, 0x8a, 0xab, 0xc9, 0xb1, + 0x67, 0xb7, 0xc9, 0x15, 0x7a, 0x53, 0xac, 0xf1, + 0xe3, 0xf2, 0xc5, 0x32, 0xc0, 0xe6, 0x22, 0x42, + 0xe5, 0x33, 0x0e, 0x48, 0x94, 0xf2, 0x63, 0x02, + 0x49, 0xcb, 0x85, 0x39, 0x08, 0x96, 0x3b, 0xe6, + 0x6e, 0x41, 0x07, 0x12, 0x3d, 0xb8, 0xf8, 0xdd, + 0x14, 0x70, 0x0a, 0x85, 0xf9, 0x61, 0xaa, 0xcc, + 0x08, 0x23, 0xe5, 0x92, 0x7c, 0xdb, 0x61, 0x40, + 0x20, 0x06, 0x86, 0x57, 0xde, 0x90, 0xf0, 0x53, + 0x4d, 0xa9, 0x68, 0xd5, 0x18, 0x46, 0x24, 0x17, + 0xb0, 0x54, 0x61, 0xe5, 0x80, 0x24, 0x14, 0x14, + 0x86, 0xaf, 0x4b, 0x50, 0x1b, 0x9c, 0x4f, 0x1e, + 0x20, 0x34, 0xf0, 0x4c, 0xb0, 0x86, 0x67, 0x65, + 0x09, 0x10, 0xc4, 0x03, 0x18, 0x5c, 0x32, 0xe6, + 0x48, 0x4f, 0xe9, 0x76, 0x4b, 0xef, 0xd8, 0x1e, + 0x03, 0x68, 0xf4, 0xf1, 0xb4, 0x7c, 0xb9, 0xa8, + 0x09, 0x64, 0x63, 0xa7, 0xf4, 0xa4, 0x6b, 0x4d, + 0x34, 0xc7, 0x6c, 0x82, 0xc7, 0x99, 0x67, 0x65, + 0x24, 0xd9, 0x50, 0xa0, 0x9b, 0xe3, 0x45, 0x11, + 0x97, 0x49, 0xa9, 0x92, 0x32, 0x03, 0x06, 0x92, + 0x34, 0x69, 0x9a, 0x59, 0x42, 0x88, 0xbb, 0x51, + 0x12, 0x28, 0xca, 0xf3, 0xde, 0xc3, 0x6c, 0xb7, + 0xb7, 0x0e, 0xc1, 0x67, 0x62, 0xd2, 0x03, 0x19, + 0x68, 0x15, 0x14, 0xca, 0x62, 0x28, 0xea, 0xa5, + 0x99, 0xd9, 0xba, 0x9d, 0xa3, 0x93, 0xa2, 0xd5, + 0xb6, 0x57, 0x4c, 0xef, 0xab, 0x82, 0x55, 0xb4, + 0xd3, 0xee, 0xd3, 0xb4, 0xf3, 0x07, 0x10, 0x44, + 0xc7, 0x9a, 0x8a, 0xd2, 0x8c, 0x55, 0x63, 0x8d, + 0xf9, 0x92, 0x05, 0x31, 0xdd, 0x91, 0x91, 0xea, + 0x62, 0x28, 0x1e, 0x21, 0x70, 0x74, 0xf1, 0xb8, + 0x1d, 0xec, 0x95, 0x02, 0x9a, 0xc9, 0xde, 0xf7, + 0xef, 0xfb, 0xab, 0x85, 0xed, 0xc7, 0x88, 0x8f, + 0xe6, 0xb2, 0x30, 0xe9, 0x6c, 0xa2, 0x19, 0x8c, + 0x15, 0x85, 0xc8, 0x8b, 0xb3, 0xb8, 0x2a, 0x3b, + 0xd5, 0x9f, 0xdd, 0x7c, 0x2c, 0x6c, 0xaa, 0x8c, + 0xda, 0x8e, 0xe4, 0x1a, 0x76, 0x56, 0x46, 0x51, + 0x7d, 0x8c, 0x61, 0x7b, 0xed, 0xda, 0xeb, 0x7b, + 0x2d, 0xc3, 0xa4, 0x8e, 0xdd, 0x2c, 0x30, 0x65, + 0x0c, 0x00, 0x73, 0x54, 0x36, 0xda, 0xda, 0xce, + 0xe2, 0xfe, 0xbf, 0xc3, 0x88, 0xf4, 0xa4, 0x77, + 0x7a, 0xde, 0xbb, 0xd9, 0xf9, 0xf6, 0xc8, 0x37, + 0x7f, 0x9e, 0xd5, 0xfb, 0xf8, 0x58, 0x74, 0xd5, + 0xd0, 0x6e, 0x64, 0x51, 0x67, 0x2a, 0xb2, 0xa0, + 0x5f, 0xbd, 0x0b, 0xed, 0x67, 0x61, 0x7c, 0x4f, + 0x32, 0x44, 0xd1, 0xc9, 0x33, 0xc9, 0x1b, 0x34, + 0x63, 0x3e, 0x5b, 0x2c, 0x88, 0x98, 0xd9, 0xea, + 0x90, 0x49, 0xb2, 0x93, 0xf7, 0xab, 0xd8, 0xd7, + 0x1f, 0x9c, 0x5c, 0xe4, 0xb0, 0x81, 0x78, 0x4a, + 0xcb, 0x2c, 0xe5, 0xa3, 0x89, 0x8c, 0x2f, 0xca, + 0x9a, 0x98, 0xb8, 0x56, 0x58, 0x9d, 0xd3, 0x99, + 0xbf, 0xa8, 0xfb, 0x8b, 0x3c, 0x49, 0xac, 0x8e, + 0x37, 0x64, 0x32, 0x1d, 0x3c, 0x50, 0xd6, 0x05, + 0x29, 0xd2, 0x56, 0x94, 0x29, 0x32, 0x98, 0x51, + 0x4c, 0xd1, 0x72, 0xad, 0x96, 0x12, 0xc5, 0x55, + 0xc1, 0x6f, 0x5d, 0xf1, 0x17, 0x86, 0xa6, 0xb1, + 0x51, 0x72, 0x65, 0x84, 0xb1, 0x32, 0xac, 0x20, + 0xc5, 0xf1, 0x06, 0xc3, 0x14, 0x27, 0xb8, 0x0c, + 0x49, 0x32, 0x36, 0xc7, 0xb8, 0x07, 0x73, 0xc6, + 0x9f, 0x4f, 0x1e, 0x96, 0x25, 0x0a, 0x80, 0x62, + 0x81, 0x40, 0x50, 0x00, 0x54, 0x51, 0x4b, 0x1a, + 0x0e, 0xc0, 0x01, 0x43, 0x81, 0xe6, 0x86, 0x0e, + 0x3a, 0x4f, 0x61, 0xee, 0x3f, 0xef, 0xfe, 0x7b, + 0x71, 0xe2, 0x1e, 0x18, 0xd0, 0xcb, 0x26, 0xab, + 0x48, 0x02, 0xcb, 0x20, 0x5e, 0x68, 0xc1, 0x5b, + 0x9b, 0xcb, 0x62, 0xca, 0x40, 0x20, 0xd4, 0x80, + 0xee, 0xd5, 0x59, 0xd5, 0xf7, 0xee, 0x27, 0x84, + 0xe9, 0x9e, 0x52, 0x26, 0x79, 0xb2, 0xd4, 0x28, + 0x48, 0xd5, 0x95, 0xef, 0x4e, 0x82, 0x59, 0x6d, + 0x45, 0x94, 0x54, 0x8c, 0x34, 0x85, 0x8c, 0x44, + 0x61, 0x44, 0x5d, 0xf1, 0xcb, 0xd4, 0xaa, 0xac, + 0x9a, 0x47, 0x2f, 0x1c, 0x91, 0x96, 0x29, 0x2a, + 0xa9, 0x52, 0xd4, 0x0c, 0x72, 0x2b, 0x98, 0x5c, + 0x9a, 0x27, 0x0d, 0x9a, 0x3e, 0x96, 0x2c, 0x41, + 0x60, 0xa3, 0x8d, 0x24, 0x7e, 0x23, 0x21, 0xda, + 0x51, 0x18, 0x00, 0x17, 0x23, 0x96, 0x9d, 0x54, + 0x7d, 0xf9, 0x7b, 0x81, 0xd5, 0x46, 0xbd, 0xbd, + 0xb8, 0xd4, 0x43, 0xe2, 0x14, 0xc5, 0xe6, 0x12, + 0x46, 0xb8, 0x9c, 0x72, 0x2c, 0x6d, 0x80, 0xdc, + 0x84, 0x4d, 0xc5, 0xdf, 0xb6, 0xd5, 0xfb, 0x78, + 0xd4, 0x54, 0xcb, 0x12, 0xcb, 0x0a, 0xc9, 0xf2, + 0x59, 0x62, 0x9a, 0xaf, 0x00, 0x36, 0xb4, 0xaa, + 0xed, 0x62, 0xc7, 0xc9, 0xb6, 0xd8, 0x34, 0x9a, + 0xa9, 0x04, 0x82, 0x1d, 0x3c, 0x26, 0x2e, 0x83, + 0x84, 0x8d, 0xf3, 0xd9, 0xba, 0x4a, 0x11, 0x40, + 0x0c, 0xc7, 0xb1, 0x66, 0x23, 0x6e, 0x14, 0xe4, + 0xfc, 0xa6, 0x56, 0x12, 0x75, 0xa8, 0x25, 0x4e, + 0x0e, 0xf0, 0x10, 0xb3, 0x24, 0x72, 0x10, 0x04, + 0x9c, 0x96, 0x21, 0x58, 0x2e, 0xea, 0x4f, 0x6f, + 0x6e, 0x30, 0x91, 0xa3, 0xce, 0xcc, 0x71, 0xe4, + 0xcc, 0x4b, 0xa8, 0x43, 0x8d, 0x15, 0xae, 0xb5, + 0xe9, 0x50, 0xc3, 0x30, 0x6b, 0xf6, 0x90, 0x78, + 0x87, 0xc3, 0x04, 0xf8, 0xca, 0x51, 0x35, 0x31, + 0x6a, 0x46, 0x51, 0x2c, 0x72, 0x44, 0x84, 0x0a, + 0x8e, 0x39, 0x27, 0x2e, 0x03, 0x36, 0x78, 0xae, + 0x69, 0xb0, 0x46, 0xdc, 0x60, 0x76, 0xe2, 0x0f, + 0x00, 0x85, 0x63, 0x18, 0x1a, 0x0d, 0x6f, 0x59, + 0x7b, 0xb3, 0x16, 0xb2, 0x6b, 0x73, 0xf5, 0xf7, + 0xef, 0xc4, 0x9f, 0x92, 0xba, 0x53, 0x19, 0x50, + 0xf2, 0x8f, 0x30, 0xcd, 0x1f, 0x9a, 0xfe, 0x5c, + 0x9f, 0x34, 0x23, 0x12, 0x06, 0xe7, 0x62, 0x68, + 0x12, 0x78, 0xe4, 0x69, 0x34, 0x72, 0x3f, 0x5a, + 0xc1, 0xa8, 0x44, 0x63, 0x51, 0x69, 0x92, 0x67, + 0x7c, 0x8b, 0x3a, 0x3b, 0x50, 0x2d, 0xea, 0xe6, + 0x55, 0x35, 0x1c, 0x98, 0x11, 0x78, 0x91, 0x37, + 0xc3, 0xe4, 0xd7, 0x26, 0x0c, 0x02, 0xda, 0xab, + 0x3a, 0x64, 0xc4, 0x0c, 0x15, 0x94, 0x01, 0x68, + 0xe4, 0x02, 0x56, 0xa8, 0x9e, 0xe5, 0x7f, 0x93, + 0xc5, 0x00, 0xf8, 0x19, 0xad, 0x82, 0x0b, 0x87, + 0xa9, 0xae, 0x87, 0x9f, 0x17, 0x7c, 0x41, 0x3f, + 0xb8, 0x1e, 0x12, 0x05, 0xd4, 0x69, 0xa2, 0x31, + 0x4a, 0x8c, 0x23, 0x05, 0x72, 0x39, 0x00, 0x77, + 0xef, 0xba, 0xe4, 0x28, 0xd8, 0xdc, 0x70, 0xa1, + 0x63, 0xe5, 0xc6, 0xb2, 0x09, 0x0a, 0xc7, 0x5d, + 0x20, 0xee, 0xd9, 0xb1, 0xa5, 0xab, 0xef, 0x95, + 0x05, 0xbf, 0x6d, 0xf8, 0x49, 0x91, 0xa7, 0x11, + 0xf3, 0x23, 0xc8, 0xa9, 0xb8, 0xac, 0xf3, 0x02, + 0xb5, 0xa8, 0x6e, 0xd8, 0xf7, 0x1f, 0x3f, 0x98, + 0xdc, 0xf1, 0xf0, 0x7c, 0xbc, 0xdd, 0xa5, 0x45, + 0x18, 0x38, 0x56, 0xdc, 0xd9, 0x65, 0x20, 0x64, + 0x3e, 0x40, 0x6f, 0x43, 0x2d, 0xf8, 0x96, 0x16, + 0x51, 0x96, 0x32, 0xce, 0xb3, 0xb0, 0x03, 0x08, + 0x99, 0xb0, 0xda, 0x98, 0x37, 0x96, 0x0e, 0x25, + 0x94, 0x9b, 0x6d, 0x81, 0x60, 0xbb, 0x71, 0xf0, + 0x05, 0x35, 0x8e, 0x5f, 0x4e, 0x66, 0x0e, 0x64, + 0x32, 0x75, 0x30, 0x49, 0x44, 0x98, 0x3c, 0x28, + 0x63, 0xc1, 0x30, 0x31, 0xc6, 0xb2, 0xac, 0xc1, + 0x9e, 0x45, 0x99, 0xa9, 0xce, 0xea, 0x02, 0xfc, + 0x34, 0xf9, 0x4d, 0xa8, 0x44, 0x6c, 0x47, 0x4b, + 0x45, 0x31, 0xc5, 0x87, 0x2c, 0x66, 0x79, 0x44, + 0xc6, 0xac, 0xe8, 0x33, 0x09, 0x0a, 0xdb, 0x0a, + 0x07, 0xaa, 0xf2, 0xaf, 0x06, 0x91, 0x5f, 0x4d, + 0x19, 0x38, 0xf3, 0x19, 0x07, 0x62, 0xa7, 0x1d, + 0xb7, 0x8f, 0xa4, 0x91, 0x92, 0x1d, 0x9a, 0xbd, + 0xfe, 0x7e, 0xf2, 0x9b, 0xc5, 0x41, 0xde, 0xef, + 0x0f, 0xbd, 0xff, 0x00, 0x7f, 0x96, 0xfc, 0x21, + 0x39, 0x6d, 0xdf, 0xb7, 0xd0, 0xfe, 0x3f, 0x22, + 0x3f, 0xcf, 0xb7, 0x13, 0x94, 0xe5, 0x9e, 0x65, + 0x57, 0xf7, 0xff, 0x00, 0xd7, 0xfb, 0x38, 0xd4, + 0xc3, 0xa4, 0xd5, 0x6a, 0x80, 0x10, 0x23, 0xb7, + 0x59, 0x69, 0xc1, 0x56, 0xdd, 0x49, 0x66, 0x88, + 0x46, 0xc3, 0x16, 0x49, 0xd6, 0xd5, 0xcd, 0x5d, + 0x5f, 0xb1, 0xe2, 0x39, 0xb4, 0x9b, 0x0e, 0x59, + 0x56, 0x8c, 0x72, 0xd7, 0xc9, 0x8b, 0xd0, 0x59, + 0x6d, 0xd0, 0x93, 0x7c, 0xb5, 0x23, 0xa9, 0x4f, + 0xba, 0x8e, 0x83, 0x5c, 0x26, 0xbf, 0x44, 0xa6, + 0x69, 0x44, 0xb8, 0x85, 0xee, 0xe1, 0x2d, 0x54, + 0xc7, 0x62, 0x4b, 0xa1, 0x43, 0x03, 0x60, 0xd8, + 0xe2, 0x4f, 0x12, 0xd3, 0x3c, 0x6a, 0xa2, 0x52, + 0xfc, 0xe7, 0xc1, 0x29, 0x58, 0x2f, 0x35, 0x32, + 0x2e, 0x32, 0x45, 0x24, 0x7a, 0x4e, 0xc6, 0xa8, + 0xad, 0x5d, 0xed, 0xc4, 0x9d, 0x22, 0xf0, 0xa0, + 0x3a, 0x99, 0xcf, 0x3a, 0xc2, 0xf7, 0x2c, 0x32, + 0x8c, 0x0f, 0xec, 0x1e, 0xff, 0x00, 0x3e, 0x22, + 0xd4, 0x2a, 0x42, 0xc1, 0xe5, 0x77, 0x2a, 0xd4, + 0x8f, 0xb8, 0xa4, 0x8c, 0x01, 0x94, 0x8d, 0xfa, + 0x64, 0x32, 0x4c, 0xcd, 0x38, 0xa4, 0xba, 0xed, + 0x8b, 0x1e, 0x1c, 0x18, 0x5d, 0xa7, 0xd3, 0xc0, + 0xbf, 0x12, 0xed, 0xf6, 0xb6, 0xbd, 0x2c, 0xd5, + 0xe6, 0x37, 0x50, 0x34, 0x08, 0x06, 0x4c, 0x3a, + 0x9a, 0xbd, 0xcf, 0x0f, 0xa9, 0x96, 0xea, 0x52, + 0x0a, 0x72, 0xfa, 0xe5, 0x2c, 0xbd, 0x38, 0xd0, + 0x09, 0xbf, 0x55, 0x1b, 0x35, 0xbd, 0x6d, 0x47, + 0x8d, 0x04, 0x4e, 0xb2, 0xdb, 0x18, 0xf1, 0x64, + 0x26, 0x3c, 0x7a, 0x48, 0x42, 0x96, 0x01, 0x52, + 0x6c, 0x91, 0xee, 0xca, 0x30, 0xed, 0x47, 0x85, + 0x35, 0x12, 0xff, 0x00, 0x54, 0x01, 0xfb, 0xb8, + 0x51, 0x59, 0x59, 0xde, 0xaa, 0xbd, 0xbf, 0x7f, + 0x12, 0xe7, 0xf1, 0x85, 0xa2, 0x2d, 0x98, 0xc7, + 0x24, 0x65, 0x71, 0x0f, 0x2d, 0x94, 0xae, 0x4d, + 0x28, 0x14, 0x28, 0x9e, 0xc1, 0xb2, 0x1e, 0xe2, + 0x9b, 0x84, 0xd2, 0x54, 0x72, 0xbf, 0x2a, 0x26, + 0x72, 0x46, 0x52, 0xa6, 0x20, 0x8e, 0x56, 0x25, + 0x46, 0xeb, 0x67, 0x1a, 0x3d, 0xba, 0x71, 0x62, + 0x2f, 0xf9, 0x0a, 0x09, 0x3a, 0x48, 0xb1, 0xb3, + 0x51, 0xfd, 0x56, 0x52, 0x3f, 0x73, 0x53, 0x7e, + 0xce, 0x35, 0xf0, 0xaa, 0x27, 0x36, 0x3c, 0xd1, + 0xb2, 0x27, 0xa1, 0xd9, 0x41, 0xb1, 0x93, 0x33, + 0x6f, 0x40, 0x6c, 0x4e, 0xc3, 0xe6, 0x4d, 0xf1, + 0xaf, 0x94, 0xc4, 0xda, 0x78, 0x04, 0x52, 0xb3, + 0xea, 0x0c, 0x0e, 0xa2, 0x09, 0x1b, 0x39, 0xe1, + 0x67, 0xa7, 0x48, 0x9b, 0x23, 0x52, 0x38, 0x23, + 0x13, 0xb1, 0x5e, 0xe4, 0x00, 0x72, 0x10, 0x6a, + 0x35, 0xcb, 0x4c, 0x23, 0x41, 0x42, 0x52, 0x5f, + 0x50, 0xad, 0x20, 0x58, 0xe3, 0x27, 0x15, 0x94, + 0xaa, 0x82, 0xb2, 0x2b, 0x03, 0x1d, 0x57, 0x53, + 0xa9, 0x3b, 0x5f, 0x0d, 0xe2, 0x93, 0x9c, 0x50, + 0x69, 0xe8, 0xe3, 0x96, 0x2c, 0xf1, 0xf6, 0xe9, + 0xec, 0x01, 0x14, 0x3a, 0x87, 0x71, 0xef, 0xf4, + 0x35, 0xf9, 0xc0, 0x19, 0x2a, 0x75, 0x91, 0x18, + 0x86, 0x20, 0x40, 0xe8, 0x4f, 0x41, 0x21, 0xc6, + 0xc4, 0xee, 0x31, 0xad, 0xb7, 0xbe, 0x26, 0x92, + 0x6e, 0x5b, 0x3a, 0xe4, 0x8f, 0x24, 0xf1, 0x88, + 0xb0, 0x43, 0x33, 0x31, 0x58, 0x5a, 0x31, 0x8a, + 0x94, 0xeb, 0x62, 0x05, 0xf4, 0xda, 0xd1, 0x66, + 0xdf, 0x1e, 0x22, 0x3a, 0x9d, 0x4a, 0xc5, 0xa9, + 0x8d, 0xed, 0x31, 0x67, 0x0a, 0x0e, 0x2a, 0xd6, + 0x18, 0x54, 0xaa, 0xb8, 0x32, 0xfb, 0x11, 0x7b, + 0xa9, 0xb6, 0xaa, 0x3c, 0x68, 0xd6, 0x7f, 0x09, + 0xf8, 0x86, 0x2d, 0xcc, 0x88, 0x4b, 0x1b, 0xe2, + 0x0d, 0xd8, 0x92, 0x8b, 0xb2, 0x2a, 0x2b, 0x4c, + 0xae, 0x9b, 0xe3, 0x9c, 0x61, 0x64, 0xa2, 0x59, + 0xc2, 0x53, 0x71, 0xa1, 0xd6, 0x41, 0xad, 0x8d, + 0x26, 0x46, 0x57, 0xc8, 0x74, 0x3f, 0xde, 0xf9, + 0xec, 0x77, 0x56, 0x53, 0xb3, 0x2b, 0x0b, 0x07, + 0xbf, 0x0c, 0xd1, 0xc6, 0x19, 0xcf, 0xbf, 0xf1, + 0x3c, 0x6b, 0x75, 0xb2, 0x78, 0x8c, 0xef, 0xa6, + 0xd3, 0x31, 0x48, 0x10, 0x03, 0x3e, 0xa0, 0x76, + 0x65, 0x62, 0xc0, 0xe9, 0xe1, 0x22, 0xd8, 0xb1, + 0x00, 0xdc, 0x91, 0x8d, 0x8d, 0x0b, 0x17, 0xbc, + 0xfc, 0xbd, 0x2b, 0x42, 0xaa, 0x92, 0x91, 0x73, + 0x2e, 0x51, 0xdc, 0x92, 0x88, 0xf4, 0xea, 0x0f, + 0x34, 0x80, 0x4c, 0x84, 0x14, 0x49, 0x64, 0x66, + 0x16, 0x54, 0x2f, 0x57, 0x71, 0x71, 0x26, 0x59, + 0x31, 0x05, 0xe2, 0x2b, 0x11, 0x89, 0x95, 0xac, + 0xb2, 0x98, 0x90, 0x92, 0x72, 0x5d, 0x8e, 0x79, + 0x6d, 0xd5, 0x7f, 0xab, 0xc6, 0x86, 0x25, 0x2d, + 0x29, 0x93, 0x16, 0xea, 0x38, 0xb6, 0x20, 0x90, + 0x96, 0xd4, 0x18, 0x1c, 0x83, 0x3e, 0xdd, 0x4d, + 0x54, 0x76, 0xa1, 0xb7, 0x1a, 0xf8, 0xf4, 0xcb, + 0xa5, 0x66, 0x06, 0x34, 0x60, 0xd1, 0x98, 0x9d, + 0xa1, 0x55, 0x09, 0x24, 0x8c, 0x51, 0x5c, 0x12, + 0x14, 0xdb, 0x97, 0xaa, 0x0c, 0x0b, 0x03, 0x40, + 0xd9, 0xe3, 0x90, 0xf1, 0x41, 0x8b, 0xfc, 0x44, + 0x8e, 0xaa, 0xd9, 0x4f, 0x23, 0x01, 0x67, 0x72, + 0x49, 0x40, 0x00, 0x11, 0xa9, 0x27, 0x15, 0xef, + 0x88, 0x00, 0xb3, 0x1b, 0x3c, 0x48, 0xa7, 0x16, + 0xbe, 0x5f, 0xdb, 0x34, 0xc3, 0xa6, 0xd4, 0x95, + 0x32, 0x79, 0xa4, 0x72, 0x4d, 0xc6, 0xb8, 0xf5, + 0x5d, 0x93, 0x84, 0x9f, 0xce, 0x45, 0xf4, 0xae, + 0xa4, 0x18, 0xe3, 0x27, 0xce, 0x2f, 0x21, 0x5c, + 0xe1, 0x46, 0x54, 0x03, 0x26, 0x19, 0x30, 0x67, + 0x2c, 0x15, 0x6a, 0x89, 0xb3, 0xd5, 0xb8, 0xda, + 0xb8, 0x91, 0xb1, 0xcd, 0x8b, 0x86, 0x88, 0x47, + 0xf6, 0x62, 0x3c, 0xdc, 0xb6, 0x5d, 0xfd, 0x5b, + 0x8a, 0xad, 0xab, 0xeb, 0x7c, 0x68, 0xb5, 0x91, + 0xc6, 0x99, 0x44, 0xe8, 0x52, 0x47, 0x67, 0x2c, + 0x18, 0xd3, 0x12, 0x02, 0x9a, 0x05, 0x88, 0xdb, + 0x1f, 0x6d, 0x86, 0xfb, 0x71, 0x0f, 0x8b, 0x69, + 0xb9, 0x69, 0xd4, 0x83, 0x6e, 0xc5, 0xd6, 0xc1, + 0x1e, 0xc7, 0xf1, 0xe3, 0xf3, 0x94, 0x1b, 0xd6, + 0x24, 0xd7, 0x60, 0xe0, 0x9d, 0xf6, 0xed, 0xfe, + 0x7b, 0x71, 0x14, 0x66, 0x79, 0x28, 0x63, 0x76, + 0x5c, 0x16, 0xf9, 0xf4, 0xd5, 0x7c, 0x8f, 0x4f, + 0x71, 0xbf, 0x1f, 0x9b, 0x75, 0x20, 0x10, 0x24, + 0x40, 0xb8, 0x6e, 0xb6, 0xfb, 0xd0, 0xea, 0x6e, + 0xd5, 0xd4, 0x6a, 0xef, 0xf0, 0xfa, 0xff, 0x00, + 0x23, 0xc8, 0xb1, 0x0e, 0x63, 0x9c, 0x40, 0xa0, + 0x4f, 0x6a, 0xc9, 0x82, 0x8f, 0xe2, 0x40, 0xe3, + 0x59, 0xa8, 0x8a, 0x5c, 0xa2, 0x12, 0x2a, 0xb4, + 0x6d, 0x93, 0x33, 0x91, 0x55, 0x8d, 0x50, 0xac, + 0xb2, 0xbb, 0xec, 0x3d, 0xcd, 0x1b, 0x1c, 0x78, + 0x9e, 0x9d, 0x82, 0xe9, 0x0c, 0x89, 0x2e, 0xa1, + 0xc3, 0xe9, 0xd6, 0x29, 0x22, 0x98, 0xa4, 0xd2, + 0x64, 0x43, 0x3c, 0x70, 0x22, 0xa7, 0x95, 0x21, + 0x1c, 0xbc, 0x5d, 0x7b, 0x12, 0x3b, 0x1e, 0xae, + 0x34, 0xdf, 0x19, 0x41, 0x44, 0x6c, 0xba, 0x58, + 0xd9, 0x91, 0xc3, 0x9f, 0x30, 0x0b, 0xea, 0x43, + 0x90, 0x50, 0xcc, 0xab, 0xe5, 0xb3, 0x85, 0xeb, + 0x7c, 0xb6, 0x1d, 0xb8, 0x99, 0x5e, 0x50, 0x86, + 0x15, 0x8e, 0x20, 0x81, 0xd0, 0x96, 0x48, 0x93, + 0x20, 0xe1, 0x7a, 0x72, 0x5e, 0x5e, 0x54, 0x2c, + 0x1b, 0xbe, 0x92, 0x36, 0x1b, 0xf0, 0x74, 0xfa, + 0xe5, 0x68, 0xdc, 0x08, 0x59, 0x01, 0x39, 0xb7, + 0x48, 0xda, 0xaf, 0x25, 0x7b, 0x6b, 0xc4, 0x02, + 0x4d, 0x77, 0xf4, 0x9a, 0xe2, 0x26, 0x93, 0x53, + 0x4c, 0xf1, 0xc5, 0x34, 0x2c, 0x18, 0x85, 0x0c, + 0x80, 0x86, 0xc4, 0xe2, 0x63, 0x60, 0xe0, 0x81, + 0x90, 0xfc, 0x47, 0x56, 0x3d, 0xc8, 0xe2, 0x47, + 0xd4, 0xc6, 0x31, 0xd2, 0xc2, 0xf0, 0xc1, 0x1c, + 0x5e, 0xc6, 0x02, 0xb5, 0x57, 0x78, 0xe5, 0x61, + 0x17, 0x2f, 0x9b, 0x92, 0x3d, 0xfb, 0x28, 0x6d, + 0x4b, 0x44, 0x8d, 0x86, 0x9a, 0xe6, 0x31, 0x21, + 0xd4, 0x1f, 0x37, 0x39, 0x48, 0x0c, 0xae, 0xdc, + 0xa8, 0xd9, 0xc3, 0xc6, 0x15, 0xb1, 0x14, 0xd9, + 0x10, 0xc5, 0x04, 0x75, 0x67, 0x8d, 0x26, 0xaf, + 0x51, 0xe1, 0x99, 0x96, 0x42, 0x20, 0x0e, 0x8a, + 0x41, 0x01, 0x41, 0x92, 0x55, 0xb5, 0x75, 0x0a, + 0x4b, 0x0d, 0xfd, 0x4c, 0x54, 0x29, 0xf7, 0x3e, + 0xfc, 0x6a, 0xfc, 0x67, 0x53, 0xab, 0xd3, 0x84, + 0x8d, 0xe3, 0x8d, 0x9b, 0xbc, 0xab, 0xd5, 0xe5, + 0xd8, 0x24, 0x05, 0xb5, 0xf5, 0x2e, 0xc5, 0x81, + 0xfc, 0x3e, 0xb0, 0x0d, 0x14, 0x3a, 0x5f, 0x2f, + 0x56, 0x79, 0x81, 0x15, 0x81, 0x55, 0x31, 0xde, + 0x00, 0xb7, 0x4c, 0x7c, 0xbb, 0x5c, 0x88, 0x5a, + 0x8f, 0x32, 0x41, 0xfa, 0xed, 0xc3, 0x08, 0x19, + 0x39, 0xda, 0x84, 0x6d, 0x45, 0x06, 0x21, 0x8b, + 0xc9, 0xcf, 0x58, 0xe4, 0x28, 0x5a, 0x25, 0x5d, + 0x9b, 0x0a, 0xc9, 0x79, 0x75, 0xd8, 0x95, 0xed, + 0x7c, 0x36, 0xba, 0x45, 0xe5, 0xa8, 0x00, 0xa9, + 0x0b, 0x18, 0xa5, 0x04, 0x20, 0x58, 0xfb, 0xb5, + 0xf6, 0x53, 0x8d, 0x7b, 0xfb, 0x71, 0x1e, 0xb7, + 0x5b, 0x19, 0x56, 0x1a, 0x87, 0x5c, 0x6e, 0xd6, + 0x24, 0x8d, 0x63, 0x71, 0x91, 0x65, 0xc9, 0x59, + 0x58, 0xec, 0x3a, 0x4e, 0x2c, 0x2e, 0xcf, 0xd2, + 0x93, 0xc4, 0x66, 0xd6, 0x60, 0xb3, 0x86, 0x91, + 0x72, 0x56, 0x68, 0xa9, 0x43, 0xd8, 0xdc, 0x5a, + 0xfd, 0xe1, 0x56, 0x36, 0xdb, 0xb8, 0xf9, 0xf0, + 0x70, 0x10, 0xb0, 0x48, 0x75, 0x45, 0x57, 0x99, + 0x6c, 0xf2, 0x17, 0x0a, 0xc4, 0xbb, 0x1c, 0xaf, + 0x23, 0x8a, 0xd9, 0xe9, 0xc8, 0x00, 0x2d, 0x45, + 0x0a, 0xe1, 0x8d, 0x86, 0xfb, 0x2d, 0xe4, 0x69, + 0x7d, 0x3b, 0x1a, 0xe6, 0xf9, 0xa7, 0xcb, 0x3e, + 0x52, 0xe1, 0xd5, 0xdf, 0xec, 0xe4, 0xf3, 0x85, + 0xf4, 0xab, 0x97, 0x5b, 0xc1, 0x90, 0xf5, 0x5a, + 0x35, 0x02, 0x29, 0x88, 0xbe, 0x97, 0x23, 0xaa, + 0xb2, 0x1b, 0xdd, 0x1d, 0xe8, 0xdf, 0x0c, 0xcd, + 0x16, 0x9c, 0xb4, 0x2a, 0x1f, 0x05, 0xf2, 0xc6, + 0x6d, 0x26, 0x5b, 0xfd, 0xeb, 0x66, 0x6f, 0x7f, + 0x9f, 0x10, 0x6a, 0x04, 0xbd, 0x5c, 0x80, 0x54, + 0x1a, 0x21, 0x90, 0xa5, 0xd7, 0x70, 0x3b, 0x1a, + 0xfc, 0x2b, 0xf7, 0xf0, 0x75, 0x12, 0xf4, 0xe0, + 0x9d, 0x68, 0x19, 0x96, 0x58, 0x59, 0x12, 0x26, + 0x62, 0x57, 0x97, 0x9a, 0xc9, 0x9f, 0x4a, 0x53, + 0xab, 0xac, 0x67, 0x23, 0x6a, 0xc1, 0xb6, 0x23, + 0x88, 0x75, 0x30, 0xea, 0xb5, 0x91, 0xb2, 0x60, + 0xb3, 0xb1, 0xbb, 0x25, 0xe4, 0x31, 0xc1, 0x89, + 0x06, 0x3d, 0xca, 0x81, 0x6e, 0x6c, 0x34, 0x9f, + 0x5a, 0x07, 0x7e, 0x34, 0x8a, 0x79, 0xe0, 0x06, + 0xba, 0xad, 0xea, 0xbd, 0x9a, 0xc6, 0xc4, 0xfe, + 0xaf, 0xfd, 0x78, 0x93, 0x50, 0xe9, 0xce, 0x2d, + 0xba, 0x22, 0xb0, 0xa0, 0x06, 0x5b, 0xf2, 0xc0, + 0xf7, 0xf9, 0x93, 0xde, 0xb6, 0xfc, 0x05, 0xf1, + 0xac, 0x8b, 0x9d, 0xa7, 0x78, 0xab, 0x20, 0xc6, + 0x3c, 0x85, 0xd5, 0xa8, 0x91, 0x0b, 0xef, 0x63, + 0xf4, 0x41, 0xf7, 0x1f, 0x4d, 0xf8, 0x8b, 0xc2, + 0xe6, 0x13, 0x90, 0x42, 0x14, 0x19, 0x95, 0x5e, + 0x62, 0xe4, 0x2c, 0x37, 0x2e, 0xc5, 0xdf, 0x49, + 0xc7, 0xbe, 0xdb, 0x6f, 0x63, 0x89, 0x3c, 0x33, + 0x55, 0x3e, 0x9a, 0x56, 0x94, 0xc7, 0x24, 0xef, + 0x28, 0x93, 0x3f, 0xb0, 0x48, 0xd7, 0x72, 0xc6, + 0x81, 0x00, 0x30, 0x3c, 0xb2, 0x0a, 0x80, 0x41, + 0x51, 0x47, 0x84, 0xf0, 0xa9, 0xf4, 0xda, 0x16, + 0x58, 0x79, 0x68, 0xcd, 0x9e, 0x4f, 0x42, 0x7c, + 0x91, 0x70, 0x75, 0x02, 0xac, 0xa9, 0x2e, 0xae, + 0xc5, 0x87, 0x72, 0x69, 0x8f, 0xcb, 0x4c, 0x74, + 0xf1, 0x4b, 0x0b, 0x6a, 0xd7, 0xc9, 0xe4, 0x95, + 0x19, 0x2e, 0x48, 0xb3, 0x67, 0x6d, 0x92, 0xd1, + 0xdc, 0x8f, 0x7a, 0xec, 0x57, 0xe5, 0xb6, 0xb1, + 0xa0, 0xf3, 0xf9, 0x42, 0xa0, 0x79, 0x94, 0xc0, + 0x37, 0x16, 0x02, 0x11, 0x2b, 0x28, 0xfb, 0x85, + 0xf1, 0xf6, 0xfd, 0xd8, 0xd7, 0x18, 0xc9, 0x56, + 0xb4, 0xaa, 0x3e, 0x5d, 0x3f, 0xb4, 0xd7, 0xf6, + 0xf1, 0x19, 0x69, 0x80, 0x30, 0xc9, 0xcd, 0x17, + 0x5d, 0x0f, 0x98, 0xee, 0x16, 0xb6, 0xdb, 0xb9, + 0x03, 0xf1, 0x20, 0x7b, 0xf1, 0x90, 0x66, 0x6c, + 0x63, 0xe6, 0xc9, 0x1a, 0xba, 0x98, 0xb9, 0xf0, + 0xa6, 0xec, 0x43, 0x80, 0xd6, 0xb1, 0xa2, 0xb2, + 0x8e, 0x94, 0xdd, 0x2d, 0x3b, 0xe4, 0xfd, 0x5c, + 0x4d, 0xa4, 0x21, 0x2d, 0x23, 0x86, 0x59, 0x24, + 0x2d, 0x40, 0xc9, 0x88, 0x5c, 0x60, 0x69, 0x3a, + 0xad, 0xba, 0x95, 0xa4, 0x0a, 0xa7, 0x66, 0x21, + 0x48, 0x6f, 0x40, 0x27, 0x86, 0x8d, 0x50, 0x98, + 0xcc, 0x7a, 0x73, 0x20, 0x54, 0x56, 0x2b, 0x3c, + 0x09, 0xc9, 0x35, 0xe9, 0xc5, 0x98, 0xef, 0xf2, + 0xb5, 0xac, 0x6a, 0x94, 0x7b, 0x22, 0x4c, 0xf2, + 0x4e, 0x40, 0xd2, 0x47, 0xb4, 0x91, 0xaa, 0x1d, + 0x44, 0x2f, 0x83, 0xb2, 0x8e, 0x5b, 0x9e, 0xa5, + 0x1f, 0xaf, 0x88, 0xdf, 0x7a, 0xc8, 0x15, 0xae, + 0x25, 0xd3, 0x36, 0x9c, 0x3c, 0x9a, 0x87, 0xc6, + 0x00, 0x5a, 0x34, 0x3d, 0x19, 0xb9, 0x8d, 0x88, + 0x79, 0x42, 0xa3, 0xca, 0xdc, 0x97, 0xdb, 0x0e, + 0x9b, 0x15, 0x4d, 0xbf, 0x11, 0x69, 0x56, 0x6c, + 0xb9, 0x46, 0xc2, 0x35, 0x48, 0xc4, 0xf9, 0x71, + 0x9a, 0xc8, 0xf3, 0x18, 0x56, 0x3d, 0x27, 0x23, + 0xf4, 0xf6, 0xe1, 0xb4, 0x40, 0xab, 0x26, 0x9f, + 0x53, 0x8c, 0x85, 0xf9, 0x99, 0x3c, 0x6c, 0x62, + 0x90, 0xdd, 0x98, 0xc1, 0xcd, 0x9d, 0x15, 0xfd, + 0x2b, 0xe5, 0x8a, 0xb0, 0x69, 0x78, 0x4d, 0x2c, + 0x7a, 0x41, 0x34, 0x8e, 0x1d, 0x64, 0xf2, 0xcc, + 0x4e, 0xac, 0xb8, 0xc9, 0x60, 0x58, 0x7b, 0x16, + 0x36, 0xb1, 0x9e, 0xf4, 0xa0, 0xd0, 0xca, 0xaf, + 0x4d, 0x06, 0x50, 0xce, 0xd2, 0x48, 0xe7, 0x19, + 0x24, 0x28, 0xcb, 0x24, 0x84, 0x46, 0xac, 0xa5, + 0xcf, 0x34, 0xbe, 0x76, 0x39, 0x85, 0x89, 0xa7, + 0x5a, 0x4d, 0xb1, 0xad, 0xf8, 0x31, 0x2e, 0x4f, + 0x26, 0x08, 0x5c, 0x87, 0x60, 0x4f, 0xa6, 0x87, + 0x30, 0x99, 0x0d, 0x21, 0x06, 0x15, 0xc6, 0xdb, + 0xb9, 0x38, 0x4b, 0xe7, 0x0b, 0xd8, 0xea, 0x60, + 0x91, 0x02, 0x35, 0xba, 0xcb, 0x94, 0x63, 0x03, + 0xea, 0x20, 0x36, 0x42, 0xc3, 0x02, 0xa4, 0x51, + 0xdf, 0x6a, 0xae, 0xf7, 0xc3, 0x3a, 0xa4, 0x2b, + 0x24, 0x71, 0x72, 0x9a, 0x20, 0x7c, 0x8b, 0x26, + 0x3a, 0xc8, 0x5d, 0x88, 0xd4, 0x97, 0x6c, 0x41, + 0x2b, 0x5b, 0xe4, 0x7a, 0xbd, 0xf8, 0x06, 0x00, + 0xb5, 0xf0, 0xa2, 0x30, 0xc0, 0xb0, 0x5c, 0xe2, + 0x41, 0xd5, 0x64, 0x9a, 0x34, 0x77, 0x6b, 0x07, + 0xb6, 0xd7, 0xd9, 0xba, 0x80, 0xe4, 0xf6, 0x5d, + 0x28, 0xf6, 0xa0, 0x1d, 0x08, 0x1e, 0x9d, 0x85, + 0x3a, 0xd8, 0xd8, 0xed, 0x7d, 0x8d, 0x71, 0xa6, + 0x86, 0x39, 0x15, 0xdb, 0xe1, 0xc2, 0x95, 0x54, + 0x51, 0xd4, 0xab, 0x61, 0x55, 0xec, 0xd8, 0xc9, + 0x72, 0x1b, 0x9e, 0xaa, 0x5e, 0xc0, 0x0e, 0x34, + 0x54, 0x64, 0x88, 0xa2, 0xd0, 0x26, 0x8e, 0xfd, + 0xb6, 0x3f, 0x4f, 0x7f, 0xd9, 0xfb, 0x7d, 0xbe, + 0x1a, 0xd9, 0x8b, 0x36, 0x48, 0x55, 0xba, 0x48, + 0x3e, 0xc1, 0x6b, 0xbb, 0x95, 0xdb, 0x13, 0xfa, + 0x3f, 0x2a, 0xad, 0xf2, 0xe2, 0x42, 0x02, 0x92, + 0xc4, 0x01, 0xb6, 0xe7, 0xb7, 0x71, 0xc2, 0x69, + 0xdf, 0xe2, 0xb9, 0x99, 0xa6, 0x01, 0xcb, 0xe4, + 0x24, 0x16, 0x46, 0xfd, 0x35, 0xfc, 0x1a, 0xf6, + 0x02, 0xf8, 0xd4, 0xaf, 0x3a, 0x05, 0x0a, 0xe1, + 0x49, 0xa6, 0xea, 0xe9, 0xb0, 0x7d, 0xaf, 0xf8, + 0x8f, 0xc0, 0x71, 0x14, 0x66, 0x1d, 0x3c, 0x8a, + 0xf2, 0x2d, 0xbb, 0x96, 0x08, 0x0e, 0x54, 0xa1, + 0x3a, 0xac, 0xfe, 0xb5, 0x59, 0x3e, 0xdb, 0x0d, + 0xcf, 0x1a, 0x99, 0x0a, 0x59, 0x2e, 0x91, 0xe4, + 0xf8, 0xa5, 0x1c, 0x83, 0xfd, 0xcc, 0x85, 0x01, + 0x91, 0xfb, 0xb4, 0xd5, 0xf3, 0x3c, 0x0f, 0x0f, + 0x9f, 0x54, 0xd1, 0xcc, 0xda, 0x8a, 0x4a, 0x64, + 0x2b, 0x89, 0xca, 0xff, 0x00, 0x47, 0x7d, 0xe9, + 0x00, 0xb2, 0x04, 0x61, 0x88, 0x6e, 0xf4, 0x2f, + 0x88, 0xfc, 0x22, 0x41, 0x91, 0x79, 0x15, 0xce, + 0xd1, 0x2b, 0x1c, 0x8b, 0x18, 0xc5, 0x56, 0x74, + 0x08, 0x62, 0xc4, 0xb1, 0x24, 0x2f, 0xd0, 0x8e, + 0x21, 0xd3, 0x22, 0x72, 0x96, 0x24, 0x9b, 0x19, + 0xa2, 0xe6, 0xf2, 0xe3, 0xfe, 0x6e, 0xc3, 0x72, + 0x68, 0xe2, 0x57, 0xa6, 0xd4, 0x31, 0xdc, 0x06, + 0x1c, 0x2e, 0x87, 0x4e, 0xe6, 0x33, 0xc9, 0x9f, + 0xa8, 0x31, 0x34, 0xe6, 0x3c, 0x8d, 0x15, 0xbb, + 0x5a, 0xac, 0x06, 0xc2, 0xfe, 0x5b, 0x1e, 0xdc, + 0x72, 0xd8, 0xb4, 0x08, 0x3e, 0x36, 0x84, 0x52, + 0x56, 0x12, 0x90, 0x9e, 0x9c, 0x7d, 0x56, 0x70, + 0x21, 0x7d, 0x23, 0x6b, 0x01, 0xae, 0xef, 0x71, + 0xa0, 0x8a, 0x43, 0x1c, 0xb2, 0xc1, 0xa8, 0x32, + 0xba, 0x17, 0x6c, 0xa6, 0x66, 0x67, 0x70, 0x31, + 0xc8, 0x9b, 0xa3, 0xb7, 0x7f, 0x9f, 0xbd, 0xf0, + 0x34, 0x10, 0xda, 0xd6, 0x9a, 0x72, 0x71, 0xb6, + 0xa9, 0x07, 0x5b, 0x7b, 0x35, 0xfd, 0x3e, 0x5f, + 0x87, 0xed, 0x9b, 0x40, 0x64, 0xea, 0x06, 0x48, + 0xdb, 0x00, 0xcf, 0x24, 0xe4, 0xcb, 0x75, 0x40, + 0x62, 0xb9, 0x06, 0x37, 0x78, 0xaa, 0xe4, 0x06, + 0xe2, 0xc8, 0x16, 0x78, 0xd4, 0xc0, 0xee, 0x42, + 0xd3, 0x47, 0x0c, 0x5c, 0xbe, 0x51, 0x0e, 0x14, + 0xbd, 0x53, 0x48, 0xd2, 0x7b, 0x03, 0x23, 0xd8, + 0x2b, 0x6d, 0x69, 0x4b, 0x7d, 0x80, 0x45, 0x5f, + 0x0c, 0x42, 0xec, 0xaf, 0x0a, 0x35, 0x16, 0x75, + 0x24, 0xb2, 0xb6, 0xcb, 0xcb, 0x08, 0xb9, 0x3a, + 0x9c, 0x42, 0xb3, 0xc8, 0x29, 0x51, 0x58, 0x16, + 0x60, 0x68, 0xf1, 0xf1, 0x98, 0xe5, 0x24, 0x92, + 0x99, 0x20, 0x5e, 0x89, 0xa3, 0x46, 0xb1, 0x84, + 0xa0, 0x0c, 0x1f, 0x10, 0x4e, 0x58, 0xb2, 0x95, + 0x2c, 0xa4, 0xdd, 0x37, 0xb7, 0x1a, 0x3d, 0x3b, + 0xb1, 0x89, 0x20, 0x0c, 0xda, 0x69, 0x0b, 0x03, + 0x24, 0xb1, 0xb3, 0xbc, 0x64, 0x0a, 0x22, 0x4c, + 0x5c, 0x0f, 0xba, 0x6c, 0x90, 0x1b, 0x2b, 0x22, + 0xed, 0x78, 0x9f, 0xc2, 0x66, 0xca, 0x14, 0x0d, + 0x18, 0x13, 0x38, 0xa6, 0x35, 0x8b, 0x55, 0x33, + 0x44, 0x6c, 0x9c, 0x43, 0x2b, 0xd0, 0xfc, 0x5a, + 0x87, 0x7e, 0x1f, 0x45, 0x32, 0xb0, 0x8f, 0x91, + 0x40, 0x99, 0x15, 0x9d, 0x5c, 0x0c, 0x31, 0x42, + 0xf7, 0xea, 0xb3, 0xb6, 0xe2, 0xb7, 0xf7, 0xae, + 0x39, 0x02, 0x1a, 0x8d, 0xc0, 0xb8, 0xc2, 0x8e, + 0xa6, 0xb6, 0xec, 0x37, 0x63, 0xee, 0x7d, 0xc9, + 0xe0, 0xc3, 0x1c, 0xc4, 0x17, 0x8b, 0x50, 0x6a, + 0x10, 0x54, 0x9c, 0x7d, 0x4d, 0xd5, 0x95, 0xd6, + 0xea, 0x49, 0xb0, 0x7b, 0xfe, 0xaf, 0x0b, 0xa2, + 0x82, 0x3f, 0x4c, 0x52, 0xae, 0x69, 0x99, 0xdc, + 0x75, 0x48, 0x40, 0xb7, 0xed, 0xe9, 0xdb, 0xff, + 0x00, 0xd7, 0x6d, 0xd2, 0x10, 0x14, 0xa8, 0xe7, + 0x80, 0xc8, 0xa4, 0x80, 0x76, 0x66, 0x1b, 0x86, + 0x22, 0xbb, 0x0b, 0x35, 0x7f, 0xbb, 0xb7, 0x11, + 0x17, 0x88, 0xda, 0x19, 0xc7, 0x47, 0xb3, 0x0c, + 0x4b, 0x6d, 0xbe, 0xd5, 0x42, 0x87, 0xfd, 0xb8, + 0x3a, 0xbd, 0x49, 0xab, 0x7d, 0x55, 0x74, 0x01, + 0x89, 0xee, 0xf7, 0xbd, 0xd7, 0x64, 0xf7, 0x3d, + 0xcd, 0x5f, 0x4f, 0xf2, 0x78, 0x89, 0xc7, 0x47, + 0x33, 0x6f, 0xb0, 0x43, 0xb0, 0xb3, 0xb4, 0x89, + 0xd8, 0x51, 0xb3, 0xf2, 0x14, 0x6f, 0xe5, 0xc2, + 0x3a, 0xac, 0xad, 0x20, 0xd5, 0x38, 0x2e, 0xed, + 0x03, 0x21, 0x5d, 0xa3, 0xd4, 0x79, 0x99, 0x46, + 0xe0, 0x25, 0x66, 0xdf, 0xa3, 0x1a, 0xdb, 0x0c, + 0x5b, 0xa7, 0xd9, 0x61, 0x9e, 0x4c, 0x0e, 0x9e, + 0x79, 0x65, 0x00, 0xea, 0x31, 0x0d, 0x18, 0x95, + 0x9b, 0x9e, 0x92, 0x12, 0x22, 0x5b, 0xf3, 0x03, + 0x15, 0xbb, 0x8b, 0xbe, 0xd8, 0xe3, 0x5b, 0x70, + 0xfa, 0xb9, 0x06, 0x2a, 0x86, 0x46, 0x06, 0x43, + 0x1a, 0x9e, 0x5b, 0x86, 0x33, 0x90, 0x82, 0x48, + 0xba, 0x80, 0x6e, 0x62, 0x9d, 0xb0, 0xab, 0x17, + 0xf5, 0xe3, 0x9a, 0xc5, 0x8a, 0x85, 0x66, 0x67, + 0x99, 0x94, 0x06, 0xcd, 0x89, 0x9b, 0xa0, 0x34, + 0x68, 0x0d, 0xd3, 0xae, 0x69, 0x71, 0xaf, 0xa7, + 0x21, 0xb0, 0xbe, 0x21, 0x95, 0x99, 0x74, 0xca, + 0x26, 0x8b, 0x29, 0x66, 0x90, 0x32, 0x2a, 0xc9, + 0xb8, 0x5e, 0x59, 0xe5, 0x57, 0x66, 0x9c, 0x73, + 0x22, 0x14, 0x5b, 0x63, 0x22, 0xf4, 0x6e, 0x2e, + 0x3d, 0x42, 0xbe, 0x0a, 0xd3, 0x2b, 0x34, 0x92, + 0x4a, 0x95, 0x1a, 0xc8, 0xea, 0xfc, 0xbc, 0x44, + 0x6b, 0xd8, 0x97, 0x90, 0x2b, 0x43, 0x69, 0x44, + 0xa9, 0x91, 0x28, 0x51, 0x1c, 0x3c, 0xd3, 0x39, + 0x8f, 0x97, 0x2b, 0xc8, 0xcb, 0x36, 0x31, 0x72, + 0xb2, 0x4b, 0x42, 0x54, 0x08, 0x90, 0xf5, 0x19, + 0x30, 0x59, 0x50, 0x95, 0x4a, 0x63, 0x92, 0x6d, + 0xbe, 0xe9, 0xa8, 0xd5, 0xdc, 0x2a, 0x81, 0xa5, + 0x51, 0x21, 0x0a, 0xfc, 0xc6, 0x2c, 0xe0, 0x04, + 0xdd, 0x42, 0x2f, 0x98, 0x6a, 0x4d, 0xd3, 0xdb, + 0x62, 0x6a, 0xc7, 0x11, 0xea, 0x64, 0xc6, 0x91, + 0x9d, 0x86, 0x3e, 0x49, 0xeb, 0x63, 0x91, 0x05, + 0x9b, 0x7b, 0x39, 0xa8, 0xb5, 0xb0, 0x86, 0xd4, + 0x6c, 0x6b, 0x6e, 0x06, 0xa8, 0x96, 0x88, 0x67, + 0x27, 0x52, 0x38, 0x50, 0x99, 0x94, 0x7d, 0xb2, + 0x72, 0x2b, 0xd9, 0x68, 0xd1, 0x07, 0x60, 0x4d, + 0xf0, 0x35, 0x32, 0xa8, 0x21, 0x32, 0x60, 0xa1, + 0x44, 0x40, 0x48, 0xd9, 0x3a, 0x82, 0x79, 0xa4, + 0xb1, 0x06, 0xf0, 0x0a, 0xcc, 0x6b, 0x2f, 0x4b, + 0x65, 0x5c, 0x7c, 0x42, 0x96, 0x2a, 0xf2, 0x39, + 0x89, 0xa2, 0x91, 0x58, 0x81, 0x94, 0x8b, 0x89, + 0xc8, 0x49, 0x18, 0xec, 0xc9, 0x1f, 0x2a, 0x4e, + 0x67, 0xd1, 0x5b, 0x71, 0x47, 0x83, 0xf0, 0xa2, + 0xbc, 0xe6, 0xd5, 0x61, 0x13, 0x0c, 0x5e, 0x15, + 0xe5, 0x12, 0x9b, 0x9d, 0x43, 0xa9, 0xde, 0x53, + 0x1f, 0x26, 0x43, 0xd2, 0x04, 0x4a, 0x55, 0xcb, + 0x5e, 0x35, 0xc4, 0xba, 0x88, 0x35, 0x66, 0x03, + 0xcd, 0x91, 0x4a, 0x23, 0xb7, 0x99, 0x0c, 0xf4, + 0x0c, 0x5c, 0xc5, 0x91, 0xc9, 0x44, 0x6c, 0x83, + 0xd4, 0xd2, 0x31, 0x2b, 0x88, 0x29, 0x21, 0x63, + 0xd1, 0x7c, 0x72, 0xa1, 0x7f, 0x4e, 0xad, 0x00, + 0x2d, 0xcc, 0x3c, 0xb8, 0x75, 0x63, 0x2e, 0x51, + 0x6c, 0xd8, 0xd6, 0x9b, 0xad, 0x17, 0x95, 0x20, + 0x73, 0xe9, 0xa4, 0x70, 0xcc, 0x31, 0x34, 0xba, + 0xd9, 0x61, 0x8e, 0x3e, 0x44, 0xa6, 0x27, 0x8f, + 0x98, 0x65, 0xc5, 0x59, 0xa3, 0x65, 0x67, 0xf3, + 0x19, 0x76, 0x1d, 0x1c, 0xbd, 0x3d, 0x67, 0x54, + 0x8c, 0xb2, 0x12, 0x76, 0x3c, 0x37, 0x89, 0x33, + 0xce, 0x8e, 0xd2, 0x48, 0x34, 0xf1, 0xcc, 0x24, + 0x58, 0xf1, 0x2c, 0x62, 0x5f, 0xe9, 0x08, 0x6a, + 0xb7, 0x4c, 0x96, 0x5a, 0x95, 0x8d, 0x28, 0x04, + 0x58, 0xc4, 0xf0, 0x35, 0x7a, 0x68, 0xd2, 0x52, + 0x1b, 0x54, 0x32, 0x79, 0x65, 0x6e, 0xa9, 0x1b, + 0x22, 0x32, 0xf3, 0x06, 0x3f, 0xa0, 0x39, 0x7b, + 0xb5, 0x56, 0xc4, 0x1f, 0x49, 0xb3, 0xa8, 0xf0, + 0xe9, 0x5b, 0x99, 0x7a, 0xa6, 0x84, 0xc6, 0x94, + 0x48, 0x3c, 0xd0, 0xea, 0x5b, 0x32, 0x55, 0x96, + 0xb9, 0x01, 0x00, 0x19, 0x65, 0xd0, 0x43, 0x83, + 0xdb, 0x81, 0xac, 0xd3, 0x2e, 0xca, 0xfa, 0x93, + 0xd2, 0x10, 0xf5, 0x48, 0x00, 0x8c, 0x60, 0x1a, + 0xc7, 0xdc, 0x04, 0x4b, 0x4c, 0x0f, 0x2c, 0x50, + 0x1f, 0x83, 0xeb, 0x3a, 0xbc, 0xa7, 0x97, 0x11, + 0x1a, 0xab, 0x7a, 0xec, 0x28, 0x14, 0x6c, 0xff, + 0x00, 0xb2, 0xfd, 0x63, 0x49, 0x76, 0x06, 0xdc, + 0x36, 0xb2, 0x7d, 0x9c, 0x49, 0x25, 0x25, 0x06, + 0xd8, 0xb6, 0x49, 0x92, 0x80, 0x0e, 0xd6, 0x14, + 0xde, 0x21, 0x86, 0xdd, 0x55, 0xdf, 0x81, 0xaf, + 0xd4, 0x48, 0x84, 0xee, 0x96, 0xd1, 0xa3, 0x75, + 0x37, 0xd8, 0x49, 0x8d, 0x73, 0x4d, 0xa9, 0x89, + 0x3a, 0xd3, 0x7a, 0x7f, 0x50, 0xa5, 0x37, 0x5c, + 0x73, 0x61, 0xa5, 0x5e, 0x79, 0xf2, 0xa2, 0x85, + 0x5c, 0x5c, 0x8e, 0xe5, 0xc9, 0x88, 0x2e, 0x52, + 0x01, 0x46, 0x23, 0x90, 0x17, 0x80, 0x47, 0xc8, + 0x36, 0x6b, 0x78, 0xff, 0x00, 0x27, 0x88, 0x42, + 0xfa, 0x9d, 0x16, 0xa6, 0x18, 0xc5, 0xbc, 0xb1, + 0x95, 0x50, 0x5b, 0x0b, 0x37, 0xdb, 0x22, 0xae, + 0x16, 0xfe, 0xf1, 0x46, 0xae, 0xf4, 0x78, 0x1e, + 0x03, 0xe2, 0x1e, 0xd1, 0x42, 0x07, 0x30, 0x91, + 0x7a, 0xa5, 0x63, 0xca, 0x39, 0x74, 0x93, 0xf0, + 0xc2, 0xe7, 0xa2, 0xa3, 0x9c, 0x29, 0x36, 0x6f, + 0x2b, 0x7e, 0x0f, 0x81, 0x78, 0x86, 0x56, 0x21, + 0x87, 0x10, 0xc6, 0x97, 0xe2, 0x53, 0xec, 0xbe, + 0xe5, 0xfc, 0x38, 0xf3, 0xbb, 0x79, 0xd5, 0x8f, + 0xfb, 0xaf, 0x7e, 0x07, 0x81, 0xf8, 0x88, 0x23, + 0xcb, 0x88, 0x28, 0x92, 0xe8, 0x6a, 0x93, 0x21, + 0x15, 0xaf, 0x4a, 0x9f, 0x87, 0x00, 0x6a, 0x29, + 0x77, 0x9b, 0xd1, 0xe9, 0xf2, 0xb6, 0xbe, 0x3f, + 0x30, 0xf8, 0x8d, 0x8b, 0x8a, 0x0c, 0x72, 0xde, + 0xb5, 0x29, 0x97, 0x2a, 0xd0, 0xe0, 0xa4, 0xe9, + 0xf6, 0x9b, 0xa4, 0x93, 0x31, 0xb4, 0x3d, 0x1e, + 0x4f, 0x4d, 0x88, 0xfc, 0x07, 0xc4, 0x15, 0x90, + 0xb4, 0x5a, 0x7a, 0x1b, 0x3e, 0x1a, 0x84, 0x53, + 0xcb, 0xf2, 0x69, 0x23, 0x3c, 0x8b, 0x49, 0x3a, + 0x5f, 0x29, 0x0d, 0xab, 0x79, 0x55, 0x18, 0xc7, + 0x68, 0xbf, 0x27, 0x7c, 0x50, 0x5f, 0x35, 0x60, + 0x6b, 0x66, 0xbc, 0x67, 0x8d, 0x4f, 0x2b, 0x28, + 0x8a, 0x44, 0x87, 0xe1, 0xba, 0x59, 0x42, 0xb8, + 0x32, 0x3e, 0x61, 0xaa, 0x1a, 0x45, 0xc0, 0xf1, + 0x17, 0xe4, 0xde, 0xbd, 0x31, 0x0d, 0x1c, 0x18, + 0x8f, 0x5e, 0x3a, 0x80, 0x19, 0x85, 0xc4, 0x6a, + 0x32, 0xd1, 0x36, 0x06, 0xd6, 0x4d, 0xdb, 0x31, + 0xf6, 0x41, 0x55, 0x70, 0xe1, 0x7f, 0x27, 0xfc, + 0x42, 0xfa, 0xe3, 0x84, 0xec, 0x03, 0xf2, 0xf5, + 0x0a, 0x84, 0xd0, 0x4a, 0x11, 0xdc, 0x5d, 0x04, + 0x53, 0x59, 0x6c, 0xaf, 0xa3, 0x10, 0xb5, 0xc4, + 0x5f, 0x93, 0xbe, 0x20, 0x8b, 0x8b, 0x24, 0x4d, + 0x7e, 0xa2, 0xba, 0x95, 0x07, 0x7f, 0x68, 0xee, + 0x26, 0xc0, 0x0e, 0xc7, 0x2c, 0xc1, 0x14, 0x14, + 0x25, 0x70, 0xbf, 0x93, 0xde, 0x22, 0x80, 0x8e, + 0x5c, 0x06, 0xc7, 0xb6, 0xa0, 0x2f, 0x57, 0x51, + 0x18, 0x13, 0x0b, 0x95, 0x19, 0x1e, 0xb0, 0xd9, + 0xd8, 0xb0, 0xb8, 0x70, 0x7c, 0x07, 0xc4, 0xc8, + 0x60, 0x52, 0x16, 0xb1, 0xd8, 0x6a, 0x14, 0x0c, + 0xba, 0xab, 0x0c, 0xa1, 0x6c, 0x57, 0x75, 0x2e, + 0x0e, 0x65, 0xba, 0xe8, 0xad, 0xf0, 0xde, 0x03, + 0xe2, 0x47, 0x33, 0xca, 0x87, 0x26, 0x1e, 0xda, + 0x88, 0xc0, 0x2d, 0x8b, 0x85, 0x22, 0xe1, 0x38, + 0xa7, 0x52, 0xf3, 0x14, 0xe4, 0x5b, 0xcc, 0xa2, + 0x32, 0x1c, 0x2f, 0x81, 0x78, 0xb6, 0x04, 0x3c, + 0x7a, 0x76, 0x62, 0x37, 0x61, 0x32, 0x00, 0x5f, + 0xce, 0xc6, 0x87, 0x2e, 0x96, 0x3e, 0xa4, 0xcd, + 0x3a, 0x8b, 0x5c, 0xd4, 0xc3, 0x31, 0xc1, 0xf0, + 0x2f, 0x13, 0xa7, 0xf2, 0x34, 0xfb, 0x92, 0x7e, + 0xde, 0x3a, 0x24, 0xf3, 0x6b, 0xba, 0x6d, 0x1d, + 0x32, 0x73, 0x14, 0xe4, 0xcf, 0x73, 0xd1, 0x19, + 0x8e, 0x3f, 0x30, 0xf8, 0x9d, 0x4a, 0x0e, 0x9e, + 0x03, 0x93, 0x31, 0x5f, 0x3e, 0x3a, 0xdc, 0xcb, + 0x5e, 0xc2, 0x93, 0xa9, 0x39, 0x8a, 0x72, 0x66, + 0xb9, 0xe9, 0xba, 0xc7, 0x07, 0xc0, 0xbc, 0x5b, + 0xcc, 0xad, 0x36, 0x9f, 0xa9, 0x89, 0x52, 0x27, + 0x8f, 0xfd, 0xed, 0x58, 0xff, 0x00, 0x65, 0xd4, + 0x99, 0xa6, 0xec, 0x6e, 0x6a, 0x6e, 0xa5, 0xe0, + 0xf8, 0x17, 0x8a, 0x53, 0xff, 0x00, 0x36, 0x8a, + 0xd8, 0xdf, 0xdb, 0xc5, 0x44, 0xf5, 0xfd, 0x7e, + 0xc8, 0x86, 0x19, 0x21, 0xb6, 0x37, 0x27, 0xde, + 0x1c, 0x7e, 0x62, 0xf1, 0x52, 0x24, 0xfe, 0x6d, + 0x16, 0x44, 0x9a, 0xa9, 0xe3, 0x0a, 0x77, 0x7e, + 0xfd, 0x5f, 0x65, 0x44, 0x64, 0x9b, 0xb1, 0x25, + 0xfe, 0x7c, 0x47, 0xe0, 0x1e, 0x2a, 0xad, 0x23, + 0x1d, 0x3c, 0x56, 0xc4, 0x74, 0x0d, 0x44, 0x78, + 0x6c, 0x5f, 0x70, 0xb7, 0xb4, 0x6d, 0x97, 0x5a, + 0xfa, 0x9b, 0x7f, 0xa5, 0xfe, 0x64, 0xf1, 0x4d, + 0xc7, 0xc3, 0x42, 0x2d, 0xef, 0x69, 0xa2, 0xaf, + 0xad, 0xf5, 0x7d, 0x91, 0xfb, 0xbe, 0xae, 0xf6, + 0x38, 0x1e, 0x0d, 0xe2, 0xa2, 0xff, 0x00, 0x9b, + 0xc6, 0x2d, 0xbd, 0xa5, 0x84, 0x5d, 0x9d, 0xf2, + 0xea, 0xde, 0x1a, 0xbe, 0x9f, 0x55, 0xf7, 0x03, + 0xdc, 0x78, 0x2f, 0x88, 0xf5, 0x86, 0x80, 0x6e, + 0x41, 0xe9, 0x96, 0x00, 0xa5, 0x81, 0x53, 0xd7, + 0x6d, 0x7c, 0x91, 0x56, 0x05, 0x17, 0xe9, 0x5d, + 0xb8, 0x5f, 0x05, 0xf1, 0x31, 0x24, 0x8f, 0xc8, + 0xf5, 0x72, 0xd7, 0x0e, 0x7c, 0x3c, 0xb6, 0xc5, + 0xe3, 0x36, 0xe3, 0x2f, 0x42, 0xd3, 0x14, 0x03, + 0xae, 0xd6, 0x3c, 0x86, 0xdb, 0x1f, 0x0a, 0xf1, + 0x00, 0x59, 0x86, 0x90, 0xee, 0xd0, 0xec, 0xb3, + 0x41, 0xd7, 0x83, 0xc3, 0x90, 0x96, 0xe4, 0x17, + 0xa7, 0x50, 0x8c, 0x63, 0x5d, 0xdf, 0xa6, 0x3b, + 0x4f, 0x97, 0xfe, 0xa9, 0xff, 0x00, 0xa7, 0xf2, + 0x7f, 0x9f, 0xe1, 0xc0, 0xfe, 0xff, 0x00, 0xf5, + 0x03, 0xfd, 0x4f, 0xb7, 0xfe, 0x2f, 0xff, 0xc4, + 0x00, 0x48, 0x10, 0x00, 0x02, 0x02, 0x01, 0x03, + 0x03, 0x02, 0x03, 0x04, 0x04, 0x09, 0x08, 0x0b, + 0x01, 0x00, 0x00, 0x02, 0x03, 0x01, 0x04, 0x12, + 0x05, 0x11, 0x13, 0x00, 0x14, 0x21, 0x22, 0x23, + 0x06, 0x15, 0x31, 0x24, 0x32, 0x33, 0x41, 0x42, + 0x51, 0x61, 0x91, 0x16, 0x25, 0x34, 0x35, 0x36, + 0x43, 0x52, 0x73, 0x81, 0x10, 0x44, 0x93, 0x94, + 0xc1, 0xd3, 0xd4, 0xf1, 0x40, 0x53, 0x54, 0x60, + 0x64, 0x70, 0x71, 0x72, 0x95, 0xa1, 0xa3, 0xb1, + 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x06, + 0x3f, 0x02, 0xff, 0x00, 0xc8, 0x2c, 0x6d, 0xb0, + 0xf9, 0x71, 0x12, 0x84, 0x28, 0x32, 0x61, 0x09, + 0x4e, 0xd9, 0x46, 0x58, 0x2f, 0x6f, 0xaf, 0xd5, + 0x91, 0x3e, 0x27, 0x6d, 0xe7, 0xaf, 0x21, 0xa8, + 0x7f, 0xab, 0xaf, 0xfd, 0xff, 0x00, 0x5f, 0x76, + 0xff, 0x00, 0xfa, 0x05, 0x7f, 0xc4, 0x74, 0x99, + 0xb4, 0x3a, 0x92, 0xa2, 0xc0, 0x13, 0x11, 0x33, + 0x50, 0x36, 0x60, 0x0b, 0x09, 0x44, 0x43, 0x23, + 0x62, 0x7c, 0x43, 0x00, 0xc2, 0x7f, 0x68, 0xcf, + 0x5f, 0x7f, 0x51, 0xff, 0x00, 0x53, 0x8f, 0xf7, + 0xdd, 0x7d, 0xfd, 0x47, 0xfd, 0x4e, 0x3f, 0xdf, + 0xf5, 0x3c, 0x43, 0xab, 0xba, 0x47, 0x6d, 0xe1, + 0x5a, 0x74, 0xb2, 0x63, 0x79, 0xda, 0x3c, 0x03, + 0x67, 0xeb, 0x3e, 0x23, 0xf5, 0xcf, 0x8e, 0xbb, + 0x15, 0x96, 0xa6, 0xbb, 0x10, 0xb3, 0x71, 0x0d, + 0x8a, 0x1c, 0x38, 0x28, 0x17, 0xcb, 0x25, 0x39, + 0xb7, 0x7f, 0xb9, 0x8c, 0x8c, 0x44, 0x49, 0x16, + 0x51, 0x8c, 0x4e, 0xfd, 0x52, 0xe3, 0x7d, 0xbf, + 0xb7, 0xd7, 0x7d, 0xb4, 0xef, 0x5c, 0x7c, 0x55, + 0xaf, 0x10, 0x46, 0xe6, 0x40, 0xb8, 0xa4, 0x06, + 0x60, 0xa3, 0x10, 0xdb, 0x96, 0x7f, 0x35, 0xc7, + 0x54, 0x77, 0x75, 0xc0, 0xf9, 0x85, 0x56, 0xde, + 0xaf, 0x95, 0x68, 0x9f, 0xb1, 0x2b, 0x1d, 0xec, + 0x94, 0x2d, 0xa7, 0x38, 0x96, 0x51, 0x82, 0xc7, + 0x2b, 0x13, 0xf9, 0xa6, 0x3a, 0xaa, 0x28, 0x65, + 0xe9, 0x9b, 0x75, 0x1d, 0x7d, 0x5f, 0x65, 0xff, + 0x00, 0x31, 0x4f, 0x1c, 0x95, 0xa9, 0xc5, 0xa5, + 0xb8, 0x4f, 0x28, 0x62, 0xa5, 0xe7, 0x67, 0xcf, + 0x94, 0x0f, 0x54, 0x49, 0xac, 0xbc, 0xb1, 0xd4, + 0x6a, 0x1e, 0xa1, 0x5e, 0x66, 0xac, 0x1f, 0xd8, + 0x46, 0x02, 0x7b, 0xa3, 0xe1, 0x6b, 0x36, 0x02, + 0x86, 0x0e, 0x2a, 0x8c, 0xac, 0xc6, 0xfb, 0x9a, + 0x02, 0x3c, 0xf5, 0x53, 0x07, 0xdf, 0x69, 0xde, + 0x28, 0x84, 0x29, 0x75, 0x07, 0x39, 0xcf, 0x08, + 0x5c, 0x9c, 0x93, 0x85, 0x41, 0x0c, 0xe4, 0x1d, + 0xa0, 0x9b, 0x06, 0x31, 0xe5, 0x82, 0x11, 0xe7, + 0xac, 0x65, 0x3a, 0xa0, 0xcc, 0xae, 0x59, 0x12, + 0x49, 0xa5, 0x02, 0x43, 0x1c, 0xbf, 0x74, 0xfe, + 0x61, 0x8c, 0xcf, 0xb2, 0xdd, 0xe2, 0x27, 0xc6, + 0x3e, 0x76, 0x89, 0x1d, 0xcd, 0x2f, 0x9d, 0x61, + 0x6c, 0x59, 0x48, 0x94, 0x4e, 0x9e, 0x3f, 0xa3, + 0x32, 0x3b, 0x8c, 0xc5, 0x8d, 0x88, 0x77, 0x89, + 0xd8, 0x86, 0x64, 0x4b, 0xea, 0x33, 0x31, 0xd7, + 0xe2, 0x6a, 0xff, 0x00, 0xfc, 0x7c, 0x7f, 0xc4, + 0x74, 0x0d, 0x6d, 0x8b, 0xf5, 0x41, 0xbe, 0x53, + 0xdc, 0x53, 0xc4, 0x9b, 0x1e, 0x63, 0x20, 0x5a, + 0xda, 0xd6, 0xc2, 0xb7, 0x89, 0x1e, 0x63, 0x00, + 0x4e, 0xfb, 0xc4, 0x1c, 0xed, 0x3b, 0x15, 0x5a, + 0xeb, 0xd5, 0x58, 0xd1, 0x54, 0x3f, 0xf0, 0x29, + 0x82, 0x8d, 0x25, 0x3b, 0x43, 0x54, 0xf3, 0xbe, + 0x29, 0x68, 0x4c, 0xfe, 0x6b, 0x32, 0xf3, 0x12, + 0x33, 0xb1, 0x0c, 0xc7, 0x50, 0x99, 0xaf, 0xa8, + 0x91, 0xc8, 0x29, 0x9e, 0xd1, 0x69, 0x0d, 0x81, + 0x17, 0xd8, 0xaf, 0x51, 0x59, 0x1a, 0xf5, 0x62, + 0x01, 0x29, 0x7d, 0xa4, 0x04, 0x84, 0xce, 0x43, + 0x9c, 0x99, 0x44, 0x00, 0x30, 0x85, 0x47, 0x72, + 0xa6, 0xb8, 0xa0, 0x7e, 0x50, 0x93, 0x1a, 0xb4, + 0xde, 0x0c, 0x91, 0x11, 0x22, 0xc4, 0x91, 0xa8, + 0x32, 0x3c, 0x41, 0x8f, 0xfc, 0xe2, 0x7a, 0x86, + 0xba, 0x35, 0x35, 0x94, 0xd2, 0x56, 0xa5, 0xc1, + 0xda, 0xad, 0x8f, 0x8d, 0x3d, 0xb8, 0xe3, 0x70, + 0x85, 0x36, 0x18, 0x30, 0xbf, 0x54, 0x6e, 0x19, + 0xcb, 0xe3, 0x62, 0xdd, 0x5b, 0x09, 0x4c, 0x6f, + 0xde, 0x59, 0xf2, 0x00, 0xf1, 0x8e, 0x01, 0xca, + 0x6b, 0x1e, 0xdf, 0x69, 0xdb, 0x97, 0xd0, 0x11, + 0x94, 0x4c, 0xac, 0xf1, 0xb3, 0xf5, 0xf6, 0x3d, + 0x33, 0xb3, 0x58, 0x0f, 0xb4, 0x50, 0xaa, 0xc1, + 0x77, 0x6e, 0x34, 0x41, 0x1d, 0x23, 0x90, 0x88, + 0xb6, 0x22, 0x56, 0x46, 0x61, 0x5e, 0xe0, 0x6e, + 0x2c, 0xc1, 0xd1, 0xbc, 0xfb, 0x5e, 0xdb, 0x30, + 0x7f, 0x0d, 0xab, 0x0d, 0xe0, 0x40, 0xda, 0xd8, + 0x01, 0x1b, 0xb2, 0xa9, 0x61, 0xef, 0xae, 0x0a, + 0xc4, 0x4e, 0x23, 0xc8, 0x19, 0x03, 0x38, 0xdd, + 0x1e, 0xa9, 0xe3, 0xd9, 0x6c, 0xc0, 0xc2, 0xb5, + 0x96, 0x3b, 0x14, 0xaa, 0xc0, 0xe2, 0x55, 0x23, + 0x95, 0x0d, 0x90, 0x88, 0x60, 0x01, 0xdb, 0x16, + 0x6d, 0x12, 0xc0, 0xdc, 0x58, 0x0b, 0x3d, 0xe7, + 0x68, 0x19, 0x91, 0x3c, 0x61, 0xaa, 0x9c, 0x80, + 0xbe, 0x9f, 0xf2, 0xfc, 0xbf, 0xc7, 0xcf, 0x48, + 0xdb, 0xfe, 0xc0, 0xad, 0xff, 0x00, 0xd3, 0xd8, + 0xff, 0x00, 0x66, 0xdf, 0xe4, 0xfa, 0xfd, 0x3f, + 0x5f, 0x4a, 0x04, 0x85, 0x56, 0xf3, 0xf0, 0xca, + 0xe2, 0xd2, 0x57, 0x62, 0x02, 0x40, 0x2b, 0xc0, + 0xc4, 0x73, 0x6e, 0x20, 0x32, 0xcd, 0xe4, 0xa3, + 0x68, 0x19, 0xde, 0x77, 0xfa, 0x96, 0xf1, 0xdc, + 0x62, 0x32, 0x53, 0x31, 0x11, 0x0c, 0x03, 0xf3, + 0x02, 0xb3, 0x9d, 0xf0, 0x99, 0xf1, 0x8b, 0x03, + 0x6f, 0xcb, 0xef, 0x0f, 0xd4, 0x4a, 0x20, 0xb5, + 0x3b, 0x7a, 0x38, 0xdf, 0x41, 0x35, 0x42, 0x83, + 0x6d, 0xd9, 0xae, 0xb2, 0xdd, 0xa4, 0xa6, 0x06, + 0x0a, 0x2e, 0x72, 0xf5, 0x81, 0x7a, 0xc4, 0x76, + 0x0f, 0x39, 0xc7, 0xad, 0x73, 0xd6, 0xa9, 0x0d, + 0x46, 0x9b, 0x85, 0x53, 0x6d, 0x16, 0x91, 0xb9, + 0xb6, 0x51, 0xdd, 0x0e, 0x96, 0xed, 0x61, 0x64, + 0x81, 0xd9, 0x0c, 0x92, 0x42, 0x15, 0x8c, 0x34, + 0xf1, 0x81, 0x37, 0x63, 0x8b, 0x27, 0xc7, 0x57, + 0x01, 0xfa, 0x75, 0x10, 0xce, 0xb2, 0x8c, 0xa9, + 0x36, 0x3b, 0x3a, 0xed, 0x11, 0x1d, 0xaa, 0xb5, + 0x44, 0xf9, 0xbb, 0x8c, 0x21, 0x4c, 0xfc, 0x28, + 0x67, 0x0b, 0x2b, 0x23, 0x79, 0x59, 0xc8, 0xed, + 0x35, 0x55, 0x4e, 0xa5, 0x4b, 0xb1, 0x52, 0x1d, + 0x0c, 0xd8, 0x48, 0x8a, 0xec, 0x9e, 0x23, 0xce, + 0x6b, 0xdc, 0xcc, 0x23, 0x08, 0x2c, 0x52, 0x52, + 0x75, 0x97, 0x97, 0xa5, 0x51, 0xb4, 0xcb, 0x34, + 0xe1, 0x8d, 0x2b, 0x29, 0xab, 0xcc, 0x0c, 0x16, + 0x2c, 0xcf, 0xba, 0xb0, 0xed, 0xb6, 0xde, 0x0d, + 0x5e, 0x00, 0x44, 0x0e, 0x62, 0xb6, 0x46, 0x90, + 0x93, 0x33, 0x10, 0xf0, 0x59, 0xd1, 0x37, 0xe9, + 0xaa, 0x68, 0x2f, 0xbb, 0xe4, 0x52, 0xc9, 0x46, + 0xc3, 0x32, 0xd8, 0x3e, 0xd5, 0x8c, 0x97, 0x12, + 0x20, 0xe0, 0xb8, 0xd0, 0xc8, 0x85, 0x94, 0x93, + 0x26, 0x06, 0x77, 0xdc, 0xf4, 0x90, 0x9d, 0x24, + 0xd5, 0x15, 0x80, 0x82, 0xe3, 0x5d, 0xb3, 0x56, + 0xf7, 0x36, 0x57, 0x12, 0xe2, 0x58, 0x8e, 0x7d, + 0xb0, 0xc0, 0x19, 0xcd, 0x38, 0xcd, 0x7e, 0xe9, + 0xc0, 0x84, 0xed, 0x30, 0xdd, 0x36, 0xb6, 0xa3, + 0xa2, 0x15, 0x7e, 0x2d, 0xca, 0xdb, 0xe0, 0xa2, + 0x55, 0xa8, 0x38, 0x59, 0x02, 0xc5, 0xd7, 0xb6, + 0x99, 0x95, 0xf0, 0x90, 0x2a, 0x66, 0x41, 0x2d, + 0x99, 0xae, 0xc6, 0x98, 0x62, 0x24, 0xa9, 0xdf, + 0x75, 0xe8, 0x47, 0x18, 0xaa, 0x62, 0x63, 0xe6, + 0x2f, 0xe3, 0x26, 0x4f, 0x2e, 0x04, 0x72, 0x70, + 0x45, 0x03, 0xeb, 0x56, 0xe0, 0xb3, 0x02, 0x3e, + 0x1f, 0x0c, 0x1e, 0x42, 0x98, 0x08, 0x35, 0xc7, + 0x12, 0xa5, 0x91, 0x5c, 0x39, 0xa0, 0xe5, 0x2b, + 0x39, 0x89, 0x8a, 0xfc, 0xf3, 0x3c, 0xac, 0x5a, + 0x86, 0x06, 0x14, 0x2c, 0x22, 0xe3, 0x8d, 0xf0, + 0x81, 0xcc, 0xb7, 0x7c, 0x02, 0x4a, 0xca, 0xf8, + 0xb6, 0x4b, 0xb9, 0x65, 0x32, 0x0c, 0x98, 0x09, + 0xe5, 0x95, 0x7b, 0x92, 0x50, 0xb2, 0xc8, 0x30, + 0x99, 0x88, 0x3f, 0xbd, 0x90, 0xf5, 0x71, 0xbf, + 0x14, 0xac, 0x8f, 0x4f, 0xba, 0xb5, 0xb2, 0x9b, + 0x57, 0x56, 0x2c, 0x8b, 0x6b, 0x0d, 0x71, 0x5a, + 0xf4, 0xe0, 0xc7, 0x7e, 0x16, 0xd7, 0x91, 0xed, + 0xcc, 0x27, 0x0c, 0x4d, 0x7b, 0x9e, 0xde, 0x26, + 0x69, 0x15, 0x08, 0x2a, 0x8f, 0x55, 0x9b, 0xf6, + 0xeb, 0xf2, 0x40, 0xcb, 0x2a, 0x51, 0xb0, 0x4a, + 0x8a, 0x70, 0xe8, 0x2d, 0xf6, 0x28, 0xc6, 0xc3, + 0x80, 0x4c, 0x77, 0xd9, 0xc0, 0xd0, 0x8d, 0x9a, + 0x05, 0x36, 0x6a, 0xde, 0xb2, 0x46, 0x4f, 0x87, + 0xfa, 0xbb, 0x2a, 0x27, 0x07, 0x2c, 0x4c, 0x94, + 0x1b, 0x26, 0x42, 0x0c, 0x1b, 0x36, 0xf8, 0xdb, + 0x2d, 0x0f, 0x79, 0x60, 0x21, 0x20, 0x59, 0x8c, + 0x47, 0x4b, 0x54, 0x3d, 0x91, 0x99, 0xc0, 0x0c, + 0xe0, 0xec, 0x46, 0x4a, 0x60, 0x77, 0xfb, 0x93, + 0xb4, 0x47, 0x8d, 0xe7, 0x6f, 0xa7, 0x4a, 0xa3, + 0x5e, 0x95, 0x2b, 0x38, 0x69, 0xfd, 0xe1, 0xe2, + 0x43, 0x67, 0x76, 0x29, 0x6d, 0x99, 0x33, 0xba, + 0xd0, 0x99, 0x90, 0x9e, 0x23, 0xdf, 0x4c, 0xca, + 0x41, 0xe7, 0x32, 0x00, 0x99, 0x61, 0x0f, 0x5b, + 0x37, 0x46, 0x19, 0x93, 0x98, 0x69, 0xf0, 0xe9, + 0xc6, 0xa3, 0x9b, 0x0b, 0xdf, 0x63, 0xda, 0x11, + 0x8a, 0x2a, 0x32, 0x4a, 0x60, 0xa9, 0x2a, 0x05, + 0x12, 0x31, 0xb4, 0x0e, 0xf0, 0x06, 0x3c, 0x13, + 0xf0, 0xd7, 0x29, 0xea, 0x10, 0x00, 0xbc, 0x6b, + 0xf6, 0x42, 0xbb, 0xa6, 0x58, 0x29, 0x80, 0xc9, + 0x5e, 0xd5, 0x68, 0xe5, 0x3e, 0xf5, 0x58, 0xc1, + 0x06, 0x13, 0x25, 0x38, 0x62, 0xb3, 0x1b, 0x61, + 0x6b, 0xe1, 0x7a, 0x75, 0x0c, 0xab, 0x2d, 0x25, + 0x36, 0x2c, 0xab, 0x4e, 0x0e, 0xf6, 0x03, 0x28, + 0xb3, 0x41, 0xa4, 0x70, 0x9e, 0xd9, 0x83, 0xeb, + 0x65, 0x5a, 0x86, 0xc8, 0x62, 0x99, 0x98, 0xfa, + 0x44, 0x18, 0x3c, 0xd6, 0x29, 0x68, 0x52, 0xc2, + 0x7e, 0x6e, 0x5d, 0x2b, 0x3a, 0x71, 0x92, 0x57, + 0x52, 0xa5, 0x6b, 0x5c, 0x88, 0x75, 0x7b, 0xd3, + 0xda, 0x09, 0x93, 0x40, 0x4e, 0xaa, 0x96, 0x44, + 0xf2, 0x27, 0x0c, 0x4c, 0xf1, 0x62, 0x34, 0x88, + 0xb6, 0xdc, 0xc6, 0x4b, 0xc7, 0xed, 0x9e, 0xaa, + 0xfe, 0xda, 0x03, 0x3f, 0xfe, 0xee, 0x8f, 0xf6, + 0x75, 0x3d, 0x46, 0xfd, 0x53, 0xe2, 0x59, 0x2d, + 0xa3, 0x49, 0xbc, 0xcd, 0xdf, 0x2e, 0x42, 0xe5, + 0xdc, 0x38, 0xe3, 0x8c, 0xe5, 0x7b, 0x2e, 0x44, + 0x08, 0xb7, 0x19, 0x29, 0x09, 0x9d, 0xe2, 0x07, + 0x7e, 0xb5, 0x41, 0xc6, 0x6c, 0x10, 0x69, 0xcd, + 0x25, 0x01, 0x7b, 0x93, 0x0c, 0xe3, 0x66, 0x12, + 0x12, 0x49, 0x76, 0x27, 0x96, 0x38, 0xe2, 0x69, + 0x92, 0x9d, 0x86, 0x0a, 0x4b, 0x6e, 0xbe, 0x1e, + 0xa7, 0x8b, 0x2b, 0xb5, 0x9a, 0xc2, 0x54, 0x4c, + 0x95, 0xe2, 0x42, 0xcf, 0x9c, 0xd8, 0x5c, 0x4f, + 0xbc, 0x84, 0xa5, 0x86, 0x99, 0x99, 0xf4, 0xb0, + 0xee, 0x40, 0x4c, 0x62, 0x5c, 0x1f, 0x72, 0x75, + 0xed, 0xd6, 0x5c, 0x67, 0xae, 0xda, 0x6a, 0xd8, + 0x92, 0x57, 0x24, 0xca, 0xfe, 0x16, 0xb2, 0xba, + 0xfb, 0xa1, 0xc5, 0x64, 0xe4, 0x25, 0x49, 0x64, + 0xd9, 0x76, 0x72, 0xb2, 0x91, 0x29, 0x1e, 0x29, + 0x91, 0x5f, 0x55, 0x2c, 0xc2, 0x99, 0x8d, 0x35, + 0x57, 0x31, 0xae, 0xb5, 0x85, 0x66, 0x30, 0xec, + 0x51, 0x6e, 0x7e, 0xa3, 0xa9, 0xa7, 0x91, 0x43, + 0x31, 0xda, 0x4d, 0x9c, 0xd1, 0x31, 0xea, 0x5d, + 0x8b, 0x1b, 0xee, 0x4c, 0xb9, 0x55, 0xd7, 0xa8, + 0x85, 0x9a, 0x4b, 0x58, 0x5a, 0xc9, 0xbc, 0xf8, + 0xd7, 0x4a, 0xc3, 0x64, 0xb3, 0xba, 0x7b, 0xd7, + 0x0d, 0x7d, 0x6e, 0x19, 0x62, 0xdd, 0x03, 0x03, + 0x32, 0x25, 0x02, 0xbc, 0x83, 0xae, 0x50, 0xd6, + 0x2f, 0x6a, 0x28, 0x57, 0x13, 0x6c, 0x12, 0xed, + 0xea, 0x52, 0xa9, 0xdd, 0xb3, 0xed, 0xb5, 0x99, + 0x26, 0xc2, 0xcd, 0x98, 0xe3, 0xc8, 0xb9, 0x06, + 0x62, 0x78, 0x83, 0x3c, 0x94, 0x75, 0x11, 0xf3, + 0xcd, 0x65, 0xbb, 0x88, 0x32, 0x09, 0x3a, 0x95, + 0xa6, 0x07, 0xb8, 0x30, 0x78, 0xe5, 0xdc, 0xf8, + 0x30, 0xdf, 0x13, 0x19, 0xf2, 0x07, 0x12, 0x25, + 0xe6, 0x3a, 0xe2, 0xf9, 0xb6, 0xb5, 0x2e, 0x39, + 0x1e, 0x1e, 0x4d, 0x46, 0xc0, 0x2a, 0x4b, 0x78, + 0x92, 0x86, 0x99, 0x5b, 0x08, 0x18, 0xe3, 0x83, + 0x91, 0x99, 0x29, 0xc8, 0xf1, 0x1d, 0xbc, 0xf4, + 0x8a, 0xfa, 0xf6, 0xa9, 0xaa, 0xd8, 0xb0, 0x93, + 0x92, 0x8a, 0x7a, 0x7d, 0x4b, 0xce, 0xd2, 0x86, + 0xe5, 0x8c, 0xb7, 0xe2, 0x90, 0xd3, 0xd9, 0x10, + 0xd2, 0xc9, 0x51, 0xc8, 0xd3, 0x6d, 0x8c, 0x61, + 0x8b, 0x9f, 0x4f, 0xdd, 0x38, 0x27, 0xea, 0x03, + 0x3c, 0xf2, 0x75, 0xca, 0x2b, 0x5a, 0x54, 0x3e, + 0xa7, 0x72, 0x28, 0x15, 0x84, 0x36, 0x80, 0x91, + 0x5b, 0x2c, 0xc5, 0x64, 0x6b, 0x82, 0x50, 0x17, + 0xac, 0x67, 0x19, 0x88, 0xea, 0xa5, 0x68, 0x72, + 0x9d, 0x45, 0x62, 0x15, 0x49, 0x5a, 0x85, 0x22, + 0x13, 0x06, 0x3b, 0x25, 0x8b, 0x04, 0xed, 0x51, + 0x45, 0x60, 0x64, 0x76, 0xe2, 0xa6, 0xd9, 0x76, + 0xe7, 0x10, 0x33, 0x2c, 0x2c, 0x0a, 0x03, 0xa5, + 0xfc, 0xa4, 0x29, 0xde, 0x06, 0x11, 0x84, 0xd7, + 0xb6, 0xaa, 0xcf, 0x3a, 0x8c, 0x41, 0x63, 0xbc, + 0xc7, 0x1a, 0x78, 0xab, 0x4a, 0x26, 0xb0, 0x0b, + 0x66, 0x65, 0x64, 0x63, 0x86, 0x64, 0x52, 0x52, + 0x6e, 0xab, 0x5e, 0xa5, 0x4a, 0xec, 0x8b, 0x10, + 0xb6, 0x05, 0x54, 0x98, 0x2f, 0x98, 0xa1, 0x88, + 0x1d, 0x89, 0x0e, 0x85, 0x96, 0x7c, 0x93, 0xc7, + 0x3b, 0x97, 0xa8, 0x44, 0xd7, 0x39, 0x6f, 0x33, + 0xdc, 0xb4, 0x34, 0xd5, 0x5f, 0x25, 0x5a, 0x61, + 0xc2, 0x69, 0xd0, 0xec, 0xc9, 0xab, 0x12, 0xb1, + 0x54, 0x98, 0x45, 0x5f, 0xdc, 0x64, 0x93, 0x84, + 0xce, 0xc9, 0x3f, 0x78, 0x43, 0x65, 0xd2, 0xdd, + 0xb0, 0x9e, 0x99, 0xd8, 0x23, 0x49, 0x91, 0x4b, + 0xa2, 0x93, 0xdb, 0x63, 0x48, 0x41, 0x70, 0x59, + 0xb6, 0x16, 0xd1, 0x35, 0x44, 0xc2, 0xab, 0x48, + 0x85, 0x8b, 0xce, 0x60, 0x95, 0x12, 0x6c, 0x99, + 0x86, 0x7f, 0x55, 0x07, 0xd2, 0xed, 0x82, 0xb4, + 0xf6, 0x55, 0xb2, 0xee, 0x18, 0x24, 0x2d, 0xac, + 0x02, 0x86, 0xa0, 0xc9, 0x7e, 0x92, 0x23, 0x5f, + 0x0b, 0xea, 0xe7, 0xc7, 0xe9, 0x13, 0x24, 0x94, + 0x64, 0x31, 0xe8, 0xeb, 0x45, 0x49, 0x4c, 0x69, + 0xd1, 0x6e, 0xd5, 0x6d, 0xc7, 0x4a, 0x58, 0xd7, + 0x92, 0x43, 0x2c, 0xf1, 0x48, 0x39, 0x34, 0xb7, + 0x6b, 0xa3, 0x21, 0x32, 0xed, 0x78, 0x0b, 0x76, + 0x49, 0x32, 0x14, 0xc6, 0xb8, 0xa4, 0xf4, 0xd7, + 0xaf, 0x50, 0xd4, 0x3d, 0x76, 0xcc, 0x88, 0x05, + 0x7a, 0xce, 0x9e, 0x2c, 0x5f, 0x1a, 0x99, 0xc2, + 0x46, 0x75, 0xa8, 0x49, 0x84, 0x84, 0xac, 0x71, + 0x5b, 0x8d, 0x88, 0x8f, 0x54, 0x63, 0xc9, 0xc8, + 0x74, 0xdc, 0xab, 0x4c, 0x24, 0xb9, 0x41, 0x75, + 0x28, 0xb0, 0x56, 0x9e, 0x4b, 0x72, 0xac, 0x29, + 0x6c, 0x64, 0xda, 0xb2, 0x4b, 0x73, 0x39, 0x5f, + 0xa6, 0xe5, 0xc5, 0x9d, 0x9a, 0xaa, 0x53, 0x9c, + 0xa8, 0xf5, 0x1b, 0xa3, 0xaa, 0xb6, 0x2f, 0x57, + 0xb9, 0x6b, 0x05, 0x0c, 0x77, 0x03, 0x0c, 0x4d, + 0xce, 0x39, 0x3a, 0xac, 0x44, 0xd3, 0x4d, 0x8a, + 0xaf, 0xab, 0x15, 0x84, 0x5c, 0xc5, 0x42, 0xd5, + 0xa9, 0xb2, 0x59, 0x06, 0x56, 0xcd, 0x68, 0x22, + 0xe0, 0x66, 0xa3, 0xf2, 0xcd, 0x4e, 0xda, 0x54, + 0x51, 0x5d, 0xcc, 0xd8, 0x13, 0x72, 0x67, 0xb8, + 0x97, 0xa6, 0x2a, 0x83, 0x23, 0x81, 0x6e, 0x09, + 0xaf, 0xbf, 0x77, 0x20, 0x81, 0x20, 0x29, 0xc1, + 0x56, 0xb2, 0x51, 0xef, 0x57, 0x4b, 0x97, 0x01, + 0xd9, 0x4d, 0x71, 0x6c, 0x88, 0xcf, 0xf5, 0x64, + 0x45, 0x10, 0x5f, 0xb3, 0xd4, 0x24, 0x25, 0x1f, + 0x91, 0x44, 0xc7, 0x55, 0x3c, 0xc7, 0xf3, 0x6a, + 0xf7, 0xf3, 0xff, 0x00, 0x8a, 0xb9, 0xe2, 0x7f, + 0xc3, 0xff, 0x00, 0xa9, 0xff, 0x00, 0x2d, 0x42, + 0x5a, 0xe2, 0x14, 0xc5, 0x14, 0x2a, 0x5c, 0xe1, + 0x58, 0x38, 0x47, 0x08, 0x29, 0x01, 0x29, 0xf7, + 0x04, 0x5c, 0x24, 0xb2, 0x88, 0x89, 0xdd, 0xb8, + 0xc6, 0x33, 0xbf, 0x51, 0x7e, 0xa6, 0xac, 0x31, + 0xa9, 0x1a, 0x92, 0xd5, 0x8a, 0x07, 0x84, 0x1f, + 0x2e, 0x8d, 0x8e, 0x8f, 0x2a, 0xd9, 0x11, 0x98, + 0xc9, 0xe0, 0x59, 0xc4, 0x46, 0x6b, 0xe3, 0x8f, + 0x5c, 0x98, 0xf5, 0x5b, 0x4b, 0x6c, 0xc0, 0x6a, + 0xb0, 0xc2, 0x7b, 0x82, 0x63, 0x76, 0xe1, 0xde, + 0x59, 0x30, 0x26, 0x3a, 0x29, 0x2f, 0x7f, 0x07, + 0x18, 0xf2, 0x6a, 0x16, 0xe7, 0xcf, 0xa4, 0x13, + 0xea, 0x18, 0xe5, 0x75, 0xa6, 0x5b, 0x16, 0x72, + 0x09, 0xa9, 0xd7, 0x9a, 0x79, 0x1d, 0x8a, 0xc5, + 0x57, 0xb8, 0x28, 0xe5, 0xf5, 0x1a, 0xd3, 0x31, + 0x10, 0x73, 0x39, 0x62, 0x10, 0xa9, 0xdd, 0x7e, + 0x9e, 0x8d, 0xba, 0x5d, 0xdb, 0x34, 0x35, 0x64, + 0x58, 0xd3, 0x15, 0x04, 0xaa, 0xc6, 0x9a, 0x8a, + 0xda, 0x0f, 0x92, 0xd3, 0x9e, 0xbd, 0x2b, 0x49, + 0x2a, 0x36, 0x6a, 0x1e, 0x30, 0x19, 0xa9, 0xf3, + 0x6d, 0x8c, 0x81, 0xee, 0x59, 0xbf, 0x20, 0xd8, + 0x0a, 0xec, 0x16, 0x1a, 0x2b, 0x82, 0xdd, 0x68, + 0xad, 0xf7, 0x0a, 0xd8, 0x80, 0x2d, 0xc8, 0x4b, + 0x05, 0xb0, 0x35, 0xbb, 0x9e, 0x47, 0xb1, 0xca, + 0x25, 0x29, 0x56, 0x5c, 0xba, 0xf5, 0xe9, 0x59, + 0xb5, 0x79, 0xc4, 0x8e, 0xaf, 0x6a, 0xcc, 0xc6, + 0xb6, 0x9d, 0x0b, 0x68, 0xcb, 0xc8, 0x38, 0x90, + 0x76, 0x57, 0xed, 0xb4, 0xa9, 0x2a, 0x09, 0xe9, + 0x61, 0x4c, 0xce, 0x60, 0xb7, 0x44, 0x41, 0x37, + 0x18, 0x42, 0xc5, 0x9b, 0xf1, 0x36, 0x68, 0x5c, + 0x6f, 0xcc, 0xeb, 0x13, 0x60, 0xe9, 0x98, 0xab, + 0x91, 0xc3, 0x27, 0x03, 0x56, 0x52, 0xad, 0xd8, + 0xe6, 0x41, 0x0e, 0x46, 0xd3, 0xdf, 0x68, 0x3d, + 0x91, 0xb8, 0x9c, 0x2e, 0x6c, 0xb2, 0x2b, 0xac, + 0x9e, 0x55, 0xfc, 0xb3, 0x65, 0x6d, 0x2a, 0xf0, + 0x53, 0xea, 0xf7, 0x22, 0x23, 0xc0, 0x1f, 0xe5, + 0xf4, 0x89, 0xfc, 0xba, 0x68, 0x3d, 0xd5, 0xf9, + 0x84, 0x98, 0x0c, 0x22, 0xd3, 0x34, 0x9e, 0x61, + 0x3d, 0xf1, 0x67, 0xb9, 0xd9, 0x67, 0x07, 0x90, + 0x47, 0xaa, 0x0b, 0x7c, 0x86, 0x0b, 0x7d, 0xc6, + 0x27, 0xab, 0xcc, 0xb7, 0x1a, 0x57, 0x71, 0x5e, + 0xee, 0x9e, 0x9a, 0xcd, 0x7e, 0x8b, 0x48, 0xcf, + 0xde, 0xa9, 0xab, 0x30, 0xc6, 0x0e, 0xb6, 0x98, + 0xd3, 0xde, 0x5a, 0x85, 0x58, 0x36, 0xb3, 0x6f, + 0x52, 0xb9, 0x32, 0x29, 0xc8, 0x49, 0xad, 0x85, + 0xe9, 0x36, 0xb6, 0x66, 0x9e, 0x7d, 0xad, 0x5a, + 0x33, 0x5b, 0x7c, 0x3b, 0xce, 0x49, 0x93, 0x8a, + 0x34, 0x8d, 0x80, 0x58, 0x40, 0x8c, 0x73, 0xee, + 0xbc, 0x08, 0x77, 0x5c, 0x4c, 0xc9, 0x58, 0x0c, + 0x13, 0x42, 0x06, 0xe5, 0xb7, 0x1b, 0xac, 0x57, + 0x91, 0x6b, 0xa5, 0x6a, 0xe1, 0x90, 0xc9, 0x64, + 0xc6, 0x08, 0xc9, 0x92, 0x86, 0xbc, 0x82, 0xbb, + 0x77, 0xe7, 0x91, 0xbf, 0x15, 0x44, 0xc4, 0x3f, + 0x4e, 0x25, 0xda, 0x0e, 0x37, 0x5a, 0x92, 0xa7, + 0xa9, 0x29, 0x6d, 0x4e, 0xe1, 0x5c, 0xab, 0x30, + 0xd1, 0xb9, 0x11, 0xb3, 0x38, 0x82, 0xaf, 0x90, + 0xc1, 0x89, 0x41, 0xe1, 0xb1, 0xe5, 0xd3, 0x0d, + 0x4d, 0xb0, 0x75, 0x5a, 0xe6, 0x31, 0x2d, 0x4c, + 0xeb, 0x15, 0xeb, 0x31, 0x45, 0x73, 0x86, 0x13, + 0x0b, 0xad, 0x54, 0x93, 0x2a, 0x36, 0x98, 0x57, + 0x85, 0xe3, 0x88, 0x99, 0x0a, 0x23, 0x19, 0x9d, + 0xba, 0xdf, 0x81, 0x16, 0x5e, 0xfb, 0x3d, 0xe4, + 0x52, 0xcb, 0x92, 0xd9, 0x8c, 0xe9, 0xf6, 0x2d, + 0x25, 0xeb, 0x86, 0x2e, 0x6d, 0xf2, 0x56, 0xb0, + 0x0b, 0x10, 0xb1, 0x35, 0xdc, 0x91, 0x6c, 0xb7, + 0x62, 0xe5, 0x93, 0xe4, 0xca, 0x45, 0xfa, 0x6d, + 0xc4, 0x2e, 0xb3, 0x43, 0x4c, 0x98, 0xc1, 0x0e, + 0x8e, 0x56, 0xa0, 0x8b, 0xf0, 0xd6, 0x6d, 0xb9, + 0xc6, 0xd1, 0x95, 0xed, 0x5a, 0xb0, 0xaa, 0xaa, + 0x8c, 0x77, 0x90, 0x15, 0xe4, 0xfb, 0x56, 0x1b, + 0x7d, 0x9a, 0x85, 0x2e, 0xd9, 0xd2, 0xc8, 0x3a, + 0x86, 0x22, 0x85, 0x0a, 0x97, 0x50, 0x58, 0xab, + 0x4b, 0x99, 0x69, 0xe2, 0x83, 0x05, 0x57, 0x89, + 0x9e, 0x45, 0x2a, 0x23, 0x0d, 0xbe, 0xf5, 0xb6, + 0xea, 0x55, 0xa2, 0xf3, 0x74, 0xf4, 0xf7, 0x83, + 0xc7, 0xa7, 0xd9, 0xaf, 0x80, 0x33, 0x47, 0x55, + 0x91, 0x01, 0x65, 0x7a, 0x90, 0x81, 0x78, 0xa2, + 0xb4, 0xb7, 0xdf, 0xee, 0x51, 0x2e, 0x25, 0xcf, + 0x11, 0x0b, 0x8e, 0x7a, 0x1a, 0x70, 0xaa, 0x52, + 0x4b, 0xb9, 0x49, 0x7d, 0xd3, 0xad, 0x85, 0x02, + 0x2e, 0x44, 0xa2, 0xea, 0xb9, 0x51, 0x73, 0x4e, + 0x73, 0xd7, 0x46, 0x47, 0xdb, 0x33, 0xde, 0x47, + 0xbb, 0xc9, 0xa7, 0x30, 0x18, 0x87, 0x4c, 0x7d, + 0x7a, 0x75, 0xeb, 0x3b, 0x52, 0x63, 0x67, 0x80, + 0x22, 0x89, 0x2c, 0xdd, 0xde, 0x28, 0x05, 0x20, + 0xb9, 0x36, 0x35, 0xc6, 0x0b, 0xe1, 0xf0, 0x75, + 0xab, 0x8e, 0x67, 0x16, 0x54, 0xa9, 0xce, 0x0f, + 0xa1, 0xae, 0xfa, 0xf0, 0xa8, 0xaf, 0x53, 0x4f, + 0x91, 0x25, 0xdd, 0x4d, 0xb0, 0x7c, 0xe2, 0x75, + 0x88, 0x50, 0x2a, 0x01, 0x5a, 0xf8, 0xf8, 0x33, + 0x7a, 0xc4, 0xcc, 0xc1, 0xb2, 0xd2, 0x66, 0xd9, + 0x09, 0x1e, 0xeb, 0x31, 0x60, 0xce, 0x88, 0xa9, + 0xdc, 0x37, 0xc7, 0x72, 0xb9, 0x70, 0xf1, 0xf3, + 0x11, 0xea, 0x18, 0x38, 0x82, 0xf1, 0xe2, 0x7c, + 0x7e, 0x5d, 0x6a, 0x96, 0xec, 0xd6, 0x49, 0xba, + 0xb2, 0x17, 0xc7, 0x62, 0x62, 0x8a, 0xde, 0xa8, + 0x3b, 0x29, 0x09, 0x85, 0xda, 0xbc, 0x04, 0x94, + 0xc7, 0xae, 0x7c, 0x9f, 0xa7, 0xf5, 0x09, 0x14, + 0xc4, 0x74, 0x82, 0xd1, 0x62, 0x35, 0x32, 0x34, + 0x56, 0xb3, 0x35, 0xd2, 0xea, 0xd7, 0xa9, 0xca, + 0xc1, 0xb7, 0xb9, 0x7e, 0xd1, 0xa2, 0x69, 0xe2, + 0xcf, 0x48, 0x35, 0x10, 0x58, 0x5a, 0xf4, 0x5a, + 0x0b, 0x48, 0x73, 0x1f, 0x00, 0xa1, 0x5a, 0x35, + 0x19, 0x76, 0x9c, 0x85, 0xe1, 0xc7, 0x35, 0x97, + 0xaa, 0xa5, 0x76, 0x79, 0x2a, 0xa0, 0x61, 0xee, + 0x9a, 0x57, 0x2c, 0xae, 0xe1, 0xcb, 0x66, 0x0a, + 0x4f, 0x89, 0x5c, 0x70, 0xfd, 0xeb, 0x40, 0xf2, + 0xfb, 0x64, 0xe7, 0x9d, 0xba, 0x40, 0xe1, 0x91, + 0x21, 0xe6, 0xd4, 0x10, 0x87, 0xf1, 0xd3, 0x62, + 0x6d, 0xcc, 0x2e, 0x88, 0xea, 0x35, 0x6e, 0xbe, + 0x4d, 0xc8, 0x40, 0xcf, 0x1a, 0x9a, 0x20, 0x89, + 0x75, 0x81, 0x01, 0xe3, 0x27, 0x2d, 0x15, 0x6c, + 0xab, 0x82, 0xa1, 0x56, 0x4c, 0xd7, 0xe7, 0xe5, + 0xa7, 0x56, 0x2c, 0x56, 0x95, 0xdc, 0x3b, 0xab, + 0xbd, 0x61, 0x6b, 0xde, 0x09, 0xc9, 0x93, 0x9e, + 0x4b, 0x43, 0x5d, 0x40, 0xd2, 0x61, 0x10, 0xa9, + 0x71, 0xb2, 0x82, 0xc6, 0xaf, 0x61, 0x6e, 0xaf, + 0x55, 0xe8, 0xcb, 0x47, 0x7d, 0x7d, 0x52, 0x1e, + 0x93, 0xbf, 0x7d, 0xcb, 0x1a, 0xc6, 0xad, 0x72, + 0xe4, 0xc9, 0x4d, 0x97, 0x7b, 0xaa, 0x03, 0x18, + 0x5d, 0x39, 0x8b, 0x31, 0xdc, 0x1c, 0xcf, 0x2e, + 0x94, 0xe5, 0x52, 0xb3, 0x66, 0x86, 0xa1, 0x8f, + 0x25, 0xab, 0x56, 0x49, 0x46, 0xd5, 0xf1, 0xb9, + 0x04, 0x22, 0x88, 0xd4, 0x84, 0x76, 0x6a, 0xca, + 0x2e, 0x87, 0x29, 0x4c, 0xb0, 0xd7, 0x03, 0x20, + 0x40, 0x25, 0xc8, 0xea, 0x49, 0x35, 0x69, 0x11, + 0x7a, 0xc5, 0x6d, 0xed, 0xae, 0x2d, 0x95, 0x3b, + 0x36, 0x90, 0x62, 0x0e, 0x39, 0xab, 0xcf, 0xea, + 0xec, 0x28, 0x5f, 0x2b, 0xb4, 0x9c, 0xc6, 0x19, + 0x63, 0xcd, 0x5d, 0x24, 0x45, 0x6e, 0x43, 0xa6, + 0x6b, 0x56, 0x35, 0xd8, 0xd4, 0xf4, 0xec, 0x0b, + 0x95, 0xd6, 0x3b, 0xc0, 0x29, 0x9a, 0x8b, 0x57, + 0x02, 0x40, 0xdf, 0xbc, 0x31, 0xb0, 0xb2, 0xf6, + 0xc1, 0xa0, 0x5c, 0x46, 0x90, 0x5c, 0x2b, 0x9f, + 0x1e, 0x38, 0x50, 0x4c, 0xa7, 0x4f, 0x51, 0xfb, + 0x0a, 0x9c, 0xa3, 0x39, 0x8d, 0xe3, 0xbc, 0xb5, + 0x03, 0x96, 0x4f, 0x90, 0x9f, 0x54, 0xed, 0x38, + 0x0e, 0xfe, 0x48, 0xa4, 0xcc, 0xd1, 0x67, 0x4f, + 0x7b, 0x15, 0x65, 0x51, 0xea, 0x3d, 0xfd, 0x26, + 0x33, 0xe8, 0x35, 0x97, 0xd3, 0x91, 0x2d, 0x8c, + 0xa0, 0xc2, 0x62, 0x22, 0x40, 0xb0, 0x28, 0xde, + 0x37, 0xe8, 0xaf, 0x68, 0x5c, 0x4a, 0xd5, 0x95, + 0x81, 0x6a, 0x3a, 0x57, 0x6f, 0x59, 0xc5, 0x32, + 0x26, 0x86, 0x72, 0xe9, 0xeb, 0x65, 0x77, 0x90, + 0x24, 0x8d, 0x20, 0x6e, 0x2d, 0xe3, 0xba, 0xc7, + 0x0b, 0x19, 0x3a, 0x37, 0xb4, 0x7d, 0xce, 0x90, + 0x4f, 0xbd, 0x68, 0xee, 0xd8, 0xee, 0x91, 0x15, + 0xd8, 0x32, 0xb3, 0x5d, 0x37, 0x03, 0x14, 0xee, + 0xf9, 0x48, 0xe4, 0x06, 0xd8, 0x25, 0x4d, 0x79, + 0xa6, 0xc8, 0x16, 0x4f, 0x14, 0x4e, 0x62, 0xc0, + 0x55, 0x92, 0xd3, 0x4d, 0xa0, 0x97, 0xbe, 0xbd, + 0x86, 0x9d, 0xdd, 0x19, 0x76, 0x0e, 0x26, 0x8b, + 0x19, 0x56, 0x49, 0x12, 0xc5, 0x9d, 0x30, 0x18, + 0x0b, 0x97, 0x66, 0x4c, 0xb0, 0x74, 0x3a, 0xbc, + 0x27, 0x28, 0x06, 0x4c, 0xf5, 0x6f, 0xe6, 0x26, + 0x96, 0xe9, 0xe9, 0x62, 0x79, 0x15, 0x4f, 0x4c, + 0xd3, 0x57, 0x71, 0xc7, 0x3c, 0xfc, 0x18, 0xfd, + 0x88, 0xa0, 0xa0, 0x14, 0x2f, 0x23, 0x1c, 0xfd, + 0x33, 0x22, 0x23, 0x94, 0xc8, 0xcf, 0x53, 0x53, + 0x4d, 0x59, 0xd2, 0xaa, 0x40, 0x56, 0x32, 0xd4, + 0x74, 0xe8, 0xa8, 0xce, 0x50, 0xd9, 0x76, 0xb3, + 0x65, 0x2a, 0x30, 0x6c, 0x88, 0x6c, 0x4c, 0xae, + 0x71, 0x20, 0xc3, 0x66, 0x6f, 0x8f, 0xbb, 0x3a, + 0x5d, 0x4a, 0x97, 0x22, 0x25, 0xe9, 0xec, 0xd6, + 0x9b, 0x0d, 0xd7, 0xab, 0xa6, 0xcf, 0x25, 0x55, + 0xa7, 0x05, 0x33, 0xb5, 0xc2, 0x54, 0xc2, 0x80, + 0x2c, 0x32, 0x08, 0x8f, 0xeb, 0x0c, 0x07, 0x00, + 0x55, 0xb2, 0xd3, 0x74, 0xea, 0xfd, 0xa7, 0x27, + 0x23, 0x6b, 0x76, 0xb5, 0xae, 0x8d, 0x39, 0x14, + 0x24, 0xd1, 0x2b, 0x37, 0xde, 0xae, 0xcc, 0x1c, + 0xea, 0xcc, 0x79, 0xc4, 0x2f, 0x14, 0x34, 0x73, + 0x0c, 0xfc, 0x40, 0xa6, 0xeb, 0x69, 0x98, 0xd4, + 0xb5, 0x62, 0x53, 0x5c, 0xe2, 0x43, 0x96, 0x48, + 0x89, 0x90, 0xa8, 0x6a, 0x14, 0x6c, 0x34, 0x9b, + 0xe1, 0x4c, 0x90, 0x8d, 0xc8, 0x4b, 0x02, 0x81, + 0x33, 0x8c, 0x64, 0xb8, 0xcf, 0x4e, 0xe5, 0x60, + 0xd7, 0x4e, 0xdc, 0x42, 0xe7, 0xab, 0xcb, 0x17, + 0x66, 0x2c, 0x49, 0xd6, 0x7f, 0x1b, 0x8c, 0xd5, + 0x3d, 0xbb, 0x3d, 0x7c, 0x50, 0x07, 0x31, 0x80, + 0x38, 0x32, 0x8a, 0x24, 0xfa, 0xf6, 0xa5, 0x9a, + 0x88, 0xea, 0x34, 0x95, 0x5e, 0x96, 0xaa, 0x2a, + 0xb8, 0x5f, 0x2e, 0xb3, 0x65, 0xaf, 0xd3, 0x6f, + 0x53, 0x2b, 0x49, 0x2a, 0x54, 0x9c, 0xeb, 0x22, + 0x98, 0x0b, 0x7c, 0x92, 0x58, 0x93, 0xb7, 0x21, + 0x82, 0x5c, 0xb5, 0x77, 0x74, 0xed, 0x58, 0x9d, + 0x5c, 0xfb, 0x6c, 0x42, 0xfa, 0x16, 0x0b, 0x4a, + 0x37, 0x5d, 0x64, 0x01, 0x76, 0xad, 0xcc, 0x51, + 0x57, 0x8e, 0xb9, 0x96, 0xde, 0xe1, 0x2e, 0x4b, + 0x7e, 0x99, 0xdb, 0xe9, 0x96, 0x06, 0xdb, 0x2b, + 0x85, 0x4e, 0x4b, 0x0c, 0xa8, 0xf5, 0xb6, 0x37, + 0x0c, 0x7b, 0xc5, 0xcd, 0x61, 0x17, 0xc4, 0xc0, + 0x00, 0x1f, 0xa4, 0x24, 0x80, 0x22, 0x3f, 0x5e, + 0xe5, 0x5b, 0x58, 0xd3, 0xb9, 0x5f, 0x5e, 0xfe, + 0x9e, 0x09, 0xb1, 0x72, 0xe4, 0xcf, 0x12, 0x95, + 0xf2, 0xf9, 0xed, 0xd3, 0x66, 0x49, 0xf4, 0x90, + 0x22, 0x95, 0xd3, 0x03, 0x31, 0x35, 0x92, 0x91, + 0x20, 0x25, 0xf7, 0x17, 0x81, 0xdb, 0xee, 0xdd, + 0xa6, 0x5b, 0x72, 0x25, 0x16, 0x92, 0xbb, 0x93, + 0x53, 0x92, 0x0d, 0x30, 0xaa, 0xc2, 0x2a, 0xab, + 0xa3, 0x00, 0x05, 0x77, 0x4c, 0x7b, 0xdc, 0x22, + 0xf7, 0x3c, 0x99, 0x85, 0x9b, 0x15, 0xc0, 0xd8, + 0x6c, 0xab, 0x78, 0x17, 0xf6, 0xab, 0x0a, 0xf7, + 0x1b, 0x33, 0x32, 0x53, 0x1f, 0xab, 0xcf, 0x5a, + 0xfa, 0x0d, 0xcb, 0xae, 0x2d, 0xae, 0x81, 0x27, + 0xb6, 0x1a, 0x4b, 0x54, 0x77, 0xd5, 0x7d, 0x67, + 0x09, 0x5b, 0x5b, 0x31, 0x1f, 0xa9, 0x6b, 0x32, + 0xfd, 0x9d, 0x42, 0xe0, 0xbe, 0x7b, 0x48, 0xf4, + 0xf5, 0x03, 0xaf, 0x53, 0xa9, 0xa8, 0x25, 0x49, + 0x6a, 0xad, 0xdd, 0x6c, 0x8e, 0xf6, 0x68, 0x83, + 0x46, 0x00, 0xde, 0xd4, 0xba, 0x18, 0x03, 0x12, + 0x69, 0x06, 0x2b, 0x31, 0x31, 0x9e, 0xab, 0xea, + 0x5a, 0x66, 0xaf, 0xa4, 0x9d, 0xeb, 0x76, 0xee, + 0x8a, 0x34, 0x44, 0x0e, 0xa2, 0xcb, 0x6f, 0x65, + 0xa6, 0x01, 0xa2, 0x2b, 0xca, 0xa8, 0x32, 0xbf, + 0xbc, 0xc8, 0xe0, 0x1e, 0x77, 0xa9, 0x84, 0xe9, + 0xe4, 0x20, 0x04, 0x9c, 0x33, 0xa8, 0xd4, 0xec, + 0xea, 0x55, 0x69, 0xd9, 0xa8, 0x5a, 0x8d, 0x55, + 0xe9, 0xb6, 0x2a, 0x6a, 0xa5, 0x62, 0xd5, 0xa5, + 0x55, 0x91, 0x62, 0x92, 0x6a, 0xa2, 0xda, 0x59, + 0x80, 0xba, 0x5b, 0xc6, 0xfb, 0x6a, 0x3c, 0x16, + 0x51, 0xb4, 0x30, 0xd4, 0x06, 0x9d, 0x0a, 0xc0, + 0xd7, 0xd1, 0xc8, 0xc3, 0xdf, 0xb9, 0x76, 0x2c, + 0x70, 0xae, 0x46, 0xa3, 0xeb, 0xe4, 0x81, 0x8a, + 0xd2, 0xc1, 0x57, 0xac, 0x89, 0x98, 0xe6, 0xd9, + 0x58, 0x4a, 0xd4, 0xb6, 0x9c, 0xc4, 0x75, 0x5e, + 0x74, 0x73, 0x56, 0xb1, 0x54, 0x11, 0x68, 0xe3, + 0x52, 0xd2, 0xd1, 0xab, 0x8d, 0x6b, 0x13, 0x56, + 0xd4, 0xa8, 0xa0, 0x26, 0xfd, 0x5a, 0x65, 0x2e, + 0x01, 0x6a, 0xbd, 0x28, 0x5f, 0x95, 0xce, 0xe7, + 0xb3, 0xb9, 0x03, 0xad, 0x0f, 0x4b, 0x0a, 0x3a, + 0x8d, 0xeb, 0x54, 0xd2, 0xb2, 0x71, 0x85, 0x97, + 0xf6, 0xc1, 0xdd, 0x2b, 0xba, 0x31, 0xa8, 0x52, + 0xdc, 0x6a, 0x5b, 0xc9, 0x7e, 0x09, 0x3c, 0x06, + 0x90, 0x07, 0xa2, 0x09, 0xbc, 0x8c, 0x8e, 0xa2, + 0xd2, 0xaa, 0x1d, 0x0a, 0xaa, 0xab, 0x2c, 0x81, + 0xb9, 0x61, 0x87, 0x6c, 0xa5, 0x55, 0x6b, 0x6e, + 0xa1, 0x03, 0x31, 0x18, 0xdd, 0x7c, 0x44, 0xa0, + 0x10, 0xef, 0x8e, 0x09, 0x52, 0x4b, 0x21, 0x35, + 0x44, 0x69, 0xdf, 0x68, 0x1b, 0x7a, 0x4a, 0x57, + 0xe0, 0xeb, 0x46, 0x21, 0xe8, 0x64, 0x82, 0x5f, + 0x61, 0x50, 0x00, 0x51, 0xb4, 0x36, 0x11, 0x0c, + 0x70, 0xc1, 0xf2, 0xe7, 0xc9, 0xe5, 0xab, 0x63, + 0x9a, 0xd9, 0x0f, 0x6f, 0xc0, 0xf3, 0x6f, 0xf8, + 0x65, 0xf4, 0x88, 0x98, 0xfa, 0xc8, 0x4e, 0x51, + 0x9e, 0xc3, 0x3f, 0x4f, 0xfd, 0x7a, 0x9c, 0xfc, + 0x0c, 0x6e, 0x41, 0xf9, 0x92, 0xf7, 0xfb, 0xb2, + 0x13, 0xe2, 0x0d, 0x2d, 0x9f, 0xcb, 0x79, 0xd8, + 0xbe, 0x98, 0xfa, 0xb6, 0x41, 0x69, 0x2c, 0xe2, + 0x78, 0xcf, 0xa9, 0x85, 0xf8, 0x02, 0xa9, 0xf0, + 0x71, 0x6b, 0xf4, 0x49, 0x27, 0xf7, 0x49, 0x65, + 0xbf, 0x27, 0xdc, 0x88, 0x92, 0x98, 0xe9, 0xf4, + 0x3d, 0xc8, 0xd7, 0xad, 0xd9, 0xb8, 0x23, 0x6a, + 0xb1, 0x12, 0xeb, 0x58, 0x69, 0x2a, 0xf1, 0xe7, + 0x00, 0xa3, 0x04, 0x42, 0xe3, 0xd8, 0x47, 0x01, + 0x87, 0x11, 0x94, 0xf2, 0x49, 0x6c, 0xb9, 0xdc, + 0xa8, 0x22, 0xba, 0x49, 0x1e, 0x5d, 0x15, 0x87, + 0xbb, 0x15, 0x32, 0x9d, 0x79, 0x78, 0xb8, 0x02, + 0xb7, 0x6e, 0x4a, 0x09, 0x87, 0x9a, 0x27, 0x78, + 0xdc, 0xc0, 0x91, 0x11, 0x1f, 0x7c, 0xcc, 0x2e, + 0xd2, 0x6a, 0x51, 0x85, 0x88, 0xa2, 0xd8, 0xa4, + 0x11, 0x64, 0xc8, 0xcc, 0x34, 0xd7, 0x80, 0x48, + 0x4d, 0x74, 0x94, 0xfb, 0x6c, 0xb3, 0xca, 0xd8, + 0x9c, 0x60, 0xcb, 0xc6, 0xfb, 0x6f, 0xd5, 0xa9, + 0x7f, 0x63, 0x53, 0x8e, 0x1b, 0x69, 0x8b, 0x06, + 0xfc, 0x45, 0x59, 0xc0, 0xab, 0x0c, 0xad, 0xda, + 0x58, 0x6b, 0x0a, 0xbb, 0x5b, 0x94, 0xf2, 0xaf, + 0xd3, 0x5e, 0x08, 0x0f, 0x39, 0x64, 0xc0, 0x23, + 0x6e, 0x93, 0x63, 0xb1, 0x66, 0x1a, 0x7b, 0xa2, + 0xe3, 0x6c, 0x17, 0xf0, 0x8a, 0xde, 0x20, 0xa0, + 0x3b, 0xae, 0x76, 0x0d, 0xd1, 0x81, 0x42, 0xc9, + 0xaf, 0x5a, 0xcd, 0x89, 0x2e, 0x41, 0x5f, 0x1a, + 0xcc, 0xcb, 0xd2, 0x06, 0x7d, 0x49, 0x26, 0x8e, + 0xb5, 0x53, 0x53, 0x6d, 0x28, 0xd6, 0x30, 0xaf, + 0x31, 0x14, 0x0a, 0xac, 0x3d, 0x6c, 0x55, 0xc5, + 0xa0, 0x56, 0x97, 0x25, 0x02, 0x0d, 0x21, 0x5a, + 0xf3, 0x73, 0x16, 0x5d, 0xb9, 0x81, 0x4e, 0x65, + 0xd5, 0x3e, 0xe3, 0x5d, 0xd4, 0x56, 0x9d, 0x31, + 0x85, 0x7a, 0xae, 0x2c, 0xb5, 0x0e, 0x07, 0x41, + 0x72, 0x17, 0x64, 0x52, 0x2c, 0x15, 0xdc, 0x6e, + 0xe5, 0xc2, 0xd6, 0xc6, 0x02, 0x73, 0xea, 0x28, + 0x19, 0x2d, 0xfe, 0x5e, 0x5a, 0x96, 0xa1, 0x6f, + 0xc5, 0x5a, 0x75, 0x68, 0x4a, 0x8d, 0xc6, 0x75, + 0x12, 0xb6, 0x88, 0x2c, 0x1a, 0x23, 0x24, 0x21, + 0x5d, 0x62, 0x0b, 0x84, 0x44, 0xec, 0x4b, 0x39, + 0x88, 0x89, 0x58, 0x90, 0xf5, 0xf0, 0xf5, 0xf5, + 0x96, 0x69, 0xb9, 0x49, 0x36, 0x5b, 0xc8, 0x7c, + 0x6d, 0x87, 0x59, 0x16, 0xee, 0x2b, 0x43, 0x95, + 0x5d, 0xec, 0x4c, 0x0c, 0x0f, 0xbc, 0x90, 0xb1, + 0x5f, 0x29, 0xdb, 0xba, 0x29, 0x98, 0x8e, 0xad, + 0xc8, 0x46, 0xf8, 0x5d, 0x39, 0x2f, 0xa7, 0xfd, + 0x6c, 0xc7, 0xf8, 0xff, 0x00, 0x87, 0x48, 0x81, + 0x88, 0x80, 0x26, 0x2e, 0x77, 0xfa, 0x1e, 0xf9, + 0x10, 0xef, 0x8c, 0x6f, 0xfa, 0xa7, 0xf3, 0xfc, + 0xa3, 0xad, 0x5f, 0x54, 0xd3, 0xeb, 0xf7, 0x56, + 0x4a, 0xc5, 0x4a, 0xdc, 0x30, 0xd7, 0x22, 0x2b, + 0x21, 0x2b, 0xaf, 0x68, 0xef, 0xda, 0x65, 0x57, + 0xad, 0xd1, 0x4d, 0x42, 0x50, 0x93, 0x22, 0xc1, + 0x41, 0x96, 0x45, 0xc9, 0xb6, 0xd0, 0x56, 0x75, + 0x39, 0x56, 0xa0, 0xb0, 0x1b, 0xcc, 0xa5, 0x66, + 0x75, 0x38, 0x69, 0x51, 0x05, 0x49, 0xc9, 0x2d, + 0x62, 0xf0, 0x22, 0x12, 0x9b, 0xd5, 0xb2, 0x38, + 0x59, 0x62, 0x69, 0x65, 0x8f, 0xab, 0x89, 0x72, + 0x3a, 0x6f, 0xf7, 0x3d, 0x03, 0xef, 0x0e, 0x40, + 0xfb, 0xe8, 0xaa, 0x1b, 0xc2, 0x8a, 0x33, 0x94, + 0xd9, 0xb0, 0x23, 0x22, 0xf3, 0x05, 0xf9, 0x9a, + 0xfb, 0x86, 0xfe, 0x73, 0x11, 0xc7, 0xcc, 0xf4, + 0xad, 0x4b, 0x42, 0xab, 0x6e, 0x80, 0x59, 0xb8, + 0x85, 0xd5, 0xb1, 0xa7, 0xdc, 0x39, 0xad, 0xa9, + 0x58, 0xbb, 0x19, 0xb6, 0x26, 0xb0, 0xda, 0x81, + 0x40, 0x29, 0x54, 0xed, 0x30, 0x9c, 0x94, 0x47, + 0x3d, 0x88, 0x56, 0x44, 0x51, 0x2c, 0x90, 0xd3, + 0x44, 0xb4, 0x29, 0x6d, 0x9c, 0xa0, 0xdd, 0x15, + 0xf5, 0x49, 0x28, 0x5b, 0x81, 0x36, 0x98, 0x7d, + 0xca, 0x2c, 0x88, 0x62, 0x60, 0x4a, 0x87, 0x4c, + 0xf7, 0xa0, 0xaf, 0x61, 0x8a, 0x89, 0x32, 0x28, + 0xeb, 0x52, 0x78, 0x69, 0xcf, 0x45, 0x44, 0x93, + 0x8c, 0x6a, 0xde, 0xaf, 0xcd, 0x5e, 0xa6, 0xcc, + 0xb2, 0x45, 0xca, 0x30, 0xbb, 0xbd, 0xda, 0x21, + 0x75, 0x57, 0x11, 0x6a, 0xbb, 0x03, 0x89, 0x8f, + 0x5a, 0xe4, 0xd9, 0x11, 0x25, 0x23, 0x66, 0xbf, + 0xc2, 0xda, 0x0a, 0xad, 0x31, 0x71, 0x6f, 0x3b, + 0x34, 0x14, 0xc3, 0x95, 0x08, 0x57, 0x21, 0x72, + 0x97, 0x0f, 0x41, 0x07, 0xe2, 0x26, 0x7c, 0x0e, + 0xf2, 0x45, 0x8e, 0x39, 0xc1, 0x44, 0x11, 0x6b, + 0x8e, 0xbf, 0xa7, 0x59, 0x28, 0x32, 0x58, 0x7c, + 0x32, 0x69, 0xa8, 0xf3, 0x2a, 0x40, 0xc5, 0xbd, + 0x2f, 0x29, 0x6d, 0x96, 0x64, 0x3c, 0x51, 0x2a, + 0x89, 0x93, 0x9c, 0xe6, 0x71, 0x1c, 0x48, 0x67, + 0xa6, 0x83, 0x97, 0x5d, 0x8d, 0x8b, 0x3a, 0x71, + 0x2d, 0x13, 0x1d, 0xc8, 0x35, 0x3a, 0x56, 0x96, + 0xdd, 0x33, 0x9a, 0xeb, 0x6c, 0x21, 0x40, 0xe6, + 0x8f, 0x20, 0x94, 0xaf, 0xdc, 0x50, 0x93, 0x58, + 0x6b, 0x93, 0xe1, 0xe8, 0x5d, 0xa6, 0xd5, 0x7a, + 0xe1, 0x56, 0x98, 0x89, 0x87, 0x58, 0xa9, 0x5a, + 0x0f, 0x53, 0xd3, 0x02, 0xbd, 0x7e, 0xda, 0xd7, + 0x67, 0xa8, 0x54, 0x7a, 0x07, 0x92, 0x8d, 0x5d, + 0x9e, 0x70, 0x50, 0x07, 0x19, 0xae, 0x30, 0x39, + 0x2e, 0xad, 0xc5, 0xe7, 0xa6, 0xd2, 0x2b, 0x56, + 0xa4, 0xbb, 0x14, 0x81, 0x67, 0x66, 0xb5, 0x81, + 0x8d, 0x35, 0xe4, 0x92, 0xe4, 0xbf, 0x65, 0x36, + 0xc1, 0x89, 0x40, 0x84, 0x62, 0x14, 0xca, 0x93, + 0x06, 0x71, 0xde, 0x55, 0x03, 0x26, 0x6e, 0xa5, + 0xc8, 0xcd, 0x26, 0xc1, 0x66, 0x31, 0x3e, 0xa3, + 0x44, 0x49, 0x40, 0x0f, 0x2e, 0x39, 0x62, 0x0c, + 0x3f, 0x0a, 0x9c, 0xa6, 0x76, 0xc4, 0x08, 0x8f, + 0x75, 0x35, 0xe9, 0xa4, 0x98, 0xf3, 0xfa, 0xce, + 0x76, 0x52, 0x84, 0xa7, 0x69, 0x23, 0x2f, 0xa0, + 0xc6, 0xff, 0x00, 0xbe, 0x66, 0x06, 0x3c, 0xcc, + 0x47, 0x4c, 0xa9, 0x51, 0xd5, 0x86, 0x57, 0x05, + 0x1a, 0x93, 0xdb, 0xce, 0x76, 0x72, 0xc7, 0x68, + 0x0e, 0xda, 0xa7, 0x72, 0x6f, 0xe4, 0x76, 0xf5, + 0x52, 0x10, 0x99, 0x12, 0x33, 0x80, 0x99, 0x85, + 0xc9, 0xb4, 0xe1, 0x7f, 0x0b, 0x3a, 0xc3, 0xb5, + 0x44, 0xbb, 0x52, 0x71, 0x42, 0xfb, 0xda, 0x9e, + 0xcd, 0x46, 0xa5, 0x01, 0x62, 0xa9, 0xba, 0x16, + 0x15, 0xc0, 0xde, 0x4c, 0x14, 0xac, 0x6c, 0x72, + 0xfb, 0x80, 0x18, 0x7a, 0x7c, 0x80, 0x9a, 0xbe, + 0x20, 0xb6, 0xb0, 0xa5, 0xa6, 0x13, 0x4d, 0x13, + 0xe1, 0x24, 0x7a, 0x6d, 0x76, 0x3b, 0xed, 0x4f, + 0x6b, 0x64, 0xcf, 0x9e, 0x49, 0xa5, 0xca, 0xbf, + 0x2c, 0x89, 0x48, 0x40, 0xc0, 0xe7, 0x37, 0x6f, + 0xc5, 0x47, 0x26, 0xe8, 0x3b, 0x88, 0x6d, 0xdd, + 0x35, 0x03, 0x19, 0xfc, 0xe1, 0x19, 0x05, 0xa4, + 0x46, 0xc6, 0x49, 0x84, 0xac, 0x59, 0x3e, 0x66, + 0x4c, 0x56, 0x19, 0x94, 0x6d, 0x3d, 0x5e, 0xee, + 0xab, 0xf3, 0x40, 0x15, 0x85, 0xb9, 0x74, 0xf5, + 0x00, 0xb6, 0xc9, 0xa3, 0x56, 0xda, 0x98, 0xc5, + 0x10, 0x28, 0xad, 0x48, 0x95, 0x78, 0x5c, 0x91, + 0xcb, 0xa2, 0x45, 0x52, 0x04, 0xd3, 0x54, 0x71, + 0xc4, 0x0d, 0xb3, 0xf9, 0x07, 0xc4, 0xde, 0x8a, + 0x6d, 0x62, 0xb8, 0xde, 0x71, 0x5e, 0xb8, 0x86, + 0x9b, 0x79, 0x92, 0xd6, 0xa4, 0xea, 0x5b, 0x9e, + 0x00, 0x35, 0x15, 0xbb, 0x1f, 0x69, 0x88, 0x2a, + 0xaa, 0xbd, 0xf8, 0x3c, 0xde, 0xca, 0x63, 0xe5, + 0x7f, 0x12, 0xff, 0x00, 0x43, 0xe0, 0xb6, 0x1b, + 0x85, 0x07, 0x31, 0x3c, 0x7f, 0x6a, 0x5f, 0xdc, + 0xdb, 0x47, 0x2c, 0xa7, 0x6a, 0xd0, 0x38, 0x47, + 0x22, 0xf6, 0xac, 0x5f, 0xa7, 0x64, 0x00, 0x3b, + 0x50, 0x42, 0xf9, 0x45, 0x37, 0x0c, 0x0d, 0xf3, + 0xe8, 0x5c, 0xf1, 0x09, 0xa9, 0x00, 0xb6, 0xb4, + 0xf2, 0xc9, 0x63, 0x00, 0x11, 0x87, 0xd6, 0x77, + 0x8d, 0xe5, 0x28, 0x04, 0x1a, 0xad, 0x9b, 0xcb, + 0x7b, 0x2d, 0xb4, 0xb4, 0x54, 0xe2, 0xe3, 0x0e, + 0x31, 0xd8, 0xd3, 0x10, 0x82, 0x13, 0x16, 0x11, + 0x38, 0x9f, 0x22, 0x59, 0x80, 0x40, 0x06, 0x3b, + 0x92, 0xe9, 0x8d, 0x5c, 0x6c, 0xd3, 0x66, 0x4b, + 0xee, 0x32, 0xc4, 0x46, 0x40, 0x31, 0x5b, 0xab, + 0xa8, 0x15, 0xc9, 0x23, 0xb6, 0xe0, 0xc2, 0x64, + 0x1e, 0x2c, 0x28, 0x2c, 0xbd, 0x12, 0x01, 0xa8, + 0x9e, 0xb5, 0xa2, 0x55, 0x75, 0xc9, 0x26, 0xb2, + 0xb5, 0x8b, 0x52, 0x82, 0x49, 0x4b, 0x58, 0x38, + 0xce, 0xf9, 0xcc, 0x49, 0x63, 0x9c, 0x65, 0x8f, + 0x89, 0xe9, 0x96, 0x99, 0xac, 0x69, 0x16, 0x7b, + 0x6d, 0xe1, 0x69, 0xad, 0x6f, 0x94, 0xda, 0xc1, + 0x21, 0xf6, 0x95, 0x11, 0xe7, 0x7d, 0xcf, 0x72, + 0xfe, 0xcc, 0x6e, 0x53, 0xd3, 0xfb, 0xda, 0x35, + 0xd9, 0x71, 0xb7, 0x17, 0x78, 0x18, 0x10, 0x5d, + 0xba, 0x98, 0x0b, 0x45, 0x51, 0x80, 0x49, 0x43, + 0x58, 0x89, 0xf4, 0x0c, 0x95, 0xa4, 0xba, 0x19, + 0xfa, 0x23, 0x8f, 0x89, 0x84, 0xe9, 0x48, 0x76, + 0xa5, 0x09, 0xb1, 0x1d, 0xa0, 0xd2, 0x97, 0x31, + 0xa0, 0x93, 0x21, 0x67, 0x72, 0xce, 0x43, 0x80, + 0xc9, 0x66, 0xd2, 0x96, 0x62, 0xd8, 0x69, 0x29, + 0x70, 0x40, 0xb2, 0xdc, 0xa6, 0x67, 0x4d, 0xfe, + 0xe7, 0xa6, 0x9d, 0xb5, 0xa1, 0x8b, 0xae, 0xe1, + 0xb2, 0x7d, 0xc4, 0x88, 0x2c, 0x14, 0x28, 0xb0, + 0xb6, 0x4e, 0x65, 0xe3, 0x29, 0xe4, 0x80, 0xc7, + 0xf4, 0xe0, 0xe6, 0x3f, 0x64, 0xb7, 0xe1, 0xdd, + 0x3a, 0xdd, 0xb5, 0xd8, 0xab, 0x35, 0x2e, 0x0e, + 0x56, 0x00, 0x34, 0x7a, 0xc0, 0x08, 0x4e, 0xc2, + 0xa2, 0x1e, 0x56, 0x35, 0xbd, 0xbd, 0xab, 0x8a, + 0x7d, 0x7a, 0xe2, 0xa7, 0x77, 0x0c, 0x81, 0x6e, + 0xe3, 0x5e, 0x40, 0xb4, 0x4b, 0x31, 0x4a, 0xd8, + 0x1d, 0xc7, 0xd7, 0xda, 0xbd, 0x2b, 0x4d, 0x4a, + 0x4d, 0x67, 0xa4, 0xbf, 0x52, 0x4b, 0x4c, 0x9a, + 0xe4, 0xf2, 0xca, 0x52, 0xf5, 0xb4, 0x5a, 0xdb, + 0x3e, 0xa4, 0xf2, 0x84, 0xef, 0xcd, 0x97, 0x5a, + 0x85, 0xa6, 0xfc, 0xdd, 0x34, 0x66, 0xdd, 0x99, + 0x65, 0x62, 0xd4, 0x2b, 0x90, 0x2e, 0x9c, 0xbd, + 0xbd, 0xd2, 0xce, 0x7b, 0xa6, 0xb0, 0xad, 0x3a, + 0x05, 0xbb, 0x78, 0x89, 0x8c, 0xc7, 0x63, 0xb1, + 0x16, 0x23, 0x75, 0xb3, 0x4a, 0x45, 0xaa, 0x40, + 0xa2, 0xb0, 0xb6, 0xbd, 0xed, 0xd2, 0xe8, 0x84, + 0xad, 0xf4, 0xe9, 0x55, 0x8a, 0xbd, 0xc0, 0x45, + 0x68, 0x64, 0x42, 0xeb, 0x94, 0xca, 0x64, 0xcb, + 0xf1, 0x09, 0xc2, 0xa1, 0x36, 0xb8, 0xca, 0xd5, + 0x88, 0x5d, 0xd2, 0x35, 0x7b, 0x8a, 0xb4, 0x9b, + 0xc8, 0x60, 0xe4, 0x2b, 0x73, 0x5b, 0x22, 0x42, + 0xd8, 0x87, 0xe4, 0x2a, 0xde, 0x5a, 0x8b, 0x19, + 0x27, 0x88, 0xe2, 0x45, 0xa7, 0x30, 0xbe, 0xaa, + 0xdb, 0xd4, 0xa8, 0xa9, 0xeb, 0x08, 0x6c, 0x2c, + 0x83, 0x88, 0x6c, 0x7e, 0x05, 0xa1, 0x04, 0x39, + 0x31, 0xa8, 0xd3, 0x70, 0xe2, 0xc1, 0x69, 0xcc, + 0xb7, 0xd7, 0x11, 0x27, 0x8f, 0xde, 0xc4, 0x96, + 0xbf, 0x85, 0x79, 0x6b, 0x52, 0xa9, 0x33, 0x72, + 0xfc, 0x5d, 0xf9, 0x5a, 0xc9, 0xaf, 0x95, 0x57, + 0x73, 0xed, 0x00, 0x19, 0x5a, 0x71, 0x0b, 0x85, + 0x8b, 0xb0, 0xf2, 0x6d, 0x9b, 0x30, 0x56, 0x0f, + 0x75, 0xc2, 0x57, 0x23, 0x5f, 0xa4, 0xd1, 0xd2, + 0x6b, 0x71, 0xdd, 0xc4, 0x1f, 0x7e, 0x83, 0x6d, + 0x5a, 0x09, 0xb0, 0x38, 0xd8, 0x17, 0xd9, 0x85, + 0x46, 0xa6, 0x5a, 0x7b, 0x00, 0x94, 0xd8, 0xa6, + 0xc3, 0x05, 0xd3, 0x5f, 0x13, 0x9e, 0x11, 0x54, + 0x46, 0x76, 0x8b, 0x1d, 0xcd, 0x22, 0xb1, 0x4d, + 0xab, 0x20, 0xb3, 0x4a, 0xd1, 0xc8, 0xa9, 0x2c, + 0x94, 0xb0, 0x2b, 0x32, 0x45, 0xa0, 0x22, 0x6c, + 0x25, 0x04, 0xf0, 0xf0, 0x43, 0x84, 0xd7, 0x00, + 0x99, 0xd9, 0x84, 0x91, 0xea, 0xd5, 0x3e, 0xd1, + 0xaa, 0x6b, 0x18, 0xc5, 0xbd, 0x82, 0x66, 0x96, + 0xe0, 0xc1, 0x72, 0xca, 0xb9, 0x66, 0xab, 0x18, + 0x8d, 0x76, 0x6d, 0x3e, 0xb1, 0x96, 0x71, 0xee, + 0x13, 0x83, 0x0c, 0x99, 0xd5, 0xd2, 0xa7, 0xaf, + 0xad, 0x3a, 0x83, 0x1c, 0x33, 0x36, 0x66, 0xeb, + 0x19, 0x60, 0xb8, 0x58, 0xe3, 0xc0, 0x20, 0xb4, + 0xa4, 0xae, 0x60, 0xa0, 0x12, 0xbc, 0xe7, 0x58, + 0x60, 0x1f, 0xa1, 0xb2, 0x1f, 0xa2, 0x23, 0x5a, + 0xe8, 0xbc, 0xdf, 0x2e, 0xe3, 0xee, 0x11, 0x73, + 0xb3, 0x08, 0x8c, 0x6a, 0xa6, 0x72, 0xb0, 0xb7, + 0x05, 0x62, 0x89, 0x55, 0x76, 0x7b, 0x86, 0x5b, + 0x11, 0x1a, 0xcf, 0x38, 0xc0, 0x63, 0xad, 0xa9, + 0xba, 0x6a, 0xd6, 0xad, 0x4e, 0xba, 0x96, 0x97, + 0xa5, 0x59, 0x1f, 0x1a, 0x2b, 0xd4, 0x6c, 0x06, + 0x60, 0xf9, 0x22, 0x6e, 0xd9, 0x9c, 0x13, 0x3d, + 0x49, 0x02, 0xca, 0x67, 0x6c, 0x65, 0x95, 0xa4, + 0x2b, 0x95, 0x76, 0x70, 0x48, 0x0d, 0x85, 0x89, + 0x92, 0x0d, 0x42, 0x79, 0x12, 0xb8, 0xc5, 0x28, + 0xd8, 0xdc, 0xd6, 0xbb, 0x62, 0x41, 0x7d, 0x45, + 0x67, 0xc8, 0x31, 0x39, 0x26, 0x9c, 0x8c, 0xbd, + 0x65, 0x6b, 0x69, 0xf9, 0x65, 0x75, 0x03, 0xad, + 0x0c, 0xee, 0xa6, 0xf6, 0xcf, 0x5d, 0x71, 0x36, + 0xf2, 0x86, 0xf0, 0x22, 0x7b, 0x87, 0x99, 0x92, + 0x08, 0x3e, 0xad, 0x3f, 0xe5, 0xbf, 0x18, 0xd9, + 0xed, 0xeb, 0xd9, 0x41, 0x3b, 0xd9, 0x4d, 0x6a, + 0xfd, 0xbd, 0x0d, 0x43, 0x10, 0x7a, 0x97, 0xa7, + 0x18, 0xe0, 0x90, 0x48, 0xbe, 0xdf, 0xac, 0x25, + 0x95, 0x93, 0xa8, 0xc9, 0xfa, 0xd9, 0x2f, 0x14, + 0xc7, 0x61, 0xf1, 0x47, 0xf4, 0x43, 0x68, 0x80, + 0xb4, 0x50, 0x73, 0xbf, 0x1f, 0xbe, 0xa8, 0xf1, + 0xfc, 0x4a, 0x59, 0xfa, 0x6b, 0x44, 0x40, 0xfb, + 0x8a, 0x98, 0xaf, 0xfd, 0xa9, 0x0e, 0x65, 0x38, + 0x46, 0x17, 0xef, 0x2a, 0x27, 0x8c, 0xe4, 0x80, + 0x4e, 0x44, 0x39, 0x50, 0xb6, 0x4f, 0x1e, 0x5c, + 0x67, 0xb8, 0x40, 0xe4, 0x33, 0xb4, 0xcc, 0x63, + 0x32, 0x23, 0x70, 0xb8, 0x26, 0xc3, 0xfd, 0xf9, + 0xe3, 0xaf, 0x4c, 0x57, 0x9f, 0xd6, 0x70, 0x21, + 0xad, 0x59, 0x11, 0x1f, 0x5f, 0x3c, 0x41, 0x1d, + 0x28, 0x2d, 0x59, 0x87, 0x46, 0xe2, 0xc6, 0x2d, + 0x36, 0x61, 0xb9, 0xaf, 0x3d, 0xb1, 0x26, 0x21, + 0xbe, 0x92, 0x60, 0x46, 0x43, 0xb1, 0xc4, 0xe0, + 0x60, 0x71, 0x3e, 0x7a, 0xb3, 0xdf, 0xd1, 0xbc, + 0x8b, 0x71, 0x2d, 0x47, 0x6a, 0xd6, 0x3d, 0x96, + 0xeb, 0xbd, 0x1c, 0x79, 0x11, 0x81, 0x31, 0x5c, + 0x66, 0x7b, 0x9f, 0x0b, 0x0f, 0xd2, 0x83, 0xcd, + 0x4d, 0x4b, 0x60, 0x05, 0x84, 0xdd, 0x38, 0xf4, + 0xad, 0x43, 0x4c, 0xac, 0x57, 0x20, 0x94, 0xc9, + 0xd5, 0x8a, 0xe2, 0x53, 0x63, 0x8d, 0x60, 0x78, + 0x26, 0xec, 0x0a, 0x5b, 0xca, 0xd8, 0x12, 0x7c, + 0xd4, 0x34, 0x9e, 0xe6, 0xbe, 0x66, 0xe2, 0x11, + 0xbd, 0xee, 0x06, 0xba, 0xe4, 0x82, 0x68, 0x4c, + 0x35, 0x80, 0x75, 0xb8, 0xa6, 0xcb, 0x4c, 0xa5, + 0x66, 0x00, 0x36, 0x14, 0x53, 0xe9, 0xac, 0x7b, + 0xcd, 0x80, 0x8f, 0xbc, 0x01, 0x2c, 0x98, 0x21, + 0xea, 0x96, 0xa7, 0x92, 0x76, 0x4b, 0x58, 0xd7, + 0x62, 0x6d, 0x61, 0x14, 0x61, 0xa9, 0x64, 0x22, + 0x0b, 0x54, 0xc4, 0x65, 0x2a, 0x4c, 0x6f, 0x33, + 0xb0, 0xec, 0x45, 0x25, 0x8e, 0x72, 0x3a, 0x77, + 0xf7, 0x51, 0xd6, 0xa1, 0x5e, 0xd4, 0x41, 0x54, + 0x62, 0x83, 0xbb, 0x12, 0x67, 0x14, 0x4d, 0x51, + 0x72, 0x8a, 0xcc, 0x67, 0x90, 0x4c, 0x4f, 0x00, + 0xb3, 0x6c, 0x4a, 0x0e, 0x67, 0x68, 0x5e, 0xe7, + 0x23, 0x12, 0x56, 0x2e, 0x50, 0x8f, 0xe0, 0xf3, + 0x2d, 0xea, 0x63, 0x56, 0x4a, 0xc8, 0xe0, 0x63, + 0x85, 0x9f, 0x96, 0x07, 0x2c, 0x37, 0x22, 0x9e, + 0x5e, 0xd7, 0x3c, 0x8a, 0x76, 0xf3, 0xdc, 0x7a, + 0x33, 0xeb, 0x51, 0xd6, 0x90, 0x51, 0xfc, 0x20, + 0xb3, 0xad, 0xd1, 0x5d, 0x41, 0xd3, 0xec, 0xad, + 0x47, 0x5a, 0xc5, 0x44, 0x3c, 0x35, 0xb5, 0x2c, + 0x2a, 0xc5, 0x4a, 0x50, 0x0d, 0x63, 0xd1, 0x0a, + 0xe1, 0xaf, 0x29, 0xe3, 0xf6, 0xea, 0xb5, 0xb0, + 0x2c, 0x29, 0xd4, 0x27, 0x55, 0xc0, 0x6f, 0x3a, + 0xcd, 0xb0, 0xd6, 0x3b, 0x86, 0x2d, 0xd6, 0x8a, + 0x8c, 0x26, 0x8d, 0xea, 0x6a, 0x51, 0xb5, 0x57, + 0x19, 0x5a, 0xc4, 0xea, 0x15, 0xad, 0xb1, 0x96, + 0x2b, 0x2c, 0x5b, 0xc6, 0x3c, 0x6f, 0x31, 0x4b, + 0x84, 0xba, 0xd1, 0xdb, 0xad, 0xf1, 0xc6, 0x93, + 0xda, 0xbe, 0xb9, 0xb4, 0xd7, 0xcc, 0x84, 0x6a, + 0x53, 0x71, 0xcc, 0x6c, 0xd8, 0x58, 0x41, 0xcc, + 0x9b, 0x2a, 0x71, 0x4a, 0xc8, 0x86, 0x77, 0x54, + 0x2e, 0x06, 0x3d, 0x92, 0xc7, 0x56, 0x9f, 0x86, + 0xe5, 0x8b, 0xd1, 0x5d, 0xa9, 0xd4, 0x9d, 0x36, + 0x4b, 0x25, 0x83, 0x45, 0x35, 0x1e, 0xbd, 0x51, + 0xe0, 0xb2, 0xc6, 0x7b, 0x42, 0x7f, 0x0c, 0x62, + 0x51, 0xf5, 0xe0, 0x1d, 0xa0, 0x97, 0x88, 0xe3, + 0x0c, 0x6c, 0x9e, 0x70, 0x51, 0x19, 0x11, 0xcc, + 0x33, 0x7f, 0x4c, 0x8e, 0xf3, 0x33, 0x07, 0xbc, + 0xf8, 0xfd, 0x28, 0x99, 0xfe, 0xd6, 0xfd, 0x4d, + 0x61, 0x4e, 0xa3, 0x16, 0x06, 0x06, 0x65, 0x38, + 0xb8, 0x5a, 0x10, 0x58, 0x2c, 0x66, 0x42, 0x76, + 0x21, 0xde, 0x49, 0x40, 0x3e, 0x23, 0xea, 0x03, + 0x1f, 0x97, 0x55, 0xeb, 0x96, 0x95, 0x08, 0x69, + 0x41, 0x02, 0x9b, 0x66, 0xe4, 0x52, 0xac, 0x00, + 0x95, 0x98, 0x33, 0x72, 0x85, 0x2d, 0x42, 0x22, + 0xf1, 0x32, 0x3e, 0x38, 0xe4, 0x96, 0x44, 0xc0, + 0xfb, 0x91, 0x11, 0x10, 0xce, 0x0d, 0x20, 0xe6, + 0xef, 0x0b, 0x2b, 0x81, 0xdf, 0x03, 0xc0, 0x7b, + 0x31, 0x73, 0x31, 0xda, 0xd2, 0xca, 0xc4, 0x11, + 0x24, 0xd9, 0x19, 0x9e, 0xdb, 0x2e, 0x36, 0x3e, + 0x0d, 0xcf, 0xac, 0x2c, 0x69, 0x7a, 0x43, 0xe4, + 0xab, 0xab, 0x8d, 0xe8, 0xd5, 0x74, 0xca, 0xdc, + 0x66, 0x39, 0xc3, 0x72, 0x07, 0xba, 0x41, 0xcd, + 0x83, 0x9d, 0xcc, 0xb6, 0x24, 0xe1, 0x21, 0x1f, + 0x51, 0xdf, 0xa6, 0x58, 0x56, 0x9a, 0x99, 0x55, + 0xaa, 0xe2, 0x02, 0xa9, 0xd4, 0xf4, 0x31, 0xae, + 0xb9, 0x62, 0xb8, 0xed, 0x12, 0x24, 0x9b, 0x66, + 0x1d, 0x2b, 0x66, 0x5c, 0x0e, 0x1c, 0x38, 0xdc, + 0x13, 0x90, 0x96, 0xdc, 0x50, 0x82, 0x85, 0xa5, + 0xe9, 0xb3, 0x7e, 0xcd, 0x3a, 0xf6, 0x46, 0xd5, + 0x7d, 0x9e, 0x4a, 0x80, 0xd8, 0x3b, 0x59, 0x20, + 0x7a, 0xa5, 0x65, 0xc8, 0x2c, 0xb3, 0x32, 0x75, + 0x4c, 0xb1, 0x00, 0x31, 0x38, 0x98, 0x21, 0x9a, + 0xba, 0x6d, 0x82, 0xae, 0x51, 0x06, 0x57, 0x38, + 0x58, 0xaa, 0x69, 0x56, 0x47, 0x04, 0xf7, 0xdb, + 0x64, 0x4d, 0x75, 0x20, 0x38, 0xdb, 0x2c, 0x61, + 0x94, 0x40, 0x8a, 0xce, 0x77, 0xf4, 0xf5, 0xdb, + 0x33, 0x57, 0x75, 0x87, 0x85, 0x73, 0xae, 0xa3, + 0x8d, 0x1f, 0xb7, 0xa0, 0xdb, 0x02, 0xa9, 0x14, + 0x70, 0xd8, 0x53, 0xca, 0xe9, 0x32, 0x4f, 0x18, + 0x4b, 0xed, 0xe9, 0xcb, 0x17, 0x1c, 0x8c, 0xdb, + 0xe3, 0x5c, 0xc9, 0x8b, 0x35, 0x3d, 0x71, 0xf7, + 0x8f, 0x53, 0x40, 0x57, 0x6e, 0x80, 0xba, 0xca, + 0x13, 0xa4, 0x06, 0xcb, 0x0b, 0x37, 0x20, 0x79, + 0x1f, 0x26, 0xb9, 0xb4, 0xb2, 0x69, 0x85, 0xb0, + 0x15, 0x8a, 0xb8, 0xdc, 0xc8, 0x53, 0x1d, 0xc4, + 0x2c, 0xb9, 0xa8, 0xdb, 0x7e, 0xb5, 0x2c, 0x47, + 0x2d, 0x56, 0x18, 0x3f, 0x6a, 0x8b, 0xe3, 0xd2, + 0xef, 0x58, 0xcd, 0x8a, 0x5e, 0x9c, 0xc8, 0xe2, + 0x81, 0x81, 0x6d, 0x88, 0x37, 0x72, 0x1d, 0x44, + 0xea, 0x4c, 0x64, 0x97, 0x2c, 0xbd, 0x4a, 0xab, + 0xdb, 0x7c, 0x4f, 0xc0, 0x5f, 0x0c, 0x43, 0x71, + 0x06, 0xc4, 0x1f, 0x2c, 0x08, 0x84, 0x3d, 0x45, + 0xe0, 0xe3, 0x45, 0x91, 0x64, 0xed, 0x5e, 0x08, + 0x03, 0xd6, 0x82, 0xe0, 0xde, 0x22, 0x4a, 0x4e, + 0x03, 0x89, 0xd4, 0xf8, 0x6c, 0xc8, 0xb8, 0x3c, + 0xaf, 0x22, 0x54, 0xa4, 0xa5, 0x6c, 0x09, 0x16, + 0x09, 0x4b, 0x15, 0x31, 0x18, 0x94, 0x10, 0x94, + 0x4c, 0x8e, 0x3b, 0xf4, 0xf5, 0x3a, 0xd7, 0x7a, + 0x36, 0xdb, 0x94, 0xdf, 0x60, 0x08, 0xd8, 0x36, + 0xc2, 0xd9, 0x21, 0x30, 0x56, 0xd8, 0x3c, 0x40, + 0xc7, 0x18, 0x8d, 0x8e, 0x5f, 0x24, 0x0b, 0x89, + 0x09, 0xf1, 0x11, 0x23, 0x69, 0xda, 0x02, 0x27, + 0x9c, 0x06, 0x56, 0xc7, 0xea, 0x35, 0x16, 0xc2, + 0x54, 0x6c, 0x21, 0x12, 0x36, 0x17, 0xcb, 0x10, + 0x18, 0x76, 0xd0, 0x3b, 0xc7, 0x1a, 0x37, 0x15, + 0xe0, 0xe0, 0x5b, 0x56, 0xd9, 0x8f, 0x87, 0x34, + 0xaf, 0x54, 0xc1, 0x2f, 0x93, 0x52, 0xa9, 0x38, + 0x6f, 0xdb, 0xe7, 0xbe, 0x2c, 0x51, 0x1e, 0x5c, + 0x4d, 0x90, 0x93, 0x33, 0xc3, 0x97, 0xce, 0x5e, + 0xb9, 0x3b, 0xc6, 0x5a, 0x66, 0x8f, 0xdc, 0x69, + 0xf5, 0xa9, 0x26, 0xb2, 0x82, 0xf5, 0x75, 0x91, + 0x88, 0xa2, 0xd1, 0xdc, 0xb0, 0x13, 0x01, 0x62, + 0xa0, 0xd8, 0x28, 0xaf, 0xcd, 0x3d, 0xd4, 0xa6, + 0xb1, 0x0c, 0x0a, 0xc4, 0x08, 0x87, 0xcc, 0xea, + 0x08, 0xaa, 0x15, 0xd8, 0x6c, 0x4d, 0x4b, 0x40, + 0xb7, 0x2e, 0x76, 0xb0, 0x99, 0x88, 0x07, 0x2e, + 0x0a, 0xa1, 0x4e, 0x0e, 0x12, 0x93, 0x2e, 0xdc, + 0xaa, 0x44, 0x1f, 0x82, 0x27, 0x8f, 0x81, 0xd3, + 0x28, 0x9b, 0x6c, 0x12, 0x0b, 0x50, 0x90, 0x64, + 0x1b, 0x60, 0x92, 0xcf, 0x36, 0xfc, 0x48, 0x12, + 0xbf, 0x3e, 0x50, 0x88, 0xdd, 0x93, 0xb4, 0xae, + 0x67, 0xcf, 0xb5, 0x09, 0xd3, 0xff, 0x00, 0xba, + 0xeb, 0x57, 0x1f, 0x1e, 0x68, 0xbf, 0xea, 0x42, + 0x3f, 0xa3, 0xfa, 0xce, 0x62, 0x37, 0xfd, 0x51, + 0xbe, 0xe5, 0x3b, 0x08, 0xee, 0x53, 0x11, 0xd5, + 0x4f, 0x84, 0x6a, 0xd3, 0x15, 0x6b, 0x42, 0xba, + 0x34, 0x0a, 0xa4, 0xcd, 0x71, 0x4d, 0x26, 0xd2, + 0xc0, 0x5c, 0xd5, 0xfa, 0xf3, 0x99, 0x29, 0x51, + 0xc9, 0x0c, 0xac, 0x48, 0x73, 0x3e, 0x5f, 0xa4, + 0xcf, 0x57, 0x75, 0xad, 0x63, 0x8e, 0xdd, 0x04, + 0xeb, 0xda, 0xb2, 0xb9, 0x44, 0xd0, 0x7c, 0x01, + 0x6c, 0x54, 0x9a, 0xf7, 0x91, 0x3c, 0x92, 0x06, + 0x26, 0x62, 0x5c, 0x2f, 0x89, 0xc1, 0xde, 0xe4, + 0x29, 0xa6, 0x43, 0x31, 0xd5, 0xed, 0x5f, 0x40, + 0x85, 0xaa, 0x95, 0x64, 0x21, 0x4e, 0x64, 0x9a, + 0x39, 0xb5, 0x3e, 0xd9, 0x37, 0x65, 0xf0, 0xc1, + 0x02, 0x99, 0x1c, 0x95, 0x64, 0x14, 0x47, 0x19, + 0xb1, 0x0a, 0x81, 0x36, 0x63, 0x18, 0x6f, 0x31, + 0xa7, 0x8d, 0xd3, 0x89, 0xad, 0x0d, 0xba, 0x18, + 0x62, 0xb8, 0x85, 0xfa, 0x9b, 0xc8, 0xaf, 0x7d, + 0x6d, 0x42, 0x7e, 0xb0, 0xe7, 0x08, 0x63, 0xbc, + 0xce, 0x01, 0xf9, 0xf7, 0x45, 0x68, 0x3b, 0x8b, + 0x16, 0xbb, 0x24, 0x32, 0xd5, 0x7d, 0x52, 0xc8, + 0xd7, 0x1a, 0xb2, 0x96, 0xcc, 0xaa, 0x2a, 0xd7, + 0xc1, 0x82, 0x5c, 0x92, 0x01, 0x5e, 0xaf, 0x76, + 0x60, 0xbe, 0x52, 0xec, 0x94, 0x64, 0x2f, 0x0a, + 0xe2, 0x9b, 0xd5, 0x2a, 0xa8, 0xdc, 0xc3, 0x60, + 0xf6, 0x5a, 0xab, 0x17, 0x16, 0x5c, 0x4b, 0x9e, + 0x6a, 0xc0, 0xad, 0x32, 0x5a, 0x29, 0x34, 0x1d, + 0x70, 0x1a, 0x60, 0xcb, 0x76, 0x92, 0x4a, 0x22, + 0x64, 0x7b, 0x83, 0xd6, 0x96, 0x95, 0xcd, 0x9d, + 0x71, 0xba, 0xb6, 0x99, 0x61, 0x8d, 0xab, 0xa6, + 0x1c, 0xd7, 0xba, 0x6a, 0x95, 0xbc, 0x48, 0x01, + 0xef, 0xca, 0x64, 0x13, 0xc1, 0x16, 0x25, 0xbb, + 0x2a, 0x62, 0x15, 0xb8, 0x4a, 0x8c, 0x20, 0xc7, + 0x45, 0x58, 0xfc, 0x31, 0xab, 0x5b, 0xee, 0x9d, + 0xaa, 0xa8, 0xd5, 0xc9, 0x55, 0x91, 0x7a, 0x29, + 0x39, 0xcd, 0x05, 0xd3, 0xe6, 0xaa, 0x50, 0x82, + 0xa5, 0x2b, 0x8e, 0xf5, 0x78, 0x8c, 0x3f, 0x8e, + 0xc4, 0x33, 0x30, 0x61, 0x61, 0xa3, 0xfd, 0x87, + 0xe2, 0x4b, 0x1f, 0x6b, 0xb2, 0x9a, 0xeb, 0xef, + 0xcc, 0x1c, 0x73, 0x49, 0x1a, 0x8d, 0x75, 0xc6, + 0x98, 0x24, 0x81, 0x1a, 0xe9, 0xa3, 0x50, 0xce, + 0xad, 0xea, 0xb1, 0xb2, 0xd8, 0x1e, 0xde, 0xdc, + 0x6c, 0xd8, 0x34, 0xc3, 0xb1, 0xa2, 0x7c, 0x45, + 0x72, 0x35, 0x13, 0xd4, 0x52, 0xcb, 0x67, 0xc4, + 0xb9, 0xd5, 0xdc, 0x0f, 0x31, 0x51, 0xd3, 0x82, + 0xa7, 0xdc, 0x2b, 0xb3, 0xe3, 0x40, 0x76, 0x87, + 0xc6, 0x51, 0x00, 0x61, 0xbc, 0x81, 0x4f, 0x5a, + 0x74, 0x4e, 0x83, 0xaf, 0x9c, 0xb1, 0x37, 0x6b, + 0x33, 0x16, 0x08, 0xf7, 0x57, 0x97, 0xcb, 0x22, + 0x68, 0xfb, 0x18, 0x42, 0xcd, 0x13, 0xb6, 0x54, + 0xfc, 0x11, 0x4c, 0x7d, 0x59, 0x25, 0xea, 0xaf, + 0x6b, 0x51, 0x2d, 0x61, 0x0a, 0xac, 0x9b, 0x1f, + 0x3a, 0xd5, 0xb5, 0x16, 0xb2, 0xce, 0xe1, 0x56, + 0x61, 0x70, 0xaa, 0x83, 0x35, 0x63, 0xed, 0x50, + 0xd7, 0x55, 0x40, 0x53, 0xdf, 0xea, 0xc1, 0x82, + 0xe3, 0x19, 0x97, 0xc6, 0x9f, 0x4f, 0x4b, 0x26, + 0xcd, 0x2a, 0x54, 0x59, 0x58, 0x51, 0x6d, 0x5f, + 0x7e, 0xc3, 0x89, 0xc5, 0x6a, 0xef, 0x0a, 0x8d, + 0xc1, 0xdc, 0x3b, 0x92, 0x27, 0x3d, 0xe4, 0xd4, + 0x20, 0xb5, 0x41, 0x18, 0x28, 0x67, 0xa4, 0xdf, + 0xb7, 0x23, 0xf3, 0x07, 0x9b, 0x56, 0x98, 0x28, + 0x84, 0xdc, 0x05, 0xaf, 0x3b, 0x32, 0x8a, 0xdc, + 0x90, 0xbf, 0xb6, 0xd8, 0x6b, 0x03, 0xc6, 0x42, + 0xe5, 0xaa, 0xd2, 0x48, 0x65, 0x7c, 0xa8, 0x64, + 0x57, 0x73, 0x56, 0x53, 0x55, 0xdc, 0xbc, 0xba, + 0x71, 0x48, 0xa9, 0x77, 0xb4, 0xd8, 0xdc, 0x2c, + 0xd7, 0x69, 0xb8, 0x25, 0x56, 0x22, 0x55, 0x5c, + 0x95, 0x0c, 0x78, 0xb7, 0x16, 0xaf, 0x75, 0x8c, + 0x18, 0x88, 0xf5, 0xa7, 0xd3, 0xd1, 0x00, 0x6c, + 0xe8, 0xfa, 0xdd, 0xd6, 0xf7, 0x56, 0xed, 0x69, + 0x3d, 0xc3, 0x34, 0x77, 0x88, 0x8a, 0xac, 0x2e, + 0xe4, 0x54, 0x6a, 0xd5, 0xc4, 0x09, 0x6a, 0x65, + 0x44, 0x6c, 0x5a, 0x1e, 0x9b, 0x5b, 0x48, 0x01, + 0x4b, 0x52, 0x34, 0x40, 0xae, 0xc5, 0x85, 0x6a, + 0xa9, 0x7e, 0x87, 0xa6, 0x59, 0x9d, 0x40, 0xab, + 0x28, 0x08, 0x94, 0x96, 0xa6, 0xac, 0xf1, 0x91, + 0x48, 0x2f, 0x8e, 0xcd, 0x66, 0xa1, 0x0c, 0xda, + 0xbb, 0xb2, 0xc6, 0x47, 0x65, 0x16, 0xce, 0xca, + 0xbb, 0x0d, 0x95, 0xdb, 0x2a, 0x05, 0xa9, 0x41, + 0x62, 0x1e, 0xd4, 0x0f, 0x33, 0x40, 0x65, 0x63, + 0x21, 0x18, 0x56, 0x8e, 0xe3, 0x17, 0x4a, 0xf9, + 0x13, 0xf8, 0x70, 0x45, 0xe9, 0xe9, 0xa9, 0xb6, + 0x8b, 0x15, 0x2d, 0x41, 0x66, 0x68, 0xe2, 0x18, + 0x80, 0xe4, 0xf7, 0x06, 0x20, 0x46, 0x64, 0x44, + 0x62, 0x0b, 0xc0, 0xef, 0xe9, 0x8f, 0x13, 0xd2, + 0x6c, 0xdd, 0xd2, 0x7e, 0x34, 0xb2, 0x23, 0xa1, + 0xa6, 0xc2, 0xec, 0x02, 0x6b, 0x61, 0xdd, 0x3e, + 0x25, 0xcc, 0x67, 0xf2, 0x7d, 0x8a, 0xad, 0xa6, + 0x94, 0xb2, 0xb3, 0xb2, 0x93, 0x80, 0x28, 0x19, + 0xaa, 0xdd, 0xa2, 0x67, 0x67, 0xfc, 0x3f, 0xf1, + 0x90, 0x12, 0xb4, 0xda, 0xc0, 0xae, 0x40, 0xaa, + 0x32, 0x8b, 0xa4, 0x39, 0xf1, 0x9f, 0xd9, 0x06, + 0x49, 0x6e, 0xf5, 0x92, 0xd8, 0xcc, 0x4f, 0x13, + 0x8c, 0xa9, 0x16, 0x03, 0x96, 0xaf, 0x52, 0xce, + 0x99, 0xf1, 0x7d, 0x4a, 0xd6, 0x15, 0x5e, 0x20, + 0x2a, 0x90, 0x1d, 0x76, 0x5c, 0x89, 0x92, 0xad, + 0x5b, 0x50, 0x1e, 0xd5, 0x20, 0xd1, 0x3c, 0x9f, + 0x2a, 0xdc, 0xa6, 0x06, 0x4f, 0x28, 0xa6, 0x5f, + 0x9d, 0xc5, 0x86, 0x9f, 0xf1, 0x95, 0x55, 0xa1, + 0x09, 0x21, 0xf6, 0xd3, 0x01, 0x57, 0x54, 0x64, + 0x44, 0x12, 0x2c, 0xab, 0x8c, 0x20, 0xe1, 0xd2, + 0x26, 0x2a, 0x7e, 0x69, 0x38, 0xdf, 0xc5, 0x2f, + 0x44, 0x89, 0x57, 0x81, 0xd3, 0x7e, 0x2b, 0x5f, + 0x07, 0x67, 0x0f, 0x3b, 0x14, 0xea, 0xc8, 0xa3, + 0x53, 0x63, 0x17, 0xb2, 0x5b, 0x82, 0xd3, 0x20, + 0xad, 0xb1, 0x25, 0x58, 0x92, 0x03, 0xf5, 0x14, + 0x95, 0x33, 0x9f, 0x25, 0x43, 0xfb, 0xbe, 0xb5, + 0x11, 0xae, 0x24, 0x6f, 0xe1, 0x8e, 0x10, 0x08, + 0x89, 0x32, 0x6c, 0x30, 0x24, 0x20, 0x62, 0x62, + 0x62, 0x4a, 0x4a, 0x23, 0x6d, 0xe2, 0x63, 0xf5, + 0xc6, 0xdd, 0x7c, 0xde, 0x33, 0x4e, 0xad, 0x3a, + 0xf6, 0xa0, 0x44, 0xf6, 0x71, 0xcb, 0x17, 0x7e, + 0xc3, 0x2c, 0xef, 0x5e, 0xe0, 0xf0, 0x76, 0xbc, + 0x46, 0x04, 0x83, 0xa8, 0xaa, 0xa9, 0x63, 0xf9, + 0x5b, 0x63, 0x9e, 0x78, 0x8a, 0xb8, 0xa6, 0xee, + 0x92, 0xea, 0xed, 0x5e, 0x8b, 0x71, 0xf5, 0x74, + 0x83, 0x38, 0xd3, 0xeb, 0x33, 0x3b, 0xb4, 0xb1, + 0xc0, 0x40, 0x05, 0x38, 0xac, 0xce, 0x25, 0xad, + 0x9b, 0x50, 0xa9, 0x7c, 0xec, 0xa6, 0x11, 0xf3, + 0xc6, 0xf3, 0xf2, 0xcd, 0x35, 0x4c, 0x65, 0x09, + 0xd4, 0xb6, 0xe6, 0x1a, 0x92, 0x0c, 0x9d, 0x55, + 0x94, 0x46, 0xbd, 0x9a, 0x90, 0x4f, 0x58, 0x48, + 0xe2, 0x2a, 0x31, 0x8d, 0x87, 0x0c, 0x02, 0x59, + 0x0d, 0x2f, 0x3d, 0x22, 0x67, 0x4f, 0xb0, 0x33, + 0xcb, 0x3a, 0x62, 0xb8, 0xeb, 0xad, 0x51, 0x2f, + 0x44, 0x30, 0x89, 0x05, 0xc6, 0x2b, 0x82, 0x70, + 0x08, 0x36, 0x58, 0x6c, 0xdc, 0xa6, 0x00, 0xb2, + 0x39, 0x80, 0xf1, 0xf0, 0xf4, 0x4a, 0x9d, 0x21, + 0x3a, 0xc6, 0xa0, 0x7a, 0x8d, 0x43, 0x12, 0x16, + 0x5d, 0x34, 0x57, 0xae, 0x67, 0xa5, 0xdd, 0xd8, + 0x38, 0x99, 0x51, 0x6e, 0xd2, 0xed, 0x60, 0x99, + 0x98, 0x78, 0x93, 0x66, 0x7c, 0x88, 0x67, 0x3f, + 0x0f, 0x91, 0x1c, 0xdb, 0x57, 0xcf, 0xb5, 0x39, + 0xd4, 0x02, 0xc4, 0x3b, 0xf8, 0xcd, 0x34, 0xd2, + 0x10, 0xbd, 0x35, 0xfb, 0x44, 0x94, 0xa2, 0x89, + 0xe9, 0x4f, 0x1a, 0xc2, 0x6b, 0x96, 0x2d, 0x6d, + 0xdf, 0x6d, 0xd4, 0x51, 0xd2, 0x98, 0xa4, 0xdf, + 0x59, 0x12, 0xed, 0xe9, 0xda, 0x63, 0x72, 0x7d, + 0x82, 0x07, 0xd0, 0x93, 0x97, 0x45, 0x16, 0xc4, + 0x23, 0xb6, 0x19, 0x62, 0x1c, 0xb0, 0x8d, 0xa4, + 0x10, 0xb3, 0x78, 0x96, 0xf8, 0x11, 0xc0, 0x59, + 0xaa, 0x3a, 0x8d, 0x6b, 0x77, 0xbb, 0x9e, 0xc8, + 0x2a, 0x52, 0x25, 0x88, 0xd9, 0x59, 0xba, 0x6f, + 0x26, 0xbb, 0xd8, 0xd1, 0x34, 0x4a, 0x0e, 0xb8, + 0x8b, 0x1e, 0x8c, 0x8c, 0xc0, 0x9e, 0x19, 0x14, + 0x01, 0x89, 0xe9, 0xef, 0x42, 0x2f, 0x83, 0x1e, + 0xcb, 0x5c, 0x07, 0x5a, 0x0a, 0xb7, 0x22, 0xd3, + 0x88, 0x5c, 0x1a, 0x58, 0x84, 0x0a, 0xcc, 0x71, + 0x78, 0xbc, 0xa6, 0x08, 0x58, 0x5e, 0xa9, 0x19, + 0xf5, 0x64, 0x90, 0x0a, 0xd6, 0xda, 0x89, 0x23, + 0x3d, 0x3b, 0x92, 0x48, 0x9a, 0x2b, 0x5b, 0x1a, + 0x36, 0x22, 0x8a, 0xd9, 0x3e, 0xa0, 0x23, 0xfe, + 0x59, 0xc4, 0x92, 0xf5, 0x80, 0x49, 0x61, 0x13, + 0xea, 0xa4, 0x6b, 0xaf, 0x79, 0x67, 0x69, 0x77, + 0xdd, 0x5e, 0x53, 0x50, 0xe0, 0x64, 0x17, 0x13, + 0xbf, 0x66, 0xb5, 0x4a, 0xe2, 0x16, 0x47, 0x30, + 0xa7, 0x63, 0x01, 0x0b, 0x83, 0x19, 0x11, 0x38, + 0xf1, 0xd4, 0xd4, 0xb7, 0xa6, 0x6a, 0x3d, 0xa6, + 0xaf, 0x54, 0xb8, 0x66, 0xa2, 0x65, 0x98, 0xd7, + 0x4b, 0x93, 0x61, 0xb7, 0x12, 0x83, 0xe2, 0x87, + 0x4a, 0xec, 0x22, 0xa4, 0x18, 0x8b, 0x53, 0x2c, + 0x49, 0xb0, 0x61, 0x90, 0xc3, 0x49, 0x74, 0x16, + 0x74, 0xca, 0xef, 0xd6, 0x35, 0x2b, 0x50, 0xed, + 0x43, 0x4a, 0x95, 0xe9, 0xd7, 0xaa, 0xd4, 0xaa, + 0x98, 0x02, 0x59, 0x36, 0x7b, 0xc3, 0xe5, 0xb4, + 0xa5, 0x43, 0xc4, 0x86, 0xa4, 0xd7, 0x35, 0x93, + 0x21, 0x1c, 0x96, 0xdc, 0xa9, 0x24, 0x58, 0xa4, + 0x56, 0x75, 0x0e, 0xce, 0xcc, 0x69, 0x72, 0x0e, + 0x4d, 0xaa, 0xf7, 0xae, 0x8d, 0xa8, 0xee, 0x3b, + 0xa7, 0xea, 0x94, 0x1d, 0xa7, 0x55, 0xbd, 0xca, + 0x17, 0x8c, 0xd6, 0xeb, 0x16, 0x20, 0x14, 0xc1, + 0x6b, 0x38, 0x24, 0x8d, 0x2c, 0x4e, 0x4b, 0xdb, + 0x5c, 0xa2, 0xee, 0x7a, 0x2c, 0x72, 0x60, 0xf4, + 0xdf, 0x89, 0x99, 0xf6, 0x23, 0xfa, 0xd8, 0x4c, + 0x4e, 0x8b, 0xe9, 0x11, 0x26, 0x89, 0xac, 0xc7, + 0xfa, 0xc6, 0x01, 0x44, 0x4c, 0x9c, 0x6f, 0x51, + 0x3f, 0x0e, 0xaf, 0x55, 0x58, 0x2a, 0x9e, 0xa5, + 0x7e, 0x2e, 0x88, 0x82, 0x5b, 0xa8, 0x0d, 0xe1, + 0xac, 0xb8, 0xb7, 0xc2, 0xd5, 0x3f, 0x1d, 0x3c, + 0x17, 0x57, 0x4f, 0x90, 0x02, 0x9e, 0xe0, 0xf7, + 0x29, 0xc9, 0x24, 0xe0, 0xe3, 0xd0, 0x59, 0x62, + 0x8e, 0xa6, 0x8d, 0x17, 0x4f, 0x65, 0x4d, 0x71, + 0x74, 0x0b, 0x3b, 0xb2, 0xa5, 0x66, 0xb2, 0xb7, + 0x79, 0x2c, 0x3f, 0x7d, 0xa0, 0x50, 0xcc, 0x6b, + 0xe6, 0xcd, 0xc1, 0x64, 0xa0, 0x0c, 0x66, 0x77, + 0x9f, 0xb3, 0x87, 0xc5, 0x0a, 0xb0, 0xe5, 0xb7, + 0x51, 0x0d, 0xc9, 0xeb, 0x86, 0x56, 0xf5, 0x95, + 0x4b, 0xbc, 0x89, 0x85, 0x63, 0x58, 0xe6, 0x6b, + 0x44, 0xb5, 0xa3, 0x2e, 0x85, 0xb6, 0x56, 0xcf, + 0x40, 0x6e, 0xd2, 0x65, 0xa5, 0xfc, 0x48, 0xd9, + 0xec, 0x12, 0xff, 0x00, 0xbb, 0x99, 0x05, 0x64, + 0x96, 0x33, 0x69, 0x6e, 0xc4, 0xd6, 0xca, 0x86, + 0x32, 0xb0, 0x4e, 0x31, 0x88, 0xab, 0xdd, 0x13, + 0x23, 0x60, 0x2e, 0x14, 0x40, 0xbf, 0x89, 0x18, + 0xcf, 0x93, 0xa7, 0x22, 0x17, 0x6a, 0x49, 0x81, + 0xd1, 0x8c, 0x6a, 0x43, 0xe1, 0xb1, 0x31, 0x0c, + 0xed, 0x0b, 0x3b, 0x86, 0xa1, 0xae, 0x50, 0x9d, + 0xb8, 0x84, 0x97, 0xee, 0x64, 0x22, 0x5a, 0x3c, + 0xeb, 0x63, 0x5f, 0xf8, 0x3e, 0xa1, 0x67, 0x31, + 0xdd, 0x92, 0x1d, 0x31, 0xc3, 0xf6, 0x84, 0x89, + 0x1e, 0xc4, 0x5a, 0x79, 0xe5, 0xf7, 0x60, 0x41, + 0x5e, 0xb9, 0x11, 0x1c, 0x20, 0x48, 0x9b, 0x5e, + 0xdd, 0x1b, 0x56, 0x0c, 0xf4, 0x74, 0x02, 0x1b, + 0x61, 0xb7, 0x13, 0x34, 0x74, 0xcd, 0xa4, 0x2b, + 0xb3, 0x7c, 0xe1, 0x3d, 0x8c, 0x49, 0xae, 0x64, + 0x2c, 0x09, 0x27, 0xdb, 0x0f, 0xb9, 0x19, 0x6e, + 0x43, 0x37, 0xb5, 0x96, 0x0a, 0xfe, 0x1b, 0x0e, + 0x73, 0x7a, 0x9b, 0x5a, 0x02, 0x97, 0x2a, 0xc6, + 0x6b, 0xa8, 0x6b, 0xcd, 0xc1, 0xbd, 0xa6, 0x70, + 0x72, 0x48, 0x72, 0x3a, 0x95, 0x7b, 0x01, 0xbf, + 0xba, 0xb8, 0xc7, 0x2a, 0xb6, 0x57, 0x3a, 0x8a, + 0x6d, 0x1e, 0x99, 0xdc, 0x47, 0x1d, 0xdd, 0x40, + 0x78, 0x6a, 0x81, 0x3b, 0xb6, 0xa3, 0xc3, 0x3a, + 0x7b, 0x33, 0xd3, 0x4c, 0x17, 0x5b, 0x18, 0x5b, + 0x99, 0x52, 0x36, 0x60, 0x4d, 0xed, 0xa6, 0x21, + 0x74, 0x7f, 0xf6, 0xcf, 0xff, 0x00, 0xde, 0xad, + 0xd3, 0xf5, 0xfd, 0xa1, 0x52, 0xbf, 0x6d, 0xd3, + 0x5d, 0x9e, 0x76, 0xdf, 0x07, 0xc4, 0x14, 0xa4, + 0xbf, 0xb2, 0xc8, 0x89, 0x91, 0x9f, 0x31, 0xd3, + 0xb6, 0x1b, 0x38, 0xce, 0xb8, 0x37, 0xc3, 0xf8, + 0xe6, 0xd1, 0xcc, 0x51, 0x18, 0xda, 0x44, 0xcf, + 0x83, 0x62, 0xbf, 0xf5, 0x98, 0xb3, 0xf8, 0x9e, + 0x62, 0x39, 0xb6, 0x8f, 0x3b, 0xf1, 0x5a, 0xfe, + 0x7b, 0xf9, 0x8e, 0xff, 0x00, 0x37, 0xb1, 0x1f, + 0x63, 0xc7, 0x69, 0x8f, 0x2b, 0xdf, 0xe6, 0x1b, + 0xff, 0x00, 0x9c, 0x6f, 0x9e, 0xde, 0x39, 0xf6, + 0xe8, 0x27, 0x8a, 0xe6, 0xf1, 0xad, 0x1e, 0xa1, + 0xe3, 0x59, 0x74, 0x7d, 0x8f, 0x19, 0x81, 0x8f, + 0xc3, 0xde, 0x35, 0x0f, 0x3e, 0x6c, 0x6f, 0x9e, + 0x39, 0x47, 0x37, 0xab, 0xc2, 0x27, 0x8f, 0x50, + 0xdd, 0x7a, 0xcb, 0x75, 0x09, 0x91, 0xd6, 0x99, + 0xe2, 0x9c, 0x81, 0xc2, 0xf0, 0xf6, 0xc6, 0x63, + 0x51, 0x89, 0x91, 0xcd, 0xfb, 0xc1, 0x1c, 0x72, + 0x7b, 0xde, 0xbf, 0x4d, 0x69, 0xc3, 0x52, 0xf6, + 0x35, 0x6b, 0x57, 0xcb, 0x6d, 0x68, 0xff, 0x00, + 0x93, 0x37, 0x3e, 0x1e, 0x2d, 0x94, 0x38, 0x6a, + 0x1b, 0xc8, 0x4b, 0xdd, 0x12, 0x32, 0x7b, 0x37, + 0xdc, 0xf7, 0x23, 0x0a, 0x12, 0x35, 0xaf, 0xa4, + 0x6b, 0x5c, 0xb3, 0x69, 0xa2, 0x9d, 0x69, 0xd3, + 0x1c, 0x6c, 0x5c, 0x82, 0xda, 0x8c, 0xe2, 0x49, + 0x7a, 0x83, 0x4f, 0x16, 0xdc, 0x31, 0x35, 0x89, + 0x91, 0x3a, 0x02, 0x60, 0x58, 0x30, 0xba, 0x26, + 0xd4, 0xea, 0x1b, 0xd7, 0xb7, 0x7a, 0xc3, 0xf8, + 0xb5, 0x31, 0x5e, 0xca, 0x74, 0x10, 0xd6, 0x9a, + 0x82, 0x09, 0x08, 0x55, 0xad, 0xb8, 0xe6, 0xe1, + 0xc7, 0x1c, 0xb8, 0xb9, 0x66, 0x4c, 0xa5, 0xbb, + 0x8e, 0x99, 0x92, 0x35, 0x28, 0xed, 0x1d, 0xa8, + 0xb6, 0xc7, 0x16, 0xab, 0x1f, 0x72, 0xd4, 0xb3, + 0xb7, 0x9a, 0x5b, 0x87, 0xb4, 0xe9, 0xdc, 0x3b, + 0xc9, 0xdd, 0x7c, 0xb3, 0xc9, 0x3b, 0x96, 0x71, + 0x23, 0xa5, 0xb1, 0x95, 0xf5, 0x05, 0x76, 0x9d, + 0xef, 0x72, 0x35, 0x35, 0x25, 0x2a, 0x06, 0x1d, + 0x12, 0x35, 0xe6, 0x84, 0x42, 0xe3, 0x89, 0x86, + 0x38, 0x95, 0xf9, 0xf4, 0x4b, 0xd9, 0xc8, 0x52, + 0x47, 0x9f, 0x5a, 0x63, 0x5e, 0xad, 0x4f, 0x3a, + 0xab, 0xbd, 0xdd, 0xca, 0x35, 0x34, 0x86, 0xd3, + 0x63, 0xc2, 0x3b, 0x0c, 0x54, 0x10, 0xa8, 0x90, + 0xdb, 0xbc, 0x8c, 0x43, 0x92, 0x7c, 0xcf, 0x27, + 0x99, 0x9d, 0x2a, 0x58, 0x9d, 0x53, 0xec, 0x75, + 0xef, 0x05, 0xae, 0x1d, 0x51, 0x71, 0x22, 0x76, + 0x4a, 0x78, 0x63, 0x4f, 0x9c, 0x07, 0x89, 0x45, + 0x13, 0xf6, 0xa1, 0xf4, 0xe7, 0x3b, 0x7d, 0xfd, + 0xa7, 0x7d, 0x2f, 0x91, 0x1a, 0xb7, 0xd9, 0x29, + 0x5c, 0x4d, 0x9e, 0x1d, 0x55, 0x51, 0x8b, 0x2c, + 0x4e, 0xea, 0x1d, 0x3f, 0xd2, 0x3c, 0x55, 0x8a, + 0x37, 0x8b, 0x01, 0x38, 0xe5, 0xe8, 0xf0, 0x58, + 0xce, 0xf4, 0x48, 0x6b, 0x6b, 0x49, 0x4d, 0x7a, + 0x17, 0x2b, 0x9a, 0xd5, 0xac, 0x28, 0xe5, 0x0c, + 0x79, 0x64, 0xa4, 0xd1, 0x33, 0x11, 0x98, 0xa7, + 0xb6, 0xe2, 0xd1, 0x2c, 0x64, 0xbd, 0xa9, 0x98, + 0x2c, 0x4b, 0x2d, 0x3f, 0x34, 0xeb, 0x7b, 0x56, + 0xd2, 0x5f, 0x4d, 0xfc, 0x5a, 0xad, 0x6f, 0x45, + 0x96, 0xcc, 0x48, 0xae, 0x8f, 0xd2, 0x17, 0x42, + 0x7d, 0x59, 0xaf, 0xc4, 0xf8, 0x56, 0xe2, 0x58, + 0x16, 0x54, 0xf3, 0x4e, 0xb9, 0x1c, 0x1a, 0x33, + 0x69, 0x3f, 0x8b, 0x54, 0xab, 0xe9, 0xb4, 0xc9, + 0x1d, 0x95, 0x53, 0xe9, 0x8e, 0x9d, 0xf7, 0xb7, + 0x5c, 0xed, 0xf4, 0x4e, 0xe3, 0xe9, 0x2d, 0xea, + 0xe4, 0x9d, 0x7a, 0x38, 0xb4, 0x33, 0xa2, 0xde, + 0x3d, 0x4e, 0xa7, 0xa6, 0xd9, 0x61, 0xec, 0xd6, + 0xf5, 0x46, 0x3a, 0x67, 0x89, 0xf6, 0xfc, 0x4f, + 0x84, 0xe4, 0x3e, 0x99, 0xe9, 0x19, 0x27, 0x5f, + 0x1e, 0x3d, 0x06, 0x68, 0x33, 0x8f, 0x53, 0xa7, + 0xbc, 0x5d, 0x2c, 0x3d, 0x84, 0xfa, 0xbc, 0x69, + 0x7e, 0x27, 0x15, 0xcf, 0xf6, 0x53, 0x94, 0x7a, + 0x67, 0xa5, 0x6e, 0xbd, 0x7c, 0x65, 0x7f, 0x0f, + 0xfc, 0xbc, 0xb6, 0xd4, 0xa9, 0xef, 0xde, 0xce, + 0x3f, 0x67, 0x0f, 0x56, 0xdf, 0x2b, 0xf4, 0xce, + 0xcb, 0xfd, 0x8b, 0xca, 0x23, 0x62, 0xe9, 0x0a, + 0x94, 0x6b, 0x41, 0x09, 0xd0, 0x8a, 0x8c, 0x92, + 0xef, 0x53, 0x17, 0x15, 0xe6, 0xf0, 0xe7, 0x5a, + 0x58, 0x07, 0xee, 0x69, 0x01, 0x0a, 0xf6, 0x56, + 0x53, 0xe8, 0xdf, 0xee, 0xc6, 0xe5, 0xb7, 0xdc, + 0xf8, 0x87, 0xfa, 0x3c, 0x3a, 0x7f, 0xf3, 0x8d, + 0x4f, 0xe5, 0xde, 0x9d, 0xeb, 0x47, 0xab, 0xf9, + 0xab, 0xc7, 0xa0, 0x3e, 0xbe, 0x07, 0x2d, 0xba, + 0xfc, 0x3f, 0x88, 0x7f, 0xa3, 0xcb, 0xd3, 0xa7, + 0xf8, 0xc6, 0xa6, 0xfd, 0xf7, 0x8e, 0x4a, 0xde, + 0x96, 0x7f, 0x36, 0x6d, 0x13, 0x84, 0x7d, 0x76, + 0x88, 0xcb, 0x6e, 0x99, 0xec, 0x6b, 0xf3, 0x13, + 0xf0, 0xf2, 0xb4, 0xf8, 0xde, 0xf5, 0x4d, 0xca, + 0xf8, 0x63, 0xf6, 0x52, 0xf7, 0xbc, 0xe9, 0x63, + 0x1f, 0x85, 0xfa, 0x5e, 0x3d, 0x45, 0xf4, 0xe8, + 0xe9, 0x76, 0x9a, 0xdc, 0xff, 0x00, 0x12, 0x2a, + 0xb2, 0xad, 0x77, 0x74, 0xe2, 0xd7, 0x7d, 0xc5, + 0xc6, 0xdd, 0x34, 0xda, 0x2e, 0xd9, 0xba, 0x29, + 0x6c, 0xa9, 0x58, 0xba, 0x18, 0x6a, 0x95, 0xec, + 0xa6, 0x2e, 0x18, 0xc8, 0x3a, 0x8f, 0x64, 0x7c, + 0x47, 0x2a, 0x4e, 0x97, 0x4a, 0xa9, 0x19, 0x5d, + 0xa2, 0x45, 0x17, 0x10, 0x7b, 0xcd, 0x3f, 0xc6, + 0xde, 0x74, 0x9d, 0xa7, 0xe9, 0xf7, 0xfe, 0xbe, + 0xaf, 0xd6, 0x95, 0xb0, 0x30, 0x28, 0x93, 0xf4, + 0xed, 0xb4, 0x7d, 0x7f, 0x2f, 0xd9, 0xff, 0x00, + 0x40, 0xfa, 0x47, 0x5f, 0x48, 0xeb, 0xe9, 0x1f, + 0xbb, 0xaf, 0xa4, 0x7e, 0xee, 0xbe, 0x91, 0xfb, + 0xa3, 0xaf, 0xa4, 0x7e, 0xee, 0xbe, 0x91, 0xfb, + 0xba, 0xfa, 0x47, 0xee, 0xeb, 0xe9, 0x1f, 0xbb, + 0xaf, 0xa4, 0x7e, 0xef, 0xfb, 0xd5, 0xff, 0xc4, + 0x00, 0x29, 0x10, 0x01, 0x00, 0x03, 0x00, 0x02, + 0x01, 0x01, 0x08, 0x03, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, 0x21, 0x31, + 0x41, 0x51, 0x10, 0x20, 0x30, 0x61, 0x71, 0x91, + 0xb1, 0xe1, 0xf0, 0x81, 0xa1, 0xd1, 0x40, 0xc1, + 0xf1, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, + 0x01, 0x3f, 0x21, 0xf6, 0x00, 0xf5, 0x04, 0x10, + 0x41, 0x04, 0x10, 0x41, 0x04, 0x10, 0x41, 0x03, + 0x7e, 0xf1, 0x04, 0x10, 0x7a, 0x04, 0x10, 0x41, + 0x04, 0x10, 0x41, 0xea, 0x02, 0x07, 0xdd, 0x80, + 0x92, 0x48, 0x20, 0x92, 0x08, 0x20, 0x82, 0x0f, + 0x40, 0xbd, 0x01, 0x84, 0x0f, 0xb9, 0x0f, 0xd7, + 0xef, 0xde, 0x1e, 0xc0, 0x10, 0x41, 0x04, 0x10, + 0x41, 0x07, 0xa0, 0x3d, 0x02, 0xf4, 0x06, 0xfd, + 0xc8, 0x0f, 0x50, 0x41, 0x04, 0x10, 0x42, 0xf4, + 0x08, 0x3d, 0x02, 0x84, 0x28, 0x31, 0x7b, 0x1a, + 0xc5, 0x72, 0x34, 0xae, 0xd5, 0x1a, 0x4d, 0x81, + 0x50, 0x2a, 0x70, 0x6b, 0xf9, 0x7e, 0xd5, 0x9d, + 0xd6, 0x7c, 0x29, 0x7f, 0x8b, 0x37, 0xf7, 0x8b, + 0xa7, 0xab, 0x47, 0x68, 0x35, 0xc5, 0x3c, 0x4a, + 0xe6, 0xae, 0x7e, 0xb1, 0x3d, 0xcf, 0x9b, 0x35, + 0x04, 0x81, 0x1d, 0xc5, 0x7a, 0x3b, 0x86, 0xeb, + 0xd2, 0xd6, 0x5f, 0xd4, 0x40, 0x21, 0x53, 0x94, + 0x56, 0x0d, 0x55, 0x68, 0xe8, 0xb2, 0x3d, 0xea, + 0x73, 0x5d, 0x0c, 0xbc, 0xc0, 0xb2, 0xde, 0xbc, + 0x95, 0x26, 0x17, 0x53, 0x89, 0xd7, 0x47, 0x61, + 0x38, 0x72, 0x42, 0x56, 0xbe, 0xa1, 0x5b, 0x1f, + 0x1c, 0x29, 0x71, 0x95, 0x90, 0x1b, 0x24, 0xa4, + 0x84, 0x05, 0x4c, 0x5e, 0x5f, 0xe7, 0xa0, 0x4c, + 0xaf, 0x2d, 0x80, 0xcf, 0x20, 0x43, 0x60, 0xc5, + 0x81, 0xe0, 0x76, 0xe5, 0x77, 0xb9, 0x4b, 0x64, + 0x24, 0x82, 0xd4, 0x4a, 0xe3, 0x1d, 0x8e, 0x41, + 0x0c, 0xf4, 0xfd, 0xbb, 0x10, 0xc0, 0xc5, 0x97, + 0x9b, 0x8d, 0x43, 0x1c, 0x14, 0x50, 0x5b, 0x2c, + 0x7b, 0xc0, 0x62, 0x82, 0x8a, 0x2a, 0x6a, 0xd8, + 0xdf, 0x70, 0x38, 0x8a, 0xa9, 0xc0, 0xf0, 0x54, + 0xa7, 0x6a, 0x17, 0x85, 0x13, 0xad, 0x5d, 0x39, + 0xa3, 0x01, 0xe7, 0x70, 0x27, 0x5d, 0x16, 0x11, + 0xdd, 0x83, 0x30, 0x00, 0xd7, 0x78, 0xd6, 0x51, + 0x5e, 0x80, 0x4c, 0xfc, 0xa3, 0x18, 0x12, 0x62, + 0x26, 0x2a, 0x06, 0x99, 0xce, 0xd1, 0x28, 0xda, + 0xff, 0x00, 0xc8, 0x21, 0x58, 0x30, 0x54, 0xb9, + 0x86, 0x03, 0x23, 0x4c, 0x2b, 0x88, 0x1d, 0xc2, + 0x84, 0xe7, 0x9c, 0x48, 0x59, 0x75, 0x68, 0x5d, + 0x96, 0xdc, 0x85, 0x28, 0xe8, 0x39, 0x39, 0x21, + 0x67, 0x99, 0x4d, 0xa9, 0x9d, 0x8d, 0x57, 0x86, + 0xf8, 0x49, 0xba, 0x97, 0xfb, 0xce, 0xb7, 0xeb, + 0xf9, 0x86, 0xad, 0x83, 0x95, 0x23, 0x7f, 0x7a, + 0xe7, 0xeb, 0x1d, 0x9e, 0xe8, 0x1b, 0x83, 0x3e, + 0x53, 0x9a, 0x19, 0xc7, 0xa9, 0x1f, 0x50, 0x22, + 0x06, 0x69, 0x07, 0x5a, 0x4f, 0x0a, 0xd5, 0x9f, + 0xe0, 0xb9, 0x21, 0x28, 0xc0, 0x10, 0xd8, 0xc7, + 0x18, 0xc7, 0xfb, 0x3d, 0x87, 0x03, 0x59, 0x27, + 0xde, 0x07, 0x40, 0x37, 0x62, 0xa2, 0x2c, 0xc7, + 0x51, 0xf5, 0x2b, 0xd9, 0x3b, 0xe4, 0xc3, 0xe2, + 0xa0, 0x6b, 0x64, 0x09, 0x6b, 0xd2, 0x6a, 0x1a, + 0x02, 0x98, 0xb1, 0xe3, 0x77, 0xd5, 0xb4, 0xca, + 0xfa, 0xdd, 0xc6, 0x4e, 0x24, 0x98, 0xc3, 0xdf, + 0x6c, 0x89, 0x4f, 0xc1, 0x60, 0xef, 0x32, 0x32, + 0x05, 0xc6, 0xff, 0x00, 0x91, 0x1c, 0x24, 0x94, + 0xd9, 0x12, 0x65, 0x2c, 0x01, 0x0c, 0x5d, 0xea, + 0x7b, 0x15, 0x2a, 0x90, 0xaa, 0xad, 0xc0, 0xf0, + 0x70, 0x35, 0xdf, 0x39, 0x77, 0xc1, 0x15, 0xb0, + 0x0a, 0x77, 0xde, 0xec, 0xf5, 0x0d, 0x42, 0x14, + 0xc4, 0x9c, 0xff, 0x00, 0x71, 0x95, 0x71, 0x4c, + 0xa0, 0xf6, 0xe7, 0x20, 0xe7, 0x3c, 0x35, 0x3d, + 0x1d, 0xf8, 0x11, 0x69, 0x44, 0x26, 0xa4, 0xe9, + 0x02, 0xd5, 0xd8, 0x0a, 0x16, 0x99, 0x1e, 0x9a, + 0x55, 0xd8, 0xf1, 0xe6, 0x41, 0x0b, 0x6c, 0x8c, + 0x49, 0xd1, 0x61, 0x6b, 0x5c, 0x92, 0xd2, 0x0a, + 0x20, 0x81, 0xc5, 0x56, 0x01, 0x65, 0x60, 0x97, + 0xfc, 0x22, 0x2a, 0xff, 0x00, 0x13, 0x41, 0x31, + 0x5b, 0xc3, 0x7e, 0xd3, 0x21, 0xe8, 0x81, 0xc6, + 0x95, 0x5e, 0x3a, 0xd2, 0x98, 0x52, 0xa1, 0xc8, + 0x15, 0xa7, 0x95, 0x68, 0xe0, 0x2d, 0xa3, 0x25, + 0x44, 0x39, 0x4b, 0xc9, 0x9a, 0xfe, 0xbf, 0xe0, + 0xf8, 0x40, 0xde, 0x9b, 0xe7, 0x96, 0xdf, 0x3f, + 0xd7, 0xf3, 0xe2, 0x31, 0x2c, 0xeb, 0x9b, 0xcb, + 0xff, 0x00, 0x9c, 0xbc, 0x6b, 0x36, 0x60, 0x10, + 0x01, 0xbe, 0x74, 0x7c, 0x2d, 0x07, 0x5f, 0x10, + 0x4c, 0x98, 0xa5, 0x18, 0xc0, 0xd5, 0x21, 0x11, + 0x7f, 0xa8, 0x50, 0x78, 0x40, 0xec, 0xd2, 0x7e, + 0xb2, 0x46, 0x58, 0x08, 0x92, 0x54, 0x7a, 0x04, + 0x1b, 0x0d, 0xc5, 0x93, 0x33, 0xe6, 0x18, 0x37, + 0x86, 0x5b, 0x0c, 0x2c, 0x0e, 0xc3, 0xa0, 0xd4, + 0x10, 0x08, 0xdd, 0xa0, 0x20, 0xd8, 0xaf, 0xcf, + 0x0d, 0x69, 0xda, 0x8a, 0xd6, 0x3a, 0x7b, 0x06, + 0x30, 0x09, 0x52, 0x43, 0xe7, 0xf3, 0xb8, 0xb8, + 0x52, 0x01, 0xfc, 0x91, 0xfb, 0x01, 0x0a, 0x1a, + 0x75, 0x4a, 0x66, 0x01, 0x43, 0x66, 0x6a, 0xc4, + 0x17, 0x2b, 0xf2, 0xde, 0xdc, 0x2d, 0x62, 0xcf, + 0x4c, 0x58, 0x4e, 0x5c, 0xbb, 0x75, 0xb3, 0x18, + 0xec, 0x82, 0xb5, 0x17, 0x3f, 0x74, 0x06, 0xc6, + 0x2c, 0x49, 0xca, 0x13, 0xb8, 0x30, 0x09, 0x0d, + 0xd0, 0xac, 0x47, 0x0c, 0xea, 0xc7, 0x78, 0x55, + 0x6d, 0xd4, 0x00, 0x2c, 0x14, 0x15, 0xdc, 0x5e, + 0x01, 0xd2, 0x10, 0xf6, 0x6d, 0xb1, 0xe5, 0x31, + 0x1f, 0x59, 0x2b, 0xb3, 0x34, 0xa0, 0x2c, 0x65, + 0x12, 0x16, 0x14, 0xab, 0x3b, 0xeb, 0x0b, 0xa5, + 0x47, 0x58, 0x94, 0xc4, 0xd5, 0x7f, 0x3b, 0x80, + 0xae, 0x7d, 0x67, 0x95, 0xb7, 0x13, 0x1d, 0x52, + 0x5a, 0xa1, 0xd8, 0x9a, 0x86, 0xa2, 0xf2, 0x63, + 0x17, 0xc8, 0xc2, 0x65, 0xb4, 0x3c, 0x9c, 0xa6, + 0xbc, 0x34, 0x02, 0x0b, 0x15, 0x08, 0x56, 0xb3, + 0x0b, 0x6d, 0x45, 0x5a, 0x31, 0xd0, 0x25, 0x0d, + 0x05, 0x8d, 0xd4, 0x74, 0xd8, 0x69, 0xda, 0x1e, + 0x12, 0xef, 0x6b, 0xf0, 0xf3, 0xd7, 0xcb, 0x8f, + 0xac, 0xab, 0xd9, 0x7b, 0x7d, 0x77, 0x5e, 0x5f, + 0xcd, 0xc1, 0xe2, 0x77, 0xb3, 0x2a, 0xae, 0x68, + 0xd0, 0x51, 0x20, 0xd3, 0x8f, 0x37, 0x23, 0xef, + 0x6a, 0x16, 0x2a, 0xdc, 0x44, 0x61, 0xca, 0xdb, + 0x13, 0x61, 0xd0, 0x9c, 0x2e, 0x5f, 0x10, 0x8a, + 0xd7, 0x46, 0xda, 0x0a, 0x5b, 0x64, 0xdf, 0xbd, + 0xd4, 0xe0, 0xe7, 0xf7, 0x5a, 0x24, 0x73, 0xd6, + 0x5d, 0x61, 0x01, 0x4c, 0x81, 0x5a, 0x74, 0xa6, + 0xe9, 0xc5, 0xb1, 0xd2, 0xd8, 0xbd, 0xd8, 0x60, + 0x95, 0x79, 0x02, 0x8d, 0xb0, 0x61, 0x26, 0x84, + 0xa3, 0x5f, 0x8a, 0x36, 0x20, 0x36, 0xda, 0x9a, + 0xd4, 0x8b, 0x7a, 0x43, 0xed, 0xc8, 0xde, 0xb9, + 0x32, 0xd9, 0xc3, 0xea, 0x56, 0x38, 0x24, 0x8c, + 0x5c, 0x3e, 0x54, 0x56, 0x20, 0x74, 0xf2, 0x11, + 0x21, 0xd9, 0xde, 0xde, 0x75, 0x88, 0xc4, 0xdd, + 0xca, 0xa3, 0xf6, 0xc5, 0x05, 0xca, 0xce, 0x00, + 0xe0, 0x40, 0xae, 0x99, 0x00, 0x28, 0xa4, 0xf4, + 0x5c, 0xcf, 0xec, 0x94, 0x47, 0xe0, 0x3c, 0xbd, + 0x48, 0xc7, 0x46, 0xa6, 0xae, 0x60, 0x58, 0x33, + 0x34, 0x11, 0xab, 0x77, 0xb8, 0x92, 0x84, 0x29, + 0x1e, 0x14, 0x2b, 0xa6, 0xf1, 0x16, 0x13, 0xe6, + 0x43, 0xc2, 0x7f, 0xf5, 0x92, 0xab, 0x64, 0x64, + 0xc2, 0x92, 0xb2, 0xc8, 0x11, 0x56, 0x4e, 0x8a, + 0x2f, 0xe7, 0xb0, 0x11, 0xad, 0x83, 0xa0, 0xc7, + 0x42, 0xab, 0xc0, 0xa6, 0x75, 0xc7, 0xc3, 0xbb, + 0xac, 0xfa, 0x7b, 0x65, 0xe4, 0xb2, 0x64, 0x85, + 0xd3, 0x2d, 0x90, 0x6d, 0x66, 0xf4, 0x88, 0x2d, + 0x98, 0xbe, 0x96, 0x34, 0x86, 0x9b, 0x8b, 0x2d, + 0xe5, 0x62, 0xb3, 0x9b, 0x21, 0x70, 0xd0, 0x8c, + 0x36, 0x93, 0x29, 0x83, 0x17, 0xa2, 0xb4, 0x3c, + 0x45, 0xd5, 0xf4, 0xc1, 0x8b, 0xdc, 0xf6, 0xda, + 0x2f, 0x5e, 0xc8, 0x52, 0x3a, 0xb4, 0xe4, 0x4d, + 0x64, 0x85, 0x18, 0x1b, 0x21, 0x07, 0x92, 0xc6, + 0x74, 0x19, 0xf5, 0xd0, 0x05, 0x99, 0x56, 0x30, + 0x03, 0xc5, 0x57, 0x06, 0x31, 0x58, 0x51, 0x62, + 0x3d, 0x48, 0x0b, 0x19, 0xc8, 0xe6, 0x05, 0x61, + 0xd2, 0xb0, 0x84, 0x02, 0x8a, 0x6d, 0x55, 0x89, + 0x2f, 0x00, 0xda, 0x67, 0x89, 0xf9, 0x65, 0x36, + 0x80, 0x87, 0xd2, 0x65, 0xb4, 0xd6, 0xa2, 0x63, + 0x5c, 0x61, 0xc8, 0x2d, 0x2b, 0x54, 0x4c, 0xed, + 0x46, 0x68, 0xf6, 0xc1, 0x14, 0x1c, 0x39, 0x40, + 0x7f, 0xe4, 0x58, 0xb8, 0x62, 0x94, 0xd3, 0x71, + 0x2d, 0xb3, 0x40, 0x29, 0x39, 0x8b, 0x35, 0x06, + 0xc4, 0xe9, 0x6c, 0xbe, 0x54, 0x2d, 0x88, 0xd0, + 0x52, 0x20, 0xf0, 0xf2, 0x88, 0xd0, 0xa9, 0x48, + 0x33, 0x6e, 0xa1, 0xea, 0xec, 0x9b, 0xf6, 0x48, + 0x54, 0x55, 0x97, 0x08, 0x40, 0x23, 0xf3, 0xe6, + 0xec, 0x56, 0xec, 0x77, 0x6e, 0x47, 0x02, 0x05, + 0xc5, 0x91, 0xde, 0x08, 0x77, 0xad, 0xb7, 0x5d, + 0x77, 0xb9, 0x4a, 0x78, 0x2d, 0xef, 0x1d, 0xcc, + 0x69, 0xc2, 0xf9, 0x34, 0x05, 0xfa, 0x84, 0x9a, + 0x7c, 0xa8, 0x3e, 0x8a, 0x20, 0x65, 0x8f, 0xca, + 0x2e, 0xeb, 0x7a, 0x20, 0x5d, 0xa4, 0x8f, 0x5e, + 0x0c, 0x71, 0x5b, 0xb1, 0x41, 0x7b, 0x80, 0x5a, + 0x8c, 0x38, 0xf4, 0x04, 0x70, 0xb9, 0xe1, 0xef, + 0x3e, 0x4b, 0x78, 0x5c, 0x94, 0xb4, 0x74, 0x75, + 0x1b, 0xfb, 0x63, 0x22, 0x34, 0x67, 0x6a, 0x0e, + 0x9c, 0x2e, 0xe8, 0x24, 0x9d, 0xca, 0x61, 0xea, + 0x06, 0xdc, 0x7d, 0x5a, 0x9d, 0xb9, 0x0d, 0xd1, + 0xc5, 0x09, 0xdd, 0x29, 0x0e, 0x74, 0x96, 0x54, + 0x0f, 0xc8, 0x29, 0x02, 0xd4, 0x8d, 0xcd, 0xec, + 0x18, 0x38, 0xd0, 0x52, 0x9c, 0x57, 0x91, 0x23, + 0x1c, 0xb0, 0x0c, 0x81, 0x54, 0xd1, 0x73, 0x2a, + 0xb5, 0xa8, 0x98, 0xe4, 0xd6, 0x4a, 0x5a, 0x9b, + 0x63, 0x66, 0x82, 0xb4, 0x24, 0x0d, 0x23, 0x28, + 0xfb, 0xda, 0xa0, 0xf0, 0x72, 0x10, 0x20, 0x87, + 0x93, 0xde, 0xd6, 0x85, 0x57, 0xb2, 0x00, 0x58, + 0x51, 0xa8, 0x84, 0x14, 0x03, 0x70, 0xc3, 0x23, + 0x1f, 0x30, 0x82, 0x21, 0xfa, 0x0e, 0xdc, 0x1a, + 0xd2, 0x1c, 0x32, 0x35, 0x28, 0x85, 0x15, 0x52, + 0x00, 0xfd, 0x5b, 0x09, 0x30, 0xb5, 0x45, 0xcc, + 0x1d, 0xc6, 0x38, 0x39, 0x6c, 0x30, 0x24, 0x38, + 0x1f, 0xe2, 0x7d, 0x13, 0xbf, 0x49, 0x5b, 0x18, + 0x13, 0x0e, 0xd8, 0xc3, 0x23, 0x46, 0x84, 0xf0, + 0x91, 0x0d, 0x34, 0xb4, 0x2a, 0x81, 0x74, 0x82, + 0xc3, 0x08, 0xaf, 0xbd, 0x64, 0x12, 0x2e, 0x99, + 0x79, 0x9a, 0x6a, 0xd7, 0x8a, 0xed, 0x23, 0xc5, + 0x68, 0x20, 0x36, 0x95, 0x4e, 0x7f, 0x22, 0x3b, + 0xf3, 0x2b, 0x10, 0x8a, 0xc4, 0xf2, 0x40, 0xd8, + 0x9c, 0x98, 0x20, 0x96, 0x4d, 0x28, 0x25, 0x6d, + 0x78, 0x12, 0x58, 0xbc, 0x96, 0xb9, 0x33, 0x52, + 0x2a, 0xe9, 0x36, 0xc9, 0x43, 0xb0, 0x46, 0x22, + 0x37, 0x32, 0x48, 0x1e, 0x42, 0x1b, 0x2b, 0x26, + 0xa9, 0x40, 0xda, 0x5a, 0xe7, 0xf2, 0x72, 0xaa, + 0xac, 0x8c, 0x13, 0x3f, 0x29, 0xf7, 0x66, 0xd4, + 0xc2, 0x35, 0x80, 0x0a, 0x4b, 0x8d, 0x78, 0x80, + 0xfe, 0xe5, 0xb5, 0x0f, 0x2f, 0x4e, 0x03, 0x39, + 0x95, 0x4d, 0xa0, 0x0c, 0x92, 0x74, 0x60, 0x63, + 0x41, 0x25, 0xde, 0xba, 0x24, 0xb3, 0x11, 0x0c, + 0x42, 0x25, 0xa3, 0x8a, 0x1a, 0x42, 0x13, 0x65, + 0x06, 0xcb, 0x0e, 0x2b, 0x45, 0x2c, 0x4d, 0x35, + 0x8e, 0x9a, 0x42, 0xae, 0x71, 0x64, 0x8e, 0xaa, + 0xc6, 0x53, 0xc1, 0x95, 0x8d, 0x19, 0x32, 0x3b, + 0x07, 0x70, 0xcf, 0x68, 0x4f, 0x89, 0x43, 0xc2, + 0xdc, 0x60, 0x4c, 0xe3, 0xec, 0x2b, 0xa2, 0x1c, + 0x16, 0xad, 0xa2, 0xca, 0x21, 0x29, 0xd4, 0x6b, + 0x29, 0x5e, 0xb7, 0x9a, 0x02, 0xf4, 0xc5, 0x60, + 0xf1, 0x93, 0xb6, 0xf8, 0xf8, 0xa6, 0x6e, 0x86, + 0xe5, 0x9e, 0x20, 0xa5, 0x0d, 0x65, 0x80, 0x3a, + 0x18, 0x32, 0x0a, 0xc1, 0xbb, 0x14, 0x56, 0x6b, + 0x55, 0x05, 0x84, 0xcb, 0xf7, 0x49, 0x2d, 0xa0, + 0x97, 0x0e, 0x11, 0x24, 0x4a, 0x2d, 0x92, 0xdd, + 0x2e, 0x22, 0xd7, 0x34, 0x64, 0xc1, 0xb0, 0x63, + 0xac, 0x8d, 0xe9, 0x28, 0x7e, 0xa8, 0x60, 0x6c, + 0x77, 0x62, 0x7c, 0x8f, 0x2e, 0xd5, 0x82, 0xd6, + 0x22, 0xa5, 0x83, 0x42, 0xbb, 0x01, 0x9b, 0x61, + 0x54, 0xb1, 0x83, 0x18, 0x2c, 0x54, 0xac, 0x44, + 0x28, 0x12, 0xc1, 0x22, 0xa5, 0xbc, 0xfc, 0xf9, + 0xb8, 0x73, 0x48, 0xd9, 0xc4, 0xff, 0x00, 0x7d, + 0x1b, 0x0c, 0x88, 0xb0, 0x70, 0x77, 0x56, 0xf7, + 0x16, 0x29, 0x78, 0x99, 0xa5, 0x2a, 0x4e, 0x09, + 0x8c, 0x45, 0x02, 0x28, 0x75, 0x0f, 0x60, 0x86, + 0x50, 0x8c, 0xe6, 0x96, 0xc1, 0xe2, 0x39, 0xed, + 0x81, 0x82, 0xcd, 0xff, 0x00, 0x51, 0xf7, 0xd8, + 0x3d, 0x81, 0x8e, 0x58, 0xf0, 0x89, 0x57, 0x61, + 0x87, 0x2b, 0xbb, 0x2f, 0x91, 0xd9, 0x05, 0x54, + 0x68, 0x4b, 0x88, 0x51, 0xbe, 0xd2, 0x75, 0xaf, + 0x30, 0x18, 0x1c, 0xd2, 0xfb, 0xf6, 0xf5, 0x94, + 0x38, 0x35, 0x3b, 0xa2, 0x39, 0x06, 0x87, 0x9a, + 0x4b, 0x96, 0xd7, 0x48, 0xd5, 0xbe, 0xc8, 0x34, + 0xf8, 0xc6, 0xeb, 0xbb, 0x54, 0x41, 0xee, 0xcd, + 0x94, 0x03, 0xb6, 0xc4, 0xc2, 0x76, 0x8d, 0x67, + 0x34, 0x2e, 0x19, 0x46, 0x60, 0x1e, 0x05, 0x0e, + 0xe0, 0xcf, 0xfa, 0x71, 0x56, 0x37, 0x1c, 0xfe, + 0x19, 0x9a, 0x98, 0x42, 0xa4, 0xb4, 0xc2, 0x0f, + 0x05, 0xd1, 0x03, 0x2e, 0xa0, 0x28, 0x3d, 0xd4, + 0xb9, 0x9b, 0x3b, 0x21, 0xb3, 0x4a, 0x05, 0xb2, + 0x63, 0xc3, 0x87, 0x5d, 0x9f, 0x5e, 0xed, 0x60, + 0x84, 0xed, 0xc3, 0x51, 0xb0, 0xc1, 0x2b, 0x35, + 0xb0, 0x50, 0x57, 0x37, 0xe4, 0xd6, 0x19, 0x49, + 0x85, 0x53, 0x30, 0xec, 0x03, 0x2a, 0x19, 0x18, + 0xa9, 0x4e, 0xf9, 0x02, 0x21, 0xad, 0xda, 0x9d, + 0xaf, 0x8a, 0xb9, 0xaf, 0xf2, 0x15, 0x52, 0x01, + 0x3a, 0xd2, 0x40, 0xd8, 0x45, 0x42, 0x8a, 0x8a, + 0x9b, 0x92, 0xe0, 0x6c, 0x9c, 0x16, 0xb4, 0xa3, + 0x1d, 0xb8, 0xe8, 0x03, 0xa1, 0xa3, 0x5e, 0x24, + 0x8a, 0x31, 0x3d, 0x5e, 0xd5, 0x2b, 0x6c, 0xec, + 0xbb, 0x86, 0x95, 0xd2, 0x80, 0xc3, 0xaa, 0x00, + 0xb4, 0x37, 0x42, 0x9d, 0x19, 0xfa, 0x06, 0x19, + 0x19, 0xec, 0x6b, 0x64, 0xdb, 0x87, 0x40, 0x49, + 0xb5, 0xe5, 0x64, 0x2d, 0xd5, 0x0e, 0x51, 0x60, + 0xbd, 0x39, 0x83, 0xda, 0x9b, 0xa0, 0x74, 0xcf, + 0x29, 0xf7, 0x7c, 0x8b, 0xfb, 0x80, 0x2f, 0x10, + 0x34, 0xd4, 0xea, 0x0e, 0xe9, 0x0f, 0x80, 0xc1, + 0x99, 0xca, 0x42, 0xa8, 0x20, 0x2a, 0xa1, 0x8f, + 0xe3, 0x40, 0x5b, 0x67, 0x7e, 0x3b, 0x5e, 0x16, + 0xc8, 0x48, 0xf4, 0xef, 0x4d, 0x2c, 0x6b, 0xa1, + 0xdf, 0x4b, 0x84, 0x38, 0xa9, 0x7f, 0x62, 0x60, + 0x1a, 0x4a, 0x24, 0x8a, 0x72, 0x40, 0x2a, 0xa6, + 0xba, 0x17, 0x8f, 0x73, 0x8d, 0x20, 0x10, 0x58, + 0x8d, 0x46, 0xca, 0xea, 0x09, 0x60, 0xee, 0xdb, + 0x6c, 0x99, 0x81, 0xb1, 0x42, 0xd3, 0x12, 0x15, + 0xf0, 0x52, 0xed, 0x74, 0xe5, 0x84, 0xc2, 0x16, + 0x74, 0x29, 0x8e, 0x2b, 0x98, 0xb3, 0xe0, 0x8b, + 0x41, 0x36, 0x1e, 0xa2, 0x8f, 0x75, 0x05, 0x8d, + 0x55, 0x98, 0x30, 0x45, 0xcb, 0x7d, 0xa9, 0xa6, + 0xfa, 0x29, 0xda, 0x4c, 0x12, 0x00, 0x81, 0x50, + 0x95, 0x80, 0x54, 0xa7, 0x04, 0xb0, 0x08, 0xb8, + 0x68, 0xa8, 0xb5, 0x97, 0xec, 0xdf, 0x1e, 0xad, + 0x63, 0x64, 0x5c, 0xc4, 0xe8, 0x53, 0x76, 0x10, + 0xb5, 0x5a, 0x20, 0x3a, 0x46, 0x52, 0xc9, 0x8e, + 0xf4, 0x6c, 0x5a, 0xa4, 0x69, 0x24, 0x55, 0x9b, + 0x3f, 0xe9, 0xa4, 0xb9, 0x9c, 0x36, 0x67, 0x2a, + 0x93, 0xaa, 0xc2, 0x47, 0xb6, 0xaf, 0x63, 0xbe, + 0xa1, 0x90, 0xa2, 0xcc, 0x71, 0xf6, 0xa5, 0xd2, + 0x08, 0xf7, 0x1b, 0x9b, 0x28, 0xa4, 0xa0, 0x2a, + 0x99, 0x41, 0x22, 0x31, 0x6f, 0x89, 0xab, 0x51, + 0x26, 0x82, 0x60, 0x99, 0x1b, 0xd2, 0x36, 0x78, + 0xe9, 0x12, 0x37, 0x0f, 0x0a, 0x78, 0xa0, 0xe7, + 0x00, 0x24, 0x01, 0x69, 0x63, 0xa6, 0x1a, 0x5c, + 0x02, 0x85, 0xb1, 0xb1, 0x72, 0xec, 0x17, 0x87, + 0xf4, 0x5e, 0x59, 0xb3, 0x0c, 0xc9, 0x78, 0x90, + 0x2e, 0xec, 0x37, 0x31, 0x3e, 0xc7, 0xe9, 0xe5, + 0xcc, 0xfa, 0xe4, 0xa6, 0x92, 0x56, 0x09, 0x36, + 0x8d, 0xde, 0x39, 0x99, 0xde, 0x52, 0x31, 0x22, + 0x0c, 0x12, 0xbb, 0x29, 0x4f, 0x1d, 0xe7, 0xe6, + 0xf3, 0x20, 0x48, 0x8a, 0x34, 0xd6, 0x07, 0x96, + 0x30, 0xa0, 0x48, 0x4b, 0xb3, 0xc8, 0xff, 0x00, + 0x61, 0x66, 0x8b, 0x62, 0x5f, 0xe0, 0x07, 0x09, + 0x32, 0x30, 0xbe, 0xc7, 0x3d, 0x8d, 0x77, 0xb0, + 0x12, 0x14, 0x1c, 0xa6, 0xa1, 0x24, 0xf1, 0x54, + 0xe3, 0x61, 0x65, 0x40, 0xfa, 0x53, 0xcf, 0x52, + 0x03, 0x5c, 0x1d, 0x68, 0xd4, 0x02, 0x47, 0xa0, + 0xdf, 0x7a, 0x8e, 0x1e, 0x75, 0x0b, 0x69, 0x44, + 0x89, 0x44, 0x81, 0xae, 0x17, 0x6e, 0xf8, 0x80, + 0xaa, 0x64, 0xb2, 0xce, 0x42, 0x04, 0xfd, 0x9b, + 0xc0, 0x1a, 0x49, 0xf8, 0xd9, 0x3a, 0x8b, 0x1a, + 0xfa, 0xab, 0x01, 0x55, 0xf1, 0x0a, 0xab, 0x4a, + 0xa1, 0x38, 0x27, 0x56, 0x5b, 0x05, 0x51, 0x84, + 0x41, 0x33, 0x18, 0xfe, 0xab, 0x40, 0x71, 0x99, + 0x96, 0x50, 0x69, 0x18, 0x7b, 0x47, 0xa5, 0x59, + 0xb1, 0x83, 0xab, 0xb5, 0xcd, 0x4b, 0xb6, 0x05, + 0x59, 0x01, 0xd4, 0x16, 0x3f, 0xc1, 0x61, 0x3c, + 0x6e, 0xca, 0xe3, 0x14, 0x7f, 0x21, 0x86, 0x02, + 0xca, 0x4a, 0x8d, 0xaa, 0x6b, 0x1d, 0x01, 0x0b, + 0x8b, 0xb8, 0xd3, 0x0c, 0xd1, 0x72, 0x85, 0xaf, + 0x9a, 0xfb, 0x98, 0x03, 0x3c, 0x54, 0xd3, 0x71, + 0x3c, 0x54, 0xd0, 0xbe, 0x4b, 0xa2, 0xb1, 0x5b, + 0x0c, 0x50, 0x65, 0x6c, 0x86, 0x2b, 0x1d, 0x6f, + 0x17, 0x6b, 0xfa, 0xd8, 0xc4, 0xf2, 0x14, 0x8f, + 0x69, 0x00, 0x38, 0xd5, 0x96, 0x22, 0x05, 0xeb, + 0x10, 0xef, 0x58, 0x20, 0x8a, 0x34, 0x46, 0x1a, + 0x16, 0xc7, 0xee, 0xc1, 0x02, 0xbb, 0x93, 0x04, + 0xca, 0x79, 0xc4, 0x4a, 0x05, 0xea, 0x04, 0x14, + 0x3c, 0x9e, 0x54, 0xc7, 0xb0, 0x13, 0x15, 0x9c, + 0xc9, 0x52, 0xf5, 0x07, 0x2e, 0x0d, 0x2e, 0xa1, + 0xd5, 0x12, 0x02, 0xf6, 0x95, 0x1d, 0xc9, 0x59, + 0x6d, 0xb6, 0xc0, 0x03, 0x47, 0x2b, 0x13, 0xf5, + 0x7b, 0x2b, 0x83, 0x98, 0x51, 0xc7, 0x7b, 0x83, + 0xaf, 0x91, 0x36, 0x40, 0x8a, 0x75, 0x72, 0x26, + 0x60, 0x52, 0x3c, 0x28, 0xb8, 0x60, 0xca, 0x9a, + 0xef, 0x04, 0xad, 0xd2, 0x76, 0x08, 0x10, 0xfb, + 0xac, 0xe6, 0xa9, 0x06, 0xd0, 0xa1, 0x07, 0x37, + 0xb6, 0xe1, 0xaa, 0xa5, 0x57, 0x24, 0x20, 0x02, + 0xd3, 0x9a, 0x33, 0xf0, 0x54, 0xba, 0xd4, 0x91, + 0xdb, 0x5c, 0x92, 0x3a, 0x48, 0x0d, 0xb1, 0xa8, + 0x0a, 0xa6, 0xa8, 0x3d, 0x95, 0x0e, 0xa4, 0x80, + 0x89, 0x1a, 0x21, 0xd8, 0x57, 0x69, 0xa2, 0x85, + 0x4b, 0x25, 0x35, 0xc6, 0xd5, 0x89, 0x18, 0x15, + 0x6d, 0x4e, 0x1b, 0x0c, 0x07, 0x7b, 0x01, 0x65, + 0xc0, 0x0c, 0x10, 0x32, 0x54, 0xee, 0x53, 0x48, + 0x1c, 0xc9, 0xe7, 0xe2, 0x9d, 0x1c, 0x0a, 0xc2, + 0x3a, 0x24, 0x2c, 0x2b, 0x34, 0xb6, 0xd8, 0x56, + 0x05, 0x39, 0x89, 0x88, 0xeb, 0x66, 0xcc, 0xad, + 0x83, 0xa4, 0xc7, 0xaf, 0x72, 0x6f, 0xb8, 0xb4, + 0xe1, 0xb7, 0x3d, 0xc1, 0x26, 0x81, 0xfc, 0x00, + 0xb7, 0x04, 0x2e, 0xc4, 0x38, 0x80, 0x0e, 0xf2, + 0xda, 0x50, 0x24, 0xf8, 0x3e, 0x0f, 0x7e, 0x11, + 0x94, 0x21, 0x61, 0x50, 0x90, 0xaf, 0xd1, 0xc1, + 0x3a, 0x93, 0x17, 0xb4, 0x38, 0x1b, 0xe8, 0x0d, + 0x58, 0x5c, 0x8c, 0x33, 0x80, 0xbd, 0xfc, 0x04, + 0x68, 0xa0, 0x56, 0x4e, 0x9b, 0xa0, 0x89, 0xdf, + 0x4d, 0x46, 0x5b, 0x42, 0xe8, 0xa0, 0xae, 0x0a, + 0x90, 0xf2, 0x32, 0x8d, 0xe3, 0x9c, 0xdc, 0x05, + 0x17, 0xc4, 0x43, 0x68, 0xb9, 0x22, 0x08, 0xac, + 0xd0, 0x21, 0x62, 0x5a, 0x22, 0x66, 0xb4, 0x35, + 0x2f, 0x80, 0x30, 0xbb, 0x7d, 0xbc, 0x60, 0x57, + 0x0d, 0x47, 0x1b, 0x99, 0x8a, 0x6f, 0x42, 0x52, + 0xfa, 0x25, 0x41, 0x45, 0x57, 0x43, 0x65, 0x02, + 0xe9, 0x0b, 0xe8, 0x2b, 0x31, 0x6b, 0x4a, 0x58, + 0xd8, 0xb1, 0x00, 0x2e, 0x37, 0x4c, 0xd1, 0xd7, + 0x90, 0xac, 0xb0, 0x14, 0xb6, 0xfe, 0x48, 0xd8, + 0x65, 0x86, 0xd2, 0x49, 0xcd, 0x8a, 0xbe, 0xd6, + 0x96, 0xa2, 0x49, 0x21, 0x36, 0xb3, 0x45, 0x19, + 0xbf, 0xbd, 0x47, 0xd4, 0xd4, 0x93, 0xcc, 0x8e, + 0x0b, 0xb6, 0x8b, 0x8a, 0x10, 0xa2, 0xf3, 0x2e, + 0x29, 0x30, 0x88, 0x5a, 0xeb, 0x42, 0x61, 0xab, + 0x5b, 0xc9, 0x33, 0x56, 0x04, 0xe6, 0xab, 0xd0, + 0x10, 0x4e, 0x72, 0x05, 0xc6, 0xe0, 0x0b, 0x3d, + 0x7c, 0x01, 0x31, 0xd1, 0x04, 0x00, 0x66, 0x21, + 0x66, 0x0e, 0x8e, 0xaa, 0xf5, 0xb2, 0xda, 0xbd, + 0x30, 0x55, 0x9d, 0xd4, 0xdd, 0x68, 0x28, 0xae, + 0xb0, 0xd2, 0x00, 0x1c, 0x0a, 0x5b, 0xa5, 0x29, + 0x57, 0x60, 0xa2, 0x7f, 0x38, 0xa5, 0x9c, 0x37, + 0x2a, 0x21, 0x5c, 0x15, 0x04, 0xda, 0x87, 0xb0, + 0xa8, 0xdd, 0xfa, 0xd0, 0xb3, 0xa1, 0x00, 0xd7, + 0x3a, 0x81, 0x84, 0xf5, 0x2a, 0x63, 0x8a, 0xf7, + 0xb2, 0x28, 0x58, 0x14, 0xac, 0x5d, 0xc2, 0x37, + 0xc2, 0xad, 0xb8, 0x8b, 0x82, 0xc2, 0x34, 0xc1, + 0x61, 0x48, 0x6e, 0x52, 0x18, 0xb3, 0xc4, 0x13, + 0xc4, 0x44, 0x51, 0x0f, 0x52, 0x9e, 0x09, 0x4f, + 0x12, 0x9e, 0x09, 0x4f, 0x07, 0xd2, 0x0f, 0x81, + 0x29, 0xf0, 0x9f, 0x21, 0xf4, 0x80, 0xf0, 0x7d, + 0x08, 0x07, 0xa3, 0xe8, 0x4f, 0xc0, 0x09, 0xf8, + 0x04, 0xfc, 0x31, 0x3f, 0x0f, 0x7f, 0x93, 0xf7, + 0x47, 0xda, 0x7e, 0x3c, 0xff, 0x00, 0x27, 0xe1, + 0xcf, 0xf2, 0x7e, 0x1c, 0x9f, 0x87, 0x27, 0xe1, + 0xc9, 0x53, 0x00, 0x0f, 0x01, 0x1f, 0x40, 0x85, + 0x14, 0x51, 0x45, 0xe8, 0x7e, 0xc0, 0x5e, 0xf4, + 0x28, 0x57, 0xd0, 0xa2, 0xf4, 0x2f, 0xf8, 0x80, + 0x00, 0x07, 0xe6, 0xf4, 0x6d, 0xfb, 0x2d, 0xca, + 0x7e, 0xbf, 0x9f, 0x70, 0x0b, 0xf5, 0xe3, 0xdd, + 0x91, 0x42, 0x04, 0x1e, 0xa7, 0x49, 0xff, 0x00, + 0x4b, 0x9d, 0x7d, 0x3f, 0x77, 0xa3, 0x95, 0x7b, + 0x20, 0x43, 0xd1, 0xe1, 0x39, 0x7a, 0x3a, 0x7a, + 0xe4, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, + 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0xff, + 0x00, 0xb6, 0xdf, 0xed, 0xf6, 0xd3, 0x7f, 0xf0, + 0x00, 0x03, 0xfe, 0x53, 0xcc, 0xd7, 0xcc, 0xb5, + 0xf7, 0xe8, 0x00, 0x07, 0x5b, 0xd1, 0xbe, 0xa3, + 0xf5, 0xb5, 0xdb, 0xf4, 0x00, 0x1e, 0x33, 0x25, + 0x5a, 0x7d, 0xc7, 0xf6, 0x9f, 0x12, 0x00, 0x77, + 0xaf, 0x9e, 0x6d, 0xdc, 0xd9, 0x67, 0xab, 0xfe, + 0x02, 0x64, 0x5f, 0x1e, 0x17, 0x2f, 0x86, 0x9a, + 0xf4, 0x47, 0xb2, 0x21, 0xb8, 0x9b, 0xf8, 0x01, + 0x2d, 0x7b, 0x09, 0x59, 0xe4, 0x13, 0xd5, 0x08, + 0x0b, 0xab, 0x74, 0xe4, 0xb3, 0x18, 0x9c, 0x4a, + 0xd5, 0x7a, 0x75, 0x54, 0x77, 0xf4, 0xa7, 0x61, + 0xed, 0xc1, 0xe3, 0x05, 0xf9, 0x75, 0x1f, 0xd2, + 0x9c, 0x88, 0xd6, 0x4e, 0xf2, 0xa4, 0x67, 0x20, + 0x02, 0x96, 0x8b, 0x96, 0x00, 0x85, 0x8e, 0xa8, + 0x68, 0x8c, 0x10, 0x67, 0xb8, 0x07, 0xdf, 0x35, + 0xb1, 0x9d, 0x79, 0xa9, 0x48, 0x17, 0xb7, 0x8e, + 0xf2, 0x3d, 0xad, 0x71, 0x16, 0xfa, 0xdd, 0x96, + 0x70, 0x8f, 0x92, 0x46, 0x75, 0xc3, 0x73, 0xcb, + 0x90, 0x52, 0xe3, 0xb9, 0x74, 0x7e, 0x77, 0x10, + 0xe8, 0xa5, 0xc9, 0x3e, 0xfc, 0x83, 0xab, 0x9c, + 0xfa, 0xd4, 0x4b, 0xd3, 0x2e, 0xc5, 0xa7, 0xcb, + 0x09, 0x23, 0x6f, 0x7e, 0x16, 0xd7, 0xef, 0xf4, + 0xfd, 0x2d, 0xd9, 0x5b, 0xe7, 0xd6, 0xdf, 0xf9, + 0xbf, 0xdb, 0x79, 0xbf, 0x97, 0xcf, 0xd6, 0xf1, + 0x6b, 0xd4, 0x9e, 0xb6, 0xf4, 0xfb, 0xef, 0xbf, + 0xdf, 0x6e, 0xef, 0xdc, 0x3c, 0x31, 0x27, 0x48, + 0x57, 0xf5, 0x0c, 0x32, 0x9e, 0xfa, 0xdf, 0xff, + 0xc4, 0x00, 0x27, 0x11, 0x01, 0x00, 0x01, 0x03, + 0x03, 0x02, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x21, + 0x31, 0x41, 0x51, 0xf0, 0x61, 0x71, 0x81, 0x91, + 0xa1, 0xb1, 0xd1, 0xe1, 0x10, 0xc1, 0xf1, 0x20, + 0xff, 0xda, 0x00, 0x08, 0x01, 0x03, 0x01, 0x01, + 0x3f, 0x10, 0x9e, 0xfe, 0x5e, 0x3c, 0xf6, 0xc5, + 0x38, 0xd7, 0x6c, 0x7a, 0xc5, 0xa7, 0xc3, 0x3a, + 0x15, 0xe7, 0xb4, 0x47, 0xd7, 0xd5, 0x48, 0x6c, + 0x4c, 0xbd, 0xe3, 0x87, 0x85, 0x47, 0x25, 0xeb, + 0xce, 0xdd, 0x8a, 0xf1, 0xf6, 0xe9, 0x9e, 0xb7, + 0xb5, 0x13, 0xd3, 0x7b, 0x5f, 0x33, 0x7d, 0x26, + 0x6d, 0xb6, 0xb7, 0xad, 0x73, 0xd8, 0xe6, 0xbc, + 0x8a, 0xc7, 0x4e, 0x01, 0xf5, 0x59, 0xfe, 0xdf, + 0x9d, 0x7b, 0x9d, 0xf5, 0xc4, 0xe3, 0xdf, 0xb6, + 0x96, 0x8f, 0x19, 0x6a, 0x34, 0x59, 0xd4, 0xdc, + 0x88, 0xbf, 0x9d, 0xfc, 0x62, 0xa3, 0x6e, 0x9f, + 0x77, 0x85, 0xb9, 0xed, 0xa6, 0x6a, 0x7a, 0x72, + 0xd6, 0xd6, 0x7a, 0xb8, 0x3c, 0xff, 0x00, 0x1f, + 0x3e, 0x67, 0xcc, 0x5f, 0xea, 0x69, 0xf3, 0x8d, + 0x0e, 0x97, 0xf3, 0x6d, 0x6e, 0x31, 0x7f, 0x0b, + 0x66, 0x7c, 0x77, 0xe9, 0xe3, 0xe2, 0x93, 0xce, + 0x67, 0xcb, 0xa5, 0x73, 0x91, 0xdc, 0xf7, 0x7f, + 0xde, 0x86, 0x74, 0xe8, 0xf8, 0xc7, 0xad, 0x79, + 0xeb, 0xad, 0xbe, 0x4f, 0x2b, 0x5f, 0xa5, 0x76, + 0xe6, 0xba, 0xa7, 0x84, 0x58, 0xaf, 0x8c, 0xa7, + 0xbe, 0x3c, 0xbd, 0xad, 0xf8, 0xe6, 0xff, 0x00, + 0x3a, 0x5b, 0xee, 0xb9, 0xf3, 0xe5, 0x56, 0xc3, + 0xf5, 0xb7, 0x6f, 0x0a, 0xfb, 0xd7, 0xbf, 0x7e, + 0xdf, 0xc0, 0xae, 0x9d, 0xef, 0xe3, 0x8b, 0x7f, + 0x6d, 0x5f, 0x5a, 0xc7, 0xeb, 0xfb, 0x7a, 0xfd, + 0x7d, 0x31, 0xe3, 0xe5, 0xbd, 0x7a, 0xf3, 0x98, + 0xdf, 0x6a, 0xe7, 0x39, 0x1b, 0xd3, 0xe9, 0xac, + 0xe2, 0x3f, 0x5e, 0xd9, 0x9c, 0xcd, 0x72, 0xfe, + 0x7c, 0xed, 0xbc, 0xd7, 0x7d, 0xc8, 0xc5, 0xb9, + 0xe7, 0x7b, 0x51, 0x8f, 0xde, 0xfd, 0x6d, 0xbd, + 0x70, 0xb6, 0xbb, 0xf2, 0x2b, 0x9d, 0xec, 0x67, + 0x87, 0x6b, 0x56, 0x3a, 0x1f, 0xe9, 0xe7, 0x3a, + 0x64, 0xf7, 0xcd, 0x16, 0xe9, 0xcd, 0x2b, 0x62, + 0x2d, 0xe5, 0x11, 0x5c, 0xf7, 0xf1, 0xe7, 0x7f, + 0xc4, 0x72, 0x5e, 0xdc, 0xf3, 0xcd, 0x5c, 0xe4, + 0x76, 0xc7, 0xad, 0xbc, 0xb1, 0x51, 0x75, 0xfb, + 0x9b, 0x6d, 0x1e, 0xd9, 0xd6, 0xbd, 0x77, 0x8b, + 0x63, 0xd7, 0x3a, 0x4e, 0xac, 0xd6, 0xf1, 0x6a, + 0xe7, 0xdd, 0xf9, 0xde, 0xad, 0xe2, 0x5b, 0x3b, + 0xef, 0xe5, 0x58, 0xe7, 0x6c, 0xe5, 0xfd, 0x07, + 0x6a, 0x2d, 0xb7, 0x48, 0x3f, 0x57, 0xd6, 0xb9, + 0xe1, 0xf3, 0x1e, 0xb5, 0x6b, 0x79, 0x7f, 0x5d, + 0xbb, 0xfb, 0xc5, 0x73, 0x99, 0xaf, 0x48, 0x8c, + 0x5a, 0xfe, 0x92, 0x5e, 0x9f, 0x1c, 0x3b, 0x7e, + 0xf5, 0xdb, 0x4d, 0xeb, 0x1d, 0xbc, 0x7a, 0x07, + 0x86, 0x67, 0x4d, 0x6b, 0xbf, 0x3b, 0x1d, 0xbb, + 0xc7, 0x5a, 0x3b, 0xcf, 0xce, 0xbf, 0xcd, 0x3f, + 0xcf, 0xdf, 0x7f, 0xdf, 0xd5, 0x88, 0xae, 0x73, + 0xea, 0xaf, 0xfc, 0xe9, 0x8f, 0x17, 0xc0, 0xdf, + 0xaf, 0x39, 0xe9, 0x5c, 0xe6, 0xdf, 0x98, 0xe7, + 0xd4, 0x69, 0x16, 0xee, 0xd7, 0x39, 0x9f, 0xc6, + 0xa3, 0xa6, 0x2f, 0x36, 0x89, 0xf4, 0x7a, 0xc6, + 0x06, 0x5b, 0x57, 0xef, 0xc3, 0x77, 0x1c, 0xb6, + 0x6b, 0x93, 0xc3, 0xae, 0x3e, 0xff, 0x00, 0x13, + 0x07, 0x6d, 0xf9, 0x78, 0xd6, 0x1f, 0x5a, 0xe7, + 0x0d, 0xf8, 0xd7, 0x1a, 0xe7, 0x3d, 0x3f, 0x1c, + 0xf8, 0x99, 0x97, 0xf1, 0xbe, 0xd1, 0x76, 0x5e, + 0xbf, 0x73, 0xb5, 0xbc, 0x0f, 0xbf, 0xaf, 0x0b, + 0x75, 0x7f, 0xc5, 0xe3, 0x31, 0xed, 0xcd, 0xdb, + 0x78, 0x29, 0x5e, 0x24, 0x79, 0xf6, 0xbf, 0xe8, + 0xd7, 0x5a, 0xdf, 0x0e, 0x3c, 0xfa, 0xb7, 0xe9, + 0xa5, 0xbb, 0x7e, 0x0c, 0x6b, 0xda, 0x67, 0x9d, + 0xfc, 0xeb, 0x9e, 0x9a, 0x73, 0x7a, 0xe8, 0xf8, + 0xcf, 0x5d, 0x34, 0x25, 0xe6, 0x4a, 0xe7, 0x3f, + 0xb6, 0xb4, 0x56, 0x7b, 0x47, 0x2d, 0x5b, 0x6b, + 0x7c, 0xfb, 0x7a, 0x5a, 0xdd, 0xf7, 0xa5, 0x8e, + 0x7b, 0xf4, 0xed, 0x2f, 0x4a, 0xc6, 0x7c, 0xe2, + 0x33, 0x7d, 0xd7, 0x3e, 0x2b, 0xa6, 0xb5, 0xce, + 0x73, 0xb5, 0x6b, 0x9f, 0x0e, 0x7f, 0x29, 0xc5, + 0xfa, 0x72, 0xfb, 0xfb, 0x5a, 0xb5, 0xfe, 0xef, + 0x9f, 0x9b, 0x6d, 0x78, 0x86, 0xb9, 0x8d, 0x71, + 0xcf, 0x8a, 0xe4, 0x1d, 0x7c, 0xab, 0x6d, 0xe3, + 0x98, 0xb6, 0xbf, 0x8f, 0x4e, 0xf1, 0x7e, 0x7f, + 0x4a, 0x74, 0xe7, 0xec, 0xfd, 0xf6, 0xb5, 0x86, + 0x79, 0xc7, 0xfc, 0x33, 0xc5, 0x4c, 0x99, 0x80, + 0x21, 0x08, 0xc5, 0x21, 0x53, 0x94, 0x98, 0x3a, + 0xe1, 0x81, 0xae, 0xa9, 0xf0, 0x1c, 0x5e, 0x9d, + 0xd3, 0xb1, 0x2c, 0x3c, 0xe9, 0x82, 0x61, 0xd5, + 0xad, 0x45, 0xbe, 0xb1, 0xc0, 0x46, 0xca, 0x20, + 0xd0, 0xe4, 0x21, 0x34, 0x46, 0x4b, 0xa9, 0xc0, + 0xf7, 0x2c, 0xb6, 0x62, 0x2f, 0x7d, 0x46, 0x10, + 0x8c, 0xcd, 0xa2, 0xf6, 0x62, 0x59, 0xc7, 0xac, + 0xdf, 0x49, 0xbd, 0x2c, 0x23, 0x29, 0xb2, 0x3a, + 0xe8, 0x3a, 0x9c, 0x09, 0x50, 0x24, 0x06, 0xee, + 0x00, 0x6e, 0x34, 0x72, 0xb0, 0xec, 0x66, 0x82, + 0x0d, 0x7f, 0x10, 0x0a, 0x49, 0xbd, 0x05, 0x58, + 0x04, 0x31, 0x2a, 0xed, 0x50, 0x1f, 0x31, 0xf7, + 0xe5, 0x82, 0x99, 0x09, 0x69, 0x05, 0x6a, 0x73, + 0x14, 0x25, 0x3c, 0xc0, 0x23, 0x01, 0x42, 0xb5, + 0x06, 0x0d, 0x80, 0x89, 0x74, 0x8a, 0x20, 0x40, + 0x16, 0x6d, 0x69, 0x01, 0x08, 0xa3, 0xe7, 0x90, + 0x9e, 0x86, 0x99, 0x42, 0xf4, 0x06, 0x31, 0x41, + 0x8c, 0x8a, 0x34, 0x14, 0x91, 0x65, 0x37, 0x0a, + 0xcb, 0x93, 0x93, 0x0a, 0x08, 0x40, 0x51, 0x60, + 0xd2, 0xeb, 0x77, 0x11, 0xa3, 0xdb, 0xad, 0x1d, + 0x60, 0x42, 0xa0, 0x12, 0xc7, 0x2a, 0x1a, 0x49, + 0x03, 0x43, 0xcc, 0x8c, 0x01, 0x8b, 0x3d, 0x44, + 0x52, 0x4a, 0x04, 0x94, 0x03, 0x15, 0x00, 0xd0, + 0x7b, 0x99, 0xb9, 0x22, 0x4c, 0xee, 0xe8, 0x4f, + 0x52, 0x9a, 0xe0, 0x82, 0x61, 0x4a, 0x12, 0x51, + 0x40, 0xa1, 0x59, 0x73, 0x79, 0x56, 0x18, 0xb8, + 0xa5, 0x9d, 0x18, 0x71, 0x30, 0xc0, 0x9a, 0xe0, + 0x19, 0x41, 0x76, 0x81, 0x00, 0xa4, 0x10, 0x3b, + 0x90, 0x24, 0x7a, 0xe9, 0x06, 0x24, 0x08, 0x1a, + 0x8a, 0xc0, 0x9b, 0x70, 0x80, 0xc3, 0x32, 0x76, + 0xd7, 0x35, 0x21, 0x25, 0x20, 0x8a, 0xa8, 0xb9, + 0x7d, 0x58, 0x04, 0x80, 0xa2, 0x43, 0x12, 0x3d, + 0x4c, 0x50, 0x4a, 0xba, 0xc6, 0xf7, 0xb4, 0x1d, + 0x32, 0x3d, 0xf1, 0x40, 0x89, 0x89, 0xf3, 0xd3, + 0x28, 0x9d, 0xae, 0x2d, 0x9b, 0xc4, 0x50, 0x44, + 0x47, 0x71, 0x8d, 0xa3, 0xae, 0x86, 0xdf, 0xaa, + 0x73, 0x24, 0x41, 0xca, 0x2f, 0xc9, 0x5b, 0x1a, + 0x67, 0x96, 0x53, 0x0f, 0xd5, 0xba, 0x00, 0xcb, + 0x91, 0x90, 0x15, 0x73, 0x09, 0xeb, 0x0e, 0x84, + 0x5d, 0x80, 0x21, 0x71, 0x57, 0xab, 0x41, 0x1b, + 0x8c, 0xf8, 0x4f, 0x1a, 0x1c, 0x38, 0xd2, 0xc5, + 0x49, 0x97, 0x4d, 0x21, 0x80, 0x36, 0x43, 0x42, + 0x2c, 0xcb, 0xb8, 0xda, 0x8d, 0x01, 0xd6, 0x29, + 0x3d, 0x10, 0x54, 0xb9, 0x29, 0x51, 0xc9, 0x84, + 0x85, 0x09, 0xaf, 0xa3, 0x46, 0x72, 0x21, 0x06, + 0x53, 0x71, 0xd8, 0xa4, 0x88, 0x90, 0x94, 0x96, + 0xa9, 0xc9, 0x37, 0x5c, 0xdb, 0x8e, 0x28, 0x46, + 0x90, 0xd1, 0xab, 0x44, 0x05, 0xb3, 0x51, 0x30, + 0xae, 0x81, 0x52, 0x8b, 0x8b, 0x5e, 0xa6, 0x22, + 0xc3, 0x2d, 0x55, 0x88, 0x17, 0x64, 0xd7, 0xad, + 0x63, 0xa6, 0x32, 0x64, 0x13, 0x60, 0xf2, 0x87, + 0x31, 0xa8, 0x15, 0x28, 0x58, 0xe4, 0x24, 0x4b, + 0x42, 0x92, 0xd3, 0x75, 0x1c, 0x21, 0x07, 0x89, + 0x6c, 0x5a, 0xb5, 0xf7, 0x01, 0xce, 0x3b, 0x19, + 0x65, 0xa0, 0xfd, 0x3b, 0x7a, 0x82, 0xf4, 0xad, + 0xb1, 0x90, 0x0a, 0x16, 0xe6, 0x31, 0x8a, 0x55, + 0x89, 0x4d, 0x0e, 0xa1, 0x72, 0x0d, 0x04, 0x42, + 0xf0, 0x92, 0x36, 0x87, 0xe2, 0x62, 0x0c, 0xac, + 0x25, 0xea, 0x3b, 0x7c, 0x1b, 0x0f, 0x37, 0xac, + 0x58, 0x92, 0xb8, 0x47, 0x45, 0xac, 0xf9, 0x92, + 0x16, 0x24, 0x09, 0x6a, 0x55, 0x8c, 0x8f, 0x52, + 0x5a, 0x59, 0x15, 0x20, 0xaa, 0x92, 0x03, 0x8f, + 0xe7, 0x02, 0x70, 0x46, 0x8d, 0xba, 0x45, 0x96, + 0x60, 0x31, 0x82, 0x0b, 0x11, 0x8f, 0x7d, 0xdb, + 0xb7, 0xa5, 0x88, 0xba, 0x1e, 0x59, 0x3b, 0x30, + 0xdb, 0xed, 0x2a, 0x71, 0xe1, 0x6c, 0x04, 0x47, + 0xbb, 0x2e, 0x75, 0xa9, 0x8d, 0x82, 0x5c, 0x2c, + 0x42, 0x1b, 0xe9, 0x63, 0x5c, 0xc6, 0xb5, 0x2a, + 0x72, 0x41, 0x68, 0x08, 0xae, 0x5e, 0x8a, 0x40, + 0x8a, 0x14, 0x9c, 0x4f, 0x03, 0x90, 0xc8, 0xd4, + 0x88, 0x24, 0x46, 0x41, 0x50, 0x0f, 0x4f, 0xac, + 0x8c, 0xe1, 0x08, 0x6c, 0x78, 0x00, 0xaa, 0x4a, + 0x46, 0x45, 0x6e, 0x8d, 0xc0, 0xd5, 0xd1, 0x26, + 0x74, 0xc0, 0x4c, 0x82, 0x09, 0xd1, 0x31, 0x4b, + 0x4e, 0x13, 0x62, 0x0d, 0x09, 0x91, 0x1d, 0x5c, + 0x3a, 0xa3, 0x16, 0x84, 0xdf, 0x50, 0x55, 0x07, + 0x31, 0x6c, 0x28, 0x92, 0x04, 0x20, 0x68, 0xc5, + 0x06, 0xc4, 0x25, 0x64, 0xd5, 0x9f, 0xb2, 0xa0, + 0x20, 0x09, 0x59, 0xc9, 0x41, 0x38, 0xb8, 0xbb, + 0xa9, 0x16, 0x00, 0x4c, 0x4a, 0x03, 0x00, 0x2f, + 0xda, 0x6f, 0x8a, 0x03, 0xeb, 0x2a, 0x52, 0x6b, + 0x0c, 0x4b, 0x75, 0x26, 0xb3, 0x48, 0x18, 0xe2, + 0x26, 0x13, 0x7a, 0x00, 0x06, 0xec, 0x16, 0xe4, + 0x2a, 0xc9, 0x40, 0xcd, 0xc3, 0x76, 0x91, 0x06, + 0x62, 0xd5, 0x6c, 0x22, 0x7d, 0xbd, 0x33, 0x51, + 0x25, 0x9c, 0xc4, 0xeb, 0x92, 0x2c, 0x6a, 0xb0, + 0x07, 0xf4, 0xf6, 0x32, 0xec, 0x99, 0x84, 0x82, + 0x67, 0x7f, 0x77, 0x72, 0xa2, 0x65, 0x0b, 0x50, + 0x06, 0xaf, 0x54, 0x34, 0x49, 0x0e, 0xa0, 0xc9, + 0x80, 0xe0, 0xf0, 0x37, 0x81, 0x2e, 0x66, 0x61, + 0xa8, 0x1b, 0x2b, 0xa2, 0xc0, 0xc0, 0xc0, 0x12, + 0x1b, 0x74, 0x96, 0x2b, 0x56, 0x06, 0x84, 0x52, + 0x16, 0xe2, 0x95, 0x06, 0xb0, 0xbc, 0xb7, 0x2d, + 0x10, 0x60, 0x97, 0x35, 0x4b, 0x12, 0x92, 0xe1, + 0x0d, 0x0e, 0x4a, 0x78, 0x80, 0xb5, 0x20, 0x29, + 0x89, 0x8c, 0xcf, 0xa9, 0x9a, 0xc6, 0xe5, 0xe5, + 0x86, 0x22, 0xdd, 0x17, 0x3b, 0x31, 0xae, 0xd5, + 0xdd, 0x6f, 0x43, 0xf7, 0xe5, 0x6b, 0xf9, 0x20, + 0x21, 0x45, 0x99, 0x2d, 0x98, 0x4e, 0xba, 0xb1, + 0x87, 0x38, 0x9b, 0xd1, 0x8e, 0x1d, 0xa9, 0x66, + 0x82, 0x60, 0x10, 0x81, 0x22, 0x47, 0x34, 0xe8, + 0x45, 0x2d, 0x5e, 0x80, 0x50, 0x92, 0xc6, 0x39, + 0xee, 0x0b, 0x25, 0x76, 0x10, 0x34, 0x62, 0xb6, + 0xda, 0x46, 0x25, 0x64, 0xb3, 0x76, 0x60, 0xb4, + 0xdc, 0xfa, 0xd9, 0xa4, 0xb4, 0x2b, 0x77, 0x0f, + 0x3b, 0xb7, 0x91, 0x45, 0x45, 0xc6, 0xd7, 0x55, + 0x39, 0xdc, 0x26, 0xa5, 0x7c, 0x62, 0xfc, 0x1c, + 0xb8, 0xf9, 0xa1, 0x82, 0x4e, 0x68, 0xc2, 0xb0, + 0x2c, 0x71, 0x54, 0x44, 0x13, 0x31, 0xe0, 0xd6, + 0xad, 0xa9, 0xc4, 0x17, 0x91, 0x18, 0x94, 0x11, + 0xc1, 0x31, 0x0a, 0x53, 0x9c, 0x92, 0xac, 0x21, + 0x90, 0xc2, 0x25, 0xea, 0xe1, 0x2c, 0x9e, 0x20, + 0xd0, 0xc8, 0xf9, 0x74, 0x40, 0x14, 0x08, 0x0b, + 0xab, 0x17, 0x45, 0x6e, 0x35, 0xf4, 0x71, 0x06, + 0x82, 0xc6, 0x72, 0xad, 0x07, 0x7b, 0x3f, 0x50, + 0xd2, 0xa3, 0x42, 0x06, 0x5c, 0x80, 0x1a, 0x2e, + 0x20, 0x10, 0x51, 0x48, 0x3a, 0x91, 0x11, 0xff, + 0x00, 0x13, 0x61, 0xda, 0x4a, 0xee, 0x8f, 0xb8, + 0x19, 0x37, 0x2a, 0x29, 0x1e, 0x50, 0xcb, 0x4d, + 0x60, 0x3b, 0xb7, 0x0c, 0x00, 0x15, 0x0b, 0xaa, + 0xb8, 0x92, 0x5c, 0x86, 0xb9, 0x21, 0xb5, 0xb8, + 0xaa, 0x2a, 0xcb, 0xf3, 0xdb, 0x86, 0xad, 0x51, + 0xf0, 0x5d, 0x60, 0x95, 0x75, 0xfa, 0xb5, 0x44, + 0x1c, 0x27, 0x22, 0xd5, 0xa7, 0x0e, 0x9d, 0x76, + 0x11, 0x10, 0x5d, 0x01, 0x92, 0x24, 0xac, 0x44, + 0xc2, 0x60, 0x00, 0x10, 0x30, 0xbc, 0xdf, 0x08, + 0x05, 0x90, 0xb5, 0x94, 0x23, 0x53, 0x26, 0x6f, + 0x31, 0x9e, 0xd8, 0xa8, 0xfa, 0xe4, 0xe1, 0x79, + 0x40, 0x23, 0x08, 0x08, 0x50, 0xa8, 0x09, 0xf7, + 0xbc, 0x2b, 0x29, 0x5e, 0x22, 0xe8, 0xf0, 0x9c, + 0x70, 0x43, 0x4c, 0xac, 0xde, 0xd4, 0x20, 0x0c, + 0x68, 0xd9, 0xc8, 0x82, 0x1b, 0x21, 0x79, 0x8b, + 0x35, 0xd8, 0x54, 0x92, 0xbd, 0x17, 0x96, 0xc5, + 0x2c, 0xc4, 0x2a, 0x2a, 0x88, 0x3d, 0x51, 0xa4, + 0xdb, 0xa2, 0xc9, 0xe0, 0x94, 0x2d, 0x2f, 0x56, + 0x48, 0x80, 0x48, 0x4e, 0x4a, 0x5b, 0xf7, 0x3b, + 0xaf, 0xfa, 0xa8, 0x7f, 0xaa, 0x0a, 0x98, 0xfc, + 0x40, 0x28, 0x44, 0x46, 0x88, 0x92, 0xb3, 0x11, + 0x5b, 0xff, 0x00, 0x30, 0xd3, 0xb0, 0x48, 0x08, + 0xc0, 0x45, 0x0c, 0x0a, 0x83, 0xc6, 0x25, 0x50, + 0xab, 0x7b, 0xb7, 0x56, 0xe8, 0x22, 0x0d, 0xef, + 0x40, 0x0b, 0x87, 0x09, 0x5c, 0xd0, 0xa4, 0xa5, + 0x50, 0xab, 0xfd, 0xd3, 0x6b, 0x2c, 0x73, 0xe2, + 0x05, 0x48, 0x25, 0x88, 0xe7, 0x64, 0xd4, 0xc0, + 0x04, 0x61, 0x2d, 0x0c, 0x92, 0xdc, 0x77, 0xee, + 0x58, 0xc0, 0x88, 0x2d, 0x88, 0xaa, 0x6b, 0x31, + 0x9f, 0x70, 0xbb, 0xcf, 0x1e, 0x2d, 0x14, 0x2c, + 0x5a, 0x92, 0x70, 0x96, 0x0b, 0x85, 0x22, 0x90, + 0x00, 0x86, 0x25, 0xcd, 0x88, 0x93, 0x3f, 0x28, + 0x47, 0x5a, 0x43, 0x28, 0x12, 0x13, 0x08, 0x6a, + 0x40, 0x44, 0xa3, 0xa1, 0x97, 0x10, 0xfb, 0x92, + 0xee, 0x01, 0xf2, 0x45, 0x22, 0xa1, 0x45, 0xfe, + 0x09, 0xd8, 0x67, 0x26, 0x5c, 0xf0, 0x0a, 0x8f, + 0xcb, 0xa1, 0x98, 0x80, 0x49, 0x8e, 0xb4, 0x2a, + 0x84, 0xba, 0x96, 0x88, 0xbc, 0xe6, 0xcb, 0x69, + 0x2a, 0x07, 0x5f, 0x53, 0x60, 0x2e, 0x00, 0x6f, + 0xa9, 0x31, 0x04, 0xd0, 0x89, 0x9c, 0x5e, 0xb4, + 0x69, 0x4a, 0xd3, 0x6a, 0xa3, 0x9f, 0xcf, 0x5a, + 0x3b, 0x64, 0x5b, 0x21, 0x29, 0xf0, 0xc2, 0x2d, + 0x64, 0x4b, 0xd4, 0x19, 0x53, 0x00, 0x47, 0x82, + 0xe8, 0x85, 0x8b, 0x50, 0x62, 0xfc, 0x7b, 0xca, + 0xa4, 0x56, 0x02, 0xc0, 0xc0, 0xd0, 0x00, 0xc3, + 0x4c, 0x2e, 0xd1, 0xde, 0x0b, 0xc3, 0x91, 0x54, + 0x42, 0x9e, 0x32, 0x20, 0x4a, 0x00, 0x14, 0x96, + 0x00, 0xb8, 0xf3, 0x89, 0x63, 0x87, 0x01, 0xd3, + 0xe2, 0x98, 0x94, 0xc6, 0x84, 0xc4, 0x52, 0x41, + 0x3a, 0x53, 0x6c, 0xf5, 0x28, 0x97, 0x71, 0x5a, + 0x85, 0xc0, 0x5c, 0xcf, 0x12, 0xe9, 0x98, 0x2a, + 0x64, 0xb4, 0xaa, 0x52, 0x02, 0x04, 0xb4, 0x56, + 0x9a, 0x22, 0xd6, 0xae, 0xd2, 0x19, 0x54, 0x8b, + 0x12, 0x8b, 0x62, 0x68, 0x19, 0x88, 0x22, 0x4d, + 0x15, 0x16, 0x77, 0x02, 0xe4, 0xe6, 0xf6, 0xbd, + 0x19, 0xab, 0x08, 0x49, 0xd5, 0x0e, 0xe5, 0xec, + 0x12, 0x33, 0x60, 0x95, 0x28, 0x8d, 0xbc, 0xb4, + 0x85, 0x60, 0xf0, 0xc1, 0x04, 0x9a, 0xa4, 0xe8, + 0x8d, 0xad, 0xc5, 0x85, 0xc4, 0x89, 0x58, 0x40, + 0x97, 0xf3, 0x90, 0x98, 0x08, 0x52, 0x62, 0x24, + 0x34, 0x14, 0x21, 0xea, 0xc3, 0x19, 0xc5, 0x28, + 0xb4, 0x06, 0xe9, 0x8a, 0xcc, 0x83, 0x17, 0x35, + 0xd6, 0x34, 0x80, 0x6c, 0x89, 0x36, 0xab, 0x06, + 0x5f, 0xde, 0xf5, 0xca, 0x22, 0x10, 0x35, 0x2d, + 0xf6, 0x08, 0x17, 0x3e, 0xb4, 0x36, 0x38, 0x76, + 0x13, 0x50, 0xa2, 0x11, 0x02, 0x55, 0x60, 0xb2, + 0x45, 0x21, 0xaa, 0xfc, 0x51, 0x4f, 0xa2, 0xc1, + 0x51, 0xc2, 0x20, 0xa5, 0x5b, 0x33, 0x85, 0x66, + 0xf8, 0x34, 0xcd, 0xad, 0xe5, 0x6a, 0x98, 0xb0, + 0x01, 0x9b, 0x99, 0xbe, 0xd3, 0x07, 0x56, 0x7a, + 0x5a, 0x0a, 0x6b, 0x6f, 0x46, 0xb7, 0x88, 0x98, + 0x72, 0x14, 0x2e, 0x2e, 0x9d, 0xae, 0x08, 0x06, + 0x4f, 0x79, 0xa0, 0xeb, 0x3c, 0xe7, 0xb5, 0x02, + 0x72, 0xb5, 0x67, 0x2c, 0x08, 0x0e, 0x2d, 0x26, + 0x26, 0x8a, 0x33, 0x44, 0x09, 0x81, 0xb9, 0xe8, + 0xf2, 0x45, 0x0a, 0x6a, 0x21, 0x67, 0xb2, 0x10, + 0x43, 0xaa, 0x63, 0x98, 0x74, 0x62, 0x43, 0x84, + 0x35, 0x87, 0x1a, 0x71, 0xe9, 0x91, 0x88, 0x00, + 0xed, 0x85, 0x02, 0x4c, 0x40, 0xa4, 0xd6, 0xf4, + 0xc7, 0xdb, 0x57, 0x3a, 0x91, 0x2f, 0x62, 0x70, + 0xd6, 0x23, 0x1b, 0xd6, 0x0a, 0x05, 0x78, 0x84, + 0x48, 0x1b, 0xa0, 0xec, 0x0b, 0x4d, 0x05, 0x11, + 0x0d, 0x26, 0x34, 0xb8, 0x89, 0xc8, 0x6c, 0x55, + 0x85, 0xba, 0x17, 0x0a, 0x35, 0x2c, 0x25, 0x15, + 0x08, 0xc2, 0x10, 0x01, 0x40, 0x96, 0x66, 0xb1, + 0x10, 0xde, 0x2e, 0x99, 0x60, 0x40, 0x9d, 0xc6, + 0xfd, 0x6b, 0x68, 0x58, 0x4a, 0xc8, 0x09, 0x90, + 0x24, 0x21, 0xac, 0xe6, 0x2b, 0xfe, 0xa1, 0x8e, + 0x0f, 0x92, 0x15, 0x69, 0x24, 0x86, 0xb7, 0x20, + 0x38, 0x33, 0xad, 0x31, 0x33, 0x60, 0xd3, 0x65, + 0x3b, 0x50, 0xd5, 0x6b, 0xa2, 0xb0, 0x35, 0x58, + 0x02, 0x34, 0xfa, 0xb7, 0x33, 0x08, 0x91, 0x63, + 0x25, 0x10, 0xa4, 0x82, 0x75, 0xf7, 0x46, 0xd2, + 0xe4, 0x88, 0x96, 0xa2, 0xe5, 0x51, 0xa2, 0x00, + 0x56, 0x38, 0x60, 0x61, 0x99, 0x30, 0x57, 0x88, + 0x67, 0x47, 0x78, 0x2f, 0x55, 0x7b, 0x20, 0xbd, + 0x80, 0x93, 0x22, 0xda, 0xc3, 0xa5, 0xea, 0x1c, + 0xd2, 0x26, 0xb6, 0x7d, 0xb4, 0x86, 0x10, 0xa1, + 0x2c, 0xf8, 0xc4, 0x46, 0xaa, 0x5e, 0xe3, 0x20, + 0xc1, 0x62, 0x2e, 0x19, 0x25, 0xbc, 0xc2, 0x04, + 0x8e, 0xd2, 0xe8, 0xe8, 0xbc, 0xc5, 0x05, 0x09, + 0x25, 0x6a, 0x4f, 0xb4, 0x9c, 0xd5, 0xdc, 0xdc, + 0xc4, 0xa2, 0x6b, 0x50, 0x05, 0xc6, 0x54, 0x0e, + 0x44, 0x23, 0x82, 0x89, 0x5d, 0x23, 0x9c, 0xf3, + 0xa9, 0xc4, 0x2b, 0x0e, 0x3f, 0x9a, 0x10, 0x4c, + 0x2a, 0xb3, 0x7b, 0xaa, 0xb8, 0x94, 0xca, 0xa4, + 0x8c, 0xd9, 0x85, 0xe2, 0x68, 0x28, 0x2c, 0x84, + 0x86, 0x9b, 0x9b, 0x04, 0xf3, 0xd3, 0x7b, 0xbb, + 0x8b, 0x93, 0x08, 0x89, 0x52, 0xbd, 0xa4, 0x46, + 0x62, 0x80, 0xd3, 0xa2, 0xba, 0x2b, 0x0d, 0xb8, + 0x40, 0x19, 0xe3, 0xc2, 0x00, 0x5a, 0xaf, 0x66, + 0x9c, 0xba, 0x16, 0xd8, 0xe2, 0xb0, 0x88, 0xac, + 0x06, 0x07, 0x40, 0xc2, 0xea, 0x1f, 0x85, 0x94, + 0x94, 0x43, 0x09, 0xd4, 0x2c, 0x8c, 0x43, 0x23, + 0x2c, 0x22, 0x85, 0xe0, 0x09, 0x11, 0xef, 0xf1, + 0x53, 0x98, 0x74, 0xd4, 0xf0, 0xbe, 0x39, 0x90, + 0x09, 0xe4, 0x52, 0xd8, 0x57, 0x15, 0x30, 0x9e, + 0x27, 0xb3, 0x75, 0x72, 0xc6, 0xe2, 0x9b, 0xff, + 0x00, 0xaa, 0x15, 0x2a, 0x01, 0x16, 0x84, 0x71, + 0x98, 0x3a, 0x99, 0x8c, 0x95, 0x41, 0x63, 0x8c, + 0xc4, 0x6f, 0x4e, 0xe3, 0x80, 0xec, 0xa6, 0xe9, + 0x75, 0x81, 0x5b, 0x3c, 0x84, 0x3a, 0x46, 0x42, + 0x27, 0x23, 0x64, 0x94, 0xd0, 0xd4, 0x70, 0x85, + 0x75, 0xd3, 0x00, 0x88, 0x50, 0x16, 0xfc, 0x5a, + 0x5a, 0x74, 0xc8, 0x50, 0x92, 0x32, 0x8a, 0x52, + 0x28, 0xaa, 0x81, 0xda, 0x82, 0x16, 0x80, 0x98, + 0x80, 0x27, 0x0a, 0x16, 0x3e, 0x4e, 0xed, 0x80, + 0x9a, 0xd9, 0x74, 0xc5, 0xe6, 0xed, 0x44, 0x40, + 0xa8, 0x23, 0x30, 0xf9, 0x88, 0xc5, 0x02, 0xa4, + 0x09, 0xff, 0x00, 0xb3, 0x70, 0xaf, 0x85, 0x4c, + 0x14, 0x50, 0x38, 0x64, 0x93, 0x18, 0xf2, 0x2c, + 0x4b, 0x15, 0x75, 0x8e, 0xa3, 0x08, 0x68, 0x30, + 0xd0, 0x9c, 0x4d, 0x07, 0x64, 0x81, 0xe3, 0x8b, + 0x8e, 0xe1, 0x00, 0x4b, 0x8c, 0x00, 0x92, 0xa3, + 0xe7, 0xce, 0xdc, 0xdf, 0x15, 0x19, 0x51, 0x72, + 0x13, 0x52, 0xe4, 0x70, 0xc7, 0x64, 0x81, 0x10, + 0x9a, 0x2a, 0x03, 0x40, 0x78, 0x8c, 0x18, 0x4c, + 0x45, 0x8b, 0x77, 0x01, 0x8c, 0x44, 0x92, 0x01, + 0xf7, 0xac, 0x31, 0xb8, 0x74, 0xf1, 0x52, 0xa9, + 0x09, 0x66, 0x2c, 0x55, 0x95, 0xb0, 0x01, 0x54, + 0xa8, 0x12, 0x00, 0xc8, 0xb5, 0x65, 0x72, 0xd7, + 0x28, 0xd2, 0x87, 0x96, 0xc1, 0x47, 0x18, 0x20, + 0x95, 0x6f, 0xd8, 0x19, 0x84, 0x85, 0xa8, 0x34, + 0x03, 0x56, 0x14, 0x20, 0x2c, 0x08, 0xf7, 0xc6, + 0x91, 0xd8, 0x2a, 0x81, 0x0f, 0x7a, 0xfa, 0x18, + 0xda, 0x23, 0xe1, 0x82, 0xc4, 0xeb, 0xd2, 0x15, + 0xa4, 0x40, 0x18, 0x09, 0x90, 0xa0, 0x38, 0xeb, + 0x0e, 0xb9, 0xe6, 0x24, 0x1a, 0x8e, 0xea, 0xb5, + 0x78, 0xef, 0xd4, 0xbc, 0x0a, 0xe3, 0xb6, 0xb4, + 0x40, 0x5e, 0xd9, 0xf7, 0x24, 0xa7, 0x2d, 0x05, + 0x50, 0x26, 0x19, 0xb2, 0xfa, 0x5c, 0xc2, 0x99, + 0x16, 0x6d, 0x2c, 0x81, 0xf7, 0xbe, 0x0e, 0x1c, + 0x53, 0x11, 0x5a, 0x36, 0x91, 0x1e, 0x79, 0x8f, + 0xa3, 0x1c, 0x35, 0x27, 0xf2, 0x00, 0xf6, 0x7f, + 0x51, 0x40, 0x63, 0x20, 0x6e, 0x8c, 0x52, 0x12, + 0x2d, 0x9e, 0x15, 0x65, 0x8d, 0x83, 0x80, 0x66, + 0x28, 0x31, 0x20, 0x87, 0x04, 0xe7, 0x03, 0x51, + 0x41, 0x18, 0x23, 0xe0, 0xd3, 0x03, 0x50, 0xac, + 0xea, 0x89, 0x3e, 0xd4, 0xa8, 0xf2, 0x76, 0x1b, + 0xcc, 0xd8, 0x01, 0xda, 0x87, 0x1a, 0xb4, 0x04, + 0x01, 0x01, 0x7e, 0x96, 0x45, 0xe0, 0xce, 0xac, + 0x0a, 0x19, 0xf0, 0xee, 0x9a, 0x82, 0x82, 0x50, + 0x24, 0x71, 0x28, 0x21, 0x9a, 0x10, 0xa5, 0x08, + 0x88, 0x72, 0xf8, 0x30, 0x91, 0x6a, 0x7e, 0x30, + 0x96, 0x33, 0x89, 0x0c, 0xd9, 0x70, 0x00, 0xa4, + 0x77, 0xc6, 0xec, 0xf9, 0xf3, 0x5d, 0xe8, 0xa8, + 0xdd, 0x84, 0xf8, 0x92, 0xc0, 0x60, 0x0a, 0x15, + 0x08, 0x25, 0x4b, 0xd4, 0xc0, 0x47, 0xac, 0x03, + 0x6d, 0x35, 0x16, 0x32, 0xd5, 0x80, 0xb1, 0x6c, + 0x99, 0x81, 0x84, 0x60, 0x26, 0x26, 0xf5, 0x1d, + 0x51, 0x4a, 0xea, 0x60, 0x19, 0x10, 0x9a, 0x60, + 0x2c, 0x3e, 0x67, 0x2e, 0x9f, 0x34, 0x02, 0x24, + 0x28, 0x10, 0x96, 0x89, 0x88, 0x89, 0x1a, 0xae, + 0xdc, 0x98, 0x83, 0x11, 0xa0, 0x64, 0x74, 0x16, + 0xb4, 0x42, 0x34, 0x4d, 0xb9, 0x4f, 0x3b, 0xdc, + 0x3e, 0x4d, 0x89, 0x5d, 0x79, 0x0f, 0x26, 0x9b, + 0x84, 0x4e, 0x76, 0x33, 0xc6, 0xc0, 0xc7, 0xaa, + 0x4b, 0x01, 0xcc, 0xab, 0xd2, 0xb2, 0x2b, 0x28, + 0xdc, 0x1e, 0x29, 0x73, 0xde, 0x70, 0xbb, 0x0b, + 0x5f, 0x03, 0xa4, 0x57, 0x88, 0x8b, 0x15, 0x93, + 0x03, 0x10, 0x50, 0x75, 0x3f, 0x46, 0x80, 0x3d, + 0x14, 0xd5, 0x79, 0x45, 0x68, 0x60, 0x86, 0xd9, + 0x07, 0xe0, 0x51, 0x62, 0x60, 0x61, 0x28, 0xfa, + 0xef, 0x88, 0xd3, 0xc9, 0x52, 0x96, 0x16, 0x0e, + 0x88, 0xcc, 0xb2, 0x2c, 0x40, 0xb0, 0xa6, 0x0b, + 0x2b, 0x01, 0xc5, 0x5e, 0xa8, 0x71, 0x49, 0xcc, + 0x96, 0x22, 0xcd, 0xf6, 0x80, 0x32, 0x00, 0xa8, + 0x54, 0xa8, 0x75, 0x6f, 0xc0, 0x42, 0x30, 0xb3, + 0x60, 0x25, 0x09, 0x82, 0x12, 0x93, 0x66, 0x07, + 0x22, 0x40, 0x48, 0x44, 0x98, 0x2a, 0x9c, 0x8e, + 0x6f, 0xbe, 0x28, 0xaa, 0x26, 0x43, 0x41, 0x26, + 0xb1, 0xd4, 0xcc, 0x76, 0x42, 0x0f, 0xe7, 0x9d, + 0xd6, 0x05, 0x99, 0x58, 0x9d, 0x46, 0x84, 0x48, + 0xb2, 0x04, 0xa2, 0x57, 0xc0, 0x50, 0xe0, 0x07, + 0x4e, 0x00, 0x92, 0x4b, 0xa8, 0x64, 0x48, 0x22, + 0x21, 0x33, 0x1b, 0x00, 0x41, 0x62, 0xd2, 0x51, + 0x63, 0xf7, 0xdb, 0xbb, 0x07, 0x3a, 0xcd, 0x5a, + 0x9b, 0xb1, 0x84, 0xc7, 0x45, 0xa0, 0x88, 0x0a, + 0x58, 0x41, 0xc4, 0xe0, 0x41, 0x78, 0xc8, 0x64, + 0xc0, 0x45, 0x21, 0x0b, 0xa4, 0xc5, 0x8b, 0x6d, + 0x06, 0x49, 0x40, 0x02, 0xa0, 0x4c, 0x63, 0xd0, + 0x85, 0x3d, 0x97, 0xb8, 0x66, 0xd4, 0x50, 0x95, + 0x80, 0x13, 0x08, 0x98, 0x48, 0x81, 0x81, 0x2e, + 0xb9, 0x48, 0xd9, 0x59, 0x1c, 0xd8, 0x44, 0x43, + 0x34, 0x4e, 0x98, 0x89, 0x8e, 0xc7, 0x1a, 0xd6, + 0xfe, 0xc8, 0xf2, 0x14, 0x0c, 0xfc, 0x4b, 0xa7, + 0x76, 0xe2, 0x09, 0x12, 0x8a, 0x2e, 0xc3, 0x49, + 0x0c, 0xa0, 0xa2, 0xd8, 0x08, 0x05, 0x3c, 0xfb, + 0x63, 0x56, 0xd3, 0x5c, 0xa8, 0xc4, 0x5a, 0x1d, + 0x4f, 0x41, 0x9e, 0x36, 0xc0, 0x81, 0x08, 0xd0, + 0x14, 0x91, 0xf6, 0x92, 0xdc, 0xe5, 0x2a, 0x26, + 0x11, 0x00, 0x96, 0xc0, 0x4d, 0x57, 0xa7, 0x97, + 0xeb, 0x62, 0x8b, 0x54, 0x60, 0x81, 0xc3, 0xe8, + 0x95, 0xc5, 0x44, 0xd4, 0x81, 0xf2, 0xbf, 0x0a, + 0xde, 0x69, 0xb7, 0x6e, 0x2c, 0xe7, 0xac, 0x62, + 0x4d, 0x48, 0xac, 0x62, 0x26, 0x44, 0x22, 0xe2, + 0x8a, 0x47, 0x40, 0x9d, 0xba, 0x60, 0x99, 0xb4, + 0x51, 0x56, 0x2e, 0xa7, 0xdb, 0x33, 0x36, 0xd4, + 0x8f, 0x62, 0xaa, 0x52, 0xe1, 0x44, 0xc5, 0x08, + 0x15, 0x6b, 0x5c, 0x87, 0x96, 0xe3, 0xdc, 0x24, + 0x05, 0x91, 0x70, 0x73, 0xa3, 0x03, 0xae, 0xf5, + 0x3c, 0x1c, 0x4e, 0x8a, 0x51, 0x2a, 0x28, 0x94, + 0x25, 0x26, 0xa3, 0x4b, 0xe8, 0x88, 0x4c, 0x61, + 0x75, 0xc7, 0x78, 0xe4, 0x62, 0x80, 0x00, 0x12, + 0x72, 0x51, 0x74, 0x50, 0x2a, 0x68, 0x9e, 0x24, + 0x24, 0xcf, 0x51, 0xc1, 0x50, 0xdb, 0xb5, 0x80, + 0xc8, 0x31, 0x7c, 0x57, 0x5f, 0xe1, 0x88, 0x79, + 0xcf, 0x21, 0x87, 0x39, 0x38, 0x28, 0x61, 0xa8, + 0xa5, 0x50, 0xfa, 0x49, 0x58, 0x04, 0x72, 0x43, + 0x0e, 0x00, 0x51, 0x45, 0x0e, 0x06, 0xb2, 0x65, + 0x04, 0xc6, 0x10, 0x39, 0x11, 0x00, 0x58, 0x02, + 0xcc, 0x9d, 0x1f, 0x32, 0xcd, 0x85, 0x32, 0x2a, + 0xd5, 0xe9, 0x1b, 0xc9, 0x08, 0x28, 0x48, 0x23, + 0x09, 0x17, 0x50, 0x42, 0x28, 0x82, 0x09, 0x97, + 0xc0, 0x00, 0x69, 0x10, 0xc8, 0x81, 0x43, 0x0f, + 0xcf, 0x2c, 0x00, 0x16, 0xa8, 0x3c, 0xcd, 0x1f, + 0x35, 0x28, 0x61, 0xce, 0x4e, 0x20, 0x4e, 0x58, + 0x08, 0x28, 0x78, 0xb8, 0xc2, 0x49, 0x2d, 0xdc, + 0x4c, 0x81, 0xbc, 0x10, 0xa4, 0x3c, 0xd5, 0x24, + 0x0c, 0x4b, 0x60, 0x88, 0x31, 0x09, 0x53, 0x42, + 0x3b, 0x98, 0xc0, 0xb5, 0x1b, 0x4d, 0x09, 0x70, + 0x14, 0xa7, 0x71, 0x18, 0xa3, 0xb2, 0x22, 0x82, + 0x18, 0xcb, 0x06, 0x80, 0x6c, 0x26, 0xd2, 0xa0, + 0x67, 0xcc, 0xbb, 0x0a, 0x80, 0xd0, 0x70, 0x2b, + 0x50, 0x2d, 0xbc, 0x32, 0xa5, 0x12, 0x1a, 0x20, + 0x3f, 0x03, 0x96, 0x28, 0xb2, 0x14, 0xa4, 0x11, + 0x05, 0x2f, 0xc9, 0xe7, 0xd4, 0x8a, 0xc9, 0xca, + 0x08, 0x21, 0x22, 0x1a, 0x40, 0x46, 0x13, 0x2c, + 0xc2, 0x32, 0x28, 0x0c, 0x12, 0xc1, 0x58, 0x46, + 0x66, 0x1a, 0x48, 0x26, 0xd8, 0x2a, 0xb2, 0xb2, + 0x84, 0x4f, 0x8f, 0x4d, 0xc9, 0x89, 0xde, 0x2d, + 0x18, 0x14, 0xc1, 0x2f, 0x6b, 0x18, 0x04, 0xe2, + 0x3b, 0x4b, 0x22, 0x31, 0x3a, 0x85, 0x21, 0xa4, + 0x44, 0x12, 0x90, 0x44, 0xb8, 0x21, 0x09, 0x0c, + 0x41, 0x1d, 0x12, 0x4a, 0x03, 0x16, 0xa0, 0x93, + 0x30, 0x12, 0xa8, 0x0a, 0x49, 0x4c, 0xb8, 0x26, + 0x24, 0x80, 0x27, 0x52, 0xe4, 0xa4, 0x90, 0x92, + 0xb5, 0x08, 0xd9, 0x27, 0xe5, 0x12, 0x6a, 0xa6, + 0x85, 0x19, 0x7d, 0x01, 0x39, 0x24, 0x48, 0x42, + 0xa0, 0x40, 0x26, 0x25, 0x8f, 0x33, 0xd5, 0xfd, + 0x57, 0xce, 0xbc, 0xdf, 0x1e, 0x96, 0x8a, 0xe3, + 0xce, 0x76, 0xda, 0x23, 0x16, 0x39, 0xa5, 0xa3, + 0x4c, 0x66, 0x5b, 0x6b, 0x5d, 0xba, 0xe9, 0xd4, + 0xfb, 0xf3, 0x9d, 0x2b, 0xda, 0xfb, 0x8c, 0xcf, + 0xb6, 0x7d, 0x22, 0xd5, 0xac, 0xf8, 0x79, 0x4f, + 0xcf, 0xe3, 0x9c, 0xf1, 0xef, 0xeb, 0xf8, 0x69, + 0x83, 0x3c, 0xef, 0xc8, 0xae, 0x91, 0xf1, 0xfc, + 0xa2, 0x3a, 0x1b, 0x1a, 0x67, 0x4e, 0xf2, 0x73, + 0x2a, 0x1e, 0x4f, 0x91, 0xfd, 0xad, 0x71, 0xb3, + 0xd6, 0x6f, 0x3e, 0x91, 0x53, 0xa9, 0x79, 0x8d, + 0x3d, 0x7c, 0xbe, 0x33, 0x5c, 0xd3, 0x9d, 0x37, + 0xf7, 0xae, 0x5b, 0x4d, 0xfd, 0x7f, 0x94, 0xf9, + 0x49, 0x1d, 0xf6, 0xd6, 0x6d, 0x7f, 0x3a, 0xbc, + 0x78, 0x63, 0xbe, 0xec, 0x3e, 0xdb, 0xcf, 0x4d, + 0xfa, 0xf3, 0xe2, 0x97, 0x7c, 0x4f, 0x25, 0xd2, + 0xf2, 0x3c, 0x2b, 0xb6, 0xf7, 0xe7, 0x21, 0xed, + 0x15, 0xd3, 0x3e, 0x5c, 0xd7, 0x6a, 0x3b, 0xc9, + 0x19, 0x9f, 0x0f, 0x0c, 0x6f, 0x99, 0xaf, 0x8f, + 0x3f, 0x8e, 0xb6, 0xdb, 0x6a, 0xe5, 0xeb, 0x98, + 0xef, 0xf1, 0x5d, 0x8b, 0xc4, 0xf4, 0x9e, 0xf6, + 0xfe, 0x56, 0x7a, 0xcf, 0x68, 0xfe, 0x3e, 0x39, + 0xaf, 0x3e, 0xd1, 0xeb, 0xc7, 0xb6, 0x6b, 0x13, + 0xd3, 0x9a, 0xbe, 0xac, 0x57, 0xde, 0xfe, 0xc7, + 0xbf, 0xca, 0xd7, 0x7e, 0x7b, 0x9a, 0x5a, 0x71, + 0x63, 0x39, 0xac, 0xe7, 0xc7, 0x9c, 0x9d, 0x6b, + 0x9f, 0x59, 0xfa, 0xcd, 0x38, 0x7a, 0x77, 0x31, + 0x7e, 0x66, 0xb9, 0xfa, 0xb6, 0x34, 0xcf, 0x7b, + 0x35, 0xfc, 0xfe, 0x63, 0x4f, 0x2d, 0x2b, 0xef, + 0x96, 0xfe, 0xf8, 0xd3, 0xbb, 0xb5, 0xf5, 0xb6, + 0xa4, 0x46, 0x3a, 0x99, 0xb6, 0x95, 0xdf, 0xd6, + 0x31, 0xf5, 0x31, 0x53, 0xce, 0x75, 0xce, 0xda, + 0xd6, 0xa7, 0x7b, 0xf9, 0x6b, 0xcd, 0x71, 0x84, + 0x9e, 0x76, 0xcd, 0x6f, 0x9b, 0xef, 0x7c, 0xe3, + 0x36, 0xe1, 0x99, 0xaf, 0x0e, 0x7d, 0x57, 0xd6, + 0x9f, 0x35, 0xa9, 0x1e, 0x73, 0x9f, 0x9c, 0xaf, + 0x83, 0x6b, 0x8d, 0x6d, 0xd5, 0x7f, 0x7e, 0xd1, + 0xc6, 0xb1, 0xf5, 0xe8, 0x71, 0xaf, 0x7d, 0x97, + 0xfb, 0xb5, 0x7a, 0xe9, 0x36, 0xd8, 0x9c, 0x79, + 0xdc, 0x34, 0x36, 0xa6, 0xdd, 0xbd, 0x72, 0x7b, + 0x5f, 0xf1, 0x6e, 0x9b, 0x7c, 0x15, 0xfc, 0xfb, + 0xe1, 0xae, 0x97, 0xae, 0x59, 0xc7, 0x3b, 0x46, + 0xf9, 0xae, 0x79, 0xfe, 0x3f, 0x9c, 0xdb, 0x1f, + 0xaa, 0xe7, 0x3b, 0xd4, 0x7b, 0x5b, 0xa7, 0xa7, + 0x6e, 0x96, 0xc5, 0xab, 0xcf, 0xf7, 0xa6, 0x81, + 0xe7, 0xf1, 0x8d, 0xf5, 0xe1, 0x8e, 0xde, 0x7b, + 0x69, 0x59, 0xd7, 0x73, 0x4f, 0xbe, 0xfe, 0xfb, + 0x54, 0x9b, 0xfc, 0x6a, 0xfb, 0x5e, 0x6b, 0x4b, + 0xf3, 0xdf, 0xf7, 0x5e, 0x58, 0x3a, 0xff, 0x00, + 0x7d, 0x26, 0x33, 0xb7, 0xbd, 0xbd, 0xe4, 0xee, + 0x6f, 0x7d, 0xe2, 0xb9, 0xf3, 0x5b, 0x63, 0x5f, + 0xb0, 0xb7, 0x4f, 0x4b, 0xe2, 0xbc, 0x3d, 0x63, + 0x5b, 0xfc, 0xe6, 0xf8, 0xfc, 0xe3, 0xce, 0xfd, + 0xdc, 0x7b, 0xe3, 0xaf, 0x4f, 0xc7, 0x7d, 0xd3, + 0xc3, 0x4f, 0x32, 0x33, 0xbf, 0x62, 0x8c, 0x44, + 0x78, 0x7e, 0xb9, 0xa7, 0x48, 0xaf, 0x8e, 0x72, + 0xd9, 0xf2, 0x5e, 0x62, 0x33, 0xaf, 0x23, 0x35, + 0xf5, 0xeb, 0x5c, 0xed, 0xe9, 0xef, 0xbb, 0x5e, + 0x31, 0x98, 0xc7, 0x5f, 0xee, 0xf6, 0xbe, 0xb5, + 0xe5, 0x8b, 0xf3, 0x6c, 0xd6, 0xf8, 0xe4, 0x67, + 0x9b, 0x57, 0xaf, 0x97, 0x23, 0x5d, 0xeb, 0xcf, + 0xd2, 0xf6, 0xf4, 0xf4, 0xb9, 0x5e, 0xd1, 0xb3, + 0xed, 0x1e, 0x99, 0xe9, 0x50, 0x18, 0x89, 0x88, + 0x3b, 0x6d, 0x39, 0xfb, 0xad, 0xfc, 0x3f, 0x97, + 0xb1, 0xf7, 0xa6, 0x6b, 0xe7, 0xcb, 0x49, 0xf7, + 0xfd, 0x4e, 0x1e, 0x1b, 0xfa, 0xeb, 0x5e, 0x3a, + 0x69, 0x8f, 0x99, 0xf1, 0xb5, 0x5f, 0xc3, 0xf9, + 0xf0, 0xce, 0x2c, 0xeb, 0xa3, 0x87, 0xa7, 0x2d, + 0xe7, 0x9c, 0x1a, 0xeb, 0xf8, 0xed, 0x98, 0x5f, + 0x3d, 0x5b, 0x37, 0xb4, 0x13, 0xa4, 0xed, 0x14, + 0x68, 0x06, 0x9e, 0x26, 0x9f, 0x37, 0xe9, 0x69, + 0xa6, 0xc6, 0x96, 0x8c, 0xe3, 0x3b, 0xef, 0xfb, + 0x8f, 0xc7, 0x9f, 0x37, 0x76, 0xd7, 0x91, 0x5e, + 0xbd, 0xa3, 0xae, 0xff, 0x00, 0x3b, 0x75, 0xfc, + 0x36, 0x1e, 0x83, 0x9f, 0xf1, 0xa8, 0x74, 0x7d, + 0x23, 0xe7, 0xf3, 0x1c, 0x96, 0x8b, 0xf8, 0x2f, + 0xa2, 0x94, 0x63, 0xc5, 0x3c, 0x94, 0xa6, 0xd1, + 0xdc, 0xf5, 0x62, 0xa6, 0xd3, 0x88, 0x0d, 0xbb, + 0x3e, 0x86, 0x85, 0x47, 0x39, 0x8f, 0x08, 0xdc, + 0xbf, 0xe0, 0xb8, 0x3a, 0xc7, 0xbf, 0xe3, 0x54, + 0xe8, 0x3e, 0xaf, 0xc5, 0x6a, 0xf6, 0x3f, 0x7f, + 0x1f, 0x88, 0xe7, 0x97, 0x96, 0x34, 0xfc, 0x36, + 0x2d, 0xb8, 0x7a, 0x87, 0xe3, 0x11, 0xd5, 0xd7, + 0xb2, 0xfe, 0xa8, 0xb8, 0x3e, 0x3e, 0x7c, 0xe3, + 0x5f, 0xff, 0xc4, 0x00, 0x27, 0x11, 0x01, 0x00, + 0x01, 0x03, 0x03, 0x03, 0x04, 0x03, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, + 0x00, 0x21, 0x31, 0x41, 0x51, 0xf0, 0x61, 0x71, + 0x91, 0x81, 0xa1, 0xb1, 0xc1, 0xd1, 0xe1, 0xf1, + 0x10, 0x20, 0xff, 0xda, 0x00, 0x08, 0x01, 0x02, + 0x01, 0x01, 0x3f, 0x10, 0x7a, 0x5b, 0x6b, 0x73, + 0xf9, 0x3d, 0xcc, 0xc9, 0xc8, 0xf3, 0xac, 0x66, + 0xde, 0x4a, 0xbf, 0x9e, 0x8d, 0xbb, 0xfe, 0x2d, + 0xad, 0x75, 0xb4, 0x68, 0xf7, 0x8f, 0x9f, 0xc7, + 0xa3, 0xda, 0x7b, 0x7e, 0xde, 0x35, 0x1d, 0x76, + 0xeb, 0xe3, 0x6e, 0x5a, 0xbe, 0x7c, 0x6d, 0xbb, + 0x78, 0x9f, 0x49, 0x8c, 0xe7, 0x72, 0xee, 0xb7, + 0x2d, 0xa4, 0x13, 0x1f, 0x96, 0xa3, 0x3f, 0x97, + 0x6f, 0xef, 0xce, 0x6b, 0xbe, 0x4d, 0xb8, 0x7e, + 0x35, 0xb6, 0x85, 0xff, 0x00, 0x33, 0x98, 0xf0, + 0x5e, 0xf8, 0xc9, 0x19, 0x2b, 0x59, 0xb6, 0xdd, + 0x63, 0x9a, 0x7b, 0xd0, 0x31, 0x7f, 0xdc, 0xfb, + 0x99, 0xc6, 0x85, 0x6f, 0xbe, 0xf1, 0x2f, 0xb7, + 0x98, 0xa2, 0x75, 0xdd, 0xf1, 0xa5, 0x33, 0xa6, + 0xd8, 0xcc, 0xf7, 0x9f, 0x7b, 0xe3, 0xb9, 0x1a, + 0xbc, 0x8d, 0x08, 0xe9, 0x65, 0xcc, 0xf4, 0xbd, + 0x66, 0x2f, 0xef, 0xed, 0xd7, 0x59, 0xe4, 0x7e, + 0xd8, 0x9c, 0xf9, 0xfd, 0x43, 0x1a, 0x57, 0x7f, + 0x4e, 0xdd, 0x79, 0xb6, 0xff, 0x00, 0xf7, 0xe9, + 0xeb, 0x8d, 0x7c, 0xcf, 0x5d, 0x6d, 0x7c, 0x57, + 0x3e, 0x39, 0x60, 0xed, 0x35, 0xe7, 0x9d, 0xad, + 0xce, 0xff, 0x00, 0xe1, 0x70, 0xfa, 0xb7, 0x3b, + 0x7a, 0x35, 0xed, 0xbf, 0x8d, 0xfb, 0x6a, 0x36, + 0x8e, 0x95, 0x91, 0x93, 0xd3, 0xeb, 0xbe, 0x99, + 0xeb, 0x5c, 0xe7, 0x4b, 0xfb, 0x7f, 0x9c, 0xe7, + 0x3d, 0xeb, 0x4b, 0xfb, 0xb3, 0x8d, 0x5d, 0x27, + 0x7f, 0x9a, 0x8f, 0x5f, 0xc7, 0x7c, 0xcc, 0x79, + 0x8d, 0x2b, 0x9f, 0x8a, 0xcf, 0x5f, 0xf3, 0x9c, + 0xe7, 0xd5, 0x73, 0x7f, 0xe6, 0x13, 0xd8, 0xae, + 0x7b, 0x73, 0xf3, 0xa5, 0x5f, 0xe7, 0xa7, 0xcf, + 0xcd, 0xb4, 0xd2, 0x9c, 0x69, 0xad, 0xa7, 0x36, + 0x7c, 0xf6, 0xfc, 0x57, 0x39, 0x1f, 0xaf, 0xfa, + 0xf8, 0xe7, 0x3b, 0xe9, 0x5c, 0xed, 0xcf, 0xb6, + 0x92, 0x67, 0xdb, 0xf5, 0x98, 0xbf, 0xb9, 0x5c, + 0xd2, 0xfc, 0xf4, 0xa7, 0xd2, 0x7a, 0xfb, 0xfb, + 0x53, 0xcf, 0xc7, 0xad, 0x7b, 0xdb, 0xcf, 0x9f, + 0xba, 0xc7, 0x4e, 0xdd, 0xfe, 0xf5, 0xb5, 0xaf, + 0x7d, 0x6b, 0xea, 0xf6, 0xf8, 0xd6, 0x6d, 0xfa, + 0xbe, 0x39, 0xcb, 0xdb, 0xcd, 0x7d, 0x66, 0xaf, + 0xef, 0xb6, 0x91, 0xda, 0xf3, 0xf7, 0x05, 0xc2, + 0xb7, 0xc7, 0x73, 0x99, 0x0b, 0x77, 0xd3, 0x4a, + 0xe7, 0x8f, 0x6f, 0xbf, 0x15, 0xf7, 0x9f, 0x8d, + 0x7e, 0xe6, 0xc4, 0x43, 0x59, 0xe4, 0x6b, 0xdf, + 0xa6, 0x70, 0xe9, 0x66, 0xb9, 0xf9, 0xf8, 0xf4, + 0xae, 0x73, 0x98, 0x7a, 0x5f, 0xbc, 0x77, 0x88, + 0xd3, 0xd7, 0x7e, 0x9a, 0xfa, 0xfe, 0x5f, 0xbe, + 0x7a, 0xd7, 0xa5, 0xdc, 0xfe, 0xf3, 0x83, 0x87, + 0xfd, 0x74, 0x8b, 0x72, 0x67, 0xa7, 0xcb, 0xa6, + 0xb5, 0x65, 0xd3, 0xae, 0xfd, 0x3b, 0x6b, 0xe6, + 0xb5, 0x66, 0x23, 0xad, 0xd7, 0x2d, 0xe7, 0x01, + 0x78, 0x3a, 0x6d, 0x5c, 0x6b, 0x75, 0x93, 0x3b, + 0x79, 0xb4, 0xf3, 0xd2, 0xb4, 0x2f, 0xef, 0xbe, + 0xd9, 0xea, 0x85, 0xca, 0xf3, 0x7d, 0x33, 0xe7, + 0x3f, 0x8a, 0xe7, 0x22, 0x8e, 0xe3, 0xd7, 0xe2, + 0x7c, 0xf4, 0xce, 0x29, 0x9b, 0xe2, 0x23, 0xd4, + 0xf9, 0x9d, 0x74, 0xe9, 0x5e, 0xd7, 0xe9, 0x7c, + 0x67, 0x93, 0x8a, 0xcd, 0xc6, 0xda, 0x78, 0x8f, + 0x53, 0x5d, 0x2f, 0xed, 0x38, 0x7e, 0x2f, 0xcc, + 0x77, 0x9b, 0x6a, 0xd7, 0x3d, 0xb5, 0xdb, 0xf9, + 0xbc, 0x56, 0xbe, 0x3d, 0xfa, 0xfa, 0x36, 0x8f, + 0x5a, 0xb5, 0xbd, 0xb9, 0xf5, 0x5f, 0xde, 0xba, + 0xf0, 0xf5, 0xae, 0x7c, 0xe7, 0xa6, 0x9c, 0xb5, + 0x5f, 0xd3, 0x6e, 0x73, 0x18, 0xbc, 0xe7, 0xb9, + 0xe4, 0xae, 0x73, 0x9e, 0x71, 0x5c, 0x3c, 0x7f, + 0x7d, 0x3f, 0xe2, 0xd9, 0xde, 0x3a, 0xf2, 0xda, + 0xe8, 0x74, 0x9a, 0x9d, 0x79, 0xcf, 0x8a, 0xf8, + 0xd6, 0xdb, 0xf2, 0xf5, 0xb6, 0x22, 0xef, 0xa7, + 0x4f, 0xb7, 0xda, 0xf6, 0xc7, 0x96, 0xdd, 0x5b, + 0xdb, 0xdf, 0xdf, 0x6a, 0xf7, 0xd1, 0xfb, 0x9f, + 0xe7, 0x89, 0xac, 0x7f, 0x17, 0xf6, 0xf2, 0xf5, + 0x16, 0x74, 0xdf, 0x6f, 0xa6, 0xd1, 0xb9, 0x35, + 0xbf, 0x3d, 0x79, 0xb5, 0x75, 0xeb, 0x3b, 0x62, + 0xcc, 0xdb, 0x1a, 0xf5, 0xed, 0x47, 0xa4, 0x5e, + 0xe7, 0x3b, 0xef, 0xe9, 0x8f, 0xf3, 0x8e, 0x9b, + 0xf9, 0xbe, 0x9e, 0x73, 0x7e, 0x5b, 0x9a, 0x6a, + 0x66, 0xbb, 0xf5, 0xdf, 0x13, 0xe3, 0x1b, 0xd7, + 0x3b, 0xf3, 0xad, 0x7b, 0x4e, 0x33, 0xae, 0xff, + 0x00, 0xd1, 0x9b, 0x77, 0x79, 0x3c, 0xd3, 0x91, + 0x5c, 0x3c, 0x39, 0xfd, 0x5f, 0xc3, 0x51, 0xd0, + 0xfe, 0x44, 0x73, 0xa1, 0xfe, 0x6c, 0x78, 0xe9, + 0x11, 0xeb, 0xcb, 0xd4, 0xfe, 0x33, 0xd2, 0x7c, + 0xf9, 0xb5, 0xea, 0x79, 0xcf, 0xe7, 0xfa, 0xe2, + 0x1e, 0x3a, 0x30, 0xc8, 0xa2, 0x02, 0x2a, 0xec, + 0x80, 0x84, 0xad, 0xe3, 0x88, 0xcd, 0xc9, 0xc4, + 0x3e, 0x96, 0x67, 0xe6, 0x94, 0x16, 0x46, 0xf2, + 0x4a, 0x37, 0xb2, 0x7d, 0xaf, 0xeb, 0x4a, 0x56, + 0xec, 0xd1, 0x1a, 0x6e, 0x68, 0x42, 0x0d, 0xaf, + 0x5d, 0x23, 0xc2, 0x33, 0x6f, 0xc6, 0x66, 0xbd, + 0xa3, 0x3a, 0x1d, 0x9b, 0x57, 0xcf, 0x80, 0x11, + 0x2e, 0x25, 0x2a, 0x4a, 0x40, 0xa5, 0xef, 0x13, + 0x48, 0x8b, 0x30, 0x80, 0x01, 0x2c, 0x62, 0xc2, + 0x22, 0x32, 0x10, 0x73, 0x53, 0x48, 0x0d, 0x10, + 0x81, 0x9b, 0x82, 0x5a, 0x22, 0x32, 0xf4, 0xd0, + 0x46, 0x06, 0x36, 0xc3, 0x3f, 0x40, 0xbe, 0x6c, + 0x47, 0x03, 0xe4, 0x28, 0x85, 0xb2, 0x02, 0xa8, + 0x76, 0x40, 0x8c, 0xb1, 0x9d, 0x50, 0x28, 0x93, + 0x99, 0x66, 0x81, 0x8b, 0x6d, 0xa1, 0x93, 0x53, + 0xa0, 0x14, 0xc0, 0x35, 0x52, 0x88, 0x20, 0x24, + 0x47, 0x90, 0xdc, 0xa5, 0xe0, 0xa6, 0xc1, 0x2e, + 0x46, 0xa2, 0x41, 0x82, 0x16, 0xeb, 0x85, 0x80, + 0xcb, 0x0b, 0x02, 0xee, 0x01, 0x29, 0x07, 0xa5, + 0xcb, 0x45, 0x26, 0xc0, 0x96, 0x6f, 0x6a, 0xdd, + 0x73, 0xbe, 0xd8, 0x99, 0xa8, 0x64, 0x84, 0xd8, + 0x09, 0x50, 0x88, 0x86, 0x1c, 0x26, 0x20, 0x30, + 0xbd, 0xe3, 0x52, 0x25, 0x4a, 0x1b, 0x88, 0x65, + 0xc3, 0x66, 0x02, 0x0d, 0x22, 0x49, 0x0a, 0x81, + 0x08, 0x33, 0x54, 0x10, 0x70, 0x5d, 0x2e, 0x68, + 0x6a, 0xa2, 0x6c, 0xcc, 0x8c, 0x24, 0x92, 0xe0, + 0x04, 0x14, 0x12, 0x38, 0xaf, 0x25, 0xb8, 0x70, + 0xb0, 0x72, 0x4c, 0x08, 0x70, 0xad, 0x4d, 0x0d, + 0x00, 0xca, 0x4c, 0x24, 0x96, 0xe0, 0x59, 0x33, + 0x70, 0x74, 0x50, 0xc4, 0x2d, 0x01, 0x45, 0x21, + 0x80, 0x82, 0x18, 0x69, 0x78, 0x68, 0xd3, 0x71, + 0x34, 0x06, 0xf7, 0x31, 0x2d, 0x68, 0x54, 0x9c, + 0x03, 0x92, 0x81, 0x0a, 0x00, 0x95, 0xdc, 0x21, + 0xb1, 0x0b, 0x79, 0x3b, 0x88, 0x20, 0x32, 0x4c, + 0x27, 0x47, 0x34, 0xf4, 0xb1, 0xe5, 0x63, 0x14, + 0xa5, 0xd6, 0x34, 0xeb, 0x9b, 0xec, 0xeb, 0xfd, + 0xab, 0x93, 0x73, 0x93, 0x5b, 0x79, 0x09, 0xf6, + 0xeb, 0xad, 0x2b, 0x89, 0xf8, 0x5a, 0xc1, 0x10, + 0x24, 0x90, 0x99, 0x22, 0x29, 0x50, 0x8c, 0x19, + 0x16, 0x42, 0x4b, 0x24, 0xc5, 0xc4, 0xbd, 0xc5, + 0x90, 0x04, 0x9c, 0xa0, 0x03, 0x15, 0x17, 0xb3, + 0xe2, 0x19, 0x28, 0xca, 0xa4, 0x9a, 0x61, 0x72, + 0x08, 0x10, 0x2a, 0x1a, 0x22, 0x54, 0x00, 0xb0, + 0x26, 0xe5, 0x92, 0x60, 0xed, 0xc5, 0x61, 0x47, + 0x86, 0xc4, 0x36, 0x43, 0x00, 0xe6, 0x1b, 0x00, + 0xa2, 0x05, 0x54, 0x53, 0x48, 0x81, 0x51, 0x64, + 0x61, 0x2c, 0x02, 0x50, 0x64, 0x44, 0x2b, 0x01, + 0xc0, 0x86, 0xc6, 0x62, 0xe1, 0x34, 0x00, 0x16, + 0x21, 0x20, 0x57, 0x60, 0xb2, 0xa9, 0xc8, 0x14, + 0xaf, 0x54, 0xbd, 0x8b, 0xb7, 0x68, 0x60, 0x21, + 0xa2, 0x51, 0x19, 0x0a, 0x36, 0x66, 0x43, 0x0d, + 0x02, 0x3d, 0x70, 0x6a, 0x69, 0x60, 0xa8, 0x80, + 0x5a, 0x00, 0x91, 0x14, 0x6f, 0x05, 0x65, 0x0c, + 0x48, 0x28, 0xcc, 0x32, 0xc0, 0x88, 0x14, 0x0e, + 0x18, 0x84, 0x16, 0xd8, 0x9c, 0x56, 0x4a, 0x14, + 0x53, 0x10, 0x89, 0xe0, 0xd9, 0x93, 0x38, 0x8e, + 0x21, 0x21, 0x50, 0x2a, 0xd2, 0x25, 0x27, 0x28, + 0x68, 0x37, 0x48, 0x84, 0x41, 0x14, 0x00, 0x69, + 0x42, 0x9c, 0xce, 0x08, 0xee, 0x58, 0x80, 0xa7, + 0x0c, 0xa6, 0x4a, 0x22, 0x90, 0x0c, 0x25, 0x04, + 0xcb, 0x00, 0x2d, 0xe3, 0x61, 0x86, 0x0a, 0x79, + 0x15, 0x85, 0x7e, 0x43, 0xa9, 0x6c, 0x12, 0x8c, + 0xc2, 0x19, 0xa8, 0x72, 0x08, 0xa4, 0xa0, 0xe1, + 0x59, 0x1b, 0xa8, 0x21, 0x70, 0x0d, 0x16, 0xc6, + 0x98, 0x33, 0x16, 0x49, 0x48, 0x84, 0x20, 0xbd, + 0xc8, 0x1a, 0x43, 0x9b, 0xb1, 0x48, 0x52, 0x93, + 0x6a, 0x9b, 0x9a, 0x46, 0x5a, 0x36, 0xf1, 0x9c, + 0xb2, 0x44, 0x22, 0xc0, 0x32, 0x0d, 0x55, 0x08, + 0x22, 0x57, 0xbb, 0x2d, 0x23, 0xad, 0xb7, 0x18, + 0x4b, 0xbb, 0xdb, 0x1a, 0x6b, 0xa2, 0xa5, 0x99, + 0xc9, 0x60, 0xbc, 0x4e, 0xfa, 0x46, 0x98, 0x2f, + 0xb5, 0x48, 0xdb, 0x66, 0xa0, 0xd9, 0x8d, 0x6f, + 0x06, 0x7a, 0xef, 0x8a, 0xb3, 0x9e, 0x70, 0x00, + 0xa8, 0xb0, 0x21, 0x02, 0x8a, 0x80, 0x96, 0xe8, + 0x97, 0x08, 0xdd, 0x18, 0x30, 0x5e, 0x65, 0xb0, + 0x5b, 0xb2, 0x2e, 0x08, 0x45, 0x5c, 0x2b, 0x28, + 0x6d, 0x90, 0x99, 0xbb, 0x28, 0x21, 0x50, 0x09, + 0x23, 0x1b, 0x2a, 0xe6, 0x2c, 0x2f, 0xe0, 0x08, + 0x84, 0x72, 0x24, 0x84, 0x8c, 0x4a, 0x32, 0x01, + 0x78, 0x13, 0x02, 0x01, 0x93, 0x08, 0x60, 0x51, + 0x04, 0x1d, 0x03, 0x7e, 0x95, 0x09, 0x72, 0x11, + 0x74, 0x90, 0xc8, 0x3d, 0x09, 0x05, 0x1a, 0x5c, + 0x15, 0x46, 0x01, 0x09, 0x69, 0x2a, 0xc5, 0x05, + 0x19, 0x32, 0x18, 0xc2, 0x28, 0x42, 0x55, 0x6a, + 0x8d, 0x44, 0x04, 0x12, 0x76, 0xc8, 0x0c, 0x1a, + 0x9b, 0x51, 0xe5, 0x0b, 0xfa, 0x92, 0x1d, 0x48, + 0xa5, 0x88, 0xd8, 0x62, 0x80, 0x80, 0x65, 0x04, + 0x12, 0x32, 0x95, 0x8e, 0x18, 0x95, 0xd1, 0xf2, + 0x0c, 0x20, 0x0a, 0x07, 0x22, 0x71, 0xe2, 0x30, + 0x98, 0xb7, 0x84, 0x01, 0x08, 0x00, 0x14, 0x14, + 0x54, 0x99, 0xd6, 0xb5, 0x00, 0xa0, 0x00, 0x18, + 0x50, 0x90, 0xac, 0x94, 0x02, 0x14, 0x2a, 0x9b, + 0x90, 0x82, 0x0e, 0x41, 0x10, 0x89, 0xf9, 0x41, + 0x36, 0x52, 0x94, 0x21, 0x40, 0x9e, 0xa3, 0x4d, + 0xe3, 0x24, 0x3d, 0x99, 0x0a, 0xcd, 0xc2, 0xff, + 0x00, 0x63, 0x96, 0x1a, 0x09, 0x71, 0x10, 0xd0, + 0x9c, 0x50, 0x3c, 0x44, 0x64, 0x56, 0x86, 0x92, + 0x96, 0x97, 0xd0, 0x1b, 0x0c, 0x91, 0x08, 0x66, + 0x6b, 0xac, 0x89, 0x6a, 0x1b, 0x61, 0xdb, 0x85, + 0x2c, 0x91, 0x88, 0x64, 0x5d, 0x1a, 0x6d, 0x4e, + 0xc0, 0x22, 0xad, 0x60, 0x05, 0x19, 0x62, 0x35, + 0x40, 0x1f, 0x38, 0x5b, 0x20, 0x5f, 0x7a, 0xce, + 0x56, 0x40, 0xa2, 0x20, 0x20, 0x98, 0x48, 0x4e, + 0x9e, 0x94, 0x88, 0x2c, 0xec, 0x67, 0x64, 0xbb, + 0x64, 0x23, 0x39, 0xa9, 0x13, 0xea, 0xcb, 0xd2, + 0xd7, 0xd7, 0x48, 0xb6, 0xd6, 0xcd, 0xd1, 0x62, + 0x03, 0x16, 0x57, 0x19, 0x96, 0x3d, 0xa3, 0x5f, + 0xb3, 0x5a, 0xc8, 0x09, 0x4c, 0xa2, 0x08, 0x58, + 0x8d, 0x4a, 0xe6, 0x92, 0xc5, 0xf6, 0x49, 0x00, + 0xbc, 0x05, 0xcd, 0x8b, 0x26, 0x40, 0x02, 0x95, + 0x78, 0x00, 0x59, 0x4b, 0x89, 0x30, 0x05, 0xee, + 0x4a, 0xe7, 0x24, 0xc5, 0x20, 0x4a, 0xca, 0xa0, + 0x22, 0x2e, 0xd9, 0x2c, 0x1d, 0x95, 0x9c, 0xd3, + 0x86, 0x11, 0x85, 0xc0, 0x92, 0xd9, 0x11, 0x04, + 0xb2, 0xd0, 0xba, 0x8a, 0x95, 0xb5, 0x8a, 0x23, + 0x05, 0x54, 0x2b, 0x69, 0x9e, 0xe0, 0x22, 0x12, + 0x01, 0x77, 0xd8, 0x16, 0x00, 0x2e, 0x8d, 0xb9, + 0xa4, 0xf3, 0x75, 0x04, 0xcc, 0x04, 0x65, 0x8c, + 0x10, 0x29, 0x7a, 0xeb, 0x22, 0xa4, 0x42, 0x62, + 0x12, 0x4e, 0x8a, 0x52, 0x5a, 0xae, 0x8f, 0x2f, + 0x49, 0x30, 0xca, 0x00, 0x29, 0xa2, 0x12, 0x08, + 0xd4, 0xe1, 0x73, 0x80, 0x8c, 0x62, 0x97, 0x7d, + 0x91, 0x09, 0x45, 0x84, 0xa3, 0x56, 0x40, 0x2c, + 0xce, 0x8a, 0x05, 0x53, 0x90, 0x42, 0x2f, 0xa1, + 0x06, 0x1e, 0x44, 0x31, 0x81, 0xb2, 0x5c, 0x11, + 0xb7, 0xf1, 0xa5, 0x52, 0x95, 0xc0, 0x40, 0xa1, + 0x88, 0x8a, 0x82, 0x21, 0x18, 0x2e, 0x43, 0x30, + 0x10, 0x02, 0x9f, 0xbf, 0x52, 0xed, 0x0b, 0x5f, + 0xb2, 0x20, 0xb1, 0x2c, 0x91, 0x0c, 0xcd, 0x74, + 0x93, 0xd0, 0x20, 0x42, 0xb8, 0x68, 0x0a, 0x80, + 0x11, 0x29, 0x2f, 0x3d, 0x14, 0x0d, 0x91, 0xdc, + 0x03, 0x2f, 0x81, 0x9d, 0x5c, 0x5d, 0x24, 0xad, + 0x11, 0xe3, 0x2d, 0xa7, 0x40, 0x3a, 0x91, 0x00, + 0x4a, 0x10, 0x12, 0x62, 0x1d, 0x0c, 0x90, 0x0f, + 0xc2, 0x93, 0x89, 0xe5, 0x4a, 0x2b, 0xe2, 0x13, + 0x18, 0x12, 0xee, 0x0c, 0x96, 0x48, 0x50, 0x44, + 0x91, 0xa5, 0x26, 0xc9, 0x69, 0x84, 0x44, 0x55, + 0x59, 0x9c, 0xf7, 0x26, 0x8e, 0x40, 0x8b, 0x41, + 0x10, 0x92, 0x40, 0xb4, 0x20, 0x2c, 0x20, 0x14, + 0xa9, 0x15, 0x4c, 0xc9, 0x86, 0xd6, 0x59, 0x02, + 0xbc, 0x02, 0x3c, 0x6d, 0xf1, 0x40, 0x5a, 0x12, + 0x5b, 0x90, 0x44, 0xa0, 0x09, 0x01, 0x89, 0x93, + 0x12, 0x28, 0x0b, 0xa4, 0x21, 0x44, 0x68, 0x25, + 0x0b, 0xb4, 0x03, 0x8a, 0x3c, 0xc1, 0x04, 0x13, + 0x15, 0x0c, 0x87, 0x22, 0x22, 0x8a, 0xff, 0x00, + 0x0a, 0xd2, 0x20, 0x82, 0xd0, 0x59, 0x5b, 0x55, + 0x95, 0xb7, 0xd0, 0x35, 0x70, 0x2d, 0x21, 0x70, + 0x82, 0x11, 0x21, 0x2e, 0x44, 0x19, 0x50, 0x45, + 0x2c, 0x35, 0x60, 0x48, 0x13, 0x13, 0x0d, 0x29, + 0x64, 0x0b, 0x5d, 0x15, 0x99, 0x60, 0xe0, 0x18, + 0xbc, 0x54, 0x00, 0x02, 0x11, 0x29, 0x1b, 0x51, + 0x8a, 0x11, 0x09, 0xf3, 0x5f, 0x11, 0x61, 0x8b, + 0x4c, 0xa4, 0x8c, 0xa2, 0xa3, 0x8b, 0x25, 0x12, + 0x03, 0xe5, 0x91, 0x20, 0x0b, 0x8a, 0x54, 0xbf, + 0xa7, 0xd9, 0xba, 0x06, 0x11, 0x5c, 0x1b, 0x21, + 0x09, 0x49, 0x7c, 0x20, 0x50, 0xb8, 0x21, 0x1c, + 0x2e, 0xc1, 0x0d, 0x46, 0x3b, 0x20, 0xbc, 0x62, + 0x60, 0x10, 0x40, 0x92, 0x08, 0xf4, 0xe2, 0x3e, + 0x40, 0x04, 0x06, 0x05, 0x01, 0x52, 0x5a, 0x44, + 0x88, 0xe5, 0xe3, 0x44, 0x9d, 0xf2, 0xe6, 0x0b, + 0x48, 0x22, 0x94, 0x98, 0xd6, 0x69, 0x09, 0x60, + 0xb2, 0x35, 0x76, 0x0e, 0x2d, 0xb9, 0xe9, 0x8c, + 0xc7, 0xac, 0x43, 0xc0, 0x12, 0x30, 0x9e, 0x4a, + 0x09, 0x40, 0x79, 0x42, 0xc4, 0x69, 0x52, 0x61, + 0xa4, 0xb0, 0xb8, 0x95, 0x2c, 0xe4, 0xb6, 0x4c, + 0xaa, 0xa8, 0x05, 0x55, 0xb4, 0xf2, 0xa9, 0x98, + 0x65, 0x65, 0x81, 0x2c, 0x0b, 0x54, 0x49, 0x57, + 0xb3, 0x32, 0xc4, 0xa8, 0xa4, 0x84, 0x57, 0x2c, + 0x11, 0xb8, 0xaf, 0x4d, 0x35, 0x5d, 0x04, 0x61, + 0x36, 0xdd, 0x09, 0xa4, 0x85, 0x2a, 0xa8, 0x99, + 0xb0, 0x94, 0x83, 0x79, 0x4d, 0x0b, 0xd7, 0xc5, + 0xd8, 0x42, 0xe4, 0xc1, 0x17, 0x49, 0x68, 0x94, + 0x8c, 0xe9, 0x60, 0xe1, 0x97, 0x10, 0x1b, 0x43, + 0x29, 0x7b, 0x45, 0x43, 0x25, 0x12, 0x99, 0xd6, + 0x90, 0x4a, 0x0a, 0x91, 0x05, 0x5e, 0x69, 0xc1, + 0x35, 0x8d, 0x88, 0x88, 0x39, 0x70, 0xb6, 0xa0, + 0x01, 0x15, 0x2c, 0xd8, 0xaa, 0x47, 0xf0, 0x2a, + 0x8c, 0xb2, 0x08, 0x98, 0x29, 0x35, 0xa6, 0x5c, + 0x92, 0x6e, 0xe6, 0x49, 0x00, 0x90, 0x01, 0x25, + 0xae, 0xf7, 0x3d, 0xa1, 0x40, 0x95, 0x3f, 0x5c, + 0x5d, 0x16, 0x00, 0x6c, 0x42, 0x18, 0x96, 0xa5, + 0x04, 0x0a, 0x85, 0x7d, 0xb0, 0x40, 0x02, 0x48, + 0x4f, 0x51, 0x86, 0x44, 0x34, 0x25, 0x61, 0xe0, + 0x30, 0x0b, 0xb7, 0x48, 0x00, 0x4d, 0x81, 0x8b, + 0x5e, 0x28, 0xed, 0xbe, 0x53, 0xe8, 0xb7, 0x09, + 0x29, 0xb0, 0xc5, 0xc9, 0x99, 0x89, 0x16, 0x22, + 0x82, 0x01, 0x03, 0xa8, 0x89, 0x88, 0x0b, 0x99, + 0x85, 0x96, 0x26, 0x30, 0xc7, 0x30, 0x4b, 0x10, + 0x88, 0xee, 0x06, 0xf6, 0x65, 0x13, 0xa9, 0x02, + 0xa9, 0x81, 0x9b, 0x9e, 0x25, 0x43, 0x19, 0x3d, + 0x73, 0x83, 0x06, 0x28, 0xe0, 0x96, 0x00, 0x8b, + 0x31, 0x0d, 0x2e, 0x31, 0x57, 0x38, 0x47, 0x66, + 0x38, 0x82, 0x10, 0x42, 0x9c, 0x37, 0x25, 0x11, + 0x12, 0x50, 0x05, 0x25, 0x91, 0x46, 0x24, 0x5c, + 0xcb, 0xa3, 0xe8, 0x08, 0x68, 0x4a, 0x54, 0x82, + 0x40, 0x4c, 0x22, 0x9c, 0x28, 0xb0, 0x99, 0x67, + 0xd3, 0xa2, 0x41, 0xb1, 0x20, 0x82, 0x2d, 0x9b, + 0x12, 0x78, 0x13, 0x1b, 0x84, 0x43, 0x2d, 0xa8, + 0x33, 0x00, 0x8d, 0x0c, 0x1f, 0x4c, 0xb0, 0x2e, + 0x43, 0x42, 0xd1, 0x0d, 0x61, 0x58, 0x5b, 0x16, + 0x0c, 0xbd, 0x32, 0xb2, 0x5e, 0x5e, 0x95, 0x7a, + 0x45, 0x30, 0x25, 0x04, 0x0d, 0x90, 0x19, 0x6c, + 0x69, 0x7c, 0x10, 0x51, 0x0a, 0xc4, 0x85, 0xc8, + 0x00, 0xbc, 0xd4, 0x43, 0x0a, 0x85, 0x4f, 0xcc, + 0xb6, 0x20, 0x9a, 0x66, 0x82, 0x08, 0xb0, 0x02, + 0xcd, 0x6c, 0xc6, 0x7c, 0x9d, 0x3a, 0x62, 0xfd, + 0x7b, 0xd1, 0xb1, 0xa6, 0xeb, 0x8c, 0xf5, 0x24, + 0x89, 0xd2, 0xed, 0x2a, 0x74, 0x36, 0x12, 0x38, + 0x4c, 0x83, 0x48, 0x81, 0x54, 0x08, 0x8a, 0x93, + 0x1c, 0x0f, 0x09, 0x9a, 0x9c, 0x8c, 0x1b, 0x29, + 0x5c, 0x64, 0xc9, 0x78, 0x6a, 0xc7, 0x51, 0x08, + 0x00, 0x67, 0x57, 0xf1, 0xa5, 0x4c, 0x61, 0x70, + 0x10, 0xb1, 0x94, 0x04, 0x0d, 0x29, 0xc5, 0xd1, + 0x9b, 0x30, 0x02, 0x15, 0x02, 0x4a, 0x10, 0x43, + 0x2a, 0xd0, 0x4e, 0x8c, 0xe2, 0x6a, 0x62, 0x88, + 0x12, 0x01, 0x54, 0x2f, 0x58, 0x90, 0xcc, 0x62, + 0x02, 0x2d, 0x10, 0xc4, 0xe2, 0x2c, 0xa8, 0x31, + 0x27, 0x78, 0xab, 0x22, 0x62, 0xa6, 0x57, 0xef, + 0xb0, 0x90, 0x0b, 0x12, 0x40, 0x32, 0x60, 0xe8, + 0x44, 0x62, 0x14, 0xcd, 0x50, 0x03, 0x60, 0x0c, + 0x75, 0xdb, 0x1b, 0x94, 0xbf, 0x41, 0x74, 0x60, + 0xd1, 0x37, 0x72, 0x09, 0xf3, 0x49, 0x1c, 0xd3, + 0x98, 0x90, 0x5a, 0xc1, 0x11, 0x4e, 0x56, 0x88, + 0x01, 0xa3, 0x8a, 0xef, 0x86, 0x72, 0x12, 0x08, + 0x43, 0x83, 0x9f, 0xb9, 0x29, 0xa5, 0x60, 0x31, + 0x12, 0x0b, 0x01, 0x02, 0x89, 0x1b, 0xb5, 0x3a, + 0x90, 0x19, 0xb2, 0x2c, 0x51, 0x27, 0xc6, 0x29, + 0x99, 0x8d, 0x32, 0x40, 0x72, 0x4d, 0x65, 0x2d, + 0x0a, 0x89, 0x80, 0x66, 0x01, 0xdf, 0x49, 0x74, + 0x68, 0x7d, 0xd5, 0x12, 0x40, 0x50, 0x62, 0xdf, + 0x2c, 0x82, 0x40, 0x54, 0x34, 0x2f, 0xf2, 0x89, + 0x07, 0x11, 0x6d, 0x21, 0x4a, 0xf5, 0x21, 0x69, + 0xf9, 0x02, 0x66, 0xca, 0x06, 0x44, 0x20, 0xcb, + 0x48, 0x91, 0x11, 0x90, 0xa4, 0x08, 0x22, 0xda, + 0xa2, 0x20, 0x92, 0x58, 0xba, 0x3c, 0x5c, 0x34, + 0xdf, 0x70, 0x14, 0x5e, 0x37, 0x59, 0x91, 0xdf, + 0x35, 0x28, 0x8a, 0x6a, 0x51, 0xb1, 0x01, 0x2c, + 0x62, 0x66, 0x04, 0xda, 0x2d, 0x52, 0x4b, 0x0a, + 0x2c, 0x25, 0x2c, 0x00, 0x82, 0xb9, 0x04, 0x88, + 0x9f, 0xf0, 0x9c, 0x2b, 0x65, 0x35, 0x23, 0xa4, + 0xcc, 0x28, 0x12, 0xad, 0x12, 0x92, 0x60, 0x38, + 0x2a, 0x52, 0x66, 0x00, 0x8a, 0xc1, 0x62, 0x80, + 0xfb, 0x72, 0x17, 0x38, 0x93, 0x30, 0x0c, 0x70, + 0x91, 0x37, 0x4a, 0xd2, 0x68, 0x3b, 0xd0, 0x48, + 0x80, 0xab, 0x2c, 0xb3, 0x04, 0xe4, 0x03, 0x14, + 0x23, 0x02, 0xc0, 0xc8, 0x97, 0x2e, 0x24, 0xb0, + 0x14, 0xd8, 0x52, 0xb2, 0x52, 0x04, 0x9c, 0x85, + 0x11, 0x71, 0x97, 0x0f, 0x74, 0x8b, 0x0c, 0xec, + 0x8c, 0x94, 0x72, 0x2f, 0x02, 0xce, 0x16, 0x11, + 0x8a, 0xc8, 0x00, 0x15, 0x04, 0xd9, 0x82, 0xd4, + 0xb5, 0xae, 0x28, 0xa6, 0x62, 0x3a, 0xed, 0xed, + 0x10, 0x21, 0x25, 0xb3, 0x5e, 0x18, 0x43, 0x11, + 0x17, 0x48, 0xb5, 0x81, 0x08, 0x59, 0x99, 0x40, + 0x25, 0x24, 0xa1, 0x44, 0x4f, 0x48, 0x93, 0xda, + 0x5d, 0xa1, 0xc0, 0x64, 0xd2, 0x46, 0xe3, 0x18, + 0x08, 0x06, 0xf1, 0xa0, 0xaa, 0x24, 0x2c, 0x96, + 0x9a, 0x59, 0x06, 0x61, 0x34, 0xa8, 0xb9, 0x4a, + 0x06, 0x10, 0xd2, 0xd4, 0x60, 0x26, 0x52, 0x75, + 0x82, 0x64, 0x16, 0xa9, 0xb9, 0x70, 0x5b, 0x88, + 0xcc, 0x41, 0x03, 0xdd, 0x01, 0x04, 0x02, 0x91, + 0x61, 0x8e, 0x90, 0xac, 0x19, 0xac, 0x46, 0x00, + 0x9c, 0x83, 0x80, 0x93, 0xd5, 0x12, 0x45, 0x4d, + 0x92, 0x2a, 0x74, 0x03, 0x28, 0x41, 0x60, 0x03, + 0x32, 0xc8, 0xa1, 0xb5, 0xa2, 0x00, 0x18, 0xf4, + 0x65, 0x31, 0xbe, 0x4b, 0x52, 0xdc, 0x30, 0x48, + 0xb0, 0x45, 0x04, 0x6a, 0xdc, 0x60, 0x26, 0xbc, + 0x19, 0x16, 0xc2, 0x2d, 0xa5, 0x4c, 0x25, 0x32, + 0x6c, 0x16, 0x18, 0xc5, 0x2a, 0x39, 0x42, 0x53, + 0x64, 0x8c, 0x21, 0x87, 0x2d, 0xcc, 0x66, 0x5b, + 0xa4, 0x12, 0x6d, 0x9d, 0x50, 0x22, 0xc0, 0x4b, + 0x6d, 0x82, 0xc5, 0xc1, 0x42, 0xd0, 0xea, 0x20, + 0x4a, 0x80, 0x00, 0x89, 0xb2, 0xd4, 0x41, 0x2a, + 0x42, 0xd3, 0xd7, 0x7e, 0x7a, 0x54, 0x95, 0x13, + 0x61, 0x55, 0x61, 0xc3, 0x6c, 0x96, 0x0c, 0x14, + 0xd9, 0x76, 0x61, 0x05, 0x31, 0x9a, 0x57, 0x0e, + 0x44, 0x26, 0x23, 0x26, 0x0b, 0x56, 0xc1, 0x8e, + 0x1d, 0x18, 0x34, 0x0b, 0x4a, 0x39, 0x8e, 0x3c, + 0xb5, 0xca, 0x28, 0x81, 0x32, 0xe0, 0xa1, 0x50, + 0x42, 0xe8, 0x9a, 0x62, 0x45, 0x4a, 0x25, 0xa0, + 0x86, 0xd1, 0xd3, 0x50, 0xb4, 0x9a, 0xf9, 0x48, + 0x85, 0x04, 0x10, 0x04, 0x24, 0x12, 0x08, 0x6a, + 0x89, 0x00, 0x12, 0xb0, 0x02, 0xd7, 0x58, 0x33, + 0x91, 0x86, 0xe7, 0x04, 0xc0, 0x51, 0x50, 0x12, + 0x48, 0xc5, 0x9a, 0x00, 0xc0, 0x6e, 0x26, 0x68, + 0x0a, 0x46, 0xb5, 0x44, 0x8c, 0x84, 0xa0, 0xa8, + 0x85, 0xe0, 0x74, 0x77, 0x54, 0x91, 0xfd, 0x00, + 0x0b, 0x19, 0x70, 0x2c, 0x25, 0x2c, 0x04, 0x39, + 0x49, 0x42, 0x01, 0x4b, 0xa4, 0x42, 0x89, 0xe4, + 0x2e, 0x05, 0x52, 0x24, 0x89, 0x6a, 0x12, 0x66, + 0x41, 0x95, 0xf7, 0x44, 0x84, 0x83, 0x28, 0x20, + 0x51, 0x36, 0x54, 0x79, 0x85, 0x21, 0x06, 0x45, + 0x2c, 0xe5, 0x25, 0x2a, 0x2c, 0x48, 0x16, 0x91, + 0x03, 0xfa, 0xe3, 0x7a, 0x0e, 0x51, 0x99, 0x80, + 0xb8, 0x96, 0x19, 0x71, 0x4e, 0x64, 0xc4, 0x8d, + 0x17, 0x41, 0x17, 0xce, 0xa9, 0xe8, 0x54, 0x8c, + 0x81, 0x56, 0xc9, 0x21, 0x4c, 0xa2, 0xda, 0xc6, + 0x2c, 0x10, 0x51, 0x54, 0x62, 0xd0, 0x65, 0x90, + 0x02, 0x64, 0x1a, 0x19, 0x20, 0x01, 0x4d, 0x70, + 0xf0, 0x12, 0x67, 0x0a, 0xc0, 0x67, 0x42, 0x45, + 0x51, 0x00, 0x71, 0x86, 0x8e, 0x11, 0x99, 0x62, + 0x48, 0x56, 0x01, 0x41, 0x33, 0x93, 0x51, 0x32, + 0xa4, 0x66, 0x0c, 0x6a, 0xcb, 0x05, 0x95, 0x99, + 0x36, 0x41, 0x0a, 0x91, 0x26, 0x81, 0x22, 0x1a, + 0x98, 0xcc, 0x95, 0xa3, 0x0a, 0xc9, 0xb1, 0x71, + 0x29, 0x62, 0x03, 0x65, 0x54, 0x62, 0x32, 0x45, + 0x92, 0xe6, 0x59, 0x42, 0x63, 0x13, 0x70, 0x55, + 0xcf, 0x5d, 0x3b, 0x47, 0xdf, 0x4a, 0xb0, 0x65, + 0x15, 0x00, 0xa4, 0x4a, 0xc1, 0x2a, 0x81, 0x39, + 0x60, 0xd6, 0x8a, 0x8c, 0xed, 0x64, 0x30, 0x61, + 0xb8, 0xef, 0x09, 0x01, 0x60, 0x01, 0x2f, 0x00, + 0x10, 0x01, 0x6c, 0xcd, 0xac, 0xc9, 0x96, 0xb6, + 0x81, 0x0b, 0x14, 0x35, 0x8b, 0x34, 0x00, 0x8b, + 0x01, 0xa4, 0xa1, 0x30, 0x76, 0x61, 0xba, 0xb9, + 0x06, 0x79, 0x8d, 0x02, 0x19, 0x43, 0x3e, 0x40, + 0x0c, 0x24, 0x4d, 0x01, 0x08, 0xd1, 0x60, 0xb5, + 0x31, 0x24, 0xc6, 0x23, 0xb7, 0x88, 0x1a, 0x42, + 0x80, 0x09, 0xa0, 0x89, 0x5a, 0x34, 0x82, 0x71, + 0x02, 0x93, 0x23, 0x63, 0x21, 0x07, 0x5f, 0xa7, + 0x34, 0x68, 0x61, 0x96, 0x6e, 0x68, 0x8a, 0x83, + 0x56, 0x4d, 0x64, 0x02, 0x5c, 0x2a, 0x01, 0x23, + 0x90, 0x85, 0x12, 0xe5, 0x4a, 0xce, 0x2f, 0x9d, + 0x3d, 0x4a, 0x82, 0x68, 0x1a, 0x21, 0x4c, 0xb0, + 0x02, 0xc9, 0x74, 0x58, 0x60, 0xcb, 0x60, 0xc9, + 0x34, 0x3e, 0xf3, 0x90, 0x0a, 0x88, 0x20, 0xc4, + 0x14, 0xac, 0x8f, 0x62, 0x1f, 0x23, 0x50, 0x31, + 0x7c, 0x8d, 0x8b, 0x21, 0x42, 0x1b, 0x0d, 0xab, + 0x11, 0x96, 0x00, 0x83, 0x66, 0xcd, 0x69, 0x42, + 0x31, 0x10, 0x92, 0x48, 0x46, 0x11, 0x85, 0xc0, + 0x4e, 0x51, 0x83, 0xdf, 0x4a, 0xc2, 0x93, 0x00, + 0xc0, 0x02, 0x02, 0x90, 0xa1, 0x89, 0x91, 0x74, + 0x88, 0x67, 0xc9, 0x26, 0x6e, 0x5c, 0x1c, 0x81, + 0x26, 0x8d, 0xe1, 0x62, 0x8a, 0x13, 0x09, 0x25, + 0x35, 0x9d, 0xd1, 0x04, 0x2c, 0xa4, 0x21, 0x65, + 0x65, 0xd4, 0xab, 0x41, 0x49, 0x45, 0x85, 0x81, + 0x7a, 0x5a, 0x28, 0x4b, 0xac, 0xac, 0xb8, 0x70, + 0xc4, 0xd8, 0x9b, 0x14, 0x92, 0x1c, 0xb6, 0x9a, + 0x68, 0x09, 0x06, 0x3a, 0x64, 0x04, 0x64, 0xd5, + 0x09, 0x86, 0x66, 0x88, 0x38, 0xfa, 0xf4, 0x04, + 0x14, 0xda, 0xc8, 0x27, 0xbe, 0x24, 0x8f, 0x03, + 0x22, 0x2a, 0x31, 0x70, 0x27, 0x22, 0x8a, 0x12, + 0x94, 0x17, 0xa7, 0x67, 0x9e, 0x3c, 0x52, 0x9c, + 0xcc, 0x86, 0xf2, 0xa2, 0x29, 0x06, 0x0b, 0x82, + 0x09, 0x4c, 0x33, 0xc0, 0xc4, 0xd3, 0xb5, 0xa6, + 0x88, 0x11, 0x88, 0x49, 0x49, 0xc1, 0xd0, 0x0c, + 0x89, 0xe3, 0x62, 0x61, 0x45, 0x5c, 0x27, 0x5c, + 0x41, 0x69, 0x8a, 0x24, 0x45, 0x44, 0xc2, 0x80, + 0x20, 0x96, 0x22, 0x32, 0x07, 0x40, 0x4b, 0x99, + 0x29, 0x9a, 0x3f, 0x52, 0x4e, 0x1a, 0xa2, 0xf0, + 0x08, 0x24, 0xae, 0xd1, 0x28, 0x98, 0x2a, 0xf3, + 0x63, 0x90, 0x02, 0xe9, 0x0c, 0xb3, 0x83, 0x16, + 0x30, 0x8d, 0xb4, 0xb8, 0x0c, 0x4a, 0x44, 0xc4, + 0x5c, 0xd1, 0x29, 0xad, 0xe4, 0x17, 0xc5, 0x09, + 0x52, 0x56, 0xe2, 0xcb, 0xa4, 0x12, 0x96, 0x19, + 0x25, 0x59, 0x41, 0xe4, 0xa8, 0xaa, 0xc5, 0x40, + 0xaa, 0x2e, 0x0e, 0xb1, 0x24, 0x5f, 0x31, 0x9d, + 0x40, 0xd5, 0xb2, 0x30, 0xdc, 0xc6, 0x49, 0xa9, + 0x7a, 0xf7, 0x5e, 0x19, 0xb5, 0x38, 0x11, 0x8e, + 0x73, 0xa5, 0x12, 0xc2, 0x09, 0xfe, 0x49, 0x43, + 0x46, 0x65, 0x26, 0x13, 0xcf, 0x9a, 0x0e, 0xbd, + 0x80, 0x5d, 0xc4, 0x58, 0x32, 0x25, 0xb2, 0xca, + 0x60, 0x14, 0xdd, 0x26, 0x8a, 0xa4, 0xae, 0x6e, + 0x41, 0x40, 0xa7, 0xb4, 0x2a, 0x0b, 0xa9, 0x8d, + 0xcf, 0x5b, 0x08, 0xb1, 0x30, 0xf7, 0x40, 0x09, + 0x50, 0xf3, 0x24, 0x6b, 0x82, 0xed, 0x45, 0xb4, + 0x06, 0x45, 0x21, 0x29, 0x73, 0xff, 0x00, 0x95, + 0x8a, 0xe0, 0x32, 0x74, 0x43, 0x22, 0x80, 0x00, + 0x00, 0xb8, 0x40, 0x3c, 0x12, 0xc6, 0x18, 0x9a, + 0xe5, 0xa0, 0xae, 0x24, 0xd4, 0x88, 0x52, 0x91, + 0x21, 0x62, 0x01, 0x52, 0x00, 0xa8, 0x95, 0x98, + 0x42, 0x22, 0x15, 0xc0, 0x14, 0x25, 0x02, 0xc0, + 0xab, 0xd0, 0xd8, 0x30, 0x00, 0x2f, 0x20, 0x8c, + 0xc1, 0x12, 0x0a, 0x90, 0xb9, 0x91, 0x76, 0x54, + 0x0a, 0xb4, 0x94, 0xf6, 0x2a, 0xbd, 0x97, 0x6b, + 0xfd, 0x7c, 0xf6, 0xa3, 0xac, 0x6b, 0xc5, 0x03, + 0x75, 0x20, 0x40, 0x07, 0x08, 0x88, 0xa0, 0x40, + 0x18, 0x41, 0xa9, 0x32, 0x12, 0x20, 0x19, 0x44, + 0xca, 0x96, 0x41, 0x4a, 0xe5, 0x39, 0x0c, 0x34, + 0x6e, 0x3a, 0xb0, 0xd6, 0xaf, 0x4b, 0x45, 0xcc, + 0xdf, 0x44, 0x23, 0x29, 0x00, 0x22, 0x06, 0x61, + 0xb9, 0x83, 0x27, 0x22, 0x23, 0xc2, 0x91, 0x0d, + 0xca, 0xa4, 0x2a, 0x78, 0x9d, 0x17, 0x06, 0x95, + 0xd5, 0x0a, 0x6e, 0x74, 0x6d, 0x4f, 0x84, 0x6e, + 0xe2, 0x40, 0x47, 0x8c, 0x8a, 0x4a, 0x92, 0x68, + 0x03, 0x3d, 0x02, 0x22, 0x90, 0xcd, 0x88, 0x18, + 0xd1, 0x83, 0x3c, 0xa9, 0x51, 0xda, 0xa2, 0x22, + 0xa4, 0x91, 0x6e, 0x50, 0x06, 0x2a, 0xeb, 0x90, + 0x8c, 0x61, 0xc8, 0x82, 0xcb, 0x42, 0x89, 0xf9, + 0x8c, 0x72, 0xa4, 0x04, 0x4a, 0x84, 0xb0, 0x42, + 0x03, 0x90, 0x92, 0xcb, 0x42, 0x4c, 0x95, 0x22, + 0x98, 0x44, 0xc0, 0x17, 0xb3, 0x2d, 0xf4, 0xa3, + 0x09, 0xb0, 0x4d, 0xdd, 0x01, 0x4b, 0xde, 0x0e, + 0x9b, 0x8a, 0x1c, 0x76, 0xea, 0x22, 0x06, 0x88, + 0xd1, 0x80, 0x09, 0x18, 0x0d, 0x6d, 0x2b, 0x02, + 0xf8, 0xbc, 0x02, 0x50, 0x29, 0x42, 0x8b, 0xc8, + 0x32, 0x93, 0x42, 0x20, 0x03, 0x38, 0x01, 0x8a, + 0x8c, 0x68, 0x36, 0x49, 0x5b, 0x15, 0xa8, 0x40, + 0x49, 0x11, 0x30, 0x4d, 0xc2, 0x40, 0x06, 0x65, + 0x85, 0x86, 0x54, 0x50, 0xd9, 0xe1, 0xe0, 0x81, + 0x9b, 0xd9, 0x86, 0x1b, 0x20, 0x23, 0x87, 0x10, + 0x22, 0x24, 0x44, 0x16, 0x28, 0xd1, 0x6e, 0x50, + 0x08, 0xd0, 0x12, 0x01, 0x4c, 0xb6, 0xe5, 0x71, + 0x22, 0x2f, 0xb8, 0xa1, 0x18, 0xbb, 0xa0, 0x84, + 0x23, 0x07, 0x24, 0x80, 0x27, 0x0b, 0x85, 0xa0, + 0xc4, 0x51, 0x51, 0xc5, 0x90, 0x0b, 0x04, 0x88, + 0x2e, 0x24, 0x5c, 0xca, 0x37, 0x78, 0xb2, 0xe0, + 0xa4, 0x2f, 0x00, 0xc0, 0x4a, 0x35, 0x23, 0x86, + 0x49, 0x64, 0x8d, 0x06, 0x45, 0x00, 0x86, 0x9d, + 0xf9, 0xcb, 0xd2, 0x2c, 0xf5, 0x23, 0xa7, 0x8b, + 0x75, 0xd7, 0x6f, 0x48, 0xf3, 0xce, 0xfa, 0xf7, + 0xab, 0xf3, 0xd3, 0xdf, 0x3b, 0xef, 0xd2, 0xbd, + 0xf7, 0x9d, 0xb9, 0xe7, 0x0e, 0xf5, 0xc9, 0xac, + 0x74, 0xd5, 0xfc, 0xe9, 0x5d, 0x3f, 0xb5, 0x8d, + 0x6e, 0x7a, 0x65, 0x79, 0x18, 0x9d, 0x0b, 0x56, + 0xbe, 0x27, 0xdf, 0xb1, 0x69, 0xeb, 0xb6, 0xd5, + 0x8f, 0xe6, 0xff, 0x00, 0x37, 0xdb, 0xeb, 0xfc, + 0xe7, 0xc6, 0x6b, 0xe2, 0xb4, 0xdf, 0xdb, 0xf9, + 0xcd, 0x6a, 0xdb, 0x75, 0xf7, 0x9d, 0x32, 0xce, + 0xd3, 0xef, 0x7e, 0x18, 0xd3, 0x6f, 0x8a, 0xb6, + 0xbd, 0xbc, 0xe9, 0xeb, 0xfe, 0x1d, 0xe6, 0x7d, + 0x39, 0x98, 0xae, 0x7a, 0xf4, 0x2f, 0xcd, 0xeb, + 0xd6, 0xfe, 0xd6, 0xfe, 0x96, 0x9f, 0xba, 0xf1, + 0xd7, 0xeb, 0x6c, 0xc6, 0x7a, 0x6b, 0x58, 0x8e, + 0xf6, 0xeb, 0xbb, 0x8c, 0xe7, 0xbf, 0xad, 0xbe, + 0xed, 0x8d, 0xa7, 0x3d, 0x3f, 0x3d, 0x6b, 0xa7, + 0x8f, 0xd7, 0x6a, 0xe6, 0x7b, 0x63, 0x3f, 0x57, + 0xef, 0x35, 0x6e, 0x59, 0xb7, 0xbe, 0xbe, 0xf5, + 0xf1, 0xbc, 0xf8, 0xf3, 0xbc, 0xd7, 0xb6, 0xd8, + 0xf1, 0xf7, 0xf7, 0x15, 0xce, 0x73, 0xdf, 0xfc, + 0xf2, 0xe9, 0x8c, 0xfb, 0x60, 0x9d, 0x3f, 0x34, + 0x6b, 0xe3, 0x3e, 0xbf, 0x78, 0xd9, 0xf4, 0xae, + 0x95, 0xcf, 0xe6, 0xd5, 0x79, 0xc8, 0x69, 0x39, + 0x96, 0x59, 0x9f, 0x43, 0xd2, 0x5b, 0xd7, 0xb5, + 0xb3, 0xfa, 0xe9, 0xaf, 0xa6, 0x74, 0xea, 0x13, + 0xa9, 0xc5, 0xd9, 0xb1, 0xe9, 0x6a, 0xfc, 0xf3, + 0x7e, 0xf6, 0x8f, 0x9a, 0xe7, 0x39, 0xda, 0xb5, + 0xcf, 0x4f, 0xef, 0x0f, 0x7a, 0xe7, 0x8e, 0x45, + 0x4f, 0xf7, 0x4e, 0x7c, 0xe9, 0x5e, 0x73, 0xce, + 0xe7, 0x9f, 0x6b, 0x3f, 0x7d, 0xf3, 0x9f, 0x9f, + 0x4e, 0xd5, 0xa0, 0x3d, 0xaf, 0xaf, 0x7d, 0xeb, + 0xc5, 0xbd, 0x8d, 0x3e, 0x3e, 0xf4, 0x8a, 0xfd, + 0x31, 0xce, 0xdc, 0xd3, 0x4b, 0x6b, 0xce, 0x37, + 0xa3, 0x5d, 0xe6, 0xff, 0x00, 0x1f, 0x5d, 0xa4, + 0xb6, 0x2b, 0x83, 0xce, 0x46, 0xb7, 0xa6, 0x63, + 0xaf, 0xa8, 0x4f, 0xa6, 0x9f, 0xca, 0xbf, 0xe7, + 0x6e, 0x6d, 0x5d, 0x9d, 0xf9, 0x68, 0xc5, 0x3c, + 0xd2, 0x37, 0xbf, 0x8d, 0xb7, 0x9a, 0xef, 0xf8, + 0xcb, 0x6b, 0xcf, 0x4c, 0x17, 0x6d, 0x62, 0xaf, + 0xdf, 0x99, 0xf4, 0xbd, 0xab, 0x3f, 0x8f, 0x9f, + 0xae, 0x35, 0x9f, 0x1a, 0x13, 0x27, 0x8b, 0xdb, + 0x43, 0x12, 0xee, 0x53, 0xa8, 0x30, 0xf3, 0x4e, + 0x6b, 0xb5, 0x58, 0x2d, 0x8f, 0xcd, 0xd7, 0xdf, + 0xb7, 0x6a, 0xb7, 0xaf, 0xe7, 0x2e, 0x9d, 0x6f, + 0xdc, 0x36, 0xaf, 0x7c, 0xed, 0xbe, 0x36, 0xb6, + 0x3b, 0x94, 0x5e, 0x3e, 0xcb, 0xcf, 0x3f, 0x55, + 0x69, 0x8e, 0x98, 0xe9, 0xfe, 0x5f, 0xdf, 0x8d, + 0xb4, 0xe8, 0x8d, 0xfa, 0x13, 0x5a, 0xfa, 0x5f, + 0xeb, 0x4d, 0x2f, 0x6d, 0x26, 0xb4, 0xdc, 0x8e, + 0xf3, 0xea, 0xfd, 0xd7, 0xb7, 0x3e, 0xfe, 0x36, + 0x6b, 0x1b, 0xb2, 0xf8, 0xf3, 0x81, 0x8b, 0x75, + 0x6b, 0xef, 0xa6, 0x3c, 0xf2, 0x74, 0xa9, 0xef, + 0xde, 0x32, 0x71, 0xd3, 0x29, 0x6a, 0xe6, 0x9c, + 0xb6, 0x39, 0x35, 0xbf, 0x2d, 0x7f, 0x5d, 0xfe, + 0xb5, 0xad, 0xe7, 0x7c, 0x19, 0x2f, 0x69, 0x8d, + 0xf3, 0xa5, 0xb3, 0x5b, 0x74, 0xfc, 0x3b, 0xff, + 0x00, 0x7d, 0xea, 0xcf, 0x5c, 0x9f, 0x99, 0xfc, + 0x6f, 0x5e, 0xf5, 0xef, 0xcc, 0xd6, 0x2b, 0x7f, + 0xdf, 0x4e, 0x5b, 0xe6, 0x6b, 0x57, 0x5d, 0xba, + 0x74, 0xf8, 0x79, 0x6d, 0xfb, 0xf2, 0x79, 0x88, + 0xa8, 0xee, 0xe7, 0x3f, 0xcf, 0xd5, 0xed, 0x68, + 0xaf, 0x36, 0xb7, 0x37, 0xe4, 0xde, 0xa7, 0xdb, + 0x7b, 0x17, 0xe7, 0xd5, 0x6f, 0x1f, 0x6d, 0xe7, + 0xeb, 0x69, 0xef, 0x05, 0x7d, 0xf5, 0xb6, 0x37, + 0x8e, 0x9b, 0x3e, 0x2b, 0x69, 0x6f, 0x72, 0xda, + 0xf2, 0x3d, 0x31, 0x3b, 0xeb, 0xe7, 0xd9, 0xb6, + 0x9c, 0xeb, 0x91, 0xb5, 0xfc, 0xf6, 0x2b, 0x5e, + 0x69, 0xae, 0x3f, 0x96, 0xde, 0xb9, 0xeb, 0xce, + 0xf3, 0x3b, 0x67, 0x1d, 0x33, 0x98, 0xc1, 0xdb, + 0x4a, 0x71, 0xe9, 0x63, 0x5b, 0x6b, 0x9e, 0xda, + 0xe9, 0x9a, 0xe5, 0xeb, 0x8e, 0xbc, 0xef, 0xb5, + 0x72, 0xe4, 0xfc, 0x6d, 0xcb, 0xb3, 0x5d, 0xcf, + 0x12, 0xe7, 0xd3, 0xa1, 0xf7, 0xa4, 0xf6, 0x88, + 0xe7, 0xeb, 0xfc, 0xe7, 0x37, 0xe6, 0xb7, 0xae, + 0xaf, 0x5b, 0xf4, 0x26, 0x3b, 0x5b, 0x5f, 0x76, + 0x86, 0x50, 0xde, 0x54, 0xe4, 0xea, 0xdf, 0xc3, + 0xf8, 0x2b, 0x43, 0xaf, 0xb5, 0xd8, 0xda, 0xae, + 0x9e, 0x8b, 0x8f, 0x36, 0xdb, 0xfc, 0x6c, 0x2e, + 0xc2, 0xd1, 0x7f, 0x29, 0xee, 0x9c, 0xeb, 0x4d, + 0x83, 0xb9, 0xd7, 0x58, 0xfd, 0xf7, 0xff, 0x00, + 0x71, 0x1d, 0x54, 0xf6, 0x5f, 0xaa, 0x52, 0x0e, + 0xf3, 0xf3, 0x4f, 0xe0, 0xf2, 0xc7, 0xdf, 0xfa, + 0xd8, 0x5d, 0x85, 0x3c, 0x7f, 0x86, 0x07, 0xa6, + 0x34, 0xbc, 0x7e, 0x2d, 0xeb, 0x5c, 0xe7, 0x22, + 0xa3, 0xdb, 0x9c, 0xd7, 0xcb, 0x33, 0x96, 0xb1, + 0x3e, 0xd4, 0xd8, 0x63, 0x42, 0xde, 0x94, 0xd8, + 0x5d, 0x86, 0x9d, 0x3a, 0xbf, 0x4b, 0xf5, 0xfe, + 0xff, 0x00, 0xff, 0xc4, 0x00, 0x27, 0x10, 0x01, + 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x05, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x11, 0x21, 0x00, 0x31, 0x41, 0x51, 0x61, 0x71, + 0x81, 0x91, 0xa1, 0x10, 0xb1, 0xc1, 0xd1, 0xf0, + 0xe1, 0xf1, 0x20, 0xff, 0xda, 0x00, 0x08, 0x01, + 0x01, 0x00, 0x01, 0x3f, 0x10, 0x9e, 0x9b, 0xe6, + 0x35, 0x2d, 0x1c, 0xf9, 0x5b, 0xdb, 0xf8, 0xcd, + 0xea, 0xe3, 0x56, 0x7d, 0x1e, 0x55, 0x1d, 0xb1, + 0xdd, 0xd9, 0x1e, 0x6c, 0x89, 0x67, 0x82, 0x08, + 0xf1, 0xf9, 0xbe, 0x35, 0x04, 0xea, 0x66, 0x3f, + 0xea, 0x0c, 0x6f, 0xa1, 0x8e, 0xf5, 0x18, 0x3e, + 0xab, 0xe2, 0xcf, 0xee, 0x51, 0xd6, 0xde, 0x53, + 0x0a, 0xd9, 0x0d, 0xa7, 0x3e, 0xaa, 0xc7, 0xb6, + 0xd8, 0x9b, 0xc3, 0xde, 0x9f, 0x4b, 0x11, 0xe1, + 0xeb, 0xd4, 0xc3, 0x11, 0xa1, 0xde, 0x9f, 0x89, + 0x8e, 0xe9, 0xdb, 0x31, 0xc4, 0x37, 0xd1, 0x92, + 0xfe, 0xfd, 0xcf, 0x2e, 0xb7, 0x3f, 0x7d, 0x67, + 0x4d, 0xdf, 0xdf, 0x14, 0x4b, 0xd2, 0xd7, 0x41, + 0x2d, 0x48, 0x90, 0x4d, 0xed, 0x3f, 0x0f, 0x3a, + 0xaf, 0x73, 0x45, 0xe7, 0x2c, 0xf9, 0x46, 0xa5, + 0x96, 0x6b, 0xc4, 0x54, 0xdb, 0x1d, 0xe5, 0xa5, + 0x4d, 0x95, 0x3f, 0xee, 0xfb, 0xe7, 0x91, 0x70, + 0xa0, 0xbf, 0x89, 0x6f, 0xcc, 0xf0, 0xfc, 0xcf, + 0x79, 0x55, 0x6b, 0xfe, 0x37, 0xe0, 0xf9, 0xfa, + 0xdb, 0x76, 0xc0, 0xf8, 0xf0, 0xe8, 0xed, 0xef, + 0x9f, 0xac, 0xee, 0xa9, 0x37, 0xbf, 0xb7, 0x84, + 0xaf, 0x49, 0x6e, 0x7a, 0xa6, 0x7f, 0xe7, 0x3d, + 0xb1, 0xad, 0xc1, 0xc6, 0x45, 0x11, 0xdf, 0xd0, + 0xef, 0x57, 0x3f, 0xbd, 0xdf, 0x38, 0x3f, 0x0d, + 0xcd, 0x77, 0xe3, 0xc7, 0x8e, 0x7a, 0xff, 0x00, + 0xed, 0xbc, 0x0c, 0x5f, 0xc6, 0xb9, 0x74, 0x9b, + 0xf3, 0x38, 0xfc, 0x2d, 0x9e, 0xf6, 0xf8, 0x4a, + 0xfe, 0x39, 0xd6, 0x45, 0xdb, 0x05, 0x6a, 0xb7, + 0xd4, 0xea, 0x39, 0x98, 0xe2, 0x23, 0x9e, 0xf2, + 0x31, 0x2b, 0xe6, 0xfe, 0xfd, 0x77, 0xe7, 0x37, + 0xb8, 0xfe, 0x78, 0xfe, 0xfd, 0xaa, 0x73, 0x79, + 0x0a, 0x93, 0xb9, 0x37, 0xdb, 0xc0, 0x56, 0xfb, + 0xe2, 0x38, 0x68, 0x7b, 0x8e, 0x56, 0xa2, 0xf5, + 0x3e, 0x23, 0xbd, 0x1d, 0xcc, 0xe2, 0x90, 0x91, + 0x3c, 0x4c, 0xad, 0x49, 0x30, 0xaf, 0xba, 0xa3, + 0xf6, 0x0f, 0x6f, 0xcd, 0x48, 0x45, 0x7f, 0x5f, + 0x33, 0x33, 0x9e, 0x7b, 0xeb, 0x98, 0x4a, 0x53, + 0x73, 0xf1, 0xc9, 0x57, 0x92, 0xd4, 0xf8, 0x82, + 0xa2, 0x7e, 0x7d, 0x9d, 0x9c, 0x12, 0xd7, 0xf8, + 0xfc, 0x4c, 0x7d, 0xff, 0x00, 0x13, 0x70, 0x6c, + 0x5a, 0x1d, 0xf1, 0x30, 0x71, 0xfd, 0xf0, 0x16, + 0x70, 0xfd, 0xc3, 0x33, 0xcf, 0xfa, 0x5e, 0x79, + 0xac, 0x22, 0x2c, 0xd1, 0xd4, 0xed, 0xf5, 0x3f, + 0xf4, 0x4e, 0x9d, 0x1e, 0x5d, 0xcc, 0x47, 0xf5, + 0x5c, 0x11, 0xe8, 0xca, 0x8f, 0xbe, 0xa6, 0xb6, + 0xea, 0xb9, 0x8b, 0x8f, 0x04, 0xe0, 0x1c, 0x5d, + 0x7a, 0x36, 0xf3, 0xfd, 0x47, 0xbb, 0xcd, 0x11, + 0x44, 0x1a, 0x8a, 0xbb, 0xeb, 0x5c, 0x8c, 0xf6, + 0xb5, 0x39, 0x75, 0x2d, 0x7b, 0xab, 0xf7, 0xd1, + 0x51, 0xff, 0x00, 0x92, 0xd4, 0x7e, 0xff, 0x00, + 0xb3, 0x7f, 0xee, 0xb5, 0xff, 0x00, 0xca, 0x67, + 0xba, 0xf3, 0x1e, 0xbb, 0x57, 0x91, 0xae, 0xf4, + 0x19, 0xa8, 0x2a, 0x7f, 0x77, 0xce, 0xd8, 0xdf, + 0x50, 0x6a, 0x6b, 0x2b, 0xcc, 0xc3, 0xde, 0xc9, + 0x84, 0xfe, 0xbf, 0xa8, 0x83, 0x9c, 0xd7, 0xad, + 0x59, 0x5e, 0x5f, 0xba, 0x9c, 0x0d, 0xf5, 0xf8, + 0xe8, 0xba, 0xa9, 0x9b, 0xb9, 0xb0, 0xc9, 0x17, + 0x83, 0x88, 0x8b, 0x5a, 0x9a, 0x37, 0xa7, 0x9f, + 0xac, 0x07, 0x97, 0x6c, 0x77, 0x7b, 0x63, 0x7f, + 0x53, 0x5e, 0x4c, 0xd3, 0xcf, 0x87, 0xcd, 0xff, + 0x00, 0xcd, 0x31, 0xc5, 0x39, 0xd3, 0xf1, 0xb6, + 0xbb, 0xdc, 0x76, 0xcf, 0x01, 0xf6, 0x15, 0xd4, + 0x77, 0x64, 0xec, 0x8d, 0xf9, 0x9d, 0xd6, 0xa9, + 0xca, 0xe0, 0x37, 0x1b, 0xdd, 0x6a, 0x34, 0xaa, + 0xbc, 0x1e, 0x4c, 0xac, 0xea, 0x97, 0x8f, 0x0f, + 0x3a, 0x14, 0x99, 0x97, 0x55, 0x06, 0x7f, 0xb2, + 0xf8, 0x74, 0x7e, 0x7c, 0xf7, 0x79, 0x6f, 0xcf, + 0x33, 0x7c, 0xd4, 0x7a, 0x82, 0xaa, 0xb5, 0x79, + 0xab, 0xc4, 0x54, 0xc9, 0xae, 0xc9, 0x76, 0x68, + 0x8e, 0x58, 0x88, 0x32, 0xad, 0xd7, 0x37, 0xfc, + 0x6c, 0x5f, 0x11, 0x1c, 0xe8, 0x9e, 0x87, 0xd7, + 0x9a, 0x61, 0xeb, 0xdc, 0x75, 0x35, 0xac, 0x5b, + 0x85, 0xb2, 0xee, 0x79, 0x8a, 0xeb, 0x7b, 0x98, + 0xa9, 0xd6, 0x05, 0x5e, 0xec, 0x3f, 0xb1, 0x89, + 0x21, 0x98, 0x8b, 0x8f, 0x18, 0xf1, 0x7d, 0x1e, + 0x6b, 0x9f, 0x0f, 0x1e, 0xf5, 0x73, 0x19, 0x71, + 0xeb, 0x4e, 0xae, 0x35, 0x35, 0x4f, 0x2c, 0x73, + 0xe3, 0x24, 0xdf, 0xc6, 0xe7, 0xe7, 0x9a, 0xed, + 0xfe, 0x1f, 0xfe, 0x7b, 0x90, 0x30, 0x68, 0xf8, + 0xd3, 0xd1, 0x31, 0xf3, 0x6c, 0xc6, 0x4c, 0xb1, + 0xaa, 0x45, 0x77, 0xaa, 0xfd, 0xfb, 0x2b, 0x4e, + 0x6a, 0x77, 0xeb, 0x5c, 0x7e, 0x0e, 0x79, 0xae, + 0x88, 0xf7, 0x69, 0x9d, 0xfc, 0x44, 0xcc, 0xfc, + 0x1c, 0xee, 0x36, 0x1a, 0x83, 0xc4, 0x5d, 0xdb, + 0xa9, 0xee, 0x6b, 0x4f, 0x8c, 0xda, 0xf5, 0x47, + 0x7c, 0x4f, 0x5c, 0x90, 0xef, 0x7f, 0x29, 0xe7, + 0xaf, 0x8e, 0x19, 0x99, 0xd7, 0x64, 0x1c, 0x31, + 0xe0, 0xb9, 0x67, 0xbf, 0x5e, 0x6b, 0xba, 0x66, + 0x18, 0xdf, 0x61, 0x8f, 0xeb, 0xd7, 0xc3, 0x33, + 0xe3, 0x61, 0xd6, 0x69, 0x8f, 0xe0, 0x1d, 0x2e, + 0xd3, 0x9f, 0xda, 0x1e, 0x4c, 0xd7, 0xcf, 0xfe, + 0xdd, 0x1d, 0x7d, 0xda, 0xc6, 0xf1, 0xc8, 0x95, + 0xfc, 0xae, 0xcf, 0x14, 0xf5, 0x15, 0xe9, 0x8c, + 0x6d, 0x93, 0xf2, 0xf3, 0x35, 0xbb, 0xbf, 0x47, + 0x3c, 0xe7, 0x92, 0xe2, 0x12, 0x69, 0x66, 0x58, + 0xef, 0xf3, 0xdb, 0x9f, 0x34, 0xe9, 0x20, 0x7d, + 0x78, 0xf7, 0xf0, 0xd4, 0xe3, 0x76, 0xf7, 0x33, + 0x2d, 0xbb, 0x2a, 0x3f, 0x1f, 0x36, 0xb9, 0x51, + 0xe6, 0xbc, 0xc4, 0x6a, 0x23, 0x8d, 0xf7, 0xc9, + 0x39, 0x41, 0x63, 0x33, 0xe7, 0x5c, 0xc3, 0x1f, + 0x27, 0x37, 0xd5, 0x45, 0xd9, 0x36, 0xb3, 0x77, + 0xfe, 0xf7, 0xce, 0x41, 0x5f, 0x9a, 0xdc, 0x5d, + 0x54, 0x9c, 0x70, 0x5b, 0xbc, 0xf6, 0xf4, 0x4c, + 0xf7, 0x10, 0xc7, 0x98, 0xe8, 0xef, 0xac, 0x49, + 0xbd, 0xd0, 0xd0, 0xcf, 0x1b, 0xeb, 0xca, 0x3c, + 0xe0, 0x0f, 0xf7, 0xfb, 0xf1, 0x17, 0xff, 0x00, + 0xc3, 0x35, 0x25, 0x82, 0x08, 0xe3, 0xa3, 0x64, + 0x75, 0x06, 0xd7, 0x6f, 0x19, 0xf7, 0xbb, 0xdb, + 0xec, 0xe4, 0x9f, 0x3c, 0xf5, 0x86, 0xbb, 0x90, + 0xa7, 0x74, 0xcc, 0x4e, 0xab, 0xf1, 0xb2, 0xb5, + 0x84, 0x59, 0xb9, 0xfd, 0xfc, 0x4c, 0x93, 0x1b, + 0x88, 0xe1, 0xd9, 0x18, 0x79, 0xf9, 0x5f, 0x1e, + 0x49, 0xd3, 0xad, 0x6f, 0x89, 0x47, 0x29, 0x6e, + 0xde, 0xa6, 0x1a, 0x79, 0xef, 0xb8, 0x9e, 0x3a, + 0xa1, 0x4e, 0xd2, 0x6c, 0x8f, 0x8e, 0x1d, 0x15, + 0xb7, 0x9f, 0xc9, 0x36, 0x26, 0x7f, 0x7e, 0xaf, + 0x8e, 0x92, 0x45, 0xbe, 0x24, 0x98, 0x39, 0xe3, + 0x5a, 0xe6, 0xc9, 0x96, 0x25, 0xf5, 0x13, 0xbd, + 0xe7, 0xec, 0xc4, 0x7b, 0xdc, 0x74, 0xcf, 0x0f, + 0xe5, 0xac, 0xd5, 0xe6, 0x3e, 0x5f, 0x5f, 0x2d, + 0x54, 0x31, 0x88, 0xc4, 0x30, 0x33, 0x1a, 0x59, + 0xe9, 0x22, 0x4d, 0x6d, 0xd1, 0xf5, 0x93, 0x47, + 0x11, 0x56, 0xd7, 0x10, 0x6c, 0x87, 0xa5, 0x37, + 0xc9, 0x13, 0x90, 0xc7, 0x64, 0x53, 0xdb, 0xc7, + 0xbb, 0xf1, 0x10, 0x6a, 0x72, 0x44, 0x4a, 0xe6, + 0xf7, 0xe8, 0x29, 0xed, 0xdf, 0x4f, 0x59, 0xe6, + 0xeb, 0x5c, 0x4d, 0xcf, 0x7b, 0xfe, 0x79, 0x31, + 0x98, 0xda, 0xfc, 0x57, 0xcc, 0xf8, 0x6a, 0xee, + 0x50, 0xce, 0xc6, 0x88, 0x34, 0x75, 0xc6, 0xe6, + 0x4a, 0x8b, 0x8d, 0xb4, 0x5f, 0x86, 0x8e, 0x35, + 0xbe, 0xba, 0xd0, 0x44, 0x51, 0xda, 0xe7, 0x9f, + 0x7b, 0xd9, 0x5c, 0xc5, 0x77, 0xce, 0xb6, 0x56, + 0x0d, 0x4b, 0x3d, 0xac, 0xfd, 0x2f, 0x96, 0x16, + 0xea, 0xe3, 0x6b, 0x9c, 0xfd, 0xd1, 0x1f, 0x7d, + 0x5d, 0x75, 0x1a, 0xdd, 0x99, 0x40, 0x1e, 0x5a, + 0xf1, 0xa7, 0xcc, 0xcb, 0xc9, 0xd3, 0x83, 0x3f, + 0x1f, 0xef, 0xbe, 0xca, 0x4e, 0xb5, 0xfa, 0xba, + 0xcd, 0x27, 0x3e, 0x2d, 0x30, 0xc6, 0x00, 0xb5, + 0xcc, 0xeb, 0xb0, 0x02, 0x66, 0xe2, 0x55, 0xe0, + 0xdb, 0x0a, 0x50, 0xc5, 0x0e, 0x22, 0x32, 0x81, + 0x37, 0xc0, 0x18, 0x60, 0x04, 0x0c, 0x13, 0xa1, + 0x1b, 0x8c, 0x50, 0x92, 0x01, 0xc9, 0x45, 0x3c, + 0xa1, 0x02, 0x87, 0x0e, 0xfb, 0xae, 0x2c, 0x57, + 0x56, 0xe4, 0xeb, 0x5d, 0x98, 0xa9, 0x21, 0x82, + 0xc1, 0xcd, 0x4a, 0x1b, 0x28, 0x46, 0xa2, 0xb7, + 0x7a, 0x7d, 0x68, 0x7a, 0x4d, 0x8a, 0x27, 0x40, + 0x00, 0x88, 0x50, 0xb7, 0x86, 0x00, 0x9a, 0xa2, + 0xb6, 0xd5, 0x60, 0x23, 0xd0, 0xb0, 0x5e, 0xd0, + 0x91, 0x15, 0x90, 0xae, 0x4e, 0x20, 0x74, 0xe9, + 0x3a, 0x78, 0x9e, 0x50, 0xe1, 0x15, 0x55, 0x13, + 0x86, 0x01, 0xdc, 0x8f, 0xd9, 0x69, 0x0f, 0xd4, + 0x06, 0xba, 0x8f, 0xac, 0xa5, 0x83, 0x20, 0xf7, + 0x3b, 0x44, 0x5d, 0xde, 0x87, 0x2b, 0x3c, 0x04, + 0x4f, 0x06, 0x52, 0x33, 0x0f, 0x12, 0x43, 0x8c, + 0x08, 0x6e, 0x1b, 0xe9, 0xbc, 0xfc, 0x60, 0x31, + 0x84, 0x26, 0x1b, 0x91, 0x11, 0xe8, 0x2f, 0xca, + 0x89, 0x16, 0xf7, 0x57, 0x84, 0xaa, 0xa5, 0x85, + 0x66, 0x40, 0x70, 0x3d, 0x57, 0x05, 0x3c, 0xe1, + 0x2c, 0x38, 0x02, 0x4d, 0x0d, 0xb2, 0x30, 0xa7, + 0x71, 0xd9, 0x08, 0x8c, 0x57, 0x21, 0xf2, 0x9c, + 0xf1, 0xc4, 0x91, 0x9f, 0xda, 0x81, 0x5b, 0x38, + 0x96, 0xb3, 0xf1, 0x6f, 0x96, 0x2c, 0xd6, 0x38, + 0xd3, 0x9a, 0xd0, 0x9b, 0x17, 0x95, 0x85, 0x27, + 0x16, 0xec, 0x04, 0x32, 0xa7, 0x87, 0xe1, 0x06, + 0xf5, 0x39, 0x4c, 0x18, 0x84, 0x3f, 0xb3, 0x85, + 0x80, 0x64, 0x04, 0x12, 0xb9, 0xa0, 0xd5, 0x78, + 0x2e, 0x7f, 0x35, 0x78, 0xc5, 0xe5, 0x3f, 0x20, + 0x69, 0xa2, 0x40, 0x90, 0x20, 0x50, 0x05, 0xf0, + 0x70, 0xdd, 0x4a, 0x64, 0xa8, 0x05, 0x52, 0x1a, + 0xd1, 0x48, 0x8c, 0x5a, 0x25, 0x44, 0x6c, 0x2b, + 0x60, 0xcb, 0x52, 0x12, 0x49, 0x8a, 0x65, 0x18, + 0x56, 0xec, 0x80, 0xf5, 0xd9, 0x31, 0x5b, 0x83, + 0x41, 0x48, 0x86, 0x10, 0x68, 0x45, 0x17, 0xca, + 0xd7, 0x54, 0x1c, 0x6c, 0x2a, 0xb2, 0x85, 0xd6, + 0x97, 0xca, 0x15, 0x44, 0xc4, 0x67, 0xc2, 0xab, + 0x94, 0x8b, 0x30, 0x56, 0x40, 0x0a, 0xcf, 0x12, + 0x81, 0xb8, 0x82, 0xc1, 0x8d, 0x31, 0x75, 0xdb, + 0x76, 0x41, 0xf9, 0x8f, 0x78, 0x22, 0xa7, 0xc0, + 0x48, 0xc3, 0x7b, 0xd9, 0xdb, 0x30, 0xf3, 0x96, + 0x98, 0x19, 0x44, 0x01, 0x80, 0x21, 0xd9, 0x44, + 0x83, 0x65, 0xa6, 0x7e, 0xa6, 0x2f, 0x64, 0xab, + 0x3d, 0x24, 0xea, 0xd6, 0x53, 0x2f, 0xe7, 0xf2, + 0xc1, 0x6d, 0xe0, 0xbc, 0xaa, 0x46, 0x62, 0x59, + 0x44, 0x4e, 0xc6, 0xec, 0xac, 0xdf, 0x70, 0xca, + 0xd8, 0x84, 0xc1, 0x99, 0x83, 0xd6, 0xc1, 0x74, + 0x8b, 0xe5, 0xc4, 0xd9, 0x89, 0xa6, 0xc0, 0x1f, + 0x61, 0x4c, 0xc7, 0xa7, 0x13, 0x80, 0xd6, 0x63, + 0x5e, 0x80, 0x03, 0x46, 0x7f, 0x47, 0x48, 0x93, + 0x48, 0x13, 0xf0, 0x76, 0xc0, 0x1e, 0xf9, 0x1e, + 0xa6, 0x94, 0x06, 0xc8, 0xa3, 0x0a, 0xb0, 0xc6, + 0x41, 0x5a, 0x14, 0x1c, 0x19, 0xda, 0x38, 0x85, + 0x01, 0x32, 0x2d, 0xea, 0x50, 0x24, 0x2c, 0x6a, + 0xb7, 0xf8, 0x2f, 0x65, 0xca, 0x49, 0x9e, 0x0a, + 0x64, 0x04, 0x34, 0x25, 0x54, 0x2f, 0x5a, 0xaf, + 0x43, 0x96, 0xe0, 0xb1, 0x85, 0x11, 0xfb, 0xe5, + 0xbd, 0x1e, 0xff, 0x00, 0x13, 0x1a, 0xd9, 0xe7, + 0x03, 0x25, 0xdc, 0x33, 0x7c, 0x85, 0x18, 0x71, + 0xeb, 0x20, 0x20, 0x89, 0x25, 0x20, 0x12, 0xac, + 0x28, 0xa2, 0x62, 0x29, 0x63, 0x99, 0x98, 0x42, + 0x9a, 0x15, 0x05, 0x94, 0x29, 0xb6, 0x0b, 0x4c, + 0x4c, 0x5a, 0x11, 0x10, 0xa4, 0x50, 0x45, 0x28, + 0x99, 0x28, 0x62, 0xc3, 0x99, 0x0a, 0x93, 0x09, + 0x0b, 0x20, 0x96, 0x80, 0x48, 0x84, 0xe0, 0x2a, + 0x07, 0xc9, 0x80, 0xfc, 0x55, 0x71, 0xb5, 0x94, + 0x20, 0x4c, 0xff, 0x00, 0xc7, 0x97, 0x14, 0x72, + 0xe4, 0x4b, 0x8a, 0xc4, 0x59, 0x03, 0xf7, 0x49, + 0x87, 0x90, 0xc3, 0x03, 0xca, 0xfd, 0xb6, 0xb8, + 0xc8, 0xca, 0xdd, 0x56, 0x88, 0xc8, 0x3d, 0x8b, + 0x7a, 0xb3, 0xd2, 0x75, 0x21, 0x99, 0xc9, 0xc8, + 0x64, 0xf7, 0xfb, 0x8c, 0xec, 0x41, 0x13, 0xb1, + 0xd2, 0x94, 0x92, 0x17, 0x80, 0x19, 0x9f, 0xfe, + 0xba, 0x16, 0x9c, 0xe9, 0x60, 0x64, 0xdb, 0x66, + 0x22, 0x68, 0x00, 0xd2, 0xc1, 0x24, 0x60, 0xe7, + 0x6a, 0x49, 0x4a, 0x4b, 0x36, 0xd8, 0x49, 0xc7, + 0x3d, 0x54, 0xf1, 0x16, 0xab, 0x92, 0xc2, 0x36, + 0x9d, 0x23, 0x45, 0xa3, 0x89, 0x7a, 0x1c, 0x65, + 0x37, 0x52, 0x0b, 0xec, 0x38, 0xc7, 0x78, 0x06, + 0x69, 0xa7, 0xb8, 0x52, 0x93, 0xe1, 0x95, 0x54, + 0x72, 0xab, 0x57, 0x33, 0x5d, 0x83, 0xd2, 0xfb, + 0xe7, 0x01, 0xac, 0xb3, 0xad, 0x64, 0x54, 0xbb, + 0xa1, 0xa0, 0x11, 0xe8, 0x15, 0xd6, 0xaa, 0x20, + 0x9b, 0xcf, 0x3c, 0x28, 0x86, 0x26, 0x10, 0x8e, + 0xc7, 0xba, 0x31, 0xe9, 0x57, 0xe7, 0xdb, 0x4d, + 0x39, 0x84, 0xcc, 0x85, 0x22, 0xf9, 0x2e, 0xe2, + 0x27, 0xc9, 0x9f, 0x9c, 0xe5, 0x70, 0xc4, 0x53, + 0x95, 0x49, 0x67, 0x10, 0x72, 0x5b, 0x9c, 0xb7, + 0xb0, 0xe5, 0xa8, 0x3a, 0x60, 0xea, 0xac, 0x7b, + 0x0e, 0xf0, 0xc6, 0x59, 0xd5, 0x13, 0x25, 0xa0, + 0x31, 0x10, 0xc1, 0x0a, 0xb9, 0xe0, 0x38, 0xb7, + 0x22, 0x05, 0xf2, 0xce, 0x4b, 0x02, 0x3b, 0x29, + 0x24, 0xd9, 0x66, 0x38, 0x51, 0x96, 0x43, 0x12, + 0x2d, 0xa2, 0x89, 0x35, 0x0c, 0x2a, 0x8b, 0x27, + 0x61, 0x3d, 0x07, 0x1e, 0x03, 0xf8, 0x7a, 0xb2, + 0x41, 0xb3, 0x15, 0x8b, 0x92, 0x68, 0x7a, 0xd9, + 0xdf, 0xa5, 0x64, 0x2e, 0x56, 0x90, 0x9b, 0xe8, + 0xfc, 0x54, 0xb1, 0x0d, 0x6e, 0xe0, 0x31, 0x28, + 0x0d, 0x1e, 0x31, 0x30, 0xe6, 0xf9, 0x59, 0x28, + 0x01, 0x4b, 0x29, 0x07, 0xcd, 0x03, 0xa4, 0x48, + 0x33, 0x99, 0x28, 0x0e, 0x09, 0x80, 0xba, 0x01, + 0x8f, 0x91, 0x50, 0x11, 0xe1, 0x98, 0x7d, 0x3a, + 0x70, 0x2a, 0xc8, 0x8a, 0x37, 0xd3, 0x3f, 0x9f, + 0x9e, 0x10, 0xf2, 0x60, 0x6c, 0xfe, 0x86, 0x12, + 0x01, 0x18, 0x82, 0x76, 0x68, 0xe8, 0xea, 0xce, + 0x06, 0x41, 0x70, 0xb5, 0x99, 0x8c, 0x36, 0xa1, + 0x0d, 0xc8, 0x01, 0xa2, 0x10, 0x78, 0x06, 0xc0, + 0x28, 0x58, 0x4d, 0x75, 0x7d, 0xf2, 0xae, 0xe2, + 0x8e, 0xf4, 0xe0, 0x5c, 0x64, 0x21, 0xe2, 0x7c, + 0x4b, 0x01, 0xb1, 0x26, 0x47, 0xd9, 0x02, 0xdc, + 0x0e, 0x96, 0x05, 0x50, 0xe4, 0x10, 0x53, 0x01, + 0x07, 0xd9, 0x4a, 0x06, 0xd8, 0x42, 0x7d, 0xb7, + 0xc5, 0xf8, 0x73, 0x97, 0x2d, 0x19, 0x37, 0x46, + 0x4b, 0xa8, 0xe3, 0x5f, 0xa6, 0x4f, 0xe8, 0x42, + 0x84, 0xaa, 0xfe, 0x59, 0x20, 0xe7, 0x30, 0x4c, + 0xc6, 0x05, 0x4e, 0x82, 0x92, 0x8d, 0xfd, 0x52, + 0xff, 0x00, 0x70, 0xad, 0xf3, 0x6c, 0x1c, 0x97, + 0x27, 0xae, 0xff, 0x00, 0x84, 0x31, 0xf9, 0x8a, + 0x2b, 0x7d, 0xcb, 0x43, 0xe7, 0xe2, 0x40, 0xa5, + 0x84, 0x70, 0x8d, 0x13, 0x84, 0x22, 0x9d, 0x55, + 0x54, 0x13, 0xce, 0x27, 0x00, 0xdc, 0x31, 0x15, + 0xd9, 0xaf, 0x1d, 0x90, 0x60, 0xe4, 0xd6, 0x08, + 0xa7, 0x3d, 0x0d, 0x9b, 0xb3, 0x73, 0xe8, 0x78, + 0xf2, 0x70, 0x95, 0x9b, 0x20, 0x74, 0x30, 0x9d, + 0x87, 0x91, 0xc2, 0xb9, 0x74, 0x52, 0x56, 0xdc, + 0x17, 0xde, 0xf7, 0x4e, 0xc3, 0x1c, 0x62, 0x8f, + 0x45, 0x67, 0xf6, 0xd4, 0xc6, 0xb1, 0xc7, 0xa9, + 0x76, 0x73, 0x33, 0x7d, 0xa3, 0x88, 0xe8, 0xe1, + 0x86, 0x7c, 0x27, 0x3a, 0xd2, 0x2e, 0x5a, 0x16, + 0xf2, 0xca, 0x8a, 0xcf, 0x94, 0xd3, 0xdc, 0xce, + 0x34, 0xee, 0x72, 0x0e, 0x88, 0xeb, 0x59, 0x01, + 0xa5, 0x14, 0xae, 0x22, 0xde, 0x44, 0x5e, 0xe5, + 0x35, 0x0d, 0xaf, 0x32, 0x12, 0xcf, 0x30, 0x6b, + 0x7b, 0x93, 0xc0, 0xcb, 0xfc, 0x1f, 0x81, 0x85, + 0x71, 0xfe, 0x12, 0xd8, 0xdf, 0x04, 0x65, 0x01, + 0x96, 0x69, 0x07, 0xea, 0x16, 0xd9, 0xef, 0x27, + 0x91, 0xf1, 0x04, 0xfa, 0x20, 0x83, 0x92, 0x4d, + 0xc3, 0x10, 0xc7, 0x8e, 0x70, 0xbe, 0x27, 0x8e, + 0xcb, 0x76, 0xe5, 0x63, 0xd2, 0x03, 0x9a, 0x97, + 0xf4, 0xa7, 0xac, 0xf1, 0xf2, 0x89, 0x0c, 0x83, + 0x25, 0x0d, 0x6f, 0x59, 0x62, 0x27, 0x43, 0x4e, + 0x40, 0xa7, 0x33, 0x05, 0xf4, 0x40, 0xf2, 0xf6, + 0x17, 0x8f, 0x44, 0x66, 0xb2, 0x5e, 0xbc, 0x25, + 0x8c, 0xab, 0x13, 0x96, 0x57, 0x21, 0x43, 0x5f, + 0x07, 0x59, 0x84, 0x8d, 0x53, 0x39, 0x34, 0xc8, + 0xea, 0x7d, 0x39, 0x85, 0x8f, 0x7e, 0x81, 0xc1, + 0x9e, 0x76, 0x73, 0x34, 0xce, 0x52, 0x8e, 0x5f, + 0x36, 0x51, 0xea, 0x51, 0x02, 0xc6, 0x38, 0x12, + 0xe0, 0x0c, 0x87, 0x2b, 0x1b, 0xa7, 0x2d, 0x4e, + 0xbf, 0x18, 0x45, 0xa0, 0xee, 0xf7, 0x1f, 0xd0, + 0xbe, 0x28, 0x33, 0xd3, 0x29, 0x0b, 0x04, 0xf8, + 0x4f, 0xda, 0x72, 0xed, 0xab, 0xfd, 0x29, 0xb7, + 0xb2, 0xb9, 0xb1, 0xc9, 0xa6, 0x31, 0x70, 0xe0, + 0xc8, 0xa5, 0x2b, 0xf3, 0x29, 0x81, 0x99, 0x4b, + 0xfc, 0xd0, 0x6d, 0x9b, 0x42, 0xc1, 0x83, 0x69, + 0x05, 0x0d, 0x23, 0x18, 0x61, 0x0c, 0xc7, 0x79, + 0x62, 0x88, 0xb0, 0x17, 0x6a, 0x64, 0x0c, 0xb0, + 0x70, 0x35, 0x96, 0x10, 0x59, 0xd0, 0x37, 0xc2, + 0x9e, 0x33, 0x47, 0x4f, 0x4c, 0x91, 0x37, 0x02, + 0xe4, 0x5f, 0x63, 0x05, 0x71, 0xc5, 0x57, 0x9c, + 0x36, 0xa8, 0x5b, 0xce, 0x06, 0xd4, 0x8a, 0x0d, + 0xe2, 0x44, 0x18, 0xa0, 0xc9, 0xcb, 0xc8, 0x1c, + 0xff, 0x00, 0x1f, 0x8b, 0x9b, 0x84, 0x80, 0xbc, + 0xa1, 0xa6, 0x9a, 0x45, 0xc6, 0x74, 0x92, 0x7f, + 0x15, 0xfd, 0x54, 0x35, 0xd1, 0x61, 0x89, 0x5c, + 0x38, 0xed, 0xca, 0x10, 0x2e, 0x4f, 0x77, 0x5b, + 0x38, 0x97, 0x58, 0x3e, 0x6d, 0x8e, 0x1c, 0x71, + 0xbb, 0xfd, 0x04, 0x9a, 0xe8, 0xd2, 0xbc, 0x56, + 0x0c, 0x4b, 0x07, 0x0f, 0xd4, 0x08, 0x7c, 0x08, + 0xe2, 0xc8, 0xc3, 0xe6, 0xa2, 0x10, 0xb2, 0x08, + 0xb8, 0x80, 0x50, 0x6b, 0x5c, 0xd7, 0x1b, 0x58, + 0x59, 0x6a, 0xd1, 0x42, 0xd9, 0x19, 0xbb, 0x81, + 0x56, 0x61, 0x50, 0x60, 0x51, 0xe2, 0x1a, 0x69, + 0x52, 0x58, 0x42, 0x80, 0xc8, 0x75, 0x24, 0xa2, + 0xa9, 0x16, 0xbe, 0xe7, 0x82, 0xe5, 0x69, 0x1a, + 0x3a, 0xbb, 0xb7, 0x52, 0x99, 0xb5, 0x51, 0xbd, + 0xf3, 0x46, 0xcb, 0xde, 0xa4, 0x47, 0xe4, 0xe6, + 0x0d, 0x89, 0x8d, 0x1d, 0xcf, 0xfa, 0x95, 0xf7, + 0xc9, 0x87, 0xc9, 0xf9, 0xa8, 0xa1, 0x71, 0xf0, + 0x61, 0xe1, 0xc3, 0x69, 0xf3, 0xda, 0xe1, 0xa4, + 0x24, 0x14, 0x31, 0x51, 0x9d, 0x7e, 0xde, 0x5d, + 0x48, 0xa2, 0x29, 0x59, 0x7a, 0xe6, 0xc5, 0x59, + 0x24, 0x3d, 0x78, 0xf9, 0x97, 0x6a, 0xa9, 0xd0, + 0xb0, 0x56, 0xe6, 0xdc, 0x7d, 0x89, 0x15, 0x5a, + 0x76, 0x34, 0xbe, 0xde, 0x64, 0xdd, 0x32, 0xc8, + 0x43, 0x55, 0x03, 0xe4, 0xdf, 0xd2, 0x4a, 0xe3, + 0x03, 0x0d, 0xd8, 0x10, 0x98, 0x65, 0x13, 0xa8, + 0x06, 0x5a, 0x43, 0x2f, 0x80, 0xc9, 0x2c, 0x08, + 0xc6, 0xec, 0x71, 0x3e, 0x5a, 0x32, 0x49, 0xcb, + 0xfa, 0x4e, 0xf5, 0x56, 0x0b, 0xc5, 0x08, 0x96, + 0x29, 0x5b, 0x52, 0x2f, 0x50, 0xd4, 0xc0, 0xee, + 0xb0, 0xcc, 0x56, 0x7a, 0xcb, 0x00, 0x8b, 0x32, + 0x27, 0xdf, 0xb0, 0x60, 0x59, 0xd4, 0xf0, 0xe3, + 0x29, 0x29, 0x22, 0x30, 0x3c, 0x1e, 0xfc, 0x68, + 0x61, 0x56, 0x92, 0xfd, 0x28, 0x4f, 0x31, 0xb4, + 0x09, 0xb9, 0x9e, 0xb9, 0x9b, 0x80, 0xa7, 0xea, + 0x69, 0x0b, 0xa2, 0x4e, 0xd9, 0x05, 0xb9, 0x32, + 0x8a, 0x6c, 0x85, 0x9f, 0x01, 0x7e, 0x85, 0x5e, + 0x57, 0xc1, 0xd3, 0xc3, 0x69, 0x8b, 0x96, 0xab, + 0xaf, 0x1c, 0x85, 0xf8, 0x49, 0x2b, 0x37, 0x10, + 0x7c, 0x74, 0x5f, 0xaf, 0x21, 0x28, 0x22, 0x1c, + 0x6d, 0x19, 0x1b, 0x80, 0x46, 0xc1, 0x58, 0xce, + 0xaa, 0x58, 0x0e, 0x9d, 0xf8, 0x12, 0x01, 0x80, + 0x37, 0xec, 0x47, 0xcc, 0x57, 0xb4, 0x00, 0x83, + 0xb8, 0x14, 0x70, 0x38, 0x83, 0x5b, 0xe0, 0xbb, + 0x32, 0xde, 0x91, 0x1a, 0xd1, 0x8c, 0xb2, 0x90, + 0xf1, 0x05, 0x32, 0x5c, 0x40, 0x89, 0xc2, 0x4a, + 0xcb, 0x07, 0xe4, 0x0f, 0xd3, 0x4e, 0x28, 0xd9, + 0x3b, 0x1e, 0xf6, 0x2b, 0x13, 0xa5, 0x09, 0x2c, + 0x6b, 0x45, 0xff, 0x00, 0x31, 0x20, 0x79, 0xfd, + 0x64, 0x4f, 0xd0, 0xa3, 0xec, 0xed, 0x21, 0x2d, + 0x19, 0x3c, 0x18, 0x27, 0x31, 0xaa, 0xd8, 0x73, + 0xfa, 0xb8, 0x74, 0x73, 0x75, 0x57, 0x43, 0x04, + 0x1c, 0xc1, 0xfe, 0x9a, 0x44, 0xee, 0xc3, 0x5c, + 0xca, 0x53, 0x1c, 0xcc, 0x0f, 0x16, 0x1e, 0x8e, + 0x2d, 0xcf, 0xc3, 0x4d, 0x89, 0xa7, 0x6c, 0xb3, + 0x82, 0x0e, 0xd1, 0xce, 0xe8, 0x5c, 0x96, 0x7a, + 0xdc, 0x0c, 0x65, 0x56, 0x06, 0x4b, 0x81, 0x0f, + 0xbc, 0x73, 0x27, 0x73, 0xa4, 0xf2, 0x89, 0x45, + 0xa8, 0x58, 0xf8, 0xca, 0x02, 0x5d, 0x8c, 0x50, + 0xcc, 0x3e, 0x39, 0x4a, 0xcb, 0x54, 0xe4, 0x3e, + 0x6e, 0x6d, 0xe7, 0xfc, 0xb4, 0x30, 0x63, 0x68, + 0x5c, 0x3b, 0x25, 0x85, 0xa0, 0xa6, 0xd9, 0x8d, + 0x4a, 0x64, 0x78, 0x5d, 0x99, 0x6d, 0xb2, 0xe3, + 0x94, 0x35, 0x66, 0x39, 0xec, 0x39, 0x12, 0x56, + 0x00, 0x68, 0xb8, 0xc8, 0x6b, 0x0b, 0x2a, 0x89, + 0x10, 0xa9, 0xcf, 0xa8, 0x9a, 0xf9, 0x9c, 0x14, + 0x5f, 0xdd, 0x26, 0xc3, 0x0c, 0x98, 0x61, 0x6a, + 0x6b, 0x91, 0x7d, 0x38, 0x88, 0x90, 0x32, 0x2d, + 0x06, 0x45, 0xd2, 0x10, 0xef, 0x89, 0xfd, 0x35, + 0x2d, 0x8a, 0x96, 0xa0, 0x58, 0x38, 0x15, 0x72, + 0x72, 0x11, 0x61, 0x0d, 0x79, 0x77, 0x18, 0xf4, + 0x84, 0x1b, 0x96, 0x82, 0x68, 0xde, 0xd0, 0xf5, + 0x8e, 0x0f, 0x01, 0x3b, 0x95, 0xc8, 0x88, 0x22, + 0x10, 0xf7, 0xc6, 0xcc, 0x38, 0xea, 0xf0, 0x6b, + 0xc2, 0x71, 0x31, 0x43, 0x89, 0x53, 0xe4, 0x44, + 0x69, 0x99, 0x1f, 0xda, 0x46, 0x42, 0x19, 0xb6, + 0x65, 0xe6, 0xd5, 0xec, 0x0b, 0x9d, 0x84, 0xc5, + 0x58, 0x14, 0xdd, 0x55, 0xed, 0x04, 0xe4, 0x6d, + 0x45, 0xe0, 0xbe, 0x85, 0xb5, 0xc7, 0x26, 0x44, + 0x70, 0x92, 0xef, 0x15, 0xce, 0x44, 0x0b, 0x1e, + 0x23, 0xe4, 0x8c, 0x51, 0xd0, 0x0b, 0x32, 0x03, + 0x41, 0x46, 0x0c, 0x29, 0x32, 0xcf, 0x15, 0xea, + 0x8c, 0xf0, 0x68, 0x6b, 0xb3, 0x58, 0x96, 0xbc, + 0x71, 0xb5, 0x76, 0x76, 0x3f, 0x83, 0x37, 0xf9, + 0x57, 0x11, 0x12, 0xb2, 0xff, 0x00, 0xec, 0x61, + 0x2d, 0x5b, 0x7b, 0xac, 0x72, 0x20, 0x3d, 0x1a, + 0x95, 0x87, 0xa5, 0x38, 0x44, 0x2c, 0x19, 0xdc, + 0x01, 0xe8, 0x47, 0xaa, 0x0e, 0xc0, 0xe8, 0xcc, + 0xe0, 0xa2, 0x52, 0xaf, 0xc8, 0xd5, 0x14, 0xc4, + 0x43, 0x1f, 0x85, 0x3b, 0x89, 0xc0, 0xd9, 0x23, + 0x18, 0x97, 0xb8, 0xb2, 0x59, 0x14, 0x1f, 0xe1, + 0x80, 0xaa, 0x72, 0xa0, 0x2f, 0x40, 0xa9, 0xe2, + 0x42, 0xce, 0xc7, 0x2e, 0xb6, 0xba, 0x75, 0x73, + 0x17, 0x20, 0x13, 0x1a, 0x91, 0xc7, 0x58, 0x96, + 0x11, 0x38, 0x61, 0x98, 0xa2, 0x4d, 0xce, 0x6d, + 0x4c, 0x28, 0x58, 0xd8, 0xa0, 0x0b, 0x4b, 0xc6, + 0x2e, 0xde, 0x21, 0xbd, 0x26, 0x1a, 0x27, 0xe0, + 0x00, 0xc5, 0x46, 0x4e, 0x0b, 0x4b, 0x3b, 0x0c, + 0xc3, 0x31, 0xea, 0x34, 0x6a, 0xe2, 0xeb, 0x8e, + 0x4b, 0x15, 0xad, 0xb8, 0x21, 0xa3, 0xc4, 0x7b, + 0x14, 0xd3, 0xfd, 0x04, 0x47, 0xbe, 0x86, 0xce, + 0x05, 0x26, 0x5a, 0x7c, 0x04, 0x75, 0xa8, 0x6a, + 0xa3, 0x88, 0xde, 0x2c, 0xff, 0x00, 0x02, 0x31, + 0x54, 0x2d, 0xc5, 0xf1, 0xc6, 0x1a, 0xf2, 0xc3, + 0x13, 0xab, 0x02, 0xeb, 0x74, 0xa3, 0xe3, 0xad, + 0x8b, 0x05, 0xcd, 0x01, 0xb6, 0x43, 0xc8, 0x8b, + 0xcb, 0x60, 0x1b, 0xfc, 0x3a, 0x25, 0x62, 0xc1, + 0xef, 0x4e, 0x23, 0xf6, 0x45, 0x5b, 0xc0, 0x32, + 0xcd, 0xa3, 0x33, 0xc7, 0x83, 0x8d, 0x9a, 0x50, + 0x79, 0x99, 0x35, 0x8a, 0x8e, 0xee, 0x65, 0x8b, + 0x31, 0x70, 0x86, 0xcf, 0x43, 0x80, 0x19, 0x4e, + 0x73, 0xa7, 0xa0, 0xb5, 0x9a, 0x44, 0x67, 0xc5, + 0x33, 0x1c, 0x10, 0x04, 0x58, 0x67, 0xb8, 0x67, + 0x69, 0x32, 0xc9, 0xd9, 0x0c, 0x94, 0x17, 0x36, + 0x47, 0xa6, 0xf3, 0x00, 0x02, 0xb2, 0xd4, 0xa6, + 0x00, 0xa4, 0xac, 0x82, 0x17, 0xf4, 0x0a, 0x47, + 0x91, 0xa9, 0x91, 0x8c, 0x5b, 0xbe, 0xca, 0x03, + 0x69, 0x4e, 0x3e, 0x3a, 0x9e, 0x8a, 0x3c, 0x48, + 0x71, 0x37, 0xa1, 0xe6, 0x0c, 0xcb, 0x65, 0x91, + 0xac, 0x81, 0x06, 0x66, 0xfb, 0x92, 0x3f, 0xa9, + 0x4e, 0xbf, 0x60, 0xed, 0x56, 0x05, 0x51, 0x67, + 0x00, 0x6c, 0x62, 0x2a, 0x28, 0x33, 0x7c, 0x3a, + 0x60, 0xd8, 0x13, 0xaa, 0x4b, 0x7a, 0xf7, 0x42, + 0x03, 0xb7, 0x28, 0x25, 0x69, 0x98, 0xe3, 0x82, + 0x2e, 0xa2, 0x80, 0x0e, 0x49, 0xd7, 0xbe, 0x55, + 0xcc, 0xb0, 0x0c, 0xda, 0x73, 0x71, 0x5e, 0x48, + 0xab, 0x0d, 0xb0, 0x87, 0x3e, 0xc1, 0xab, 0xd5, + 0x70, 0x64, 0x66, 0x38, 0x45, 0xad, 0x1d, 0x83, + 0x51, 0x7a, 0xc7, 0x7a, 0xd2, 0xc5, 0x9e, 0xef, + 0x8c, 0x32, 0x50, 0xe5, 0x89, 0x51, 0xd1, 0xec, + 0x2a, 0x60, 0xf6, 0x8f, 0x51, 0x3d, 0xd0, 0x5a, + 0xdd, 0xac, 0xaf, 0xcf, 0xf3, 0xb8, 0x3c, 0x80, + 0x66, 0x89, 0xa0, 0x62, 0x2c, 0x6b, 0xf9, 0xac, + 0x3e, 0x1a, 0xf0, 0x62, 0x0e, 0x69, 0x77, 0x79, + 0xf6, 0x75, 0x10, 0x5b, 0x8d, 0x8a, 0xeb, 0x9e, + 0x70, 0x9d, 0xae, 0x67, 0xb4, 0x5e, 0xa2, 0xb1, + 0x5c, 0xe2, 0x2c, 0x36, 0x95, 0xfa, 0x19, 0x18, + 0x88, 0x79, 0xb6, 0xbe, 0x53, 0x2a, 0x32, 0x7d, + 0x8f, 0x85, 0x63, 0x2d, 0x98, 0x6b, 0x10, 0x2d, + 0xf0, 0x99, 0xc9, 0x98, 0x85, 0xc7, 0x05, 0x57, + 0xfc, 0x26, 0x02, 0x5b, 0xa6, 0xf0, 0x04, 0x30, + 0xfd, 0x0c, 0x44, 0x09, 0xc8, 0xfa, 0x92, 0xd1, + 0xcd, 0x78, 0x91, 0x3e, 0x3b, 0x68, 0x6b, 0x7f, + 0x43, 0x03, 0x32, 0xaf, 0xac, 0x7d, 0x7f, 0x47, + 0xc3, 0x34, 0x78, 0xd1, 0x8f, 0x24, 0x80, 0x21, + 0x22, 0xbc, 0x26, 0x75, 0xaf, 0x51, 0x18, 0x96, + 0x6e, 0xda, 0x13, 0x4f, 0x31, 0x92, 0x8b, 0x19, + 0xa4, 0x78, 0x93, 0x21, 0x25, 0x91, 0xf1, 0x6f, + 0xa6, 0x98, 0x19, 0x53, 0x28, 0x5f, 0xc1, 0x84, + 0xba, 0x91, 0x88, 0xe6, 0x7e, 0x20, 0x41, 0x3b, + 0x57, 0xd2, 0x75, 0x1d, 0x23, 0x97, 0x37, 0x33, + 0x58, 0x10, 0x25, 0x24, 0x68, 0x9a, 0x72, 0x63, + 0x2f, 0xcc, 0x7a, 0x8c, 0x1f, 0x15, 0xcf, 0xdf, + 0x39, 0x55, 0x60, 0x48, 0x83, 0xdf, 0xa7, 0x44, + 0xf8, 0x61, 0xe5, 0x23, 0xb0, 0x51, 0x6e, 0x63, + 0x0a, 0xcd, 0x76, 0xb8, 0x2c, 0x0a, 0xef, 0x73, + 0x9d, 0x84, 0xee, 0xc9, 0x7d, 0xbe, 0x36, 0xe6, + 0x8a, 0xcb, 0x32, 0x3c, 0x22, 0x27, 0x5c, 0x1b, + 0x41, 0x7b, 0x63, 0x9c, 0x4c, 0xe1, 0x9d, 0xe2, + 0xa5, 0xa4, 0x8a, 0xba, 0x4f, 0x55, 0x4c, 0x03, + 0xaa, 0x3f, 0x46, 0x13, 0x92, 0x3f, 0xe4, 0x0b, + 0x94, 0xcf, 0x71, 0x98, 0x25, 0x14, 0x66, 0xc8, + 0xce, 0x12, 0x8f, 0xfa, 0x66, 0xc1, 0x42, 0x61, + 0x6a, 0x77, 0x5f, 0x92, 0x74, 0xca, 0x0a, 0x33, + 0xb3, 0xbe, 0x30, 0x35, 0x70, 0x83, 0xb8, 0x03, + 0xb8, 0x00, 0xd9, 0xd7, 0xa6, 0x31, 0x74, 0xea, + 0x0e, 0x34, 0x6a, 0x62, 0x33, 0x84, 0x58, 0x94, + 0x18, 0xcc, 0x41, 0x64, 0xc6, 0x25, 0x57, 0xd9, + 0xa0, 0x08, 0x99, 0x24, 0x45, 0x26, 0x78, 0xcd, + 0xa1, 0xb5, 0x76, 0x3b, 0x1c, 0xa2, 0xdb, 0xcc, + 0x92, 0x06, 0xc2, 0x47, 0x88, 0x69, 0x24, 0x7f, + 0x09, 0xe5, 0x82, 0xfb, 0x55, 0x81, 0x31, 0x2a, + 0x67, 0xdb, 0x8e, 0x45, 0x84, 0xf1, 0x92, 0xd8, + 0x66, 0x26, 0xa2, 0xa9, 0x86, 0x50, 0x4e, 0xc3, + 0xa9, 0x14, 0x0b, 0x05, 0x5c, 0x91, 0x27, 0x29, + 0x05, 0xa5, 0x72, 0x28, 0x84, 0x6b, 0x30, 0x87, + 0x21, 0x12, 0x58, 0x23, 0x2d, 0x83, 0x00, 0x21, + 0xaf, 0xfe, 0x44, 0x7a, 0x33, 0xb1, 0x60, 0x28, + 0xf6, 0x36, 0xae, 0x87, 0x16, 0x38, 0xab, 0x6f, + 0x15, 0x06, 0x08, 0x48, 0xff, 0x00, 0x25, 0x14, + 0x1f, 0x51, 0x0a, 0x88, 0xb8, 0x5c, 0xc1, 0x40, + 0xad, 0x97, 0x4a, 0x66, 0xb0, 0xe5, 0x40, 0x2b, + 0x9f, 0xb0, 0x42, 0xc0, 0x85, 0x93, 0x08, 0xb0, + 0xb0, 0x3c, 0xa1, 0xa3, 0xac, 0x05, 0xf8, 0x03, + 0x01, 0xc5, 0x61, 0x6a, 0x3a, 0x12, 0x83, 0x6e, + 0xf2, 0xf0, 0x3d, 0x0e, 0x40, 0xc1, 0xa0, 0x70, + 0x4f, 0x59, 0x8c, 0x80, 0x4b, 0xf8, 0x88, 0x97, + 0x22, 0x55, 0x8a, 0x51, 0xa3, 0x64, 0xdd, 0x42, + 0x28, 0xbd, 0x35, 0x80, 0x24, 0x20, 0x1a, 0xe6, + 0x39, 0xc3, 0x13, 0xb2, 0x0c, 0x21, 0x16, 0x51, + 0x6b, 0xaa, 0xcd, 0x3a, 0x9e, 0x11, 0xe8, 0xd6, + 0xda, 0x75, 0x1e, 0x3a, 0x32, 0x66, 0x50, 0xfb, + 0x05, 0xf7, 0x3e, 0x65, 0x94, 0xbe, 0x66, 0xdc, + 0xda, 0x84, 0x95, 0x41, 0xe6, 0x82, 0x17, 0xcc, + 0xd3, 0xce, 0xc7, 0x29, 0x51, 0x35, 0x0c, 0x68, + 0x7a, 0xe5, 0xd5, 0xc5, 0x74, 0x1a, 0xc0, 0xdc, + 0x0d, 0xd5, 0x17, 0xec, 0x89, 0xa8, 0xb5, 0xfb, + 0x13, 0x28, 0x11, 0x5a, 0x90, 0x9d, 0xc7, 0xf3, + 0xf8, 0x4b, 0xc8, 0xb9, 0x2f, 0xa2, 0x17, 0xb7, + 0xa9, 0x98, 0x6a, 0x7a, 0xa7, 0x1a, 0x86, 0x0c, + 0xd6, 0xbd, 0x8f, 0xc2, 0x6e, 0x1d, 0x60, 0xd2, + 0x49, 0x2e, 0x85, 0x14, 0x36, 0xa4, 0xf8, 0x85, + 0xfe, 0xb0, 0xd0, 0x10, 0xe6, 0x91, 0x5c, 0x45, + 0x00, 0xfa, 0xe7, 0x57, 0x18, 0x54, 0xe8, 0xf0, + 0x4f, 0xbd, 0x13, 0x16, 0x45, 0xee, 0x6d, 0x70, + 0xae, 0x21, 0x5b, 0x1b, 0x46, 0x06, 0xe7, 0xb8, + 0xe6, 0x0a, 0x39, 0xc2, 0x55, 0x88, 0xc5, 0x7e, + 0x1e, 0xaa, 0x3c, 0xfa, 0x8c, 0x6b, 0xc7, 0x5b, + 0xf4, 0x75, 0x75, 0xcc, 0xf8, 0x29, 0xc8, 0x29, + 0x56, 0x62, 0x64, 0x91, 0xd4, 0xf6, 0x3f, 0xeb, + 0xca, 0x85, 0x11, 0xce, 0xe9, 0x67, 0xe5, 0xaf, + 0xb7, 0x26, 0xce, 0xe6, 0x5a, 0xca, 0xf6, 0xd1, + 0x77, 0x2b, 0xa8, 0xd5, 0x86, 0x4c, 0xdf, 0x3b, + 0x54, 0x5b, 0x9e, 0xac, 0xb9, 0xe4, 0xaa, 0x58, + 0x9c, 0x3d, 0xdd, 0x3e, 0x5f, 0x6a, 0xc3, 0x89, + 0x17, 0x4d, 0xf3, 0x94, 0xa0, 0xe2, 0x2e, 0x02, + 0x2e, 0x38, 0x36, 0x4c, 0xef, 0x9d, 0xad, 0xd1, + 0x4e, 0xd9, 0xfa, 0x7d, 0xb4, 0x73, 0x4d, 0x3d, + 0x46, 0xf2, 0x0e, 0x9f, 0x7c, 0x97, 0x75, 0x16, + 0xfc, 0x18, 0xdf, 0xfc, 0x43, 0xcd, 0x4f, 0x52, + 0xed, 0xe3, 0x73, 0x8b, 0xb5, 0x6b, 0x7e, 0x03, + 0x4a, 0x73, 0xe6, 0xef, 0x9b, 0x30, 0xba, 0x9e, + 0x6e, 0x39, 0xdf, 0x44, 0xf3, 0xb8, 0xdf, 0xce, + 0x10, 0x00, 0x38, 0x04, 0x76, 0x21, 0x57, 0xe2, + 0x48, 0x99, 0xc2, 0xdc, 0xdf, 0xd9, 0xe6, 0x36, + 0x6b, 0xe6, 0xa6, 0x1d, 0xe5, 0xd5, 0x6e, 0xf5, + 0xb8, 0xbf, 0xdb, 0xc4, 0x77, 0xa3, 0x24, 0xff, + 0x00, 0xb2, 0xbe, 0x5d, 0xbc, 0x7c, 0x4f, 0xe4, + 0x66, 0xf8, 0xe5, 0xdf, 0x1d, 0xf2, 0x4d, 0x71, + 0xe3, 0x1a, 0x8f, 0x86, 0x19, 0xd7, 0x57, 0xdd, + 0xea, 0x79, 0x75, 0x39, 0x2a, 0x6b, 0xf1, 0xbf, + 0xdf, 0x64, 0x43, 0xbf, 0xac, 0x28, 0x3b, 0xf1, + 0xae, 0xa2, 0xe2, 0x9e, 0xac, 0xa8, 0x25, 0xc6, + 0xad, 0xd3, 0xde, 0xc6, 0xcd, 0xca, 0xee, 0x14, + 0x8f, 0x33, 0x8d, 0xab, 0xe3, 0x7b, 0x9d, 0x3c, + 0xfc, 0xb0, 0xe9, 0x97, 0xce, 0x01, 0x7b, 0xff, + 0x00, 0xa6, 0xf8, 0xb7, 0xea, 0xb8, 0xc6, 0xd6, + 0xb8, 0x6b, 0xf3, 0x7e, 0x78, 0x36, 0x9c, 0x6b, + 0x1f, 0xa2, 0x5f, 0xb6, 0x2a, 0x8f, 0x2f, 0xe2, + 0x46, 0xf1, 0xea, 0x27, 0xaf, 0x8d, 0xea, 0x58, + 0x9a, 0x85, 0x60, 0xea, 0x23, 0x39, 0xb7, 0x3d, + 0xc1, 0xae, 0x37, 0xad, 0xc7, 0x37, 0x73, 0x95, + 0x8d, 0x34, 0x5f, 0x2f, 0xc3, 0x3c, 0x6e, 0xa2, + 0xac, 0xc7, 0x67, 0x6f, 0x72, 0x72, 0x44, 0xc3, + 0xc3, 0x70, 0x8f, 0x30, 0xe3, 0xd7, 0x3c, 0xc1, + 0xdf, 0x04, 0xbc, 0x29, 0x2f, 0x5d, 0x5d, 0x3b, + 0xd1, 0xfb, 0x30, 0xfc, 0xd6, 0xd4, 0xec, 0xd0, + 0x64, 0xae, 0x79, 0xd5, 0x43, 0xdf, 0x1f, 0x3e, + 0x5d, 0xe4, 0xe6, 0x67, 0xb2, 0x4e, 0x27, 0xf3, + 0x1e, 0x62, 0xce, 0x67, 0x13, 0xc5, 0xd3, 0x1d, + 0xb5, 0x6c, 0x9b, 0x6c, 0xf7, 0xc3, 0x8f, 0x51, + 0xdc, 0x3b, 0xd4, 0xea, 0x7f, 0x83, 0xf9, 0x71, + 0xdd, 0xb7, 0x44, 0x7b, 0x48, 0x9f, 0x8b, 0xf3, + 0x10, 0xbc, 0x15, 0xa3, 0x8e, 0x37, 0x13, 0x6d, + 0xf8, 0xae, 0xa6, 0x9e, 0x33, 0xac, 0x71, 0x47, + 0x33, 0xf2, 0x5d, 0xf1, 0xf4, 0x5e, 0x21, 0x8d, + 0x96, 0x04, 0xff, 0x00, 0x73, 0xbf, 0x9a, 0xde, + 0xe7, 0x0f, 0x6e, 0x8f, 0xfd, 0xfe, 0xa6, 0xeb, + 0xd4, 0x18, 0x5f, 0xad, 0x4c, 0xea, 0x3b, 0x44, + 0xd5, 0xfc, 0x3e, 0x44, 0x56, 0xbb, 0x9e, 0xc4, + 0xea, 0x66, 0xee, 0xe0, 0x9f, 0x50, 0x6f, 0x25, + 0x8e, 0x7a, 0x9d, 0x79, 0xa6, 0x4a, 0x8a, 0xe3, + 0x77, 0x38, 0xec, 0x2d, 0xf7, 0x43, 0xab, 0xb8, + 0x99, 0xee, 0x26, 0x36, 0x5d, 0x55, 0x5e, 0xe7, + 0x5b, 0xa8, 0xf1, 0xe6, 0xf1, 0x84, 0x77, 0xe6, + 0x3f, 0xbd, 0x9b, 0x99, 0x3d, 0xc1, 0x93, 0xaf, + 0x9f, 0xae, 0xbe, 0x5e, 0xe2, 0x58, 0xf0, 0xe3, + 0xd4, 0xf5, 0x5e, 0x78, 0x37, 0x07, 0x7c, 0xf5, + 0xde, 0x3f, 0xe1, 0x97, 0x7a, 0xdc, 0x4c, 0x27, + 0x87, 0x97, 0xa2, 0x9b, 0x25, 0xec, 0x05, 0xe2, + 0x52, 0x6f, 0xe2, 0x76, 0x6b, 0x8b, 0xc9, 0xc7, + 0x6d, 0xcd, 0xb1, 0x1f, 0x7a, 0x83, 0x7b, 0x8b, + 0x9b, 0x62, 0x74, 0x94, 0x77, 0x3b, 0xf3, 0x72, + 0x15, 0xe2, 0xfc, 0xe7, 0x9b, 0x1f, 0x2f, 0x70, + 0x1e, 0x75, 0x11, 0xd1, 0x39, 0xc6, 0x5e, 0x99, + 0x6f, 0x71, 0x3b, 0xbf, 0xa7, 0x53, 0x10, 0xb4, + 0xd4, 0x8e, 0x66, 0x37, 0x7d, 0x33, 0xa9, 0xe0, + 0x9e, 0xd4, 0xd6, 0x36, 0x8e, 0xb5, 0x54, 0x43, + 0xdd, 0x6f, 0xd6, 0xac, 0xc8, 0xd2, 0xc3, 0xa8, + 0x4f, 0xbf, 0xa9, 0xf3, 0xe6, 0xc0, 0x9e, 0x31, + 0x01, 0x07, 0x1b, 0xd4, 0xfc, 0xcf, 0xed, 0x3a, + 0xce, 0x32, 0x7f, 0x4a, 0xc5, 0x49, 0xb2, 0x35, + 0x74, 0x1b, 0xa7, 0x27, 0x35, 0x5a, 0x83, 0x99, + 0xa8, 0xfc, 0x37, 0xef, 0x9c, 0xd6, 0xdd, 0x8c, + 0xf7, 0xae, 0x4f, 0x2e, 0xaa, 0xbb, 0x27, 0x28, + 0x49, 0xfd, 0x73, 0x15, 0x24, 0x6b, 0x92, 0xfb, + 0xa3, 0x1c, 0x57, 0xae, 0x08, 0xe1, 0x7a, 0x84, + 0xf9, 0x97, 0xce, 0xa1, 0x5f, 0x3c, 0x40, 0xdd, + 0xf8, 0x38, 0x86, 0x3b, 0x9b, 0xd4, 0xe8, 0x3b, + 0x78, 0xf2, 0x25, 0xfc, 0x11, 0x34, 0x7a, 0xc9, + 0xcd, 0x37, 0xfb, 0xbc, 0x7e, 0x68, 0x87, 0x8f, + 0x68, 0x59, 0x2c, 0x5b, 0x7a, 0xdc, 0x73, 0xbd, + 0x53, 0xc5, 0x72, 0xce, 0x4f, 0x98, 0xe9, 0xfb, + 0x52, 0x24, 0xa9, 0x9e, 0x7c, 0x9a, 0x6a, 0x12, + 0x3e, 0x23, 0xdf, 0x17, 0x36, 0x37, 0x36, 0xab, + 0xc7, 0x19, 0xd3, 0x56, 0xfc, 0xc4, 0xff, 0x00, + 0x7c, 0xf5, 0x51, 0x9f, 0x1a, 0xff, 0x00, 0xd5, + 0xea, 0x9e, 0xa4, 0x3f, 0x6d, 0x55, 0xc7, 0x13, + 0x20, 0x47, 0xaf, 0xda, 0x4f, 0xbc, 0xba, 0x6f, + 0xf9, 0xb5, 0x9b, 0x81, 0xf0, 0xfe, 0xc6, 0x16, + 0xa5, 0x9d, 0x45, 0x7b, 0xb7, 0x55, 0xcc, 0xf8, + 0x6a, 0x37, 0xd5, 0x82, 0x2b, 0x5e, 0x9b, 0x9e, + 0x67, 0xd5, 0xf7, 0xa6, 0x3a, 0x50, 0xbe, 0x8a, + 0x67, 0x65, 0xba, 0x8e, 0x1f, 0x3b, 0x9c, 0xfa, + 0x35, 0x55, 0x5a, 0x8b, 0xfb, 0xf1, 0x57, 0xc6, + 0x3a, 0x9b, 0x9d, 0xc1, 0xb2, 0xbd, 0x7d, 0xf8, + 0xeb, 0x24, 0x57, 0xd4, 0xc7, 0x31, 0x0b, 0xcb, + 0xa5, 0xe1, 0x68, 0x3c, 0x18, 0x8b, 0x77, 0xf1, + 0xeb, 0x7c, 0xfa, 0x99, 0xf5, 0x39, 0x19, 0xaf, + 0xf3, 0xb6, 0xa3, 0xde, 0x8d, 0xee, 0x70, 0xd4, + 0xd4, 0xf8, 0xbb, 0x78, 0xe0, 0x77, 0x3d, 0x2d, + 0xc5, 0x46, 0x46, 0x92, 0x3a, 0x97, 0x50, 0xf5, + 0x49, 0x11, 0xff, 0x00, 0x6a, 0x33, 0x87, 0xdf, + 0x1f, 0x4f, 0xd7, 0xc5, 0x22, 0xf1, 0x1f, 0xae, + 0xdf, 0x11, 0xf9, 0x91, 0x8e, 0x1a, 0x9e, 0x33, + 0xce, 0xc5, 0xb8, 0x7a, 0xdc, 0x4d, 0xbb, 0xb6, + 0xef, 0x9e, 0x85, 0xec, 0x3d, 0xf3, 0x1c, 0xbc, + 0x73, 0xa8, 0x8d, 0x79, 0xcd, 0xbc, 0xdd, 0x91, + 0x3a, 0x3f, 0x1b, 0xfa, 0xa3, 0xa9, 0x8f, 0xc9, + 0x3b, 0xa1, 0x8f, 0xf7, 0x4d, 0x6f, 0x84, 0xd7, + 0x31, 0xfb, 0x78, 0x3e, 0x01, 0xfd, 0x92, 0xf2, + 0xe1, 0x1a, 0xee, 0xdd, 0xec, 0xfc, 0x1e, 0xb5, + 0x17, 0x40, 0x4b, 0xd3, 0x1c, 0x5d, 0x85, 0xe0, + 0xcf, 0x3a, 0x0f, 0xb4, 0x1f, 0xb9, 0x5f, 0xdb, + 0x00, 0xfc, 0xef, 0xc4, 0x6f, 0xe5, 0x5f, 0x7a, + 0xce, 0x04, 0x52, 0x13, 0xf1, 0x7f, 0xbe, 0xfb, + 0xe7, 0x2b, 0x1e, 0x52, 0x68, 0xee, 0x3a, 0xeb, + 0x09, 0x23, 0xc8, 0x7d, 0x8c, 0xfc, 0xd7, 0xe5, + 0xce, 0x3e, 0x6a, 0xe2, 0x49, 0x8f, 0x8f, 0x19, + 0xf9, 0x89, 0xfd, 0xff, 0x00, 0x04, 0x6b, 0xcb, + 0xf0, 0x26, 0x3e, 0xf8, 0xd8, 0xfa, 0xca, 0xc5, + 0x69, 0x6f, 0xc4, 0xfa, 0xce, 0x3e, 0xa7, 0xef, + 0xf1, 0x52, 0xea, 0xfc, 0xe5, 0xfa, 0x21, 0xff, + 0x00, 0x75, 0xf8, 0xf5, 0x87, 0x5e, 0x65, 0xfa, + 0xeb, 0x93, 0x46, 0x2b, 0x3e, 0x3f, 0x74, 0xe3, + 0xfc, 0xf3, 0x38, 0x28, 0xdf, 0x1c, 0xbd, 0x2c, + 0x7a, 0x60, 0xaf, 0xac, 0x37, 0x17, 0xc1, 0xfe, + 0xf2, 0x45, 0x7b, 0x71, 0xdc, 0x41, 0xde, 0xbe, + 0x3f, 0x9c, 0xa8, 0x3d, 0xfa, 0xed, 0xff, 0x00, + 0x78, 0xe3, 0x14, 0x13, 0x05, 0x3f, 0xef, 0x9b, + 0xfc, 0x1d, 0x64, 0x64, 0x81, 0x0b, 0x1e, 0x69, + 0x6f, 0xdd, 0x13, 0x91, 0x81, 0xe4, 0x7f, 0x3f, + 0x5c, 0xb8, 0x4a, 0x9b, 0xb0, 0x7f, 0xdf, 0x3c, + 0x55, 0x15, 0x84, 0x6d, 0x72, 0x0b, 0xf5, 0x31, + 0xea, 0x57, 0x2e, 0xa7, 0x41, 0x16, 0xff, 0x00, + 0x71, 0x7b, 0x73, 0x83, 0xe1, 0xf5, 0xbe, 0xbf, + 0xdd, 0xb7, 0x8e, 0x10, 0xfc, 0xb7, 0xff, 0x00, + 0x38, 0xe7, 0x3f, 0xff, 0xd9, +}; + +static const uint8_t data_favicon_ico[] = +{ + /* /favicon.ico */ + 0x2f, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, + 0x2e, 0x69, 0x63, 0x6f, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x10, 0x10, + 0x10, 0x00, 0x01, 0x00, 0x04, 0x00, 0x28, 0x01, + 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x10, 0x10, + 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x68, 0x05, + 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, 0x28, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x80, + 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x80, 0x80, + 0x80, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, + 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xff, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x97, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x79, 0x97, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x99, 0x97, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x79, 0x99, 0x99, 0x70, 0x00, 0x00, 0x07, + 0x77, 0x99, 0x97, 0x79, 0x97, 0x00, 0x00, 0x09, + 0x99, 0x99, 0x7f, 0xf7, 0x99, 0x70, 0x00, 0x79, + 0x99, 0x99, 0xf9, 0x97, 0x99, 0x97, 0x07, 0x99, + 0x99, 0x99, 0xf9, 0x9f, 0x99, 0x99, 0x79, 0x99, + 0x99, 0x99, 0xf9, 0x9f, 0x99, 0x99, 0x99, 0x99, + 0x99, 0x97, 0xf9, 0x9f, 0x79, 0x97, 0x00, 0x00, + 0x99, 0x97, 0xf7, 0x9f, 0x79, 0x90, 0x00, 0x00, + 0x99, 0x99, 0x7f, 0xf7, 0x99, 0x70, 0x00, 0x00, + 0x99, 0x99, 0x9f, 0x99, 0x00, 0x00, 0x00, 0x00, + 0x99, 0x99, 0x90, 0x99, 0x00, 0x00, 0x00, 0x00, + 0x99, 0x99, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x99, 0x99, 0x00, 0x00, 0x00, 0x00, 0xff, 0x8f, + 0xfc, 0xfd, 0xff, 0x0f, 0xfc, 0xfd, 0xfe, 0x0f, + 0xfc, 0xfd, 0xfc, 0x07, 0xfc, 0xfd, 0xe0, 0x03, + 0xfc, 0xfd, 0xe0, 0x01, 0xfc, 0xfd, 0xc0, 0x00, + 0xfc, 0xfd, 0x80, 0x00, 0xfc, 0xfd, 0x00, 0x00, + 0xfc, 0xfd, 0x00, 0x00, 0xfc, 0xfd, 0xf0, 0x01, + 0xfc, 0xfd, 0xf0, 0x01, 0xfc, 0xfd, 0xf0, 0x0f, + 0xfc, 0xfd, 0xf0, 0x4f, 0xfc, 0xfd, 0xf0, 0x7f, + 0xfc, 0xfd, 0xf0, 0xff, 0xfc, 0xfd, 0x28, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x80, + 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0xc0, 0xdc, + 0xc0, 0x00, 0xf0, 0xca, 0xa6, 0x00, 0xd4, 0xf0, + 0xff, 0x00, 0xb1, 0xe2, 0xff, 0x00, 0x8e, 0xd4, + 0xff, 0x00, 0x6b, 0xc6, 0xff, 0x00, 0x48, 0xb8, + 0xff, 0x00, 0x25, 0xaa, 0xff, 0x00, 0x00, 0xaa, + 0xff, 0x00, 0x00, 0x92, 0xdc, 0x00, 0x00, 0x7a, + 0xb9, 0x00, 0x00, 0x62, 0x96, 0x00, 0x00, 0x4a, + 0x73, 0x00, 0x00, 0x32, 0x50, 0x00, 0xd4, 0xe3, + 0xff, 0x00, 0xb1, 0xc7, 0xff, 0x00, 0x8e, 0xab, + 0xff, 0x00, 0x6b, 0x8f, 0xff, 0x00, 0x48, 0x73, + 0xff, 0x00, 0x25, 0x57, 0xff, 0x00, 0x00, 0x55, + 0xff, 0x00, 0x00, 0x49, 0xdc, 0x00, 0x00, 0x3d, + 0xb9, 0x00, 0x00, 0x31, 0x96, 0x00, 0x00, 0x25, + 0x73, 0x00, 0x00, 0x19, 0x50, 0x00, 0xd4, 0xd4, + 0xff, 0x00, 0xb1, 0xb1, 0xff, 0x00, 0x8e, 0x8e, + 0xff, 0x00, 0x6b, 0x6b, 0xff, 0x00, 0x48, 0x48, + 0xff, 0x00, 0x25, 0x25, 0xff, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x50, 0x00, 0xe3, 0xd4, + 0xff, 0x00, 0xc7, 0xb1, 0xff, 0x00, 0xab, 0x8e, + 0xff, 0x00, 0x8f, 0x6b, 0xff, 0x00, 0x73, 0x48, + 0xff, 0x00, 0x57, 0x25, 0xff, 0x00, 0x55, 0x00, + 0xff, 0x00, 0x49, 0x00, 0xdc, 0x00, 0x3d, 0x00, + 0xb9, 0x00, 0x31, 0x00, 0x96, 0x00, 0x25, 0x00, + 0x73, 0x00, 0x19, 0x00, 0x50, 0x00, 0xf0, 0xd4, + 0xff, 0x00, 0xe2, 0xb1, 0xff, 0x00, 0xd4, 0x8e, + 0xff, 0x00, 0xc6, 0x6b, 0xff, 0x00, 0xb8, 0x48, + 0xff, 0x00, 0xaa, 0x25, 0xff, 0x00, 0xaa, 0x00, + 0xff, 0x00, 0x92, 0x00, 0xdc, 0x00, 0x7a, 0x00, + 0xb9, 0x00, 0x62, 0x00, 0x96, 0x00, 0x4a, 0x00, + 0x73, 0x00, 0x32, 0x00, 0x50, 0x00, 0xff, 0xd4, + 0xff, 0x00, 0xff, 0xb1, 0xff, 0x00, 0xff, 0x8e, + 0xff, 0x00, 0xff, 0x6b, 0xff, 0x00, 0xff, 0x48, + 0xff, 0x00, 0xff, 0x25, 0xff, 0x00, 0xff, 0x00, + 0xff, 0x00, 0xdc, 0x00, 0xdc, 0x00, 0xb9, 0x00, + 0xb9, 0x00, 0x96, 0x00, 0x96, 0x00, 0x73, 0x00, + 0x73, 0x00, 0x50, 0x00, 0x50, 0x00, 0xff, 0xd4, + 0xf0, 0x00, 0xff, 0xb1, 0xe2, 0x00, 0xff, 0x8e, + 0xd4, 0x00, 0xff, 0x6b, 0xc6, 0x00, 0xff, 0x48, + 0xb8, 0x00, 0xff, 0x25, 0xaa, 0x00, 0xff, 0x00, + 0xaa, 0x00, 0xdc, 0x00, 0x92, 0x00, 0xb9, 0x00, + 0x7a, 0x00, 0x96, 0x00, 0x62, 0x00, 0x73, 0x00, + 0x4a, 0x00, 0x50, 0x00, 0x32, 0x00, 0xff, 0xd4, + 0xe3, 0x00, 0xff, 0xb1, 0xc7, 0x00, 0xff, 0x8e, + 0xab, 0x00, 0xff, 0x6b, 0x8f, 0x00, 0xff, 0x48, + 0x73, 0x00, 0xff, 0x25, 0x57, 0x00, 0xff, 0x00, + 0x55, 0x00, 0xdc, 0x00, 0x49, 0x00, 0xb9, 0x00, + 0x3d, 0x00, 0x96, 0x00, 0x31, 0x00, 0x73, 0x00, + 0x25, 0x00, 0x50, 0x00, 0x19, 0x00, 0xff, 0xd4, + 0xd4, 0x00, 0xff, 0xb1, 0xb1, 0x00, 0xff, 0x8e, + 0x8e, 0x00, 0xff, 0x6b, 0x6b, 0x00, 0xff, 0x48, + 0x48, 0x00, 0xff, 0x25, 0x25, 0x00, 0xff, 0x00, + 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xb9, 0x00, + 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x73, 0x00, + 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xff, 0xe3, + 0xd4, 0x00, 0xff, 0xc7, 0xb1, 0x00, 0xff, 0xab, + 0x8e, 0x00, 0xff, 0x8f, 0x6b, 0x00, 0xff, 0x73, + 0x48, 0x00, 0xff, 0x57, 0x25, 0x00, 0xff, 0x55, + 0x00, 0x00, 0xdc, 0x49, 0x00, 0x00, 0xb9, 0x3d, + 0x00, 0x00, 0x96, 0x31, 0x00, 0x00, 0x73, 0x25, + 0x00, 0x00, 0x50, 0x19, 0x00, 0x00, 0xff, 0xf0, + 0xd4, 0x00, 0xff, 0xe2, 0xb1, 0x00, 0xff, 0xd4, + 0x8e, 0x00, 0xff, 0xc6, 0x6b, 0x00, 0xff, 0xb8, + 0x48, 0x00, 0xff, 0xaa, 0x25, 0x00, 0xff, 0xaa, + 0x00, 0x00, 0xdc, 0x92, 0x00, 0x00, 0xb9, 0x7a, + 0x00, 0x00, 0x96, 0x62, 0x00, 0x00, 0x73, 0x4a, + 0x00, 0x00, 0x50, 0x32, 0x00, 0x00, 0xff, 0xff, + 0xd4, 0x00, 0xff, 0xff, 0xb1, 0x00, 0xff, 0xff, + 0x8e, 0x00, 0xff, 0xff, 0x6b, 0x00, 0xff, 0xff, + 0x48, 0x00, 0xff, 0xff, 0x25, 0x00, 0xff, 0xff, + 0x00, 0x00, 0xdc, 0xdc, 0x00, 0x00, 0xb9, 0xb9, + 0x00, 0x00, 0x96, 0x96, 0x00, 0x00, 0x73, 0x73, + 0x00, 0x00, 0x50, 0x50, 0x00, 0x00, 0xf0, 0xff, + 0xd4, 0x00, 0xe2, 0xff, 0xb1, 0x00, 0xd4, 0xff, + 0x8e, 0x00, 0xc6, 0xff, 0x6b, 0x00, 0xb8, 0xff, + 0x48, 0x00, 0xaa, 0xff, 0x25, 0x00, 0xaa, 0xff, + 0x00, 0x00, 0x92, 0xdc, 0x00, 0x00, 0x7a, 0xb9, + 0x00, 0x00, 0x62, 0x96, 0x00, 0x00, 0x4a, 0x73, + 0x00, 0x00, 0x32, 0x50, 0x00, 0x00, 0xe3, 0xff, + 0xd4, 0x00, 0xc7, 0xff, 0xb1, 0x00, 0xab, 0xff, + 0x8e, 0x00, 0x8f, 0xff, 0x6b, 0x00, 0x73, 0xff, + 0x48, 0x00, 0x57, 0xff, 0x25, 0x00, 0x55, 0xff, + 0x00, 0x00, 0x49, 0xdc, 0x00, 0x00, 0x3d, 0xb9, + 0x00, 0x00, 0x31, 0x96, 0x00, 0x00, 0x25, 0x73, + 0x00, 0x00, 0x19, 0x50, 0x00, 0x00, 0xd4, 0xff, + 0xd4, 0x00, 0xb1, 0xff, 0xb1, 0x00, 0x8e, 0xff, + 0x8e, 0x00, 0x6b, 0xff, 0x6b, 0x00, 0x48, 0xff, + 0x48, 0x00, 0x25, 0xff, 0x25, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xb9, + 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x73, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0xd4, 0xff, + 0xe3, 0x00, 0xb1, 0xff, 0xc7, 0x00, 0x8e, 0xff, + 0xab, 0x00, 0x6b, 0xff, 0x8f, 0x00, 0x48, 0xff, + 0x73, 0x00, 0x25, 0xff, 0x57, 0x00, 0x00, 0xff, + 0x55, 0x00, 0x00, 0xdc, 0x49, 0x00, 0x00, 0xb9, + 0x3d, 0x00, 0x00, 0x96, 0x31, 0x00, 0x00, 0x73, + 0x25, 0x00, 0x00, 0x50, 0x19, 0x00, 0xd4, 0xff, + 0xf0, 0x00, 0xb1, 0xff, 0xe2, 0x00, 0x8e, 0xff, + 0xd4, 0x00, 0x6b, 0xff, 0xc6, 0x00, 0x48, 0xff, + 0xb8, 0x00, 0x25, 0xff, 0xaa, 0x00, 0x00, 0xff, + 0xaa, 0x00, 0x00, 0xdc, 0x92, 0x00, 0x00, 0xb9, + 0x7a, 0x00, 0x00, 0x96, 0x62, 0x00, 0x00, 0x73, + 0x4a, 0x00, 0x00, 0x50, 0x32, 0x00, 0xd4, 0xff, + 0xff, 0x00, 0xb1, 0xff, 0xff, 0x00, 0x8e, 0xff, + 0xff, 0x00, 0x6b, 0xff, 0xff, 0x00, 0x48, 0xff, + 0xff, 0x00, 0x25, 0xff, 0xff, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0xdc, 0xdc, 0x00, 0x00, 0xb9, + 0xb9, 0x00, 0x00, 0x96, 0x96, 0x00, 0x00, 0x73, + 0x73, 0x00, 0x00, 0x50, 0x50, 0x00, 0xf2, 0xf2, + 0xf2, 0x00, 0xe6, 0xe6, 0xe6, 0x00, 0xda, 0xda, + 0xda, 0x00, 0xce, 0xce, 0xce, 0x00, 0xc2, 0xc2, + 0xc2, 0x00, 0xb6, 0xb6, 0xb6, 0x00, 0xaa, 0xaa, + 0xaa, 0x00, 0x9e, 0x9e, 0x9e, 0x00, 0x92, 0x92, + 0x92, 0x00, 0x86, 0x86, 0x86, 0x00, 0x7a, 0x7a, + 0x7a, 0x00, 0x6e, 0x6e, 0x6e, 0x00, 0x62, 0x62, + 0x62, 0x00, 0x56, 0x56, 0x56, 0x00, 0x4a, 0x4a, + 0x4a, 0x00, 0x3e, 0x3e, 0x3e, 0x00, 0x32, 0x32, + 0x32, 0x00, 0x26, 0x26, 0x26, 0x00, 0x1a, 0x1a, + 0x1a, 0x00, 0x0e, 0x0e, 0x0e, 0x00, 0xf0, 0xfb, + 0xff, 0x00, 0xa4, 0xa0, 0xa0, 0x00, 0x80, 0x80, + 0x80, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, + 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xff, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, + 0x28, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x28, + 0x28, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x28, 0x28, + 0x28, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x28, 0x28, + 0x28, 0x28, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x25, 0x25, 0x25, 0x25, 0x28, 0x28, 0xf6, + 0xf6, 0x23, 0x28, 0x25, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x28, 0x28, 0x28, 0x28, 0x23, 0x23, + 0x23, 0xf6, 0x23, 0x28, 0x25, 0x00, 0x00, 0x00, + 0x25, 0x28, 0x28, 0x28, 0x28, 0x28, 0x23, 0x28, + 0x28, 0xf6, 0x28, 0x28, 0x28, 0x25, 0x00, 0x25, + 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x23, 0x28, + 0x28, 0xf6, 0x28, 0x28, 0x28, 0x28, 0x25, 0x28, + 0x28, 0x28, 0x28, 0x28, 0x28, 0xf6, 0xf6, 0x28, + 0x28, 0xf6, 0xf6, 0x28, 0x28, 0x28, 0x28, 0x28, + 0x28, 0x28, 0x28, 0x28, 0x28, 0xf6, 0xf6, 0x28, + 0x28, 0x23, 0xf6, 0x28, 0x28, 0x25, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x23, 0x23, + 0x28, 0x23, 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x28, 0x23, + 0x23, 0x23, 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x28, 0x23, + 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x25, 0x00, + 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x8f, + 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0xfe, 0x0f, + 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xe0, 0x03, + 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0xf0, 0x0f, + 0x00, 0x00, 0xf0, 0x4f, 0x00, 0x00, 0xf0, 0xff, + 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, +}; + +static const uint8_t data_index_htm[] = +{ + /* /index.htm */ + 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, + 0x74, 0x6d, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0a, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x20, 0x20, + 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x3e, 0x45, 0x4b, 0x2d, 0x54, 0x4d, 0x34, + 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, 0x4c, 0x20, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x4b, 0x69, 0x74, 0x3c, 0x2f, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, + 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, + 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, + 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, + 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2e, 0x63, + 0x73, 0x73, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, + 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x68, 0x6f, + 0x72, 0x74, 0x63, 0x75, 0x74, 0x20, 0x69, 0x63, + 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, + 0x78, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x66, 0x61, + 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x2e, 0x69, 0x63, + 0x6f, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x6a, 0x61, + 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x2e, 0x6a, 0x73, 0x22, 0x20, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x4a, + 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x31, 0x2e, 0x32, 0x22, 0x3e, 0x3c, 0x2f, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, + 0x20, 0x20, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x0a, 0x20, 0x20, 0x3c, 0x62, 0x6f, 0x64, + 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x22, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x31, 0x30, + 0x30, 0x25, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x72, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x64, 0x3e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x61, 0x20, + 0x69, 0x64, 0x3d, 0x22, 0x68, 0x65, 0x61, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x22, 0x20, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, + 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, 0x63, + 0x6f, 0x6d, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6d, 0x67, 0x20, + 0x73, 0x72, 0x63, 0x3d, 0x22, 0x74, 0x69, 0x2e, + 0x6a, 0x70, 0x67, 0x22, 0x20, 0x61, 0x6c, 0x74, + 0x3d, 0x22, 0x54, 0x65, 0x78, 0x61, 0x73, 0x20, + 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3d, 0x22, 0x31, 0x30, 0x30, 0x25, + 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x68, 0x31, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x54, 0x69, 0x76, 0x61, 0x26, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x3b, 0x20, 0x43, + 0x20, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, + 0x58, 0x4c, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4b, 0x69, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, + 0x3d, 0x22, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x68, 0x32, 0x22, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x45, 0x4b, 0x2d, + 0x54, 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, + 0x58, 0x4c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x74, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x61, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x74, 0x69, 0x76, 0x61, 0x22, 0x20, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x22, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, + 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, + 0x77, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x74, 0x69, 0x76, 0x61, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, + 0x6d, 0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, + 0x74, 0x6d, 0x34, 0x63, 0x2e, 0x6a, 0x70, 0x67, + 0x22, 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, 0x54, + 0x4d, 0x34, 0x43, 0x22, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x2f, 0x61, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x74, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x68, 0x72, 0x3e, 0x3c, 0x68, + 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, + 0x64, 0x3d, 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x22, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x75, 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, + 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, + 0x68, 0x74, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x22, 0x3e, + 0x41, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x54, 0x49, + 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6f, + 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x2e, + 0x68, 0x74, 0x6d, 0x22, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, + 0x77, 0x22, 0x3e, 0x54, 0x69, 0x76, 0x61, 0x26, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x3b, 0x20, 0x43, + 0x20, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, + 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x68, 0x74, 0x6d, + 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x54, 0x4d, 0x34, + 0x43, 0x31, 0x32, 0x39, 0x34, 0x4e, 0x43, 0x50, + 0x44, 0x54, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x44, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, + 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, + 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, + 0x22, 0x5f, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, + 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x74, 0x6f, 0x6f, 0x6c, 0x2f, 0x65, 0x6b, 0x2d, + 0x74, 0x6d, 0x34, 0x63, 0x31, 0x32, 0x39, 0x34, + 0x78, 0x6c, 0x22, 0x3e, 0x45, 0x4b, 0x2d, 0x54, + 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, + 0x4c, 0x20, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x20, 0x50, 0x61, 0x67, 0x65, 0x3c, 0x2f, + 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, + 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x74, 0x69, 0x76, 0x61, 0x2d, 0x63, + 0x22, 0x3e, 0x54, 0x69, 0x76, 0x61, 0x26, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x3b, 0x20, 0x54, 0x4d, + 0x34, 0x43, 0x31, 0x32, 0x39, 0x78, 0x20, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x20, 0x50, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x20, 0x50, 0x61, + 0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, + 0x6c, 0x69, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x2f, 0x75, 0x6c, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, + 0x6d, 0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, + 0x65, 0x6b, 0x2d, 0x74, 0x6d, 0x34, 0x63, 0x31, + 0x32, 0x39, 0x34, 0x78, 0x6c, 0x2e, 0x6a, 0x70, + 0x67, 0x22, 0x20, 0x61, 0x6c, 0x74, 0x3d, 0x22, + 0x45, 0x4b, 0x2d, 0x54, 0x4d, 0x34, 0x43, 0x31, + 0x32, 0x39, 0x34, 0x58, 0x4c, 0x22, 0x3e, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, + 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, + 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, + 0x3d, 0x22, 0x66, 0x6f, 0x6f, 0x74, 0x69, 0x6e, + 0x67, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3c, 0x68, 0x72, 0x3e, 0x3c, 0x68, + 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x26, 0x63, 0x6f, 0x70, 0x79, + 0x3b, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, 0x32, + 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, 0x61, + 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, 0x6e, + 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, 0x6c, + 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x3c, + 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, + 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, +}; + +static const uint8_t data_javascript_js[] = +{ + /* /javascript.js */ + 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x2e, 0x6a, 0x73, 0x00, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x0a, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6f, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x28, 0x27, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x27, + 0x29, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, + 0x41, 0x62, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x27, 0x6f, 0x76, 0x65, 0x72, + 0x76, 0x69, 0x65, 0x77, 0x27, 0x29, 0x2e, 0x6f, + 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, + 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x76, 0x65, + 0x72, 0x76, 0x69, 0x65, 0x77, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x27, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x27, 0x29, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, + 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x6c, 0x6f, + 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, + 0x61, 0x64, 0x50, 0x61, 0x67, 0x65, 0x28, 0x22, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x74, + 0x6d, 0x22, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x62, 0x6f, + 0x75, 0x74, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x50, + 0x61, 0x67, 0x65, 0x28, 0x22, 0x61, 0x62, 0x6f, + 0x75, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x22, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x76, 0x65, 0x72, + 0x76, 0x69, 0x65, 0x77, 0x28, 0x29, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, + 0x64, 0x50, 0x61, 0x67, 0x65, 0x28, 0x22, 0x6f, + 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x2e, + 0x68, 0x74, 0x6d, 0x22, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x61, + 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x28, 0x29, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, + 0x6f, 0x61, 0x64, 0x50, 0x61, 0x67, 0x65, 0x28, + 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x68, + 0x74, 0x6d, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, + 0x50, 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, 0x67, + 0x65, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x66, 0x28, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x2e, 0x58, 0x4d, 0x4c, 0x48, 0x74, + 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x78, 0x6d, 0x6c, 0x68, 0x74, 0x74, 0x70, + 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x58, + 0x4d, 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x28, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6d, + 0x6c, 0x68, 0x74, 0x74, 0x70, 0x20, 0x3d, 0x20, + 0x6e, 0x65, 0x77, 0x20, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x28, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, + 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x58, 0x4d, 0x4c, + 0x48, 0x54, 0x54, 0x50, 0x22, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x78, 0x6d, 0x6c, 0x68, 0x74, + 0x74, 0x70, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x28, + 0x22, 0x47, 0x45, 0x54, 0x22, 0x2c, 0x20, 0x70, + 0x61, 0x67, 0x65, 0x2c, 0x20, 0x74, 0x72, 0x75, + 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x78, 0x6d, 0x6c, 0x68, 0x74, 0x74, 0x70, 0x2e, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x28, 0x22, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x77, 0x77, 0x77, + 0x2d, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x75, 0x72, + 0x6c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, + 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x78, 0x6d, 0x6c, 0x68, 0x74, 0x74, 0x70, 0x2e, + 0x73, 0x65, 0x6e, 0x64, 0x28, 0x29, 0x3b, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x78, 0x6d, 0x6c, + 0x68, 0x74, 0x74, 0x70, 0x2e, 0x6f, 0x6e, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, + 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, 0x28, + 0x78, 0x6d, 0x6c, 0x68, 0x74, 0x74, 0x70, 0x2e, + 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x34, 0x29, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x78, 0x6d, 0x6c, + 0x68, 0x74, 0x74, 0x70, 0x2e, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x32, + 0x30, 0x30, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x22, 0x29, 0x2e, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, + 0x3d, 0x20, 0x78, 0x6d, 0x6c, 0x68, 0x74, 0x74, + 0x70, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x54, 0x65, 0x78, 0x74, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, + 0x7d, 0x0a, +}; + +static const uint8_t data_overview_htm[] = +{ + /* /overview.htm */ + 0x2f, 0x6f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, + 0x77, 0x2e, 0x68, 0x74, 0x6d, 0x00, + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, + 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x3e, 0x0a, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x70, + 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, + 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, + 0x32, 0x30, 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, + 0x61, 0x73, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, + 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, + 0x6c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x20, 0x2d, 0x2d, 0x3e, 0x0a, 0x3c, + 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x3e, 0x45, 0x4b, 0x2d, 0x54, + 0x4d, 0x34, 0x43, 0x31, 0x32, 0x39, 0x34, 0x58, + 0x4c, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4b, 0x69, 0x74, + 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, + 0x0a, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, + 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x73, 0x73, + 0x22, 0x2f, 0x3e, 0x0a, 0x3c, 0x6c, 0x69, 0x6e, + 0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, + 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x20, + 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x2f, 0x78, 0x2d, 0x69, 0x63, 0x6f, 0x6e, + 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x2e, + 0x69, 0x63, 0x6f, 0x22, 0x2f, 0x3e, 0x0a, 0x3c, + 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x70, + 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x22, 0x3e, 0x54, 0x69, + 0x76, 0x61, 0x26, 0x74, 0x72, 0x61, 0x64, 0x65, + 0x3b, 0x20, 0x43, 0x20, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x20, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x20, 0x4c, 0x69, 0x6e, 0x65, 0x3c, + 0x2f, 0x70, 0x3e, 0x0a, 0x3c, 0x68, 0x72, 0x3e, + 0x0a, 0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x41, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x20, 0x41, 0x52, 0x4d, 0x26, 0x72, + 0x65, 0x67, 0x3b, 0x20, 0x43, 0x6f, 0x72, 0x74, + 0x65, 0x78, 0x26, 0x74, 0x72, 0x61, 0x64, 0x65, + 0x3b, 0x2d, 0x4d, 0x34, 0x20, 0x6d, 0x69, 0x63, + 0x72, 0x6f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x20, 0x28, 0x4d, + 0x43, 0x55, 0x73, 0x29, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x6f, + 0x6e, 0x20, 0x54, 0x49, 0x27, 0x73, 0x20, 0x70, + 0x72, 0x6f, 0x70, 0x72, 0x69, 0x65, 0x74, 0x61, + 0x72, 0x79, 0x20, 0x36, 0x35, 0x2d, 0x6e, 0x6d, + 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x20, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, + 0x6f, 0x67, 0x79, 0x2c, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x54, 0x69, 0x76, 0x61, 0x20, 0x43, 0x20, + 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x0a, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, 0x20, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, + 0x73, 0x20, 0x61, 0x6e, 0x20, 0x6f, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, + 0x69, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x20, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x0a, 0x77, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x20, 0x73, 0x61, 0x63, 0x72, + 0x69, 0x66, 0x69, 0x63, 0x69, 0x6e, 0x67, 0x20, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x2c, 0x20, 0x70, + 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x20, 0x45, 0x76, 0x65, 0x72, 0x79, 0x20, + 0x43, 0x20, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x0a, 0x4d, 0x43, 0x55, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x72, 0x61, 0x74, 0x65, 0x73, 0x20, + 0x61, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x2d, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x20, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x68, 0x69, 0x67, 0x68, 0x2d, 0x70, + 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x20, 0x61, 0x6e, 0x61, 0x6c, 0x6f, + 0x67, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, + 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x0a, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x20, + 0x6c, 0x6f, 0x77, 0x2d, 0x70, 0x6f, 0x77, 0x65, + 0x72, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x73, 0x20, + 0x74, 0x6f, 0x20, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x20, 0x61, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x6f, 0x66, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x20, 0x54, 0x6f, 0x64, 0x61, + 0x79, 0x27, 0x73, 0x0a, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x65, 0x72, 0x73, 0x20, 0x75, 0x6e, + 0x64, 0x65, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x64, 0x65, + 0x73, 0x69, 0x67, 0x6e, 0x73, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x20, 0x6d, 0x6f, + 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, + 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x20, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2e, 0x20, + 0x4f, 0x66, 0x74, 0x65, 0x6e, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x0a, 0x67, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x20, 0x63, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x20, 0x69, 0x73, + 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, + 0x65, 0x20, 0x61, 0x6e, 0x64, 0x0a, 0x3c, 0x61, + 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, + 0x22, 0x5f, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x69, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x69, 0x76, 0x61, + 0x77, 0x61, 0x72, 0x65, 0x22, 0x3e, 0x54, 0x69, + 0x76, 0x61, 0x57, 0x61, 0x72, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x43, 0x20, 0x53, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x0a, 0x66, 0x72, 0x65, + 0x65, 0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x20, 0x6f, 0x66, 0x20, 0x43, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x70, + 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, 0x61, + 0x6c, 0x2d, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, + 0x61, 0x6e, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, 0x63, 0x6f, + 0x64, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x52, 0x4f, 0x4d, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x65, 0x76, 0x65, 0x72, + 0x79, 0x20, 0x54, 0x69, 0x76, 0x61, 0x20, 0x43, + 0x20, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x4d, 0x43, 0x55, 0x2e, 0x20, 0x54, 0x68, 0x69, + 0x73, 0x0a, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x20, 0x64, 0x65, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x73, 0x20, 0x55, 0x53, 0x42, 0x2c, + 0x20, 0x43, 0x41, 0x4e, 0x2c, 0x20, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x6e, 0x73, + 0x6f, 0x72, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, + 0x20, 0x73, 0x6f, 0x0a, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x73, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x65, 0x66, + 0x66, 0x6f, 0x72, 0x74, 0x73, 0x20, 0x6f, 0x6e, + 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, + 0x67, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, + 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6f, + 0x66, 0x0a, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, + 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, + 0x65, 0x69, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x20, 0x70, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, + 0x72, 0x61, 0x6c, 0x73, 0x2e, 0x20, 0x54, 0x68, + 0x65, 0x20, 0x54, 0x69, 0x76, 0x61, 0x20, 0x43, + 0x20, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x20, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, + 0x20, 0x61, 0x6e, 0x0a, 0x65, 0x78, 0x63, 0x65, + 0x6c, 0x6c, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x61, + 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x68, 0x6f, 0x6d, 0x65, 0x2c, + 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, + 0x67, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, + 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x69, 0x61, + 0x6c, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, + 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, + 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, + +}; + +static const uint8_t data_styles_css[] = +{ + /* /styles.css */ + 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2e, + 0x63, 0x73, 0x73, 0x00, + 0x2f, 0x2a, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, + 0x20, 0x32, 0x30, 0x31, 0x33, 0x2d, 0x32, 0x30, + 0x31, 0x34, 0x20, 0x54, 0x65, 0x78, 0x61, 0x73, + 0x20, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x49, 0x6e, 0x63, + 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x2e, 0x20, 0x20, 0x41, 0x6c, 0x6c, 0x20, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, + 0x20, 0x2a, 0x2f, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, + 0x53, 0x74, 0x79, 0x6c, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x20, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x20, 0x2a, 0x2f, 0x0a, 0x62, 0x6f, 0x64, 0x79, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x62, 0x6c, 0x61, 0x63, 0x6b, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, + 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x3a, 0x20, 0x41, 0x72, 0x69, 0x65, 0x6c, + 0x2c, 0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, + 0x63, 0x61, 0x2c, 0x73, 0x61, 0x6e, 0x73, 0x2d, + 0x73, 0x65, 0x72, 0x69, 0x66, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x53, 0x74, 0x79, + 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x69, 0x76, + 0x2e, 0x20, 0x2a, 0x2f, 0x0a, 0x23, 0x68, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, + 0x72, 0x3a, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x23, 0x68, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x31, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, + 0x3a, 0x20, 0x32, 0x65, 0x6d, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, + 0x62, 0x6f, 0x6c, 0x64, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x23, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x68, 0x32, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x2e, + 0x32, 0x35, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x62, + 0x6f, 0x6c, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x23, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x20, 0x68, 0x72, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, + 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x20, 0x23, 0x66, 0x66, 0x30, 0x30, + 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, + 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, + 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x66, + 0x66, 0x30, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x23, 0x68, 0x65, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x61, 0x20, 0x69, 0x6d, 0x67, + 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x30, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, + 0x53, 0x74, 0x79, 0x6c, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x64, 0x69, 0x76, + 0x2e, 0x20, 0x2a, 0x2f, 0x0a, 0x23, 0x6d, 0x65, + 0x6e, 0x75, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, + 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, + 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x32, 0x32, 0x35, 0x70, 0x78, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x23, 0x6d, 0x65, 0x6e, + 0x75, 0x20, 0x75, 0x6c, 0x0a, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x2d, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2d, 0x74, 0x79, + 0x70, 0x65, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, + 0x0a, 0x7d, 0x0a, 0x0a, 0x23, 0x6d, 0x65, 0x6e, + 0x75, 0x20, 0x61, 0x3a, 0x6c, 0x69, 0x6e, 0x6b, + 0x2c, 0x20, 0x23, 0x6d, 0x65, 0x6e, 0x75, 0x20, + 0x61, 0x3a, 0x76, 0x69, 0x73, 0x69, 0x74, 0x65, + 0x64, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x66, 0x66, 0x30, 0x30, 0x30, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x3a, 0x20, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x62, 0x6f, 0x6c, 0x64, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x32, 0x70, 0x78, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, + 0x3a, 0x20, 0x32, 0x70, 0x78, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x34, 0x70, 0x78, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, + 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x32, + 0x30, 0x30, 0x70, 0x78, 0x3b, 0x0a, 0x7d, 0x0a, + 0x0a, 0x23, 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x61, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x20, + 0x23, 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x61, 0x3a, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x62, 0x66, 0x30, 0x30, 0x30, 0x30, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x53, 0x74, + 0x79, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x64, 0x69, + 0x76, 0x2e, 0x20, 0x2a, 0x2f, 0x0a, 0x23, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x20, 0x32, 0x32, 0x35, 0x70, 0x78, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x23, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, + 0x2e, 0x35, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x62, + 0x6f, 0x6c, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x2f, 0x2a, 0x20, 0x53, 0x74, 0x79, 0x6c, 0x69, + 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x69, + 0x6e, 0x67, 0x20, 0x64, 0x69, 0x76, 0x2e, 0x20, + 0x2a, 0x2f, 0x0a, 0x23, 0x66, 0x6f, 0x6f, 0x74, + 0x69, 0x6e, 0x67, 0x0a, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x3a, + 0x20, 0x62, 0x6f, 0x74, 0x68, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x2e, 0x37, + 0x35, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x3a, 0x20, 0x69, 0x74, 0x61, + 0x6c, 0x69, 0x63, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x23, + 0x66, 0x6f, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x20, + 0x68, 0x72, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, + 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, + 0x64, 0x20, 0x23, 0x66, 0x66, 0x30, 0x30, 0x30, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, + 0x70, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x66, 0x66, + 0x30, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, + +}; + +static const uint8_t data_ti_jpg[] = +{ + /* /ti.jpg */ + 0x2f, 0x74, 0x69, 0x2e, 0x6a, 0x70, 0x67, 0x00, + + 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, + 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x00, 0xff, 0xdb, 0x00, 0x43, + 0x00, 0x03, 0x02, 0x02, 0x03, 0x02, 0x02, 0x03, + 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x04, 0x05, + 0x08, 0x05, 0x05, 0x04, 0x04, 0x05, 0x0a, 0x07, + 0x07, 0x06, 0x08, 0x0c, 0x0a, 0x0c, 0x0c, 0x0b, + 0x0a, 0x0b, 0x0b, 0x0d, 0x0e, 0x12, 0x10, 0x0d, + 0x0e, 0x11, 0x0e, 0x0b, 0x0b, 0x10, 0x16, 0x10, + 0x11, 0x13, 0x14, 0x15, 0x15, 0x15, 0x0c, 0x0f, + 0x17, 0x18, 0x16, 0x14, 0x18, 0x12, 0x14, 0x15, + 0x14, 0xff, 0xdb, 0x00, 0x43, 0x01, 0x03, 0x04, + 0x04, 0x05, 0x04, 0x05, 0x09, 0x05, 0x05, 0x09, + 0x14, 0x0d, 0x0b, 0x0d, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xff, 0xc2, + 0x00, 0x11, 0x08, 0x00, 0x4b, 0x01, 0x16, 0x03, + 0x01, 0x11, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, + 0x01, 0xff, 0xc4, 0x00, 0x1c, 0x00, 0x01, 0x00, + 0x02, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, + 0x07, 0x05, 0x08, 0x01, 0x02, 0x04, 0x03, 0xff, + 0xc4, 0x00, 0x1c, 0x01, 0x01, 0x00, 0x01, 0x05, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x02, + 0x03, 0x04, 0x06, 0x07, 0x08, 0xff, 0xda, 0x00, + 0x0c, 0x03, 0x01, 0x00, 0x02, 0x10, 0x03, 0x10, + 0x00, 0x00, 0x01, 0xda, 0x90, 0x62, 0xec, 0xda, + 0x80, 0xea, 0x74, 0xb2, 0xbc, 0xf0, 0x92, 0x4c, + 0xf1, 0x5c, 0xab, 0xd8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0b, + 0xd6, 0xe8, 0x35, 0x63, 0x9d, 0xf6, 0x9b, 0xc2, + 0x67, 0xcd, 0x7d, 0x2d, 0x6b, 0x47, 0x7f, 0x91, + 0xf5, 0xd7, 0x0f, 0xda, 0xeb, 0x7e, 0x27, 0x53, + 0xb1, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x02, 0x90, 0xbd, 0x79, 0xfd, + 0x59, 0xe7, 0x3d, 0xb2, 0x67, 0xb9, 0xcd, 0xe4, + 0x32, 0xe9, 0xe1, 0xb0, 0xc8, 0xc9, 0x33, 0x45, + 0x6c, 0x64, 0xcf, 0x94, 0x54, 0x35, 0xae, 0xbc, + 0x96, 0x91, 0x35, 0x33, 0x86, 0x4c, 0xf2, 0x19, + 0x23, 0xd8, 0x60, 0x8f, 0x11, 0x63, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x16, 0xcd, 0xca, 0x32, + 0x23, 0xd2, 0x31, 0x96, 0x6e, 0xc1, 0x74, 0xba, + 0xad, 0x86, 0x9a, 0xf2, 0x3a, 0xff, 0x00, 0x53, + 0xa9, 0xf9, 0xd3, 0x2c, 0x6b, 0x5e, 0x5f, 0x6d, + 0x7a, 0x3f, 0x0d, 0xf4, 0x56, 0xdd, 0x47, 0x26, + 0x27, 0xb0, 0xb3, 0x8d, 0x50, 0x36, 0xa4, 0xad, + 0x48, 0xd9, 0x8f, 0x24, 0xe6, 0xc5, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x55, 0xb4, 0x74, 0x5f, + 0xa3, 0x53, 0x11, 0x5e, 0x8d, 0xc5, 0x69, 0x62, + 0xee, 0xf1, 0xbc, 0xd6, 0xea, 0xef, 0x43, 0xb0, + 0xeb, 0x75, 0x37, 0x2f, 0xa5, 0xf9, 0xf7, 0xdf, + 0x76, 0x0d, 0x36, 0x56, 0x74, 0x65, 0x8f, 0x69, + 0x16, 0x31, 0x06, 0x64, 0xaf, 0xcb, 0x80, 0xad, + 0x0d, 0xb8, 0x3e, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xe1, 0xb3, 0x2d, 0x3f, 0x1d, 0xdd, 0xfa, + 0xee, 0xc3, 0xf0, 0x64, 0x9d, 0xed, 0x73, 0x34, + 0x44, 0x57, 0xa6, 0x5d, 0xb2, 0x7e, 0x77, 0x37, + 0xda, 0xe7, 0xc6, 0xbe, 0x97, 0xf1, 0xc8, 0x39, + 0x38, 0x3b, 0x1c, 0x00, 0x77, 0x39, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0xc2, 0x9d, 0x29, 0x76, + 0xa6, 0x73, 0xde, 0xe1, 0x80, 0xc5, 0x2d, 0xb8, + 0x7d, 0x1f, 0x81, 0x64, 0xb2, 0x6a, 0xf2, 0x0d, + 0x47, 0x33, 0x25, 0x90, 0x57, 0x06, 0x54, 0x90, + 0x95, 0x69, 0x6c, 0x15, 0x31, 0x99, 0x3b, 0x1b, + 0x18, 0x51, 0x24, 0x54, 0xb4, 0x48, 0xe9, 0x0d, + 0x2e, 0x12, 0x86, 0x2e, 0xf3, 0x18, 0x56, 0xa4, + 0xf8, 0xe0, 0xb4, 0x89, 0x70, 0x01, 0x48, 0xde, + 0x09, 0x5a, 0x72, 0x37, 0xbc, 0xd8, 0x29, 0x8f, + 0x31, 0xfa, 0xd6, 0xd0, 0x35, 0x1c, 0xb3, 0xca, + 0xf8, 0xc9, 0x1f, 0x33, 0x2e, 0x47, 0x8d, 0x99, + 0x34, 0xd0, 0xce, 0x19, 0x53, 0x66, 0xca, 0x04, + 0x81, 0x12, 0xa3, 0x2c, 0x57, 0x26, 0xc4, 0x90, + 0xc2, 0x8d, 0x37, 0x00, 0xd7, 0xd3, 0x60, 0x0a, + 0x2c, 0x93, 0x97, 0xc0, 0x00, 0x00, 0x01, 0xc1, + 0x48, 0x92, 0x12, 0xc9, 0x2b, 0x53, 0x08, 0x4d, + 0xc8, 0x71, 0x66, 0x15, 0xf1, 0xd4, 0xfa, 0x98, + 0xa2, 0x6e, 0x7c, 0x4e, 0x86, 0x18, 0x8d, 0x12, + 0x33, 0xde, 0x4a, 0x8f, 0xb9, 0x58, 0x96, 0x01, + 0x5d, 0x13, 0xf2, 0x58, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xff, 0xc4, 0x00, 0x2b, 0x10, 0x00, 0x01, + 0x04, 0x02, 0x01, 0x01, 0x06, 0x06, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x02, + 0x03, 0x04, 0x06, 0x01, 0x07, 0x00, 0x13, 0x10, + 0x11, 0x12, 0x36, 0x37, 0x40, 0x14, 0x15, 0x17, + 0x30, 0x31, 0x34, 0x16, 0x20, 0x50, 0xff, 0xda, + 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x05, 0x02, + 0xec, 0x26, 0x41, 0xb1, 0x70, 0xfe, 0xa1, 0x8d, + 0xe0, 0x53, 0xf1, 0xce, 0xa7, 0xbf, 0x98, 0xf7, + 0xf7, 0x1f, 0x2e, 0xf3, 0x5c, 0xaf, 0x09, 0x6a, + 0xd4, 0x24, 0x89, 0x32, 0x51, 0xfc, 0x11, 0x98, + 0x4b, 0x89, 0x56, 0x78, 0xa7, 0x50, 0x9c, 0xfc, + 0x43, 0x7c, 0x4b, 0xa8, 0x56, 0x7d, 0xcd, 0xc7, + 0xcb, 0xbc, 0xad, 0x8a, 0x91, 0x24, 0x9b, 0x39, + 0xc9, 0x7b, 0x9d, 0x85, 0x12, 0x72, 0x4e, 0x81, + 0x9c, 0xe4, 0xe7, 0x24, 0xeb, 0x68, 0x25, 0x48, + 0x2e, 0xb1, 0x0f, 0x1b, 0x28, 0xc0, 0x10, 0x34, + 0x59, 0xf8, 0xda, 0x21, 0x7c, 0x0f, 0x5e, 0x46, + 0xb0, 0x22, 0xbf, 0x68, 0x85, 0x66, 0x68, 0x75, + 0xc2, 0x19, 0x42, 0x47, 0xec, 0x90, 0x6b, 0x31, + 0x03, 0x19, 0x8a, 0x78, 0x79, 0xdb, 0x98, 0xca, + 0xf3, 0xc2, 0xaf, 0xe2, 0x0b, 0xcb, 0xfb, 0xe5, + 0x9e, 0x90, 0xc0, 0xef, 0xa8, 0x24, 0xb8, 0x46, + 0xe3, 0x38, 0x9c, 0x3e, 0x00, 0x3b, 0x13, 0x00, + 0x69, 0x7e, 0x06, 0xa7, 0xdb, 0xcf, 0x32, 0x69, + 0xc0, 0x85, 0x54, 0x1c, 0x8b, 0x2e, 0x75, 0x9a, + 0xe3, 0xbe, 0xb6, 0x6e, 0xaf, 0x2f, 0x0c, 0xbd, + 0xb4, 0x3a, 0xbb, 0x00, 0x74, 0x29, 0xa1, 0x55, + 0x3a, 0x7e, 0xb1, 0x39, 0x55, 0x04, 0xc8, 0x11, + 0x25, 0xa1, 0x26, 0xef, 0x72, 0xd4, 0x64, 0x57, + 0x02, 0x69, 0xf7, 0xc9, 0x52, 0x6f, 0x10, 0xb6, + 0x1d, 0x7a, 0xcd, 0x37, 0xd8, 0x5d, 0xeb, 0x8d, + 0xb0, 0xdf, 0x60, 0xc4, 0x2a, 0x3d, 0x4e, 0x0c, + 0x57, 0x63, 0xd5, 0x33, 0x8c, 0xa7, 0x3c, 0x83, + 0xfa, 0x7c, 0x70, 0x8c, 0x7c, 0xed, 0xad, 0xcd, + 0x21, 0xb7, 0x84, 0x86, 0xd8, 0x81, 0xe2, 0x03, + 0xfa, 0x88, 0xc3, 0x22, 0x23, 0x55, 0x22, 0x9d, + 0xa5, 0x50, 0xef, 0xd9, 0x1a, 0x16, 0x9b, 0x51, + 0x8c, 0x78, 0x49, 0xc8, 0x88, 0xa3, 0xde, 0xdb, + 0xd8, 0xa8, 0x83, 0x3a, 0xda, 0xec, 0x1b, 0xcc, + 0xf6, 0x51, 0xd3, 0x67, 0xef, 0xcc, 0x8a, 0x89, + 0xb1, 0xa1, 0xeb, 0xdc, 0xa2, 0x75, 0xb2, 0xab, + 0x19, 0x03, 0xea, 0x56, 0x31, 0xf0, 0x85, 0x2a, + 0xce, 0x2b, 0x09, 0x18, 0x0e, 0x55, 0x96, 0x68, + 0xda, 0x80, 0xe1, 0xfc, 0xc6, 0x31, 0x8c, 0x67, + 0xf0, 0xab, 0xc1, 0x24, 0x5a, 0x7c, 0x18, 0xce, + 0x3a, 0x68, 0xe7, 0x4d, 0x1c, 0xf0, 0x27, 0xbb, + 0xa6, 0x8e, 0x61, 0x29, 0x4f, 0x3c, 0x09, 0xcf, + 0x3c, 0x09, 0xee, 0x4a, 0x12, 0x8f, 0x66, 0xa4, + 0x61, 0x69, 0xb0, 0x0a, 0x50, 0x82, 0x6d, 0x23, + 0xaa, 0xe0, 0xe8, 0x4d, 0x8e, 0x87, 0xda, 0xef, + 0xad, 0x9b, 0x26, 0x61, 0x81, 0xa7, 0xe9, 0x96, + 0xe6, 0x6e, 0x22, 0x85, 0xd8, 0xa7, 0x09, 0xaa, + 0xd7, 0x82, 0x4f, 0xb0, 0x0d, 0xc0, 0xab, 0x2c, + 0x98, 0x07, 0x7e, 0x70, 0x26, 0xe0, 0xd0, 0x02, + 0xc2, 0xe4, 0xd0, 0xbe, 0x73, 0x70, 0xe3, 0x67, + 0xcc, 0xd5, 0x2e, 0xe5, 0xe5, 0xce, 0x6f, 0x66, + 0x11, 0x63, 0xac, 0x3e, 0xb4, 0xf4, 0xc2, 0x1a, + 0xf7, 0x5f, 0xdb, 0x49, 0xb3, 0x61, 0xd9, 0x07, + 0x25, 0x0e, 0x1d, 0xac, 0xdf, 0x96, 0x78, 0x0d, + 0x1f, 0x06, 0x2d, 0x92, 0x06, 0x82, 0x28, 0x28, + 0xc4, 0xcb, 0x49, 0xba, 0xd5, 0x96, 0xc8, 0x6d, + 0x05, 0x68, 0xf0, 0xc4, 0x17, 0x37, 0x0c, 0x5e, + 0x4c, 0x4f, 0xbb, 0x16, 0x9c, 0x62, 0x8a, 0x04, + 0x25, 0x7e, 0x79, 0x68, 0x15, 0x76, 0xc8, 0xb0, + 0x2f, 0xfa, 0x1a, 0x06, 0xc1, 0xb8, 0xd9, 0xa0, + 0x91, 0x65, 0xf6, 0xf1, 0x9c, 0x27, 0xb5, 0xdf, + 0x5b, 0x0e, 0xfa, 0x95, 0x75, 0xab, 0xc9, 0xaa, + 0x93, 0xa1, 0x3f, 0x06, 0x7d, 0x4a, 0x66, 0x9a, + 0xe9, 0x2f, 0x58, 0x1c, 0x24, 0xfc, 0xcb, 0x9f, + 0xaa, 0xd3, 0x3f, 0x53, 0x59, 0x0d, 0x27, 0x3d, + 0x14, 0x95, 0xc7, 0x6e, 0xee, 0x73, 0x3d, 0x3d, + 0xc7, 0x31, 0x58, 0x4c, 0x4a, 0x6f, 0xa5, 0x76, + 0x50, 0xeb, 0xc5, 0x24, 0x7b, 0xae, 0xda, 0x60, + 0x69, 0xcf, 0x2b, 0xeb, 0x80, 0x1f, 0x3c, 0x96, + 0x0a, 0xbd, 0x8a, 0xcc, 0x9a, 0xd4, 0x06, 0x09, + 0x9c, 0xb1, 0x8e, 0x23, 0x40, 0x55, 0x5b, 0xcb, + 0x35, 0xbf, 0x58, 0x2c, 0x4d, 0x8e, 0x95, 0x0a, + 0x5e, 0x9c, 0x72, 0x2a, 0xf5, 0x49, 0xf9, 0xc5, + 0x62, 0xfd, 0x9c, 0xfe, 0x33, 0xae, 0x1f, 0x51, + 0xd2, 0x35, 0x19, 0x53, 0xcf, 0xb8, 0xda, 0x5d, + 0x42, 0x68, 0x30, 0x9b, 0x07, 0x9a, 0x01, 0x06, + 0x31, 0x59, 0xaa, 0x43, 0xab, 0x45, 0x2b, 0xaf, + 0xde, 0x2c, 0x7a, 0x64, 0x59, 0x32, 0x06, 0xd4, + 0x68, 0x79, 0xa8, 0xc9, 0xb5, 0x6b, 0xc8, 0xf6, + 0x39, 0xa5, 0x68, 0x4d, 0x9e, 0x85, 0x9a, 0x01, + 0x29, 0x28, 0x95, 0x5a, 0x4f, 0xf1, 0xe1, 0xd5, + 0x8f, 0x86, 0xae, 0xaa, 0xab, 0xd3, 0xab, 0xd7, + 0x29, 0x2f, 0xd6, 0x20, 0x8f, 0xd5, 0xae, 0x8a, + 0x5c, 0x2a, 0x33, 0xed, 0x11, 0x01, 0x52, 0x90, + 0x0c, 0xa9, 0xc0, 0x91, 0xac, 0x03, 0x87, 0x40, + 0x50, 0xe1, 0x30, 0x35, 0xeb, 0xd0, 0x0f, 0xd8, + 0x81, 0x35, 0x63, 0x16, 0xba, 0x01, 0x2c, 0x26, + 0xb7, 0x59, 0x87, 0x57, 0x83, 0xfe, 0x1f, 0xff, + 0xc4, 0x00, 0x33, 0x11, 0x00, 0x01, 0x03, 0x03, + 0x02, 0x04, 0x03, 0x03, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, + 0x00, 0x05, 0x11, 0x12, 0x31, 0x06, 0x21, 0x40, + 0x41, 0x13, 0x14, 0x61, 0x50, 0x52, 0x71, 0x10, + 0x16, 0x22, 0x25, 0x32, 0x33, 0x35, 0x42, 0x51, + 0x60, 0x91, 0xb1, 0xe1, 0xff, 0xda, 0x00, 0x08, + 0x01, 0x03, 0x01, 0x01, 0x3f, 0x01, 0xf9, 0x22, + 0xc6, 0x5c, 0xc7, 0x43, 0x2d, 0xee, 0x6b, 0xe6, + 0xb5, 0xc0, 0x8c, 0x8d, 0x3f, 0xcf, 0xf9, 0x57, + 0x0b, 0x63, 0xd6, 0xd5, 0x25, 0x0f, 0x63, 0x9f, + 0xe9, 0x5b, 0xf6, 0xf6, 0x05, 0x87, 0xf1, 0x16, + 0xeb, 0xf2, 0xd7, 0x16, 0x65, 0x4e, 0xb6, 0xac, + 0x76, 0xab, 0x34, 0xc8, 0x71, 0x23, 0xa8, 0x3c, + 0x32, 0xa3, 0xe9, 0x4e, 0x6a, 0x75, 0xc2, 0xb4, + 0x8e, 0x46, 0x8a, 0x14, 0x9e, 0x6a, 0x1d, 0x75, + 0x84, 0xfd, 0x60, 0xdd, 0x76, 0xab, 0xc4, 0xe6, + 0x1b, 0x8c, 0xea, 0x0a, 0xc6, 0xac, 0x6d, 0x4b, + 0x4f, 0x91, 0xb3, 0x60, 0xfb, 0xbf, 0xdd, 0x59, + 0xd5, 0x1c, 0xc6, 0x43, 0x4d, 0xab, 0x24, 0x6f, + 0x5c, 0x4e, 0x94, 0xa6, 0x17, 0x2f, 0x7b, 0xac, + 0x86, 0x86, 0x9d, 0x7d, 0x08, 0x78, 0xe0, 0x1a, + 0x1c, 0x2d, 0x08, 0x8c, 0x85, 0x9c, 0x54, 0x4e, + 0x1e, 0x8f, 0x11, 0xe4, 0xbc, 0xda, 0x8e, 0x45, + 0x27, 0xb0, 0xab, 0x95, 0xbd, 0xff, 0x00, 0x3c, + 0x16, 0xe6, 0xcb, 0x55, 0x71, 0x06, 0xb5, 0xc7, + 0x6e, 0x22, 0x3e, 0xd2, 0x8e, 0x2a, 0xc3, 0x6b, + 0x76, 0xdc, 0x95, 0x99, 0x1b, 0x9a, 0xba, 0x43, + 0x4c, 0xd8, 0xab, 0x6e, 0x94, 0x9f, 0x0d, 0x65, + 0x1d, 0x5f, 0x3e, 0xd5, 0xc3, 0xb7, 0x65, 0xa9, + 0x5e, 0x55, 0xf3, 0xf0, 0xaf, 0x4a, 0x07, 0x35, + 0x39, 0x68, 0x72, 0xea, 0xca, 0x16, 0x79, 0x24, + 0x13, 0x52, 0x9e, 0x66, 0x45, 0xd5, 0x94, 0xea, + 0xfa, 0x29, 0x19, 0xa4, 0xa8, 0x29, 0x20, 0x8a, + 0x73, 0x48, 0x07, 0x34, 0xff, 0x00, 0xdf, 0x2b, + 0xe3, 0xd6, 0x32, 0xea, 0xa3, 0xb8, 0x97, 0x51, + 0xb8, 0xa7, 0xf8, 0xa0, 0xa9, 0x8d, 0x0d, 0x27, + 0x0b, 0x3d, 0xea, 0xcb, 0x7c, 0x79, 0x52, 0x43, + 0x52, 0x55, 0x90, 0x6a, 0xfd, 0x6a, 0x98, 0xec, + 0xb2, 0xeb, 0x69, 0xc8, 0x22, 0x85, 0xa6, 0x69, + 0x23, 0x2d, 0x9a, 0x97, 0x72, 0x66, 0xcc, 0xc2, + 0x59, 0x3c, 0xd5, 0x8d, 0xaa, 0x55, 0xfa, 0x64, + 0xb2, 0x46, 0xad, 0x23, 0xd3, 0xaf, 0x07, 0x49, + 0x04, 0x76, 0xab, 0x4c, 0xd1, 0x3e, 0x28, 0x20, + 0xf3, 0x1b, 0xd3, 0xae, 0x16, 0xdb, 0x2b, 0xa9, + 0x32, 0x17, 0x29, 0xe5, 0x3a, 0xbe, 0xfe, 0xc1, + 0xb7, 0xdc, 0x1d, 0xb7, 0xb9, 0xe2, 0x37, 0x47, + 0x89, 0xa2, 0x3a, 0xde, 0x95, 0xa4, 0xd2, 0xb0, + 0x49, 0x23, 0x6f, 0xdc, 0x7f, 0xff, 0xc4, 0x00, + 0x27, 0x11, 0x00, 0x02, 0x02, 0x01, 0x02, 0x04, + 0x07, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x03, 0x11, 0x04, + 0x12, 0x10, 0x21, 0x31, 0x40, 0x13, 0x14, 0x22, + 0x32, 0x41, 0x50, 0x61, 0x42, 0x60, 0xff, 0xda, + 0x00, 0x08, 0x01, 0x02, 0x01, 0x01, 0x3f, 0x01, + 0xe0, 0xcc, 0x10, 0x64, 0xcf, 0x37, 0x5e, 0x25, + 0x76, 0xa5, 0xbc, 0xd7, 0xe8, 0x6f, 0xf6, 0x70, + 0xd2, 0x74, 0x9a, 0x94, 0x66, 0x71, 0xb4, 0xc1, + 0x85, 0x18, 0x80, 0x83, 0xdf, 0x5f, 0xec, 0xe1, + 0x45, 0x67, 0x3b, 0xa6, 0x4b, 0xdf, 0xf9, 0x2f, + 0xdc, 0x2c, 0x9a, 0x3c, 0xee, 0xef, 0x1c, 0x95, + 0x19, 0x10, 0xea, 0xdc, 0x46, 0xd4, 0xb3, 0xae, + 0x0c, 0x12, 0x9b, 0x57, 0xc3, 0x38, 0x9a, 0x4e, + 0xac, 0xe6, 0x6a, 0x2e, 0x5b, 0x71, 0x89, 0x43, + 0xec, 0x78, 0x0e, 0x46, 0x7b, 0xcd, 0x55, 0x3f, + 0xd0, 0x83, 0x82, 0x7a, 0x68, 0x62, 0x3e, 0x62, + 0xa9, 0x5a, 0x1b, 0x97, 0x59, 0xd3, 0x94, 0x1d, + 0x62, 0x72, 0x51, 0xde, 0x38, 0xdc, 0x31, 0x06, + 0x93, 0xd5, 0xf9, 0x35, 0x1a, 0x75, 0x0b, 0x94, + 0x9a, 0x7b, 0x50, 0x26, 0xd3, 0x0d, 0xf5, 0xe3, + 0xac, 0x5a, 0x9a, 0xe6, 0xcc, 0x4d, 0x3a, 0x2f, + 0xc7, 0x7e, 0x46, 0x79, 0x19, 0xa8, 0xaf, 0xc3, + 0x7e, 0x50, 0x28, 0x26, 0x22, 0xec, 0x50, 0x3e, + 0x86, 0xda, 0x85, 0x83, 0x13, 0xc9, 0xb2, 0xb0, + 0xc4, 0x1c, 0xbf, 0xd1, 0xff, 0x00, 0xff, 0xc4, + 0x00, 0x49, 0x10, 0x00, 0x01, 0x03, 0x02, 0x03, + 0x04, 0x04, 0x09, 0x06, 0x0a, 0x0b, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, + 0x11, 0x05, 0x12, 0x21, 0x13, 0x31, 0x41, 0x51, + 0x14, 0x22, 0x32, 0x71, 0x06, 0x10, 0x15, 0x23, + 0x42, 0x61, 0x81, 0x91, 0xb1, 0x24, 0x33, 0x40, + 0x72, 0x73, 0xc1, 0x20, 0x43, 0x50, 0x74, 0x83, + 0x92, 0xb2, 0xc3, 0xd1, 0xf0, 0x16, 0x30, 0x34, + 0x52, 0x62, 0xa1, 0xc2, 0xd2, 0xe1, 0xe2, 0xf1, + 0xf2, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, + 0x06, 0x3f, 0x02, 0xf1, 0x2e, 0x4b, 0xa1, 0x45, + 0x08, 0xde, 0x11, 0xbe, 0xbe, 0x66, 0x4f, 0xea, + 0xa7, 0xf8, 0xd3, 0xa6, 0x3a, 0x5c, 0x4e, 0xcf, + 0x7e, 0xd0, 0x01, 0xf9, 0x06, 0x5f, 0x70, 0xf8, + 0xf8, 0xa6, 0xdc, 0x81, 0xd6, 0x4f, 0xdf, 0x49, + 0x31, 0xc8, 0x0d, 0x25, 0x36, 0xf9, 0xdb, 0x53, + 0x6d, 0x15, 0x81, 0x91, 0x20, 0x6a, 0x6b, 0x45, + 0x03, 0xdd, 0xe2, 0xb1, 0x5a, 0x41, 0xf5, 0x9a, + 0xf9, 0xc4, 0xfb, 0xea, 0xc1, 0x69, 0x27, 0xd4, + 0x7e, 0x95, 0x2f, 0xb8, 0x7c, 0x7c, 0x51, 0x1c, + 0xd8, 0xb9, 0xd1, 0xf3, 0xdc, 0xae, 0xdd, 0x5d, + 0x2a, 0xfb, 0xd3, 0xb7, 0xbf, 0xb1, 0x3f, 0xf9, + 0x4f, 0xbe, 0xeb, 0x4e, 0x34, 0x97, 0x16, 0x72, + 0x95, 0x0b, 0x5e, 0x95, 0xaf, 0xe2, 0x8f, 0x8a, + 0x4c, 0xec, 0x49, 0xd7, 0x64, 0x3e, 0xf2, 0xee, + 0x02, 0x15, 0x95, 0x29, 0x1c, 0x05, 0x27, 0x05, + 0x05, 0xde, 0x84, 0x57, 0xbb, 0x3e, 0xbd, 0x8b, + 0xef, 0xa8, 0x53, 0x52, 0xe4, 0xc8, 0x8b, 0x4a, + 0xee, 0x95, 0x6a, 0xe3, 0x6b, 0xe6, 0x93, 0xec, + 0xac, 0xdf, 0x2b, 0x29, 0xe7, 0xd1, 0xd5, 0x4c, + 0xe2, 0x7e, 0x7d, 0x50, 0x9d, 0xfc, 0x6a, 0x1b, + 0xbe, 0x53, 0x7b, 0x58, 0xf2, 0xa7, 0x5d, 0x83, + 0xb5, 0x53, 0x6d, 0x9b, 0x15, 0xad, 0x19, 0x45, + 0xe9, 0xc8, 0x2c, 0x35, 0x24, 0xc8, 0x68, 0xe5, + 0x72, 0xed, 0x68, 0xdf, 0x79, 0xa4, 0xc8, 0x9c, + 0xb2, 0x84, 0x29, 0x59, 0x46, 0x51, 0x72, 0x4d, + 0x37, 0x32, 0x22, 0x8a, 0xd8, 0x5e, 0xeb, 0x8b, + 0x1a, 0x4b, 0x12, 0x5c, 0x52, 0xe4, 0xab, 0x50, + 0xc3, 0x29, 0xce, 0xba, 0x6a, 0x23, 0x6e, 0x3a, + 0xdc, 0xa7, 0x0d, 0x92, 0xcb, 0xcd, 0x94, 0x9d, + 0xd7, 0xfa, 0x03, 0xee, 0x45, 0x48, 0x5b, 0xe9, + 0x17, 0x4a, 0x54, 0x37, 0xd7, 0xcd, 0xc7, 0xfd, + 0x53, 0xfc, 0x69, 0xc8, 0xee, 0xa1, 0x90, 0xda, + 0xf7, 0xe5, 0x49, 0xbf, 0xc7, 0xc4, 0xa6, 0x9a, + 0x2a, 0xcd, 0x15, 0x8c, 0xcb, 0xb8, 0xa9, 0x33, + 0x9f, 0xec, 0x47, 0x68, 0xa8, 0x9f, 0xe7, 0xdb, + 0x51, 0xfa, 0x39, 0x56, 0xcd, 0xb0, 0x7b, 0x42, + 0xda, 0xd3, 0x72, 0x00, 0xcc, 0x06, 0x8a, 0x1c, + 0xc5, 0x21, 0x63, 0x72, 0x85, 0xfc, 0x48, 0xfb, + 0x4f, 0xdd, 0x54, 0x3f, 0xce, 0x7f, 0xd2, 0x6a, + 0x2a, 0x3c, 0x93, 0x89, 0x2f, 0x65, 0x19, 0x23, + 0x30, 0x8d, 0xd4, 0x3d, 0x5e, 0x7c, 0xaa, 0xdd, + 0x15, 0xb4, 0x31, 0x39, 0xbd, 0xab, 0xac, 0xa7, + 0xb3, 0x75, 0x01, 0x7a, 0x9f, 0x87, 0x47, 0x75, + 0x0e, 0x33, 0x21, 0x1e, 0x6c, 0xad, 0x5a, 0x22, + 0xfd, 0x95, 0x77, 0x8a, 0x6d, 0xa4, 0x2f, 0x6e, + 0xeb, 0x9e, 0x71, 0xe9, 0x17, 0xbe, 0xd5, 0x47, + 0x8d, 0x3f, 0x01, 0xcd, 0x60, 0x61, 0xb1, 0xca, + 0x55, 0xf6, 0xab, 0x1f, 0xcf, 0xba, 0xb1, 0x2c, + 0x0a, 0x49, 0xb3, 0xad, 0xa8, 0xad, 0x09, 0x3c, + 0xc6, 0x8a, 0xfb, 0xaa, 0x6e, 0x32, 0x60, 0x74, + 0xc8, 0x92, 0x06, 0x8e, 0xf0, 0x03, 0x4e, 0x3c, + 0x0e, 0x95, 0x10, 0x4d, 0x8c, 0xb8, 0x72, 0xdb, + 0x70, 0x29, 0xa7, 0x97, 0xe8, 0x9f, 0xac, 0x3e, + 0x83, 0xd3, 0xe3, 0xa7, 0x2e, 0xbe, 0x75, 0x23, + 0x77, 0x7f, 0x8f, 0x10, 0x75, 0x29, 0x25, 0x6f, + 0xb8, 0x1a, 0x16, 0x15, 0x88, 0x39, 0xb2, 0x5e, + 0x77, 0x96, 0x94, 0x76, 0x75, 0xb5, 0x58, 0x8b, + 0x1f, 0x5f, 0x89, 0x8f, 0xa8, 0x3e, 0x1e, 0x24, + 0xcf, 0x0e, 0x7c, 0x8c, 0x39, 0x6d, 0xbd, 0xba, + 0xbd, 0x8b, 0x7c, 0x6a, 0x14, 0x64, 0x2b, 0x3b, + 0xfb, 0x5d, 0xa6, 0x44, 0xea, 0x72, 0xd8, 0xeb, + 0x50, 0xe3, 0x3e, 0x24, 0xe7, 0x6d, 0x84, 0xa1, + 0x69, 0xd8, 0x13, 0xc2, 0xa4, 0x4c, 0x4c, 0x55, + 0x34, 0xd0, 0xea, 0x42, 0x8e, 0x45, 0x96, 0xed, + 0xb8, 0xdb, 0x80, 0xa9, 0x53, 0xa7, 0x49, 0x6d, + 0x53, 0xe5, 0x1e, 0x92, 0xb9, 0x67, 0xf1, 0x6a, + 0xe0, 0x9e, 0xee, 0x15, 0x22, 0x1e, 0x22, 0x17, + 0x9a, 0x33, 0x64, 0xc6, 0x25, 0x27, 0xaf, 0xfe, + 0x0a, 0x38, 0x93, 0xf3, 0xa6, 0x22, 0x5c, 0x87, + 0x54, 0xb7, 0xd3, 0x1d, 0xf2, 0x8b, 0x1b, 0xee, + 0x35, 0x12, 0x44, 0x27, 0x5e, 0x94, 0x84, 0xd9, + 0x6f, 0x67, 0x39, 0xd6, 0x2f, 0xda, 0xb9, 0xee, + 0xa9, 0x4c, 0xce, 0x61, 0xd7, 0xa0, 0x85, 0x82, + 0xcc, 0xe6, 0x1b, 0xba, 0x72, 0xab, 0x50, 0x15, + 0x50, 0x63, 0xe0, 0x30, 0x54, 0xb9, 0x19, 0xee, + 0xec, 0x90, 0xce, 0x40, 0x07, 0xae, 0x90, 0x8b, + 0xdf, 0x28, 0xb5, 0xfe, 0x80, 0xe3, 0x0e, 0x0b, + 0xb6, 0xe0, 0xca, 0x6b, 0x34, 0x87, 0x83, 0x91, + 0x46, 0xb9, 0x46, 0xf5, 0x52, 0xa4, 0x43, 0x67, + 0x64, 0xb6, 0xb5, 0x52, 0x53, 0xc5, 0x34, 0x98, + 0xd2, 0x1c, 0xd8, 0xb8, 0x95, 0x1d, 0xe3, 0x43, + 0x47, 0xe5, 0x8d, 0x7b, 0xe9, 0xe7, 0x53, 0xd4, + 0x68, 0xac, 0x95, 0x3a, 0xa1, 0x40, 0xec, 0x76, + 0xee, 0x7f, 0x7d, 0xdd, 0x6a, 0xc3, 0x41, 0x5a, + 0x50, 0xc0, 0x3c, 0x9f, 0x0f, 0xa4, 0x95, 0x65, + 0xda, 0x66, 0x39, 0x37, 0x5e, 0xf4, 0x33, 0x04, + 0xe6, 0xae, 0xc8, 0xf7, 0x57, 0x64, 0x55, 0xac, + 0x2d, 0xca, 0xbb, 0x22, 0xb4, 0x00, 0x57, 0x64, + 0x55, 0xb2, 0x8b, 0x72, 0xae, 0xaa, 0x42, 0x7b, + 0xbe, 0x86, 0x41, 0xd4, 0x1d, 0x2d, 0x4e, 0x32, + 0x47, 0x9b, 0x3d, 0x66, 0xcf, 0x31, 0x48, 0x40, + 0xf4, 0x8d, 0xa9, 0xb8, 0xed, 0x0b, 0x25, 0x03, + 0xf0, 0x11, 0xf6, 0x9f, 0xba, 0xa8, 0xe9, 0xc2, + 0xa6, 0xcb, 0x1b, 0x66, 0x4b, 0xa5, 0x84, 0x2f, + 0x4e, 0xaf, 0x21, 0x4b, 0x42, 0xd5, 0xb1, 0x9c, + 0x84, 0xd9, 0xe4, 0x36, 0xab, 0x1f, 0xac, 0x9a, + 0xc7, 0x31, 0x37, 0x25, 0x3d, 0x36, 0x43, 0x32, + 0x8c, 0x66, 0x83, 0xeb, 0x25, 0x29, 0xd4, 0x6b, + 0x6f, 0x6d, 0x31, 0x88, 0x7f, 0x4a, 0xe5, 0x74, + 0xa7, 0x53, 0x9f, 0x23, 0x44, 0x14, 0xa0, 0xf2, + 0xcb, 0x4d, 0xe1, 0xee, 0xcf, 0x53, 0x2f, 0x09, + 0x4a, 0x53, 0x98, 0x83, 0x7b, 0xd4, 0xd5, 0xae, + 0x2c, 0x3b, 0xcd, 0xad, 0xea, 0xac, 0x3f, 0x07, + 0x47, 0x84, 0x13, 0x96, 0xdc, 0xac, 0x97, 0x71, + 0x4a, 0xd4, 0x66, 0x55, 0xa9, 0xd4, 0xbb, 0x8b, + 0xcb, 0xc4, 0x20, 0x3c, 0xc2, 0x81, 0x59, 0x5e, + 0x57, 0x18, 0x58, 0xd4, 0x1f, 0x8d, 0x4c, 0xda, + 0xf8, 0x41, 0x3a, 0x3e, 0xc3, 0x2d, 0xb2, 0x2a, + 0xf7, 0xbd, 0x46, 0xc2, 0x25, 0x62, 0x0a, 0xc5, + 0x22, 0xbe, 0x50, 0x2e, 0xe0, 0xeb, 0x0c, 0xd5, + 0x1f, 0x0a, 0x46, 0x27, 0x31, 0x10, 0x9e, 0x29, + 0x51, 0x6c, 0x3c, 0x79, 0x5e, 0xc2, 0x9e, 0x40, + 0x71, 0xc6, 0xba, 0x9a, 0x2d, 0xb5, 0x59, 0x43, + 0xdb, 0x53, 0xe7, 0xbd, 0x88, 0xcb, 0x54, 0xbb, + 0x38, 0xa4, 0xbb, 0xb5, 0x37, 0x4e, 0x4d, 0xd6, + 0xa6, 0xe1, 0x62, 0xf2, 0x5d, 0x79, 0x13, 0x1a, + 0x0a, 0x64, 0xbc, 0xab, 0xd8, 0x9d, 0x53, 0x6e, + 0xfa, 0x6a, 0x26, 0x1e, 0xb5, 0x37, 0x3a, 0x49, + 0x24, 0x29, 0x06, 0xc5, 0x28, 0x48, 0xba, 0x8d, + 0x4f, 0x91, 0x37, 0x10, 0x96, 0xeb, 0xa5, 0x45, + 0xa0, 0x76, 0xa7, 0xa8, 0x2c, 0x0d, 0xc7, 0xae, + 0xb1, 0x04, 0x3b, 0xe1, 0x04, 0xe6, 0x13, 0x18, + 0x80, 0x32, 0x2a, 0xf7, 0xdf, 0xfc, 0x29, 0xb2, + 0x71, 0x97, 0xb1, 0x48, 0xab, 0x41, 0x43, 0xcc, + 0xc8, 0x55, 0x94, 0xdf, 0x25, 0x8f, 0x75, 0xaa, + 0x63, 0x89, 0x93, 0x22, 0x76, 0x1b, 0x16, 0x46, + 0xc9, 0x48, 0x7d, 0x79, 0x85, 0x8f, 0x0f, 0xf9, + 0xa7, 0xf1, 0x5c, 0x32, 0x5b, 0xad, 0x14, 0x27, + 0x3a, 0x16, 0xca, 0xf2, 0x90, 0x79, 0x1a, 0xc2, + 0xf2, 0x62, 0xf2, 0xe1, 0xc7, 0xe8, 0xa9, 0x75, + 0xc7, 0xc2, 0xf3, 0x2d, 0xe7, 0x17, 0xad, 0xbb, + 0x85, 0x4a, 0xc0, 0xd5, 0xe1, 0x04, 0xe4, 0xb4, + 0xce, 0x7b, 0x3a, 0x15, 0xd6, 0x36, 0xac, 0x49, + 0x6e, 0xcb, 0x5e, 0x25, 0x75, 0xa3, 0xa2, 0xc9, + 0x7b, 0x7a, 0x6f, 0xbc, 0x1e, 0xeb, 0x54, 0x79, + 0xed, 0xf8, 0x5b, 0x29, 0x52, 0x9c, 0x40, 0x5f, + 0x56, 0xca, 0x6d, 0x27, 0x96, 0x5a, 0x0c, 0xe2, + 0x8a, 0xda, 0x4b, 0x69, 0x6a, 0x4e, 0xda, 0xf7, + 0xda, 0x0e, 0x0a, 0xfc, 0x1d, 0x9b, 0xa2, 0xca, + 0x1d, 0x95, 0x8d, 0xe2, 0x81, 0x69, 0xc6, 0x56, + 0x01, 0xb8, 0x55, 0xed, 0x43, 0x37, 0x6a, 0xda, + 0xfe, 0x02, 0x3e, 0xd3, 0xf7, 0x55, 0x80, 0x7d, + 0x83, 0x9f, 0x7d, 0x0f, 0x08, 0xf0, 0x5b, 0xa1, + 0xb0, 0xac, 0xcf, 0x34, 0x9f, 0x47, 0xfe, 0xa6, + 0xb1, 0x01, 0x8a, 0x84, 0xa6, 0x34, 0xc9, 0xaa, + 0x4a, 0x82, 0xbb, 0x37, 0x55, 0xad, 0xaf, 0x0a, + 0xdb, 0x61, 0x58, 0xa3, 0x91, 0xd7, 0xe8, 0x87, + 0x3f, 0xdc, 0x2b, 0x12, 0xc2, 0x71, 0x17, 0x4c, + 0x85, 0x43, 0xdc, 0xe2, 0x8e, 0x62, 0x35, 0xb1, + 0x17, 0xe3, 0x58, 0x0f, 0xe8, 0x7f, 0x6c, 0xd3, + 0xff, 0x00, 0x50, 0xfc, 0x2b, 0x12, 0xf2, 0x76, + 0x27, 0xe4, 0xe2, 0x9c, 0xb9, 0xbc, 0xd8, 0x56, + 0x6d, 0xf4, 0xfb, 0x38, 0xf2, 0x56, 0xee, 0x36, + 0x16, 0x43, 0x4f, 0xb8, 0xbb, 0xa7, 0x37, 0x77, + 0xc2, 0xb0, 0xe5, 0x2b, 0x40, 0x42, 0x2c, 0x7d, + 0x86, 0x9e, 0x24, 0xd8, 0x04, 0x1f, 0x85, 0x4e, + 0xd3, 0xd0, 0x91, 0xf0, 0x35, 0xe0, 0xee, 0x37, + 0x1a, 0xe1, 0xf8, 0x8d, 0x21, 0x2a, 0x50, 0xe5, + 0xe8, 0x9f, 0x7d, 0x63, 0x9e, 0x11, 0xc8, 0x46, + 0x54, 0x88, 0x66, 0x2c, 0x74, 0x9e, 0x1d, 0x5e, + 0xb9, 0xf7, 0xd4, 0xcf, 0xb7, 0x3f, 0xb2, 0x2b, + 0x16, 0xf9, 0x7c, 0xb8, 0x5b, 0x35, 0x0f, 0xec, + 0xae, 0x65, 0xcd, 0xa9, 0xdf, 0x53, 0x1f, 0x77, + 0x11, 0x76, 0x53, 0x4f, 0x84, 0x00, 0xa9, 0x6b, + 0xba, 0x81, 0x17, 0xd2, 0xfe, 0xda, 0xf0, 0xc2, + 0x34, 0x96, 0xc3, 0xac, 0xb8, 0xfa, 0x42, 0x92, + 0x7b, 0x8d, 0x4f, 0xc3, 0xd2, 0x4b, 0xb8, 0x56, + 0x20, 0x8b, 0x24, 0xab, 0x77, 0xff, 0x00, 0x42, + 0xb0, 0x9f, 0xcd, 0x5a, 0xfd, 0x91, 0x58, 0x9f, + 0xe9, 0x3e, 0xea, 0x4c, 0x2c, 0x4e, 0xdd, 0x1e, + 0x5a, 0xf6, 0x42, 0xfa, 0x75, 0xb7, 0x8d, 0x78, + 0x6e, 0xa2, 0xf6, 0x13, 0x8a, 0xb8, 0xcb, 0x9c, + 0x03, 0x9a, 0x1f, 0xd6, 0x15, 0x88, 0x44, 0x9e, + 0xe1, 0x7d, 0x70, 0xd6, 0x90, 0x97, 0x54, 0x6e, + 0x4d, 0xef, 0xa5, 0xf8, 0xf6, 0x7f, 0xab, 0x18, + 0xc9, 0xc6, 0x55, 0xe5, 0x00, 0xac, 0xd9, 0x84, + 0x71, 0x97, 0x75, 0xb7, 0x5e, 0x98, 0xc5, 0x46, + 0x2b, 0xb2, 0x76, 0x38, 0xca, 0xd2, 0x03, 0x00, + 0xa4, 0x0e, 0x37, 0xd7, 0x5b, 0xeb, 0x4a, 0x42, + 0xc0, 0x52, 0x54, 0x2c, 0x41, 0xe3, 0x58, 0x8e, + 0x14, 0xda, 0xd4, 0x88, 0xb2, 0xdd, 0xda, 0xa7, + 0x4f, 0x9b, 0xdd, 0xf7, 0x8a, 0xd8, 0xc2, 0xf0, + 0x9e, 0x6c, 0x78, 0x7b, 0x83, 0x2a, 0x4e, 0x72, + 0x07, 0xd6, 0xbd, 0x2d, 0xa8, 0xd9, 0x96, 0xe3, + 0x86, 0xee, 0x3c, 0xe6, 0xaa, 0x59, 0xa4, 0x62, + 0xcb, 0xc5, 0x8a, 0x24, 0xb4, 0x41, 0x67, 0x2b, + 0x02, 0xc8, 0xb1, 0xb8, 0xe3, 0xad, 0x29, 0x86, + 0xe4, 0x86, 0x64, 0x29, 0x39, 0x76, 0xfb, 0x3b, + 0xf7, 0x9c, 0xb7, 0xa7, 0x16, 0xc6, 0x22, 0xa7, + 0x9a, 0x77, 0xe7, 0x1a, 0x5b, 0x43, 0x5e, 0x5a, + 0xde, 0x9b, 0x9c, 0xd4, 0x95, 0xe1, 0xf3, 0xd3, + 0x6f, 0x3c, 0x84, 0xde, 0xf6, 0xdd, 0xa7, 0x3a, + 0x8e, 0x31, 0x19, 0x8b, 0x77, 0x11, 0x63, 0xb1, + 0x39, 0x94, 0x06, 0xd5, 0xea, 0xd2, 0xb6, 0x13, + 0x3c, 0x28, 0x99, 0x22, 0x19, 0xd1, 0x4d, 0x25, + 0xb0, 0x92, 0x47, 0x2b, 0xde, 0xbc, 0x91, 0x05, + 0xee, 0x82, 0xc6, 0x4d, 0x99, 0x56, 0x4c, 0xe7, + 0x2f, 0x1f, 0x69, 0xe7, 0x4e, 0x60, 0xf2, 0xa5, + 0x74, 0xc8, 0xe5, 0x05, 0xa4, 0x2b, 0x67, 0x94, + 0xa5, 0x36, 0xff, 0x00, 0x3a, 0x4e, 0x0b, 0x16, + 0x4f, 0x46, 0x6f, 0x26, 0xcd, 0x4e, 0xec, 0xee, + 0x48, 0xf4, 0xbd, 0xf5, 0x2a, 0x2c, 0x4c, 0x52, + 0xe8, 0x7b, 0x51, 0xb4, 0x60, 0x1c, 0x8a, 0xe7, + 0xbf, 0x97, 0x0a, 0x75, 0x50, 0xf1, 0xf9, 0x51, + 0xd4, 0xef, 0x6f, 0x66, 0x80, 0x2f, 0x4c, 0x4a, + 0x99, 0x8d, 0xca, 0xc4, 0x36, 0x17, 0x53, 0x6d, + 0x3c, 0x3a, 0xa1, 0x5c, 0x0d, 0x4a, 0x9a, 0x71, + 0x33, 0x27, 0xa5, 0x9c, 0xcf, 0xa0, 0xb2, 0x00, + 0x51, 0xf5, 0x6b, 0xa5, 0x3b, 0x0e, 0x5a, 0x73, + 0x36, 0xbe, 0x3c, 0x52, 0x79, 0x8a, 0x8d, 0x0d, + 0x2e, 0xe6, 0x53, 0x0c, 0xa5, 0xa0, 0xe1, 0x4f, + 0x21, 0x6b, 0xda, 0x8e, 0x30, 0x9c, 0x58, 0xaa, + 0x62, 0xcd, 0xdc, 0xbc, 0x71, 0x95, 0x57, 0xde, + 0x2d, 0x7d, 0x29, 0x70, 0x5e, 0x51, 0x42, 0x14, + 0xa4, 0xab, 0x32, 0x77, 0x8b, 0x1b, 0xd1, 0x61, + 0x8f, 0x0a, 0x26, 0xb7, 0x0b, 0x70, 0x69, 0x49, + 0xcc, 0xa0, 0x39, 0x66, 0xbd, 0x74, 0x68, 0x60, + 0xd8, 0x9c, 0xcb, 0x5a, 0xfb, 0x4b, 0x3e, 0xbf, + 0xc8, 0x9f, 0xff, 0xc4, 0x00, 0x2a, 0x10, 0x01, + 0x00, 0x02, 0x02, 0x01, 0x03, 0x03, 0x03, 0x04, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x81, + 0x10, 0x71, 0xf0, 0x91, 0xa1, 0xb1, 0x30, 0x40, + 0xc1, 0xd1, 0x20, 0x50, 0xf1, 0xe1, 0xff, 0xda, + 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x3f, 0x21, + 0xf4, 0xa0, 0xdb, 0x20, 0x1d, 0xab, 0x94, 0xf4, + 0x9a, 0x7d, 0x74, 0x1c, 0xe2, 0xf5, 0x4b, 0xd2, + 0x20, 0xde, 0x22, 0xbf, 0xdf, 0xfc, 0x07, 0x44, + 0xe2, 0x05, 0x28, 0xd0, 0x2e, 0xf1, 0x05, 0x3b, + 0xa7, 0x6a, 0xde, 0x71, 0x2e, 0xc2, 0xe4, 0x5c, + 0x12, 0x94, 0xff, 0x00, 0x45, 0x7e, 0x9d, 0x94, + 0x90, 0x13, 0xfe, 0x3e, 0x76, 0x72, 0x40, 0xfe, + 0xe2, 0xe5, 0xcf, 0x80, 0xe8, 0x9c, 0x4b, 0x25, + 0x57, 0x7f, 0x87, 0x77, 0x88, 0x2a, 0xd7, 0x32, + 0x0e, 0x38, 0xa2, 0xc1, 0xc7, 0xc8, 0x07, 0x4f, + 0x10, 0x41, 0x49, 0xca, 0xf7, 0x23, 0x98, 0xcc, + 0xe8, 0xdf, 0x5e, 0x06, 0xf0, 0x06, 0x61, 0xe0, + 0x14, 0xe9, 0x75, 0xf9, 0x10, 0x6e, 0x56, 0xa8, + 0x87, 0xba, 0x17, 0xe1, 0x89, 0x04, 0x49, 0x61, + 0xaa, 0xbd, 0xe3, 0xd4, 0xb6, 0x04, 0x80, 0xc0, + 0xed, 0x59, 0xcc, 0x10, 0x32, 0x48, 0x1d, 0x05, + 0xfc, 0xcc, 0x7d, 0x71, 0x17, 0x18, 0xf1, 0x12, + 0xb1, 0xb7, 0xf0, 0xc5, 0xeb, 0xc4, 0xb0, 0x38, + 0x8a, 0xa1, 0x1a, 0x44, 0xe2, 0x1f, 0x99, 0xb1, + 0xd1, 0xd6, 0x8d, 0x79, 0x88, 0x49, 0xf8, 0x8b, + 0xf0, 0x71, 0xd7, 0xf6, 0x19, 0x72, 0xce, 0x05, + 0x37, 0x8f, 0x6b, 0x95, 0xf6, 0x24, 0x34, 0xc1, + 0x91, 0x36, 0xf4, 0x64, 0x54, 0xf5, 0x25, 0xd5, + 0xfe, 0x62, 0x4c, 0xae, 0xf9, 0xdc, 0x40, 0xe3, + 0x2c, 0xb9, 0x0f, 0xf9, 0x3c, 0xc3, 0x1b, 0x77, + 0xfc, 0x43, 0xb5, 0x01, 0x37, 0xdf, 0xd3, 0xe0, + 0x77, 0x43, 0xf4, 0x71, 0xde, 0x45, 0x12, 0xf0, + 0x67, 0x3f, 0xaa, 0x62, 0x10, 0xb2, 0x09, 0x6a, + 0x1c, 0x78, 0xf7, 0xdc, 0x33, 0xa8, 0x72, 0x05, + 0x85, 0x38, 0xc9, 0x7d, 0x71, 0xda, 0x12, 0x7e, + 0x4c, 0x32, 0x9b, 0xf2, 0x67, 0x1d, 0xa3, 0x48, + 0xd4, 0xcd, 0x62, 0x0f, 0xb8, 0x43, 0x85, 0xc5, + 0x8e, 0x92, 0xb3, 0xee, 0xfa, 0xc4, 0x13, 0x99, + 0x87, 0x0b, 0x84, 0x6a, 0xc3, 0x3c, 0x4a, 0x9f, + 0x22, 0xd5, 0xc2, 0x6e, 0x07, 0x54, 0xe3, 0xac, + 0x3f, 0x5d, 0x2c, 0x89, 0x38, 0xff, 0x00, 0x50, + 0xfb, 0x3d, 0x73, 0x9d, 0x06, 0xb0, 0x65, 0xf1, + 0x96, 0x62, 0xe4, 0x50, 0x58, 0x13, 0x8f, 0xac, + 0x50, 0x82, 0xd9, 0xb4, 0x79, 0xc4, 0xf8, 0xbe, + 0x89, 0x74, 0x5c, 0xb8, 0x61, 0x50, 0x5d, 0xfd, + 0xf4, 0xd2, 0xe5, 0xe5, 0xa3, 0x5b, 0x42, 0xd3, + 0x8b, 0x62, 0x40, 0x56, 0x5c, 0xa1, 0x13, 0xbc, + 0x4f, 0x82, 0xd0, 0xd2, 0x94, 0x75, 0xb8, 0xf1, + 0x16, 0x6b, 0xb4, 0x27, 0x8b, 0x76, 0x0d, 0x8e, + 0xfd, 0x88, 0xdf, 0xee, 0x54, 0x83, 0x5a, 0x6e, + 0xea, 0xbb, 0x7b, 0x42, 0xd2, 0x68, 0x0b, 0xd4, + 0x15, 0xba, 0x79, 0xeb, 0x33, 0x44, 0x58, 0x64, + 0x01, 0xcc, 0xaa, 0xe3, 0x58, 0xa0, 0x0e, 0x55, + 0x9c, 0x20, 0xd6, 0x3a, 0x6a, 0x6c, 0x27, 0x4e, + 0x5a, 0xdb, 0x9e, 0x5b, 0x7a, 0x47, 0x6a, 0xd1, + 0xef, 0x51, 0xfa, 0xf5, 0x2d, 0x97, 0x23, 0xd9, + 0x84, 0xd5, 0x34, 0xb4, 0xe9, 0x0f, 0x48, 0x25, + 0xc7, 0x60, 0xd7, 0x37, 0x93, 0x70, 0x80, 0x30, + 0xcf, 0x97, 0x9b, 0x09, 0x43, 0xbe, 0x16, 0x8d, + 0xa7, 0x0a, 0x48, 0x46, 0x5b, 0xa3, 0xab, 0x06, + 0x60, 0x1f, 0x01, 0xa8, 0x28, 0x28, 0xc0, 0x1c, + 0x4b, 0xdf, 0x0b, 0xac, 0x5c, 0xb4, 0x9d, 0x1e, + 0xbb, 0x8d, 0x57, 0x55, 0xc4, 0x1c, 0x3a, 0x94, + 0xb5, 0xe9, 0x6d, 0x5c, 0x7d, 0xa6, 0x4f, 0x8d, + 0x62, 0x7f, 0xc1, 0x97, 0x99, 0x8e, 0x84, 0x5d, + 0x6a, 0xaf, 0x29, 0x33, 0xf3, 0x1d, 0x18, 0x87, + 0xd0, 0x4f, 0x45, 0x4c, 0x4b, 0x97, 0xe9, 0x72, + 0xfd, 0x2e, 0x5c, 0xb9, 0x7f, 0xe6, 0x97, 0x0c, + 0x70, 0x4a, 0x5c, 0x91, 0xf6, 0x09, 0x63, 0x97, + 0xfa, 0xd4, 0x5d, 0xa8, 0x4f, 0x96, 0xa6, 0x39, + 0x19, 0xee, 0xf2, 0xca, 0xf5, 0xf8, 0x1d, 0xd1, + 0x95, 0x29, 0xca, 0x6c, 0xdb, 0xec, 0x16, 0x93, + 0x2b, 0x44, 0x87, 0x4a, 0xed, 0x83, 0xf6, 0x71, + 0x07, 0xa7, 0x3b, 0x4a, 0x0e, 0xe6, 0xd3, 0x65, + 0xb8, 0x49, 0xb9, 0xdb, 0x8e, 0x98, 0x89, 0xfd, + 0x5b, 0xe0, 0x1c, 0x59, 0x7b, 0x07, 0x54, 0xb5, + 0xde, 0xe6, 0xb8, 0xa8, 0xd7, 0x13, 0x55, 0x09, + 0x64, 0x2e, 0x8e, 0x9a, 0x1e, 0x49, 0xaa, 0xcf, + 0x71, 0x8d, 0xdf, 0xb4, 0xa5, 0x33, 0xd7, 0x42, + 0xa1, 0xbe, 0xa3, 0xe1, 0x98, 0x33, 0x55, 0xa5, + 0xa4, 0x9c, 0x18, 0x96, 0xda, 0x5a, 0xdd, 0xc1, + 0x84, 0x81, 0x35, 0x02, 0x12, 0x06, 0x9d, 0x8f, + 0x3d, 0x65, 0x17, 0x9d, 0x08, 0x16, 0x2e, 0x83, + 0x1e, 0xf5, 0x37, 0x1f, 0x26, 0x87, 0x4e, 0x38, + 0x22, 0x64, 0x49, 0x15, 0x1d, 0x83, 0x6e, 0x66, + 0x73, 0xba, 0xaa, 0xee, 0xd7, 0x19, 0x80, 0x62, + 0x16, 0x5d, 0x5e, 0xfd, 0x0d, 0xd9, 0x75, 0x2f, + 0xf1, 0x2a, 0x6d, 0x04, 0xf0, 0xd6, 0xbb, 0x21, + 0x75, 0x7b, 0x0b, 0x50, 0x6b, 0xf7, 0xd4, 0x7b, + 0x27, 0x5f, 0x10, 0x72, 0x60, 0x7f, 0x3e, 0x66, + 0xff, 0x00, 0x1c, 0x1a, 0x05, 0x63, 0x5c, 0xca, + 0xed, 0x10, 0x56, 0x97, 0x0b, 0x7d, 0xc3, 0x86, + 0xc8, 0xfe, 0x98, 0x0d, 0x41, 0x6b, 0xb7, 0x1a, + 0xac, 0x6a, 0x33, 0x66, 0x1c, 0x0b, 0xec, 0x3c, + 0x35, 0xe3, 0xfc, 0x6e, 0x9b, 0x3b, 0x7f, 0xfe, + 0xbb, 0x43, 0x7a, 0x75, 0x34, 0x53, 0xd2, 0xa6, + 0x2b, 0x60, 0xc3, 0x57, 0xea, 0xcf, 0x81, 0xdd, + 0x10, 0xc2, 0x1b, 0xb4, 0x35, 0xc5, 0x9c, 0xb5, + 0xf5, 0x0e, 0x25, 0xf2, 0x2e, 0x80, 0x12, 0x1e, + 0xe6, 0x9e, 0xb5, 0x01, 0xc1, 0x72, 0x1c, 0x9d, + 0x34, 0xbf, 0x68, 0xe9, 0x0b, 0x6a, 0x07, 0xd2, + 0xd6, 0x62, 0x65, 0xee, 0x4c, 0x4f, 0x97, 0xb4, + 0xf7, 0xb3, 0x41, 0xe9, 0xbd, 0x7f, 0xec, 0xc2, + 0x9f, 0xea, 0xae, 0x0a, 0x6e, 0xb6, 0xfb, 0x10, + 0xb0, 0x9c, 0xa7, 0x36, 0x47, 0xde, 0x00, 0x84, + 0x2a, 0xf1, 0x01, 0x32, 0xb2, 0xc7, 0x78, 0x2c, + 0x5b, 0x6f, 0x4b, 0xdf, 0x83, 0xf3, 0x8a, 0x03, + 0xa5, 0x41, 0x60, 0xf7, 0x5b, 0xf7, 0xe9, 0xe9, + 0xd1, 0x4a, 0x5b, 0x77, 0xba, 0xf2, 0xb5, 0x2d, + 0x70, 0xad, 0x18, 0x3a, 0x14, 0xd2, 0x88, 0x21, + 0xfe, 0xbd, 0xff, 0x00, 0x24, 0x7a, 0x68, 0xdf, + 0x29, 0x13, 0xdb, 0x47, 0x73, 0xed, 0x25, 0x7c, + 0xde, 0xd1, 0x41, 0x00, 0x66, 0x8c, 0x5e, 0xe1, + 0xc1, 0xeb, 0x47, 0x35, 0x08, 0x45, 0x2c, 0x9e, + 0x0c, 0x3f, 0x89, 0x56, 0x95, 0x61, 0x32, 0xae, + 0x83, 0xb7, 0x7f, 0xd2, 0x0a, 0x81, 0xa7, 0x86, + 0x69, 0x67, 0x1b, 0xb6, 0x8e, 0x9d, 0x62, 0xae, + 0x3a, 0xc3, 0x29, 0xa2, 0xc7, 0x6d, 0x9f, 0x77, + 0x68, 0xa4, 0x58, 0x7d, 0x81, 0xd8, 0xca, 0x4e, + 0x80, 0x32, 0x7a, 0x86, 0x72, 0x1f, 0x45, 0xae, + 0xf1, 0x75, 0x07, 0x43, 0xe8, 0x85, 0x1f, 0x89, + 0x92, 0x1c, 0x6f, 0xf4, 0x87, 0x68, 0x67, 0x3e, + 0x29, 0x55, 0x34, 0xe8, 0x5e, 0x77, 0x05, 0xed, + 0x56, 0x18, 0xf0, 0x75, 0x33, 0xce, 0x2f, 0x98, + 0x0f, 0x1e, 0x81, 0x58, 0xbb, 0x1a, 0x2a, 0xe7, + 0x0c, 0x73, 0x2f, 0x31, 0xb1, 0x87, 0x51, 0x96, + 0x21, 0x2c, 0x2a, 0xbb, 0x0d, 0xdb, 0xaf, 0x7f, + 0xa4, 0xa0, 0x4a, 0xef, 0x47, 0xae, 0xfc, 0x46, + 0xef, 0x91, 0x2c, 0x31, 0x0e, 0x53, 0x67, 0xdd, + 0x1d, 0x91, 0xc0, 0x0e, 0xd0, 0x1c, 0xb6, 0x1c, + 0x8e, 0x38, 0x80, 0xd7, 0x8a, 0x83, 0xfc, 0x0b, + 0xc3, 0x6d, 0xe6, 0xa2, 0x28, 0x3d, 0xaa, 0x61, + 0x2b, 0xcf, 0x0f, 0xca, 0x64, 0x8b, 0x8b, 0xaa, + 0x73, 0x9e, 0xec, 0xb1, 0x63, 0x00, 0xc5, 0xa5, + 0x07, 0x35, 0x77, 0xfc, 0xc7, 0x13, 0x6d, 0xba, + 0x69, 0x46, 0x8b, 0x71, 0xed, 0x29, 0xea, 0xb0, + 0x3d, 0x87, 0x78, 0x80, 0x5b, 0x08, 0x62, 0x98, + 0xc9, 0xda, 0xea, 0xfc, 0xc4, 0xfe, 0x3c, 0x18, + 0xf2, 0x91, 0xf4, 0x94, 0xfb, 0x71, 0x5d, 0x0e, + 0x1f, 0x4a, 0xf3, 0x1d, 0x4a, 0xfb, 0x1c, 0x5f, + 0xe2, 0x26, 0x6e, 0xd1, 0x5f, 0x52, 0xbf, 0x8f, + 0xf4, 0x9f, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, + 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, + 0x91, 0x92, 0xac, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0xb8, 0xfb, + 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, + 0x92, 0x49, 0x26, 0xba, 0x16, 0x58, 0x80, 0x01, + 0x04, 0x00, 0x49, 0x24, 0x92, 0x49, 0x24, 0x90, + 0xd6, 0xc4, 0xe4, 0x40, 0x24, 0x02, 0x00, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x43, 0x1e, 0xf1, 0x31, + 0x60, 0x00, 0x09, 0x00, 0x92, 0x49, 0x24, 0x92, + 0x49, 0x20, 0x29, 0x33, 0x55, 0x92, 0x41, 0x04, + 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x24, 0x5a, 0x09, 0x20, 0x80, 0x00, 0x20, 0x92, + 0x09, 0x04, 0x92, 0x01, 0x24, 0x33, 0x19, 0x04, + 0x12, 0x40, 0x20, 0x12, 0x08, 0x20, 0x00, 0x01, + 0x20, 0x92, 0x49, 0x24, 0x80, 0x48, 0x20, 0x90, + 0x49, 0x20, 0x10, 0x00, 0x00, 0x82, 0x49, 0x24, + 0x92, 0x49, 0x24, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x49, 0x3f, 0xff, 0xc4, 0x00, 0x27, + 0x11, 0x01, 0x00, 0x02, 0x01, 0x03, 0x03, 0x03, + 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x11, 0x21, 0x31, 0x41, 0x51, + 0x40, 0x61, 0x71, 0x81, 0x91, 0xb1, 0x10, 0x60, + 0xa1, 0xf1, 0xc1, 0xd1, 0xf0, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, 0x10, 0xfa, + 0x53, 0x7f, 0x71, 0xa3, 0x9e, 0xf0, 0xb8, 0xa9, + 0xe5, 0xb4, 0x34, 0x29, 0x37, 0x95, 0xff, 0x00, + 0x04, 0x2f, 0x32, 0xd5, 0x33, 0xab, 0xd7, 0xe0, + 0xbd, 0xdf, 0x86, 0x15, 0x62, 0xb0, 0x67, 0xde, + 0x02, 0x49, 0x05, 0xb7, 0x88, 0xac, 0xac, 0x73, + 0x0e, 0x33, 0x0a, 0x35, 0x45, 0x28, 0xef, 0x32, + 0x40, 0x3c, 0x75, 0x9a, 0xb4, 0x4b, 0x0d, 0x60, + 0x7a, 0xef, 0xc3, 0x32, 0x34, 0xe6, 0xbf, 0x31, + 0xc2, 0x31, 0x1b, 0xad, 0xe2, 0x54, 0x88, 0x34, + 0x34, 0xcd, 0xfe, 0xd0, 0x32, 0x1c, 0xf0, 0x85, + 0x53, 0x94, 0x7b, 0x53, 0xd6, 0x5e, 0xf1, 0x52, + 0xf1, 0xfe, 0x65, 0xab, 0xf9, 0x63, 0xfa, 0x8c, + 0xd9, 0x66, 0xb5, 0x5a, 0x78, 0x82, 0xae, 0xdd, + 0x94, 0xac, 0x6a, 0x19, 0xcd, 0x5f, 0x1e, 0x20, + 0xcf, 0x87, 0xf6, 0x05, 0x42, 0xe8, 0xb8, 0xd3, + 0x38, 0x26, 0xfe, 0x75, 0x3c, 0xc7, 0x4b, 0x66, + 0xbd, 0xba, 0xb6, 0xc1, 0xa1, 0x8e, 0xae, 0x09, + 0xab, 0xe2, 0x50, 0x1d, 0x90, 0x94, 0xaa, 0x8a, + 0x0f, 0x39, 0xa8, 0x15, 0x22, 0xad, 0x7b, 0xd4, + 0x65, 0xae, 0xcd, 0x62, 0x19, 0x56, 0x18, 0x51, + 0x06, 0xcb, 0x7c, 0xc1, 0xbe, 0xab, 0x5c, 0xc7, + 0xa2, 0x96, 0xc9, 0xcf, 0x80, 0xe1, 0xde, 0x24, + 0x7c, 0x11, 0x6b, 0x0f, 0xa6, 0xce, 0x92, 0x8a, + 0xc1, 0xa4, 0x6a, 0xb9, 0x75, 0xef, 0x12, 0x40, + 0xf0, 0x1b, 0x79, 0x8d, 0x44, 0x9b, 0x61, 0xf9, + 0xd7, 0xe2, 0x5a, 0xb6, 0xcd, 0x3a, 0xc6, 0xe9, + 0x08, 0xd8, 0x53, 0xa2, 0x5b, 0x38, 0xa8, 0x6e, + 0x31, 0x5f, 0x80, 0x1f, 0x5a, 0x23, 0xa5, 0x6a, + 0x7f, 0x53, 0x3d, 0x7b, 0x0f, 0xaf, 0x93, 0x64, + 0x8a, 0xc5, 0x51, 0xc6, 0xd6, 0x91, 0xee, 0x49, + 0xab, 0xfb, 0x8f, 0xff, 0xc4, 0x00, 0x1f, 0x11, + 0x01, 0x01, 0x01, 0x00, 0x03, 0x01, 0x00, 0x02, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x11, 0x21, 0x31, 0x40, 0x41, 0x10, + 0x50, 0x51, 0x60, 0x81, 0xff, 0xda, 0x00, 0x08, + 0x01, 0x02, 0x01, 0x01, 0x3f, 0x10, 0xfc, 0x39, + 0xa0, 0xb9, 0x46, 0x4f, 0x5d, 0xb7, 0x3f, 0xe7, + 0xbf, 0xbe, 0xc3, 0x19, 0x06, 0x76, 0x08, 0xe0, + 0x88, 0x9b, 0x3a, 0x83, 0xec, 0xe6, 0xc8, 0xf3, + 0xb4, 0xea, 0x6e, 0x5d, 0x11, 0xb2, 0x31, 0xb3, + 0x64, 0x9e, 0xbe, 0xc6, 0xbd, 0xb2, 0x88, 0x93, + 0xa2, 0x87, 0x1b, 0x00, 0xbe, 0x24, 0x1f, 0x22, + 0x47, 0x0e, 0xb6, 0x5d, 0xfe, 0x46, 0x5e, 0xb1, + 0x99, 0x8c, 0x38, 0xd2, 0xe3, 0x21, 0xc7, 0x5b, + 0x60, 0xfb, 0x59, 0x6f, 0x2c, 0x5f, 0xc8, 0x63, + 0x1d, 0x04, 0x30, 0x7a, 0xde, 0x61, 0xdf, 0x19, + 0xa6, 0x62, 0x4c, 0x4b, 0x7a, 0xc0, 0x7f, 0x73, + 0x37, 0xd4, 0x30, 0xba, 0x63, 0x83, 0x0f, 0x69, + 0xa7, 0x76, 0x07, 0xa1, 0x87, 0x01, 0xc4, 0x7c, + 0x3e, 0xc6, 0x2f, 0xcb, 0x7f, 0x41, 0xa4, 0x42, + 0x47, 0xc1, 0x04, 0x62, 0xff, 0x00, 0x63, 0xff, + 0xc4, 0x00, 0x27, 0x10, 0x01, 0x01, 0x00, 0x02, + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x21, + 0x31, 0x41, 0x51, 0x61, 0x71, 0x81, 0x91, 0xa1, + 0x10, 0x30, 0x40, 0xc1, 0x20, 0x50, 0xb1, 0xf0, + 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, + 0x3f, 0x10, 0xfe, 0x03, 0x67, 0xa4, 0x9a, 0x04, + 0x01, 0xca, 0x72, 0x99, 0xa0, 0xc6, 0x92, 0x53, + 0xe5, 0x14, 0xa3, 0x97, 0xe5, 0xcc, 0xc8, 0x94, + 0x2e, 0xac, 0xde, 0x02, 0x67, 0x8f, 0xf3, 0xde, + 0x4f, 0xfe, 0x98, 0x2f, 0x97, 0x00, 0x7c, 0x0c, + 0xd7, 0x79, 0x3c, 0xfa, 0x53, 0x77, 0xbd, 0x61, + 0x46, 0x15, 0x86, 0xc0, 0x56, 0xbb, 0xf9, 0xce, + 0xdf, 0x84, 0x2a, 0x7d, 0x7f, 0x0b, 0xc2, 0x39, + 0x69, 0xf8, 0x5c, 0xff, 0x00, 0xe5, 0xff, 0x00, + 0xde, 0x09, 0x68, 0xe1, 0xa3, 0xf4, 0x3f, 0xe4, + 0x48, 0x57, 0x59, 0x38, 0xae, 0x4f, 0xb0, 0x21, + 0x59, 0x8c, 0xa9, 0x14, 0x04, 0xca, 0xde, 0x1c, + 0xc7, 0xde, 0x56, 0xbe, 0x46, 0x84, 0xb3, 0xf4, + 0x35, 0x86, 0x28, 0xa6, 0xd7, 0x43, 0x69, 0xd0, + 0x7e, 0xcf, 0x39, 0x60, 0x4a, 0x88, 0x9c, 0x7c, + 0x7d, 0x65, 0x44, 0xd7, 0x9c, 0x0d, 0x83, 0x8d, + 0x60, 0x38, 0x53, 0x51, 0x3b, 0x6e, 0xa6, 0xb1, + 0xbc, 0x61, 0x09, 0x36, 0x63, 0x9c, 0xd5, 0x65, + 0x8e, 0x6e, 0x3a, 0xe7, 0x98, 0x10, 0xe4, 0x05, + 0xea, 0x8c, 0x87, 0x2f, 0xda, 0x14, 0x3f, 0x2d, + 0x24, 0xcb, 0x0e, 0xea, 0x50, 0x21, 0x35, 0x20, + 0x44, 0x69, 0xbd, 0xe1, 0xb1, 0xf3, 0x34, 0xcb, + 0xbd, 0x54, 0x22, 0xea, 0x69, 0xbc, 0x5c, 0x9b, + 0x35, 0x24, 0x4a, 0xbb, 0x89, 0x2a, 0xbd, 0x58, + 0xc2, 0x97, 0xe7, 0xeb, 0x28, 0x0e, 0xe0, 0x25, + 0x7a, 0xfb, 0x31, 0x47, 0xa3, 0x2a, 0x12, 0x0d, + 0xa1, 0x38, 0x7e, 0x78, 0xc2, 0xff, 0x00, 0xd7, + 0x21, 0xd8, 0xb5, 0x06, 0x32, 0x8b, 0x8d, 0x4d, + 0x09, 0xd5, 0x12, 0xd2, 0x08, 0xbd, 0x9c, 0x1a, + 0x5f, 0xef, 0xa2, 0x07, 0x82, 0xc0, 0x98, 0x45, + 0x78, 0x36, 0x6e, 0x62, 0xa4, 0x76, 0x23, 0x46, + 0x23, 0x32, 0x29, 0x90, 0x00, 0x20, 0x48, 0xa8, + 0xe4, 0x3a, 0x73, 0xe3, 0x9c, 0xba, 0x79, 0x5f, + 0xbe, 0x51, 0xed, 0xd8, 0xfa, 0xc8, 0xc5, 0xfc, + 0x2a, 0x3e, 0x81, 0xda, 0x9f, 0x90, 0x66, 0xef, + 0xd8, 0xd5, 0x40, 0xe1, 0xf5, 0xfb, 0x62, 0x3f, + 0x52, 0x5e, 0x78, 0x13, 0xdf, 0x23, 0xe3, 0xe7, + 0x07, 0x30, 0xd8, 0x6c, 0x00, 0x97, 0xde, 0xf3, + 0xac, 0xfd, 0x16, 0x45, 0xa6, 0x18, 0x56, 0xbb, + 0x40, 0x7e, 0x60, 0x22, 0xdd, 0xeb, 0x25, 0x66, + 0x2b, 0xdc, 0xca, 0x2c, 0x9e, 0x2a, 0xd6, 0xc1, + 0xb3, 0xb1, 0x70, 0x91, 0x98, 0xc5, 0x0e, 0x86, + 0x90, 0x12, 0x01, 0x24, 0xc1, 0x03, 0xe3, 0x54, + 0x7a, 0x5e, 0xd3, 0x4b, 0x78, 0x1c, 0xaa, 0xe0, + 0x7c, 0x60, 0xab, 0x75, 0x1c, 0x31, 0x27, 0x85, + 0xf9, 0x4c, 0xe9, 0x8d, 0x96, 0x0d, 0xbc, 0xea, + 0x1e, 0x0f, 0x0c, 0x0c, 0xa0, 0x13, 0xbc, 0x12, + 0x07, 0x00, 0x05, 0xe1, 0xa7, 0x1a, 0x82, 0x9a, + 0xc2, 0xf2, 0xc2, 0x4a, 0x84, 0x63, 0x8e, 0x07, + 0xf7, 0xea, 0xbc, 0xf9, 0xca, 0x12, 0xa4, 0x06, + 0x96, 0x01, 0x3d, 0xb4, 0xcd, 0x36, 0xe0, 0x5c, + 0x75, 0x2b, 0x0f, 0x33, 0x8c, 0x31, 0x7e, 0x8a, + 0xe7, 0xc2, 0x57, 0x86, 0xfc, 0x61, 0x89, 0x27, + 0x90, 0x71, 0xb1, 0x65, 0x70, 0xc7, 0xed, 0x05, + 0x03, 0xd8, 0x9d, 0x60, 0x50, 0x0b, 0x8c, 0x2a, + 0x7c, 0x4b, 0x93, 0x04, 0x3a, 0x60, 0x15, 0x5c, + 0xaf, 0x0d, 0x41, 0x57, 0xaa, 0x48, 0x42, 0xe0, + 0x6f, 0x0c, 0x55, 0x51, 0x04, 0xb6, 0x06, 0x20, + 0x05, 0xe7, 0x24, 0xb4, 0x3f, 0x0c, 0xfa, 0x81, + 0x47, 0x9d, 0x26, 0x58, 0x50, 0x1b, 0xa5, 0x62, + 0x8a, 0x9e, 0xa3, 0xee, 0x62, 0xc3, 0x2e, 0x40, + 0xd5, 0x08, 0x82, 0xfb, 0x7c, 0x1c, 0x84, 0x8c, + 0x96, 0x81, 0xd8, 0x70, 0x21, 0xf4, 0x62, 0xf0, + 0x44, 0xbb, 0xf0, 0xea, 0x4d, 0xb5, 0xad, 0x61, + 0x88, 0xe1, 0x2e, 0xf5, 0x8a, 0x16, 0x0a, 0x3b, + 0xae, 0x1f, 0x0c, 0xbc, 0xa4, 0x04, 0xe4, 0xaa, + 0x5e, 0x75, 0x54, 0x3d, 0x36, 0xf3, 0x89, 0x24, + 0x68, 0x88, 0x1a, 0xd0, 0x5b, 0x96, 0x66, 0xb2, + 0xee, 0x05, 0xfb, 0x9f, 0xdf, 0x19, 0xd5, 0xf8, + 0x46, 0x87, 0x4f, 0x4e, 0x38, 0x1b, 0x86, 0x75, + 0xe9, 0xc1, 0x39, 0x46, 0xb3, 0x52, 0xe8, 0x51, + 0x5e, 0x00, 0xbc, 0x15, 0xd0, 0xed, 0xcb, 0x27, + 0x66, 0x38, 0x1b, 0xf4, 0x0a, 0xa5, 0x80, 0x7a, + 0x47, 0xf7, 0x89, 0x12, 0x48, 0xa5, 0x53, 0x89, + 0x37, 0x97, 0x85, 0xb7, 0x25, 0x78, 0x7c, 0x09, + 0xa3, 0x46, 0xaf, 0x39, 0xc8, 0x15, 0xf9, 0x2f, + 0x93, 0x8f, 0xf1, 0x86, 0xe4, 0x20, 0x50, 0x07, + 0x00, 0x61, 0x87, 0x65, 0x1b, 0x25, 0xea, 0xce, + 0xb1, 0xe0, 0x7c, 0x11, 0xa7, 0x21, 0xa0, 0x6f, + 0x6a, 0x21, 0xc9, 0x80, 0x85, 0x11, 0x59, 0x7b, + 0x0b, 0xb9, 0x57, 0x0e, 0x8f, 0xc2, 0xc6, 0x61, + 0x88, 0x42, 0x9d, 0x0f, 0x26, 0x77, 0xc9, 0xb6, + 0x15, 0xf2, 0x62, 0xf3, 0xeb, 0xd7, 0x09, 0x02, + 0xaa, 0x84, 0x0b, 0xe7, 0x5e, 0xb1, 0x67, 0x31, + 0x02, 0xae, 0xbb, 0x7b, 0xcf, 0x9c, 0xb4, 0x6b, + 0xeb, 0x14, 0x6c, 0x02, 0x18, 0x7f, 0x19, 0x41, + 0xc9, 0xf9, 0xc8, 0xf2, 0x64, 0x79, 0x32, 0x9e, + 0x71, 0x04, 0xa9, 0xbe, 0x3d, 0xe4, 0x0c, 0xa5, + 0xca, 0x79, 0xc8, 0xf2, 0x64, 0x3d, 0x99, 0x1e, + 0x4c, 0x8f, 0x26, 0x52, 0xca, 0x5c, 0x11, 0xef, + 0x29, 0xe7, 0x04, 0x7b, 0xfe, 0x13, 0x14, 0x73, + 0x1e, 0xb0, 0x33, 0xac, 0xb4, 0x42, 0x23, 0xf5, + 0x8a, 0x66, 0x61, 0x69, 0x5a, 0x8f, 0x6f, 0x27, + 0xc0, 0xf7, 0xa5, 0x20, 0x1d, 0x9f, 0x20, 0x3f, + 0xf7, 0x0d, 0xd8, 0xbe, 0xdd, 0xc7, 0x95, 0x6b, + 0x73, 0x97, 0xf0, 0xe7, 0xe8, 0xb2, 0x52, 0x80, + 0x67, 0xec, 0xbe, 0x06, 0x46, 0xd8, 0xc3, 0x73, + 0x1d, 0x73, 0xf3, 0x81, 0xa0, 0x29, 0xa0, 0x74, + 0xee, 0xda, 0x45, 0x1d, 0x3a, 0x19, 0xed, 0xaa, + 0x22, 0x92, 0xf3, 0x03, 0x42, 0xe4, 0x43, 0x93, + 0x6a, 0x23, 0x59, 0x6b, 0x4a, 0x07, 0xa3, 0x26, + 0x5c, 0x46, 0xe8, 0xa8, 0xa3, 0x62, 0x40, 0xbd, + 0x80, 0xb2, 0xf8, 0x19, 0x9a, 0x4c, 0x35, 0x0a, + 0x2e, 0x21, 0xc1, 0xae, 0x04, 0xd9, 0xc3, 0x6a, + 0x03, 0x41, 0x13, 0x65, 0x16, 0x68, 0x14, 0x73, + 0x54, 0xb5, 0x0f, 0xdf, 0x07, 0x90, 0x40, 0xa7, + 0xb8, 0xd8, 0x6d, 0x8a, 0x87, 0x45, 0xd0, 0xda, + 0xef, 0x39, 0xbd, 0x95, 0x58, 0x0b, 0xa1, 0x87, + 0x06, 0x32, 0x6f, 0xde, 0x02, 0x00, 0xd8, 0xd0, + 0xdf, 0x7b, 0xbc, 0xe2, 0xdf, 0xb6, 0x32, 0x72, + 0x30, 0x4b, 0x33, 0xa5, 0xe0, 0x8b, 0xb2, 0x72, + 0x50, 0x69, 0xc2, 0x17, 0x3c, 0x1d, 0x65, 0xd0, + 0xe1, 0x1c, 0x87, 0xe8, 0x2c, 0x74, 0xb9, 0x09, + 0x79, 0xf6, 0x12, 0x0f, 0x23, 0xcf, 0x5a, 0xe1, + 0x6c, 0x41, 0x45, 0x71, 0x7a, 0x9f, 0x40, 0xe0, + 0xdd, 0x70, 0x51, 0x98, 0x92, 0x35, 0x06, 0xfe, + 0x70, 0x1a, 0x68, 0xc6, 0xd7, 0x34, 0x30, 0x95, + 0xf5, 0x89, 0xa1, 0xc8, 0xf8, 0xc0, 0xf9, 0xb4, + 0x54, 0x4e, 0xb7, 0x28, 0x5f, 0x60, 0x9d, 0x65, + 0xbb, 0xfd, 0x23, 0x51, 0x62, 0x24, 0xa7, 0x88, + 0x38, 0xe2, 0x58, 0xa6, 0x0c, 0xa4, 0xf2, 0xe4, + 0xfa, 0xeb, 0x13, 0x59, 0xbf, 0x4c, 0xa2, 0xb8, + 0x04, 0xe6, 0xd5, 0xb4, 0x2a, 0x00, 0x7d, 0x8e, + 0x26, 0xe3, 0x55, 0xd8, 0xb4, 0x71, 0x93, 0x9a, + 0x82, 0xd0, 0xb9, 0x08, 0x3a, 0x48, 0x26, 0xbe, + 0x3f, 0xe0, 0xf0, 0xe1, 0x65, 0x8c, 0xb3, 0xe1, + 0x5e, 0x57, 0x6b, 0x4e, 0x6d, 0xa0, 0x55, 0xa0, + 0x15, 0xbf, 0x07, 0x6f, 0xde, 0x05, 0x58, 0x02, + 0xe6, 0x8d, 0xcf, 0x56, 0xff, 0x00, 0x28, 0x0a, + 0xb0, 0xcd, 0xa3, 0xbd, 0x32, 0x01, 0x51, 0x1f, + 0x6e, 0x2d, 0xac, 0x02, 0xbe, 0xc8, 0xe9, 0xe2, + 0x94, 0x68, 0xf1, 0xb1, 0xa2, 0x7f, 0x30, 0x4e, + 0x7c, 0xe0, 0xa9, 0x39, 0x46, 0x65, 0x5c, 0x4b, + 0x9f, 0x28, 0x14, 0x3e, 0x7f, 0x6c, 0x42, 0xdf, + 0x17, 0x57, 0x05, 0xba, 0x8a, 0x7c, 0x3e, 0x60, + 0x84, 0x88, 0x9d, 0x58, 0xf0, 0x02, 0xe2, 0x53, + 0xc1, 0x10, 0x99, 0x79, 0x52, 0xb2, 0x8f, 0x18, + 0x60, 0x13, 0x09, 0x81, 0x08, 0xd1, 0x2b, 0x44, + 0x89, 0x12, 0x65, 0x54, 0x2b, 0x30, 0x51, 0x4f, + 0xbd, 0x3e, 0x71, 0x37, 0x36, 0xf0, 0x02, 0xaa, + 0xf5, 0x89, 0xef, 0x43, 0x38, 0x72, 0x1e, 0x4f, + 0x79, 0x40, 0xb8, 0x9d, 0x52, 0x7e, 0x69, 0x7c, + 0x7a, 0xe3, 0x3f, 0xc9, 0xa9, 0xaf, 0xdc, 0x69, + 0x00, 0xe6, 0x8c, 0x30, 0xa6, 0xae, 0x78, 0xd9, + 0xcc, 0xfa, 0x25, 0x3a, 0x70, 0xf9, 0x73, 0x97, + 0x94, 0xb6, 0x92, 0x62, 0x43, 0x00, 0x6a, 0x9b, + 0xd6, 0x5e, 0xa8, 0x7a, 0x03, 0xb0, 0xf0, 0x1d, + 0x89, 0xb1, 0x04, 0xcb, 0x85, 0x41, 0xdb, 0x01, + 0x9a, 0x31, 0x5d, 0x20, 0xec, 0xc4, 0xef, 0xe8, + 0xb2, 0x85, 0x0d, 0x93, 0x17, 0x2d, 0xb1, 0xe2, + 0x8d, 0x9f, 0x3e, 0x89, 0x45, 0x14, 0x26, 0x8a, + 0xe5, 0xd6, 0xea, 0x95, 0xbf, 0x3f, 0x86, 0x68, + 0xc3, 0x45, 0x17, 0xf2, 0x28, 0x8a, 0xb0, 0x97, + 0x47, 0xf5, 0x13, 0xa7, 0x11, 0x0a, 0x0f, 0x4c, + 0xef, 0x1c, 0xf0, 0x80, 0x84, 0xc0, 0x35, 0xe7, + 0x6c, 0x8b, 0xbb, 0xbc, 0x68, 0x63, 0x0c, 0x20, + 0xa3, 0x60, 0x4b, 0x44, 0x08, 0x76, 0x47, 0x7b, + 0x85, 0x15, 0x00, 0xe9, 0x13, 0x48, 0xf2, 0x62, + 0x29, 0xc9, 0x36, 0x64, 0xb7, 0x94, 0x0b, 0x34, + 0x6d, 0x2b, 0x80, 0x42, 0x25, 0x53, 0x73, 0x03, + 0x72, 0x18, 0x4f, 0x17, 0x27, 0x8e, 0x8a, 0x81, + 0xda, 0x80, 0x05, 0x60, 0xf3, 0xb5, 0x77, 0x8e, + 0xaf, 0x73, 0xde, 0xad, 0x3b, 0x0a, 0xfd, 0x06, + 0x00, 0x19, 0xb9, 0x50, 0x06, 0x00, 0x46, 0x82, + 0x84, 0x3a, 0x6c, 0xf0, 0x55, 0x02, 0x48, 0x34, + 0xb4, 0x97, 0x48, 0x9a, 0x87, 0x38, 0x9d, 0x46, + 0xcf, 0xce, 0x51, 0xe9, 0x21, 0x74, 0x44, 0x79, + 0xc1, 0x46, 0xe7, 0x83, 0x08, 0x84, 0x69, 0xb0, + 0x36, 0xa3, 0x53, 0x14, 0xf9, 0x46, 0x30, 0x93, + 0x71, 0x35, 0xb7, 0xaa, 0x4c, 0x2d, 0x4c, 0x01, + 0xf3, 0x90, 0x60, 0xaa, 0xbb, 0xd3, 0x7a, 0xa7, + 0xb1, 0x86, 0x70, 0x82, 0xa5, 0xb2, 0x20, 0x8c, + 0xa9, 0xd6, 0x00, 0xa2, 0x8d, 0x29, 0x1c, 0x9a, + 0x76, 0x68, 0x79, 0xc6, 0x15, 0x15, 0x03, 0xb4, + 0x04, 0xd0, 0xa8, 0x54, 0xad, 0x45, 0x5e, 0xa1, + 0x5b, 0x45, 0x1d, 0x3a, 0x61, 0xf2, 0xe1, 0x60, + 0xc1, 0x32, 0x5c, 0x2b, 0xb4, 0x0d, 0x36, 0x69, + 0x37, 0x00, 0xc6, 0x72, 0x76, 0xe1, 0x3c, 0x20, + 0x89, 0x1d, 0x5c, 0xdd, 0x56, 0xcc, 0x4e, 0x6e, + 0x74, 0xdf, 0xec, 0x74, 0xe4, 0xd0, 0x65, 0x55, + 0x83, 0xd6, 0xbf, 0x83, 0xf2, 0xc9, 0x79, 0xcb, + 0x2f, 0x10, 0x01, 0x01, 0x04, 0x6f, 0x2a, 0xe3, + 0x48, 0x94, 0x15, 0xf3, 0x1d, 0x0a, 0x2a, 0xea, + 0xb4, 0xf1, 0x82, 0xab, 0x64, 0x66, 0x48, 0xa2, + 0x4a, 0x50, 0x6a, 0x6b, 0x59, 0x27, 0x13, 0x7c, + 0xc9, 0x20, 0x1a, 0x34, 0x00, 0x03, 0xdd, 0x5f, + 0xfa, 0x3f, 0xff, 0xd9, +}; + +static const uint8_t data_tm4c_jpg[] = +{ + /* /tm4c.jpg */ + 0x2f, 0x74, 0x6d, 0x34, 0x63, 0x2e, 0x6a, 0x70, + 0x67, 0x00, + 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, + 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x00, 0xff, 0xdb, 0x00, 0x43, + 0x00, 0x03, 0x02, 0x02, 0x03, 0x02, 0x02, 0x03, + 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x04, 0x05, + 0x08, 0x05, 0x05, 0x04, 0x04, 0x05, 0x0a, 0x07, + 0x07, 0x06, 0x08, 0x0c, 0x0a, 0x0c, 0x0c, 0x0b, + 0x0a, 0x0b, 0x0b, 0x0d, 0x0e, 0x12, 0x10, 0x0d, + 0x0e, 0x11, 0x0e, 0x0b, 0x0b, 0x10, 0x16, 0x10, + 0x11, 0x13, 0x14, 0x15, 0x15, 0x15, 0x0c, 0x0f, + 0x17, 0x18, 0x16, 0x14, 0x18, 0x12, 0x14, 0x15, + 0x14, 0xff, 0xdb, 0x00, 0x43, 0x01, 0x03, 0x04, + 0x04, 0x05, 0x04, 0x05, 0x09, 0x05, 0x05, 0x09, + 0x14, 0x0d, 0x0b, 0x0d, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xff, 0xc2, + 0x00, 0x11, 0x08, 0x00, 0x4b, 0x00, 0x4b, 0x03, + 0x01, 0x11, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, + 0x01, 0xff, 0xc4, 0x00, 0x1c, 0x00, 0x00, 0x02, + 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, + 0x04, 0x08, 0x01, 0x05, 0x07, 0x03, 0x02, 0xff, + 0xc4, 0x00, 0x19, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, + 0x03, 0x05, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, + 0x00, 0x02, 0x10, 0x03, 0x10, 0x00, 0x00, 0x01, + 0x50, 0xb1, 0x28, 0x0c, 0x81, 0x80, 0x18, 0x7d, + 0x3c, 0xfa, 0xff, 0x00, 0x6f, 0x2f, 0x59, 0xf9, + 0xfd, 0xb4, 0x67, 0x37, 0xa3, 0x2e, 0x0f, 0x01, + 0x50, 0x73, 0x27, 0x8f, 0x7d, 0x7c, 0xab, 0x5d, + 0x1e, 0x1d, 0x4f, 0xe7, 0xf7, 0x54, 0x5c, 0x6f, + 0x70, 0x48, 0x30, 0x49, 0x17, 0x07, 0x9e, 0x9e, + 0x7d, 0xe7, 0xb7, 0x97, 0x85, 0x9d, 0x8f, 0x87, + 0xae, 0xa5, 0xe7, 0x4e, 0xca, 0xb8, 0x41, 0x36, + 0x43, 0x0e, 0xb2, 0xc3, 0xd1, 0xe1, 0xa2, 0xd4, + 0x0e, 0xeb, 0xcb, 0xd1, 0x50, 0xf3, 0x55, 0x54, + 0x02, 0x55, 0x9d, 0x37, 0xdf, 0xc7, 0xda, 0xcc, + 0x81, 0x61, 0x79, 0xfd, 0xaa, 0x3c, 0xaa, 0xaa, + 0x19, 0x1e, 0x3d, 0x7c, 0xb6, 0x56, 0x00, 0x05, + 0x94, 0xf2, 0xf5, 0xa9, 0x51, 0x31, 0x54, 0x8d, + 0xbe, 0xb3, 0xb9, 0xd6, 0x40, 0x00, 0x2d, 0x16, + 0x37, 0x55, 0x25, 0xb2, 0x67, 0x30, 0x49, 0xda, + 0x9e, 0x68, 0x8e, 0x41, 0x3e, 0xc8, 0x85, 0xa8, + 0xce, 0xaa, 0x9a, 0xea, 0x4f, 0x1d, 0x67, 0xa1, + 0x46, 0xbc, 0xfb, 0x25, 0x10, 0x4d, 0x5d, 0x5a, + 0xbc, 0xd9, 0xaa, 0x8c, 0x80, 0x00, 0x18, 0x03, + 0xd8, 0xb1, 0x6b, 0xff, 0xc4, 0x00, 0x25, 0x10, + 0x00, 0x00, 0x06, 0x03, 0x00, 0x01, 0x05, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x01, 0x13, + 0x16, 0x36, 0x07, 0x10, 0x11, 0x15, 0x21, 0x12, + 0x14, 0x31, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, + 0x00, 0x01, 0x05, 0x02, 0xb8, 0x5f, 0x25, 0x73, + 0x60, 0xee, 0x26, 0x87, 0x71, 0x34, 0x3b, 0x89, + 0xa1, 0xdc, 0x4d, 0x0e, 0xe2, 0x68, 0x77, 0x13, + 0x42, 0x12, 0xc5, 0x39, 0x2c, 0xf3, 0xfb, 0xeb, + 0x88, 0x29, 0xa3, 0xbc, 0x8b, 0xb2, 0xe4, 0xa5, + 0xb5, 0xa7, 0x03, 0x02, 0xa4, 0x93, 0x8f, 0x4e, + 0xb4, 0x30, 0x96, 0xab, 0x47, 0xd7, 0x4a, 0xc6, + 0xbc, 0x59, 0x0b, 0x67, 0x1a, 0xcd, 0x9a, 0xce, + 0x3d, 0x3d, 0x66, 0xb2, 0x3f, 0x53, 0x11, 0x5e, + 0x26, 0xc1, 0x56, 0xcf, 0xcc, 0x2d, 0x85, 0x0c, + 0xb9, 0xb7, 0x66, 0x3e, 0x4d, 0x65, 0x9e, 0xc4, + 0xcc, 0xbd, 0x68, 0xdd, 0x79, 0x18, 0xb7, 0x2c, + 0xeb, 0xb2, 0xee, 0xd1, 0x9d, 0xfb, 0x38, 0x51, + 0x04, 0xfa, 0x40, 0x84, 0x55, 0xd9, 0xd6, 0x1b, + 0x05, 0x4f, 0xf6, 0x0a, 0x7d, 0x2c, 0x38, 0xb8, + 0xbb, 0xab, 0xe7, 0x41, 0x20, 0x1d, 0x13, 0x0a, + 0x56, 0xd5, 0xce, 0x33, 0x5a, 0x55, 0x32, 0x34, + 0xa3, 0x91, 0x54, 0x9f, 0xc7, 0x65, 0x89, 0x36, + 0x0d, 0x82, 0xa1, 0xfb, 0x5f, 0xb5, 0x79, 0x37, + 0xc7, 0xbb, 0x66, 0xd9, 0x72, 0xb2, 0x25, 0x2a, + 0x09, 0xff, 0x00, 0x31, 0xb0, 0x6c, 0x14, 0xdf, + 0x1d, 0xb5, 0x79, 0x37, 0xb7, 0xfa, 0x18, 0xa1, + 0x86, 0xa9, 0x6c, 0x1b, 0x06, 0xc1, 0xb0, 0x52, + 0xbc, 0x6a, 0xd5, 0xe4, 0xcd, 0x6a, 0x2f, 0x5e, + 0x40, 0x99, 0xb2, 0xa4, 0x51, 0xa3, 0x43, 0x22, + 0x6d, 0x83, 0x60, 0xd8, 0x36, 0x0d, 0x82, 0x8f, + 0xfb, 0x58, 0xb2, 0x1c, 0xa9, 0xdb, 0x63, 0xa6, + 0x61, 0xd4, 0x87, 0xf5, 0x05, 0xe4, 0x6b, 0xc7, + 0x12, 0x2e, 0xf1, 0xf6, 0x65, 0xd3, 0xf0, 0xf9, + 0xba, 0x8b, 0x3f, 0x49, 0x8b, 0xb7, 0x05, 0x24, + 0x73, 0xd5, 0x4c, 0xb2, 0x4b, 0x37, 0xc5, 0x13, + 0xc5, 0x6d, 0xa5, 0xc9, 0x2d, 0x11, 0x72, 0x8e, + 0xe1, 0x9e, 0x61, 0x5f, 0x8c, 0xad, 0x77, 0x72, + 0xb2, 0x98, 0xb4, 0x98, 0x8e, 0x17, 0xb4, 0xe5, + 0x75, 0xd4, 0xb9, 0xaa, 0xe5, 0x37, 0x16, 0xb5, + 0xdd, 0x62, 0x46, 0x67, 0x32, 0x29, 0xd0, 0x48, + 0x6e, 0x4a, 0xd9, 0x59, 0x8c, 0x7e, 0xfb, 0x8d, + 0x86, 0x1c, 0x6c, 0x38, 0xe3, 0x61, 0x87, 0x1b, + 0x0e, 0x38, 0xd8, 0x61, 0xc6, 0xc3, 0x8e, 0x36, + 0x1c, 0x23, 0x4c, 0x86, 0xda, 0xd5, 0xba, 0x4d, + 0x9b, 0x7f, 0xff, 0xc4, 0x00, 0x21, 0x11, 0x00, + 0x01, 0x04, 0x01, 0x03, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x02, 0x11, 0x20, 0x31, 0x10, 0x12, 0x21, + 0x13, 0x30, 0x32, 0x40, 0x51, 0xff, 0xda, 0x00, + 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, 0x01, 0xbb, + 0xdd, 0xb4, 0x2e, 0xa3, 0xd3, 0x4c, 0x89, 0xec, + 0x3e, 0x09, 0x50, 0x99, 0xe2, 0x2e, 0xf7, 0x7c, + 0xd2, 0x13, 0x71, 0x62, 0xa1, 0x42, 0x84, 0xdc, + 0x54, 0xf1, 0x51, 0x8a, 0x9e, 0x6a, 0x28, 0x6c, + 0x3d, 0xff, 0x00, 0xff, 0xc4, 0x00, 0x22, 0x11, + 0x00, 0x01, 0x04, 0x00, 0x05, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x02, 0x11, 0x20, 0x03, 0x10, 0x12, + 0x31, 0x32, 0x13, 0x21, 0x30, 0x40, 0x41, 0xff, + 0xda, 0x00, 0x08, 0x01, 0x02, 0x01, 0x01, 0x3f, + 0x01, 0xbe, 0x1b, 0x75, 0x95, 0xd2, 0x62, 0x70, + 0x83, 0x1e, 0x0c, 0x39, 0x01, 0x4a, 0x7f, 0x23, + 0x76, 0x37, 0xe9, 0xca, 0x53, 0xb9, 0x1b, 0x35, + 0x03, 0x9b, 0xb7, 0xa8, 0x13, 0x53, 0xbd, 0x47, + 0x6a, 0x9d, 0xe8, 0x2c, 0x7d, 0xff, 0x00, 0xff, + 0xc4, 0x00, 0x3f, 0x10, 0x00, 0x02, 0x01, 0x03, + 0x01, 0x03, 0x06, 0x0a, 0x09, 0x02, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x00, + 0x04, 0x11, 0x12, 0x13, 0x21, 0x31, 0x05, 0x22, + 0x34, 0x41, 0x51, 0xd1, 0x14, 0x20, 0x32, 0x61, + 0x71, 0x81, 0x91, 0x92, 0x93, 0xb3, 0x10, 0x15, + 0x23, 0x42, 0x52, 0x62, 0x72, 0x74, 0xa1, 0xa2, + 0xb2, 0x06, 0x24, 0x73, 0x83, 0x94, 0xb1, 0xf1, + 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x06, + 0x3f, 0x02, 0xbc, 0x8a, 0x0b, 0x87, 0xb7, 0x8a, + 0x09, 0x1a, 0x25, 0x58, 0xd8, 0x8e, 0x07, 0x1d, + 0x55, 0xd3, 0xe7, 0xf8, 0xad, 0xdf, 0x5d, 0x3e, + 0x7f, 0x8a, 0xdd, 0xf5, 0xd3, 0xe7, 0xf8, 0xad, + 0xdf, 0x5d, 0x3e, 0x7f, 0x8a, 0xdd, 0xf5, 0xd3, + 0xe7, 0xf8, 0xad, 0xdf, 0x5d, 0x3e, 0x7f, 0x8a, + 0xdd, 0xf4, 0x13, 0xc3, 0xee, 0x04, 0x4b, 0xbe, + 0x46, 0xda, 0xb7, 0x0f, 0x6d, 0x74, 0x8b, 0x8f, + 0xf9, 0x0f, 0xdf, 0x51, 0x49, 0x37, 0x3a, 0x4c, + 0xba, 0x96, 0xed, 0xc3, 0x11, 0x9f, 0xe2, 0xb9, + 0x48, 0xba, 0x97, 0x41, 0x79, 0x26, 0xa5, 0x07, + 0x19, 0x1a, 0xbb, 0x6b, 0x93, 0x60, 0x6b, 0x7b, + 0x98, 0x21, 0x9e, 0xc8, 0xdf, 0x4b, 0x27, 0x84, + 0x6a, 0xd2, 0xba, 0x18, 0xe9, 0xf2, 0x7c, 0xdc, + 0x6a, 0x18, 0x35, 0x37, 0xd6, 0xaf, 0x77, 0xa0, + 0xfe, 0x11, 0x0f, 0xda, 0x6f, 0xc7, 0x13, 0xba, + 0x22, 0xde, 0xba, 0xbb, 0xbc, 0xb9, 0xb5, 0xbb, + 0x9e, 0xd9, 0x4c, 0x09, 0x0c, 0x0e, 0xfb, 0x26, + 0xe7, 0xa6, 0x4b, 0x31, 0xc7, 0x68, 0x23, 0xd3, + 0x4b, 0xc9, 0xf1, 0xc3, 0x77, 0x15, 0xb6, 0x75, + 0xb2, 0x4e, 0x98, 0x99, 0x63, 0xc6, 0xa3, 0xbb, + 0xb7, 0x1c, 0x3d, 0x55, 0xca, 0xed, 0x3c, 0x32, + 0x34, 0x70, 0xac, 0x12, 0xdb, 0xc7, 0x3d, 0xca, + 0xdb, 0x73, 0x64, 0xce, 0xe6, 0x66, 0xeb, 0x1c, + 0x3d, 0x55, 0xca, 0x30, 0xd9, 0x34, 0xe6, 0xfe, + 0x3b, 0xbd, 0x94, 0x0b, 0x21, 0xf2, 0x97, 0x11, + 0xea, 0xf6, 0x6b, 0x27, 0x3d, 0x82, 0x9a, 0xde, + 0xd8, 0x31, 0x47, 0x4d, 0xa0, 0x67, 0x39, 0x66, + 0xcf, 0xd1, 0x1f, 0xfa, 0x92, 0xfc, 0xc6, 0xae, + 0x51, 0x85, 0x70, 0x1a, 0x4b, 0xd7, 0x51, 0x9e, + 0x1b, 0xde, 0x93, 0xc1, 0xee, 0x9a, 0x5d, 0x11, + 0x1b, 0x45, 0x32, 0xae, 0xcc, 0xe9, 0xe7, 0xa9, + 0x41, 0x9e, 0xac, 0x06, 0xff, 0x00, 0xdd, 0xd4, + 0xaf, 0x2d, 0xf4, 0x57, 0x30, 0xcc, 0x23, 0x7c, + 0x99, 0x78, 0x91, 0xa9, 0x17, 0xd3, 0x80, 0x0d, + 0x5d, 0xb1, 0xe5, 0x91, 0x67, 0x7b, 0x18, 0xd8, + 0xcd, 0x13, 0xf5, 0xec, 0xc0, 0x0a, 0x3c, 0xfd, + 0x95, 0x71, 0x7a, 0x2f, 0x31, 0x2d, 0xcc, 0x53, + 0x6d, 0xf3, 0xbd, 0x8f, 0x5e, 0x9c, 0xfe, 0x6c, + 0x1f, 0x61, 0xaf, 0xaa, 0x6e, 0x6e, 0x0b, 0x45, + 0xb2, 0x8f, 0x29, 0xd5, 0x8f, 0x2c, 0x0f, 0x51, + 0x63, 0x42, 0xea, 0x7b, 0x97, 0x33, 0x31, 0xd6, + 0xb9, 0xfb, 0xbc, 0xd0, 0xb9, 0xf4, 0xe9, 0x02, + 0x97, 0x5b, 0x6a, 0xd2, 0xa1, 0x47, 0xa3, 0xe8, + 0x87, 0xf5, 0xcb, 0xf3, 0x1a, 0xaf, 0xe2, 0x27, + 0x48, 0x7b, 0xd7, 0x52, 0x7b, 0x39, 0xf5, 0xb5, + 0x87, 0x95, 0xda, 0x59, 0x1f, 0x56, 0xe6, 0x97, + 0x9d, 0xa1, 0x74, 0xe8, 0x18, 0x1c, 0x58, 0x86, + 0xe1, 0xdb, 0x45, 0x53, 0x95, 0x63, 0x5d, 0x18, + 0xcf, 0xda, 0x32, 0xaa, 0xef, 0x6c, 0x67, 0xb3, + 0x78, 0xf6, 0x91, 0x52, 0xc9, 0x25, 0xd2, 0x8d, + 0x9e, 0x73, 0xb4, 0x07, 0x3b, 0x94, 0x1c, 0x7a, + 0x7c, 0xde, 0x63, 0x48, 0x91, 0xf2, 0x90, 0xc1, + 0xd6, 0xba, 0x06, 0x79, 0xcc, 0x0c, 0xb9, 0x0b, + 0xdb, 0xb9, 0x3f, 0xac, 0x76, 0xd2, 0x5c, 0x35, + 0xf4, 0x72, 0x98, 0x8b, 0x87, 0x05, 0xb2, 0x0e, + 0x8d, 0x38, 0xc7, 0x9b, 0x7d, 0x17, 0xdb, 0x24, + 0xa0, 0x4a, 0x62, 0xe6, 0xf6, 0x8f, 0xa6, 0x0f, + 0xd7, 0x27, 0xcc, 0x6a, 0xe5, 0x6f, 0xdd, 0x49, + 0xfd, 0xc7, 0xc4, 0x08, 0xbe, 0xb3, 0xd9, 0x4a, + 0x88, 0x30, 0xa3, 0xc4, 0xb6, 0xfd, 0x52, 0x7c, + 0xc6, 0xae, 0x55, 0xfd, 0xd4, 0x9f, 0xdc, 0x7c, + 0x4f, 0xce, 0x78, 0xf8, 0xb6, 0xbe, 0x99, 0x3e, + 0x63, 0x57, 0x2b, 0x7e, 0xea, 0x4f, 0xee, 0x35, + 0xf5, 0xb4, 0x6d, 0x0f, 0x83, 0xed, 0x84, 0x3a, + 0x0b, 0xe1, 0xf2, 0x48, 0x1d, 0x98, 0xc6, 0xfe, + 0xda, 0xd0, 0x51, 0xb5, 0x1e, 0x18, 0x1c, 0x7d, + 0x15, 0xae, 0x54, 0x2a, 0x7e, 0xe8, 0x61, 0xe3, + 0x5a, 0x7a, 0x64, 0xf9, 0x8d, 0x5c, 0xa4, 0xcf, + 0x18, 0x99, 0x16, 0xf1, 0xc9, 0x8c, 0x92, 0x03, + 0x0d, 0x5c, 0x37, 0x54, 0x76, 0xdf, 0xe1, 0xfb, + 0x7b, 0xa7, 0x68, 0x19, 0x6e, 0x9e, 0xce, 0x02, + 0x49, 0xc9, 0x07, 0x8e, 0xae, 0x20, 0x36, 0x9f, + 0xe2, 0xb9, 0x32, 0xda, 0xc6, 0x69, 0x66, 0x9a, + 0xca, 0x23, 0x04, 0xd2, 0x31, 0xf4, 0x61, 0x73, + 0xd6, 0x7c, 0xae, 0x14, 0xd9, 0xe4, 0xd9, 0x1e, + 0x65, 0xba, 0x96, 0x46, 0x46, 0xb6, 0x57, 0xda, + 0x0d, 0xaf, 0x93, 0x9d, 0xff, 0x00, 0xa7, 0xaf, + 0x7d, 0x48, 0x13, 0x91, 0x2e, 0xa4, 0xd5, 0x2e, + 0xd1, 0x1d, 0xad, 0x78, 0x11, 0xbb, 0x65, 0x81, + 0xc4, 0x63, 0x3b, 0xf3, 0xc7, 0xaa, 0x9b, 0xc1, + 0xec, 0xee, 0x15, 0x5f, 0xc9, 0x8c, 0xc5, 0xbf, + 0x3c, 0x0e, 0xe1, 0xf9, 0xb7, 0x56, 0xa8, 0xad, + 0x67, 0x95, 0x7b, 0x52, 0x32, 0x45, 0x15, 0x4b, + 0x3b, 0x87, 0x61, 0xc4, 0x2c, 0x4c, 0x71, 0x48, + 0x65, 0x8a, 0x48, 0x83, 0x8c, 0xae, 0xb5, 0x23, + 0x50, 0xf3, 0x55, 0x97, 0xfb, 0x9f, 0x31, 0xab, + 0x95, 0x41, 0x18, 0x3e, 0x13, 0x21, 0xfe, 0x69, + 0x6e, 0xac, 0xa6, 0x30, 0x4e, 0xbb, 0x83, 0x0a, + 0xcf, 0xae, 0x9f, 0xec, 0xd5, 0x63, 0x62, 0xcd, + 0xa7, 0xf0, 0x93, 0x21, 0x72, 0x41, 0xf5, 0xe3, + 0xcf, 0x81, 0x9a, 0xda, 0xa5, 0xb4, 0x49, 0x83, + 0x2f, 0x30, 0x0e, 0x6f, 0x3e, 0x21, 0x19, 0xdd, + 0xc3, 0xab, 0x34, 0x93, 0xec, 0x34, 0xca, 0xb8, + 0xc1, 0x57, 0xdd, 0xe5, 0x87, 0xff, 0x00, 0xb1, + 0xec, 0xa9, 0x16, 0x78, 0x51, 0xb6, 0x9c, 0x74, + 0xe0, 0x7d, 0xe0, 0xdb, 0x81, 0x04, 0x71, 0x1f, + 0xc9, 0xa4, 0x12, 0x22, 0xb0, 0x8d, 0x65, 0x55, + 0xed, 0xc3, 0xa6, 0x9c, 0x67, 0xcd, 0xd5, 0x56, + 0xea, 0xc8, 0x03, 0x44, 0x31, 0xaf, 0xef, 0x36, + 0xe0, 0x38, 0xf9, 0xb1, 0xd7, 0x9a, 0xb0, 0xdc, + 0x77, 0xeb, 0x3f, 0xd6, 0xd4, 0x27, 0x9e, 0xd1, + 0x5e, 0x52, 0x37, 0xb6, 0x48, 0xcf, 0xb2, 0xba, + 0x10, 0xf7, 0xdb, 0xbe, 0xba, 0x10, 0xf7, 0xdb, + 0xbe, 0xba, 0x10, 0xf7, 0xdb, 0xbe, 0xba, 0x10, + 0xf7, 0xdb, 0xbe, 0xba, 0x10, 0xf7, 0xdb, 0xbe, + 0xba, 0x10, 0xf7, 0xdb, 0xbe, 0xba, 0x10, 0xf7, + 0xdb, 0xbe, 0x97, 0xfc, 0x90, 0xe3, 0xf8, 0xdb, + 0xbe, 0xa3, 0x8a, 0x24, 0x09, 0x1a, 0xae, 0x15, + 0x47, 0x55, 0x7f, 0xff, 0xc4, 0x00, 0x24, 0x10, + 0x01, 0x00, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, + 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x11, 0x21, 0x00, 0x31, 0x41, 0x51, 0x61, + 0x71, 0x10, 0x20, 0x81, 0x30, 0x91, 0xa1, 0xc1, + 0xf0, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, + 0x01, 0x3f, 0x21, 0x23, 0x87, 0x57, 0x86, 0x93, + 0x22, 0x56, 0x26, 0xfb, 0xeb, 0xee, 0xc9, 0x93, + 0x26, 0x4c, 0x99, 0x6b, 0xbd, 0xa5, 0x3d, 0x0e, + 0xcf, 0xfd, 0xaf, 0x8a, 0x64, 0x9d, 0x34, 0xaa, + 0xec, 0x3b, 0x49, 0x3e, 0x71, 0x65, 0x91, 0x2f, + 0x9b, 0x21, 0x06, 0x3d, 0xc3, 0x90, 0xa3, 0xe2, + 0x58, 0x28, 0x11, 0xd2, 0x5f, 0xe9, 0x18, 0xcd, + 0x33, 0xe3, 0x96, 0x34, 0x49, 0x24, 0x40, 0x8b, + 0x40, 0x04, 0xe0, 0x18, 0x99, 0xe9, 0x2c, 0xe7, + 0xa8, 0x10, 0xd1, 0x38, 0xcd, 0x38, 0x56, 0xc3, + 0x11, 0x13, 0xd1, 0xda, 0x69, 0x78, 0xb4, 0x62, + 0x80, 0x2e, 0x08, 0x82, 0x0f, 0x92, 0xb2, 0x2a, + 0x63, 0xe4, 0x0a, 0x06, 0x89, 0xa4, 0xe5, 0x2e, + 0x42, 0x96, 0x1b, 0x41, 0x52, 0x21, 0x06, 0xbc, + 0x71, 0xbb, 0x3e, 0x32, 0x1c, 0x26, 0xe5, 0x06, + 0x70, 0x14, 0x09, 0x72, 0x7e, 0x97, 0x37, 0x54, + 0x9b, 0x49, 0xcf, 0x55, 0x58, 0x2a, 0x93, 0x43, + 0x85, 0x08, 0x92, 0xda, 0x1e, 0x1e, 0x5c, 0x96, + 0x5f, 0x80, 0x6a, 0x8e, 0xc6, 0x68, 0xc5, 0x23, + 0x0f, 0x38, 0xd1, 0x86, 0x35, 0x14, 0x2e, 0xe5, + 0xa9, 0x1e, 0x6c, 0xb9, 0x3e, 0x40, 0x6d, 0xd9, + 0x49, 0x4f, 0xd5, 0x9c, 0xd0, 0x2f, 0x2a, 0x65, + 0xc5, 0x6c, 0x0f, 0x47, 0xbc, 0x46, 0x7d, 0xa7, + 0xc1, 0xd1, 0xf1, 0x52, 0x32, 0x3c, 0x22, 0xdc, + 0x4a, 0x27, 0x25, 0x55, 0x2e, 0xfc, 0x87, 0x71, + 0xac, 0x4c, 0xb0, 0x18, 0x7e, 0x9a, 0x40, 0x19, + 0x13, 0xe1, 0x2d, 0xf4, 0xb6, 0xd5, 0x76, 0xc1, + 0x94, 0xdc, 0x27, 0xa3, 0x5d, 0x3a, 0x32, 0x7a, + 0x42, 0x52, 0x20, 0x02, 0x6c, 0xac, 0x14, 0xa8, + 0x62, 0x21, 0x84, 0xf9, 0x01, 0xdf, 0xbb, 0xf0, + 0x32, 0x4b, 0x0d, 0xb2, 0x36, 0x4c, 0x4e, 0xca, + 0x75, 0xe3, 0xbc, 0xf6, 0xcf, 0x6c, 0x72, 0x7e, + 0x13, 0x24, 0x3a, 0xc8, 0x3a, 0xc8, 0x3a, 0xc2, + 0xda, 0x27, 0xf0, 0x77, 0x83, 0xd0, 0x30, 0x7d, + 0x23, 0x96, 0xfa, 0x27, 0x40, 0x50, 0x04, 0xaf, + 0x06, 0x5e, 0xbb, 0xdf, 0xfa, 0xfa, 0x83, 0x95, + 0xf8, 0xcc, 0x92, 0xff, 0x00, 0x81, 0x54, 0x15, + 0x6e, 0x19, 0x0b, 0x46, 0x10, 0xe2, 0xa4, 0x9e, + 0xfd, 0x8f, 0x26, 0x18, 0xda, 0xf0, 0x8f, 0xbf, + 0xb0, 0x14, 0xbc, 0x00, 0xec, 0x0a, 0x84, 0xe5, + 0x36, 0x27, 0x52, 0x5e, 0x04, 0xf6, 0xc7, 0xea, + 0x13, 0xe6, 0x90, 0xd3, 0x22, 0x72, 0x53, 0x82, + 0x29, 0x02, 0xc6, 0xa1, 0xb3, 0x4b, 0xdf, 0x5b, + 0xd5, 0x35, 0x92, 0x04, 0x6c, 0x89, 0x64, 0x94, + 0xa1, 0x95, 0x1e, 0x91, 0xac, 0xd9, 0x54, 0x86, + 0xfb, 0x11, 0x2d, 0x27, 0x26, 0x58, 0x09, 0x23, + 0x51, 0x81, 0xab, 0x8f, 0xc1, 0xbc, 0xaa, 0xd2, + 0xba, 0xb9, 0x86, 0xc3, 0x87, 0x2a, 0xb3, 0x2e, + 0x94, 0x1b, 0x03, 0xa4, 0xfe, 0xcc, 0x94, 0x08, + 0xb1, 0x7b, 0x25, 0xb3, 0xd6, 0x29, 0x4f, 0x38, + 0x16, 0x55, 0x11, 0xe9, 0x69, 0xfe, 0x1c, 0x33, + 0x3c, 0xc1, 0xb4, 0xec, 0x46, 0x93, 0xc3, 0x92, + 0x14, 0x95, 0x94, 0x54, 0xb8, 0xe1, 0x41, 0x16, + 0x55, 0xf2, 0x2a, 0x6e, 0x2c, 0x10, 0x18, 0xc0, + 0x12, 0x02, 0x08, 0xe9, 0x0f, 0x0a, 0x22, 0x25, + 0x68, 0x2b, 0x16, 0xa2, 0xf8, 0x80, 0x68, 0x11, + 0x5c, 0x57, 0x4a, 0x22, 0x87, 0x1a, 0xee, 0x11, + 0x82, 0x15, 0x48, 0x02, 0xcb, 0xad, 0xa5, 0x38, + 0xcb, 0x89, 0xd6, 0xb7, 0xae, 0x45, 0x9e, 0x93, + 0x1a, 0x8c, 0xbe, 0x8e, 0xf8, 0x42, 0x10, 0xc0, + 0x53, 0x4c, 0x91, 0x2d, 0xc4, 0x43, 0x5b, 0xd4, + 0xb8, 0x72, 0xa7, 0x0d, 0xb4, 0xfb, 0x48, 0x9f, + 0xe0, 0x8d, 0x9a, 0x36, 0x68, 0xd9, 0xb3, 0x22, + 0x57, 0x21, 0x4a, 0x98, 0x31, 0x3a, 0x26, 0x01, + 0xd6, 0x7f, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, + 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, + 0x12, 0x01, 0x27, 0x03, 0xc0, 0x00, 0x97, 0x81, + 0x20, 0x90, 0x83, 0xe8, 0x82, 0x2d, 0x20, 0xb2, + 0x48, 0xa9, 0x2c, 0xc8, 0x0e, 0xdb, 0x03, 0x20, + 0xff, 0x00, 0xfe, 0x20, 0x70, 0xe4, 0x93, 0x92, + 0x3c, 0x9f, 0x9c, 0x16, 0xd9, 0xb4, 0x8f, 0xff, + 0xc4, 0x00, 0x1e, 0x11, 0x00, 0x03, 0x00, 0x02, + 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x10, + 0x31, 0x20, 0x21, 0x30, 0x41, 0x51, 0x61, 0xff, + 0xda, 0x00, 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, + 0x10, 0x94, 0x84, 0x21, 0x08, 0x43, 0xb2, 0xf6, + 0x7e, 0xc4, 0x3f, 0xaf, 0x03, 0x50, 0xfc, 0x20, + 0xc6, 0xe3, 0x68, 0x69, 0xbd, 0xe1, 0xaf, 0x93, + 0xf5, 0x10, 0xe7, 0x26, 0x8e, 0x2d, 0x14, 0x7d, + 0xba, 0xc8, 0x42, 0x1a, 0xb8, 0xb5, 0x10, 0x84, + 0x21, 0xa2, 0xe0, 0xde, 0x89, 0x88, 0x42, 0x1a, + 0x65, 0xb9, 0x98, 0x42, 0x32, 0x0b, 0x59, 0x7d, + 0xf2, 0x82, 0xd6, 0x21, 0x08, 0x42, 0x10, 0x84, + 0xc7, 0xff, 0xc4, 0x00, 0x1f, 0x11, 0x00, 0x03, + 0x00, 0x02, 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x11, 0x20, 0x31, 0x10, 0x21, 0x41, 0x51, 0x61, + 0x30, 0x71, 0xff, 0xda, 0x00, 0x08, 0x01, 0x02, + 0x01, 0x01, 0x3f, 0x10, 0xb0, 0xbf, 0x0a, 0x5f, + 0x85, 0x29, 0x4e, 0x97, 0xc7, 0x93, 0xe6, 0x53, + 0xf4, 0xfc, 0x12, 0x45, 0xef, 0x87, 0x7f, 0xed, + 0x9a, 0xd2, 0x86, 0xc4, 0xd2, 0xd7, 0x07, 0xc8, + 0x44, 0xdd, 0x65, 0x4a, 0x53, 0x6e, 0x34, 0x41, + 0x44, 0xa2, 0x29, 0x4a, 0x6e, 0xc5, 0x60, 0xa5, + 0x29, 0x4d, 0x98, 0x27, 0x92, 0x94, 0xa5, 0x29, + 0xb7, 0x29, 0x5e, 0x69, 0x4a, 0x51, 0xef, 0x95, + 0xd6, 0x6f, 0x9a, 0x52, 0xe5, 0xff, 0xc4, 0x00, + 0x24, 0x10, 0x01, 0x01, 0x00, 0x02, 0x02, 0x03, + 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x11, 0x00, 0x21, 0x31, 0x61, + 0x41, 0x51, 0x71, 0x20, 0xa1, 0x10, 0x81, 0x91, + 0xb1, 0xc1, 0xd1, 0xff, 0xda, 0x00, 0x08, 0x01, + 0x01, 0x00, 0x01, 0x3f, 0x10, 0x5a, 0xb8, 0xa5, + 0x42, 0x42, 0xd8, 0x10, 0xa2, 0x81, 0x80, 0x3f, + 0x28, 0x22, 0x64, 0xc9, 0x13, 0x35, 0x4f, 0x26, + 0x1c, 0xdf, 0x93, 0xd6, 0x43, 0xfa, 0xb1, 0x16, + 0x6b, 0x21, 0xa7, 0x08, 0x2e, 0x63, 0x96, 0x2d, + 0x37, 0x58, 0x08, 0x03, 0x00, 0x29, 0x80, 0x40, + 0x95, 0xe6, 0x00, 0x8f, 0xbc, 0x29, 0x43, 0x42, + 0xd8, 0xc9, 0x88, 0x86, 0x61, 0xbd, 0x45, 0xd7, + 0x64, 0x94, 0x18, 0xda, 0x72, 0xe7, 0xca, 0x3a, + 0x50, 0x08, 0x9b, 0x14, 0x29, 0x93, 0x16, 0xd8, + 0x5d, 0x6a, 0x61, 0xa8, 0x85, 0x97, 0x0b, 0xf9, + 0x93, 0x87, 0x26, 0x34, 0xa9, 0x03, 0x77, 0x8d, + 0x05, 0x05, 0xc1, 0x29, 0xa1, 0x52, 0x22, 0x11, + 0x83, 0x70, 0x27, 0x8a, 0x81, 0x6e, 0x9b, 0x90, + 0x88, 0x68, 0x42, 0xb8, 0xd4, 0x1f, 0xd0, 0xb7, + 0x16, 0x1b, 0x6c, 0x13, 0xba, 0xaf, 0x79, 0xd8, + 0xcf, 0x8d, 0x3a, 0xd9, 0xf9, 0x37, 0x80, 0xa9, + 0x5f, 0x06, 0x25, 0x2c, 0x49, 0x6d, 0x13, 0xa1, + 0x2c, 0x5d, 0x52, 0x45, 0x14, 0xaf, 0x43, 0x02, + 0xd1, 0x35, 0xa6, 0xc5, 0x1a, 0xdb, 0x72, 0x93, + 0x1d, 0xc8, 0x2e, 0x1a, 0x3b, 0x73, 0x42, 0xa6, + 0x0a, 0xbc, 0x4f, 0xe7, 0xa8, 0xb9, 0x46, 0x82, + 0xd3, 0x48, 0xf3, 0xaa, 0xcb, 0xb6, 0x94, 0x10, + 0x6e, 0x1a, 0x75, 0xac, 0x42, 0x4e, 0xf2, 0x80, + 0xd9, 0xa2, 0xab, 0xea, 0xf2, 0xe1, 0xb1, 0x34, + 0x5e, 0x36, 0x1f, 0x41, 0x9f, 0x59, 0xdc, 0xc9, + 0x9c, 0xe9, 0xe2, 0xa1, 0x4c, 0xdb, 0x5a, 0x1b, + 0xbc, 0xde, 0xe9, 0xf4, 0x8b, 0xf4, 0x40, 0xd9, + 0x82, 0x41, 0xa6, 0x0b, 0x7e, 0xa1, 0x16, 0x88, + 0x86, 0x91, 0x10, 0xe6, 0x97, 0x15, 0xad, 0x8e, + 0x12, 0x29, 0x48, 0xfd, 0xda, 0xa1, 0x0d, 0xea, + 0xe4, 0x11, 0x15, 0x2a, 0x85, 0x8b, 0xa3, 0x71, + 0x23, 0xaa, 0xd1, 0x8d, 0x31, 0x85, 0x79, 0x29, + 0x01, 0xc8, 0xb2, 0x02, 0x18, 0xe1, 0x70, 0xb4, + 0x72, 0x56, 0x80, 0x6d, 0x18, 0x3f, 0x8a, 0xed, + 0x25, 0xcf, 0x6c, 0x2b, 0xa1, 0xfd, 0xb3, 0x8b, + 0x4d, 0x71, 0xac, 0x0a, 0x40, 0x4e, 0xb0, 0x12, + 0x72, 0xa1, 0x41, 0xe5, 0x7f, 0xcf, 0x70, 0xc2, + 0xec, 0xa0, 0x85, 0x7d, 0xaf, 0xb5, 0x6a, 0xbe, + 0xdc, 0x09, 0xc4, 0x33, 0xeb, 0x3e, 0xf3, 0xb7, + 0x9b, 0xf0, 0xfd, 0x3b, 0x67, 0x40, 0x2a, 0xbe, + 0x8c, 0x93, 0x86, 0x23, 0x78, 0xf4, 0x3a, 0x3f, + 0xcd, 0xcf, 0xaf, 0xde, 0x7d, 0x7e, 0xf3, 0xeb, + 0xf7, 0x9f, 0x5f, 0xbc, 0xed, 0x86, 0xfe, 0x1d, + 0x57, 0x8f, 0x2d, 0x33, 0x02, 0x1b, 0x08, 0xe0, + 0xab, 0x26, 0x2d, 0x95, 0x2e, 0x48, 0xbb, 0x0a, + 0x6a, 0x52, 0x82, 0x6c, 0x66, 0x4b, 0xab, 0xa3, + 0x95, 0x4d, 0x5e, 0xc4, 0x3e, 0x39, 0xf5, 0x9f, + 0x59, 0xf5, 0x9f, 0x59, 0xf5, 0x9d, 0xa4, 0xf8, + 0xa8, 0x5a, 0xba, 0x86, 0xa8, 0x22, 0x29, 0x40, + 0x34, 0x46, 0x39, 0xce, 0xbf, 0x78, 0x07, 0x24, + 0x88, 0xcb, 0x87, 0x13, 0x18, 0x98, 0xab, 0x90, + 0x19, 0x1a, 0x8f, 0x53, 0xa9, 0x31, 0xbf, 0x01, + 0x9f, 0x79, 0x02, 0x52, 0x4c, 0x26, 0xc6, 0x60, + 0x24, 0xe2, 0x4d, 0x71, 0x84, 0x82, 0x52, 0x9e, + 0x25, 0x01, 0xdd, 0x5c, 0x48, 0x26, 0x49, 0x08, + 0x01, 0x45, 0x73, 0x74, 0x8a, 0xa0, 0x9f, 0x02, + 0x5a, 0x08, 0x80, 0xfa, 0x58, 0xe2, 0x8e, 0x75, + 0x09, 0x08, 0x11, 0x4d, 0xbd, 0xf8, 0x6f, 0x26, + 0x76, 0x3e, 0x2f, 0x81, 0x03, 0xed, 0x46, 0x76, + 0xc3, 0x62, 0x82, 0xf4, 0x0c, 0x69, 0x9f, 0x10, + 0x4e, 0x93, 0x05, 0xf4, 0x82, 0x09, 0x41, 0xca, + 0xbd, 0x09, 0x41, 0x94, 0x32, 0xc0, 0xa7, 0xa8, + 0x28, 0x6b, 0xa3, 0x47, 0xfa, 0xcd, 0x07, 0xc0, + 0x2f, 0x79, 0x3b, 0xae, 0x9a, 0x5c, 0xb3, 0xcc, + 0x2f, 0x1a, 0xb6, 0x1c, 0x42, 0xc0, 0x7c, 0x6a, + 0x14, 0xcf, 0x82, 0x5e, 0xd2, 0xe6, 0x50, 0x98, + 0x21, 0x50, 0x3f, 0x97, 0xcc, 0x68, 0x54, 0x93, + 0x4a, 0x98, 0xa0, 0x9b, 0x40, 0xb1, 0xde, 0xb9, + 0x29, 0x5a, 0x0b, 0x4a, 0x80, 0x3b, 0xf6, 0x3d, + 0x19, 0x9e, 0x5d, 0xae, 0x42, 0xb8, 0x61, 0xd2, + 0x50, 0x15, 0x15, 0x01, 0xf8, 0x88, 0x9f, 0x70, + 0xf5, 0xd8, 0x8f, 0x7a, 0x2b, 0x49, 0xdf, 0xe5, + 0x67, 0x6c, 0xdd, 0xb3, 0x4c, 0xda, 0xe6, 0xd0, + 0xed, 0x98, 0x58, 0xdf, 0x91, 0x94, 0xeb, 0x05, + 0x4f, 0xa5, 0x1c, 0xd0, 0x3c, 0x06, 0x7f, 0xff, + 0xd9, +}; + +const struct fsdata_file file_tm4c_jpg[] = +{ + { + NULL, + data_tm4c_jpg, + data_tm4c_jpg + 10, + sizeof(data_tm4c_jpg) - 10 + } +}; + +const struct fsdata_file file_ti_jpg[] = +{ + { + file_tm4c_jpg, + data_ti_jpg, + data_ti_jpg + 8, + sizeof(data_ti_jpg) - 8 + } +}; + +const struct fsdata_file file_styles_css[] = +{ + { + file_ti_jpg, + data_styles_css, + data_styles_css + 12, + sizeof(data_styles_css) - 12 + } +}; + +const struct fsdata_file file_overview_htm[] = +{ + { + file_styles_css, + data_overview_htm, + data_overview_htm + 14, + sizeof(data_overview_htm) - 14 + } +}; + +const struct fsdata_file file_javascript_js[] = +{ + { + file_overview_htm, + data_javascript_js, + data_javascript_js + 15, + sizeof(data_javascript_js) - 15 + } +}; + +const struct fsdata_file file_index_htm[] = +{ + { + file_javascript_js, + data_index_htm, + data_index_htm + 11, + sizeof(data_index_htm) - 11 + } +}; + +const struct fsdata_file file_favicon_ico[] = +{ + { + file_index_htm, + data_favicon_ico, + data_favicon_ico + 13, + sizeof(data_favicon_ico) - 13 + } +}; + +const struct fsdata_file file_ek_tm4c1294xl_jpg[] = +{ + { + file_favicon_ico, + data_ek_tm4c1294xl_jpg, + data_ek_tm4c1294xl_jpg + 19, + sizeof(data_ek_tm4c1294xl_jpg) - 19 + } +}; + +const struct fsdata_file file_block_jpg[] = +{ + { + file_ek_tm4c1294xl_jpg, + data_block_jpg, + data_block_jpg + 11, + sizeof(data_block_jpg) - 11 + } +}; + +const struct fsdata_file file_block_htm[] = +{ + { + file_block_jpg, + data_block_htm, + data_block_htm + 11, + sizeof(data_block_htm) - 11 + } +}; + +const struct fsdata_file file_about_htm[] = +{ + { + file_block_htm, + data_about_htm, + data_about_htm + 11, + sizeof(data_about_htm) - 11 + } +}; + +const struct fsdata_file file_404_htm[] = +{ + { + file_about_htm, + data_404_htm, + data_404_htm + 9, + sizeof(data_404_htm) - 9 + } +}; + +#define FS_ROOT file_404_htm + +#define FS_NUMFILES 12 + diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.c b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.c new file mode 100644 index 0000000..dd05909 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.c @@ -0,0 +1,355 @@ +//***************************************************************************** +// +// enet_lwip.c - Sample WebServer Application using lwIP. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "driverlib/flash.h" +#include "driverlib/interrupt.h" +#include "driverlib/gpio.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "utils/locator.h" +#include "utils/lwiplib.h" +#include "utils/ustdlib.h" +#include "utils/uartstdio.h" +#include "httpserver_raw/httpd.h" +#include "drivers/pinout.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      Ethernet with lwIP (enet_lwip)

      +//! +//! This example application demonstrates the operation of the Tiva +//! Ethernet controller using the lwIP TCP/IP Stack. DHCP is used to obtain +//! an Ethernet address. If DHCP times out without obtaining an address, +//! AutoIP will be used to obtain a link-local address. The address that is +//! selected will be shown on the UART. +//! +//! UART0, connected to the ICDI virtual COM port and running at 115,200, +//! 8-N-1, is used to display messages from this application. Use the +//! following command to re-build the any file system files that change. +//! +//! ../../../../tools/bin/makefsfile -i fs -o enet_fsdata.h -r -h -q +//! +//! For additional details on lwIP, refer to the lwIP web page at: +//! http://savannah.nongnu.org/projects/lwip/ +// +//***************************************************************************** + +//***************************************************************************** +// +// Defines for setting up the system clock. +// +//***************************************************************************** +#define SYSTICKHZ 100 +#define SYSTICKMS (1000 / SYSTICKHZ) + +//***************************************************************************** +// +// Interrupt priority definitions. The top 3 bits of these values are +// significant with lower values indicating higher priority interrupts. +// +//***************************************************************************** +#define SYSTICK_INT_PRIORITY 0x80 +#define ETHERNET_INT_PRIORITY 0xC0 + +//***************************************************************************** +// +// The current IP address. +// +//***************************************************************************** +uint32_t g_ui32IPAddress; + +//***************************************************************************** +// +// The system clock frequency. +// +//***************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// Display an lwIP type IP Address. +// +//***************************************************************************** +void +DisplayIPAddress(uint32_t ui32Addr) +{ + char pcBuf[16]; + + // + // Convert the IP Address into a string. + // + usprintf(pcBuf, "%d.%d.%d.%d", ui32Addr & 0xff, (ui32Addr >> 8) & 0xff, + (ui32Addr >> 16) & 0xff, (ui32Addr >> 24) & 0xff); + + // + // Display the string. + // + UARTprintf(pcBuf); +} + +//***************************************************************************** +// +// Required by lwIP library to support any host-related timer functions. +// +//***************************************************************************** +void +lwIPHostTimerHandler(void) +{ + uint32_t ui32Idx, ui32NewIPAddress; + + // + // Get the current IP address. + // + ui32NewIPAddress = lwIPLocalIPAddrGet(); + + // + // See if the IP address has changed. + // + if(ui32NewIPAddress != g_ui32IPAddress) + { + // + // See if there is an IP address assigned. + // + if(ui32NewIPAddress == 0xffffffff) + { + // + // Indicate that there is no link. + // + UARTprintf("Waiting for link.\n"); + } + else if(ui32NewIPAddress == 0) + { + // + // There is no IP address, so indicate that the DHCP process is + // running. + // + UARTprintf("Waiting for IP address.\n"); + } + else + { + // + // Display the new IP address. + // + UARTprintf("IP Address: "); + DisplayIPAddress(ui32NewIPAddress); + UARTprintf("\nOpen a browser and enter the IP address.\n"); + } + + // + // Save the new IP address. + // + g_ui32IPAddress = ui32NewIPAddress; + + // + // Turn GPIO off. + // + MAP_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, ~GPIO_PIN_1); + } + + // + // If there is not an IP address. + // + if((ui32NewIPAddress == 0) || (ui32NewIPAddress == 0xffffffff)) + { + // + // Loop through the LED animation. + // + + for(ui32Idx = 1; ui32Idx < 17; ui32Idx++) + { + + // + // Toggle the GPIO + // + MAP_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, + (MAP_GPIOPinRead(GPIO_PORTN_BASE, GPIO_PIN_1) ^ + GPIO_PIN_1)); + + SysCtlDelay(g_ui32SysClock/(ui32Idx << 1)); + } + } +} + +//***************************************************************************** +// +// The interrupt handler for the SysTick interrupt. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + // + // Call the lwIP timer handler. + // + lwIPTimer(SYSTICKMS); +} + +//***************************************************************************** +// +// This example demonstrates the use of the Ethernet Controller. +// +//***************************************************************************** +int +main(void) +{ + uint32_t ui32User0, ui32User1; + uint8_t pui8MACArray[8]; + + // + // Make sure the main oscillator is enabled because this is required by + // the PHY. The system must have a 25MHz crystal attached to the OSC + // pins. The SYSCTL_MOSC_HIGHFREQ parameter is used when the crystal + // frequency is 10MHz or higher. + // + SysCtlMOSCConfigSet(SYSCTL_MOSC_HIGHFREQ); + + // + // Run from the PLL at 120 MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins. + // + PinoutSet(true, false); + + // + // Configure UART. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); + + // + // Clear the terminal and print banner. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("Ethernet lwIP example\n\n"); + + // + // Configure Port N1 for as an output for the animation LED. + // + MAP_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_1); + + // + // Initialize LED to OFF (0) + // + MAP_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, ~GPIO_PIN_1); + + // + // Configure SysTick for a periodic interrupt. + // + MAP_SysTickPeriodSet(g_ui32SysClock / SYSTICKHZ); + MAP_SysTickEnable(); + MAP_SysTickIntEnable(); + + // + // Configure the hardware MAC address for Ethernet Controller filtering of + // incoming packets. The MAC address will be stored in the non-volatile + // USER0 and USER1 registers. + // + MAP_FlashUserGet(&ui32User0, &ui32User1); + if((ui32User0 == 0xffffffff) || (ui32User1 == 0xffffffff)) + { + // + // We should never get here. This is an error if the MAC address has + // not been programmed into the device. Exit the program. + // Let the user know there is no MAC address + // + UARTprintf("No MAC programmed!\n"); + while(1) + { + } + } + + // + // Tell the user what we are doing just now. + // + UARTprintf("Waiting for IP.\n"); + + // + // Convert the 24/24 split MAC address from NV ram into a 32/16 split MAC + // address needed to program the hardware registers, then program the MAC + // address into the Ethernet Controller registers. + // + pui8MACArray[0] = ((ui32User0 >> 0) & 0xff); + pui8MACArray[1] = ((ui32User0 >> 8) & 0xff); + pui8MACArray[2] = ((ui32User0 >> 16) & 0xff); + pui8MACArray[3] = ((ui32User1 >> 0) & 0xff); + pui8MACArray[4] = ((ui32User1 >> 8) & 0xff); + pui8MACArray[5] = ((ui32User1 >> 16) & 0xff); + + // + // Initialize the lwIP library, using DHCP. + // + lwIPInit(g_ui32SysClock, pui8MACArray, 0, 0, 0, IPADDR_USE_DHCP); + + // + // Setup the device locator service. + // + LocatorInit(); + LocatorMACAddrSet(pui8MACArray); + LocatorAppTitleSet("EK-TM4C1294XL enet_io"); + + // + // Initialize a sample httpd server. + // + httpd_init(); + + // + // Set the interrupt priorities. We set the SysTick interrupt to a higher + // priority than the Ethernet interrupt to ensure that the file system + // tick is processed if SysTick occurs while the Ethernet handler is being + // processed. This is very likely since all the TCP/IP and HTTP work is + // done in the context of the Ethernet interrupt. + // + MAP_IntPrioritySet(INT_EMAC0, ETHERNET_INT_PRIORITY); + MAP_IntPrioritySet(FAULT_SYSTICK, SYSTICK_INT_PRIORITY); + + // + // Loop forever. All the work is done in interrupt handlers. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ewd b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ewp b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ewp new file mode 100644 index 0000000..6475c63 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ewp @@ -0,0 +1,825 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\enet_fs.c + + + $PROJ_DIR$\enet_lwip.c + + + $PROJ_DIR$\..\..\..\..\third_party\fatfs\src\ff.c + + + $PROJ_DIR$\..\..\..\..\third_party\lwip-1.4.1\apps\httpserver_raw\httpd.c + + + $PROJ_DIR$\..\..\..\..\utils\locator.c + + + $PROJ_DIR$\..\..\..\..\utils\lwiplib.c + + + $PROJ_DIR$\..\..\..\..\third_party\fatfs\port\mmc-ek-tm4c1294xl.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.icf b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.icf new file mode 100644 index 0000000..517e4a8 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// enet_lwip.icf - Linker configuration file for enet_lwip. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ld b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ld new file mode 100644 index 0000000..187dd97 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * enet_lwip.ld - Linker configuration file for enet_lwip. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.sct b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.sct new file mode 100644 index 0000000..b3a810b --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; enet_lwip.sct - Linker configuration file for enet_lwip. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.uvopt b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.uvopt new file mode 100644 index 0000000..44e6c6b --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.uvopt @@ -0,0 +1,415 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + enet_lwip + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\enet_fs.c + enet_fs.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\enet_lwip.c + enet_lwip.c + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\fatfs\src\ff.c + ff.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\lwip-1.4.1\apps\httpserver_raw\httpd.c + httpd.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\locator.c + locator.c + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\lwiplib.c + lwiplib.c + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\fatfs\port\mmc-ek-tm4c1294xl.c + mmc-ek-tm4c1294xl.c + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 9 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 11 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 12 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 13 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.uvproj b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.uvproj new file mode 100644 index 0000000..87b9c06 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip.uvproj @@ -0,0 +1,469 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + enet_lwip + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + enet_lwip + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\enet_lwip.bin .\rvmdk\enet_lwip.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + .;..;..\..\..\..;..\..\..\..\third_party\lwip-1.4.1\apps;..\..\..\..\third_party\lwip-1.4.1\ports\tiva-tm4c129\include;..\..\..\..\third_party\lwip-1.4.1\src\include;..\..\..\..\third_party\lwip-1.4.1\src\include\ipv4;..\..\..\..\third_party; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + enet_lwip.sct + + + --entry Reset_Handler + + + + + + + + Source + + + enet_fs.c + 1 + .\enet_fs.c + + + enet_lwip.c + 1 + .\enet_lwip.c + + + ff.c + 1 + ..\..\..\..\third_party\fatfs\src\ff.c + + + httpd.c + 1 + ..\..\..\..\third_party\lwip-1.4.1\apps\httpserver_raw\httpd.c + + + locator.c + 1 + ..\..\..\..\utils\locator.c + + + lwiplib.c + 1 + ..\..\..\..\utils\lwiplib.c + + + mmc-ek-tm4c1294xl.c + 1 + ..\..\..\..\third_party\fatfs\port\mmc-ek-tm4c1294xl.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/enet_lwip/enet_lwip_ccs.cmd b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip_ccs.cmd new file mode 100644 index 0000000..a1e5f7d --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/enet_lwip_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * enet_lwip_ccs.cmd - CCS linker configuration file for enet_lwip. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 2048; diff --git a/boards/ek-tm4c1294xl/enet_lwip/ewarm/Exe/enet_lwip.bin b/boards/ek-tm4c1294xl/enet_lwip/ewarm/Exe/enet_lwip.bin new file mode 100644 index 0000000..9980702 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/ewarm/Exe/enet_lwip.bin differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/ewarm/Exe/enet_lwip.out b/boards/ek-tm4c1294xl/enet_lwip/ewarm/Exe/enet_lwip.out new file mode 100644 index 0000000..3339949 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/ewarm/Exe/enet_lwip.out differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/404.htm b/boards/ek-tm4c1294xl/enet_lwip/fs/404.htm new file mode 100644 index 0000000..bc5fdb0 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/fs/404.htm @@ -0,0 +1,9 @@ + + + +
      +

      404 - file not found

      +

      Try here instead.

      +
      + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/about.htm b/boards/ek-tm4c1294xl/enet_lwip/fs/about.htm new file mode 100644 index 0000000..2208d9c --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/fs/about.htm @@ -0,0 +1,32 @@ + + + + +EK-TM4C1294XL Evaluation Kit + + + + +

      About Texas Instruments

      +
      +
      +Texas Instruments (TI) is a global +analog +and digital +semiconductor IC design +and manufacturing company. In addition to analog technologies, +digital signal processing (DSP) +and +microcontroller (MCU) +semiconductors, TI designs and manufactures semiconductor solutions for analog +and digital embedded and application processing. In the microcontroller space, +TI offers the broadest range of embedded control products, from ultra-low-power +MSP430™ +MCUs and high-performance +TMS320C2000™ +real-time controllers, to the 32 bit general-purpose ARM®-based MCUs of the +Tiva™ C Series +product line. Read more about us on the web at +www.ti.com. + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/block.htm b/boards/ek-tm4c1294xl/enet_lwip/fs/block.htm new file mode 100644 index 0000000..f0d7ee5 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/fs/block.htm @@ -0,0 +1,17 @@ + + + + +EK-TM4C1294XL Evaluation Kit + + + + +

      TM4C1294NCPDT Block Diagram

      +
      +
      +
      + +
      + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/block.jpg b/boards/ek-tm4c1294xl/enet_lwip/fs/block.jpg new file mode 100644 index 0000000..a42d607 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/fs/block.jpg differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/ek-tm4c1294xl.jpg b/boards/ek-tm4c1294xl/enet_lwip/fs/ek-tm4c1294xl.jpg new file mode 100644 index 0000000..b6e5f28 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/fs/ek-tm4c1294xl.jpg differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/favicon.ico b/boards/ek-tm4c1294xl/enet_lwip/fs/favicon.ico new file mode 100644 index 0000000..d14b5d9 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/fs/favicon.ico differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/index.htm b/boards/ek-tm4c1294xl/enet_lwip/fs/index.htm new file mode 100644 index 0000000..8998aaf --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/fs/index.htm @@ -0,0 +1,54 @@ + + + + + EK-TM4C1294XL Evaluation Kit + + + + + +
      + + + + + + +
      + + Texas Instruments + + +
      + Tiva™ C Series TM4C1294XL Evaluation Kit +
      +
      + EK-TM4C1294XL +
      +
      + + TM4C + +
      +

      +
      + +
      +
      +
      +

      + Copyright © 2013-2014 Texas Instruments Incorporated. All rights reserved. +
      + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/javascript.js b/boards/ek-tm4c1294xl/enet_lwip/fs/javascript.js new file mode 100644 index 0000000..e492c23 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/fs/javascript.js @@ -0,0 +1,53 @@ + + +window.onload = function() +{ + document.getElementById('about').onclick = loadAbout; + document.getElementById('overview').onclick = loadOverview; + document.getElementById('block').onclick = loadBlock; + + loadPage("about.htm"); +} + +function loadAbout() +{ + loadPage("about.htm"); + return false; +} + +function loadOverview() +{ + loadPage("overview.htm"); + return false; +} + +function loadBlock() +{ + loadPage("block.htm"); + return false; +} + +function loadPage(page) +{ + if(window.XMLHttpRequest) + { + xmlhttp = new XMLHttpRequest(); + } + else + { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } + + xmlhttp.open("GET", page, true); + xmlhttp.setRequestHeader("Content-type", + "application/x-www-form-urlencoded"); + xmlhttp.send(); + + xmlhttp.onreadystatechange = function () + { + if((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) + { + document.getElementById("content").innerHTML = xmlhttp.responseText; + } + } +} diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/overview.htm b/boards/ek-tm4c1294xl/enet_lwip/fs/overview.htm new file mode 100644 index 0000000..02b3387 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/fs/overview.htm @@ -0,0 +1,29 @@ + + + + +EK-TM4C1294XL Evaluation Kit + + + + +

      Tiva™ C Series Product Line

      +
      +
      +As the first ARM® Cortex™-M4 microcontrollers (MCUs) to be +implemented on TI's proprietary 65-nm process technology, the Tiva C Series +provides customers an opportunity to increase their connectivity integration +without sacrificing price, performance, or power consumption. Every C Series +MCU integrates a floating-point core and high-performance analog while still +providing low-power modes to offer a great set of functional options. Today's +engineers understand that designs require more than hardware alone. Often, the +greatest challenge is software and +TivaWare for C Series is a +free library of C files that include both peripheral-level and +application-level code in source and in ROM for every Tiva C Series MCU. This +offering delivers USB, CAN, graphics, and sensor application libraries so +customers can focus their efforts on building applications instead of +programming their connectivity peripherals. The Tiva C Series provides an +excellent baseline for home, building, and industrial applications. + + diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/styles.css b/boards/ek-tm4c1294xl/enet_lwip/fs/styles.css new file mode 100644 index 0000000..3403359 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/fs/styles.css @@ -0,0 +1,104 @@ +/* Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. */ + +/* Styling for the entire document. */ +body +{ + background-color: white; + color: black; + font-family: Ariel,Helvetica,sans-serif; +} + +/* Styling for the heading div. */ +#heading +{ + clear: both; + margin-bottom: 10px; +} + +#heading_h1 +{ + font-size: 2em; + font-weight: bold; + text-align: center; +} + +#heading_h2 +{ + font-size: 1.25em; + font-weight: bold; + text-align: center; +} + +#heading hr +{ + border-bottom: 1px solid #ff0000; + border-top: 1px solid #ff0000; +} + +#heading a img +{ + border: 0; +} + +/* Styling for the menu div. */ +#menu +{ + float: left; + margin-bottom: 10px; + width: 225px; +} + +#menu ul +{ + list-style-type: none; + margin: 0; + padding: 0; +} + +#menu a:link, #menu a:visited +{ + background-color: #ff0000; + color: #ffffff; + display: block; + font-weight: bold; + margin-bottom: 2px; + margin-top: 2px; + padding: 4px; + text-align: center; + text-decoration: none; + width: 200px; +} + +#menu a:hover, #menu a:active +{ + background-color: #bf0000; +} + +/* Styling for the content div. */ +#content +{ + margin-bottom: 10px; + margin-left: 225px; +} + +#content_heading +{ + font-size: 1.5em; + font-weight: bold; + text-align: center; +} + +/* Styling for the footing div. */ +#footing +{ + clear: both; + font-size: .75em; + font-style: italic; + text-align: right; +} + +#footing hr +{ + border-bottom: 1px solid #ff0000; + border-top: 1px solid #ff0000; +} diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/ti.jpg b/boards/ek-tm4c1294xl/enet_lwip/fs/ti.jpg new file mode 100644 index 0000000..5d1669c Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/fs/ti.jpg differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/fs/tm4c.jpg b/boards/ek-tm4c1294xl/enet_lwip/fs/tm4c.jpg new file mode 100644 index 0000000..1672a1d Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/fs/tm4c.jpg differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/gcc/enet_lwip.axf b/boards/ek-tm4c1294xl/enet_lwip/gcc/enet_lwip.axf new file mode 100644 index 0000000..0d6ef0c Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/gcc/enet_lwip.axf differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/gcc/enet_lwip.bin b/boards/ek-tm4c1294xl/enet_lwip/gcc/enet_lwip.bin new file mode 100644 index 0000000..9c4d6a1 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/gcc/enet_lwip.bin differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/lwipopts.h b/boards/ek-tm4c1294xl/enet_lwip/lwipopts.h new file mode 100644 index 0000000..e303773 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/lwipopts.h @@ -0,0 +1,441 @@ +//***************************************************************************** +// +// lwipopts.h - Configuration file for lwIP +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +// +// NOTE: This file has been derived from the lwIP/src/include/lwip/opt.h +// header file. +// +// For additional details, refer to the original "opt.h" file, and lwIP +// documentation. +// +//***************************************************************************** + +#ifndef __LWIPOPTS_H__ +#define __LWIPOPTS_H__ + +//***************************************************************************** +// +// ---------- Stellaris / lwIP Port Options ---------- +// +//***************************************************************************** +#define HOST_TMR_INTERVAL 100 // default is 0 +//#define DHCP_EXPIRE_TIMER_MSECS (60 * 1000) +//#define LWIP_HTTPD_SSI 1 +//#define LWIP_HTTPD_CGI 1 +#define LWIP_HTTPD_DYNAMIC_HEADERS 1 +//#define HTTPD_DEBUG LWIP_DBG_ON +#define EMAC_PHY_CONFIG (EMAC_PHY_TYPE_INTERNAL | EMAC_PHY_INT_MDIX_EN | \ + EMAC_PHY_AN_100B_T_FULL_DUPLEX) +#define PHY_PHYS_ADDR 0 +#define NUM_TX_DESCRIPTORS 24 +#define NUM_RX_DESCRIPTORS 8 + +//***************************************************************************** +// +// ---------- Platform specific locking ---------- +// +//***************************************************************************** +#define SYS_LIGHTWEIGHT_PROT 1 // default is 0 +#define NO_SYS 1 // default is 0 +//#define MEMCPY(dst,src,len) memcpy(dst,src,len) +//#define SMEMCPY(dst,src,len) memcpy(dst,src,len) + +//***************************************************************************** +// +// ---------- Memory options ---------- +// +//***************************************************************************** +//#define MEM_LIBC_MALLOC 0 +#define MEM_ALIGNMENT 4 +#define MEM_SIZE (64 * 1024) +//#define MEMP_OVERFLOW_CHECK 0 +//#define MEMP_SANITY_CHECK 0 +//#define MEM_USE_POOLS 0 +//#define MEMP_USE_CUSTOM_POOLS 0 + +//***************************************************************************** +// +// ---------- Internal Memory Pool Sizes ---------- +// +//***************************************************************************** +#define MEMP_NUM_PBUF 48 // Default 16 +//#define MEMP_NUM_RAW_PCB 4 +//#define MEMP_NUM_UDP_PCB 4 +#define MEMP_NUM_TCP_PCB 16 // Default 5 +//#define MEMP_NUM_TCP_PCB_LISTEN 8 +//#define MEMP_NUM_TCP_SEG 16 +//#define MEMP_NUM_REASSDATA 5 +//#define MEMP_NUM_ARP_QUEUE 30 +//#define MEMP_NUM_IGMP_GROUP 8 +#define MEMP_NUM_SYS_TIMEOUT 8 +//#define MEMP_NUM_NETBUF 2 +//#define MEMP_NUM_NETCONN 4 +//#define MEMP_NUM_TCPIP_MSG_API 8 +//#define MEMP_NUM_TCPIP_MSG_INPKT 8 +#define PBUF_POOL_SIZE 48 // Default 16 + +//***************************************************************************** +// +// ---------- ARP options ---------- +// +//***************************************************************************** +//#define LWIP_ARP 1 +//#define ARP_TABLE_SIZE 10 +//#define ARP_QUEUEING 1 +//#define ETHARP_TRUST_IP_MAC 1 + +//***************************************************************************** +// +// ---------- IP options ---------- +// +//***************************************************************************** +//#define IP_FORWARD 0 +//#define IP_OPTIONS_ALLOWED 1 +#define IP_REASSEMBLY 0 // default is 1 +#define IP_FRAG 0 // default is 1 +//#define IP_REASS_MAXAGE 3 +//#define IP_REASS_MAX_PBUFS 10 +//#define IP_FRAG_USES_STATIC_BUF 1 +//#define IP_FRAG_MAX_MTU 1500 +//#define IP_DEFAULT_TTL 255 + +//***************************************************************************** +// +// ---------- ICMP options ---------- +// +//***************************************************************************** +//#define LWIP_ICMP 1 +//#define ICMP_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- RAW options ---------- +// +//***************************************************************************** +//#define LWIP_RAW 1 +//#define RAW_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- DHCP options ---------- +// +//***************************************************************************** +#define LWIP_DHCP 1 // default is 0 +//#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP)) + +//***************************************************************************** +// +// ---------- UPNP options ---------- +// +//***************************************************************************** +//#define LWIP_UPNP 0 + +//***************************************************************************** +// +// ---------- PTPD options ---------- +// +//***************************************************************************** +//#define LWIP_PTPD 0 + +//***************************************************************************** +// +// ---------- AUTOIP options ---------- +// +//***************************************************************************** +#define LWIP_AUTOIP 1 // default is 0 +#define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP) && (LWIP_AUTOIP)) + // default is 0 +#define LWIP_DHCP_AUTOIP_COOP_TRIES 5 // default is 9 + +//***************************************************************************** +// +// ---------- SNMP options ---------- +// +//***************************************************************************** +//#define LWIP_SNMP 0 +//#define SNMP_CONCURRENT_REQUESTS 1 +//#define SNMP_TRAP_DESTINATIONS 1 +//#define SNMP_PRIVATE_MIB 0 +//#define SNMP_SAFE_REQUESTS 1 + +//***************************************************************************** +// +// ---------- IGMP options ---------- +// +//***************************************************************************** +//#define LWIP_IGMP 0 + +//***************************************************************************** +// +// ---------- DNS options ----------- +// +//***************************************************************************** +//#define LWIP_DNS 0 +//#define DNS_TABLE_SIZE 4 +//#define DNS_MAX_NAME_LENGTH 256 +//#define DNS_MAX_SERVERS 2 +//#define DNS_DOES_NAME_CHECK 1 +//#define DNS_USES_STATIC_BUF 1 +//#define DNS_MSG_SIZE 512 + +//***************************************************************************** +// +// ---------- UDP options ---------- +// +//***************************************************************************** +//#define LWIP_UDP 1 +//#define LWIP_UDPLITE 0 +//#define UDP_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- TCP options ---------- +// +//***************************************************************************** +#define LWIP_TCP 1 +//#define TCP_TTL (IP_DEFAULT_TTL) +#define TCP_WND 4096 // default is 2048 +//#define TCP_MAXRTX 12 +//#define TCP_SYNMAXRTX 6 +//#define TCP_QUEUE_OOSEQ 1 +#define TCP_MSS 1500 // default is 128 +//#define TCP_CALCULATE_EFF_SEND_MSS 1 +#define TCP_SND_BUF (4 * TCP_MSS) + // default is 256, was 6 * +//#define TCP_SND_QUEUELEN (4 * (TCP_SND_BUF/TCP_MSS)) +//#define TCP_SNDLOWAT (TCP_SND_BUF/2) +//#define TCP_LISTEN_BACKLOG 0 +//#define TCP_DEFAULT_LISTEN_BACKLOG 0xff + +//***************************************************************************** +// +// ---------- API options ---------- +// +//***************************************************************************** +//#define LWIP_EVENT_API 0 +//#define LWIP_CALLBACK_API 1 + +//***************************************************************************** +// +// ---------- Pbuf options ---------- +// +//***************************************************************************** +#define PBUF_LINK_HLEN 16 // default is 14 +#define PBUF_POOL_BUFSIZE 512 + // PBUF_POOL_BUFSIZE default is + // LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN) +#define ETH_PAD_SIZE 0 // default is 0 + +//***************************************************************************** +// +// ---------- Network Interfaces options ---------- +// +//***************************************************************************** +//#define LWIP_NETIF_HOSTNAME 0 +//#define LWIP_NETIF_API 0 +//#define LWIP_NETIF_STATUS_CALLBACK 0 +//#define LWIP_NETIF_LINK_CALLBACK 0 +//#define LWIP_NETIF_HWADDRHINT 0 + +//***************************************************************************** +// +// ---------- LOOPIF options ---------- +// +//***************************************************************************** +//#define LWIP_HAVE_LOOPIF 0 +//#define LWIP_LOOPIF_MULTITHREADING 1 + +//***************************************************************************** +// +// ---------- Thread options ---------- +// +//***************************************************************************** +//#define TCPIP_THREAD_NAME "tcpip_thread" +//#define TCPIP_THREAD_STACKSIZE 0 +//#define TCPIP_THREAD_PRIO 1 +//#define TCPIP_MBOX_SIZE 0 +//#define SLIPIF_THREAD_NAME "slipif_loop" +//#define SLIPIF_THREAD_STACKSIZE 0 +//#define SLIPIF_THREAD_PRIO 1 +//#define PPP_THREAD_NAME "pppMain" +//#define PPP_THREAD_STACKSIZE 0 +//#define PPP_THREAD_PRIO 1 +//#define DEFAULT_THREAD_NAME "lwIP" +//#define DEFAULT_THREAD_STACKSIZE 0 +//#define DEFAULT_THREAD_PRIO 1 +//#define DEFAULT_RAW_RECVMBOX_SIZE 0 +//#define DEFAULT_UDP_RECVMBOX_SIZE 0 +//#define DEFAULT_TCP_RECVMBOX_SIZE 0 +//#define DEFAULT_ACCEPTMBOX_SIZE 0 + +//***************************************************************************** +// +// ---------- Sequential layer options ---------- +// +//***************************************************************************** +//#define LWIP_TCPIP_CORE_LOCKING 0 +#define LWIP_NETCONN 0 // default is 1 + +//***************************************************************************** +// +// ---------- Socket Options ---------- +// +//***************************************************************************** +#define LWIP_SOCKET 0 // default is 1 +//#define LWIP_COMPAT_SOCKETS 1 +//#define LWIP_POSIX_SOCKETS_IO_NAMES 1 +//#define LWIP_TCP_KEEPALIVE 0 +//#define LWIP_SO_RCVTIMEO 0 +//#define LWIP_SO_RCVBUF 0 +//#define SO_REUSE 0 + +//***************************************************************************** +// +// ---------- Statistics options ---------- +// +//***************************************************************************** +//#define LWIP_STATS 1 +//#define LWIP_STATS_DISPLAY 0 +//#define LINK_STATS 1 +//#define ETHARP_STATS (LWIP_ARP) +//#define IP_STATS 1 +//#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG) +//#define ICMP_STATS 1 +//#define IGMP_STATS (LWIP_IGMP) +//#define UDP_STATS (LWIP_UDP) +//#define TCP_STATS (LWIP_TCP) +//#define MEM_STATS 1 +//#define MEMP_STATS 1 +//#define SYS_STATS 1 + +//***************************************************************************** +// +// ---------- PPP options ---------- +// +//***************************************************************************** +//#define PPP_SUPPORT 0 +//#define PPPOE_SUPPORT 0 +//#define PPPOS_SUPPORT PPP_SUPPORT + +#if PPP_SUPPORT +//#define NUM_PPP 1 +//#define PAP_SUPPORT 0 +//#define CHAP_SUPPORT 0 +//#define MSCHAP_SUPPORT 0 +//#define CBCP_SUPPORT 0 +//#define CCP_SUPPORT 0 +//#define VJ_SUPPORT 0 +//#define MD5_SUPPORT 0 +//#define FSM_DEFTIMEOUT 6 +//#define FSM_DEFMAXTERMREQS 2 +//#define FSM_DEFMAXCONFREQS 10 +//#define FSM_DEFMAXNAKLOOPS 5 +//#define UPAP_DEFTIMEOUT 6 +//#define UPAP_DEFREQTIME 30 +//#define CHAP_DEFTIMEOUT 6 +//#define CHAP_DEFTRANSMITS 10 +//#define LCP_ECHOINTERVAL 0 +//#define LCP_MAXECHOFAILS 3 +//#define PPP_MAXIDLEFLAG 100 + +//#define PPP_MAXMTU 1500 +//#define PPP_DEFMRU 296 +#endif + +//***************************************************************************** +// +// ---------- checksum options ---------- +// +//***************************************************************************** +#define CHECKSUM_GEN_IP 0 +#define CHECKSUM_GEN_ICMP 0 +#define CHECKSUM_GEN_UDP 0 +#define CHECKSUM_GEN_TCP 0 +#define CHECKSUM_CHECK_IP 0 +#define CHECKSUM_CHECK_UDP 0 +#define CHECKSUM_CHECK_TCP 0 + +//***************************************************************************** +// +// ---------- Debugging options ---------- +// +//***************************************************************************** +#if 0 +#define U8_F "c" +#define S8_F "c" +#define X8_F "x" +#define U16_F "u" +#define S16_F "d" +#define X16_F "x" +#define U32_F "u" +#define S32_F "d" +#define X32_F "x" +extern void UARTprintf(const char *pcString, ...); +#define LWIP_DEBUG +#endif + +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF +#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_WARNING +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_SERIOUS +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_SEVERE + +//#define LWIP_DBG_TYPES_ON LWIP_DBG_ON +#define LWIP_DBG_TYPES_ON (LWIP_DBG_ON|LWIP_DBG_TRACE| \ + LWIP_DBG_STATE|LWIP_DBG_FRESH) + +//#define ETHARP_DEBUG LWIP_DBG_ON // default is OFF +//#define NETIF_DEBUG LWIP_DBG_ON // default is OFF +//#define PBUF_DEBUG LWIP_DBG_OFF +//#define API_LIB_DEBUG LWIP_DBG_OFF +//#define API_MSG_DEBUG LWIP_DBG_OFF +//#define SOCKETS_DEBUG LWIP_DBG_OFF +//#define ICMP_DEBUG LWIP_DBG_OFF +//#define IGMP_DEBUG LWIP_DBG_OFF +//#define INET_DEBUG LWIP_DBG_OFF +//#define IP_DEBUG LWIP_DBG_ON // default is OFF +//#define IP_REASS_DEBUG LWIP_DBG_OFF +//#define RAW_DEBUG LWIP_DBG_OFF +//#define MEM_DEBUG LWIP_DBG_OFF +//#define MEMP_DEBUG LWIP_DBG_OFF +//#define SYS_DEBUG LWIP_DBG_OFF +//#define TCP_DEBUG LWIP_DBG_OFF +//#define TCP_INPUT_DEBUG LWIP_DBG_OFF +//#define TCP_FR_DEBUG LWIP_DBG_OFF +//#define TCP_RTO_DEBUG LWIP_DBG_OFF +//#define TCP_CWND_DEBUG LWIP_DBG_OFF +//#define TCP_WND_DEBUG LWIP_DBG_OFF +//#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF +//#define TCP_RST_DEBUG LWIP_DBG_OFF +//#define TCP_QLEN_DEBUG LWIP_DBG_OFF +//#define UDP_DEBUG LWIP_DBG_ON // default is OFF +//#define TCPIP_DEBUG LWIP_DBG_OFF +//#define PPP_DEBUG LWIP_DBG_OFF +//#define SLIP_DEBUG LWIP_DBG_OFF +//#define DHCP_DEBUG LWIP_DBG_ON // default is OFF +//#define AUTOIP_DEBUG LWIP_DBG_OFF +//#define SNMP_MSG_DEBUG LWIP_DBG_OFF +//#define SNMP_MIB_DEBUG LWIP_DBG_OFF +//#define DNS_DEBUG LWIP_DBG_OFF + +#endif /* __LWIPOPTS_H__ */ diff --git a/boards/ek-tm4c1294xl/enet_lwip/readme.txt b/boards/ek-tm4c1294xl/enet_lwip/readme.txt new file mode 100644 index 0000000..7a15239 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/readme.txt @@ -0,0 +1,36 @@ +Ethernet with lwIP + +This example application demonstrates the operation of the Tiva +Ethernet controller using the lwIP TCP/IP Stack. DHCP is used to obtain +an Ethernet address. If DHCP times out without obtaining an address, +AutoIP will be used to obtain a link-local address. The address that is +selected will be shown on the UART. + +UART0, connected to the ICDI virtual COM port and running at 115,200, +8-N-1, is used to display messages from this application. Use the +following command to re-build the any file system files that change. + + ../../../../tools/bin/makefsfile -i fs -o enet_fsdata.h -r -h -q + +For additional details on lwIP, refer to the lwIP web page at: +http://savannah.nongnu.org/projects/lwip/ + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/enet_lwip/rvmdk/enet_lwip.axf b/boards/ek-tm4c1294xl/enet_lwip/rvmdk/enet_lwip.axf new file mode 100644 index 0000000..2aea5c7 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/rvmdk/enet_lwip.axf differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/rvmdk/enet_lwip.bin b/boards/ek-tm4c1294xl/enet_lwip/rvmdk/enet_lwip.bin new file mode 100644 index 0000000..ac0e6d7 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_lwip/rvmdk/enet_lwip.bin differ diff --git a/boards/ek-tm4c1294xl/enet_lwip/startup_ccs.c b/boards/ek-tm4c1294xl/enet_lwip/startup_ccs.c new file mode 100644 index 0000000..85df0f0 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/startup_ccs.c @@ -0,0 +1,276 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_lwip/startup_ewarm.c b/boards/ek-tm4c1294xl/enet_lwip/startup_ewarm.c new file mode 100644 index 0000000..3717eb7 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/startup_ewarm.c @@ -0,0 +1,307 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[512] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_lwip/startup_gcc.c b/boards/ek-tm4c1294xl/enet_lwip/startup_gcc.c new file mode 100644 index 0000000..4943e38 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/startup_gcc.c @@ -0,0 +1,323 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[512]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_lwip/startup_rvmdk.S b/boards/ek-tm4c1294xl/enet_lwip/startup_rvmdk.S new file mode 100644 index 0000000..2a1464f --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_lwip/startup_rvmdk.S @@ -0,0 +1,332 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000800 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN lwIPEthernetIntHandler + EXTERN SysTickIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD lwIPEthernetIntHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/enet_uip/Makefile b/boards/ek-tm4c1294xl/enet_uip/Makefile new file mode 100644 index 0000000..e155189 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/Makefile @@ -0,0 +1,103 @@ +#****************************************************************************** +# +# Makefile - Rules for building the Ethernet with uIP. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=. +VPATH+=../../../../third_party/uip-1.0/apps/dhcpc +VPATH+=../drivers +VPATH+=../../../../third_party/uip-1.0/apps/httpd +VPATH+=../../../../third_party/uip-1.0/uip +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=. +IPATH+=.. +IPATH+=../../../.. +IPATH+=../../../../third_party/uip-1.0/apps +IPATH+=../../../../third_party/uip-1.0/uip +IPATH+=../../../../third_party/uip-1.0 +IPATH+=../../../../utils + +# +# The default rule, which causes the Ethernet with uIP to be built. +# +all: ${COMPILER} +all: ${COMPILER}/enet_uip.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the Ethernet with uIP. +# +${COMPILER}/enet_uip.axf: ${COMPILER}/dhcpc.o +${COMPILER}/enet_uip.axf: ${COMPILER}/enet_uip.o +${COMPILER}/enet_uip.axf: ${COMPILER}/httpd.o +${COMPILER}/enet_uip.axf: ${COMPILER}/pinout.o +${COMPILER}/enet_uip.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/enet_uip.axf: ${COMPILER}/uartstdio.o +${COMPILER}/enet_uip.axf: ${COMPILER}/uip.o +${COMPILER}/enet_uip.axf: ${COMPILER}/uip_arp.o +${COMPILER}/enet_uip.axf: ${COMPILER}/uip_timer.o +${COMPILER}/enet_uip.axf: ${COMPILER}/ustdlib.o +${COMPILER}/enet_uip.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/enet_uip.axf: enet_uip.ld +SCATTERgcc_enet_uip=enet_uip.ld +ENTRY_enet_uip=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 -DDEBUG_OUTPUT -DUIP_OFFLOAD_ICMP_CHKSUM + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/enet_uip/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/enet_uip/ccs/.ccsimportspec new file mode 100644 index 0000000..a415eb8 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/ccs/.ccsimportspec @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_uip/ccs/.ccsproject b/boards/ek-tm4c1294xl/enet_uip/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_uip/ccs/.cproject b/boards/ek-tm4c1294xl/enet_uip/ccs/.cproject new file mode 100644 index 0000000..b1eb80c --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/ccs/.cproject @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_uip/ccs/.project b/boards/ek-tm4c1294xl/enet_uip/ccs/.project new file mode 100644 index 0000000..0c0726d --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/ccs/.project @@ -0,0 +1,90 @@ + + + enet_uip + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + enet_uip.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_uip/enet_uip.c + + + enet_uip_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_uip/enet_uip_ccs.cmd + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_uip/startup_ccs.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + third_party/uip-1.0/uip/uip.c + 1 + SW_ROOT/third_party/uip-1.0/uip/uip.c + + + third_party/uip-1.0/uip/uip_arp.c + 1 + SW_ROOT/third_party/uip-1.0/uip/uip_arp.c + + + third_party/uip-1.0/uip/uip_timer.c + 1 + SW_ROOT/third_party/uip-1.0/uip/uip_timer.c + + + third_party/uip-1.0/apps/dhcpc/dhcpc.c + 1 + SW_ROOT/third_party/uip-1.0/apps/dhcpc/dhcpc.c + + + third_party/uip-1.0/apps/httpd/httpd.c + 1 + SW_ROOT/third_party/uip-1.0/apps/httpd/httpd.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/enet_uip/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/enet_uip/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/enet_uip/ccs/Debug/enet_uip.bin b/boards/ek-tm4c1294xl/enet_uip/ccs/Debug/enet_uip.bin new file mode 100644 index 0000000..ca45fbc Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_uip/ccs/Debug/enet_uip.bin differ diff --git a/boards/ek-tm4c1294xl/enet_uip/ccs/Debug/enet_uip.out b/boards/ek-tm4c1294xl/enet_uip/ccs/Debug/enet_uip.out new file mode 100644 index 0000000..84653e9 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_uip/ccs/Debug/enet_uip.out differ diff --git a/boards/ek-tm4c1294xl/enet_uip/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/enet_uip/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/enet_uip/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/enet_uip/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_uip/clock-arch.h b/boards/ek-tm4c1294xl/enet_uip/clock-arch.h new file mode 100644 index 0000000..e327bf6 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/clock-arch.h @@ -0,0 +1,41 @@ +//***************************************************************************** +// +// clock-arch.h - uIP Project Specific Clock-Architecture header file. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __CLOCK_ARCH_H__ +#define __CLOCK_ARCH_H__ + +#include + +// +// Define how many clock ticks in one second. +// Note: This should match the value of SYSTICKHZ in the main program. +// +#define CLOCK_CONF_SECOND 100 + +// +// Define the clock type used for returning system ticks. +// +typedef uint32_t clock_time_t; + +#endif // __CLOCK_ARCH_H__ diff --git a/boards/ek-tm4c1294xl/enet_uip/enet_uip.c b/boards/ek-tm4c1294xl/enet_uip/enet_uip.c new file mode 100644 index 0000000..2e77361 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/enet_uip.c @@ -0,0 +1,947 @@ +//***************************************************************************** +// +// enet_uip.c - Sample WebServer Application for Ethernet Demo +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_emac.h" +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/emac.h" +#include "driverlib/flash.h" +#include "driverlib/interrupt.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "utils/uartstdio.h" +#include "utils/ustdlib.h" +#include "uip/uip.h" +#include "uip/uip_arp.h" +#include "httpd/httpd.h" +#include "dhcpc/dhcpc.h" +#include "drivers/pinout.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      Ethernet with uIP (enet_uip)

      +//! +//! This example application demonstrates the operation of the Tiva C Series +//! Ethernet controller using the uIP TCP/IP Stack. DHCP is used to obtain +//! an Ethernet address. A basic web site is served over the Ethernet port. +//! The web site displays a few lines of text, and a counter that increments +//! each time the page is sent. +//! +//! UART0, connected to the ICDI virtual COM port and running at 115,200, +//! 8-N-1, is used to display messages from this application. +//! +//! For additional details on uIP, refer to the uIP web page at: +//! http://www.sics.se/~adam/uip/ +// +//***************************************************************************** + +//***************************************************************************** +// +// Defines for setting up the system clock. +// +//***************************************************************************** +#define SYSTICKHZ CLOCK_CONF_SECOND +#define SYSTICKMS (1000 / SYSTICKHZ) +#define SYSTICKUS (1000000 / SYSTICKHZ) +#define SYSTICKNS (1000000000 / SYSTICKHZ) + +//***************************************************************************** +// +// Macro for accessing the Ethernet header information in the buffer. +// +//***************************************************************************** +u8_t g_pui8UIPBuffer[UIP_BUFSIZE + 2]; +u8_t *uip_buf = g_pui8UIPBuffer; + +#define BUF ((struct uip_eth_hdr *)uip_buf) + +//***************************************************************************** +// +// Ethernet DMA descriptors. +// +// Although uIP uses a single buffer, the MAC hardware needs a minimum of +// 3 receive descriptors to operate. +// +//***************************************************************************** +#define NUM_TX_DESCRIPTORS 3 +#define NUM_RX_DESCRIPTORS 3 +tEMACDMADescriptor g_psRxDescriptor[NUM_TX_DESCRIPTORS]; +tEMACDMADescriptor g_psTxDescriptor[NUM_RX_DESCRIPTORS]; + +uint32_t g_ui32RxDescIndex; +uint32_t g_ui32TxDescIndex; + +//***************************************************************************** +// +// Transmit and receive buffers. +// +//***************************************************************************** +#define RX_BUFFER_SIZE 1536 +#define TX_BUFFER_SIZE 1536 +uint8_t g_pui8RxBuffer[RX_BUFFER_SIZE]; +uint8_t g_pui8TxBuffer[TX_BUFFER_SIZE]; + +//***************************************************************************** +// +// A set of flags. The flag bits are defined as follows: +// +// 0 -> An indicator that a SysTick interrupt has occurred. +// 1 -> An RX Packet has been received. +// 2 -> A TX packet DMA transfer is pending. +// 3 -> A RX packet DMA transfer is pending. +// +//***************************************************************************** +#define FLAG_SYSTICK 0 +#define FLAG_RXPKT 1 +#define FLAG_TXPKT 2 +#define FLAG_RXPKTPEND 3 +static volatile uint32_t g_ui32Flags; + +//***************************************************************************** +// +// A system tick counter, incremented every SYSTICKMS. +// +//***************************************************************************** +volatile uint32_t g_ui32TickCounter = 0; + +//***************************************************************************** +// +// Default TCP/IP Settings for this application. +// +// Default to Link Local address ... (169.254.1.0 to 169.254.254.255). Note: +// This application does not implement the Zeroconf protocol. No ARP query is +// issued to determine if this static IP address is already in use. +// +// Uncomment the following #define statement to enable STATIC IP +// instead of DHCP. +// +//***************************************************************************** +//#define USE_STATIC_IP + +#ifndef DEFAULT_IPADDR0 +#define DEFAULT_IPADDR0 169 +#endif + +#ifndef DEFAULT_IPADDR1 +#define DEFAULT_IPADDR1 254 +#endif + +#ifndef DEFAULT_IPADDR2 +#define DEFAULT_IPADDR2 19 +#endif + +#ifndef DEFAULT_IPADDR3 +#define DEFAULT_IPADDR3 63 +#endif + +#ifndef DEFAULT_NETMASK0 +#define DEFAULT_NETMASK0 255 +#endif + +#ifndef DEFAULT_NETMASK1 +#define DEFAULT_NETMASK1 255 +#endif + +#ifndef DEFAULT_NETMASK2 +#define DEFAULT_NETMASK2 0 +#endif + +#ifndef DEFAULT_NETMASK3 +#define DEFAULT_NETMASK3 0 +#endif + +//***************************************************************************** +// +// UIP Timers (in MS) +// +//***************************************************************************** +#define UIP_PERIODIC_TIMER_MS 500 +#define UIP_ARP_TIMER_MS 10000 + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} + +//***************************************************************************** +// +// The interrupt handler for the SysTick interrupt. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + // + // Increment the system tick count. + // + g_ui32TickCounter++; + + // + // Indicate that a SysTick interrupt has occurred. + // + HWREGBITW(&g_ui32Flags, FLAG_SYSTICK) = 1; +} + +//***************************************************************************** +// +// When using the timer module in UIP, this function is required to return +// the number of ticks. Note that the file "clock-arch.h" must be provided +// by the application, and define CLOCK_CONF_SECONDS as the number of ticks +// per second, and must also define the typedef "clock_time_t". +// +//***************************************************************************** +clock_time_t +clock_time(void) +{ + return((clock_time_t)g_ui32TickCounter); +} + +//***************************************************************************** +// +// Display a status string on the LCD and also transmit it via the serial port. +// +//***************************************************************************** +void +UpdateStatus(char *pcStatus) +{ + // + // Dump that status string to the serial port. + // + UARTprintf("%s\n", pcStatus); +} + +//***************************************************************************** +// +// Display the current IP address on the screen and transmit it via the UART. +// +//***************************************************************************** +void +ShowIPAddress(const uip_ipaddr_t sIPAddr) +{ + char pcBuffer[24]; + + usprintf(pcBuffer, "IP: %d.%d.%d.%d", sIPAddr[0] & 0xff, + sIPAddr[0] >> 8, sIPAddr[1] & 0xff, sIPAddr[1] >> 8); + UpdateStatus(pcBuffer); +} + +//***************************************************************************** +// +// The interrupt handler for the Ethernet interrupt. +// +//***************************************************************************** +void +EthernetIntHandler(void) +{ + uint32_t ui32Temp; + + // + // Read and Clear the interrupt. + // + ui32Temp = ROM_EMACIntStatus(EMAC0_BASE, true); + ROM_EMACIntClear(EMAC0_BASE, ui32Temp); + + // + // Check to see if an RX Interrupt has occurred. + // + if(ui32Temp & EMAC_INT_RECEIVE) + { + // + // Indicate that a packet has been received. + // + HWREGBITW(&g_ui32Flags, FLAG_RXPKT) = 1; + } + + // + // Has the DMA finished transferring a packet to the transmitter? + // + if(ui32Temp & EMAC_INT_TRANSMIT) + { + // + // Indicate that a packet has been sent. + // + HWREGBITW(&g_ui32Flags, FLAG_TXPKT) = 0; + } +} + +//***************************************************************************** +// +// Callback for when DHCP client has been configured. +// +//***************************************************************************** +void +dhcpc_configured(const struct dhcpc_state *s) +{ + uip_sethostaddr(&s->ipaddr); + uip_setnetmask(&s->netmask); + uip_setdraddr(&s->default_router); + ShowIPAddress(s->ipaddr); +} + +//***************************************************************************** +// +// Read a packet from the DMA receive buffer into the uIP packet buffer. +// +//***************************************************************************** +int32_t +PacketReceive(uint32_t ui32Base, uint8_t *pui8Buf, int32_t i32BufLen) +{ + int_fast32_t i32FrameLen, i32Loop; + + // + // Check the arguments. + // + ASSERT(ui32Base == EMAC0_BASE); + ASSERT(pui8Buf != 0); + ASSERT(i32BufLen > 0); + + // + // By default, we assume we got a bad frame. + // + i32FrameLen = 0; + + // + // Make sure that we own the receive descriptor. + // + if(!(g_psRxDescriptor[g_ui32RxDescIndex].ui32CtrlStatus & DES0_RX_CTRL_OWN)) + { + // + // We own the receive descriptor so check to see if it contains a valid + // frame. Look for a descriptor error, indicating that the incoming + // packet was truncated or, if this is the last frame in a packet, + // the receive error bit. + // + if(!(g_psRxDescriptor[g_ui32RxDescIndex].ui32CtrlStatus & + DES0_RX_STAT_ERR)) + { + // + // We have a valid frame so copy the content to the supplied + // buffer. First check that the "last descriptor" flag is set. We + // sized the receive buffer such that it can always hold a valid + // frame so this flag should never be clear at this point but... + // + if(g_psRxDescriptor[g_ui32RxDescIndex].ui32CtrlStatus & + DES0_RX_STAT_LAST_DESC) + { + i32FrameLen = + ((g_psRxDescriptor[g_ui32RxDescIndex].ui32CtrlStatus & + DES0_RX_STAT_FRAME_LENGTH_M) >> + DES0_RX_STAT_FRAME_LENGTH_S); + + // + // Sanity check. This shouldn't be required since we sized the + // uIP buffer such that it's the same size as the DMA receive + // buffer but, just in case... + // + if(i32FrameLen > i32BufLen) + { + i32FrameLen = i32BufLen; + } + + // + // Copy the data from the DMA receive buffer into the provided + // frame buffer. + // + for(i32Loop = 0; i32Loop < i32FrameLen; i32Loop++) + { + pui8Buf[i32Loop] = g_pui8RxBuffer[i32Loop]; + } + } + } + + // + // Move on to the next descriptor in the chain. + // + g_ui32RxDescIndex++; + if(g_ui32RxDescIndex == NUM_RX_DESCRIPTORS) + { + g_ui32RxDescIndex = 0; + } + + // + // Mark the next descriptor in the ring as available for the receiver + // to write into. + // + g_psRxDescriptor[g_ui32RxDescIndex].ui32CtrlStatus = DES0_RX_CTRL_OWN; + } + + // + // Return the Frame Length + // + return(i32FrameLen); +} + +//***************************************************************************** +// +// Transmit a packet from the supplied buffer. +// +//***************************************************************************** +static int32_t +PacketTransmit(uint32_t ui32Base, uint8_t *pui8Buf, int32_t i32BufLen) +{ + int_fast32_t i32Loop; + + // + // Indicate that a packet is being sent. + // + HWREGBITW(&g_ui32Flags, FLAG_TXPKT) = 1; + + // + // Wait for the previous packet to be transmitted. + // + while(g_psTxDescriptor[g_ui32TxDescIndex].ui32CtrlStatus & + DES0_TX_CTRL_OWN) + { + // + // Spin and waste time. + // + } + + // + // Check that we're not going to overflow the transmit buffer. This + // shouldn't be necessary since the uIP buffer is smaller than our DMA + // transmit buffer but, just in case... + // + if(i32BufLen > TX_BUFFER_SIZE) + { + i32BufLen = TX_BUFFER_SIZE; + } + + // + // Copy the packet data into the transmit buffer. + // + for(i32Loop = 0; i32Loop < i32BufLen; i32Loop++) + { + g_pui8TxBuffer[i32Loop] = pui8Buf[i32Loop]; + } + + // + // Move to the next descriptor. + // + g_ui32TxDescIndex++; + if(g_ui32TxDescIndex == NUM_TX_DESCRIPTORS) + { + g_ui32TxDescIndex = 0; + } + + // + // Fill in the packet size and tell the transmitter to start work. + // + g_psTxDescriptor[g_ui32TxDescIndex].ui32Count = (uint32_t)i32BufLen; + g_psTxDescriptor[g_ui32TxDescIndex].ui32CtrlStatus = + (DES0_TX_CTRL_LAST_SEG | DES0_TX_CTRL_FIRST_SEG | + DES0_TX_CTRL_INTERRUPT | DES0_TX_CTRL_IP_ALL_CKHSUMS | + DES0_TX_CTRL_CHAINED | DES0_TX_CTRL_OWN); + + // + // Tell the DMA to reacquire the descriptor now that we've filled it in. + // + ROM_EMACTxDMAPollDemand(EMAC0_BASE); + + // + // Return the number of bytes sent. + // + return(i32BufLen); +} + +//***************************************************************************** +// +// Initialize the transmit and receive DMA descriptors. We apparently need +// a minimum of 3 descriptors in each chain. This is overkill since uIP uses +// a single, common transmit and receive buffer so we tag each descriptor +// with the same buffer and will make sure we only hand the DMA one descriptor +// at a time. +// +//***************************************************************************** +void +InitDescriptors(uint32_t ui32Base) +{ + uint32_t ui32Loop; + + // + // Initialize each of the transmit descriptors. Note that we leave the OWN + // bit clear here since we have not set up any transmissions yet. + // + for(ui32Loop = 0; ui32Loop < NUM_TX_DESCRIPTORS; ui32Loop++) + { + g_psTxDescriptor[ui32Loop].ui32Count = + (DES1_TX_CTRL_SADDR_INSERT | + (TX_BUFFER_SIZE << DES1_TX_CTRL_BUFF1_SIZE_S)); + g_psTxDescriptor[ui32Loop].pvBuffer1 = g_pui8TxBuffer; + g_psTxDescriptor[ui32Loop].DES3.pLink = + (ui32Loop == (NUM_TX_DESCRIPTORS - 1)) ? + g_psTxDescriptor : &g_psTxDescriptor[ui32Loop + 1]; + g_psTxDescriptor[ui32Loop].ui32CtrlStatus = + (DES0_TX_CTRL_LAST_SEG | DES0_TX_CTRL_FIRST_SEG | + DES0_TX_CTRL_INTERRUPT | DES0_TX_CTRL_CHAINED | + DES0_TX_CTRL_IP_ALL_CKHSUMS); + } + + // + // Initialize each of the receive descriptors. We clear the OWN bit here + // to make sure that the receiver doesn't start writing anything + // immediately. + // + for(ui32Loop = 0; ui32Loop < NUM_RX_DESCRIPTORS; ui32Loop++) + { + g_psRxDescriptor[ui32Loop].ui32CtrlStatus = 0; + g_psRxDescriptor[ui32Loop].ui32Count = + (DES1_RX_CTRL_CHAINED | + (RX_BUFFER_SIZE << DES1_RX_CTRL_BUFF1_SIZE_S)); + g_psRxDescriptor[ui32Loop].pvBuffer1 = g_pui8RxBuffer; + g_psRxDescriptor[ui32Loop].DES3.pLink = + (ui32Loop == (NUM_RX_DESCRIPTORS - 1)) ? + g_psRxDescriptor : &g_psRxDescriptor[ui32Loop + 1]; + } + + // + // Set the descriptor pointers in the hardware. + // + ROM_EMACRxDMADescriptorListSet(ui32Base, g_psRxDescriptor); + ROM_EMACTxDMADescriptorListSet(ui32Base, g_psTxDescriptor); + + // + // Start from the beginning of both descriptor chains. We actually set + // the transmit descriptor index to the last descriptor in the chain + // since it will be incremented before use and this means the first + // transmission we perform will use the correct descriptor. + // + g_ui32RxDescIndex = 0; + g_ui32TxDescIndex = NUM_TX_DESCRIPTORS - 1; +} + +//***************************************************************************** +// +// This example demonstrates the use of the Ethernet Controller with the uIP +// TCP/IP stack. +// +//***************************************************************************** +int +main(void) +{ + uip_ipaddr_t sIPAddr; + static struct uip_eth_addr sTempAddr; + int32_t i32PeriodicTimer, i32ARPTimer; + uint32_t ui32User0, ui32User1; + uint32_t ui32Temp, ui32PHYConfig, ui32SysClock; + + // + // Run from the PLL at 120 MHz. + // + ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins. + // + PinoutSet(true, false); + + // + // Initialize the UART, clear the terminal, and print banner. + // + UARTStdioConfig(0, 115200, ui32SysClock); + UARTprintf("\033[2J\033[H"); + UARTprintf("Ethernet with uIP\n-----------------\n\n"); + + UpdateStatus("Using Internal PHY."); + ui32PHYConfig = (EMAC_PHY_TYPE_INTERNAL | EMAC_PHY_INT_MDIX_EN | + EMAC_PHY_AN_100B_T_FULL_DUPLEX); + + // + // Read the MAC address from the user registers. + // + ROM_FlashUserGet(&ui32User0, &ui32User1); + if((ui32User0 == 0xffffffff) || (ui32User1 == 0xffffffff)) + { + // + // We should never get here. This is an error if the MAC address has + // not been programmed into the device. Exit the program. + // + UpdateStatus("MAC Address Not Programmed!"); + while(1) + { + } + } + + // + // Convert the 24/24 split MAC address from NV ram into a 32/16 split MAC + // address needed to program the hardware registers, then program the MAC + // address into the Ethernet Controller registers. + // + sTempAddr.addr[0] = ((ui32User0 >> 0) & 0xff); + sTempAddr.addr[1] = ((ui32User0 >> 8) & 0xff); + sTempAddr.addr[2] = ((ui32User0 >> 16) & 0xff); + sTempAddr.addr[3] = ((ui32User1 >> 0) & 0xff); + sTempAddr.addr[4] = ((ui32User1 >> 8) & 0xff); + sTempAddr.addr[5] = ((ui32User1 >> 16) & 0xff); + + // + // Configure SysTick for a periodic interrupt. + // + ROM_SysTickPeriodSet(ui32SysClock / SYSTICKHZ); + ROM_SysTickEnable(); + ROM_SysTickIntEnable(); + + // + // Enable and reset the Ethernet modules. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_EMAC0); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_EPHY0); + ROM_SysCtlPeripheralReset(SYSCTL_PERIPH_EMAC0); + ROM_SysCtlPeripheralReset(SYSCTL_PERIPH_EPHY0); + + // + // Wait for the MAC to be ready. + // + UpdateStatus("Waiting for MAC to be ready..."); + while(!ROM_SysCtlPeripheralReady(SYSCTL_PERIPH_EMAC0)) + { + } + + // + // Configure for use with the internal PHY. + // + MAP_EMACPHYConfigSet(EMAC0_BASE, ui32PHYConfig); + UpdateStatus("MAC ready."); + + // + // Reset the MAC. + // + ROM_EMACReset(EMAC0_BASE); + + // + // Initialize the MAC and set the DMA mode. + // + ROM_EMACInit(EMAC0_BASE, ui32SysClock, + EMAC_BCONFIG_MIXED_BURST | EMAC_BCONFIG_PRIORITY_FIXED, 4, 4, + 0); + + // + // Set MAC configuration options. + // + ROM_EMACConfigSet(EMAC0_BASE, + (EMAC_CONFIG_FULL_DUPLEX | EMAC_CONFIG_CHECKSUM_OFFLOAD | + EMAC_CONFIG_7BYTE_PREAMBLE | EMAC_CONFIG_IF_GAP_96BITS | + EMAC_CONFIG_USE_MACADDR0 | + EMAC_CONFIG_SA_FROM_DESCRIPTOR | + EMAC_CONFIG_BO_LIMIT_1024), + (EMAC_MODE_RX_STORE_FORWARD | + EMAC_MODE_TX_STORE_FORWARD | + EMAC_MODE_TX_THRESHOLD_64_BYTES | + EMAC_MODE_RX_THRESHOLD_64_BYTES), 0); + + // + // Initialize the Ethernet DMA descriptors. + // + InitDescriptors(EMAC0_BASE); + + // + // Program the hardware with its MAC address (for filtering). + // + ROM_EMACAddrSet(EMAC0_BASE, 0, (uint8_t *)&sTempAddr); + + // + // Wait for the link to become active. + // + UpdateStatus("Waiting for Link."); + while((ROM_EMACPHYRead(EMAC0_BASE, 0, EPHY_BMSR) & + EPHY_BMSR_LINKSTAT) == 0) + { + } + + UpdateStatus("Link Established."); + + // + // Set MAC filtering options. We receive all broadcast and multicast + // packets along with those addressed specifically for us. + // + ROM_EMACFrameFilterSet(EMAC0_BASE, (EMAC_FRMFILTER_SADDR | + EMAC_FRMFILTER_PASS_MULTICAST | + EMAC_FRMFILTER_PASS_NO_CTRL)); + + // + // Clear any pending interrupts. + // + ROM_EMACIntClear(EMAC0_BASE, EMACIntStatus(EMAC0_BASE, false)); + + // + // Initialize the uIP TCP/IP stack. + // + uip_init(); + + // + // Set the local MAC address (for uIP). + // + uip_setethaddr(sTempAddr); +#ifdef USE_STATIC_IP + uip_ipaddr(sIPAddr, DEFAULT_IPADDR0, DEFAULT_IPADDR1, DEFAULT_IPADDR2, + DEFAULT_IPADDR3); + uip_sethostaddr(sIPAddr); + ShowIPAddress(sIPAddr); + uip_ipaddr(sIPAddr, DEFAULT_NETMASK0, DEFAULT_NETMASK1, DEFAULT_NETMASK2, + DEFAULT_NETMASK3); + uip_setnetmask(sIPAddr); +#else + uip_ipaddr(sIPAddr, 0, 0, 0, 0); + uip_sethostaddr(sIPAddr); + UpdateStatus("Waiting for IP address..."); + uip_ipaddr(sIPAddr, 0, 0, 0, 0); + uip_setnetmask(sIPAddr); +#endif + + // + // Enable the Ethernet MAC transmitter and receiver. + // + ROM_EMACTxEnable(EMAC0_BASE); + ROM_EMACRxEnable(EMAC0_BASE); + + // + // Enable the Ethernet interrupt. + // + ROM_IntEnable(INT_EMAC0); + + // + // Enable the Ethernet RX Packet interrupt source. + // + ROM_EMACIntEnable(EMAC0_BASE, EMAC_INT_RECEIVE); + + // + // Mark the first receive descriptor as available to the DMA to start + // the receive processing. + // + g_psRxDescriptor[g_ui32RxDescIndex].ui32CtrlStatus |= DES0_RX_CTRL_OWN; + + // + // Initialize the TCP/IP Application (e.g. web server). + // + httpd_init(); + +#ifndef USE_STATIC_IP + // + // Initialize the DHCP Client Application. + // + dhcpc_init(&sTempAddr.addr[0], 6); + dhcpc_request(); +#endif + + // + // Main Application Loop. + // + i32PeriodicTimer = 0; + i32ARPTimer = 0; + while(true) + { + // + // Wait for an event to occur. This can be either a System Tick event, + // or an RX Packet event. + // + while(!g_ui32Flags) + { + } + + // + // If SysTick, Clear the SysTick interrupt flag and increment the + // timers. + // + if(HWREGBITW(&g_ui32Flags, FLAG_SYSTICK) == 1) + { + HWREGBITW(&g_ui32Flags, FLAG_SYSTICK) = 0; + i32PeriodicTimer += SYSTICKMS; + i32ARPTimer += SYSTICKMS; + } + + // + // Check for an RX Packet and read it. + // + if(HWREGBITW(&g_ui32Flags, FLAG_RXPKT)) + { + // + // Clear the RX Packet event flag. + // + HWREGBITW(&g_ui32Flags, FLAG_RXPKT) = 0; + + // Get the packet and set uip_len for uIP stack usage. + // + uip_len = (unsigned short)PacketReceive(EMAC0_BASE, uip_buf, + sizeof(g_pui8UIPBuffer)); + + // + // Process incoming IP packets here. + // + if(BUF->type == htons(UIP_ETHTYPE_IP)) + { + uip_arp_ipin(); + uip_input(); + + // + // If the above function invocation resulted in data that + // should be sent out on the network, the global variable + // uip_len is set to a value > 0. + // + if(uip_len > 0) + { + uip_arp_out(); + PacketTransmit(EMAC0_BASE, uip_buf, uip_len); + uip_len = 0; + } + } + + // + // Process incoming ARP packets here. + // + else if(BUF->type == htons(UIP_ETHTYPE_ARP)) + { + uip_arp_arpin(); + + // + // If the above function invocation resulted in data that + // should be sent out on the network, the global variable + // uip_len is set to a value > 0. + // + if(uip_len > 0) + { + PacketTransmit(EMAC0_BASE, uip_buf, uip_len); + uip_len = 0; + } + } + } + + // + // Process TCP/IP Periodic Timer here. + // + if(i32PeriodicTimer > UIP_PERIODIC_TIMER_MS) + { + i32PeriodicTimer = 0; + for(ui32Temp = 0; ui32Temp < UIP_CONNS; ui32Temp++) + { + uip_periodic(ui32Temp); + + // + // If the above function invocation resulted in data that + // should be sent out on the network, the global variable + // uip_len is set to a value > 0. + // + if(uip_len > 0) + { + uip_arp_out(); + PacketTransmit(EMAC0_BASE, uip_buf, uip_len); + uip_len = 0; + } + } + +#if UIP_UDP + for(ui32Temp = 0; ui32Temp < UIP_UDP_CONNS; ui32Temp++) + { + uip_udp_periodic(ui32Temp); + + // + // If the above function invocation resulted in data that + // should be sent out on the network, the global variable + // uip_len is set to a value > 0. + // + if(uip_len > 0) + { + uip_arp_out(); + PacketTransmit(EMAC0_BASE, uip_buf, uip_len); + uip_len = 0; + } + } +#endif + } + + // + // Process ARP Timer here. + // + if(i32ARPTimer > UIP_ARP_TIMER_MS) + { + i32ARPTimer = 0; + uip_arp_timer(); + } + } +} + +#ifdef UIP_ARCH_IPCHKSUM +//***************************************************************************** +// +// Return the IP checksum for the packet in uip_buf. This is a dummy since +// the hardware calculates this for us. +// +//***************************************************************************** +u16_t +uip_ipchksum(void) +{ + // + // Dummy function - the hardware calculates and inserts all required + // checksums for us. + // + return(0xffff); +} + +//***************************************************************************** +// +// This is a dummy since the hardware calculates this for us. +// +//***************************************************************************** +u16_t +uip_chksum(u16_t *data, u16_t len) +{ + return(0xffff); +} + +//***************************************************************************** +// +// This is a dummy since the hardware calculates this for us. +// +//***************************************************************************** +u16_t +uip_icmp6chksum(void) +{ + return(0xffff); +} + +//***************************************************************************** +// +// This is a dummy since the hardware calculates this for us. +// +//***************************************************************************** +u16_t +uip_tcpchksum(void) +{ + return(0xffff); +} +#endif diff --git a/boards/ek-tm4c1294xl/enet_uip/enet_uip.ewd b/boards/ek-tm4c1294xl/enet_uip/enet_uip.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/enet_uip.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/enet_uip/enet_uip.ewp b/boards/ek-tm4c1294xl/enet_uip/enet_uip.ewp new file mode 100644 index 0000000..536f4a8 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/enet_uip.ewp @@ -0,0 +1,822 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\..\..\..\..\third_party\uip-1.0\apps\dhcpc\dhcpc.c + + + $PROJ_DIR$\enet_uip.c + + + $PROJ_DIR$\..\..\..\..\third_party\uip-1.0\apps\httpd\httpd.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\..\..\..\..\third_party\uip-1.0\uip\uip.c + + + $PROJ_DIR$\..\..\..\..\third_party\uip-1.0\uip\uip_arp.c + + + $PROJ_DIR$\..\..\..\..\third_party\uip-1.0\uip\uip_timer.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/enet_uip/enet_uip.icf b/boards/ek-tm4c1294xl/enet_uip/enet_uip.icf new file mode 100644 index 0000000..b217614 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/enet_uip.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// enet_uip.icf - Linker configuration file for enet_uip. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/enet_uip/enet_uip.ld b/boards/ek-tm4c1294xl/enet_uip/enet_uip.ld new file mode 100644 index 0000000..5bb2d63 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/enet_uip.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * enet_uip.ld - Linker configuration file for enet_uip. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/enet_uip/enet_uip.sct b/boards/ek-tm4c1294xl/enet_uip/enet_uip.sct new file mode 100644 index 0000000..78f9668 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/enet_uip.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; enet_uip.sct - Linker configuration file for enet_uip. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/enet_uip/enet_uip.uvopt b/boards/ek-tm4c1294xl/enet_uip/enet_uip.uvopt new file mode 100644 index 0000000..1429954 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/enet_uip.uvopt @@ -0,0 +1,401 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + enet_uip + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\uip-1.0\apps\dhcpc\dhcpc.c + dhcpc.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\enet_uip.c + enet_uip.c + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\uip-1.0\apps\httpd\httpd.c + httpd.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 5 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\uip-1.0\uip\uip.c + uip.c + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\uip-1.0\uip\uip_arp.c + uip_arp.c + + + 1 + 9 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\uip-1.0\uip\uip_timer.c + uip_timer.c + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 11 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 12 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/enet_uip/enet_uip.uvproj b/boards/ek-tm4c1294xl/enet_uip/enet_uip.uvproj new file mode 100644 index 0000000..8e2da8a --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/enet_uip.uvproj @@ -0,0 +1,464 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + enet_uip + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + enet_uip + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\enet_uip.bin .\rvmdk\enet_uip.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 DEBUG_OUTPUT UIP_OFFLOAD_ICMP_CHKSUM + + .;..;..\..\..\..;..\..\..\..\third_party\uip-1.0\apps;..\..\..\..\third_party\uip-1.0\uip;..\..\..\..\third_party\uip-1.0;..\..\..\..\utils; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + enet_uip.sct + + + --entry Reset_Handler + + + + + + + + Source + + + dhcpc.c + 1 + ..\..\..\..\third_party\uip-1.0\apps\dhcpc\dhcpc.c + + + enet_uip.c + 1 + .\enet_uip.c + + + httpd.c + 1 + ..\..\..\..\third_party\uip-1.0\apps\httpd\httpd.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + uip.c + 1 + ..\..\..\..\third_party\uip-1.0\uip\uip.c + + + uip_arp.c + 1 + ..\..\..\..\third_party\uip-1.0\uip\uip_arp.c + + + uip_timer.c + 1 + ..\..\..\..\third_party\uip-1.0\uip\uip_timer.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/enet_uip/enet_uip_ccs.cmd b/boards/ek-tm4c1294xl/enet_uip/enet_uip_ccs.cmd new file mode 100644 index 0000000..f3e0e5e --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/enet_uip_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * enet_uip_ccs.cmd - CCS linker configuration file for enet_uip. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 512; diff --git a/boards/ek-tm4c1294xl/enet_uip/ewarm/Exe/enet_uip.bin b/boards/ek-tm4c1294xl/enet_uip/ewarm/Exe/enet_uip.bin new file mode 100644 index 0000000..48e63d7 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_uip/ewarm/Exe/enet_uip.bin differ diff --git a/boards/ek-tm4c1294xl/enet_uip/ewarm/Exe/enet_uip.out b/boards/ek-tm4c1294xl/enet_uip/ewarm/Exe/enet_uip.out new file mode 100644 index 0000000..ad8c39e Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_uip/ewarm/Exe/enet_uip.out differ diff --git a/boards/ek-tm4c1294xl/enet_uip/gcc/enet_uip.axf b/boards/ek-tm4c1294xl/enet_uip/gcc/enet_uip.axf new file mode 100644 index 0000000..8e5ee0e Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_uip/gcc/enet_uip.axf differ diff --git a/boards/ek-tm4c1294xl/enet_uip/gcc/enet_uip.bin b/boards/ek-tm4c1294xl/enet_uip/gcc/enet_uip.bin new file mode 100644 index 0000000..ca1bb68 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_uip/gcc/enet_uip.bin differ diff --git a/boards/ek-tm4c1294xl/enet_uip/readme.txt b/boards/ek-tm4c1294xl/enet_uip/readme.txt new file mode 100644 index 0000000..57e5f2d --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/readme.txt @@ -0,0 +1,33 @@ +Ethernet with uIP + +This example application demonstrates the operation of the Tiva C Series +Ethernet controller using the uIP TCP/IP Stack. DHCP is used to obtain +an Ethernet address. A basic web site is served over the Ethernet port. +The web site displays a few lines of text, and a counter that increments +each time the page is sent. + +UART0, connected to the ICDI virtual COM port and running at 115,200, +8-N-1, is used to display messages from this application. + +For additional details on uIP, refer to the uIP web page at: +http://www.sics.se/~adam/uip/ + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/enet_uip/rvmdk/enet_uip.axf b/boards/ek-tm4c1294xl/enet_uip/rvmdk/enet_uip.axf new file mode 100644 index 0000000..9d2b9cb Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_uip/rvmdk/enet_uip.axf differ diff --git a/boards/ek-tm4c1294xl/enet_uip/rvmdk/enet_uip.bin b/boards/ek-tm4c1294xl/enet_uip/rvmdk/enet_uip.bin new file mode 100644 index 0000000..e1cb850 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_uip/rvmdk/enet_uip.bin differ diff --git a/boards/ek-tm4c1294xl/enet_uip/startup_ccs.c b/boards/ek-tm4c1294xl/enet_uip/startup_ccs.c new file mode 100644 index 0000000..22ecb3f --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/startup_ccs.c @@ -0,0 +1,276 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void EthernetIntHandler(void); +extern void SysTickIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + EthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_uip/startup_ewarm.c b/boards/ek-tm4c1294xl/enet_uip/startup_ewarm.c new file mode 100644 index 0000000..8a3c771 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/startup_ewarm.c @@ -0,0 +1,307 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void EthernetIntHandler(void); +extern void SysTickIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + EthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_uip/startup_gcc.c b/boards/ek-tm4c1294xl/enet_uip/startup_gcc.c new file mode 100644 index 0000000..af01787 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/startup_gcc.c @@ -0,0 +1,323 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void EthernetIntHandler(void); +extern void SysTickIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + EthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_uip/startup_rvmdk.S b/boards/ek-tm4c1294xl/enet_uip/startup_rvmdk.S new file mode 100644 index 0000000..6c52bb0 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/startup_rvmdk.S @@ -0,0 +1,332 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000200 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN EthernetIntHandler + EXTERN SysTickIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD EthernetIntHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/enet_uip/uip-conf.h b/boards/ek-tm4c1294xl/enet_uip/uip-conf.h new file mode 100644 index 0000000..5793d25 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_uip/uip-conf.h @@ -0,0 +1,161 @@ +//***************************************************************************** +// +// uip-conf.h - uIP Project Specific Configuration File +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __UIP_CONF_H__ +#define __UIP_CONF_H__ + +// +// 8 bit datatype +// This typedef defines the 8-bit type used throughout uIP. +// +typedef unsigned char u8_t; + +// +// 16 bit datatype +// This typedef defines the 16-bit type used throughout uIP. +// +typedef unsigned short u16_t; + +// +// Statistics datatype +// This typedef defines the dataype used for keeping statistics in +// uIP. +// +typedef unsigned short uip_stats_t; + +// +// Ping IP address assignment +// Use first incoming "ping" packet to derive host IP address +// +#define UIP_CONF_PINGADDRCONF 0 + +// +// UDP support on or off +// +#define UIP_CONF_UDP 1 + +// +// UDP checksums on or off +// (not currently supported ... should be 0) +// +#define UIP_CONF_UDP_CHECKSUMS 0 + +// +// UDP Maximum Connections +// +#define UIP_CONF_UDP_CONNS 4 + +// +// Maximum number of TCP connections. +// +#define UIP_CONF_MAX_CONNECTIONS 2 + +// +// Maximum number of listening TCP ports. +// +#define UIP_CONF_MAX_LISTENPORTS 4 + +// +// Size of advertised receiver's window +// +//#define UIP_CONF_RECEIVE_WINDOW 400 + +// +// Size of ARP table +// +#define UIP_CONF_ARPTAB_SIZE 8 + +// +// uIP buffer size. +// +#define UIP_CONF_BUFFER_SIZE 1600 + +// +// uIP buffer is defined in the application. +// +#define UIP_CONF_EXTERNAL_BUFFER + +// +// uIP statistics on or off +// +#define UIP_CONF_STATISTICS 1 + +// +// Logging on or off +// +#define UIP_CONF_LOGGING 0 + +// +// Broadcast Support +// +#define UIP_CONF_BROADCAST 0 + +// +// Link-Level Header length +// +#define UIP_CONF_LLH_LEN 14 + +// +// CPU byte order. +// +#define UIP_CONF_BYTE_ORDER LITTLE_ENDIAN + +// +// Offload checksum calculation to the hardware. +// +// TODO: Once things are working, turn on hardware checksum calculation and +// make sure the application source includes stubs for uip_ipchksum(), +// uip_tcpchksum() and uip_udpchksum(). uip_icmp6chksum() is also needed if +// IPv6 is in use. +// +#define UIP_ARCH_IPCHKSUM +#define UIP_ARCH_CHKSUM 1 + +// +// Here we include the header file for the application we are using in +// this example +// +#include "httpd/httpd.h" + +// +// Define the uIP Application State type, based on the httpd.h state variable. +// +typedef struct httpd_state uip_tcp_appstate_t; + +// +// UIP_APPCALL: the name of the application function. This function +// must return void and take no arguments (i.e., C type "void +// appfunc(void)"). +// +#ifndef UIP_APPCALL +#define UIP_APPCALL httpd_appcall +#endif + +// +// Here we include the header file for the DPCP client we are using in +// this example +// +#include "dhcpc/dhcpc.h" + +#endif // __UIP_CONF_H_ diff --git a/boards/ek-tm4c1294xl/enet_weather/Makefile b/boards/ek-tm4c1294xl/enet_weather/Makefile new file mode 100644 index 0000000..9366221 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/Makefile @@ -0,0 +1,105 @@ +#****************************************************************************** +# +# Makefile - Rules for building the Sample Ethernet Weather Application using lwIP 1.4.1. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../third_party/lwip-1.4.1/apps/httpserver_raw +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=. +IPATH+=.. +IPATH+=../../../.. +IPATH+=../../../../third_party/lwip-1.4.1/apps +IPATH+=../../../../third_party/lwip-1.4.1/ports/tiva-tm4c129/include +IPATH+=../../../../third_party/lwip-1.4.1/src/include +IPATH+=../../../../third_party/lwip-1.4.1/src/include/ipv4 +IPATH+=../../../../third_party + +# +# The default rule, which causes the Sample Ethernet Weather Application using lwIP 1.4.1 to be built. +# +all: ${COMPILER} +all: ${COMPILER}/enet_weather.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the Sample Ethernet Weather Application using lwIP 1.4.1. +# +${COMPILER}/enet_weather.axf: ${COMPILER}/cmdline.o +${COMPILER}/enet_weather.axf: ${COMPILER}/commands.o +${COMPILER}/enet_weather.axf: ${COMPILER}/enet_weather.o +${COMPILER}/enet_weather.axf: ${COMPILER}/eth_client.o +${COMPILER}/enet_weather.axf: ${COMPILER}/flash_pb.o +${COMPILER}/enet_weather.axf: ${COMPILER}/http.o +${COMPILER}/enet_weather.axf: ${COMPILER}/images.o +${COMPILER}/enet_weather.axf: ${COMPILER}/json.o +${COMPILER}/enet_weather.axf: ${COMPILER}/locator.o +${COMPILER}/enet_weather.axf: ${COMPILER}/lwiplib.o +${COMPILER}/enet_weather.axf: ${COMPILER}/pinout.o +${COMPILER}/enet_weather.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/enet_weather.axf: ${COMPILER}/uartstdio.o +${COMPILER}/enet_weather.axf: ${COMPILER}/ustdlib.o +${COMPILER}/enet_weather.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/enet_weather.axf: enet_weather.ld +SCATTERgcc_enet_weather=enet_weather.ld +ENTRY_enet_weather=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 -DLWIP_1_4_1 -DUSE_HTTP_1_0 -DUART_BUFFERED + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/enet_weather/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/enet_weather/ccs/.ccsimportspec new file mode 100644 index 0000000..3ddafa9 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/ccs/.ccsimportspec @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_weather/ccs/.ccsproject b/boards/ek-tm4c1294xl/enet_weather/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_weather/ccs/.cproject b/boards/ek-tm4c1294xl/enet_weather/ccs/.cproject new file mode 100644 index 0000000..7343a53 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/ccs/.cproject @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_weather/ccs/.project b/boards/ek-tm4c1294xl/enet_weather/ccs/.project new file mode 100644 index 0000000..eef9f45 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/ccs/.project @@ -0,0 +1,110 @@ + + + enet_weather + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + commands.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_weather/commands.c + + + enet_weather.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_weather/enet_weather.c + + + enet_weather_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_weather/enet_weather_ccs.cmd + + + eth_client.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_weather/eth_client.c + + + images.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_weather/images.c + + + json.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_weather/json.c + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/enet_weather/startup_ccs.c + + + drivers/http.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/http.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/cmdline.c + 1 + SW_ROOT/utils/cmdline.c + + + utils/flash_pb.c + 1 + SW_ROOT/utils/flash_pb.c + + + utils/locator.c + 1 + SW_ROOT/utils/locator.c + + + utils/lwiplib.c + 1 + SW_ROOT/utils/lwiplib.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/enet_weather/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/enet_weather/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/enet_weather/ccs/Debug/enet_weather.bin b/boards/ek-tm4c1294xl/enet_weather/ccs/Debug/enet_weather.bin new file mode 100644 index 0000000..46c3495 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_weather/ccs/Debug/enet_weather.bin differ diff --git a/boards/ek-tm4c1294xl/enet_weather/ccs/Debug/enet_weather.out b/boards/ek-tm4c1294xl/enet_weather/ccs/Debug/enet_weather.out new file mode 100644 index 0000000..a78e194 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_weather/ccs/Debug/enet_weather.out differ diff --git a/boards/ek-tm4c1294xl/enet_weather/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/enet_weather/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/enet_weather/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/enet_weather/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/enet_weather/commands.c b/boards/ek-tm4c1294xl/enet_weather/commands.c new file mode 100644 index 0000000..710db50 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/commands.c @@ -0,0 +1,206 @@ +//***************************************************************************** +// +// commands.c - Command line functions for the qs-cloud demo +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "driverlib/sysctl.h" +#include "utils/cmdline.h" +#include "utils/uartstdio.h" +#include "utils/ustdlib.h" +#include "commands.h" +#include "enet_weather.h" + +extern uint32_t g_ui32ShowCities; +extern uint32_t g_ui32ProcessingCmds; +extern uint32_t g_ui32IPaddr; +extern sParameters g_sConfig; +extern char g_pcIPAddr[20]; +extern void UpdateCity(uint32_t ui32Idx, bool bDraw); +extern void PrintIPAddress(char *pcAddr, uint32_t ipaddr); +extern void ProxyEnable(void); + +//***************************************************************************** +// +// This is the table that holds the command names, implementing functions, and +// brief description. +// +//***************************************************************************** +tCmdLineEntry g_psCmdTable[] = +{ + { "help", Cmd_help, ": Display list of commands" }, + { "h", Cmd_help, ": alias for help" }, + { "?", Cmd_help, ": alias for help" }, + { "scroll", Cmd_cityscroll, ": Scroll the cities"}, + { "setproxy", Cmd_setproxy, ": Setup or change proxy configuration"}, + { 0, 0, 0 } +}; + +//***************************************************************************** +// +// This function implements the "help" command. It prints a simple list of the +// available commands with a brief description. +// +//***************************************************************************** +int +Cmd_help(int argc, char *argv[]) +{ + tCmdLineEntry *pEntry; + + // + // Print some header text. + // + UARTprintf("\nAvailable commands\n"); + UARTprintf("------------------\n"); + + // + // Point at the beginning of the command table. + // + pEntry = &g_psCmdTable[0]; + + // + // Enter a loop to read each entry from the command table. The end of the + // table has been reached when the command name is NULL. + // + while(pEntry->pcCmd) + { + // + // Print the command name and the brief description. + // + UARTprintf("%15s%s\n", pEntry->pcCmd, pEntry->pcHelp); + + // + // Advance to the next entry in the table. + // + pEntry++; + } + + // + // Return success. + // + return(0); +} + +//***************************************************************************** +// +// The "setproxy" command allows the user to change their proxy behavior +// +//***************************************************************************** +int +Cmd_setproxy(int argc, char *argv[]) +{ + // + // Check the number of arguments. + // + if((argc == 1) && (ustrcmp("off",argv[1]) == 0 )) + { + g_sConfig.bProxyEnabled = false; + g_sConfig.pcProxy[0] = 0; + } + else if(argc == 2) + { + // + // Otherwise, copy the user-defined location into the global variable. + // + ustrncpy(g_sConfig.pcProxy, argv[1], 49); + + // + // Make sure that the global string remains terminated with a zero. + // + g_sConfig.pcProxy[49] = 0; + g_sConfig.bProxyEnabled = true; + + UARTprintf("New Proxy Address: %s\n", g_sConfig.pcProxy); + + // + // Enable the proxy. + // + ProxyEnable(); + + } + else + { + UARTprintf("\nProxy configuration help:\n"); + UARTprintf(" The setproxy command changes the proxy behavior of" + "this board.\n"); + UARTprintf(" To disable the proxy, type:\n\n"); + UARTprintf(" setproxy off\n\n"); + UARTprintf(" To enable the proxy with a specific proxy name, " + "type\n"); + UARTprintf(" setproxy . For " + "example:\n\n"); + UARTprintf(" setproxy your.proxy.address\n\n"); + } + + // + // No longer processing commands. + // + g_ui32ProcessingCmds = 0; + + return 0; +} + +//***************************************************************************** +// +// The tictactoe command allows users to play a game of tic-tac-toe. +// +//***************************************************************************** +int +Cmd_cityscroll(int argc, char *argv[]) +{ + // + // Clear the terminal. Print the banner and IP place holder. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("Ethernet Weather Example\n\n"); + UARTprintf("IP: "); + + // + // Print the IP address. + // + PrintIPAddress(g_pcIPAddr, g_ui32IPaddr); + UARTprintf("\n"); + UARTprintf("Hit 'ENTER' to exit\n\n"); + + // + // Print the current city information. + // + UpdateCity(0, true); + + // + // 'Updating' banner. + // + UARTprintf("\n__________________________\n\nUpdating:"); + + // + // Update the variable to begin scrolling through the cities. + // + g_ui32ShowCities = 1; + + // + // No longer processing commands. + // + g_ui32ProcessingCmds = 0; + + return 0; +} diff --git a/boards/ek-tm4c1294xl/enet_weather/commands.h b/boards/ek-tm4c1294xl/enet_weather/commands.h new file mode 100644 index 0000000..7a26405 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/commands.h @@ -0,0 +1,57 @@ +//***************************************************************************** +// +// commands.h - Header file for commandline functions in qs-cloud +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __COMMANDS_H__ +#define __COMMANDS_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Forward declarations for command-line operations. +// +//***************************************************************************** +extern int Cmd_help(int argc, char *argv[]); +extern int Cmd_cityscroll(int argc, char *argv[]); +extern int Cmd_setproxy(int argc, char *argv[]); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __COMMANDS_H__ diff --git a/boards/ek-tm4c1294xl/enet_weather/debug.h b/boards/ek-tm4c1294xl/enet_weather/debug.h new file mode 100644 index 0000000..5e64db5 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/debug.h @@ -0,0 +1,38 @@ +//***************************************************************************** +// +// debug.h - +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __DEBUG_H__ +#define __DEBUG_H__ + +#ifdef DEBUG_OUTPUT +//#include "driverlib/uart.h" +#include "utils/uartstdio.h" +#define DebugPrintf(...) UARTprintf(__VA_ARGS__) +#else +#define DebugPrintf(...) +#endif +#else +#define DebugPrintf(...) + +#endif diff --git a/boards/ek-tm4c1294xl/enet_weather/enet_weather.c b/boards/ek-tm4c1294xl/enet_weather/enet_weather.c new file mode 100644 index 0000000..d4c8d85 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/enet_weather.c @@ -0,0 +1,1249 @@ +//***************************************************************************** +// +// enet_weather.c - Sample Weather application using lwIP. +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +//***************************************************************************** + +#include +#include +#include "inc/hw_types.h" +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_nvic.h" +#include "inc/hw_gpio.h" +#include "driverlib/flash.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "driverlib/emac.h" +#include "drivers/pinout.h" +#include "utils/cmdline.h" +#include "utils/locator.h" +#include "utils/flash_pb.h" +#include "utils/lwiplib.h" +#include "utils/uartstdio.h" +#include "utils/ustdlib.h" +#include "eth_client.h" +#include "enet_weather.h" +#include "commands.h" +#include "json.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      Ethernet Weather Application (enet_weather)

      +//! +//! This example application demonstrates the operation of the Tiva C series +//! evaluation kit as a weather reporting application. +//! +//! The application supports updating weather information from Open Weather Map +//! weather provider(http://openweathermap.org/). The application uses the +//! lwIP stack to obtain an address through DNS, resolve the address of the +//! Open Weather Map site and then build and handle all of the requests +//! necessary to access the weather information. The application can also use +//! a web proxy, allows for a custom city to be added to the list of cities and +//! toggles temperature units from Celsius to Fahrenheit. The application +//! scrolls through the city list at a fixed interval when there is a valid +//! IP address and displays this information over the UART. +//! +//! The application will print the city name, status, humidity, current temp +//! and the high/low. In addition the application will display what city it +//! is currently updating. Once the app has scrolled through the cities a +//! a defined amount of times, it will attempt to update the information. +//! +//! UART0, connected to the Virtual Serial Port and running at 115,200, 8-N-1, +//! is used to display messages from this application. +//! +//!/ For additional details about Open Weather Map refer to their web page at: +//! http://openweathermap.org/ +//! +//! For additional details on lwIP, refer to the lwIP web page at: +//! http://savannah.nongnu.org/projects/lwip/ +// +//***************************************************************************** + +//***************************************************************************** +// +// Connection states for weather application. +// +//***************************************************************************** +volatile enum +{ + STATE_NOT_CONNECTED, + STATE_NEW_CONNECTION, + STATE_CONNECTED_IDLE, + STATE_WAIT_DATA, + STATE_UPDATE_CITY, + STATE_WAIT_NICE, +} +g_iState = STATE_NOT_CONNECTED; + +//***************************************************************************** +// +// Input buffer for the command line interpreter. +// +//***************************************************************************** +char g_cInput[APP_INPUT_BUF_SIZE]; + +//***************************************************************************** +// +// The city being displayed. +// +//***************************************************************************** +uint32_t g_ui32CityActive; + +//***************************************************************************** +// +// The city being updated. +// +//***************************************************************************** +uint32_t g_ui32CityUpdating; + +//***************************************************************************** +// +// Global for IP address. +// +//***************************************************************************** +uint32_t g_ui32IPaddr; + +//***************************************************************************** +// +// Global to track whether we are processing commands or not. +// +//***************************************************************************** +uint32_t g_ui32ProcessingCmds; + +//***************************************************************************** +// +// The delay count to reduce traffic to the weather server. +// +//***************************************************************************** +volatile uint32_t g_ui32Delay; + +//***************************************************************************** +// +// Global to track number of times the app has cycled through the list of +// cities. +// +//***************************************************************************** +volatile uint32_t g_ui32Cycles; + +//***************************************************************************** +// +// The delay count to update the UART. +// +//***************************************************************************** +uint32_t g_ui32UARTDelay; + +//***************************************************************************** +// +// System Clock rate in Hertz. +// +//***************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// Varriable to track when to display the scrolling list of cities. +// +//***************************************************************************** +uint32_t g_ui32ShowCities; + +//***************************************************************************** +// +// Varriable to track when to update the UART. +// +//***************************************************************************** +uint32_t g_UpdateUART = 1; + +//***************************************************************************** +// +// Storage for the filename list box widget string table. +// +//***************************************************************************** +#define NUM_CITIES 30 + +//***************************************************************************** +// +// The defaults for the flash and application settings. +// +//***************************************************************************** +static const sParameters g_sDefaultParams = +{ + 0, + {"Custom City Name"}, + {"your.proxy.com"}, + false, + false, + false, + false +}; + +// +// The current live configuration settings for the application. +// +sParameters g_sConfig; + +//***************************************************************************** +// +// The state of each city panel. +// +//***************************************************************************** +struct +{ + // + // The last update time for this city. + // + uint32_t ui32LastUpdate; + + // + // The current weather report data for this city. + // + tWeatherReport sReport; + + // + // Indicates if the city needs updating. + // + bool bNeedsUpdate; + + // + // The name of the current city. + // + const char *pcName; +} +g_psCityInfo[NUM_CITIES]; + +// +// The list of city names. +// +static const char *g_ppcCityNames[NUM_CITIES - 1] = +{ + "Austin, TX", + "Beijing, China", + "Berlin, Germany", + "Boston, MA", + "Buenos Aires, Argentina", + "Chicago, IL", + "Dallas, TX", + "Frankfurt, Germany", + "Hong Kong, HK", + "Jerusalem, Israel", + "Johannesburg, ZA", + "London, England", + "Mexico City, Mexico", + "Moscow, Russia", + "New Delhi, India", + "New York, NY", + "Paris, France", + "Rome, Italy", + "San Jose, CA", + "Sao Paulo, Brazil", + "Seoul, S. Korea", + "Shanghai, China", + "Shenzhen, China", + "Singapore City, Singapore", + "Sydney, Australia", + "Taipei, Taiwan", + "Tokyo, Japan", + "Toronto, Canada", + "Vancouver, Canada" +}; + +//***************************************************************************** +// +// Constant strings for status messages. +// +//***************************************************************************** +const char g_pcNotFound[] = "City Not Found"; +const char g_pcServerBusy[] = "Server Busy"; +const char g_pcWaitData[] = "Waiting for Data"; + +//***************************************************************************** +// +// Interrupt priority definitions. The top 3 bits of these values are +// significant with lower values indicating higher priority interrupts. +// +//***************************************************************************** +#define SYSTICK_INT_PRIORITY 0x80 +#define ETHERNET_INT_PRIORITY 0xC0 + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// Variables for the various temperature parametrics. +// +//***************************************************************************** +char g_pcTempHighLow[40] = "--/--C"; +char g_pcTemp[40] = "--C"; +char g_pcHumidity[40] = "Humidity: --%"; +char g_pcStatus[40]; +char g_pcCity[40]; + +//***************************************************************************** +// +// MAC address. +// +//***************************************************************************** +char g_pcMACAddr[40]; + +//***************************************************************************** +// +// IP address. +// +//***************************************************************************** +char g_pcIPAddr[20]; + +//***************************************************************************** +// +// Celsius to Fahrenheit conversion. +// +//***************************************************************************** +static int32_t +TempCtoF(int32_t i32Temp) +{ + // + // Only convert if measurements are not in Celsius. + // + if(g_sConfig.bCelsius == false) + { + i32Temp = ((i32Temp * 9) / 5) + 32; + } + + return(i32Temp); +} + +//***************************************************************************** +// +// Reset a cities information so that it can be properly updated. +// +//***************************************************************************** +void +ResetCity(uint32_t ui32Idx) +{ + g_psCityInfo[ui32Idx].sReport.i32Pressure = INVALID_INT; + g_psCityInfo[ui32Idx].sReport.i32Humidity = INVALID_INT; + g_psCityInfo[ui32Idx].sReport.i32Temp = INVALID_INT; + g_psCityInfo[ui32Idx].sReport.i32TempHigh = INVALID_INT; + g_psCityInfo[ui32Idx].sReport.i32TempLow = INVALID_INT; + g_psCityInfo[ui32Idx].sReport.pcDescription = 0; + g_psCityInfo[ui32Idx].sReport.pui8Image = 0; + g_psCityInfo[ui32Idx].sReport.ui32SunRise = 0; + g_psCityInfo[ui32Idx].sReport.ui32SunSet = 0; + g_psCityInfo[ui32Idx].sReport.ui32Time = 0; + g_psCityInfo[ui32Idx].ui32LastUpdate = 0; + + // + // Make sure to copy the name into the string for a custom city. + // + if(ui32Idx == NUM_CITIES - 1) + { + // + // Custom city is in another list. + // + g_psCityInfo[ui32Idx].pcName = g_sConfig.pcCustomCity; + + if(g_ui32CityActive == ui32Idx) + { + // + // Update the custom city name. + // + ustrncpy(g_pcCity, g_psCityInfo[ui32Idx].pcName, sizeof(g_pcCity)); + } + + // + // The custom city only needs an update if enabled. + // + if(g_sConfig.bCustomEnabled) + { + g_psCityInfo[ui32Idx].bNeedsUpdate = true; + } + } + else + { + g_psCityInfo[ui32Idx].pcName = g_ppcCityNames[ui32Idx]; + g_psCityInfo[ui32Idx].bNeedsUpdate = true; + } +} + +//***************************************************************************** +// +// Update the IP address string. +// +//***************************************************************************** +void +UpdateIPAddress(char *pcAddr, uint32_t ipAddr) +{ + uint8_t *pui8Temp = (uint8_t *)&ipAddr; + + if(ipAddr == 0) + { + ustrncpy(pcAddr, "IP: ---.---.---.---", sizeof(g_pcIPAddr)); + } + else + { + usprintf(pcAddr,"IP: %d.%d.%d.%d", pui8Temp[0], pui8Temp[1], + pui8Temp[2], pui8Temp[3]); + } +} + +//***************************************************************************** +// +// Handles the proxy select button presses. +// +//***************************************************************************** +void +ProxyEnable(void) +{ + // + // If a city was waiting to be updated then reset its data. + // + if(g_iState != STATE_CONNECTED_IDLE) + { + ResetCity(g_ui32CityUpdating); + } + + // + // Reset the state to not connected. + // + g_iState = STATE_NOT_CONNECTED; + + // + // Toggle the proxy setting. + // + if(!g_sConfig.bProxyEnabled) + { + // + // Reset the IP address on the screen and disable the proxy which + // resets the network interface and starts DHCP again. + // + UpdateIPAddress(g_pcIPAddr, 0); + EthClientProxySet(0); + + } + else + { + // + // Enable the proxy which resets the network interface and starts DHCP + // again. + // + EthClientProxySet(g_sConfig.pcProxy); + } + + // + // A change was made so update the settings in flash. + // + g_sConfig.bSave = true; +} + +//***************************************************************************** +// +// Update the information for the current city. +// +//***************************************************************************** +void +UpdateCity(uint32_t ui32Idx, bool bDraw) +{ + char cUnits; + bool bIntDisabled; + + // + // Need to disable interrupts since this can be called from interrupt + // handlers for both System tick and Ethernet controller and from the + // main routine. + // + bIntDisabled = IntMasterDisable(); + + if(g_sConfig.bCelsius) + { + cUnits = 'C'; + } + else + { + cUnits = 'F'; + } + + // + // Update the city. + // + ustrncpy(g_pcCity, g_psCityInfo[ui32Idx].pcName, sizeof(g_pcCity)); + + // + // Check if the humidity value is valid. + // + if(g_psCityInfo[ui32Idx].sReport.i32Humidity == INVALID_INT) + { + usprintf(g_pcHumidity, "Humidity: --"); + } + else + { + usprintf(g_pcHumidity, "Humidity: %d", + g_psCityInfo[ui32Idx].sReport.i32Humidity); + } + + // + // Copy the updated description. + // + if(g_psCityInfo[ui32Idx].sReport.pcDescription) + { + ustrncpy(g_pcStatus, g_psCityInfo[ui32Idx].sReport.pcDescription, + sizeof(g_pcStatus)); + } + else if((g_ui32CityUpdating == g_ui32CityActive) && + (g_iState != STATE_NOT_CONNECTED)) + { + // + // Waiting on data for this city. + // + ustrncpy(g_pcStatus, g_pcWaitData, sizeof(g_pcStatus)); + } + else + { + // + // No current status. + // + ustrncpy(g_pcStatus, "--", sizeof(g_pcStatus)); + } + + + // + // Check if the temperature value is valid. + // + if(g_psCityInfo[ui32Idx].sReport.i32Temp == INVALID_INT) + { + usprintf(g_pcTemp, "--%c", cUnits); + usprintf(g_pcTempHighLow, "--/--%c", + TempCtoF(g_psCityInfo[ui32Idx].sReport.i32TempHigh), + TempCtoF(g_psCityInfo[ui32Idx].sReport.i32TempLow), cUnits); + } + else + { + usprintf(g_pcTemp, "%d%c", + TempCtoF(g_psCityInfo[ui32Idx].sReport.i32Temp), cUnits); + usprintf(g_pcTempHighLow, "%d/%d%c", + TempCtoF(g_psCityInfo[ui32Idx].sReport.i32TempHigh), + TempCtoF(g_psCityInfo[ui32Idx].sReport.i32TempLow), cUnits); + } + + // + // Update the information if requested. + // + if(bDraw) + { + UARTprintf((const char *)&g_pcCity); + UARTprintf("\n\tStatus: "); + UARTprintf((const char *)&g_pcStatus); + UARTprintf("\n\t"); + UARTprintf((const char *)&g_pcHumidity); + UARTprintf("%%\n\tTemperature: "); + UARTprintf((const char *)&g_pcTemp); + UARTprintf("\n\tHigh/Low: "); + UARTprintf((const char *)&g_pcTempHighLow); + } + + if(bIntDisabled == false) + { + IntMasterEnable(); + } +} + +//***************************************************************************** +// +// Update the MAC address string. +// +//***************************************************************************** +void +UpdateMACAddr(void) +{ + uint8_t pui8MACAddr[6]; + + EthClientMACAddrGet(pui8MACAddr); + + usprintf(g_pcMACAddr, "MAC: %02x:%02x:%02x:%02x:%02x:%02x", + pui8MACAddr[0], pui8MACAddr[1], pui8MACAddr[2], pui8MACAddr[3], + pui8MACAddr[4], pui8MACAddr[5]); +} + +//***************************************************************************** +// +// Print the IP address string. +// +//***************************************************************************** +void +PrintIPAddress(char *pcAddr, uint32_t ipaddr) +{ + uint8_t *pui8Temp = (uint8_t *)&ipaddr; + + // + // Convert the IP Address into a string. + // + UARTprintf("%d.%d.%d.%d\n", pui8Temp[0], pui8Temp[1], pui8Temp[2], + pui8Temp[3]); +} + +//***************************************************************************** +// +// Prompts the user for a command, and blocks while waiting for the user's +// input. This function will return after the execution of a single command. +// +//***************************************************************************** +void +CheckForUserCommands(void) +{ + int iStatus; + + // + // Peek to see if a full command is ready for processing + // + if(UARTPeek('\r') == -1) + { + // + // If not, return so other functions get a chance to run. + // + return; + } + + // + // If we do have commands, process them immediately in the order they were + // received. + // + while(UARTPeek('\r') != -1) + { + // + // Indicate we are processing a command. + // + g_ui32ProcessingCmds = 1; + + // + // Get a user command back + // + UARTgets(g_cInput, APP_INPUT_BUF_SIZE); + + // + // Process the received command + // + iStatus = CmdLineProcess(g_cInput); + + // + // Handle the case of bad command. + // + if(iStatus == CMDLINE_BAD_CMD) + { + UARTprintf("Bad command!\n"); + } + + // + // Handle the case of too many arguments. + // + else if(iStatus == CMDLINE_TOO_MANY_ARGS) + { + UARTprintf("Too many arguments for command processor!\n"); + } + } + + // + // Print a prompt + // + UARTprintf("\n> "); + +} + +//***************************************************************************** +// +// Updates the UART information. +// +//***************************************************************************** +void +UpdateUART(uint32_t ui32City) +{ + volatile uint32_t ui32IPaddr; + uint32_t ui32Idx; + + // + // See if the user has hit 'ENTER' + // + if(UARTPeek('\r') != -1 && g_ui32ShowCities) + { + // + // Get a user command back + // + UARTgets(g_cInput, APP_INPUT_BUF_SIZE); + + // + // Update the state and redraw the UART. + // + g_UpdateUART = 1; + g_ui32ShowCities = 0; + g_ui32ProcessingCmds = 0; + g_ui32CityActive = 0; + g_ui32Cycles = 0; + g_ui32UARTDelay = 0; + } + + // + // Get the IP address. + // + ui32IPaddr = EthClientAddrGet(); + + // + // If the IP changed, reassign. + // + if (g_ui32IPaddr != ui32IPaddr) + { + // + // Reassign the global IP to the current. + // + g_ui32IPaddr = ui32IPaddr; + + // + // Update the UART. + // + g_UpdateUART = 1; + } + + // + // Check if we should scroll the cities. + // + if (g_ui32UARTDelay == 0 && g_ui32ShowCities) + { + // + // Clear the terminal. Print the banner and IP place holder. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("Ethernet Weather Example\n\n"); + UARTprintf("IP: "); + + // + // Print the IP address. + // + PrintIPAddress(g_pcIPAddr, ui32IPaddr); + UARTprintf("\n"); + UARTprintf("Hit 'ENTER' to exit\n\n"); + + // + // Print the current city information. + // + UpdateCity(ui32City, true); + + // + // 'Updating' banner. + // + UARTprintf("\n__________________________\n\nUpdating:"); + + if (g_ui32Cycles >= UPDATE_CYCLES) + { + // + // Reset the cities so that they update. + // + for(ui32Idx = 0; ui32Idx < NUM_CITIES; ui32Idx++) + { + ResetCity(ui32Idx); + } + + // + // Indicate that we have reset all of the cities. + // + g_ui32Cycles = 0; + } + + // + // Reset the delay. + // + g_ui32UARTDelay = CYCLE_DELAY; + + if (ui32IPaddr != 0 && ui32IPaddr != 0xffffffff) + { + // + // Increment the display city. + // + g_ui32CityActive++; + + // + // Check if the current city index is at the end. + // + if ((g_ui32CityActive >= NUM_CITIES - 1 && + g_sDefaultParams.bCustomEnabled == false) || + (g_ui32CityActive >= NUM_CITIES && + g_sDefaultParams.bCustomEnabled == true)) + { + g_ui32CityActive = 0; + g_ui32Cycles++; + } + } + + g_UpdateUART = 0; + } + else if (g_ui32UARTDelay == 0 && (ui32IPaddr == 0 || + ui32IPaddr == 0xffffffff)) + { + // + // Reset the delay. + // + g_ui32UARTDelay = CYCLE_DELAY; + } + + else if (g_ui32UARTDelay > 0) + { + g_ui32UARTDelay--; + } + + // + // Check if we need to update the UART with the standard text. + // + if (g_UpdateUART && !g_ui32ShowCities && !g_ui32ProcessingCmds) + { + // + // Clear the terminal. Print the banner and IP place holder. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("Ethernet Weather Example\n\n"); + UARTprintf("IP: "); + + // + // Print the IP address. + // + PrintIPAddress(g_pcIPAddr, ui32IPaddr); + UARTprintf("\n"); + UARTprintf("Type 'help' for help.\n\n>"); + + // + // Dont need to update anymore. + // + g_UpdateUART = 0; + } + + // + // If we are not scrolling. Check for commands. + // + if (!g_ui32ShowCities) + { + // + // Check for user commands. + // + CheckForUserCommands(); + } +} + +//***************************************************************************** +// +// The weather event handler. +// +//***************************************************************************** +void +WeatherEvent(uint32_t ui32Event, void* pvData, uint32_t ui32Param) +{ + + if(ui32Event == ETH_EVENT_RECEIVE) + { + // + // Let the main loop update the city. + // + g_iState = STATE_UPDATE_CITY; + + g_psCityInfo[g_ui32CityUpdating].ui32LastUpdate = + g_psCityInfo[g_ui32CityUpdating].sReport.ui32Time; + } + else if(ui32Event == ETH_EVENT_INVALID_REQ) + { + g_psCityInfo[g_ui32CityUpdating].sReport.pcDescription = g_pcNotFound; + g_iState = STATE_UPDATE_CITY; + } + else if(ui32Event == ETH_EVENT_CLOSE) + { + if(g_iState == STATE_WAIT_DATA) + { + g_psCityInfo[g_ui32CityUpdating].sReport.pcDescription = + g_pcServerBusy; + + g_iState = STATE_UPDATE_CITY; + } + } + + // + // If the update indicated no time, then just set the time to a value + // to indicate that at least the update occurred. + // + if(g_psCityInfo[g_ui32CityUpdating].ui32LastUpdate == 0) + { + // + // Failed to update for some reason. + // + g_psCityInfo[g_ui32CityUpdating].ui32LastUpdate = 1; + } +} + +//***************************************************************************** +// +// The interrupt handler for the SysTick interrupt. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + // + // Call the lwIP timer handler. + // + EthClientTick(SYSTEM_TICK_MS); + + // + // Handle the delay between accesses to the weather server. + // + if(g_ui32Delay != 0) + { + g_ui32Delay--; + } +} + +//***************************************************************************** +// +// Network events handler. +// +//***************************************************************************** +void +EnetEvents(uint32_t ui32Event, void *pvData, uint32_t ui32Param) +{ + if(ui32Event == ETH_EVENT_CONNECT) + { + g_iState = STATE_NEW_CONNECTION; + + // + // Update the string version of the address. + // + UpdateIPAddress(g_pcIPAddr, EthClientAddrGet()); + } + else if(ui32Event == ETH_EVENT_DISCONNECT) + { + // + // If a city was waiting to be updated then reset its data. + // + if(g_iState != STATE_CONNECTED_IDLE) + { + ResetCity(g_ui32CityUpdating); + } + + g_iState = STATE_NOT_CONNECTED; + + // + // Update the address to 0.0.0.0. + // + UpdateIPAddress(g_pcIPAddr, 0); + } +} + +//***************************************************************************** +// +// This example demonstrates the use of the Ethernet Controller. +// +//***************************************************************************** +int +main(void) +{ + enum + { + eRequestIdle, + eRequestUpdate, + eRequestForecast, + eRequestCurrent, + eRequestComplete, + } + iRequest; + int32_t i32City; + sParameters *pParams; + iRequest = eRequestIdle; + + // + // Make sure the main oscillator is enabled because this is required by + // the PHY. The system must have a 25MHz crystal attached to the OSC + // pins. The SYSCTL_MOSC_HIGHFREQ parameter is used when the crystal + // frequency is 10MHz or higher. + // + SysCtlMOSCConfigSet(SYSCTL_MOSC_HIGHFREQ); + + // + // Run from the PLL at 120 MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins. + // + PinoutSet(true, false); + + // + // Initialize the UART. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); + + // + // Configure SysTick for a periodic interrupt at 10ms. + // + SysTickPeriodSet((g_ui32SysClock / 1000) * SYSTEM_TICK_MS); + SysTickEnable(); + SysTickIntEnable(); + + // + // Initialized the flash program block and read the current settings. + // + FlashPBInit(FLASH_PB_START, FLASH_PB_END, 256); + pParams = (sParameters *)FlashPBGet(); + + // + // Use the defaults if no settings were found. + // + if(pParams == 0) + { + g_sConfig = g_sDefaultParams; + } + else + { + g_sConfig = *pParams; + } + + // + // Initialize all of the cities. + // + for(i32City = 0; i32City < NUM_CITIES; i32City++) + { + ResetCity(i32City); + } + + // + // Set the IP address to 0.0.0.0. + // + UpdateIPAddress(g_pcIPAddr, 0); + + // + // Enable processor interrupts. + // + IntMasterEnable(); + + // + // Set the interrupt priorities. We set the SysTick interrupt to a higher + // priority than the Ethernet interrupt to ensure that the file system + // tick is processed if SysTick occurs while the Ethernet handler is being + // processed. This is very likely since all the TCP/IP and HTTP work is + // done in the context of the Ethernet interrupt. + // + IntPriorityGroupingSet(4); + IntPrioritySet(INT_EMAC0, ETHERNET_INT_PRIORITY); + IntPrioritySet(FAULT_SYSTICK, SYSTICK_INT_PRIORITY); + + if(g_sConfig.bProxyEnabled) + { + EthClientProxySet(g_sConfig.pcProxy); + EthClientInit(EnetEvents); + } + else + { + EthClientProxySet(0); + EthClientInit(EnetEvents); + } + + UpdateMACAddr(); + + // + // Initialize the city index and enable swipe detection. + // + g_ui32CityActive = 0; + g_ui32CityUpdating = 0; + + // + // Get the IP address. + // + g_ui32IPaddr = EthClientAddrGet(); + + // + // Update the current city information. + // + UpdateUART(g_ui32CityActive); + + // + // Loop forever. All the work is done in interrupt handlers. + // + while(1) + { + if(g_iState == STATE_NEW_CONNECTION) + { + iRequest = eRequestIdle; + + g_iState = STATE_CONNECTED_IDLE; + } + else if(g_iState == STATE_CONNECTED_IDLE) + { + if(iRequest == eRequestIdle) + { + // + // If this city needs updating then start an update. + // + if((g_psCityInfo[g_ui32CityUpdating].bNeedsUpdate) && + ((g_ui32CityUpdating < NUM_CITIES - 1) || + (g_sConfig.bCustomEnabled == true))) + { + iRequest = eRequestUpdate; + } + + if(iRequest != eRequestUpdate) + { + // + // If the custom city is enabled and it needs updating, + // then update it first. + // + if((g_psCityInfo[NUM_CITIES - 1].bNeedsUpdate) && + (g_sConfig.bCustomEnabled == true)) + { + g_ui32CityUpdating = NUM_CITIES - 1; + } + else + { + // + // Move on to the next city to see if it needs to be + // updated on the next pass. + // + g_ui32CityUpdating++; + } + + if(g_ui32CityUpdating >= NUM_CITIES) + { + g_ui32CityUpdating = 0; + } + } + } + else if(iRequest == eRequestUpdate) + { + // + // Print the current city being updated. + // + if (g_ui32ShowCities) + { + UARTprintf("\n\t%s", + g_psCityInfo[g_ui32CityUpdating].pcName); + } + + g_iState = STATE_WAIT_DATA; + + // + // Timeout at 10 seconds. + // + g_ui32Delay = 1000; + + WeatherForecast(iWSrcOpenWeatherMap, + g_psCityInfo[g_ui32CityUpdating].pcName, + &g_psCityInfo[g_ui32CityUpdating].sReport, + WeatherEvent); + + iRequest = eRequestForecast; + } + else if(iRequest == eRequestForecast) + { + g_iState = STATE_WAIT_DATA; + + // + // Timeout at 10 seconds. + // + g_ui32Delay = 1000; + + WeatherCurrent(iWSrcOpenWeatherMap, + g_psCityInfo[g_ui32CityUpdating].pcName, + &g_psCityInfo[g_ui32CityUpdating].sReport, + WeatherEvent); + + iRequest = eRequestCurrent; + } + else if(iRequest == eRequestCurrent) + { + // + // Return to the idle request state. + // + iRequest = eRequestIdle; + + // + // Done updating this city. + // + g_psCityInfo[g_ui32CityUpdating].bNeedsUpdate = false; + } + } + else if(g_iState == STATE_UPDATE_CITY) + { + if(iRequest == eRequestCurrent) + { + // + // If the city is the current active city and the the + // application is on the main screen then update the screen + // and not just the values. + // + if(g_ui32CityUpdating == g_ui32CityActive) + { + // + // Update the current city. + // + UpdateCity(g_ui32CityUpdating, false); + } + + // + // Done updating this city. + // + g_psCityInfo[g_ui32CityUpdating].bNeedsUpdate = false; + } + + // + // Go to the wait nice state. + // + g_iState = STATE_WAIT_NICE; + + // + // 10ms * 10 is a 1 second delay between updates. + // + g_ui32Delay = SYSTEM_TICK_MS * 10; + } + else if(g_iState == STATE_WAIT_NICE) + { + // + // Wait for the "nice" delay to not hit the server too often. + // + if(g_ui32Delay == 0) + { + g_iState = STATE_CONNECTED_IDLE; + } + } + else if(g_iState == STATE_WAIT_DATA) + { + // + // If no data has been received by the timeout then close the + // connection. + // + if(g_ui32Delay == 0) + { + // + // Close out the current connection. + // + EthClientTCPDisconnect(); + } + } + + // + // Update the UART. + // + UpdateUART(g_ui32CityActive); + } +} + diff --git a/boards/ek-tm4c1294xl/enet_weather/enet_weather.ewd b/boards/ek-tm4c1294xl/enet_weather/enet_weather.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/enet_weather.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/enet_weather/enet_weather.ewp b/boards/ek-tm4c1294xl/enet_weather/enet_weather.ewp new file mode 100644 index 0000000..06fbf8e --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/enet_weather.ewp @@ -0,0 +1,837 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\..\..\..\..\utils\cmdline.c + + + $PROJ_DIR$\commands.c + + + $PROJ_DIR$\enet_weather.c + + + $PROJ_DIR$\eth_client.c + + + $PROJ_DIR$\..\..\..\..\utils\flash_pb.c + + + $PROJ_DIR$\..\drivers\http.c + + + $PROJ_DIR$\images.c + + + $PROJ_DIR$\json.c + + + $PROJ_DIR$\..\..\..\..\utils\locator.c + + + $PROJ_DIR$\..\..\..\..\utils\lwiplib.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/enet_weather/enet_weather.h b/boards/ek-tm4c1294xl/enet_weather/enet_weather.h new file mode 100644 index 0000000..9689fa9 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/enet_weather.h @@ -0,0 +1,133 @@ +//***************************************************************************** +// +// commands.h - Header file for commandline functions in qs-cloud +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __ENET_WEATER_H__ +#define __ENET_WEATER_H__ + +#include +#include + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Defines for setting up the system tick clock. +// +//***************************************************************************** +#define SYSTEM_TICK_MS 10 +#define SYSTEM_TICK_S 100 + +//***************************************************************************** +// +// Define for the cycle speed of the cities. +// +//***************************************************************************** +#define CYCLE_DELAY 3000000 + +//***************************************************************************** +// +// Define for the number of times the full city list cycles before another +// update. +// +//***************************************************************************** +#define UPDATE_CYCLES 10 + +//***************************************************************************** +// +// Define the size of the flash program blocks for saving configuration data. +// +//***************************************************************************** +#define FLASH_PB_START 0x40000 +#define FLASH_PB_END FLASH_PB_START + 0x4000 + +//***************************************************************************** +// +// Input command line buffer size. +// +//***************************************************************************** +#define APP_INPUT_BUF_SIZE 1024 + +//***************************************************************************** +// +// The flash parameter block structure. +// +//***************************************************************************** +typedef struct +{ + // + // Reserved space used by the flash program block code. + // + uint32_t ui32PBReserved; + + // + // The custom city name. + // + char pcCustomCity[60]; + + // + // The web proxy name. + // + char pcProxy[80]; + + // + // The current temperature unit setting. + // + bool bCelsius; + + // + // Current enable/disable setting for the custom city. + // + bool bCustomEnabled; + + // + // Current enable/disable setting for the proxy. + // + bool bProxyEnabled; + + // + // Indicates whether the current settings have been saved. + // + bool bSave; +} +sParameters; + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __ENET_WEATER_H__ diff --git a/boards/ek-tm4c1294xl/enet_weather/enet_weather.icf b/boards/ek-tm4c1294xl/enet_weather/enet_weather.icf new file mode 100644 index 0000000..de11d88 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/enet_weather.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// enet_weather.icf - Linker configuration file for enet_weather. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/enet_weather/enet_weather.ld b/boards/ek-tm4c1294xl/enet_weather/enet_weather.ld new file mode 100644 index 0000000..9dc80a2 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/enet_weather.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * enet_weather.ld - Linker configuration file for enet_weather. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/enet_weather/enet_weather.sct b/boards/ek-tm4c1294xl/enet_weather/enet_weather.sct new file mode 100644 index 0000000..c58ab2d --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/enet_weather.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; enet_weather.sct - Linker configuration file for enet_weather. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/enet_weather/enet_weather.uvopt b/boards/ek-tm4c1294xl/enet_weather/enet_weather.uvopt new file mode 100644 index 0000000..2119df1 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/enet_weather.uvopt @@ -0,0 +1,457 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + enet_weather + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\cmdline.c + cmdline.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\commands.c + commands.c + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\enet_weather.c + enet_weather.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\eth_client.c + eth_client.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\flash_pb.c + flash_pb.c + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\http.c + http.c + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\images.c + images.c + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\json.c + json.c + + + 1 + 9 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\locator.c + locator.c + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\lwiplib.c + lwiplib.c + + + 1 + 11 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 12 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 13 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 14 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 15 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 16 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/enet_weather/enet_weather.uvproj b/boards/ek-tm4c1294xl/enet_weather/enet_weather.uvproj new file mode 100644 index 0000000..97d5787 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/enet_weather.uvproj @@ -0,0 +1,484 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + enet_weather + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + enet_weather + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\enet_weather.bin .\rvmdk\enet_weather.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 LWIP_1_4_1 USE_HTTP_1_0 UART_BUFFERED + + .;..;..\..\..\..;..\..\..\..\third_party\lwip-1.4.1\apps;..\..\..\..\third_party\lwip-1.4.1\ports\tiva-tm4c129\include;..\..\..\..\third_party\lwip-1.4.1\src\include;..\..\..\..\third_party\lwip-1.4.1\src\include\ipv4;..\..\..\..\third_party; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + enet_weather.sct + + + --entry Reset_Handler + + + + + + + + Source + + + cmdline.c + 1 + ..\..\..\..\utils\cmdline.c + + + commands.c + 1 + .\commands.c + + + enet_weather.c + 1 + .\enet_weather.c + + + eth_client.c + 1 + .\eth_client.c + + + flash_pb.c + 1 + ..\..\..\..\utils\flash_pb.c + + + http.c + 1 + ..\drivers\http.c + + + images.c + 1 + .\images.c + + + json.c + 1 + .\json.c + + + locator.c + 1 + ..\..\..\..\utils\locator.c + + + lwiplib.c + 1 + ..\..\..\..\utils\lwiplib.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/enet_weather/enet_weather_ccs.cmd b/boards/ek-tm4c1294xl/enet_weather/enet_weather_ccs.cmd new file mode 100644 index 0000000..e1ac7b0 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/enet_weather_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * enet_weather_ccs.cmd - CCS linker configuration file for enet_weather. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 2048; diff --git a/boards/ek-tm4c1294xl/enet_weather/eth_client.c b/boards/ek-tm4c1294xl/enet_weather/eth_client.c new file mode 100644 index 0000000..39fa07c --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/eth_client.c @@ -0,0 +1,1310 @@ +//***************************************************************************** +// +// eth_client.c - This file handles all of the Ethernet connections using lwIP. +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#include +#include +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/flash.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/sysctl.h" +#include "utils/lwiplib.h" +#include "lwip/dns.h" +#include "driverlib/systick.h" +#include "lwip/dns.h" +#include "eth_client.h" +#include "json.h" + +//***************************************************************************** +// +// Flag indexes for g_sEnet.ui32Flags +// +//***************************************************************************** +#define FLAG_TIMER_DHCP_EN 0 +#define FLAG_TIMER_DNS_EN 1 +#define FLAG_TIMER_TCP_EN 2 +#define FLAG_DHCP_STARTED 3 +#define FLAG_DNS_ADDRFOUND 4 + +//***************************************************************************** +// +// g_sEnet.ulRequest Values +// +//***************************************************************************** +#define WEATHER_NONE 0 +#define WEATHER_CURRENT 1 +#define WEATHER_FORECAST 2 + +//***************************************************************************** +// +// The current state of the Ethernet connection. +// +//***************************************************************************** +struct +{ + volatile uint32_t ui32Flags; + + // + // Array to hold the MAC addresses. + // + uint8_t pui8MACAddr[8]; + + // + // Global define of the TCP structure used. + // + struct tcp_pcb *psTCP; + + // + // Global IP structure to hold a copy of the IP address. + // + struct ip_addr sLocalIP; + + // + // Global IP structure to hold a copy of the DNS resolved address. + // + struct ip_addr sServerIP; + + // + // The saved proxy name as a text string. + // + const char *pcProxyName; + + volatile enum + { + iEthNoConnection, + iEthDHCPWait, + iEthDHCPComplete, + iEthDNSWait, + iEthTCPConnectWait, + iEthTCPConnectComplete, + iEthQueryWait, + iEthTCPOpen, + iEthIdle + } eState; + + unsigned long ulRequest; + + tEventFunction pfnEvent; +} +g_sEnet; + +//***************************************************************************** +// +// Maximum size of an weather request. +// +//***************************************************************************** +#define MAX_REQUEST 256 + +extern uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// Various strings used to access weather information on the web. +// +//***************************************************************************** +static const char g_cWeatherRequest[] = + "GET http://api.openweathermap.org/data/2.5/weather?q="; + +static const char g_cWeatherRequestForecast[] = + "GET http://api.openweathermap.org/data/2.5/forecast/daily?q="; +static const char g_cMode[] = "&mode=json&units=metric"; + +static char g_cAPPIDOpenWeather[] = + "&APIID=afc5370fef1dfec1666a5676346b163b"; +static char g_cHTTP11[] = " HTTP/1.0\r\n\r\n"; + +//***************************************************************************** +// +// This structure holds the state and control values for the weather requests. +// +//***************************************************************************** +struct +{ + // + // The current weather source. + // + tWeatherSource eWeatherSource; + + // + // The format expected from the weather source. + // + enum + { + iFormatJSON + } + eFormat; + + // + // The application provided callback function. + // + tEventFunction pfnEvent; + + // + // The application provided weather information structure. + // + tWeatherReport *psWeatherReport; + + // + // The local buffer used to store the current weather request. + // + char pcRequest[MAX_REQUEST]; + + // + // The number of valid bytes in the request. + // + uint32_t ui32RequestSize; +} +g_sWeather; + +//***************************************************************************** +// +// Close an active connection. +// +//***************************************************************************** +void +EthClientReset(void) +{ + // + // No longer have a link. + // + g_sEnet.eState = iEthNoConnection; + + // + // Reset the flags to just enable the lwIP timer. + // + g_sEnet.ui32Flags = (1 << FLAG_TIMER_DHCP_EN); + + // + // Reset the addresses. + // + g_sEnet.sLocalIP.addr = 0; + g_sEnet.sServerIP.addr = 0; + + // + // Deallocate the TCP structure if it was already allocated. + // + if(g_sEnet.psTCP) + { + // + // Clear out all of the TCP callbacks. + // + tcp_sent(g_sEnet.psTCP, NULL); + tcp_recv(g_sEnet.psTCP, NULL); + tcp_err(g_sEnet.psTCP, NULL); + + // + // Close the TCP connection. + // + tcp_close(g_sEnet.psTCP); + g_sEnet.psTCP = 0; + } +} + +//***************************************************************************** +// +// Handles lwIP TCP/IP errors. +// +// \param vPArg is the state data for this connection. +// \param iErr is the error that was detected. +// +// This function is called when the lwIP TCP/IP stack has detected an error. +// The connection is no longer valid. +// +// \return None. +// +//***************************************************************************** +static void +TCPError(void *vPArg, err_t iErr) +{ +} + +//***************************************************************************** +// +// Finalizes the TCP connection in client mode. +// +// \param pvArg is the state data for this connection. +// \param psPcb is the pointer to the TCP control structure. +// \param psBuf is the buffer structure that holds the data for this receive +// event. +// \param iErr is not used in this implementation. +// +// This function is called when the lwIP TCP/IP stack has completed a TCP +// connection. +// +// \return This function will return an lwIP defined error code. +// +//***************************************************************************** +static err_t +TCPReceive(void *pvArg, struct tcp_pcb *psPcb, struct pbuf *psBuf, err_t iErr) +{ + struct pbuf *psBufCur; + int32_t i32Items; + + if(psBuf == 0) + { + // + // Tell the application that the connection was closed. + // + if(g_sWeather.pfnEvent) + { + g_sWeather.pfnEvent(ETH_EVENT_CLOSE, 0, 0); + g_sWeather.pfnEvent = 0; + } + + // + // Close out the port. + // + tcp_close(psPcb); + + if(psPcb == g_sEnet.psTCP) + { + g_sEnet.psTCP = 0; + } + + g_sEnet.eState = iEthIdle; + + return(ERR_OK); + } + + if(g_sEnet.eState == iEthQueryWait) + { + if(g_sEnet.ulRequest == WEATHER_CURRENT) + { + // + // Read items from the buffer. + // + i32Items = JSONParseCurrent(0, g_sWeather.psWeatherReport, psBuf); + + // + // Make sure some items were found. + // + if(i32Items > 0) + { + if(g_sWeather.pfnEvent) + { + g_sWeather.pfnEvent(ETH_EVENT_RECEIVE, + (void *)g_sWeather.psWeatherReport, 0); + + // + // Clear the event function and return to the idle state. + // + g_sEnet.eState = iEthIdle; + } + } + else if(i32Items < 0) + { + if(g_sWeather.pfnEvent) + { + // + // This was not a valid request. + // + g_sWeather.pfnEvent(ETH_EVENT_INVALID_REQ, 0, 0); + + // + // Clear the event function and return to the idle state. + // + g_sEnet.eState = iEthIdle; + } + } + } + else if(g_sEnet.ulRequest == WEATHER_FORECAST) + { + // + // Read items from the buffer. + // + i32Items = JSONParseForecast(0, g_sWeather.psWeatherReport, psBuf); + + if(i32Items > 0) + { + if(g_sWeather.pfnEvent) + { + g_sWeather.pfnEvent(ETH_EVENT_RECEIVE, + (void *)g_sWeather.psWeatherReport, 0); + + // + // Clear the event function and return to the idle state. + // + g_sEnet.eState = iEthIdle; + } + } + else if(i32Items < 0) + { + if(g_sWeather.pfnEvent) + { + // + // This was not a valid request. + // + g_sWeather.pfnEvent(ETH_EVENT_INVALID_REQ, 0, 0); + + // + // Clear the event function and return to the idle state. + // + g_sEnet.eState = iEthIdle; + } + } + } + } + else + { + // + // Go to idle state. + // + g_sEnet.eState = iEthIdle; + } + + // + // Initialize the linked list pointer to parse. + // + psBufCur = psBuf; + + // + // Free the buffers used since they have been processed. + // + while(psBufCur->len != 0) + { + // + // Indicate that you have received and processed this set of TCP data. + // + tcp_recved(psPcb, psBufCur->len); + + // + // Go to the next buffer. + // + psBufCur = psBufCur->next; + + // + // Terminate if there are no more buffers. + // + if(psBufCur == 0) + { + break; + } + } + + // + // Free the memory space allocated for this receive. + // + pbuf_free(psBuf); + + // + // Return. + // + return(ERR_OK); +} + +//***************************************************************************** +// +// Handles acknowledgment of data transmitted via Ethernet. +// +// \param pvArg is the state data for this connection. +// \param psPcb is the pointer to the TCP control structure. +// \param ui16Len is the length of the data transmitted. +// +// This function is called when the lwIP TCP/IP stack has received an +// acknowledgment for data that has been transmitted. +// +// \return This function will return an lwIP defined error code. +// +//***************************************************************************** +static err_t +TCPSent(void *pvArg, struct tcp_pcb *psPcb, u16_t ui16Len) +{ + // + // Return OK. + // + return (ERR_OK); +} + +//***************************************************************************** +// +// Finalizes the TCP connection in client mode. +// +// \param pvArg is the state data for this connection. +// \param psPcb is the pointer to the TCP control structure. +// \param iErr is not used in this implementation. +// +// This function is called when the lwIP TCP/IP stack has completed a TCP +// connection. +// +// \return This function will return an lwIP defined error code. +// +//***************************************************************************** +static err_t +TCPConnected(void *pvArg, struct tcp_pcb *psPcb, err_t iErr) +{ + // + // Check if there was a TCP error. + // + if(iErr != ERR_OK) + { + // + // Clear out all of the TCP callbacks. + // + tcp_sent(psPcb, NULL); + tcp_recv(psPcb, NULL); + tcp_err(psPcb, NULL); + + // + // Close the TCP connection. + // + tcp_close(psPcb); + + if(psPcb == g_sEnet.psTCP) + { + g_sEnet.psTCP = 0; + } + + // + // And return. + // + return (ERR_OK); + } + + // + // Setup the TCP receive function. + // + tcp_recv(psPcb, TCPReceive); + + // + // Setup the TCP error function. + // + tcp_err(psPcb, TCPError); + + // + // Setup the TCP sent callback function. + // + tcp_sent(psPcb, TCPSent); + + // + // Connection is complete. + // + g_sEnet.eState = iEthTCPConnectComplete; + + // + // Return a success code. + // + return(ERR_OK); +} + +//***************************************************************************** +// +// TCP connect +// +// This function attempts to connect to a TCP endpoint. +// +// \return None. +// +//***************************************************************************** +err_t +EthClientTCPConnect(uint32_t ui32Port) +{ + err_t eTCPReturnCode; + + // + // Enable the TCP timer function calls. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_TCP_EN) = 1; + + if(g_sEnet.psTCP) + { + // + // Initially clear out all of the TCP callbacks. + // + tcp_sent(g_sEnet.psTCP, NULL); + tcp_recv(g_sEnet.psTCP, NULL); + tcp_err(g_sEnet.psTCP, NULL); + + // + // Make sure there is no lingering TCP connection. + // + tcp_close(g_sEnet.psTCP); + } + + // + // Create a new TCP socket. + // + g_sEnet.psTCP = tcp_new(); + + // + // Check if you need to go through a proxy. + // + if(g_sEnet.pcProxyName != 0) + { + // + // Attempt to connect through the proxy server. + // + eTCPReturnCode = tcp_connect(g_sEnet.psTCP, &g_sEnet.sServerIP, + ui32Port, TCPConnected); + } + else + { + // + // Attempt to connect to the server directly. + // + eTCPReturnCode = tcp_connect(g_sEnet.psTCP, &g_sEnet.sServerIP, + ui32Port, TCPConnected); + } + + return(eTCPReturnCode); +} + +//***************************************************************************** +// +// TCP connect +// +// This function attempts to connect to a TCP endpoint. +// +// \return None. +// +//***************************************************************************** +void +EthClientTCPDisconnect(void) +{ + // + // No longer have a link. + // + g_sEnet.eState = iEthNoConnection; + + // + // Deallocate the TCP structure if it was already allocated. + // + if(g_sEnet.psTCP) + { + // + // Close the TCP connection. + // + tcp_close(g_sEnet.psTCP); + g_sEnet.psTCP = 0; + } +} + +//***************************************************************************** +// +// Handler function when the DNS server gets a response or times out. +// +// \param pcName is DNS server name. +// \param psIPAddr is the DNS server's IP address. +// \param vpArg is the configurable argument. +// +// This function is called when the DNS server resolves an IP or times out. +// If the DNS server returns an IP structure that is not NULL, add the IP to +// to the g_sEnet.sServerIP IP structure. +// +// \return None. +// +//***************************************************************************** +static void +DNSServerFound(const char *pcName, struct ip_addr *psIPAddr, void *vpArg) +{ + // + // Check if a valid DNS server address was found. + // + if(psIPAddr != NULL) + { + // + // Copy the returned IP address into a global IP address. + // + g_sEnet.sServerIP = *psIPAddr; + + // + // Tell the main program that a DNS address was found. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_DNS_ADDRFOUND) = 1; + } + else + { + // + // Disable the DNS timer. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) = 0; + } +} + +//***************************************************************************** +// +// Required by lwIP library to support any host-related timer functions. +// +//***************************************************************************** +void +lwIPHostTimerHandler(void) +{ +} + +//***************************************************************************** +// +// Send a request to the server +// +// \param pcRequest request to be sent +// \param ui32Size length of the request to be sent. this is usually the size +// of the request minus the termination character +// +// This function will send the request to the connected server +// +// \return the lwIP error code. +// +//***************************************************************************** +err_t +EthClientSend(char *pcRequest, uint32_t ui32Size) +{ + err_t eError; + + eError = tcp_write(g_sEnet.psTCP, pcRequest, ui32Size, + TCP_WRITE_FLAG_COPY); + + // + // Write data for sending (but does not send it immediately). + // + if(eError == ERR_OK) + { + // + // Find out what we can send and send it + // + tcp_output(g_sEnet.psTCP); + } + + return(eError); +} + +//***************************************************************************** +// +// DHCP connect +// +// This function obtains the MAC address from the User registers, starts the +// DHCP timer and blocks until an IP address is obtained. +// +// \return None. +// +//***************************************************************************** +err_t +EthClientDHCPConnect(void) +{ + // + // Check if the DHCP has already been started. + // + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_DHCP_STARTED) == 0) + { + // + // Set the DCHP started flag. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_DHCP_STARTED) = 1; + } + else + { + // + // If DHCP has already been started, we need to clear the IPs and + // switch to static. This forces the LWIP to get new IP address + // and retry the DHCP connection. + // + lwIPNetworkConfigChange(0, 0, 0, IPADDR_USE_STATIC); + + // + // Restart the DHCP connection. + // + lwIPNetworkConfigChange(0, 0, 0, IPADDR_USE_DHCP); + } + + return ERR_OK; +} + +//***************************************************************************** +// +// Handler function when the DNS server gets a response or times out. +// +// \param pcName is DNS server name. +// +// This function is called when the DNS server resolves an IP or times out. +// If the DNS server returns an IP structure that is not NULL, add the IP to +// to the g_sEnet.sServerIP IP structure. +// +// \return None. +// +//***************************************************************************** +int32_t +EthClientDNSResolve(const char *pcName) +{ + err_t iRet; + + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN)) + { + return(ERR_INPROGRESS); + } + + // + // Set DNS config timer to true. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) = 1; + + // + // Initialize the host name IP address found flag to false. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_DNS_ADDRFOUND) = 0; + + // + // Resolve host name. + // + iRet = dns_gethostbyname(pcName, &g_sEnet.sServerIP, DNSServerFound, 0); + + // + // If ERR_OK is returned, the local DNS table resolved the host name. If + // ERR_INPROGRESS is returned, the DNS request has been queued and will be + // sent to the DNS server. + // + if(iRet == ERR_OK) + { + // + // Stop calling the DNS timer function. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) = 0; + } + + // + // Return host name not found. + // + return(iRet); +} + +//***************************************************************************** +// +// Returns the IP address for this interface. +// +// This function will read and return the currently assigned IP address for +// the Tiva Ethernet interface. +// +// \return Returns the assigned IP address for this interface. +// +//***************************************************************************** +uint32_t +EthClientAddrGet(void) +{ + // + // Return IP. + // + return(lwIPLocalIPAddrGet()); +} + +//***************************************************************************** +// +// Returns the weather server IP address for this interface. +// +// This function will read and return the weather server IP address that is +// currently in use. This could be the proxy server if the Internet proxy +// is enabled. +// +// \return Returns the weather server IP address for this interface. +// +//***************************************************************************** +uint32_t +EthClientServerAddrGet(void) +{ + // + // Return IP. + // + return((uint32_t)g_sEnet.sServerIP.addr); +} + +//***************************************************************************** +// +// Returns the MAC address for the Tiva Ethernet controller. +// +// \param pui8MACAddr is the 6 byte MAC address assigned to the Ethernet +// controller. +// +// This function will read and return the MAC address for the Ethernet +// controller. +// +// \return Returns the weather server IP address for this interface. +// +//***************************************************************************** +void +EthClientMACAddrGet(uint8_t *pui8MACAddr) +{ + int32_t iIdx; + + for(iIdx = 0; iIdx < 6; iIdx++) + { + pui8MACAddr[iIdx] = g_sEnet.pui8MACAddr[iIdx]; + } +} + +//***************************************************************************** +// +// Set the proxy string for the Ethernet connection. +// +// \param pcProxyName is the string used as the proxy server name. +// +// This function sets the current proxy used by the Ethernet connection. The +// \e pcProxyName value can be 0 to indicate that no proxy is in use or it can +// be a pointer to a string that holds the name of the proxy server to use. +// The content of the pointer passed to \e pcProxyName should not be changed +// after this call as this function only stores the pointer and does not copy +// the data from this pointer. +// +// \return None. +// +//***************************************************************************** +void +EthClientProxySet(const char *pcProxyName) +{ + // + // Save the new proxy string. + // + g_sEnet.pcProxyName = pcProxyName; + + // + // Reset the connection on any change to the proxy. + // + EthClientReset(); +} + +//***************************************************************************** +// +// Initialize the Ethernet client +// +// This function initializes all the Ethernet components to not configured. +// This tells the SysTick interrupt which timer modules to call. +// +// \return None. +// +//***************************************************************************** +void +EthClientInit(tEventFunction pfnEvent) +{ + uint32_t ui32User0, ui32User1; + + // + // Initialize all the Ethernet components to not configured. This tells + // the SysTick interrupt which timer modules to call. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DHCP_EN) = 0; + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) = 0; + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_TCP_EN) = 0; + + g_sEnet.eState = iEthNoConnection; + + g_sEnet.pfnEvent = pfnEvent; + + // + // Convert the 24/24 split MAC address from NV ram into a 32/16 split MAC + // address needed to program the hardware registers, then program the MAC + // address into the Ethernet Controller registers. + // + FlashUserGet(&ui32User0, &ui32User1); + + g_sEnet.pui8MACAddr[0] = ((ui32User0 >> 0) & 0xff); + g_sEnet.pui8MACAddr[1] = ((ui32User0 >> 8) & 0xff); + g_sEnet.pui8MACAddr[2] = ((ui32User0 >> 16) & 0xff); + g_sEnet.pui8MACAddr[3] = ((ui32User1 >> 0) & 0xff); + g_sEnet.pui8MACAddr[4] = ((ui32User1 >> 8) & 0xff); + g_sEnet.pui8MACAddr[5] = ((ui32User1 >> 16) & 0xff); + + lwIPInit(g_ui32SysClock, g_sEnet.pui8MACAddr, 0, 0, 0, IPADDR_USE_DHCP); + + // + // Start lwIP tick interrupt. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DHCP_EN) = 1; +} + +//***************************************************************************** +// +// Periodic Tick for the Ethernet client +// +// This function is the needed periodic tick for the Ethernet client. It needs +// to be called periodically through the use of a timer or systick. +// +// \return None. +// +//***************************************************************************** +void +EthClientTick(uint32_t ui32TickMS) +{ + uint32_t ui32IPAddr; + int32_t i32Ret; + + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DHCP_EN)) + { + lwIPTimer(ui32TickMS); + } + + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN)) + { + dns_tmr(); + } + + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_TCP_EN)) + { + tcp_tmr(); + } + + // + // Check for loss of link. + // + if((g_sEnet.eState != iEthNoConnection) && + (lwIPLocalIPAddrGet() == 0xffffffff)) + { + // + // Reset the connection due to a loss of link. + // + EthClientReset(); + + // + // Signal a disconnect event. + // + g_sEnet.pfnEvent(ETH_EVENT_DISCONNECT, 0, 0); + } + else if(g_sEnet.eState == iEthNoConnection) + { + // + // Once link is detected start DHCP. + // + if(lwIPLocalIPAddrGet() != 0xffffffff) + { + EthClientDHCPConnect(); + + g_sEnet.eState = iEthDHCPWait; + } + } + else if(g_sEnet.eState == iEthDHCPWait) + { + // + // Get IP address. + // + ui32IPAddr = lwIPLocalIPAddrGet(); + + // + // If IP Address has not yet been assigned, update the display + // accordingly. + // + if((ui32IPAddr != 0xffffffff) && (ui32IPAddr != 0)) + { + // + // Update the DHCP IP address. + // + g_sEnet.sLocalIP.addr = ui32IPAddr; + + g_sEnet.eState = iEthDHCPComplete; + + // + // Stop DHCP timer since an address has been provided. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_DHCP_STARTED) = 0; + } + } + else if(g_sEnet.eState == iEthDHCPComplete) + { + if(g_sEnet.pcProxyName == 0) + { + // + // Resolve the host by name. + // + i32Ret = EthClientDNSResolve("api.openweathermap.org"); + } + else + { + // + // Resolve the proxy by name. + // + i32Ret = EthClientDNSResolve(g_sEnet.pcProxyName); + } + + if(i32Ret == ERR_OK) + { + // + // If the address was already returned then go to idle. + // + g_sEnet.eState = iEthIdle; + + // + // Notify the main routine of the new Ethernet connection. + // + g_sEnet.pfnEvent(ETH_EVENT_CONNECT, &g_sEnet.sLocalIP.addr, 4); + } + else if(i32Ret == ERR_INPROGRESS) + { + // + // If the request is pending the go to the iEthDNSWait state. + // + g_sEnet.eState = iEthDNSWait; + } + } + else if(g_sEnet.eState == iEthDNSWait) + { + // + // Check if the host name was resolved. + // + if(HWREGBITW(&g_sEnet.ui32Flags, FLAG_DNS_ADDRFOUND)) + { + // + // Stop calling the DNS timer function. + // + HWREGBITW(&g_sEnet.ui32Flags, FLAG_TIMER_DNS_EN) = 0; + + g_sEnet.eState = iEthIdle; + + // + // Notify the main routine of the new Ethernet connection. + // + g_sEnet.pfnEvent(ETH_EVENT_CONNECT, &g_sEnet.sLocalIP.addr, 4); + } + } + else if(g_sEnet.eState == iEthTCPConnectWait) + { + } + else if(g_sEnet.eState == iEthTCPConnectComplete) + { + err_t eError; + + g_sEnet.eState = iEthTCPOpen; + + eError = EthClientSend(g_sWeather.pcRequest, + g_sWeather.ui32RequestSize); + + if(eError == ERR_OK) + { + // + // Waiting on a query response. + // + g_sEnet.eState = iEthQueryWait; + } + else + { + g_sEnet.eState = iEthIdle; + } + } +} + +//***************************************************************************** +// +// Set the current weather source. +// +//***************************************************************************** +void +WeatherSourceSet(tWeatherSource eWeatherSource) +{ + // + // Save the source. + // + g_sWeather.eWeatherSource = eWeatherSource; + g_sWeather.eFormat = iFormatJSON; +} + +//***************************************************************************** +// +// Merges strings into the current request at a given pointer and offset. +// +//***************************************************************************** +static int32_t +MergeRequest(int32_t i32Offset, const char *pcSrc, int32_t i32Size, + bool bReplaceSpace) +{ + int32_t i32Idx; + + // + // Copy the base request to the buffer. + // + for(i32Idx = 0; i32Idx < i32Size; i32Idx++) + { + if((pcSrc[i32Idx] == ' ') && (bReplaceSpace)) + { + if((i32Offset + 3) >= sizeof(g_sWeather.pcRequest)) + { + break; + } + g_sWeather.pcRequest[i32Offset++] = '%'; + g_sWeather.pcRequest[i32Offset++] = '2'; + g_sWeather.pcRequest[i32Offset] = '0'; + } + else + { + g_sWeather.pcRequest[i32Offset] = pcSrc[i32Idx]; + } + + if((i32Offset >= sizeof(g_sWeather.pcRequest)) || + (pcSrc[i32Idx] == 0)) + { + break; + } + + i32Offset++; + } + + return(i32Offset); +} + +//***************************************************************************** +// +// Gets the daily forecast for a given city. +// +//***************************************************************************** +int32_t +WeatherForecast(tWeatherSource eWeatherSource, const char *pcQuery, + tWeatherReport *psWeatherReport, tEventFunction pfnEvent) +{ + int32_t i32Idx; + const char pcCount[] = "&cnt=1"; + + // + // If the requested source is not valid or there is no call back then + // just fail. + // + if((eWeatherSource != iWSrcOpenWeatherMap) || (g_sWeather.pfnEvent)) + { + return (-1); + } + + g_sWeather.pfnEvent = pfnEvent; + g_sWeather.psWeatherReport = psWeatherReport; + + // + // Connect or reconnect to port 80. + // + g_sEnet.eState = iEthTCPConnectWait; + + // + // Copy the base forecast request to the buffer. + // + i32Idx = MergeRequest(0, g_cWeatherRequestForecast, + sizeof(g_cWeatherRequestForecast), false); + + // + // Append the request. + // + i32Idx = MergeRequest(i32Idx, pcQuery, sizeof(g_sWeather.pcRequest), + true); + + // + // Append the request mode. + // + i32Idx = MergeRequest(i32Idx, g_cMode, sizeof(g_cMode), false); + + // + // Append the count. + // + i32Idx = MergeRequest(i32Idx, pcCount, sizeof(pcCount), false); + + // + // Append the App ID. + // + i32Idx = MergeRequest(i32Idx, g_cAPPIDOpenWeather, + sizeof(g_cAPPIDOpenWeather), false); + + // + // Append the "HTTP:/1.1" string. + // + i32Idx = MergeRequest(i32Idx, g_cHTTP11, sizeof(g_cHTTP11), false); + + // + // Forcast weather report request. + // + g_sEnet.ulRequest = WEATHER_FORECAST; + + if(EthClientTCPConnect(80) != ERR_OK) + { + return(-1); + } + + // + // Save the size of the request. + // + g_sWeather.ui32RequestSize = i32Idx; + + return(0); +} + +//***************************************************************************** +// +// Gets the current weather information for a given city. +// +//***************************************************************************** +int32_t +WeatherCurrent(tWeatherSource eWeatherSource, const char *pcQuery, + tWeatherReport *psWeatherReport, tEventFunction pfnEvent) +{ + int32_t i32Idx; + + // + // If the requested source is not valid or there is no call back then + // just fail. + // + if((eWeatherSource != iWSrcOpenWeatherMap) || (g_sWeather.pfnEvent)) + { + return (-1); + } + + g_sWeather.pfnEvent = pfnEvent; + g_sWeather.psWeatherReport = psWeatherReport; + + // + // Copy the base current request to the buffer. + // + i32Idx = MergeRequest(0, g_cWeatherRequest, sizeof(g_cWeatherRequest), + false); + + // + // Append the request. + // + i32Idx = MergeRequest(i32Idx, pcQuery, sizeof(g_sWeather.pcRequest), true); + + // + // Append the request mode. + // + i32Idx = MergeRequest(i32Idx, g_cMode, sizeof(g_cMode), false); + + // + // Append the App ID. + // + i32Idx = MergeRequest(i32Idx, g_cAPPIDOpenWeather, + sizeof(g_cAPPIDOpenWeather), false); + + // + // Append the "HTTP:/1.1" string. + // + i32Idx = MergeRequest(i32Idx, g_cHTTP11, sizeof(g_cHTTP11), false); + + // + // Save the size of this request. + // + g_sWeather.ui32RequestSize = i32Idx; + + // + // Connect or reconnect to port 80. + // + g_sEnet.eState = iEthTCPConnectWait; + + // + // Current weather report request. + // + g_sEnet.ulRequest = WEATHER_CURRENT; + + // + // Connect to server + // + if(EthClientTCPConnect(80) != ERR_OK) + { + return(-1); + } + + return(0); +} + diff --git a/boards/ek-tm4c1294xl/enet_weather/eth_client.h b/boards/ek-tm4c1294xl/enet_weather/eth_client.h new file mode 100644 index 0000000..efbfd56 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/eth_client.h @@ -0,0 +1,163 @@ +//***************************************************************************** +// +// eth_client.h - Prototypes for the driver for the eth_client. +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#ifndef ETH_CLIENT_H_ +#define ETH_CLIENT_H_ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Events passed back to the application. +// +//***************************************************************************** +#define ETH_EVENT_RECEIVE 0x00000001 +#define ETH_EVENT_CONNECT 0x00000002 +#define ETH_EVENT_DISCONNECT 0x00000003 +#define ETH_EVENT_CLOSE 0x00000004 +#define ETH_EVENT_INVALID_REQ 0x00000005 + +//***************************************************************************** +// +// The weather access methods. +// +//***************************************************************************** +typedef enum +{ + // + // openweathermap.org. + // + iWSrcOpenWeatherMap +} +tWeatherSource; + +//***************************************************************************** +// +// Generic weather reporting structure. +// +//***************************************************************************** +typedef struct +{ + // + // The brief weather description, this is caller provided. + // + const char *pcDescription; + + // + // The current temperature(units determined by caller). + // + int32_t i32Temp; + + // + // The daily high temperature(units determined by caller). + // + int32_t i32TempHigh; + + // + // The daily low temperature(units determined by caller). + // + int32_t i32TempLow; + + // + // The current humidity(units determined by caller). + // + int32_t i32Humidity; + + // + // The current atmospheric pressure(units determined by caller). + // + int32_t i32Pressure; + + // + // The last time these values were update (GMT Unix time). + // + uint32_t ui32Time; + + // + // The sunrise time (GMT Unix time). + // + uint32_t ui32SunRise; + + // + // The sunset time (GMT Unix time). + // + uint32_t ui32SunSet; + + // + // Icon image. + // + const uint8_t *pui8Image; +} +tWeatherReport; + +//***************************************************************************** +// +// The type definition for event functions. +// +//***************************************************************************** +typedef void (* tEventFunction)(uint32_t ui32Event, void* pvData, + uint32_t ui32Param); + +//***************************************************************************** +// +// Exported Ethernet function prototypes. +// +//***************************************************************************** +extern void EthClientInit(tEventFunction pfnEvent); +extern void EthClientProxySet(const char *pcProxyName); +extern void EthClientTick(uint32_t ui32TickMS); +extern uint32_t EthClientAddrGet(void); +extern void EthClientMACAddrGet(uint8_t *pui8Addr); +extern uint32_t EthClientServerAddrGet(void); +extern void EthClientReset(void); +void EthClientTCPDisconnect(void); + +//***************************************************************************** +// +// Exported weather related prototypes. +// +//***************************************************************************** +extern void WeatherSourceSet(tWeatherSource eWeatherSource); +extern int32_t WeatherCurrent(tWeatherSource eWeatherSource, + const char *pcQuery, + tWeatherReport *psWeather, + tEventFunction pfnEvent); +extern int32_t WeatherForecast(tWeatherSource eWeatherSource, + const char *pcQuery, + tWeatherReport *psWeather, + tEventFunction pfnEvent); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/boards/ek-tm4c1294xl/enet_weather/ewarm/Exe/enet_weather.bin b/boards/ek-tm4c1294xl/enet_weather/ewarm/Exe/enet_weather.bin new file mode 100644 index 0000000..964f32f Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_weather/ewarm/Exe/enet_weather.bin differ diff --git a/boards/ek-tm4c1294xl/enet_weather/ewarm/Exe/enet_weather.out b/boards/ek-tm4c1294xl/enet_weather/ewarm/Exe/enet_weather.out new file mode 100644 index 0000000..2f10a2d Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_weather/ewarm/Exe/enet_weather.out differ diff --git a/boards/ek-tm4c1294xl/enet_weather/gcc/enet_weather.axf b/boards/ek-tm4c1294xl/enet_weather/gcc/enet_weather.axf new file mode 100644 index 0000000..31133ae Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_weather/gcc/enet_weather.axf differ diff --git a/boards/ek-tm4c1294xl/enet_weather/gcc/enet_weather.bin b/boards/ek-tm4c1294xl/enet_weather/gcc/enet_weather.bin new file mode 100644 index 0000000..f21957f Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_weather/gcc/enet_weather.bin differ diff --git a/boards/ek-tm4c1294xl/enet_weather/images.c b/boards/ek-tm4c1294xl/enet_weather/images.c new file mode 100644 index 0000000..5f4aa76 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/images.c @@ -0,0 +1,111 @@ +//***************************************************************************** +// +// images.c - The image sets for the various weather conditions. +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include + +//***************************************************************************** +// +// Sun Image +// +//***************************************************************************** +const uint8_t g_pui8SunImage; + +//***************************************************************************** +// +// Cloudy Image +// +//***************************************************************************** +const uint8_t g_pui8CloudyImage; + +//***************************************************************************** +// +// Rain Image +// +//***************************************************************************** +const uint8_t g_pui8RainImage; + +//***************************************************************************** +// +// Thunderstorm Image +// +//***************************************************************************** +const uint8_t g_pui8ThuderStormImage; + +//***************************************************************************** +// +// Fog/Mist Image +// +//***************************************************************************** +const uint8_t g_pui8FogImage; + +//***************************************************************************** +// +// Snow Image +// +//***************************************************************************** +const uint8_t g_pui8SnowImage; + +//***************************************************************************** +// +// Moon Image +// +//***************************************************************************** +const uint8_t g_pui8MoonImage; + +//***************************************************************************** +// +// Right Arrow Image +// +//***************************************************************************** +const uint8_t g_pui8RightImage; + +//***************************************************************************** +// +// Left Arrow Image +// +//***************************************************************************** +const uint8_t g_pui8LeftImage; + +//***************************************************************************** +// +// Up Tab Image +// +//***************************************************************************** +const uint8_t g_pui8UpTabImage; + +//***************************************************************************** +// +// Down Tab Image +// +//***************************************************************************** +const uint8_t g_pui8DownTabImage; + +//***************************************************************************** +// +// Texas Instrument Logo Image +// +//***************************************************************************** +uint8_t g_pui8TIImagePalette[16 * 3]; +uint8_t g_pui8TIImage; diff --git a/boards/ek-tm4c1294xl/enet_weather/images.h b/boards/ek-tm4c1294xl/enet_weather/images.h new file mode 100644 index 0000000..06b2be6 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/images.h @@ -0,0 +1,42 @@ +//***************************************************************************** +// +// images.h - The definitions for the images in the images.c file. +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __IMAGES_H__ +#define __IMAGES_H__ + +extern const uint8_t g_pui8SunImage[]; +extern const uint8_t g_pui8MoonImage[]; +extern const uint8_t g_pui8CloudyImage[]; +extern const uint8_t g_pui8RainImage[]; +extern const uint8_t g_pui8ThuderStormImage[]; +extern const uint8_t g_pui8SnowImage[]; +extern const uint8_t g_pui8FogImage[]; +extern const uint8_t g_pui8UpTabImage[]; +extern const uint8_t g_pui8DownTabImage[]; +extern const uint8_t g_pui8LeftImage[]; +extern const uint8_t g_pui8RightImage[]; +extern uint8_t g_pui8TIImagePalette[]; +extern uint8_t g_pui8TIImage[]; + +#endif diff --git a/boards/ek-tm4c1294xl/enet_weather/json.c b/boards/ek-tm4c1294xl/enet_weather/json.c new file mode 100644 index 0000000..5d6439d --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/json.c @@ -0,0 +1,843 @@ +//***************************************************************************** +// +// json.c - File to handle JSON formatted data from websites. +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +#include +#include +#include +#include +#include "utils/ustdlib.h" +#include "utils/lwiplib.h" +#include "eth_client.h" +#include "json.h" +#include "images.h" + +//**************************************************************************** +// +// The locally defined lwIP buffer parsing pointer. +// +//**************************************************************************** +typedef struct +{ + // + // A pbuf pointer from lwIP. + // + struct pbuf *psBuf; + + // + // The current index into the pbuf pointer. + // + uint32_t ui32Idx; +} +tBufPtr; + +//**************************************************************************** +// +// Initialize a buffer parsing pointer. +// +//**************************************************************************** +static void +BufPtrInit(tBufPtr *psBufPtr, struct pbuf *psBuf) +{ + psBufPtr->psBuf = psBuf; + psBufPtr->ui32Idx = 0; +} + +//**************************************************************************** +// +// Get a single byte from a parsing pointer. +// +//**************************************************************************** +static uint8_t +BufData8Get(tBufPtr *psBufPtr) +{ + return(((uint8_t *)psBufPtr->psBuf->payload)[psBufPtr->ui32Idx]); +} + +//***************************************************************************** +// +// Increment a parsing pointer by a given value. +// +//***************************************************************************** +uint32_t +BufPtrInc(tBufPtr *psBufPtr, uint32_t ui32Inc) +{ + psBufPtr->ui32Idx += ui32Inc; + + if(psBufPtr->ui32Idx >= psBufPtr->psBuf->len) + { + psBufPtr->ui32Idx = 0; + + psBufPtr->psBuf = psBufPtr->psBuf->next; + + if(psBufPtr->psBuf == 0) + { + ui32Inc = 0; + } + } + return(ui32Inc); +} + +//***************************************************************************** +// +// Return the image to use for the given icon returned from the weather update. +// +//***************************************************************************** +void +GetImage(char *pcIcon, const uint8_t **ppui8Image, const char **ppcDescription) +{ + static const struct + { + char pcId[2]; + const uint8_t *pui8Image; + const char *pcDescription; + } + pcIconTable[9] = + { + // + // Clear Sky. + // + { "01", g_pui8SunImage, "Clear Sky"}, + + // + // Light Clouds. + // + { "02", g_pui8CloudyImage, "Light Clouds"}, + + // + // Scattered Clouds. + // + { "03", g_pui8CloudyImage, "Scattered Clouds"}, + + // + // Broken Clouds. + // + { "04", g_pui8CloudyImage, "Broken Clouds"}, + + // + // Rain showers. + // + { "09", g_pui8RainImage, "Light Rain"}, + + // + // Rain. + // + { "10", g_pui8RainImage, "Rain"}, + + // + // Thunderstorms. + // + { "11", g_pui8ThuderStormImage, "Thunderstorms"}, + + // + // Snow. + // + { "13", g_pui8SnowImage, "Snow"}, + + // + // Mist/Fog. + // + { "50", g_pui8FogImage, "Mist/Fog"}, + }; + int32_t i32Idx; + + for(i32Idx = 0; i32Idx < 9; i32Idx++) + { + if((pcIcon[0] == pcIconTable[i32Idx].pcId[0]) && + (pcIcon[1] == pcIconTable[i32Idx].pcId[1])) + { + *ppui8Image = pcIconTable[i32Idx].pui8Image; + *ppcDescription = pcIconTable[i32Idx].pcDescription; + break; + } + } +} + +//***************************************************************************** +// +// Compare a string at the current location of a parsing pointer. +// +//***************************************************************************** +uint32_t +CompareString(tBufPtr *psBufPtr, const char *pcField, uint32_t ui32Size) +{ + uint32_t ui32Idx; + + for(ui32Idx = 0; ui32Idx < ui32Size; ui32Idx++) + { + if(BufData8Get(psBufPtr) == pcField[ui32Idx]) + { + if(BufPtrInc(psBufPtr, 1) != 1) + { + break; + } + } + else + { + break; + } + } + + if(ui32Idx == ui32Size) + { + return(0); + } + + return(1); +} + +//***************************************************************************** +// +// This function searches for a field from the JSON data. The field should be +// quoted in the data and immediately follow a '{' character. This can be used +// to also search for sub data in another field if the pointer to the data for +// the parent field. +// +//***************************************************************************** +static uint32_t +GetField(char *pcField, tBufPtr *psBufPtr) +{ + uint32_t ui32Curly, ui32Quote; + int32_t i32NewItem; + + ui32Curly = 0; + i32NewItem = 0; + ui32Quote = 0; + + while(1) + { + if(BufData8Get(psBufPtr) == '{') + { + ui32Curly++; + } + else if(BufData8Get(psBufPtr) == '}') + { + ui32Curly--; + + if(ui32Curly == 1) + { + ui32Quote = 0; + } + } + else if(BufData8Get(psBufPtr) == ',') + { + if((ui32Curly == 1) && ((ui32Quote & 1) == 0)) + { + ui32Quote = 0; + } + } + else if(BufData8Get(psBufPtr) == '"') + { + if((ui32Curly == 1) && (ui32Quote == 0)) + { + i32NewItem = 1; + } + ui32Quote++; + } + + if(BufPtrInc(psBufPtr, 1) != 1) + { + break; + } + + if(i32NewItem) + { + i32NewItem = 0; + if(CompareString(psBufPtr, pcField, ustrlen(pcField)) == 0) + { + while(1) + { + if(BufData8Get(psBufPtr) == ':') + { + if(BufPtrInc(psBufPtr, 1) != 1) + { + break; + } + return(1); + } + + if(BufPtrInc(psBufPtr, 1) != 1) + { + break; + } + } + return(0); + } + } + } + return(0); +} + +//***************************************************************************** +// +// This function searches for a value in a JSON item as an integer. These are +// non-quoted values so if the number is a quoted integer this function returns +// -1. If the value is found then it is returned by this function. +// +//***************************************************************************** +int32_t +GetFieldValueInt(tBufPtr *psBufPtr) +{ + int32_t i32Idx; + char pcTemp[20]; + const char *pEnd; + + i32Idx = 0; + + while(1) + { + // + // Find the end of this item. + // + if((BufData8Get(psBufPtr) == '}') || (BufData8Get(psBufPtr) == ',')) + { + // + // null terminate the string and get the value from the string in + // decimal. + // + pcTemp[i32Idx] = 0; + return(ustrtoul(pcTemp, &pEnd, 10)); + } + + // + // Should not hit a " char or something went wrong. + // + if(BufData8Get(psBufPtr) == '"') + { + break; + } + + // + // Copy the string to the local variable. + // + pcTemp[i32Idx] = BufData8Get(psBufPtr); + + if((pcTemp[i32Idx] == '\r') || (pcTemp[i32Idx] == '\n')) + { + pcTemp[i32Idx] = 0; + } + else + { + i32Idx++; + } + + if(BufPtrInc(psBufPtr, 1) != 1) + { + break; + } + + // + // Number was too large to represent. + // + if(i32Idx >= sizeof(pcTemp)) + { + break; + } + } + return(INVALID_INT); +} + +//***************************************************************************** +// +// This function searches for a value in a JSON item as quoted value. These +// values are quoted values so if the number is not a quoted value this +// function returns -1. If the quoted value is found then it is returned in +// the pcDataDest array. +// +//***************************************************************************** +int32_t +GetFieldValueString(tBufPtr *psBufPtr, char *pcDataDest, uint32_t ui32SizeDest) +{ + int32_t i32OutIdx; + + // + // The value should always start with a " char or something went wrong. + // + if(BufData8Get(psBufPtr) != '"') + { + return(-1); + } + + // + // Skip the initial " char. + // + if(BufPtrInc(psBufPtr, 1) != 1) + { + return(-1); + } + + for(i32OutIdx = 0; i32OutIdx < ui32SizeDest;) + { + // + // Either a '}', ',', or '"' ends an item. + // + if((BufData8Get(psBufPtr) == '}') || + (BufData8Get(psBufPtr) == ',') || + (BufData8Get(psBufPtr) == '"')) + { + // + // Null terminate the string and return. + // + pcDataDest[i32OutIdx] = 0; + return(i32OutIdx); + } + + // + // Continue coping chars into the destination buffer. + // + pcDataDest[i32OutIdx] = BufData8Get(psBufPtr); + + // + // These can occur in the response string and need to be ignored. + // + if((pcDataDest[i32OutIdx] == '\r') || (pcDataDest[i32OutIdx] == '\n')) + { + pcDataDest[i32OutIdx] = 0; + } + else + { + i32OutIdx++; + } + + if(BufPtrInc(psBufPtr, 1) != 1) + { + break; + } + } + + // + // Make sure to null terminate inside the current string. + // + if(i32OutIdx == ui32SizeDest) + { + pcDataDest[i32OutIdx-1] = 0; + return(i32OutIdx - 1); + } + return(-1); +} + +//***************************************************************************** +// +// Fill out the psWeatherReport structure from data returned from the JSON +// query. +// +//***************************************************************************** +int32_t +JSONParseForecast(uint32_t ui32Index, tWeatherReport *psWeatherReport, + struct pbuf *psBuf) +{ + tBufPtr sBufPtr, sBufList, sBufTemp; + char pcCode[4]; + int32_t i32Items,i32Code; + + + // + // Reset the pointers. + // + BufPtrInit(&sBufPtr, psBuf); + + // + // Check and see if the request was valid. + // + if(GetField("cod", &sBufPtr) != 0) + { + // + // Check for a 404 not found error. + // + sBufTemp = sBufPtr; + + // + // Check for a 404 not found error. + // + i32Code = GetFieldValueInt(&sBufTemp); + + sBufTemp = sBufPtr; + + if(i32Code != INVALID_INT) + { + if(i32Code == 404) + { + return(-1); + } + } + else if(GetFieldValueString(&sBufTemp, pcCode, sizeof(pcCode)) >= 0) + { + // + // Check for a 404 not found error. + // + if(ustrncmp(pcCode, "404", 3) == 0) + { + return(-1); + } + } + } + + // + // Reset the pointers. + // + BufPtrInit(&sBufPtr, psBuf); + + // + // Initialize the number of items found. + // + i32Items = 0; + + if(GetField("list", &sBufPtr) != 0) + { + // + // Save the list pointer. + // + sBufList = sBufPtr; + + // + // Get the humidity. + // + if(GetField("humidity", &sBufPtr) != 0) + { + psWeatherReport->i32Humidity = GetFieldValueInt(&sBufPtr); + i32Items++; + } + else + { + psWeatherReport->i32Humidity = INVALID_INT; + } + + // + // Reset the pointer to the start of the list values. + // + sBufPtr = sBufList; + + // + // Get the average daily pressure. + // + if(GetField("pressure", &sBufPtr) != 0) + { + psWeatherReport->i32Pressure = GetFieldValueInt(&sBufPtr); + i32Items++; + } + else + { + psWeatherReport->i32Pressure = INVALID_INT; + } + + // + // Reset the pointer to the start of the list values. + // + sBufPtr = sBufList; + + // + // Get the average daily temperature. + // + if(GetField("temp", &sBufPtr) != 0) + { + if(GetField("day", &sBufPtr) != 0) + { + psWeatherReport->i32Temp = GetFieldValueInt(&sBufPtr); + i32Items++; + } + else + { + psWeatherReport->i32Temp = INVALID_INT; + } + } + + // + // Reset the pointer to the start of the list values. + // + sBufPtr = sBufList; + + // + // Get the low temperature. + // + if(GetField("temp", &sBufPtr) != 0) + { + if(GetField("min", &sBufPtr) != 0) + { + psWeatherReport->i32TempLow = GetFieldValueInt(&sBufPtr); + i32Items++; + } + else + { + psWeatherReport->i32TempLow = INVALID_INT; + } + } + + // + // Reset the pointer to the start of the list values. + // + sBufPtr = sBufList; + + // + // Get the high temperature. + // + if(GetField("temp", &sBufPtr) != 0) + { + if(GetField("max", &sBufPtr) != 0) + { + psWeatherReport->i32TempHigh = GetFieldValueInt(&sBufPtr); + i32Items++; + } + else + { + psWeatherReport->i32TempHigh = INVALID_INT; + } + } + // + // Reset the pointer to the start of the list values. + // + sBufPtr = sBufList; + + if(GetField("dt", &sBufPtr) != 0) + { + psWeatherReport->ui32Time = GetFieldValueInt(&sBufPtr); + i32Items++; + } + else + { + psWeatherReport->ui32Time = 0; + } + } + + return(i32Items); +} + +//***************************************************************************** +// +// Fill out the psWeatherReport structure from data returned from the JSON +// query. +// +//***************************************************************************** +int32_t +JSONParseCurrent(uint32_t ui32Index, tWeatherReport *psWeatherReport, + struct pbuf *psBuf) +{ + tBufPtr sBufPtr, sBufMain, sBufTemp; + char pcIcon[3]; + char pcCode[4]; + int32_t i32Items, i32Code; + + // + // Reset the pointers. + // + BufPtrInit(&sBufPtr, psBuf); + + // + // Check and see if the request was valid. + // + if(GetField("cod", &sBufPtr) != 0) + { + sBufTemp = sBufPtr; + + // + // Check for a 404 not found error. + // + i32Code = GetFieldValueInt(&sBufTemp); + + sBufTemp = sBufPtr; + + if(i32Code != INVALID_INT) + { + if(i32Code == 404) + { + return(-1); + } + } + else if(GetFieldValueString(&sBufTemp, pcCode, sizeof(pcCode)) >= 0) + { + // + // Check for a 404 not found error. + // + if(ustrncmp(pcCode, "404", 3) == 0) + { + return(-1); + } + } + } + + // + // Initialize the number of items that have been found. + // + i32Items = 0; + + // + // Reset the pointers. + // + BufPtrInit(&sBufPtr, psBuf); + + // + // Find the basic weather description(weather.description). + // + if(GetField("weather", &sBufPtr) != 0) + { + if(GetField("icon", &sBufPtr) != 0) + { + if(GetFieldValueString(&sBufPtr, pcIcon, sizeof(pcIcon)) > 0) + { + // + // Save the image pointer. + // + GetImage(pcIcon, &psWeatherReport->pui8Image, + &psWeatherReport->pcDescription); + + i32Items++; + } + else + { + // + // No image was found. + // + psWeatherReport->pui8Image = 0; + } + } + } + + // + // Reset the pointers. + // + BufPtrInit(&sBufPtr, psBuf); + + // + // Find the humidity value(main.humidity). + // + if(GetField("sys", &sBufPtr) != 0) + { + // + // Save the pointer to the data. + // + sBufMain = sBufPtr; + + // + // Get the sunrise time. + // + if(GetField("sunrise", &sBufPtr) != 0) + { + psWeatherReport->ui32SunRise = GetFieldValueInt(&sBufPtr); + + i32Items++; + } + else + { + psWeatherReport->ui32SunRise = 0; + } + + // + // Restore the pointer to the data. + // + sBufPtr = sBufMain; + + // + // Get the sunset time. + // + if(GetField("sunset", &sBufPtr) != 0) + { + psWeatherReport->ui32SunSet = GetFieldValueInt(&sBufPtr); + + i32Items++; + } + else + { + psWeatherReport->ui32SunSet = 0; + } + } + + // + // Reset the pointers. + // + BufPtrInit(&sBufPtr, psBuf); + + // + // Get the last update time. + // + if(GetField("dt", &sBufPtr) != 0) + { + psWeatherReport->ui32Time = GetFieldValueInt(&sBufPtr); + + i32Items++; + } + else + { + psWeatherReport->ui32Time = 0; + } + + // + // Reset the pointers. + // + BufPtrInit(&sBufPtr, psBuf); + + // + // Find the humidity value(main.humidity). + // + if(GetField("main", &sBufPtr) != 0) + { + // + // Save the pointer to the main data. + // + sBufMain = sBufPtr; + + if(GetField("humidity", &sBufPtr) != 0) + { + psWeatherReport->i32Humidity = GetFieldValueInt(&sBufPtr); + i32Items++; + } + else + { + psWeatherReport->i32Humidity = INVALID_INT; + } + + // + // Reset the buffer pointer to main. + // + sBufPtr = sBufMain; + + // + // Find the current temperature value. + // + if(GetField("temp", &sBufPtr) != 0) + { + psWeatherReport->i32Temp = GetFieldValueInt(&sBufPtr); + i32Items++; + } + else + { + psWeatherReport->i32Temp = INVALID_INT; + } + + // + // Reset the buffer pointer to main. + // + sBufPtr = sBufMain; + + // + // Find the current atmospheric pressure. + // + if(GetField("pressure", &sBufPtr) != 0) + { + psWeatherReport->i32Pressure = GetFieldValueInt(&sBufPtr); + i32Items++; + } + else + { + psWeatherReport->i32Pressure = INVALID_INT; + } + } + return(i32Items); +} diff --git a/boards/ek-tm4c1294xl/enet_weather/json.h b/boards/ek-tm4c1294xl/enet_weather/json.h new file mode 100644 index 0000000..823fe3b --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/json.h @@ -0,0 +1,41 @@ +//***************************************************************************** +// +// json.h - The parsing function headers for JSON data from the web server. +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __JSON_H__ +#define __JSON_H__ + +#ifndef JSON_H_ +#define JSON_H_ + +#define INVALID_INT ((int32_t)(0x80000000)) + +extern int32_t JSONParseCurrent(uint32_t ui32Index, + tWeatherReport *psWeatherReport, + struct pbuf *psBuf); +extern int32_t JSONParseForecast(uint32_t ui32Index, + tWeatherReport *psWeatherReport, + struct pbuf *psBuf); +#endif + +#endif diff --git a/boards/ek-tm4c1294xl/enet_weather/lwipopts.h b/boards/ek-tm4c1294xl/enet_weather/lwipopts.h new file mode 100644 index 0000000..4cc58b4 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/lwipopts.h @@ -0,0 +1,443 @@ +//***************************************************************************** +// +// lwipopts.h - Configuration file for lwIP. +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +// +// NOTE: This file has been derived from the lwIP/src/include/lwip/opt.h +// header file. +// +// For additional details, refer to the original "opt.h" file, and lwIP +// documentation. +// +//***************************************************************************** +#ifndef __LWIPOPTS_H__ +#define __LWIPOPTS_H__ + +#include + +//***************************************************************************** +// +// ---------- Tiva C Series / lwIP Port Options ---------- +// +//***************************************************************************** +#define HOST_TMR_INTERVAL 100 // default is 0 +//#define DHCP_EXPIRE_TIMER_MSECS (60 * 1000) +//#define LWIP_HTTPD_SSI 1 +//#define LWIP_HTTPD_CGI 1 +#define LWIP_HTTPD_DYNAMIC_HEADERS 1 +//#define EMAC_PHY_CONFIG EMAC_PHY_TYPE_EXTERNAL_RMII +//#define PHY_PHYS_ADDR 1 +#define EMAC_PHY_CONFIG (EMAC_PHY_TYPE_INTERNAL | EMAC_PHY_INT_MDIX_EN | \ + EMAC_PHY_AN_100B_T_FULL_DUPLEX) +#define PHY_PHYS_ADDR 0 +#define NUM_TX_DESCRIPTORS 8 +#define NUM_RX_DESCRIPTORS 8 + +//***************************************************************************** +// +// ---------- Platform specific locking ---------- +// +//***************************************************************************** +#define SYS_LIGHTWEIGHT_PROT 1 // default is 0 +#define NO_SYS 1 // default is 0 +//#define MEMCPY(dst,src,len) memcpy(dst,src,len) +//#define SMEMCPY(dst,src,len) memcpy(dst,src,len) + +//***************************************************************************** +// +// ---------- Memory options ---------- +// +//***************************************************************************** +//#define MEM_LIBC_MALLOC 0 +#define MEM_ALIGNMENT 4 +#define MEM_SIZE (32 * 1024) +//#define MEMP_OVERFLOW_CHECK 0 +//#define MEMP_SANITY_CHECK 0 +//#define MEM_USE_POOLS 0 +//#define MEMP_USE_CUSTOM_POOLS 0 + +//***************************************************************************** +// +// ---------- Internal Memory Pool Sizes ---------- +// +//***************************************************************************** +#define MEMP_NUM_PBUF 16 // Default 16, was 16 +//#define MEMP_NUM_RAW_PCB 4 +//#define MEMP_NUM_UDP_PCB 4 +#define MEMP_NUM_TCP_PCB 16 +//#define MEMP_NUM_TCP_PCB_LISTEN 8 +//#define MEMP_NUM_TCP_SEG 16 +//#define MEMP_NUM_REASSDATA 5 +//#define MEMP_NUM_ARP_QUEUE 30 +//#define MEMP_NUM_IGMP_GROUP 8 +#define MEMP_NUM_SYS_TIMEOUT 6 //5 +//#define MEMP_NUM_NETBUF 2 +//#define MEMP_NUM_NETCONN 4 +//#define MEMP_NUM_TCPIP_MSG_API 8 +//#define MEMP_NUM_TCPIP_MSG_INPKT 8 +#define PBUF_POOL_SIZE 16 // Default 16 + +//***************************************************************************** +// +// ---------- ARP options ---------- +// +//***************************************************************************** +//#define LWIP_ARP 1 +//#define ARP_TABLE_SIZE 10 +//#define ARP_QUEUEING 1 +//#define ETHARP_TRUST_IP_MAC 1 + +//***************************************************************************** +// +// ---------- IP options ---------- +// +//***************************************************************************** +//#define IP_FORWARD 0 +//#define IP_OPTIONS_ALLOWED 1 +#define IP_REASSEMBLY 0 // default is 1 +#define IP_FRAG 0 // default is 1 +//#define IP_REASS_MAXAGE 3 +//#define IP_REASS_MAX_PBUFS 10 +//#define IP_FRAG_USES_STATIC_BUF 1 +//#define IP_FRAG_MAX_MTU 1500 +//#define IP_DEFAULT_TTL 255 + +//***************************************************************************** +// +// ---------- ICMP options ---------- +// +//***************************************************************************** +//#define LWIP_ICMP 1 +//#define ICMP_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- RAW options ---------- +// +//***************************************************************************** +//#define LWIP_RAW 1 +//#define RAW_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- DHCP options ---------- +// +//***************************************************************************** +#define LWIP_DHCP 1 // default is 0 +//#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP)) + +//***************************************************************************** +// +// ---------- UPNP options ---------- +// +//***************************************************************************** +//#define LWIP_UPNP 0 + +//***************************************************************************** +// +// ---------- PTPD options ---------- +// +//***************************************************************************** +//#define LWIP_PTPD 0 + +//***************************************************************************** +// +// ---------- AUTOIP options ---------- +// +//***************************************************************************** +#define LWIP_AUTOIP 1 // default is 0 +#define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP) && (LWIP_AUTOIP)) + // default is 0 +#define LWIP_DHCP_AUTOIP_COOP_TRIES 5 // default is 9 + +//***************************************************************************** +// +// ---------- SNMP options ---------- +// +//***************************************************************************** +//#define LWIP_SNMP 0 +//#define SNMP_CONCURRENT_REQUESTS 1 +//#define SNMP_TRAP_DESTINATIONS 1 +//#define SNMP_PRIVATE_MIB 0 +//#define SNMP_SAFE_REQUESTS 1 + +//***************************************************************************** +// +// ---------- IGMP options ---------- +// +//***************************************************************************** +//#define LWIP_IGMP 0 + +//***************************************************************************** +// +// ---------- DNS options ----------- +// +//***************************************************************************** +#define LWIP_DNS 1 +#define DNS_TABLE_SIZE 4 +#define DNS_MAX_NAME_LENGTH 256 +#define DNS_MAX_SERVERS 2 +#define DNS_DOES_NAME_CHECK 1 +#define DNS_USES_STATIC_BUF 1 +#define DNS_MSG_SIZE 512 + +//***************************************************************************** +// +// ---------- UDP options ---------- +// +//***************************************************************************** +//#define LWIP_UDP 1 +//#define LWIP_UDPLITE 0 +//#define UDP_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- TCP options ---------- +// +//***************************************************************************** +#define LWIP_TCP 1 +//#define TCP_TTL (IP_DEFAULT_TTL) +#define TCP_WND 4096 // default is 2048 +//#define TCP_MAXRTX 12 +//#define TCP_SYNMAXRTX 6 +//#define TCP_QUEUE_OOSEQ 1 +#define TCP_MSS 1500 // default is 128 +//#define TCP_CALCULATE_EFF_SEND_MSS 1 +#define TCP_SND_BUF (4 * TCP_MSS) + // default is 256, was 6 * +//#define TCP_SND_QUEUELEN (4 * (TCP_SND_BUF/TCP_MSS)) +//#define TCP_SNDLOWAT (TCP_SND_BUF/2) +//#define TCP_LISTEN_BACKLOG 0 +//#define TCP_DEFAULT_LISTEN_BACKLOG 0xff + +//***************************************************************************** +// +// ---------- API options ---------- +// +//***************************************************************************** +//#define LWIP_EVENT_API 0 +//#define LWIP_CALLBACK_API 1 + +//***************************************************************************** +// +// ---------- Pbuf options ---------- +// +//***************************************************************************** +#define PBUF_LINK_HLEN 16 // default is 14 +#define PBUF_POOL_BUFSIZE 512 + // default is LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN) +#define ETH_PAD_SIZE 0 // default is 0 + +//***************************************************************************** +// +// ---------- Network Interfaces options ---------- +// +//***************************************************************************** +//#define LWIP_NETIF_HOSTNAME 0 +//#define LWIP_NETIF_API 0 +//#define LWIP_NETIF_STATUS_CALLBACK 0 +//#define LWIP_NETIF_LINK_CALLBACK 0 +//#define LWIP_NETIF_HWADDRHINT 0 + +//***************************************************************************** +// +// ---------- LOOPIF options ---------- +// +//***************************************************************************** +//#define LWIP_HAVE_LOOPIF 0 +//#define LWIP_LOOPIF_MULTITHREADING 1 + +//***************************************************************************** +// +// ---------- Thread options ---------- +// +//***************************************************************************** +//#define TCPIP_THREAD_NAME "tcpip_thread" +//#define TCPIP_THREAD_STACKSIZE 0 +//#define TCPIP_THREAD_PRIO 1 +//#define TCPIP_MBOX_SIZE 0 +//#define SLIPIF_THREAD_NAME "slipif_loop" +//#define SLIPIF_THREAD_STACKSIZE 0 +//#define SLIPIF_THREAD_PRIO 1 +//#define PPP_THREAD_NAME "pppMain" +//#define PPP_THREAD_STACKSIZE 0 +//#define PPP_THREAD_PRIO 1 +//#define DEFAULT_THREAD_NAME "lwIP" +//#define DEFAULT_THREAD_STACKSIZE 0 +//#define DEFAULT_THREAD_PRIO 1 +//#define DEFAULT_RAW_RECVMBOX_SIZE 0 +//#define DEFAULT_UDP_RECVMBOX_SIZE 0 +//#define DEFAULT_TCP_RECVMBOX_SIZE 0 +//#define DEFAULT_ACCEPTMBOX_SIZE 0 + +//***************************************************************************** +// +// ---------- Sequential layer options ---------- +// +//***************************************************************************** +//#define LWIP_TCPIP_CORE_LOCKING 0 +#define LWIP_NETCONN 0 // default is 1 + +//***************************************************************************** +// +// ---------- Socket Options ---------- +// +//***************************************************************************** +#define LWIP_SOCKET 0 // default is 1 +//#define LWIP_COMPAT_SOCKETS 1 +//#define LWIP_POSIX_SOCKETS_IO_NAMES 1 +//#define LWIP_TCP_KEEPALIVE 0 +//#define LWIP_SO_RCVTIMEO 0 +//#define LWIP_SO_RCVBUF 0 +//#define SO_REUSE 0 + +//***************************************************************************** +// +// ---------- Statistics options ---------- +// +//***************************************************************************** +//#define LWIP_STATS 1 +//#define LWIP_STATS_DISPLAY 0 +//#define LINK_STATS 1 +//#define ETHARP_STATS (LWIP_ARP) +//#define IP_STATS 1 +//#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG) +//#define ICMP_STATS 1 +//#define IGMP_STATS (LWIP_IGMP) +//#define UDP_STATS (LWIP_UDP) +//#define TCP_STATS (LWIP_TCP) +//#define MEM_STATS 1 +//#define MEMP_STATS 1 +//#define SYS_STATS 1 + +//***************************************************************************** +// +// ---------- PPP options ---------- +// +//***************************************************************************** +//#define PPP_SUPPORT 0 +//#define PPPOE_SUPPORT 0 +//#define PPPOS_SUPPORT PPP_SUPPORT + +#if PPP_SUPPORT +//#define NUM_PPP 1 +//#define PAP_SUPPORT 0 +//#define CHAP_SUPPORT 0 +//#define MSCHAP_SUPPORT 0 +//#define CBCP_SUPPORT 0 +//#define CCP_SUPPORT 0 +//#define VJ_SUPPORT 0 +//#define MD5_SUPPORT 0 +//#define FSM_DEFTIMEOUT 6 +//#define FSM_DEFMAXTERMREQS 2 +//#define FSM_DEFMAXCONFREQS 10 +//#define FSM_DEFMAXNAKLOOPS 5 +//#define UPAP_DEFTIMEOUT 6 +//#define UPAP_DEFREQTIME 30 +//#define CHAP_DEFTIMEOUT 6 +//#define CHAP_DEFTRANSMITS 10 +//#define LCP_ECHOINTERVAL 0 +//#define LCP_MAXECHOFAILS 3 +//#define PPP_MAXIDLEFLAG 100 + +//#define PPP_MAXMTU 1500 +//#define PPP_DEFMRU 296 +#endif + +//***************************************************************************** +// +// ---------- checksum options ---------- +// +//***************************************************************************** +//#define CHECKSUM_GEN_IP 1 +//#define CHECKSUM_GEN_UDP 1 +//#define CHECKSUM_GEN_TCP 1 +//#define CHECKSUM_CHECK_IP 1 +//#define CHECKSUM_CHECK_UDP 1 +//#define CHECKSUM_CHECK_TCP 1 + +//***************************************************************************** +// +// ---------- Debugging options ---------- +// +//***************************************************************************** +#ifdef DEBUG +#define U8_F "c" +#define S8_F "c" +#define X8_F "02x" +#define U16_F "u" +#define S16_F "d" +#define X16_F "x" +#define U32_F "u" +#define S32_F "d" +#define X32_F "x" +extern void UARTprintf(const char *pcString, ...); +#define LWIP_PLATFORM_DIAG(msg) UARTprintf msg +#define LWIP_PLATFORM_ASSERT(msg) UARTprintf("ASSERT FAIL at line %d of %s: %s\n", __LINE__, __FILE__, msg) +#define LWIP_DEBUG 1 +#endif + +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF +#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_WARNING +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_SERIOUS +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_SEVERE + +//#define LWIP_DBG_TYPES_ON LWIP_DBG_ON +//#define LWIP_DBG_TYPES_ON (LWIP_DBG_ON|LWIP_DBG_TRACE|LWIP_DBG_STATE|LWIP_DBG_FRESH) + +//#define ETHARP_DEBUG LWIP_DBG_ON // default is OFF +#define NETIF_DEBUG LWIP_DBG_OFF +//#define PBUF_DEBUG LWIP_DBG_OFF +//#define API_LIB_DEBUG LWIP_DBG_OFF +//#define API_MSG_DEBUG LWIP_DBG_OFF +//#define SOCKETS_DEBUG LWIP_DBG_OFF +#define HTTPD_DEBUG LWIP_DBG_OFF +//#define ICMP_DEBUG LWIP_DBG_OFF +//#define IGMP_DEBUG LWIP_DBG_OFF +//#define INET_DEBUG LWIP_DBG_OFF +//#define IP_DEBUG LWIP_DBG_ON +//#define IP_REASS_DEBUG LWIP_DBG_OFF +#define RAW_DEBUG LWIP_DBG_OFF +//#define MEM_DEBUG LWIP_DBG_OFF +//#define MEMP_DEBUG LWIP_DBG_OFF +//#define SYS_DEBUG LWIP_DBG_OFF +//#define TCP_DEBUG LWIP_DBG_ON +#define TCP_INPUT_DEBUG LWIP_DBG_OFF +//#define TCP_FR_DEBUG LWIP_DBG_OFF +//#define TCP_RTO_DEBUG LWIP_DBG_OFF +//#define TCP_CWND_DEBUG LWIP_DBG_OFF +//#define TCP_WND_DEBUG LWIP_DBG_OFF +#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF +//#define TCP_RST_DEBUG LWIP_DBG_OFF +//#define TCP_QLEN_DEBUG LWIP_DBG_OFF +//#define UDP_DEBUG LWIP_DBG_ON // default is OFF +//#define TCPIP_DEBUG LWIP_DBG_ON +//#define PPP_DEBUG LWIP_DBG_OFF +//#define SLIP_DEBUG LWIP_DBG_OFF +//#define DHCP_DEBUG LWIP_DBG_ON // default is OFF +//#define AUTOIP_DEBUG LWIP_DBG_OFF +//#define SNMP_MSG_DEBUG LWIP_DBG_OFF +//#define SNMP_MIB_DEBUG LWIP_DBG_OFF +//#define DNS_DEBUG LWIP_DBG_OFF + +#endif /* __LWIPOPTS_H__ */ diff --git a/boards/ek-tm4c1294xl/enet_weather/readme.txt b/boards/ek-tm4c1294xl/enet_weather/readme.txt new file mode 100644 index 0000000..1ca4a65 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/readme.txt @@ -0,0 +1,48 @@ +Ethernet Weather Application + +This example application demonstrates the operation of the Tiva C series +evaluation kit as a weather reporting application. + +The application supports updating weather information from Open Weather Map +weather provider(http://openweathermap.org/). The application uses the +lwIP stack to obtain an address through DNS, resolve the address of the +Open Weather Map site and then build and handle all of the requests +necessary to access the weather information. The application can also use +a web proxy, allows for a custom city to be added to the list of cities and +toggles temperature units from Celsius to Fahrenheit. The application +scrolls through the city list at a fixed interval when there is a valid +IP address and displays this information over the UART. + +The application will print the city name, status, humidity, current temp +and the high/low. In addition the application will display what city it +is currently updating. Once the app has scrolled through the cities a +a defined amount of times, it will attempt to update the information. + +UART0, connected to the Virtual Serial Port and running at 115,200, 8-N-1, +is used to display messages from this application. + +/ For additional details about Open Weather Map refer to their web page at: +http://openweathermap.org/ + +For additional details on lwIP, refer to the lwIP web page at: +http://savannah.nongnu.org/projects/lwip/ + +------------------------------------------------------------------------------- + +Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/enet_weather/rvmdk/enet_weather.axf b/boards/ek-tm4c1294xl/enet_weather/rvmdk/enet_weather.axf new file mode 100644 index 0000000..3e7c24a Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_weather/rvmdk/enet_weather.axf differ diff --git a/boards/ek-tm4c1294xl/enet_weather/rvmdk/enet_weather.bin b/boards/ek-tm4c1294xl/enet_weather/rvmdk/enet_weather.bin new file mode 100644 index 0000000..9bc8b59 Binary files /dev/null and b/boards/ek-tm4c1294xl/enet_weather/rvmdk/enet_weather.bin differ diff --git a/boards/ek-tm4c1294xl/enet_weather/startup_ccs.c b/boards/ek-tm4c1294xl/enet_weather/startup_ccs.c new file mode 100644 index 0000000..43a7b7c --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/startup_ccs.c @@ -0,0 +1,277 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_weather/startup_ewarm.c b/boards/ek-tm4c1294xl/enet_weather/startup_ewarm.c new file mode 100644 index 0000000..59facf6 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/startup_ewarm.c @@ -0,0 +1,308 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[512] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_weather/startup_gcc.c b/boards/ek-tm4c1294xl/enet_weather/startup_gcc.c new file mode 100644 index 0000000..e0d4c05 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/startup_gcc.c @@ -0,0 +1,324 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[512]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/enet_weather/startup_rvmdk.S b/boards/ek-tm4c1294xl/enet_weather/startup_rvmdk.S new file mode 100644 index 0000000..e7ed604 --- /dev/null +++ b/boards/ek-tm4c1294xl/enet_weather/startup_rvmdk.S @@ -0,0 +1,333 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000800 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN lwIPEthernetIntHandler + EXTERN SysTickIntHandler + EXTERN UARTStdioIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD UARTStdioIntHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD lwIPEthernetIntHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/gpio_jtag/Makefile b/boards/ek-tm4c1294xl/gpio_jtag/Makefile new file mode 100644 index 0000000..d5b754e --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/Makefile @@ -0,0 +1,88 @@ +#****************************************************************************** +# +# Makefile - Rules for building the gpio_jtag example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the gpio_jtag example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/gpio_jtag.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the gpio_jtag example. +# +${COMPILER}/gpio_jtag.axf: ${COMPILER}/buttons.o +${COMPILER}/gpio_jtag.axf: ${COMPILER}/gpio_jtag.o +${COMPILER}/gpio_jtag.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/gpio_jtag.axf: ${COMPILER}/uartstdio.o +${COMPILER}/gpio_jtag.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/gpio_jtag.axf: gpio_jtag.ld +SCATTERgcc_gpio_jtag=gpio_jtag.ld +ENTRY_gpio_jtag=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/gpio_jtag/ccs/.ccsimportspec new file mode 100644 index 0000000..005f812 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ccs/.ccsproject b/boards/ek-tm4c1294xl/gpio_jtag/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ccs/.cproject b/boards/ek-tm4c1294xl/gpio_jtag/ccs/.cproject new file mode 100644 index 0000000..9246b12 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/ccs/.cproject @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ccs/.project b/boards/ek-tm4c1294xl/gpio_jtag/ccs/.project new file mode 100644 index 0000000..a2b8e7d --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/ccs/.project @@ -0,0 +1,60 @@ + + + gpio_jtag + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + gpio_jtag.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.c + + + gpio_jtag_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag_ccs.cmd + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/gpio_jtag/startup_ccs.c + + + drivers/buttons.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/buttons.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/gpio_jtag/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ccs/Debug/gpio_jtag.bin b/boards/ek-tm4c1294xl/gpio_jtag/ccs/Debug/gpio_jtag.bin new file mode 100644 index 0000000..8877785 Binary files /dev/null and b/boards/ek-tm4c1294xl/gpio_jtag/ccs/Debug/gpio_jtag.bin differ diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ccs/Debug/gpio_jtag.out b/boards/ek-tm4c1294xl/gpio_jtag/ccs/Debug/gpio_jtag.out new file mode 100644 index 0000000..e41fdd0 Binary files /dev/null and b/boards/ek-tm4c1294xl/gpio_jtag/ccs/Debug/gpio_jtag.out differ diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/gpio_jtag/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/gpio_jtag/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ewarm/Exe/gpio_jtag.bin b/boards/ek-tm4c1294xl/gpio_jtag/ewarm/Exe/gpio_jtag.bin new file mode 100644 index 0000000..c8e6ff6 Binary files /dev/null and b/boards/ek-tm4c1294xl/gpio_jtag/ewarm/Exe/gpio_jtag.bin differ diff --git a/boards/ek-tm4c1294xl/gpio_jtag/ewarm/Exe/gpio_jtag.out b/boards/ek-tm4c1294xl/gpio_jtag/ewarm/Exe/gpio_jtag.out new file mode 100644 index 0000000..4526caf Binary files /dev/null and b/boards/ek-tm4c1294xl/gpio_jtag/ewarm/Exe/gpio_jtag.out differ diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gcc/gpio_jtag.axf b/boards/ek-tm4c1294xl/gpio_jtag/gcc/gpio_jtag.axf new file mode 100644 index 0000000..89ed9b7 Binary files /dev/null and b/boards/ek-tm4c1294xl/gpio_jtag/gcc/gpio_jtag.axf differ diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gcc/gpio_jtag.bin b/boards/ek-tm4c1294xl/gpio_jtag/gcc/gpio_jtag.bin new file mode 100644 index 0000000..c9e0200 Binary files /dev/null and b/boards/ek-tm4c1294xl/gpio_jtag/gcc/gpio_jtag.bin differ diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.c b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.c new file mode 100644 index 0000000..8c550f4 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.c @@ -0,0 +1,315 @@ +//***************************************************************************** +// +// gpio_jtag.c - Example to demonstrate recovering the JTAG interface. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_gpio.h" +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/fpu.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "driverlib/uart.h" +#include "utils/uartstdio.h" +#include "drivers/buttons.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      GPIO JTAG Recovery (gpio_jtag)

      +//! +//! This example demonstrates changing the JTAG pins into GPIOs, a with a +//! mechanism to revert them to JTAG pins. When first run, the pins remain in +//! JTAG mode. Pressing the USR_SW1 button will toggle the pins between JTAG +//! mode and GPIO mode. Because there is no debouncing of the push button +//! (either in hardware or software), a button press will occasionally result +//! in more than one mode change. +//! +//! In this example, four pins (PC0, PC1, PC2, and PC3) are switched. +//! +//! UART0, connected to the ICDI virtual COM port and running at 115,200, +//! 8-N-1, is used to display messages from this application. +// +//***************************************************************************** + +//***************************************************************************** +// +// System clock rate in Hz. +// +//***************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// The current mode of pins PC0, PC1, PC2, and PC3. When zero, the pins +// are in JTAG mode; when non-zero, the pins are in GPIO mode. +// +//***************************************************************************** +volatile uint32_t g_ui32Mode; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// The interrupt handler for the PB4 pin interrupt. When triggered, this will +// toggle the JTAG pins between JTAG and GPIO mode. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + uint8_t ui8Buttons; + uint8_t ui8ButtonsChanged; + + // + // Grab the current, debounced state of the buttons. + // + ui8Buttons = ButtonsPoll(&ui8ButtonsChanged, 0); + + // + // If the USR_SW1 button has been pressed, and was previously not pressed, + // start the process of changing the behavior of the JTAG pins. + // + if(BUTTON_PRESSED(USR_SW1, ui8Buttons, ui8ButtonsChanged)) + { + // + // Toggle the pin mode. + // + g_ui32Mode ^= 1; + + // + // See if the pins should be in JTAG or GPIO mode. + // + if(g_ui32Mode == 0) + { + // + // Change PC0-3 into hardware (i.e. JTAG) pins. + // + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x01; + HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x01; + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x02; + HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x02; + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x04; + HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x04; + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x08; + HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x08; + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x00; + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = 0; + + // + // Turn on the LED to indicate that the pins are in JTAG mode. + // + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0 | GPIO_PIN_1, + GPIO_PIN_0); + } + else + { + // + // Change PC0-3 into GPIO inputs. + // + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x01; + HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xfe; + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x02; + HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xfd; + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x04; + HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xfb; + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x08; + HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xf7; + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; + HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x00; + HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = 0; + ROM_GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, (GPIO_PIN_0 | GPIO_PIN_1 | + GPIO_PIN_2 | + GPIO_PIN_3)); + + // + // Turn off the LED to indicate that the pins are in GPIO mode. + // + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0 | GPIO_PIN_1, + GPIO_PIN_1); + } + } +} + +//***************************************************************************** +// +// Configure the UART and its pins. This must be called before UARTprintf(). +// +//***************************************************************************** +void +ConfigureUART(void) +{ + // + // Enable the GPIO Peripheral used by the UART. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + + // + // Enable UART0 + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + + // + // Configure GPIO Pins for UART mode. + // + ROM_GPIOPinConfigure(GPIO_PA0_U0RX); + ROM_GPIOPinConfigure(GPIO_PA1_U0TX); + ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); +} + +//***************************************************************************** +// +// Toggle the JTAG pins between JTAG and GPIO mode with a push button selecting +// between the two. +// +//***************************************************************************** +int +main(void) +{ + uint32_t ui32Mode; + + // + // Set the clocking to run directly from the crystal at 120MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + // + // Enable the peripherals used by this application. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION); + + + // + // Initialize the button driver. + // + ButtonsInit(); + + // + // Set up a SysTick Interrupt to handle polling and debouncing for our + // buttons. + // + SysTickPeriodSet(g_ui32SysClock / 100); + SysTickIntEnable(); + SysTickEnable(); + + IntMasterEnable(); + + // + // Configure the LEDs as outputs and turn them on in the JTAG state. + // + ROM_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0 | GPIO_PIN_1); + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_0); + + // + // Set the global and local indicator of pin mode to zero, meaning JTAG. + // + g_ui32Mode = 0; + ui32Mode = 0; + + // + // Initialize the UART, clear the terminal, print banner. + // + ConfigureUART(); + UARTprintf("\033[2J\033[H"); + UARTprintf("GPIO <-> JTAG\n"); + + // + // Indicate that the pins start out as JTAG. + // + UARTprintf("Pins are JTAG\n"); + + // + // Loop forever. This loop simply exists to display on the UART the + // current state of PC0-3; the handling of changing the JTAG pins to and + // from GPIO mode is done in GPIO Interrupt Handler. + // + while(1) + { + // + // Wait until the pin mode changes. + // + while(g_ui32Mode == ui32Mode) + { + } + + // + // Save the new mode locally so that a subsequent pin mode change can + // be detected. + // + ui32Mode = g_ui32Mode; + + // + // See what the new pin mode was changed to. + // + if(ui32Mode == 0) + { + // + // Indicate that PC0-3 are currently JTAG pins. + // + UARTprintf("Pins are JTAG\n"); + } + else + { + // + // Indicate that PC0-3 are currently GPIO pins. + // + UARTprintf("Pins are GPIO\n"); + } + } +} diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ewd b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ewp b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ewp new file mode 100644 index 0000000..1472249 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ewp @@ -0,0 +1,792 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\..\drivers\buttons.c + + + $PROJ_DIR$\gpio_jtag.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.icf b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.icf new file mode 100644 index 0000000..8cb5567 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// gpio_jtag.icf - Linker configuration file for gpio_jtag. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ld b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ld new file mode 100644 index 0000000..ef11427 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * gpio_jtag.ld - Linker configuration file for gpio_jtag. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.sct b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.sct new file mode 100644 index 0000000..a46aefa --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; gpio_jtag.sct - Linker configuration file for gpio_jtag. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.uvopt b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.uvopt new file mode 100644 index 0000000..fbaee09 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.uvopt @@ -0,0 +1,317 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + gpio_jtag + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S3 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\buttons.c + buttons.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\gpio_jtag.c + gpio_jtag.c + + + 1 + 3 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 5 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 6 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.uvproj b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.uvproj new file mode 100644 index 0000000..24f0fc9 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag.uvproj @@ -0,0 +1,434 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + gpio_jtag + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + gpio_jtag + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\gpio_jtag.bin .\rvmdk\gpio_jtag.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + gpio_jtag.sct + + + --entry Reset_Handler + + + + + + + + Source + + + buttons.c + 1 + ..\drivers\buttons.c + + + gpio_jtag.c + 1 + .\gpio_jtag.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag_ccs.cmd b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag_ccs.cmd new file mode 100644 index 0000000..6e5f172 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/gpio_jtag_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * gpio_jtag_ccs.cmd - CCS linker configuration file for gpio_jtag. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 256; diff --git a/boards/ek-tm4c1294xl/gpio_jtag/readme.txt b/boards/ek-tm4c1294xl/gpio_jtag/readme.txt new file mode 100644 index 0000000..71c9112 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/readme.txt @@ -0,0 +1,33 @@ +GPIO JTAG Recovery + +This example demonstrates changing the JTAG pins into GPIOs, a with a +mechanism to revert them to JTAG pins. When first run, the pins remain in +JTAG mode. Pressing the USR_SW1 button will toggle the pins between JTAG +mode and GPIO mode. Because there is no debouncing of the push button +(either in hardware or software), a button press will occasionally result +in more than one mode change. + +In this example, four pins (PC0, PC1, PC2, and PC3) are switched. + +UART0, connected to the ICDI virtual COM port and running at 115,200, +8-N-1, is used to display messages from this application. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/gpio_jtag/rvmdk/gpio_jtag.axf b/boards/ek-tm4c1294xl/gpio_jtag/rvmdk/gpio_jtag.axf new file mode 100644 index 0000000..a980319 Binary files /dev/null and b/boards/ek-tm4c1294xl/gpio_jtag/rvmdk/gpio_jtag.axf differ diff --git a/boards/ek-tm4c1294xl/gpio_jtag/rvmdk/gpio_jtag.bin b/boards/ek-tm4c1294xl/gpio_jtag/rvmdk/gpio_jtag.bin new file mode 100644 index 0000000..8bea028 Binary files /dev/null and b/boards/ek-tm4c1294xl/gpio_jtag/rvmdk/gpio_jtag.bin differ diff --git a/boards/ek-tm4c1294xl/gpio_jtag/startup_ccs.c b/boards/ek-tm4c1294xl/gpio_jtag/startup_ccs.c new file mode 100644 index 0000000..4ee1d5b --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/startup_ccs.c @@ -0,0 +1,275 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/gpio_jtag/startup_ewarm.c b/boards/ek-tm4c1294xl/gpio_jtag/startup_ewarm.c new file mode 100644 index 0000000..686a0d0 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/startup_ewarm.c @@ -0,0 +1,306 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[64] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/gpio_jtag/startup_gcc.c b/boards/ek-tm4c1294xl/gpio_jtag/startup_gcc.c new file mode 100644 index 0000000..5abdcd6 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/startup_gcc.c @@ -0,0 +1,322 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[64]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/gpio_jtag/startup_rvmdk.S b/boards/ek-tm4c1294xl/gpio_jtag/startup_rvmdk.S new file mode 100644 index 0000000..90594a0 --- /dev/null +++ b/boards/ek-tm4c1294xl/gpio_jtag/startup_rvmdk.S @@ -0,0 +1,331 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000100 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declaration for the interrupt handler used by the application. +; +;****************************************************************************** + EXTERN SysTickIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/hello/Makefile b/boards/ek-tm4c1294xl/hello/Makefile new file mode 100644 index 0000000..1850dc5 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/Makefile @@ -0,0 +1,88 @@ +#****************************************************************************** +# +# Makefile - Rules for building the hello example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the hello example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/hello.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the hello example. +# +${COMPILER}/hello.axf: ${COMPILER}/hello.o +${COMPILER}/hello.axf: ${COMPILER}/pinout.o +${COMPILER}/hello.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/hello.axf: ${COMPILER}/uartstdio.o +${COMPILER}/hello.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/hello.axf: hello.ld +SCATTERgcc_hello=hello.ld +ENTRY_hello=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/hello/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/hello/ccs/.ccsimportspec new file mode 100644 index 0000000..77b03f5 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/hello/ccs/.ccsproject b/boards/ek-tm4c1294xl/hello/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/hello/ccs/.cproject b/boards/ek-tm4c1294xl/hello/ccs/.cproject new file mode 100644 index 0000000..2be0f74 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/ccs/.cproject @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/hello/ccs/.project b/boards/ek-tm4c1294xl/hello/ccs/.project new file mode 100644 index 0000000..a42ee35 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/ccs/.project @@ -0,0 +1,60 @@ + + + hello + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + hello.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/hello/hello.c + + + hello_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/hello/hello_ccs.cmd + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/hello/startup_ccs.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/hello/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/hello/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/hello/ccs/Debug/hello.bin b/boards/ek-tm4c1294xl/hello/ccs/Debug/hello.bin new file mode 100644 index 0000000..9b1db81 Binary files /dev/null and b/boards/ek-tm4c1294xl/hello/ccs/Debug/hello.bin differ diff --git a/boards/ek-tm4c1294xl/hello/ccs/Debug/hello.out b/boards/ek-tm4c1294xl/hello/ccs/Debug/hello.out new file mode 100644 index 0000000..ac8e7d4 Binary files /dev/null and b/boards/ek-tm4c1294xl/hello/ccs/Debug/hello.out differ diff --git a/boards/ek-tm4c1294xl/hello/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/hello/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/hello/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/hello/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/hello/ewarm/Exe/hello.bin b/boards/ek-tm4c1294xl/hello/ewarm/Exe/hello.bin new file mode 100644 index 0000000..5c4271b Binary files /dev/null and b/boards/ek-tm4c1294xl/hello/ewarm/Exe/hello.bin differ diff --git a/boards/ek-tm4c1294xl/hello/ewarm/Exe/hello.out b/boards/ek-tm4c1294xl/hello/ewarm/Exe/hello.out new file mode 100644 index 0000000..bf5bb76 Binary files /dev/null and b/boards/ek-tm4c1294xl/hello/ewarm/Exe/hello.out differ diff --git a/boards/ek-tm4c1294xl/hello/gcc/hello.axf b/boards/ek-tm4c1294xl/hello/gcc/hello.axf new file mode 100644 index 0000000..354bbd9 Binary files /dev/null and b/boards/ek-tm4c1294xl/hello/gcc/hello.axf differ diff --git a/boards/ek-tm4c1294xl/hello/gcc/hello.bin b/boards/ek-tm4c1294xl/hello/gcc/hello.bin new file mode 100644 index 0000000..70208f9 Binary files /dev/null and b/boards/ek-tm4c1294xl/hello/gcc/hello.bin differ diff --git a/boards/ek-tm4c1294xl/hello/hello.c b/boards/ek-tm4c1294xl/hello/hello.c new file mode 100644 index 0000000..4bd4c04 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/hello.c @@ -0,0 +1,160 @@ +//***************************************************************************** +// +// hello.c - Simple hello world example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/gpio.h" +#include "drivers/pinout.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/uart.h" +#include "utils/uartstdio.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      Hello World (hello)

      +//! +//! A very simple ``hello world'' example. It simply displays ``Hello World!'' +//! on the UART and is a starting point for more complicated applications. +//! +//! Open a terminal with 115,200 8-N-1 to see the output for this demo. +// +//***************************************************************************** + +//***************************************************************************** +// +// System clock rate in Hz. +// +//***************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// Configure the UART and its pins. This must be called before UARTprintf(). +// +//***************************************************************************** +void +ConfigureUART(void) +{ + // + // Enable the GPIO Peripheral used by the UART. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + + // + // Enable UART0 + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + + // + // Configure GPIO Pins for UART mode. + // + ROM_GPIOPinConfigure(GPIO_PA0_U0RX); + ROM_GPIOPinConfigure(GPIO_PA1_U0TX); + ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); +} + +//***************************************************************************** +// +// Print "Hello World!" to the UART on the Intelligent UART Module. +// +//***************************************************************************** +int +main(void) +{ + // + // Run from the PLL at 120 MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins. + // + PinoutSet(false, false); + + // + // Enable the GPIO pins for the LED D1 (PN1). + // + ROM_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_1); + + // + // Initialize the UART. + // + ConfigureUART(); + + // + // Hello! + // + UARTprintf("Hello, world!\n"); + + // + // We are finished. Hang around flashing D1. + // + while(1) + { + // + // Turn on D1. + // + LEDWrite(CLP_D1, 1); + + // + // Delay for a bit. + // + SysCtlDelay(g_ui32SysClock / 10 / 3); + + // + // Turn off D1. + // + LEDWrite(CLP_D1, 0); + + // + // Delay for a bit. + // + SysCtlDelay(g_ui32SysClock / 10 / 3); + } +} diff --git a/boards/ek-tm4c1294xl/hello/hello.ewd b/boards/ek-tm4c1294xl/hello/hello.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/hello.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/hello/hello.ewp b/boards/ek-tm4c1294xl/hello/hello.ewp new file mode 100644 index 0000000..ffb9c12 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/hello.ewp @@ -0,0 +1,792 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\hello.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + diff --git a/boards/ek-tm4c1294xl/hello/hello.icf b/boards/ek-tm4c1294xl/hello/hello.icf new file mode 100644 index 0000000..9aa316d --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/hello.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// hello.icf - Linker configuration file for hello. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/hello/hello.ld b/boards/ek-tm4c1294xl/hello/hello.ld new file mode 100644 index 0000000..0b9cd76 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/hello.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * hello.ld - Linker configuration file for hello. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/hello/hello.sct b/boards/ek-tm4c1294xl/hello/hello.sct new file mode 100644 index 0000000..192f9e6 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/hello.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; hello.sct - Linker configuration file for hello. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/hello/hello.uvopt b/boards/ek-tm4c1294xl/hello/hello.uvopt new file mode 100644 index 0000000..b242fa5 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/hello.uvopt @@ -0,0 +1,317 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + hello + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\hello.c + hello.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 3 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 5 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 6 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/hello/hello.uvproj b/boards/ek-tm4c1294xl/hello/hello.uvproj new file mode 100644 index 0000000..720574b --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/hello.uvproj @@ -0,0 +1,434 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + hello + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + hello + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\hello.bin .\rvmdk\hello.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + hello.sct + + + --entry Reset_Handler + + + + + + + + Source + + + hello.c + 1 + .\hello.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/hello/hello_ccs.cmd b/boards/ek-tm4c1294xl/hello/hello_ccs.cmd new file mode 100644 index 0000000..af9a893 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/hello_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * hello_ccs.cmd - CCS linker configuration file for hello. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 512; diff --git a/boards/ek-tm4c1294xl/hello/readme.txt b/boards/ek-tm4c1294xl/hello/readme.txt new file mode 100644 index 0000000..20b4184 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/readme.txt @@ -0,0 +1,26 @@ +Hello World + +A very simple ``hello world'' example. It simply displays ``Hello World!'' +on the UART and is a starting point for more complicated applications. + +Open a terminal with 115,200 8-N-1 to see the output for this demo. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/hello/rvmdk/hello.axf b/boards/ek-tm4c1294xl/hello/rvmdk/hello.axf new file mode 100644 index 0000000..c5026c2 Binary files /dev/null and b/boards/ek-tm4c1294xl/hello/rvmdk/hello.axf differ diff --git a/boards/ek-tm4c1294xl/hello/rvmdk/hello.bin b/boards/ek-tm4c1294xl/hello/rvmdk/hello.bin new file mode 100644 index 0000000..9b6e07e Binary files /dev/null and b/boards/ek-tm4c1294xl/hello/rvmdk/hello.bin differ diff --git a/boards/ek-tm4c1294xl/hello/startup_ccs.c b/boards/ek-tm4c1294xl/hello/startup_ccs.c new file mode 100644 index 0000000..d65768f --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/startup_ccs.c @@ -0,0 +1,268 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/hello/startup_ewarm.c b/boards/ek-tm4c1294xl/hello/startup_ewarm.c new file mode 100644 index 0000000..c4b0ab8 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/startup_ewarm.c @@ -0,0 +1,299 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/hello/startup_gcc.c b/boards/ek-tm4c1294xl/hello/startup_gcc.c new file mode 100644 index 0000000..a62c519 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/startup_gcc.c @@ -0,0 +1,315 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/hello/startup_rvmdk.S b/boards/ek-tm4c1294xl/hello/startup_rvmdk.S new file mode 100644 index 0000000..6979645 --- /dev/null +++ b/boards/ek-tm4c1294xl/hello/startup_rvmdk.S @@ -0,0 +1,324 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000200 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/hibernate/Makefile b/boards/ek-tm4c1294xl/hibernate/Makefile new file mode 100644 index 0000000..8fa3991 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/Makefile @@ -0,0 +1,93 @@ +#****************************************************************************** +# +# Makefile - Rules for building the Hibernate Example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=. +IPATH+=.. +IPATH+=../../../.. + +# +# The default rule, which causes the Hibernate Example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/hibernate.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the Hibernate Example. +# +${COMPILER}/hibernate.axf: ${COMPILER}/buttons.o +${COMPILER}/hibernate.axf: ${COMPILER}/cmdline.o +${COMPILER}/hibernate.axf: ${COMPILER}/hibernate.o +${COMPILER}/hibernate.axf: ${COMPILER}/hibernate_commands.o +${COMPILER}/hibernate.axf: ${COMPILER}/pinout.o +${COMPILER}/hibernate.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/hibernate.axf: ${COMPILER}/uartstdio.o +${COMPILER}/hibernate.axf: ${COMPILER}/ustdlib.o +${COMPILER}/hibernate.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/hibernate.axf: hibernate.ld +SCATTERgcc_hibernate=hibernate.ld +ENTRY_hibernate=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 -DSNOWFLAKE -DUART_BUFFERED + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/hibernate/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/hibernate/ccs/.ccsimportspec new file mode 100644 index 0000000..6652b7f --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/ccs/.ccsimportspec @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/hibernate/ccs/.ccsproject b/boards/ek-tm4c1294xl/hibernate/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/hibernate/ccs/.cproject b/boards/ek-tm4c1294xl/hibernate/ccs/.cproject new file mode 100644 index 0000000..7a2a231 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/ccs/.cproject @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/hibernate/ccs/.project b/boards/ek-tm4c1294xl/hibernate/ccs/.project new file mode 100644 index 0000000..443f4f9 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/ccs/.project @@ -0,0 +1,80 @@ + + + hibernate + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + hibernate.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/hibernate/hibernate.c + + + hibernate_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/hibernate/hibernate_ccs.cmd + + + hibernate_commands.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/hibernate/hibernate_commands.c + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/hibernate/startup_ccs.c + + + drivers/buttons.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/buttons.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/cmdline.c + 1 + SW_ROOT/utils/cmdline.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/hibernate/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/hibernate/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/hibernate/ccs/Debug/hibernate.bin b/boards/ek-tm4c1294xl/hibernate/ccs/Debug/hibernate.bin new file mode 100644 index 0000000..71abf10 Binary files /dev/null and b/boards/ek-tm4c1294xl/hibernate/ccs/Debug/hibernate.bin differ diff --git a/boards/ek-tm4c1294xl/hibernate/ccs/Debug/hibernate.out b/boards/ek-tm4c1294xl/hibernate/ccs/Debug/hibernate.out new file mode 100644 index 0000000..18c850b Binary files /dev/null and b/boards/ek-tm4c1294xl/hibernate/ccs/Debug/hibernate.out differ diff --git a/boards/ek-tm4c1294xl/hibernate/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/hibernate/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/hibernate/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/hibernate/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/hibernate/ewarm/Exe/hibernate.bin b/boards/ek-tm4c1294xl/hibernate/ewarm/Exe/hibernate.bin new file mode 100644 index 0000000..c1a1580 Binary files /dev/null and b/boards/ek-tm4c1294xl/hibernate/ewarm/Exe/hibernate.bin differ diff --git a/boards/ek-tm4c1294xl/hibernate/ewarm/Exe/hibernate.out b/boards/ek-tm4c1294xl/hibernate/ewarm/Exe/hibernate.out new file mode 100644 index 0000000..2f6d08a Binary files /dev/null and b/boards/ek-tm4c1294xl/hibernate/ewarm/Exe/hibernate.out differ diff --git a/boards/ek-tm4c1294xl/hibernate/gcc/hibernate.axf b/boards/ek-tm4c1294xl/hibernate/gcc/hibernate.axf new file mode 100644 index 0000000..db860d5 Binary files /dev/null and b/boards/ek-tm4c1294xl/hibernate/gcc/hibernate.axf differ diff --git a/boards/ek-tm4c1294xl/hibernate/gcc/hibernate.bin b/boards/ek-tm4c1294xl/hibernate/gcc/hibernate.bin new file mode 100644 index 0000000..b4e7988 Binary files /dev/null and b/boards/ek-tm4c1294xl/hibernate/gcc/hibernate.bin differ diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate.c b/boards/ek-tm4c1294xl/hibernate/hibernate.c new file mode 100644 index 0000000..168c785 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate.c @@ -0,0 +1,973 @@ +//***************************************************************************** +// +// hibernate.c - Hibernation Example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include +#include +#include "inc/hw_gpio.h" +#include "inc/hw_hibernate.h" +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_sysctl.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/gpio.h" +#include "driverlib/hibernate.h" +#include "driverlib/interrupt.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/uart.h" +#include "driverlib/systick.h" +#include "utils/ustdlib.h" +#include "utils/uartstdio.h" +#include "utils/cmdline.h" +#include "drivers/buttons.h" +#include "drivers/pinout.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      Hibernate Example (hibernate)

      +//! +//! An example to demonstrate the use of the Hibernation module. The user +//! can put the microcontroller in hibernation by typing 'hib' in the terminal +//! and pressing ENTER or by pressing USR_SW1 on the board. The +//! microcontroller will then wake on its own after 5 seconds, or immediately +//! if the user presses the RESET button. The External WAKE button, external +//! WAKE pins, and GPIO (PK6) wake sources can also be used to wake +//! immediately from hibernation. The following wiring enables the use of +//! these pins as wake sources. +//! WAKE on breadboard connection header (X11-95) to GND +//! PK6 on BoosterPack 2 (X7-17) to GND +//! PK6 on breadboard connection header (X11-63) to GND +//! +//! The program keeps a count of the number of times it has entered +//! hibernation. The value of the counter is stored in the battery-backed +//! memory of the Hibernation module so that it can be retrieved when the +//! microcontroller wakes. The program displays the wall time and date by +//! making use of the calendar function of the Hibernate module. User can +//! modify the date and time if so desired. +// +//***************************************************************************** + +//***************************************************************************** +// +// A collection of wake sources that will be displayed to indicate the source +// of the most recent wake. +// +//***************************************************************************** +static char *g_ppcWakeSource[] = +{ + "RTC TIMEOUT", + "RESET", + "WAKE PIN", + "GPIO WAKE", + "SYSTEM RESET" +}; + +//***************************************************************************** +// +// Lookup table to convert numerical value of a month into text. +// +//***************************************************************************** +static char *g_ppcMonth[12] = +{ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" +}; + +//***************************************************************************** +// +// Flag that informs that the user has requested hibernation. +// +//***************************************************************************** +volatile bool g_bHibernate; + +//***************************************************************************** +// +// Variables that keep terminal position and status. +// +//***************************************************************************** +bool g_bFirstUpdate; +uint8_t g_ui8FirstLine; + +//***************************************************************************** +// +// Flag that informs that date and time have to be set. +// +//***************************************************************************** +volatile bool g_bSetDate; + +//***************************************************************************** +// +// Buffers to store display information. +// +//***************************************************************************** +char g_pcWakeBuf[40], g_pcHibBuf[40], g_pcDateTimeBuf[40]; + +//***************************************************************************** +// +// Buffer to store user command line input. +// +//***************************************************************************** +char g_pcInputBuf[40]; + +//***************************************************************************** +// +// Variables that keep track of the date and time. +// +//***************************************************************************** +uint32_t g_ui32MonthIdx, g_ui32DayIdx, g_ui32YearIdx; +uint32_t g_ui32HourIdx, g_ui32MinIdx; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// This function reads the current date and time from the calendar logic of the +// hibernate module. Return status indicates the validity of the data read. +// If the received data is valid, the 24-hour time format is converted to +// 12-hour format. +// +//***************************************************************************** +bool +DateTimeGet(struct tm *sTime) +{ + // + // Get the latest time. + // + HibernateCalendarGet(sTime); + + // + // Is valid data read? + // + if(((sTime->tm_sec < 0) || (sTime->tm_sec > 59)) || + ((sTime->tm_min < 0) || (sTime->tm_min > 59)) || + ((sTime->tm_hour < 0) || (sTime->tm_hour > 23)) || + ((sTime->tm_mday < 1) || (sTime->tm_mday > 31)) || + ((sTime->tm_mon < 0) || (sTime->tm_mon > 11)) || + ((sTime->tm_year < 100) || (sTime->tm_year > 199))) + { + // + // No - Let the application know the same by returning relevant + // message. + // + return false; + } + + // + // Return that new data is available so that it can be displayed. + // + return true; +} + +//***************************************************************************** +// +// This function formats valid new date and time to be displayed on the home +// screen in the format "MMM DD, YYYY HH : MM : SS AM/PM". Example of this +// format is Aug 01, 2013 08:15:30 AM. It also indicates if valid new data +// is available or not. If date and time is invalid, this function sets the +// date and time to default value. +// +//***************************************************************************** +bool +DateTimeDisplayGet(char *pcBuf, uint32_t ui32BufSize) +{ + static uint32_t ui32SecondsPrev = 0xFF; + struct tm sTime; + uint32_t ui32Len; + + // + // Get the latest date and time and check the validity. + // + if(DateTimeGet(&sTime) == false) + { + // + // Invalid - Force set the date and time to default values and return + // false to indicate no information to display. + // + g_bSetDate = true; + return false; + } + + // + // If date and time is valid, check if seconds have updated from previous + // visit. + // + if(ui32SecondsPrev == sTime.tm_sec) + { + // + // No - Return false to indicate no information to display. + // + return false; + } + + // + // If valid new date and time is available, update a local variable to keep + // track of seconds to determine new data for next visit. + // + ui32SecondsPrev = sTime.tm_sec; + + // + // Format the date and time into a user readable format. + // + ui32Len = usnprintf(pcBuf, ui32BufSize, "%s %02u, 20%02u ", + g_ppcMonth[sTime.tm_mon], sTime.tm_mday, + sTime.tm_year - 100); + usnprintf(&pcBuf[ui32Len], ui32BufSize - ui32Len, "%02u : %02u : %02u", + sTime.tm_hour, sTime.tm_min, sTime.tm_sec); + + // + // Return true to indicate new information to display. + // + return true; +} + +//***************************************************************************** +// +// This function writes the requested date and time to the calendar logic of +// hibernation module. +// +//***************************************************************************** +void +DateTimeSet(void) +{ + struct tm sTime; + + // + // Get the latest date and time. This is done here so that unchanged + // parts of date and time can be written back as is. + // + HibernateCalendarGet(&sTime); + + // + // Set the date and time values that are to be updated. + // + sTime.tm_hour = g_ui32HourIdx; + sTime.tm_min = g_ui32MinIdx; + sTime.tm_mon = g_ui32MonthIdx; + sTime.tm_mday = g_ui32DayIdx; + sTime.tm_year = 100 + g_ui32YearIdx; + + // + // Update the calendar logic of hibernation module with the requested data. + // + HibernateCalendarSet(&sTime); +} + +//***************************************************************************** +// +// This function sets the time to the default system time. +// +//***************************************************************************** +void +DateTimeDefaultSet(void) +{ + g_ui32MonthIdx = 7; + g_ui32DayIdx = 29; + g_ui32YearIdx = 13; + g_ui32HourIdx = 8; + g_ui32MinIdx = 30; + +} +//***************************************************************************** +// +// This function updates individual buffers with valid date and time to be +// displayed on the date screen so that the date and time can be updated. +// +//***************************************************************************** +bool +DateTimeUpdateGet(void) +{ + struct tm sTime; + + // + // Get the latest date and time and check the validity. + // + if(DateTimeGet(&sTime) == false) + { + // + // Invalid - Return here with false as no information to update. So + // use default values. + // + DateTimeDefaultSet(); + return false; + } + + // + // If date and time is valid, copy the date and time values into respective + // indexes. + // + g_ui32MonthIdx = sTime.tm_mon; + g_ui32DayIdx = sTime.tm_mday; + g_ui32YearIdx = sTime.tm_year - 100; + g_ui32HourIdx = sTime.tm_hour; + g_ui32MinIdx = sTime.tm_min; + + // + // Return true to indicate new information has been updated. + // + return true; +} + +//***************************************************************************** +// +// This function returns the number of days in a month including for a leap +// year. +// +//***************************************************************************** +uint32_t +GetDaysInMonth(uint32_t ui32Year, uint32_t ui32Mon) +{ + // + // Return the number of days based on the month. + // + if(ui32Mon == 1) + { + // + // For February return the number of days based on the year being a + // leap year or not. + // + if((ui32Year % 4) == 0) + { + // + // If leap year return 29. + // + return 29; + } + else + { + // + // If not leap year return 28. + // + return 28; + } + } + else if((ui32Mon == 3) || (ui32Mon == 5) || (ui32Mon == 8) || + (ui32Mon == 10)) + { + // + // For April, June, September and November return 30. + // + return 30; + } + + // + // For all the other months return 31. + // + return 31; +} + +//***************************************************************************** +// +// This function returns the date and time value that is written to the +// calendar match register. 5 seconds are added to the current time. Any +// side-effects due to this addition are handled here. +// +//***************************************************************************** +void +GetCalendarMatchValue(struct tm* sTime) +{ + uint32_t ui32MonthDays; + + // + // Get the current date and time and add 5 secs to it. + // + HibernateCalendarGet(sTime); + sTime->tm_sec += 5; + + // + // Check if seconds is out of bounds. If so subtract seconds by 60 and + // increment minutes. + // + if(sTime->tm_sec > 59) + { + sTime->tm_sec -= 60; + sTime->tm_min++; + } + + // + // Check if minutes is out of bounds. If so subtract minutes by 60 and + // increment hours. + // + if(sTime->tm_min > 59) + { + sTime->tm_min -= 60; + sTime->tm_hour++; + } + + // + // Check if hours is out of bounds. If so subtract minutes by 24 and + // increment days. + // + if(sTime->tm_hour > 23) + { + sTime->tm_hour -= 24; + sTime->tm_mday++; + } + + // + // Since different months have varying number of days, get the number of + // days for the current month and year. + // + ui32MonthDays = GetDaysInMonth(sTime->tm_year, sTime->tm_mon); + + // + // Check if days is out of bounds for the current month and year. If so + // subtract days by the number of days in the current month and increment + // months. + // + if(sTime->tm_mday > ui32MonthDays) + { + sTime->tm_mday -= ui32MonthDays; + sTime->tm_mon++; + } + + // + // Check if months is out of bounds. If so subtract months by 11 and + // increment years. + // + if(sTime->tm_mon > 11) + { + sTime->tm_mon -= 11; + sTime->tm_year++; + } + + // + // Check if years is out of bounds. If so subtract years by 100. + // + if(sTime->tm_year > 99) + { + sTime->tm_year -= 100; + } +} + +//***************************************************************************** +// +// This function does some application level cleanup and alerts the user +// before sending the hibernate request to the hardware. +// +//***************************************************************************** +void +AppHibernateEnter(void) +{ + uint32_t ui32Status; + struct tm sTime; + + // + // Print the buffer to the terminal. + // + UARTprintf("To wake, wait for 5 seconds or press WAKE or" + "RESET\n"); + UARTprintf("See README.txt for additional wake sources.\n"); + + // + // Wait for UART transmit to complete before proceeding to + // hibernate. + // + UARTFlushTx(false); + + // + // Get calendar match value to be 5 seconds from the current time. + // + GetCalendarMatchValue(&sTime); + + // + // Set the calendar match register such that it wakes up from + // hibernation in 5 seconds. + // + HibernateCalendarMatchSet(0, &sTime); + + // + // Read and clear any status bits that might have been set since + // last clearing them. + // + ui32Status = HibernateIntStatus(0); + HibernateIntClear(ui32Status); + + // + // Configure Hibernate wake sources. + // + HibernateWakeSet(HIBERNATE_WAKE_PIN | HIBERNATE_WAKE_GPIO | + HIBERNATE_WAKE_RESET | HIBERNATE_WAKE_RTC); + + // + // Request Hibernation. + // + HibernateRequest(); + + // + // Wait for a while for hibernate to activate. It should never get + // past this point. + // + SysCtlDelay(100); + + // + // If it ever gets here, store the text, that informs the user on + // what to do, into the respective widget buffers. + // + UARTprintf("The controller did not enter hibernate. Press RESET" + "button to restart example.\n"); + + // + // Wait here. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This function is the interrupt handler for the SysTick timer. It monitors +// both the USR_SW buttons on the board. If a button is pressed then we +// request a hibernate cycle. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + uint32_t ui32Buttons; + + ui32Buttons = ButtonsPoll(0,0); + + switch(ui32Buttons & ALL_BUTTONS) + { + // + // The user pressed USR_SW1. + // + case USR_SW1: + { + // + // Set the hibernate flag to request a system hibernate cycle. + // + g_bHibernate = true; + break; + } + + // + // For all other cases do nothing. + // + default: + { + break; + } + } + +} +//***************************************************************************** +// +// This example demonstrates the different hibernate wake sources. The +// microcontroller is put into hibernation by the user and wakes up based on +// timeout or one of the user inputs. This example also demonstrates the RTC +// calendar function that keeps track of date and time. +// +//***************************************************************************** +int +main(void) +{ + bool bUpdate; + uint32_t ui32SysClock, ui32Status, ui32HibernateCount, ui32Len; + int32_t i32CmdStatus; + + // + // Run from the PLL at 120 MHz. + // + ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins. + // + PinoutSet(false, false); + + // + // Enable UART0 + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, ui32SysClock); + + // + // Enable the hibernate module. + // + SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE); + + // + // Initialize these variables before they are used. + // + ui32Status = 0; + ui32HibernateCount = 0; + + // + // Check to see if Hibernation module is already active, which could mean + // that the processor is waking from a hibernation. + // + if(HibernateIsActive()) + { + // + // Read the status bits to see what caused the wake. Clear the wake + // source so that the device can be put into hibernation again. + // + ui32Status = HibernateIntStatus(0); + HibernateIntClear(ui32Status); + + // + // Store the common part of the wake information message into a buffer. + // The wake source will be appended based on the status bits. + // + ui32Len = usnprintf(g_pcWakeBuf, sizeof(g_pcWakeBuf), + "Wake Due To : "); + + // + // Wake was due to RTC match. + // + if(ui32Status & HIBERNATE_INT_RTC_MATCH_0) + { + ui32Len = usnprintf(&g_pcWakeBuf[ui32Len], + sizeof(g_pcWakeBuf) - ui32Len, "%s", + g_ppcWakeSource[0]); + } + + // + // Wake was due to Reset button. + // + else if(ui32Status & HIBERNATE_INT_RESET_WAKE) + { + ui32Len = usnprintf(&g_pcWakeBuf[ui32Len], + sizeof(g_pcWakeBuf) - ui32Len, "%s", + g_ppcWakeSource[1]); + } + + // + // Wake was due to the External Wake pin. + // + else if(ui32Status & HIBERNATE_INT_PIN_WAKE) + { + ui32Len = usnprintf(&g_pcWakeBuf[ui32Len], + sizeof(g_pcWakeBuf) - ui32Len, "%s", + g_ppcWakeSource[2]); + } + + // + // Wake was due to GPIO wake. + // + else if(ui32Status & HIBERNATE_INT_GPIO_WAKE) + { + ui32Len = usnprintf(&g_pcWakeBuf[ui32Len], + sizeof(g_pcWakeBuf) - ui32Len, "%s", + g_ppcWakeSource[3]); + } + + // + // If the wake is due to any of the configured wake sources, then read + // the first location from the battery-backed memory, as the + // hibernation count. + // + if(ui32Status & (HIBERNATE_INT_PIN_WAKE | HIBERNATE_INT_RTC_MATCH_0 | + HIBERNATE_INT_GPIO_WAKE | HIBERNATE_INT_RESET_WAKE)) + { + HibernateDataGet(&ui32HibernateCount, 1); + } + } + + // + // Configure Hibernate module clock. + // + HibernateEnableExpClk(ui32SysClock); + + // + // If the wake was not due to the above sources, then it was a system + // reset. + // + if(!(ui32Status & (HIBERNATE_INT_PIN_WAKE | HIBERNATE_INT_RTC_MATCH_0 | + HIBERNATE_INT_GPIO_WAKE | HIBERNATE_INT_RESET_WAKE))) + { + // + // Configure the module clock source. + // + HibernateClockConfig(HIBERNATE_OSC_LOWDRIVE); + + // + // Store that this was a system restart not wake from hibernation. + // + ui32Len = usnprintf(g_pcWakeBuf, sizeof(g_pcWakeBuf), "%s", + g_ppcWakeSource[4]); + + // + // Set flag to indicate we need a valid date. Date will then be set + // in the while(1) loop. + // + g_bSetDate = true; + } + + // + // Store the hibernation count message into the respective char buffer. + // + usnprintf(g_pcHibBuf, sizeof(g_pcHibBuf), "Hibernate count = %u", + ui32HibernateCount); + + // + // Enable RTC mode. + // + HibernateRTCEnable(); + + // + // Configure the hibernate module counter to 24-hour calendar mode. + // + HibernateCounterMode(HIBERNATE_COUNTER_24HR); + + // + // Configure GPIOs used as Hibernate wake source. PK6 is configured as a + // wake source. It is available on EK-TM4C1294XL BoosterPack 2 (X7-17) + // and on the breadboard breakout connector (X11-63). Short to ground to + // generate a wake request. + // + GPIOPadConfigSet(GPIO_PORTK_BASE, GPIO_PIN_6, GPIO_STRENGTH_2MA, + (GPIO_PIN_TYPE_WAKE_LOW | GPIO_PIN_TYPE_STD_WPU)); + + // + // Initialize the buttons + // + ButtonsInit(); + + // + // Initialize the SysTick interrupt to process user buttons. + // + SysTickPeriodSet(SysCtlClockGet() / 30); + SysTickEnable(); + SysTickIntEnable(); + IntMasterEnable(); + + // + // Enable processor interrupts. + // + IntMasterEnable(); + + // + // If hibernation count is very large, it may be that there was already + // a value in the hibernate memory, so reset the count. + // + ui32HibernateCount = (ui32HibernateCount > 10000) ? 0 : ui32HibernateCount; + + // + // Initialize the necessary flags before entering indefinite loop. + // + g_bHibernate = false; + + // + // Clear the terminal and print the banner. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("%s\n", g_pcWakeBuf); + UARTprintf("Welcome to the Tiva C Series TM4C1294 LaunchPad!\n"); + UARTprintf("Hibernation Example\n"); + UARTprintf("Type 'help' for a list of commands\n"); + UARTprintf("> "); + UARTFlushTx(false); + + // + // Set flag that next update is the first ever. + // This triggers a screen clear on next update. + // + g_bFirstUpdate = true; + g_ui8FirstLine = 5; + + // + // Loop forever. + // + while(1) + { + // + // Check the flag which indicates that an invalid time is in hibernate + // module. If set then force setting to the default time. + // + if(g_bSetDate) + { + // + // Clear the flag. + // + g_bSetDate = false; + + // + // Set the date to the default values and commit it to the + // hibernate module. + // + DateTimeDefaultSet(); + DateTimeSet(); + } + + // + // Update the buffer that displays date and time on the main + // screen. + // + bUpdate = DateTimeDisplayGet(g_pcDateTimeBuf, + sizeof(g_pcDateTimeBuf)); + + // + // Is a new value of date and time available to be displayed? + // + if(bUpdate == true) + { + // + // Check if this is first ever update. + // + if(g_bFirstUpdate == false) + { + // + // Save current cursor position. + // + UARTprintf("\033[s"); + } + + // + // Resend the current status and time. + // + UARTprintf("\033[%d;1H\033[K", g_ui8FirstLine); + UARTprintf("The current date and time is: %s\n", g_pcDateTimeBuf); + UARTprintf("\033[K"); + UARTprintf("%s\n", g_pcHibBuf); + UARTprintf("\033[K"); + UARTprintf("To Hibernate type 'hib' and press ENTER or press " + "USR_SW1\n"); + + // + // Check if this is first ever update. + // + if(g_bFirstUpdate == false) + { + // + // Restore cursor position. + // + UARTprintf("\033[u"); + + } + else + { + UARTprintf(">"); + } + + // + // Flush the TX Buffer. + // + UARTFlushTx(false); + + // + // Clear the first update flag. + // + g_bFirstUpdate = false; + + } + + // + // Check if a carriage return is present in the UART Buffer. + // + if(UARTPeek('\r') != -1) + { + // + // A '\r' was detected, so get the line of text from the user. + // + UARTgets(g_pcInputBuf,sizeof(g_pcInputBuf)); + + // + // Pass the line from the user to the command processor. + // It will be parsed and valid commands executed. + // + i32CmdStatus = CmdLineProcess(g_pcInputBuf); + + // + // Handle the case of bad command. + // + if(i32CmdStatus == CMDLINE_BAD_CMD) + { + UARTprintf("Command not recognized!\n"); + } + + // + // Handle the case of too many arguments. + // + else if(i32CmdStatus == CMDLINE_TOO_MANY_ARGS) + { + UARTprintf("Too many arguments for command processor!\n"); + } + + // + // Handle the case of too few arguments. + // + else if(i32CmdStatus == CMDLINE_TOO_FEW_ARGS) + { + UARTprintf("Too few arguments for command processor!\n"); + } + + UARTprintf(">"); + } + + // + // Check if user wants to enter hibernation. + // + if(g_bHibernate == true) + { + // + // Increment the hibernation count, and store it in the + // battery-backed memory. + // + ui32HibernateCount++; + HibernateDataSet(&ui32HibernateCount, 1); + + // + // Yes - Clear the flag. + // + g_bHibernate = false; + AppHibernateEnter(); + } + } +} diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate.ewd b/boards/ek-tm4c1294xl/hibernate/hibernate.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate.ewp b/boards/ek-tm4c1294xl/hibernate/hibernate.ewp new file mode 100644 index 0000000..1d3ab10 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate.ewp @@ -0,0 +1,808 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\..\drivers\buttons.c + + + $PROJ_DIR$\..\..\..\..\utils\cmdline.c + + + $PROJ_DIR$\hibernate.c + + + $PROJ_DIR$\hibernate_commands.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate.icf b/boards/ek-tm4c1294xl/hibernate/hibernate.icf new file mode 100644 index 0000000..93ab82f --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// hibernate.icf - Linker configuration file for hibernate. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate.ld b/boards/ek-tm4c1294xl/hibernate/hibernate.ld new file mode 100644 index 0000000..d477e60 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * hibernate.ld - Linker configuration file for hibernate. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate.sct b/boards/ek-tm4c1294xl/hibernate/hibernate.sct new file mode 100644 index 0000000..2bc908f --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; hibernate.sct - Linker configuration file for hibernate. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate.uvopt b/boards/ek-tm4c1294xl/hibernate/hibernate.uvopt new file mode 100644 index 0000000..36ef59d --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate.uvopt @@ -0,0 +1,373 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + hibernate + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\buttons.c + buttons.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\cmdline.c + cmdline.c + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\hibernate.c + hibernate.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\hibernate_commands.c + hibernate_commands.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 6 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 9 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 10 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate.uvproj b/boards/ek-tm4c1294xl/hibernate/hibernate.uvproj new file mode 100644 index 0000000..0acf146 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate.uvproj @@ -0,0 +1,454 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + hibernate + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + hibernate + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\hibernate.bin .\rvmdk\hibernate.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 SNOWFLAKE UART_BUFFERED + + .;..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + hibernate.sct + + + --entry Reset_Handler + + + + + + + + Source + + + buttons.c + 1 + ..\drivers\buttons.c + + + cmdline.c + 1 + ..\..\..\..\utils\cmdline.c + + + hibernate.c + 1 + .\hibernate.c + + + hibernate_commands.c + 1 + .\hibernate_commands.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate_ccs.cmd b/boards/ek-tm4c1294xl/hibernate/hibernate_ccs.cmd new file mode 100644 index 0000000..255245d --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * hibernate_ccs.cmd - CCS linker configuration file for hibernate. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 1024; diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate_commands.c b/boards/ek-tm4c1294xl/hibernate/hibernate_commands.c new file mode 100644 index 0000000..93864ac --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate_commands.c @@ -0,0 +1,314 @@ +//***************************************************************************** +// +// hibernate_commands.c - Command line functionality for Hibernate Example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_types.h" +#include "utils/ustdlib.h" +#include "utils/uartstdio.h" +#include "utils/cmdline.h" +#include "hibernate_commands.h" + +//***************************************************************************** +// +// Hibernate request flag. Indicates that the user wishes to enter hibernate. +// +//***************************************************************************** +extern bool g_bHibernate; + +//***************************************************************************** +// +// Variables that keep track of the date and time. +// +//***************************************************************************** +extern uint32_t g_ui32MonthIdx, g_ui32DayIdx, g_ui32YearIdx; +extern int32_t g_ui32HourIdx, g_ui32MinIdx; + +//***************************************************************************** +// +// Variables that keep terminal display position and status. +// +//***************************************************************************** +extern bool g_bFirstUpdate; +extern uint8_t g_ui8FirstLine; + +//***************************************************************************** +// +// Function prototype for setting the system date/time. +// +//***************************************************************************** +extern void DateTimeSet(void); + +//***************************************************************************** +// +// Table of valid command strings, callback functions and help messages. This +// is used by the cmdline module. +// +//***************************************************************************** +tCmdLineEntry g_psCmdTable[] = +{ + {"help", CMD_help, " : Display list of commands." }, + {"hib", CMD_hib, " : Place system into hibernate mode."}, + {"date", CMD_date, " : Set Date \"DD/MM/YYYY\"."}, + {"time12", CMD_time12, " : Set Time 12HR style \"HH:MM:XX\" " + "XX = AM or PM"}, + {"time24", CMD_time24, " : Set Time 24HR style \"HH:MM\"."}, + {"cls", CMD_cls, " : Clear the terminal screen"}, + { 0, 0, 0 } +}; + +//***************************************************************************** +// +// Command: cls +// +// Clear the terminal screen. +// +//***************************************************************************** +int +CMD_cls(int argc, char **argv) +{ + UARTprintf("\033[2J\033[H"); + g_bFirstUpdate = true; + g_ui8FirstLine = 1; + return (0); +} + +//***************************************************************************** +// +// Command: help +// +// Print the help strings for all commands. +// +//***************************************************************************** +int +CMD_help(int argc, char **argv) +{ + int32_t i32Index; + + // + // Keep the compiler happy. + // + (void)argc; + (void)argv; + + // + // Start at the beginning of the command table + // + i32Index = 0; + + // + // Get to the start of a clean line on the serial output. + // + UARTprintf("\nAvailable Commands\n------------------\n\n"); + + // + // Display strings until we run out of them. + // + while(g_psCmdTable[i32Index].pcCmd) + { + UARTprintf("%17s %s\n", g_psCmdTable[i32Index].pcCmd, + g_psCmdTable[i32Index].pcHelp); + i32Index++; + } + + // + // Leave a blank line after the help strings. + // + UARTprintf("\n"); + + return (0); +} + +//***************************************************************************** +// +// Command: hib +// +// Request the device enter hibernate mode now. +// +//***************************************************************************** +int +CMD_hib(int argc, char **argv) +{ + // + // Keep the compiler happy. + // + (void)argc; + (void)argv; + + // + // Request Application to enter hibernate state. + // + g_bHibernate = true; + + return (0); +} + +//***************************************************************************** +// +// Command: date +// +// Set the current system date. Use format "DD/MM/YYYY" +// +//***************************************************************************** +int +CMD_date(int argc, char **argv) +{ + const char *pcNext; + + // + // Check the argument count and return errors for too many or too few. + // + if(argc == 1) + { + return(CMDLINE_TOO_FEW_ARGS); + } + if(argc > 2) + { + return(CMDLINE_TOO_MANY_ARGS); + } + + // + // Convert the date to unsigned long + // + g_ui32DayIdx = ustrtoul(argv[1], &pcNext, 10); + g_ui32MonthIdx = ustrtoul(pcNext+1, &pcNext, 10) - 1; + g_ui32YearIdx = (ustrtoul(pcNext+1, NULL, 10) - 2000); + + // + // Perform the conversions to a time struct and store in the hibernate + // module after doing a minimal amount of validation. + // + if((g_ui32DayIdx > 31) || (g_ui32MonthIdx > 11)) + { + return(CMDLINE_INVALID_ARG); + } + + DateTimeSet(); + + return(0); +} + +//***************************************************************************** +// +//Command: time12 +// +// Set the current system time. Use format "HH:MM:SS:X" Where X is 'A' or 'P' +// for AM or PM. HH is hours. MM is minutes. SS is seconds. +// +//***************************************************************************** +int +CMD_time12(int argc, char **argv) +{ + const char *pcNext; + + // + // Check the argument count and return errors for too many or too few. + // + if(argc == 1) + { + return(CMDLINE_TOO_FEW_ARGS); + } + if(argc > 2) + { + return(CMDLINE_TOO_MANY_ARGS); + } + + // + // Convert the user string to unsigned long hours and minutes. + // + g_ui32HourIdx = ustrtoul(argv[1], &pcNext, 10); + g_ui32MinIdx = ustrtoul(pcNext + 1, &pcNext, 10); + + // + // Accomodate the PM vs AM modification. All times are stored internally + // as 24 hour format. + // + if(ustrncmp(pcNext + 1, "PM", 2) == 0) + { + if(g_ui32HourIdx < 12) + { + g_ui32HourIdx += 12; + } + } + else + { + if(g_ui32HourIdx > 11) + { + g_ui32HourIdx -= 12; + } + } + + // + // Perform the conversions to a time struct and store in the hibernate + // module. Also do some minimal checking on the input data. + // + if((g_ui32HourIdx < 24) && (g_ui32MinIdx < 60)) + { + DateTimeSet(); + } + + return(0); +} + +//***************************************************************************** +// +//Command: time24 +// +// Set the current system time. Use format "HH:MM:SS" +// +//***************************************************************************** +int +CMD_time24(int argc, char **argv) +{ + const char *pcNext; + + // + // Check the argument count and return errors for too many or too few. + // + if(argc == 1) + { + return(CMDLINE_TOO_FEW_ARGS); + } + if(argc > 2) + { + return(CMDLINE_TOO_MANY_ARGS); + } + + // + // Convert the user string to unsigned long hours and minutes. + // + g_ui32HourIdx = ustrtoul(argv[1], &pcNext, 10); + g_ui32MinIdx = ustrtoul(pcNext + 1, NULL, 10); + + // + // Perform the conversions to a time struct and store in the hibernate + // module. Also do some minimal checking on the input data. + // + if((g_ui32HourIdx < 24) && (g_ui32MinIdx < 60)) + { + DateTimeSet(); + } + + return(0); +} diff --git a/boards/ek-tm4c1294xl/hibernate/hibernate_commands.h b/boards/ek-tm4c1294xl/hibernate/hibernate_commands.h new file mode 100644 index 0000000..3486bd8 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/hibernate_commands.h @@ -0,0 +1,72 @@ +//***************************************************************************** +// +// hibernate_commands.h - Prototypes for the evaluation board command line. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __HIBERNATE_COMMANDS_H__ +#define __HIBERNATE_COMMANDS_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Defines for the command line argument parser provided as a standard part of +// TivaWare. hibernate example application uses the command line parser to +// extend functionality to the serial port. +// +//***************************************************************************** + +#define CMDLINE_MAX_ARGS 2 + +//***************************************************************************** +// +// Declaration for the callback functions that will implement the command line +// functionality. These functions get called by the command line interpreter +// when the corresponding command is typed into the command line. +// +//***************************************************************************** +extern int CMD_help (int argc, char **argv); +extern int CMD_hib (int argc, char **argv); +extern int CMD_date (int argc, char **argv); +extern int CMD_time12(int argc, char **argv); +extern int CMD_time24(int argc, char **argv); +extern int CMD_cls(int argc, char **argv); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif //__HIBERNATE_COMMANDS_H__ diff --git a/boards/ek-tm4c1294xl/hibernate/readme.txt b/boards/ek-tm4c1294xl/hibernate/readme.txt new file mode 100644 index 0000000..05035ee --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/readme.txt @@ -0,0 +1,40 @@ +Hibernate Example + +An example to demonstrate the use of the Hibernation module. The user +can put the microcontroller in hibernation by typing 'hib' in the terminal +and pressing ENTER or by pressing USR_SW1 on the board. The +microcontroller will then wake on its own after 5 seconds, or immediately +if the user presses the RESET button. The External WAKE button, external +WAKE pins, and GPIO (PK6) wake sources can also be used to wake +immediately from hibernation. The following wiring enables the use of +these pins as wake sources. + WAKE on breadboard connection header (X11-95) to GND + PK6 on BoosterPack 2 (X7-17) to GND + PK6 on breadboard connection header (X11-63) to GND + +The program keeps a count of the number of times it has entered +hibernation. The value of the counter is stored in the battery-backed +memory of the Hibernation module so that it can be retrieved when the +microcontroller wakes. The program displays the wall time and date by +making use of the calendar function of the Hibernate module. User can +modify the date and time if so desired. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/hibernate/rvmdk/hibernate.axf b/boards/ek-tm4c1294xl/hibernate/rvmdk/hibernate.axf new file mode 100644 index 0000000..1979632 Binary files /dev/null and b/boards/ek-tm4c1294xl/hibernate/rvmdk/hibernate.axf differ diff --git a/boards/ek-tm4c1294xl/hibernate/rvmdk/hibernate.bin b/boards/ek-tm4c1294xl/hibernate/rvmdk/hibernate.bin new file mode 100644 index 0000000..a869230 Binary files /dev/null and b/boards/ek-tm4c1294xl/hibernate/rvmdk/hibernate.bin differ diff --git a/boards/ek-tm4c1294xl/hibernate/startup_ccs.c b/boards/ek-tm4c1294xl/hibernate/startup_ccs.c new file mode 100644 index 0000000..17bb60f --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/startup_ccs.c @@ -0,0 +1,276 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/hibernate/startup_ewarm.c b/boards/ek-tm4c1294xl/hibernate/startup_ewarm.c new file mode 100644 index 0000000..a9d89b8 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/startup_ewarm.c @@ -0,0 +1,307 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/hibernate/startup_gcc.c b/boards/ek-tm4c1294xl/hibernate/startup_gcc.c new file mode 100644 index 0000000..bf14d11 --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/startup_gcc.c @@ -0,0 +1,323 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/hibernate/startup_rvmdk.S b/boards/ek-tm4c1294xl/hibernate/startup_rvmdk.S new file mode 100644 index 0000000..0d5782a --- /dev/null +++ b/boards/ek-tm4c1294xl/hibernate/startup_rvmdk.S @@ -0,0 +1,332 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000400 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN SysTickIntHandler + EXTERN UARTStdioIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD UARTStdioIntHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/interrupts/Makefile b/boards/ek-tm4c1294xl/interrupts/Makefile new file mode 100644 index 0000000..b29ffd9 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/Makefile @@ -0,0 +1,89 @@ +#****************************************************************************** +# +# Makefile - Rules for building the interrupts example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=. +IPATH+=.. +IPATH+=../../../.. + +# +# The default rule, which causes the interrupts example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/interrupts.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the interrupts example. +# +${COMPILER}/interrupts.axf: ${COMPILER}/interrupts.o +${COMPILER}/interrupts.axf: ${COMPILER}/pinout.o +${COMPILER}/interrupts.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/interrupts.axf: ${COMPILER}/uartstdio.o +${COMPILER}/interrupts.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/interrupts.axf: interrupts.ld +SCATTERgcc_interrupts=interrupts.ld +ENTRY_interrupts=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/interrupts/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/interrupts/ccs/.ccsimportspec new file mode 100644 index 0000000..9033256 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/interrupts/ccs/.ccsproject b/boards/ek-tm4c1294xl/interrupts/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/interrupts/ccs/.cproject b/boards/ek-tm4c1294xl/interrupts/ccs/.cproject new file mode 100644 index 0000000..96b92a8 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/ccs/.cproject @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/interrupts/ccs/.project b/boards/ek-tm4c1294xl/interrupts/ccs/.project new file mode 100644 index 0000000..2b0cf12 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/ccs/.project @@ -0,0 +1,60 @@ + + + interrupts + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + interrupts.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/interrupts/interrupts.c + + + interrupts_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/interrupts/interrupts_ccs.cmd + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/interrupts/startup_ccs.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/interrupts/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/interrupts/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/interrupts/ccs/Debug/interrupts.bin b/boards/ek-tm4c1294xl/interrupts/ccs/Debug/interrupts.bin new file mode 100644 index 0000000..54df0cf Binary files /dev/null and b/boards/ek-tm4c1294xl/interrupts/ccs/Debug/interrupts.bin differ diff --git a/boards/ek-tm4c1294xl/interrupts/ccs/Debug/interrupts.out b/boards/ek-tm4c1294xl/interrupts/ccs/Debug/interrupts.out new file mode 100644 index 0000000..905b572 Binary files /dev/null and b/boards/ek-tm4c1294xl/interrupts/ccs/Debug/interrupts.out differ diff --git a/boards/ek-tm4c1294xl/interrupts/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/interrupts/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/interrupts/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/interrupts/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/interrupts/ewarm/Exe/interrupts.bin b/boards/ek-tm4c1294xl/interrupts/ewarm/Exe/interrupts.bin new file mode 100644 index 0000000..ae882d0 Binary files /dev/null and b/boards/ek-tm4c1294xl/interrupts/ewarm/Exe/interrupts.bin differ diff --git a/boards/ek-tm4c1294xl/interrupts/ewarm/Exe/interrupts.out b/boards/ek-tm4c1294xl/interrupts/ewarm/Exe/interrupts.out new file mode 100644 index 0000000..7877cc2 Binary files /dev/null and b/boards/ek-tm4c1294xl/interrupts/ewarm/Exe/interrupts.out differ diff --git a/boards/ek-tm4c1294xl/interrupts/gcc/interrupts.axf b/boards/ek-tm4c1294xl/interrupts/gcc/interrupts.axf new file mode 100644 index 0000000..4a0fe85 Binary files /dev/null and b/boards/ek-tm4c1294xl/interrupts/gcc/interrupts.axf differ diff --git a/boards/ek-tm4c1294xl/interrupts/gcc/interrupts.bin b/boards/ek-tm4c1294xl/interrupts/gcc/interrupts.bin new file mode 100644 index 0000000..07d18cf Binary files /dev/null and b/boards/ek-tm4c1294xl/interrupts/gcc/interrupts.bin differ diff --git a/boards/ek-tm4c1294xl/interrupts/interrupts.c b/boards/ek-tm4c1294xl/interrupts/interrupts.c new file mode 100644 index 0000000..a85148c --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/interrupts.c @@ -0,0 +1,632 @@ +//***************************************************************************** +// +// interrupts.c - Interrupt preemption and tail-chaining example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/pin_map.h" +#include "driverlib/systick.h" +#include "driverlib/sysctl.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "drivers/pinout.h" +#include "utils/uartstdio.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      Interrupts (interrupts)

      +//! +//! This example application demonstrates the interrupt preemption and +//! tail-chaining capabilities of Cortex-M4 microprocessor and NVIC. Nested +//! interrupts are synthesized when the interrupts have the same priority, +//! increasing priorities, and decreasing priorities. With increasing +//! priorities, preemption will occur; in the other two cases tail-chaining +//! will occur. The currently pending interrupts and the currently executing +//! interrupt will be displayed on the UART; GPIO pins B3, L1 and L0 (the +//! GPIO on jumper J27 on the left edge of the board) will be asserted upon +//! interrupt handler entry and de-asserted before interrupt handler exit so +//! that the off-to-on time can be observed with a scope or logic analyzer to +//! see the speed of tail-chaining (for the two cases where tail-chaining is +//! occurring). +// +//***************************************************************************** + + +//**************************************************************************** +// +// Defines for Interrupt Priority. +// +//**************************************************************************** +#define EQUAL_PRIORITY 0 +#define DECREASING_PRIORITY 1 +#define INCREASING_PRIORITY 2 + +//**************************************************************************** +// +// System clock rate in Hz. +// +//**************************************************************************** +uint32_t g_ui32SysClock; + +//**************************************************************************** +// +// Interrupt Mode. +// +//**************************************************************************** +uint32_t g_ui32IntMode; + +//***************************************************************************** +// +// The count of interrupts received. This is incremented as each interrupt +// handler runs, and its value saved into interrupt handler specific values to +// determine the order in which the interrupt handlers were executed. +// +//***************************************************************************** +volatile uint32_t g_ui32Index; + +//***************************************************************************** +// +// The value of g_ui32Index when the INT_GPIOA interrupt was processed. +// +//***************************************************************************** +volatile uint32_t g_ui32GPIOa; + +//***************************************************************************** +// +// The value of g_ui32Index when the INT_GPIOB interrupt was processed. +// +//***************************************************************************** +volatile uint32_t g_ui32GPIOb; + +//***************************************************************************** +// +// The value of g_ui32Index when the INT_GPIOC interrupt was processed. +// +//***************************************************************************** +volatile uint32_t g_ui32GPIOc; + +//***************************************************************************** +// +// GPIOs that are used for this example. +// +//***************************************************************************** +#define GPIO_A_BASE GPIO_PORTB_BASE +#define GPIO_A_PIN GPIO_PIN_3 +#define GPIO_B_BASE GPIO_PORTL_BASE +#define GPIO_B_PIN GPIO_PIN_1 +#define GPIO_C_BASE GPIO_PORTL_BASE +#define GPIO_C_PIN GPIO_PIN_0 + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// Delay for the specified number of seconds. Depending upon the current +// SysTick value, the delay will be between N-1 and N seconds (i.e. N-1 full +// seconds are guaranteed, along with the remainder of the current second). +// +//***************************************************************************** +void +Delay(uint32_t ui32Seconds) +{ + uint8_t ui8Loop; + + // + // Loop while there are more seconds to wait. + // + while(ui32Seconds--) + { + for(ui8Loop = 0; ui8Loop < 100; ui8Loop++) + { + // + // Wait until the SysTick value is less than 1000. + // + while(ROM_SysTickValueGet() > 1000) + { + } + + // + // Wait until the SysTick value is greater than 1000. + // + while(ROM_SysTickValueGet() < 1000) + { + } + } + } +} + +//***************************************************************************** +// +// Display the interrupt state on the UART. The currently active and pending +// interrupts are displayed. +// +//***************************************************************************** +void +DisplayIntStatus(void) +{ + uint32_t ui32Temp; + char pcBuffer[6]; + + // + // Put the status header text on the UART. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("Interrupts example\n\n"); + switch (g_ui32IntMode) + { + case 0: + UARTprintf("Equal Priority\n\n"); + break; + + case 1: + UARTprintf("Decreasing Priority\n\n"); + break; + + case 2: + UARTprintf("Increasing Priority\n\n"); + break; + default: + break; + } + + UARTprintf("Active: "); + + // + // Display the currently active interrupts. + // + ui32Temp = HWREG(NVIC_ACTIVE0); + pcBuffer[0] = ' '; + pcBuffer[1] = (ui32Temp & 1) ? '1' : ' '; + pcBuffer[2] = (ui32Temp & 2) ? '2' : ' '; + pcBuffer[3] = (ui32Temp & 4) ? '3' : ' '; + pcBuffer[4] = ' '; + pcBuffer[5] = '\0'; + UARTprintf(pcBuffer); + + // + // Display the currently pending interrupts. + // + ui32Temp = HWREG(NVIC_PEND0); + pcBuffer[1] = (ui32Temp & 1) ? '1' : ' '; + pcBuffer[2] = (ui32Temp & 2) ? '2' : ' '; + pcBuffer[3] = (ui32Temp & 4) ? '3' : ' '; + UARTprintf("Pending: "); + UARTprintf(pcBuffer); +} + +//***************************************************************************** +// +// This is the handler for INT_GPIOA. It simply saves the interrupt sequence +// number. +// +//***************************************************************************** +void +IntGPIOa(void) +{ + // + // Set GPIO high to indicate entry to this interrupt handler. + // + ROM_GPIOPinWrite(GPIO_A_BASE, GPIO_A_PIN, GPIO_A_PIN); + + // + // Put the current interrupt state on the UART. + // + DisplayIntStatus(); + + // + // Wait two seconds. + // + Delay(2); + + // + // Save and increment the interrupt sequence number. + // + g_ui32GPIOa = g_ui32Index++; + + // + // Set GPIO low to indicate exit from this interrupt handler. + // + ROM_GPIOPinWrite(GPIO_A_BASE, GPIO_A_PIN, 0); +} + +//***************************************************************************** +// +// This is the handler for INT_GPIOB. It triggers INT_GPIOA and saves the +// interrupt sequence number. +// +//***************************************************************************** +void +IntGPIOb(void) +{ + // + // Set GPIO high to indicate entry to this interrupt handler. + // + ROM_GPIOPinWrite(GPIO_B_BASE, GPIO_B_PIN, GPIO_B_PIN); + + // + // Put the current interrupt state on the UART. + // + DisplayIntStatus(); + + // + // Trigger the INT_GPIOA interrupt. + // + HWREG(NVIC_SW_TRIG) = INT_GPIOA - 16; + + // + // Put the current interrupt state on the UART. + // + DisplayIntStatus(); + + // + // Wait two seconds. + // + Delay(2); + + // + // Save and increment the interrupt sequence number. + // + g_ui32GPIOb = g_ui32Index++; + + // + // Set GPIO low to indicate exit from this interrupt handler. + // + ROM_GPIOPinWrite(GPIO_B_BASE, GPIO_B_PIN, 0); +} + +//***************************************************************************** +// +// This is the handler for INT_GPIOC. It triggers INT_GPIOB and saves the +// interrupt sequence number. +// +//***************************************************************************** +void +IntGPIOc(void) +{ + // + // Set GPIO high to indicate entry to this interrupt handler. + // + ROM_GPIOPinWrite(GPIO_C_BASE, GPIO_C_PIN, GPIO_C_PIN); + + // + // Put the current interrupt state on the UART. + // + DisplayIntStatus(); + + // + // Trigger the INT_GPIOB interrupt. + // + HWREG(NVIC_SW_TRIG) = INT_GPIOB - 16; + + // + // Put the current interrupt state on the UART. + // + DisplayIntStatus(); + + // + // Wait two seconds. + // + Delay(2); + + // + // Save and increment the interrupt sequence number. + // + g_ui32GPIOc = g_ui32Index++; + + // + // Set GPIO low to indicate exit from this interrupt handler. + // + ROM_GPIOPinWrite(GPIO_C_BASE, GPIO_C_PIN, 0); +} + +//***************************************************************************** +// +// Configure the UART and its pins. This must be called before UARTprintf(). +// +//***************************************************************************** +void +ConfigureUART(void) +{ + // + // Enable the GPIO Peripheral used by the UART. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + ROM_SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_GPIOA); + + // + // Enable UART0. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + ROM_SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_UART0); + + // + // Configure GPIO Pins for UART mode. + // + ROM_GPIOPinConfigure(GPIO_PA0_U0RX); + ROM_GPIOPinConfigure(GPIO_PA1_U0TX); + ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); +} + +//***************************************************************************** +// +// This is the main example program. It checks to see that the interrupts are +// processed in the correct order when they have identical priorities, +// increasing priorities, and decreasing priorities. This exercises interrupt +// preemption and tail chaining. +// +//***************************************************************************** +int +main(void) +{ + uint_fast8_t ui8Error; + + // + // Run from the PLL at 120 MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins. + // + PinoutSet(false, false); + + // + // Configure the UART. + // + ConfigureUART(); + + // + // Configure the B3, L1 and L0 to be outputs to indicate entry/exit of one + // of the interrupt handlers. + // + GPIOPinTypeGPIOOutput(GPIO_A_BASE, GPIO_A_PIN); + GPIOPinTypeGPIOOutput(GPIO_B_BASE, GPIO_B_PIN); + GPIOPinTypeGPIOOutput(GPIO_C_BASE, GPIO_C_PIN); + GPIOPinWrite(GPIO_A_BASE, GPIO_A_PIN, 0); + GPIOPinWrite(GPIO_B_BASE, GPIO_B_PIN, 0); + GPIOPinWrite(GPIO_C_BASE, GPIO_C_PIN, 0); + + // + // Set up and enable the SysTick timer. It will be used as a reference + // for delay loops in the interrupt handlers. The SysTick timer period + // will be set up for 100 times per second. + // + ROM_SysTickPeriodSet(g_ui32SysClock / 100); + ROM_SysTickEnable(); + + // + // Reset the error indicator. + // + ui8Error = 0; + + // + // Enable interrupts to the processor. + // + ROM_IntMasterEnable(); + + // + // Enable the interrupts. + // + ROM_IntEnable(INT_GPIOA); + ROM_IntEnable(INT_GPIOB); + ROM_IntEnable(INT_GPIOC); + + // + // Indicate that the equal interrupt priority test is beginning. + // + g_ui32IntMode = EQUAL_PRIORITY; + + // + // Set the interrupt priorities so they are all equal. + // + ROM_IntPrioritySet(INT_GPIOA, 0x00); + ROM_IntPrioritySet(INT_GPIOB, 0x00); + ROM_IntPrioritySet(INT_GPIOC, 0x00); + + // + // Reset the interrupt flags. + // + g_ui32GPIOa = 0; + g_ui32GPIOb = 0; + g_ui32GPIOc = 0; + g_ui32Index = 1; + + // + // Trigger the interrupt for GPIO C. + // + HWREG(NVIC_SW_TRIG) = INT_GPIOC - 16; + + // + // Put the current interrupt state on the LCD. + // + DisplayIntStatus(); + + // + // Verify that the interrupts were processed in the correct order. + // + if((g_ui32GPIOa != 3) || (g_ui32GPIOb != 2) || (g_ui32GPIOc != 1)) + { + ui8Error |= 1; + } + + // + // Wait two seconds. + // + Delay(2); + + // + // Indicate that the decreasing interrupt priority test is beginning. + // + g_ui32IntMode = DECREASING_PRIORITY; + + // + // Set the interrupt priorities so that they are decreasing (i.e. C > B > + // A). + // + ROM_IntPrioritySet(INT_GPIOA, 0x80); + ROM_IntPrioritySet(INT_GPIOB, 0x40); + ROM_IntPrioritySet(INT_GPIOC, 0x00); + + // + // Reset the interrupt flags. + // + g_ui32GPIOa = 0; + g_ui32GPIOb = 0; + g_ui32GPIOc = 0; + g_ui32Index = 1; + + // + // Trigger the interrupt for GPIO C. + // + HWREG(NVIC_SW_TRIG) = INT_GPIOC - 16; + + // + // Put the current interrupt state on the UART. + // + DisplayIntStatus(); + + // + // Verify that the interrupts were processed in the correct order. + // + if((g_ui32GPIOa != 3) || (g_ui32GPIOb != 2) || (g_ui32GPIOc != 1)) + { + ui8Error |= 2; + } + + // + // Wait two seconds. + // + Delay(2); + + // + // Indicate that the increasing interrupt priority test is beginning. + // + g_ui32IntMode = INCREASING_PRIORITY; + + // + // Set the interrupt priorities so that they are increasing (i.e. C < B < + // A). + // + ROM_IntPrioritySet(INT_GPIOA, 0x00); + ROM_IntPrioritySet(INT_GPIOB, 0x40); + ROM_IntPrioritySet(INT_GPIOC, 0x80); + + // + // Reset the interrupt flags. + // + g_ui32GPIOa = 0; + g_ui32GPIOb = 0; + g_ui32GPIOc = 0; + g_ui32Index = 1; + + // + // Trigger the interrupt for GPIO C. + // + HWREG(NVIC_SW_TRIG) = INT_GPIOC - 16; + + // + // Put the current interrupt state on the UART. + // + DisplayIntStatus(); + + // + // Verify that the interrupts were processed in the correct order. + // + if((g_ui32GPIOa != 1) || (g_ui32GPIOb != 2) || (g_ui32GPIOc != 3)) + { + ui8Error |= 4; + } + + // + // Wait two seconds. + // + Delay(2); + + // + // Disable the interrupts. + // + ROM_IntDisable(INT_GPIOA); + ROM_IntDisable(INT_GPIOB); + ROM_IntDisable(INT_GPIOC); + + // + // Disable interrupts to the processor. + // + ROM_IntMasterDisable(); + + // + // Print out the test results. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("Interrupts example\n\n"); + if(ui8Error) + { + if(ui8Error & 1) + { + UARTprintf("Equal Priority Fail!\n"); + } + if(ui8Error & 2) + { + UARTprintf("Decreasing Priority Fail!\n"); + } + if(ui8Error & 4) + { + UARTprintf("Increasing Priority Fail!\n"); + } + } + else + { + UARTprintf("Success!"); + } + + // + // Loop forever. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/interrupts/interrupts.ewd b/boards/ek-tm4c1294xl/interrupts/interrupts.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/interrupts.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/interrupts/interrupts.ewp b/boards/ek-tm4c1294xl/interrupts/interrupts.ewp new file mode 100644 index 0000000..bb5503b --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/interrupts.ewp @@ -0,0 +1,794 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\interrupts.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + diff --git a/boards/ek-tm4c1294xl/interrupts/interrupts.icf b/boards/ek-tm4c1294xl/interrupts/interrupts.icf new file mode 100644 index 0000000..989b66d --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/interrupts.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// interrupts.icf - Linker configuration file for interrupts. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/interrupts/interrupts.ld b/boards/ek-tm4c1294xl/interrupts/interrupts.ld new file mode 100644 index 0000000..e5c8e54 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/interrupts.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * interrupts.ld - Linker configuration file for interrupts. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/interrupts/interrupts.sct b/boards/ek-tm4c1294xl/interrupts/interrupts.sct new file mode 100644 index 0000000..90278f1 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/interrupts.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; interrupts.sct - Linker configuration file for interrupts. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/interrupts/interrupts.uvopt b/boards/ek-tm4c1294xl/interrupts/interrupts.uvopt new file mode 100644 index 0000000..3d921df --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/interrupts.uvopt @@ -0,0 +1,317 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + interrupts + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S3 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\interrupts.c + interrupts.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 3 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 5 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 6 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/interrupts/interrupts.uvproj b/boards/ek-tm4c1294xl/interrupts/interrupts.uvproj new file mode 100644 index 0000000..5d1d162 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/interrupts.uvproj @@ -0,0 +1,434 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + interrupts + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + interrupts + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\interrupts.bin .\rvmdk\interrupts.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + .;..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + interrupts.sct + + + --entry Reset_Handler + + + + + + + + Source + + + interrupts.c + 1 + .\interrupts.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/interrupts/interrupts_ccs.cmd b/boards/ek-tm4c1294xl/interrupts/interrupts_ccs.cmd new file mode 100644 index 0000000..2799513 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/interrupts_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * interrupts_ccs.cmd - CCS linker configuration file for interrupts. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 512; diff --git a/boards/ek-tm4c1294xl/interrupts/readme.txt b/boards/ek-tm4c1294xl/interrupts/readme.txt new file mode 100644 index 0000000..2268380 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/readme.txt @@ -0,0 +1,34 @@ +Interrupts + +This example application demonstrates the interrupt preemption and +tail-chaining capabilities of Cortex-M4 microprocessor and NVIC. Nested +interrupts are synthesized when the interrupts have the same priority, +increasing priorities, and decreasing priorities. With increasing +priorities, preemption will occur; in the other two cases tail-chaining +will occur. The currently pending interrupts and the currently executing +interrupt will be displayed on the UART; GPIO pins B3, L1 and L0 (the +GPIO on jumper J27 on the left edge of the board) will be asserted upon +interrupt handler entry and de-asserted before interrupt handler exit so +that the off-to-on time can be observed with a scope or logic analyzer to +see the speed of tail-chaining (for the two cases where tail-chaining is +occurring). + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/interrupts/rvmdk/interrupts.axf b/boards/ek-tm4c1294xl/interrupts/rvmdk/interrupts.axf new file mode 100644 index 0000000..aebd584 Binary files /dev/null and b/boards/ek-tm4c1294xl/interrupts/rvmdk/interrupts.axf differ diff --git a/boards/ek-tm4c1294xl/interrupts/rvmdk/interrupts.bin b/boards/ek-tm4c1294xl/interrupts/rvmdk/interrupts.bin new file mode 100644 index 0000000..94a017b Binary files /dev/null and b/boards/ek-tm4c1294xl/interrupts/rvmdk/interrupts.bin differ diff --git a/boards/ek-tm4c1294xl/interrupts/startup_ccs.c b/boards/ek-tm4c1294xl/interrupts/startup_ccs.c new file mode 100644 index 0000000..e7ea7bb --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/startup_ccs.c @@ -0,0 +1,277 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void IntGPIOa(void); +extern void IntGPIOb(void); +extern void IntGPIOc(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntGPIOa, // GPIO Port A + IntGPIOb, // GPIO Port B + IntGPIOc, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/interrupts/startup_ewarm.c b/boards/ek-tm4c1294xl/interrupts/startup_ewarm.c new file mode 100644 index 0000000..7b2d748 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/startup_ewarm.c @@ -0,0 +1,308 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void IntGPIOa(void); +extern void IntGPIOb(void); +extern void IntGPIOc(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntGPIOa, // GPIO Port A + IntGPIOb, // GPIO Port B + IntGPIOc, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/interrupts/startup_gcc.c b/boards/ek-tm4c1294xl/interrupts/startup_gcc.c new file mode 100644 index 0000000..cd21be0 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/startup_gcc.c @@ -0,0 +1,324 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void IntGPIOa(void); +extern void IntGPIOb(void); +extern void IntGPIOc(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntGPIOa, // GPIO Port A + IntGPIOb, // GPIO Port B + IntGPIOc, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/interrupts/startup_rvmdk.S b/boards/ek-tm4c1294xl/interrupts/startup_rvmdk.S new file mode 100644 index 0000000..c8466b3 --- /dev/null +++ b/boards/ek-tm4c1294xl/interrupts/startup_rvmdk.S @@ -0,0 +1,333 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000200 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN IntGPIOa + EXTERN IntGPIOb + EXTERN IntGPIOc + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntGPIOa ; GPIO Port A + DCD IntGPIOb ; GPIO Port B + DCD IntGPIOc ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/mpu_fault/Makefile b/boards/ek-tm4c1294xl/mpu_fault/Makefile new file mode 100644 index 0000000..05e8b69 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/Makefile @@ -0,0 +1,88 @@ +#****************************************************************************** +# +# Makefile - Rules for building the MPU example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the MPU example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/mpu_fault.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the MPU example. +# +${COMPILER}/mpu_fault.axf: ${COMPILER}/mpu_fault.o +${COMPILER}/mpu_fault.axf: ${COMPILER}/pinout.o +${COMPILER}/mpu_fault.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/mpu_fault.axf: ${COMPILER}/uartstdio.o +${COMPILER}/mpu_fault.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/mpu_fault.axf: mpu_fault.ld +SCATTERgcc_mpu_fault=mpu_fault.ld +ENTRY_mpu_fault=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/mpu_fault/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/mpu_fault/ccs/.ccsimportspec new file mode 100644 index 0000000..2bef69c --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/mpu_fault/ccs/.ccsproject b/boards/ek-tm4c1294xl/mpu_fault/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/mpu_fault/ccs/.cproject b/boards/ek-tm4c1294xl/mpu_fault/ccs/.cproject new file mode 100644 index 0000000..f09a3f2 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/ccs/.cproject @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/mpu_fault/ccs/.project b/boards/ek-tm4c1294xl/mpu_fault/ccs/.project new file mode 100644 index 0000000..7bb52ae --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/ccs/.project @@ -0,0 +1,60 @@ + + + mpu_fault + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + mpu_fault.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.c + + + mpu_fault_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/mpu_fault/mpu_fault_ccs.cmd + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/mpu_fault/startup_ccs.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/mpu_fault/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/mpu_fault/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/mpu_fault/ccs/Debug/mpu_fault.bin b/boards/ek-tm4c1294xl/mpu_fault/ccs/Debug/mpu_fault.bin new file mode 100644 index 0000000..0215aa0 Binary files /dev/null and b/boards/ek-tm4c1294xl/mpu_fault/ccs/Debug/mpu_fault.bin differ diff --git a/boards/ek-tm4c1294xl/mpu_fault/ccs/Debug/mpu_fault.out b/boards/ek-tm4c1294xl/mpu_fault/ccs/Debug/mpu_fault.out new file mode 100644 index 0000000..51489ce Binary files /dev/null and b/boards/ek-tm4c1294xl/mpu_fault/ccs/Debug/mpu_fault.out differ diff --git a/boards/ek-tm4c1294xl/mpu_fault/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/mpu_fault/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/mpu_fault/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/mpu_fault/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/mpu_fault/ewarm/Exe/mpu_fault.bin b/boards/ek-tm4c1294xl/mpu_fault/ewarm/Exe/mpu_fault.bin new file mode 100644 index 0000000..80ccfac Binary files /dev/null and b/boards/ek-tm4c1294xl/mpu_fault/ewarm/Exe/mpu_fault.bin differ diff --git a/boards/ek-tm4c1294xl/mpu_fault/ewarm/Exe/mpu_fault.out b/boards/ek-tm4c1294xl/mpu_fault/ewarm/Exe/mpu_fault.out new file mode 100644 index 0000000..3052784 Binary files /dev/null and b/boards/ek-tm4c1294xl/mpu_fault/ewarm/Exe/mpu_fault.out differ diff --git a/boards/ek-tm4c1294xl/mpu_fault/gcc/mpu_fault.axf b/boards/ek-tm4c1294xl/mpu_fault/gcc/mpu_fault.axf new file mode 100644 index 0000000..c1c3ddd Binary files /dev/null and b/boards/ek-tm4c1294xl/mpu_fault/gcc/mpu_fault.axf differ diff --git a/boards/ek-tm4c1294xl/mpu_fault/gcc/mpu_fault.bin b/boards/ek-tm4c1294xl/mpu_fault/gcc/mpu_fault.bin new file mode 100644 index 0000000..b58c01a Binary files /dev/null and b/boards/ek-tm4c1294xl/mpu_fault/gcc/mpu_fault.bin differ diff --git a/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.c b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.c new file mode 100644 index 0000000..eca86f0 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.c @@ -0,0 +1,487 @@ +//***************************************************************************** +// +// mpu_fault.c - MPU example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" +#include "driverlib/interrupt.h" +#include "driverlib/mpu.h" +#include "driverlib/sysctl.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "drivers/pinout.h" +#include "utils/uartstdio.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      MPU (mpu_fault)

      +//! +//! This example application demonstrates the use of the MPU to protect a +//! region of memory from access, and to generate a memory management fault +//! when there is an access violation. +//! +//! UART0, connected to the ICDI virtual COM port and running at 115,200, +//! 8-N-1, is used to display messages from this application. +//! +//***************************************************************************** + + +//***************************************************************************** +// +// Variables to hold the state of the fault status when the fault occurs and +// the faulting address. +// +//***************************************************************************** +static volatile uint32_t g_ui32MMAR; +static volatile uint32_t g_ui32FaultStatus; + +//***************************************************************************** +// +// A counter to track the number of times the fault handler has been entered. +// +//***************************************************************************** +static volatile uint32_t g_ui32MPUFaultCount; + +//***************************************************************************** +// +// A location for storing data read from various addresses. Volatile forces +// the compiler to use it and not optimize the access away. +// +//***************************************************************************** +static volatile uint32_t g_ui32Value; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// A simple function to perform a write using a 16-bit instruction, allowing +// for easy fix-up in the mpu fault handler. +// +//***************************************************************************** +#if defined(gcc) || defined(sourcerygxx) +void __attribute__((naked)) +Write(uint32_t ui32Addr, uint32_t ui32Data) +{ + __asm(" str r1, [r0]\n" + " bx lr"); +} + +uint32_t __attribute__((naked)) +Read(uint32_t ui32Offset) +{ + __asm(" ldr r0, [r0]\n" + " bx lr"); +} +#endif + +#if defined(rvmdk) +__asm void +Write(uint32_t ui32Addr, uint32_t ui32Data) +{ + str r1, [r0]; + bx lr; +} + +__asm uint32_t +Read(uint32_t ui32Offset) +{ + ldr r0, [r0]; + bx lr; +} +#endif + +#if defined(ewarm) +void +Write(uint32_t ui32Addr, uint32_t ui32Data) +{ + __asm("str r1, [r0]\n" + "bx lr"); +} + +uint32_t +Read(uint32_t ui32Offset) +{ + __asm("ldr r0, [r0]\n" + "bx lr\n"); +#pragma diag_suppress=Pe940 +} +#pragma diag_default=Pe940 +#endif + +#if defined(ccs) +__asm(" .sect \".text\"\n" + " .clink\n" + " .thumbfunc Write\n" + " .thumb\n" + " .global Write\n" + "Write:\n" + " str r1, [r0]\n" + " bx lr\n"); + +__asm(" .sect \".text\"\n" + " .clink\n" + " .thumbfunc Read\n" + " .thumb\n" + " .global Read\n" + "Read:\n" + " ldr r0, [r0]\n" + " bx lr\n"); +void Write(uint32_t ui32Addr, uint32_t ui32Data); +uint32_t Read(uint32_t ui32Offset); +#endif + +//***************************************************************************** +// +// The exception handler for memory management faults, which are caused by MPU +// access violations. This handler will verify the cause of the fault and +// clear the NVIC fault status register. +// +//***************************************************************************** +void +MPUFaultHandler(void) +{ + // + // Preserve the value of the MMAR (the address causing the fault). + // Preserve the fault status register value, then clear it. + // + g_ui32MMAR = HWREG(NVIC_MM_ADDR); + g_ui32FaultStatus = HWREG(NVIC_FAULT_STAT); + HWREG(NVIC_FAULT_STAT) = g_ui32FaultStatus; + + // + // Increment a counter to indicate the fault occurred. + // + g_ui32MPUFaultCount++; + + // + // How the MPU fault is handled is application dependent... + // In this sample code, we are skipping the faulted instruction and + // continuing through the application. Since we are forcing the Read + // and Write function to use 16bits instructions only, it is safe to + // add 2 to the faulted instruction address to get the next + // instruction address. + // + #if defined(rvmdk) + { + uint32_t puiFaultPC; + + puiFaultPC = __current_sp() + 0x18; + *(uint32_t*)puiFaultPC = *(uint32_t*)puiFaultPC + 2; + } + #else + __asm(" mov r0, sp\n" + " ldr r1, [r0, #0x18]\n" + " adds r1, #2\n" + " str r1, [r0, #0x18]"); + #endif +} + +//***************************************************************************** +// +// This example demonstrates how to configure MPU regions for different levels +// of memory protection. The following memory map is set up: +// +// 0000.0000 - 0000.7000 - rgn 0: executable read-only, flash +// 0000.7000 - 0000.8000 - rgn 0: no access, flash (disabled sub-region 7) +// 2000.0000 - 2000.8000 - rgn 1: read-write, RAM +// 2000.8000 - 2000.A000 - rgn 2: read-only, RAM (disabled sub-rgn 4 of rgn 1) +// 2000.A000 - 2000.FFFF - rgn 1: read-write, RAM +// 4000.0000 - 4001.0000 - rgn 3: read-write, peripherals +// 4001.0000 - 4002.0000 - rgn 3: no access (disabled sub-region 1) +// 4002.0000 - 4006.0000 - rgn 3: read-write, peripherals +// 4006.0000 - 4008.0000 - rgn 3: no access (disabled sub-region 6, 7) +// 4400.0000 - 4403.0000 - rgn 4: no access (disabled sub-region 0, 1, 2) +// 4403.0000 - 4404.0000 - rgn 4: read-write, peripherals (sub-region 3) +// 4404.0000 - 4405.0000 - rgn 4: no access (disabled sub-region 4) +// 4405.0000 - 4406.0000 - rgn 4: read-write, peripherals (sub-region 5) +// 4406.0000 - 4408.0000 - rgn 4: no access (disabled sub-region 6, 7) +// E000.E000 - E000.F000 - rgn 5: read-write, NVIC +// 2003.8000 - 2003.FFFF - rgn 6: read-write, upper 32K RAM +// 0100.0000 - 0100.FFFF - rgn 7: executable read-only, ROM +// +// The example code will attempt to perform the following operations and check +// the faulting behavior: +// +// - write to flash (should fault) +// - read from the disabled area of flash (should fault) +// - read from the read-only area of RAM (should not fault) +// - write to the read-only section of RAM (should fault) +// +//***************************************************************************** +int +main(void) +{ + bool bFail = 0; + uint32_t ui32SysClock; + + // + // Run from the PLL at 120 MHz. + // + ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins. + // + PinoutSet(false, false); + + // + // Initialize the UART. + // + UARTStdioConfig(0, 115200, ui32SysClock); + + // + // Clear the terminal and print banner. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("MPU Fault example ...\n\n"); + + // + // Configure an executable, read-only MPU region for flash. It is a 32 KB + // region with the last 4 KB disabled to result in a 28 KB executable + // region. This region is needed so that the program can execute from + // flash. + // + ROM_MPURegionSet(0, FLASH_BASE, + MPU_RGN_SIZE_32K | MPU_RGN_PERM_EXEC | + MPU_RGN_PERM_PRV_RO_USR_RO | MPU_SUB_RGN_DISABLE_7 | + MPU_RGN_ENABLE); + + // + // Configure a read-write MPU region for RAM. It is a 64 KB region. There + // is a 8 KB sub-region in the middle that is disabled in order to open up + // a hole in which different permissions can be applied. + // + ROM_MPURegionSet(1, SRAM_BASE, + MPU_RGN_SIZE_64K | MPU_RGN_PERM_NOEXEC | + MPU_RGN_PERM_PRV_RW_USR_RW | MPU_SUB_RGN_DISABLE_4 | + MPU_RGN_ENABLE); + // + // Configure a read-only MPU region for the 8 KB of RAM that is disabled in + // the previous region. This region is used for demonstrating read-only + // permissions. + // + ROM_MPURegionSet(2, SRAM_BASE + 0x8000, + MPU_RGN_SIZE_8K | MPU_RGN_PERM_NOEXEC | + MPU_RGN_PERM_PRV_RO_USR_RO | MPU_RGN_ENABLE); + + // + // Configure a read-write MPU region for peripherals. The region is 512 KB + // total size, with several sub-regions disabled to prevent access to areas + // where there are no peripherals. This region is needed because the + // program needs access to some peripherals. + // + ROM_MPURegionSet(3, 0x40000000, + MPU_RGN_SIZE_512K | MPU_RGN_PERM_NOEXEC | + MPU_RGN_PERM_PRV_RW_USR_RW | MPU_SUB_RGN_DISABLE_1 | + MPU_SUB_RGN_DISABLE_6 | MPU_SUB_RGN_DISABLE_7 | + MPU_RGN_ENABLE); + + // + // Configure a read-write MPU region for peripherals. The region is 512 KB + // total size, with several sub-regions disabled to prevent access to areas + // where there are no peripherals. This region is needed because the + // program needs access to some peripherals. + // + ROM_MPURegionSet(4, 0x44000000, + MPU_RGN_SIZE_512K | MPU_RGN_PERM_NOEXEC | + MPU_RGN_PERM_PRV_RW_USR_RW | MPU_SUB_RGN_DISABLE_0 | + MPU_SUB_RGN_DISABLE_1 | MPU_SUB_RGN_DISABLE_2 | + MPU_SUB_RGN_DISABLE_4 | MPU_SUB_RGN_DISABLE_6 | + MPU_SUB_RGN_DISABLE_7 | + MPU_RGN_ENABLE); + + // + // Configure a read-write MPU region for access to the NVIC. The region is + // 4 KB in size. This region is needed because NVIC registers are needed + // in order to control the MPU. + // + ROM_MPURegionSet(5, NVIC_BASE, + MPU_RGN_SIZE_4K | MPU_RGN_PERM_NOEXEC | + MPU_RGN_PERM_PRV_RW_USR_RW | MPU_RGN_ENABLE); + + // + // Configure a read-write MPU region for the top 32KB of RAM. + // This region is used as stack for Sourcery CodeBench. + // + ROM_MPURegionSet(6, SRAM_BASE + (ROM_SysCtlSRAMSizeGet() - (32 * 1024)), + MPU_RGN_SIZE_32K | MPU_RGN_PERM_NOEXEC | + MPU_RGN_PERM_PRV_RW_USR_RW | MPU_RGN_ENABLE); + + // + // Configure an executable, read-only MPU region for ROM. It is a 64 KB + // region. This region is needed so that ROM library calls work. + // + ROM_MPURegionSet(7, 0x01000000, + MPU_RGN_SIZE_64K | MPU_RGN_PERM_EXEC | + MPU_RGN_PERM_PRV_RO_USR_RO | MPU_RGN_ENABLE); + + // + // Need to clear the NVIC fault status register to make sure there is no + // status hanging around from a previous program. + // + g_ui32FaultStatus = HWREG(NVIC_FAULT_STAT); + HWREG(NVIC_FAULT_STAT) = g_ui32FaultStatus; + + // + // Enable the MPU fault. + // + ROM_IntEnable(FAULT_MPU); + + // + // Enable the MPU. This will begin to enforce the memory protection + // regions. The MPU is configured so that when in the hard fault or NMI + // exceptions, a default map will be used. Neither of these should occur + // in this example program. + // + ROM_MPUEnable(MPU_CONFIG_HARDFLT_NMI); + + // + // Attempt to write to the flash. This should cause a protection fault due + // to the fact that this region is read-only. + // + UARTprintf("Check flash write\n"); + g_ui32MPUFaultCount = 0; + Write(0x100, 0x12345678); + + // + // Verify that the fault occurred, at the expected address. + // + if((g_ui32MPUFaultCount == 1) && (g_ui32FaultStatus == 0x82) && + (g_ui32MMAR == 0x100)) + { + UARTprintf("OK\n"); + } + else + { + bFail = 1; + UARTprintf("NOK\n"); + } + + // + // Attempt to read from the disabled section of flash, the upper 4 KB of + // the 32 KB region. + // + UARTprintf("Check flash read\n"); + g_ui32MPUFaultCount = 0; + g_ui32Value = Read(0x7820); + + // + // Verify that the fault occurred, at the expected address. + // + if((g_ui32MPUFaultCount == 1) && (g_ui32FaultStatus == 0x82) && + (g_ui32MMAR == 0x7820)) + { + UARTprintf("OK\n"); + } + else + { + bFail = 1; + UARTprintf("NOK\n"); + } + + // + // Attempt to read from the read-only area of RAM, the middle 8 KB of the + // 64 KB region. + // + UARTprintf("Check RAM read\n"); + g_ui32MPUFaultCount = 0; + g_ui32Value = Read(0x20008440); + + // + // Verify that the RAM read did not cause a fault. + // + if(g_ui32MPUFaultCount == 0) + { + UARTprintf("OK\n"); + } + else + { + bFail = 1; + UARTprintf("NOK\n"); + } + + // + // Attempt to write to the read-only area of RAM, the middle 8 KB of the + // 64 KB region. + // + UARTprintf("Check RAM write\n"); + g_ui32MPUFaultCount = 0; + Write(0x20008460, 0xabcdef00); + + // + // Verify that the RAM write caused a fault. + // + if((g_ui32MPUFaultCount == 1) && (g_ui32FaultStatus == 0x82) && + (g_ui32MMAR == 0x20008460)) + { + UARTprintf("OK\n"); + } + else + { + bFail = 1; + UARTprintf("NOK\n"); + } + + // + // Display the results of the example program. + // + if(bFail) + { + UARTprintf("Failure\n"); + } + else + { + UARTprintf("Success!\n"); + } + + // + // Disable the MPU, so there are no lingering side effects if another + // program is run. + // + ROM_MPUDisable(); + + // + // Loop forever. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ewd b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ewp b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ewp new file mode 100644 index 0000000..6d8ec15 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ewp @@ -0,0 +1,792 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\mpu_fault.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + diff --git a/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.icf b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.icf new file mode 100644 index 0000000..3f6e4eb --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// mpu_fault.icf - Linker configuration file for mpu_fault. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ld b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ld new file mode 100644 index 0000000..d3f759d --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * mpu_fault.ld - Linker configuration file for mpu_fault. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.sct b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.sct new file mode 100644 index 0000000..8280284 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; mpu_fault.sct - Linker configuration file for mpu_fault. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.uvopt b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.uvopt new file mode 100644 index 0000000..baf9e39 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.uvopt @@ -0,0 +1,317 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + mpu_fault + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\mpu_fault.c + mpu_fault.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 3 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 5 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 6 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.uvproj b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.uvproj new file mode 100644 index 0000000..1c5f4a5 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault.uvproj @@ -0,0 +1,434 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + mpu_fault + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + mpu_fault + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\mpu_fault.bin .\rvmdk\mpu_fault.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + mpu_fault.sct + + + --entry Reset_Handler + + + + + + + + Source + + + mpu_fault.c + 1 + .\mpu_fault.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/mpu_fault/mpu_fault_ccs.cmd b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault_ccs.cmd new file mode 100644 index 0000000..6c3b115 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/mpu_fault_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * mpu_fault_ccs.cmd - CCS linker configuration file for mpu_fault. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 1024; diff --git a/boards/ek-tm4c1294xl/mpu_fault/readme.txt b/boards/ek-tm4c1294xl/mpu_fault/readme.txt new file mode 100644 index 0000000..dc66a20 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/readme.txt @@ -0,0 +1,29 @@ +MPU + +This example application demonstrates the use of the MPU to protect a +region of memory from access, and to generate a memory management fault +when there is an access violation. + +UART0, connected to the ICDI virtual COM port and running at 115,200, +8-N-1, is used to display messages from this application. + + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/mpu_fault/rvmdk/mpu_fault.axf b/boards/ek-tm4c1294xl/mpu_fault/rvmdk/mpu_fault.axf new file mode 100644 index 0000000..cb07914 Binary files /dev/null and b/boards/ek-tm4c1294xl/mpu_fault/rvmdk/mpu_fault.axf differ diff --git a/boards/ek-tm4c1294xl/mpu_fault/rvmdk/mpu_fault.bin b/boards/ek-tm4c1294xl/mpu_fault/rvmdk/mpu_fault.bin new file mode 100644 index 0000000..276ad80 Binary files /dev/null and b/boards/ek-tm4c1294xl/mpu_fault/rvmdk/mpu_fault.bin differ diff --git a/boards/ek-tm4c1294xl/mpu_fault/startup_ccs.c b/boards/ek-tm4c1294xl/mpu_fault/startup_ccs.c new file mode 100644 index 0000000..0b6ae5b --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/startup_ccs.c @@ -0,0 +1,275 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void MPUFaultHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + MPUFaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/mpu_fault/startup_ewarm.c b/boards/ek-tm4c1294xl/mpu_fault/startup_ewarm.c new file mode 100644 index 0000000..d5375ac --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/startup_ewarm.c @@ -0,0 +1,306 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void MPUFaultHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + MPUFaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/mpu_fault/startup_gcc.c b/boards/ek-tm4c1294xl/mpu_fault/startup_gcc.c new file mode 100644 index 0000000..a4e93d6 --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/startup_gcc.c @@ -0,0 +1,322 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void MPUFaultHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + MPUFaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/mpu_fault/startup_rvmdk.S b/boards/ek-tm4c1294xl/mpu_fault/startup_rvmdk.S new file mode 100644 index 0000000..bcc1f4b --- /dev/null +++ b/boards/ek-tm4c1294xl/mpu_fault/startup_rvmdk.S @@ -0,0 +1,331 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000400 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declaration for the interrupt handler used by the application. +; +;****************************************************************************** + EXTERN MPUFaultHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD MPUFaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/qs_iot/Makefile b/boards/ek-tm4c1294xl/qs_iot/Makefile new file mode 100644 index 0000000..2a1b155 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/Makefile @@ -0,0 +1,112 @@ +#****************************************************************************** +# +# Makefile - Rules for building the Quickstart application to talk to a cloud server.. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../third_party/exosite +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=. +IPATH+=.. +IPATH+=../../../.. +IPATH+=../../../../third_party/lwip-1.4.1/apps +IPATH+=../../../../third_party/exosite +IPATH+=../../../../third_party/lwip-1.4.1/ports/tiva-tm4c129/include +IPATH+=../../../../third_party/lwip-1.4.1/src/include +IPATH+=../../../../third_party/lwip-1.4.1/src/include/ipv4 +IPATH+=../../../../third_party + +# +# The default rule, which causes the Quickstart application to talk to a cloud server. to be built. +# +all: ${COMPILER} +all: ${COMPILER}/qs_iot.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the Quickstart application to talk to a cloud server.. +# +${COMPILER}/qs_iot.axf: ${COMPILER}/buttons.o +${COMPILER}/qs_iot.axf: ${COMPILER}/cmdline.o +${COMPILER}/qs_iot.axf: ${COMPILER}/commands.o +${COMPILER}/qs_iot.axf: ${COMPILER}/eth_client_lwip.o +${COMPILER}/qs_iot.axf: ${COMPILER}/exosite.o +${COMPILER}/qs_iot.axf: ${COMPILER}/exosite_hal_lwip.o +${COMPILER}/qs_iot.axf: ${COMPILER}/exosite_meta.o +${COMPILER}/qs_iot.axf: ${COMPILER}/flash_pb.o +${COMPILER}/qs_iot.axf: ${COMPILER}/http.o +${COMPILER}/qs_iot.axf: ${COMPILER}/locator.o +${COMPILER}/qs_iot.axf: ${COMPILER}/lwiplib.o +${COMPILER}/qs_iot.axf: ${COMPILER}/pinout.o +${COMPILER}/qs_iot.axf: ${COMPILER}/qs_iot.o +${COMPILER}/qs_iot.axf: ${COMPILER}/requests.o +${COMPILER}/qs_iot.axf: ${COMPILER}/ringbuf.o +${COMPILER}/qs_iot.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/qs_iot.axf: ${COMPILER}/stats.o +${COMPILER}/qs_iot.axf: ${COMPILER}/tictactoe.o +${COMPILER}/qs_iot.axf: ${COMPILER}/uartstdio.o +${COMPILER}/qs_iot.axf: ${COMPILER}/ustdlib.o +${COMPILER}/qs_iot.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/qs_iot.axf: qs_iot.ld +SCATTERgcc_qs_iot=qs_iot.ld +ENTRY_qs_iot=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 -DLWIP_1_4_1 -DUSE_HTTP_1_0 -DUART_BUFFERED + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/qs_iot/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/qs_iot/ccs/.ccsimportspec new file mode 100644 index 0000000..b26ca50 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/ccs/.ccsimportspec @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/qs_iot/ccs/.ccsproject b/boards/ek-tm4c1294xl/qs_iot/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/qs_iot/ccs/.cproject b/boards/ek-tm4c1294xl/qs_iot/ccs/.cproject new file mode 100644 index 0000000..96645e7 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/ccs/.cproject @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/qs_iot/ccs/.project b/boards/ek-tm4c1294xl/qs_iot/ccs/.project new file mode 100644 index 0000000..c596ce0 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/ccs/.project @@ -0,0 +1,140 @@ + + + qs_iot + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + commands.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/qs_iot/commands.c + + + qs_iot.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/qs_iot/qs_iot.c + + + qs_iot_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/qs_iot/qs_iot_ccs.cmd + + + requests.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/qs_iot/requests.c + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/qs_iot/startup_ccs.c + + + stats.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/qs_iot/stats.c + + + tictactoe.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/qs_iot/tictactoe.c + + + drivers/buttons.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/buttons.c + + + drivers/eth_client_lwip.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/eth_client_lwip.c + + + drivers/exosite_hal_lwip.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.c + + + drivers/http.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/http.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/cmdline.c + 1 + SW_ROOT/utils/cmdline.c + + + utils/flash_pb.c + 1 + SW_ROOT/utils/flash_pb.c + + + utils/locator.c + 1 + SW_ROOT/utils/locator.c + + + utils/lwiplib.c + 1 + SW_ROOT/utils/lwiplib.c + + + utils/ringbuf.c + 1 + SW_ROOT/utils/ringbuf.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + third_party/exosite/exosite.c + 1 + SW_ROOT/third_party/exosite/exosite.c + + + third_party/exosite/exosite_meta.c + 1 + SW_ROOT/third_party/exosite/exosite_meta.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/qs_iot/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/qs_iot/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/qs_iot/ccs/Debug/qs_iot.bin b/boards/ek-tm4c1294xl/qs_iot/ccs/Debug/qs_iot.bin new file mode 100644 index 0000000..d9dce9f Binary files /dev/null and b/boards/ek-tm4c1294xl/qs_iot/ccs/Debug/qs_iot.bin differ diff --git a/boards/ek-tm4c1294xl/qs_iot/ccs/Debug/qs_iot.out b/boards/ek-tm4c1294xl/qs_iot/ccs/Debug/qs_iot.out new file mode 100644 index 0000000..0dedc8f Binary files /dev/null and b/boards/ek-tm4c1294xl/qs_iot/ccs/Debug/qs_iot.out differ diff --git a/boards/ek-tm4c1294xl/qs_iot/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/qs_iot/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/qs_iot/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/qs_iot/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/qs_iot/commands.c b/boards/ek-tm4c1294xl/qs_iot/commands.c new file mode 100644 index 0000000..f478475 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/commands.c @@ -0,0 +1,464 @@ +//***************************************************************************** +// +// commands.c - Command line functions for the qs-cloud demo +// +// Copyright (c) YEAR Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "driverlib/sysctl.h" +#include "utils/cmdline.h" +#include "utils/uartstdio.h" +#include "utils/ustdlib.h" +#include "drivers/exosite_hal_lwip.h" +#include "drivers/eth_client_lwip.h" +#include "exosite.h" +#include "stats.h" +#include "qs_iot.h" +#include "commands.h" +#include "tictactoe.h" + +//***************************************************************************** +// +// This is the table that holds the command names, implementing functions, and +// brief description. +// +//***************************************************************************** +tCmdLineEntry g_psCmdTable[] = +{ + { "help", Cmd_help, ": Display list of commands" }, + { "h", Cmd_help, ": alias for help" }, + { "?", Cmd_help, ": alias for help" }, + { "stats", Cmd_stats, ": Display collected stats for this" + " board" }, + { "activate", Cmd_activate, ": Get a CIK from exosite"}, + { "clear", Cmd_clear, ": Clear the display "}, + { "led", Cmd_led, ": Toggle LEDs. Type \"led help\" for " + "more info."}, + { "connect", Cmd_connect, ": Tries to establish a connection with " + "exosite."}, + { "getmac", Cmd_getmac, ": Prints the current MAC address."}, + { "setproxy", Cmd_setproxy, ": Setup or change proxy configuration."}, + { "setemail", Cmd_setemail, ": Change the email address used for " + "alerts."}, + { "alert", Cmd_alert, ": Send an alert to the saved email " + "address."}, + { "tictactoe", Cmd_tictactoe, ": Play tic-tac-toe!"}, + { 0, 0, 0 } +}; + +//***************************************************************************** +// +// Array of possible alert messages. +// +//***************************************************************************** +char *g_ppcAlertMessages[] = +{ + "Hello World!!", + "Testing Exosite scripting features.", + "Log into Exosite for a quick game of tic-tac-toe!" +}; + +#define NUM_ALERTS sizeof(g_ppcAlertMessages)/sizeof(char *) + +//***************************************************************************** +// +// This function implements the "help" command. It prints a simple list of the +// available commands with a brief description. +// +//***************************************************************************** +int +Cmd_help(int argc, char *argv[]) +{ + tCmdLineEntry *pEntry; + + // + // Print some header text. + // + UARTprintf("\nAvailable commands\n"); + UARTprintf("------------------\n"); + + // + // Point at the beginning of the command table. + // + pEntry = &g_psCmdTable[0]; + + // + // Enter a loop to read each entry from the command table. The end of the + // table has been reached when the command name is NULL. + // + while(pEntry->pcCmd) + { + // + // Print the command name and the brief description. + // + UARTprintf("%15s%s\n", pEntry->pcCmd, pEntry->pcHelp); + + // + // Advance to the next entry in the table. + // + pEntry++; + } + + // + // Return success. + // + return(0); +} + +//***************************************************************************** +// +// This function prints a list of local statistics for this board. +// +//***************************************************************************** +int +Cmd_stats(int argc, char *argv[]) +{ + // + // Set the global flag to enable printing of statistics to the UART + // console. The actual printing should be taken care of in a different + // context. + // + g_bPrintingData = true; + + return 0; +} + + +//***************************************************************************** +// +// Connects to Exosite and attempts to obtain a CIK. If no connection is made +// Cmd_activate will return and report the failure. +// +//***************************************************************************** +int +Cmd_activate(int argc, char *argv[]) +{ + // + // Attempt to acquire a new CIK from Exosite. If successful, update the + // global state variables to notify the main application. + // + if(ProvisionCIK()) + { + // + // Set the state to "online" with zero missed sync operations. + // + g_bOnline = true; + g_ui32LinkRetries = 0; + } + + return 0; +} + +//***************************************************************************** +// +// The "led" command can be used to manually set the state of the two on-board +// LEDs. The new LED state will also be transmitted back to the exosite server, +// so the cloud representation of the LEDs should stay in sync with the board's +// actual behavior. +// +//***************************************************************************** +int +Cmd_led(int argc, char *argv[]) +{ + uint32_t *pui32LEDValue; + + // + // If we have too few arguments, or the second argument starts with 'h' + // (like the first character of help), print out information about the + // usage of this command. + // + if(argc < 3 || ((argc == 2) && (argv[1][0] == 'h'))) + { + UARTprintf("LED command usage:\n\n"); + UARTprintf("Specify an LED name (d1 or d2) and a state (on or off),\n"); + UARTprintf("separated by a space.\n\n"); + UARTprintf("For example:\n"); + UARTprintf(" led d1 on\n"); + UARTprintf(" led d2 off\n"); + return 0; + } + + else if(argv[1][1] == '1') + { + // + // If the second letter of the second argument is a 3, assume the user + // is trying to interact with led d3. + // + pui32LEDValue = &g_ui32LEDD1; + g_sLEDD1.eReadWriteType = READ_WRITE; + } + else if(argv[1][1] == '2') + { + // + // If the second letter of the second argument is a 4, assume the user + // is trying to interact with led d4. + // + pui32LEDValue = &g_ui32LEDD2; + g_sLEDD2.eReadWriteType = READ_WRITE; + } + else + { + UARTprintf("Invalid LED name.\n"); + return 0; + } + + // + // If the second letter of the third argument is the "n" of "on", turn the + // LED on. Otherwise, turn it off. + // + *pui32LEDValue = (argv[2][1] == 'n') ? 1 : 0; + + return 0; +} + +//***************************************************************************** +// +// The "connect" command alerts the main application that it should attempt to +// re-establish a link with the exosite server. +// +//***************************************************************************** +int +Cmd_connect(int argc, char *argv[]) +{ + // + // Set the flags to restart the connection to exosite. The main application + // loop should handle the actual connection. + // + if(g_bOnline) + { + UARTprintf("Already connected. "); + UARTprintf("Type 'stats' to see data for this board.\n"); + } + else + { + UARTprintf("Connecting to Exosite...\r"); + + // + // If a CIK was found, try to sync with Exosite. This should tell us if + // the CIK is valid or not. + // + if(SyncWithExosite(g_psDeviceStatistics)) + { + // + // If the sync worked, the CIK is valid. Alert the caller. + // + UARTprintf("Connected! Type 'stats' to see data for this board."); + g_bOnline = true; + g_ui32LinkRetries = 0; + return 0; + } + else + { + UARTprintf("Sync failed. \n"); + } + } + + return 0; +} + +//***************************************************************************** +// +// The "clear" command sends an ascii control code to the UART that should +// clear the screen for most PC-side terminals. +// +//***************************************************************************** +int +Cmd_clear(int argc, char *argv[]) +{ + UARTprintf("\033[2J\033[H"); + return 0; +} + +//***************************************************************************** +// +// The "getmac" command prints the user's current MAC address to the UART. +// +//***************************************************************************** +int +Cmd_getmac(int argc, char *argv[]) +{ + PrintMac(); + return 0; +} + +//***************************************************************************** +// +// The "setproxy" command allows the user to change their proxy behavior +// +//***************************************************************************** +int +Cmd_setproxy(int argc, char *argv[]) +{ + char pcProxyPort[10]; + + // + // Check the number of arguments. + // + if((argc == 2) && (ustrcmp("off",argv[1]) == 0 )) + { + g_bUseProxy = false; + g_pcProxyAddress[0] = 0; + g_ui16ProxyPort = 0; + + UARTprintf("Attempting to re-establish link with Exosite.\n\n"); + g_bOnline = LocateValidCIK(); + } + else if(argc == 3) + { + // + // Otherwise, copy the user-defined location into the global variable. + // + ustrncpy(g_pcProxyAddress, argv[1], 49); + ustrncpy(pcProxyPort, argv[2], 9); + + // + // Make sure that the global string remains terminated with a zero. + // + g_pcProxyAddress[49] = 0; + pcProxyPort[9] = 0; + g_ui16ProxyPort = ustrtoul(pcProxyPort, NULL, 0); + g_bUseProxy = true; + + UARTprintf("New Proxy Address: %s\n", g_pcProxyAddress); + UARTprintf("New Proxy Port: %d\n\n", g_ui16ProxyPort); + + UARTprintf("Attempting to re-establish link with Exosite.\n\n"); + g_bOnline = LocateValidCIK(); + + } + else + { + UARTprintf("\nProxy configuration help:\n"); + UARTprintf(" The setproxy command changes the proxy behavior of" + "this board.\n"); + UARTprintf(" To disable the proxy, type:\n\n"); + UARTprintf(" setproxy off\n\n"); + UARTprintf(" To enable the proxy with a specific proxy name and " + "port, type\n"); + UARTprintf(" setproxy . For " + "example:\n\n"); + UARTprintf(" setproxy your.proxy.address 80\n\n"); + } + + return 0; +} + +//***************************************************************************** +// +// The tictactoe command allows users to play a game of tic-tac-toe. +// +//***************************************************************************** +int +Cmd_tictactoe(int argc, char *argv[]) +{ + g_bGameActive = 1; + + GameInit(); + + return 0; +} + +//***************************************************************************** +// +// The setemail command allows the user to set a contact email address to be +// used for alert messages. +// +//***************************************************************************** +int +Cmd_setemail(int argc, char *argv[]) +{ + // + // Check the number of arguments. + // + if(argc < 2) + { + // + // If there was no second term, prompt the user to enter one next time. + // + UARTprintf("Not enough arguments. Please enter an email address.\n"); + UARTprintf("For example \"setemail yourname@example.com\""); + } + else + { + // + // Otherwise, copy the user-defined location into the global variable. + // + ustrncpy(g_pcContactEmail, argv[1], 100); + + // + // Make sure that the global string remains terminated with a zero. + // + g_pcContactEmail[99] = 0; + + // + // Mark the location as READ_WRITE, so it will get uploaded to the + // server on the next sync. + // + g_sContactEmail.eReadWriteType = READ_WRITE; + + UARTprintf("Email set to: %s\n\n", g_pcContactEmail); + } + + return 0; +} + +//***************************************************************************** +// +// The alert command allows the user to send an alert message to the saved +// email address. +// +//***************************************************************************** +int +Cmd_alert(int argc, char *argv[]) +{ + uint32_t ui32Index; + + // + // Check the number of arguments. + // + if(argc < 2) + { + // + // If there was no second term, prompt the user to enter one next time. + // + UARTprintf("Please specify the alert you want to send:\n"); + for(ui32Index = 0; ui32Index < NUM_ALERTS; ui32Index++) + { + // + // Print a list of the available alert messages. + // + UARTprintf("alert %d: %s\n", ui32Index, + g_ppcAlertMessages[ui32Index]); + } + } + else + { + ui32Index = ustrtoul(argv[1], NULL, 0); + ustrncpy(g_pcAlert, g_ppcAlertMessages[ui32Index], 140); + g_sAlert.eReadWriteType = READ_WRITE; + + UARTprintf("Alert message set. Sending to the server " + "on the next sync operation."); + } + + return 0; +} diff --git a/boards/ek-tm4c1294xl/qs_iot/commands.h b/boards/ek-tm4c1294xl/qs_iot/commands.h new file mode 100644 index 0000000..0a59077 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/commands.h @@ -0,0 +1,68 @@ +//***************************************************************************** +// +// commands.h - Header file for commandline functions in qs-cloud +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __COMMANDS_H__ +#define __COMMANDS_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Forward declarations for command-line operations. +// +//***************************************************************************** +extern int Cmd_help(int argc, char *argv[]); +extern int Cmd_stats(int argc, char *argv[]); +extern int Cmd_activate(int argc, char *argv[]); +extern int Cmd_read(int argc, char *argv[]); +extern int Cmd_clear(int argc, char *argv[]); +extern int Cmd_sync(int argc, char *argv[]); +extern int Cmd_led(int argc, char *argv[]); +extern int Cmd_connect(int argc, char *argv[]); +extern int Cmd_getmac(int argc, char *argv[]); +extern int Cmd_setlocation(int argc, char *argv[]); +extern int Cmd_setproxy(int argc, char *argv[]); +extern int Cmd_setemail(int argc, char *argv[]); +extern int Cmd_alert(int argc, char *argv[]); +extern int Cmd_tictactoe(int argc, char *argv[]); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __COMMANDS_H__ diff --git a/boards/ek-tm4c1294xl/qs_iot/ewarm/Exe/qs_iot.bin b/boards/ek-tm4c1294xl/qs_iot/ewarm/Exe/qs_iot.bin new file mode 100644 index 0000000..517f68b Binary files /dev/null and b/boards/ek-tm4c1294xl/qs_iot/ewarm/Exe/qs_iot.bin differ diff --git a/boards/ek-tm4c1294xl/qs_iot/ewarm/Exe/qs_iot.out b/boards/ek-tm4c1294xl/qs_iot/ewarm/Exe/qs_iot.out new file mode 100644 index 0000000..39b43cb Binary files /dev/null and b/boards/ek-tm4c1294xl/qs_iot/ewarm/Exe/qs_iot.out differ diff --git a/boards/ek-tm4c1294xl/qs_iot/gcc/qs_iot.axf b/boards/ek-tm4c1294xl/qs_iot/gcc/qs_iot.axf new file mode 100644 index 0000000..d9de7ef Binary files /dev/null and b/boards/ek-tm4c1294xl/qs_iot/gcc/qs_iot.axf differ diff --git a/boards/ek-tm4c1294xl/qs_iot/gcc/qs_iot.bin b/boards/ek-tm4c1294xl/qs_iot/gcc/qs_iot.bin new file mode 100644 index 0000000..da389fd Binary files /dev/null and b/boards/ek-tm4c1294xl/qs_iot/gcc/qs_iot.bin differ diff --git a/boards/ek-tm4c1294xl/qs_iot/lwipopts.h b/boards/ek-tm4c1294xl/qs_iot/lwipopts.h new file mode 100644 index 0000000..3e329f8 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/lwipopts.h @@ -0,0 +1,446 @@ +//***************************************************************************** +// +// lwipopts.h - Configuration file for lwIP +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** +// +// NOTE: This file has been derived from the lwIP/src/include/lwip/opt.h +// header file. +// +// For additional details, refer to the original "opt.h" file, and lwIP +// documentation. +// +//***************************************************************************** +#ifndef __LWIPOPTS_H__ +#define __LWIPOPTS_H__ + +#include + +//***************************************************************************** +// +// ---------- Stellaris / lwIP Port Options ---------- +// +//***************************************************************************** +#define HOST_TMR_INTERVAL 100 // default is 0 +//#define DHCP_EXPIRE_TIMER_MSECS (60 * 1000) +//#define LWIP_HTTPD_SSI 1 +//#define LWIP_HTTPD_CGI 1 +#define LWIP_HTTPD_DYNAMIC_HEADERS 1 +//#define EMAC_PHY_CONFIG EMAC_PHY_TYPE_EXTERNAL_RMII +//#define PHY_PHYS_ADDR 1 +#define EMAC_PHY_CONFIG (EMAC_PHY_TYPE_INTERNAL | EMAC_PHY_INT_MDIX_EN | \ + EMAC_PHY_AN_100B_T_FULL_DUPLEX) +#define PHY_PHYS_ADDR 0 +#define NUM_TX_DESCRIPTORS 8 +#define NUM_RX_DESCRIPTORS 8 + +//***************************************************************************** +// +// ---------- Platform specific locking ---------- +// +//***************************************************************************** +#define SYS_LIGHTWEIGHT_PROT 1 // default is 0 +#define NO_SYS 1 // default is 0 +//#define MEMCPY(dst,src,len) memcpy(dst,src,len) +//#define SMEMCPY(dst,src,len) memcpy(dst,src,len) + +//***************************************************************************** +// +// ---------- Memory options ---------- +// +//***************************************************************************** +//#define MEM_LIBC_MALLOC 0 +#define MEM_ALIGNMENT 4 +#define MEM_SIZE (32 * 1024) +//#define MEMP_OVERFLOW_CHECK 0 +//#define MEMP_SANITY_CHECK 0 +//#define MEM_USE_POOLS 0 +//#define MEMP_USE_CUSTOM_POOLS 0 + +//***************************************************************************** +// +// ---------- Internal Memory Pool Sizes ---------- +// +//***************************************************************************** +#define MEMP_NUM_PBUF 16 // Default 16, was 16 +//#define MEMP_NUM_RAW_PCB 4 +//#define MEMP_NUM_UDP_PCB 4 +#define MEMP_NUM_TCP_PCB 16 +//#define MEMP_NUM_TCP_PCB_LISTEN 8 +//#define MEMP_NUM_TCP_SEG 16 +//#define MEMP_NUM_REASSDATA 5 +//#define MEMP_NUM_ARP_QUEUE 30 +//#define MEMP_NUM_IGMP_GROUP 8 +#define MEMP_NUM_SYS_TIMEOUT 6 //5 +//#define MEMP_NUM_NETBUF 2 +//#define MEMP_NUM_NETCONN 4 +//#define MEMP_NUM_TCPIP_MSG_API 8 +//#define MEMP_NUM_TCPIP_MSG_INPKT 8 +#define PBUF_POOL_SIZE 16 // Default 16 + +//***************************************************************************** +// +// ---------- ARP options ---------- +// +//***************************************************************************** +//#define LWIP_ARP 1 +//#define ARP_TABLE_SIZE 10 +//#define ARP_QUEUEING 1 +//#define ETHARP_TRUST_IP_MAC 1 + +//***************************************************************************** +// +// ---------- IP options ---------- +// +//***************************************************************************** +//#define IP_FORWARD 0 +//#define IP_OPTIONS_ALLOWED 1 +#define IP_REASSEMBLY 0 // default is 1 +#define IP_FRAG 0 // default is 1 +//#define IP_REASS_MAXAGE 3 +//#define IP_REASS_MAX_PBUFS 10 +//#define IP_FRAG_USES_STATIC_BUF 1 +//#define IP_FRAG_MAX_MTU 1500 +//#define IP_DEFAULT_TTL 255 + +//***************************************************************************** +// +// ---------- ICMP options ---------- +// +//***************************************************************************** +//#define LWIP_ICMP 1 +//#define ICMP_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- RAW options ---------- +// +//***************************************************************************** +//#define LWIP_RAW 1 +//#define RAW_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- DHCP options ---------- +// +//***************************************************************************** +#define LWIP_DHCP 1 // default is 0 +//#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP)) + +//***************************************************************************** +// +// ---------- UPNP options ---------- +// +//***************************************************************************** +//#define LWIP_UPNP 0 + +//***************************************************************************** +// +// ---------- PTPD options ---------- +// +//***************************************************************************** +//#define LWIP_PTPD 0 + +//***************************************************************************** +// +// ---------- AUTOIP options ---------- +// +//***************************************************************************** +#define LWIP_AUTOIP 1 // default is 0 +#define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP) && (LWIP_AUTOIP)) + // default is 0 +#define LWIP_DHCP_AUTOIP_COOP_TRIES 5 // default is 9 + +//***************************************************************************** +// +// ---------- SNMP options ---------- +// +//***************************************************************************** +//#define LWIP_SNMP 0 +//#define SNMP_CONCURRENT_REQUESTS 1 +//#define SNMP_TRAP_DESTINATIONS 1 +//#define SNMP_PRIVATE_MIB 0 +//#define SNMP_SAFE_REQUESTS 1 + +//***************************************************************************** +// +// ---------- IGMP options ---------- +// +//***************************************************************************** +//#define LWIP_IGMP 0 + +//***************************************************************************** +// +// ---------- DNS options ----------- +// +//***************************************************************************** +#define LWIP_DNS 1 +#define DNS_TABLE_SIZE 4 +#define DNS_MAX_NAME_LENGTH 256 +#define DNS_MAX_SERVERS 2 +#define DNS_DOES_NAME_CHECK 1 +#define DNS_USES_STATIC_BUF 1 +#define DNS_MSG_SIZE 512 + +//***************************************************************************** +// +// ---------- UDP options ---------- +// +//***************************************************************************** +//#define LWIP_UDP 1 +//#define LWIP_UDPLITE 0 +//#define UDP_TTL (IP_DEFAULT_TTL) + +//***************************************************************************** +// +// ---------- TCP options ---------- +// +//***************************************************************************** +#define LWIP_TCP 1 +//#define TCP_TTL (IP_DEFAULT_TTL) +#define TCP_WND 4096 // default is 2048 +//#define TCP_MAXRTX 12 +//#define TCP_SYNMAXRTX 6 +//#define TCP_QUEUE_OOSEQ 1 +#define TCP_MSS 1500 // default is 128 +//#define TCP_CALCULATE_EFF_SEND_MSS 1 +#define TCP_SND_BUF (4 * TCP_MSS) + // default is 256, was 6 * +//#define TCP_SND_QUEUELEN (4 * (TCP_SND_BUF/TCP_MSS)) +//#define TCP_SNDLOWAT (TCP_SND_BUF/2) +//#define TCP_LISTEN_BACKLOG 0 +//#define TCP_DEFAULT_LISTEN_BACKLOG 0xff + +//***************************************************************************** +// +// ---------- API options ---------- +// +//***************************************************************************** +//#define LWIP_EVENT_API 0 +//#define LWIP_CALLBACK_API 1 + +//***************************************************************************** +// +// ---------- Pbuf options ---------- +// +//***************************************************************************** +#define PBUF_LINK_HLEN 16 // default is 14 +#define PBUF_POOL_BUFSIZE 512 + // default is LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN) +#define ETH_PAD_SIZE 0 // default is 0 + +//***************************************************************************** +// +// ---------- Network Interfaces options ---------- +// +//***************************************************************************** +//#define LWIP_NETIF_HOSTNAME 0 +//#define LWIP_NETIF_API 0 +//#define LWIP_NETIF_STATUS_CALLBACK 0 +//#define LWIP_NETIF_LINK_CALLBACK 0 +//#define LWIP_NETIF_HWADDRHINT 0 + +//***************************************************************************** +// +// ---------- LOOPIF options ---------- +// +//***************************************************************************** +//#define LWIP_HAVE_LOOPIF 0 +//#define LWIP_LOOPIF_MULTITHREADING 1 + +//***************************************************************************** +// +// ---------- Thread options ---------- +// +//***************************************************************************** +//#define TCPIP_THREAD_NAME "tcpip_thread" +//#define TCPIP_THREAD_STACKSIZE 0 +//#define TCPIP_THREAD_PRIO 1 +//#define TCPIP_MBOX_SIZE 0 +//#define SLIPIF_THREAD_NAME "slipif_loop" +//#define SLIPIF_THREAD_STACKSIZE 0 +//#define SLIPIF_THREAD_PRIO 1 +//#define PPP_THREAD_NAME "pppMain" +//#define PPP_THREAD_STACKSIZE 0 +//#define PPP_THREAD_PRIO 1 +//#define DEFAULT_THREAD_NAME "lwIP" +//#define DEFAULT_THREAD_STACKSIZE 0 +//#define DEFAULT_THREAD_PRIO 1 +//#define DEFAULT_RAW_RECVMBOX_SIZE 0 +//#define DEFAULT_UDP_RECVMBOX_SIZE 0 +//#define DEFAULT_TCP_RECVMBOX_SIZE 0 +//#define DEFAULT_ACCEPTMBOX_SIZE 0 + +//***************************************************************************** +// +// ---------- Sequential layer options ---------- +// +//***************************************************************************** +//#define LWIP_TCPIP_CORE_LOCKING 0 +#define LWIP_NETCONN 0 // default is 1 + +//***************************************************************************** +// +// ---------- Socket Options ---------- +// +//***************************************************************************** +#define LWIP_SOCKET 0 // default is 1 +//#define LWIP_COMPAT_SOCKETS 1 +//#define LWIP_POSIX_SOCKETS_IO_NAMES 1 +//#define LWIP_TCP_KEEPALIVE 0 +//#define LWIP_SO_RCVTIMEO 0 +//#define LWIP_SO_RCVBUF 0 +//#define SO_REUSE 0 + +//***************************************************************************** +// +// ---------- Statistics options ---------- +// +//***************************************************************************** +//#define LWIP_STATS 1 +//#define LWIP_STATS_DISPLAY 0 +//#define LINK_STATS 1 +//#define ETHARP_STATS (LWIP_ARP) +//#define IP_STATS 1 +//#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG) +//#define ICMP_STATS 1 +//#define IGMP_STATS (LWIP_IGMP) +//#define UDP_STATS (LWIP_UDP) +//#define TCP_STATS (LWIP_TCP) +//#define MEM_STATS 1 +//#define MEMP_STATS 1 +//#define SYS_STATS 1 + +//***************************************************************************** +// +// ---------- PPP options ---------- +// +//***************************************************************************** +//#define PPP_SUPPORT 0 +//#define PPPOE_SUPPORT 0 +//#define PPPOS_SUPPORT PPP_SUPPORT + +#if PPP_SUPPORT +//#define NUM_PPP 1 +//#define PAP_SUPPORT 0 +//#define CHAP_SUPPORT 0 +//#define MSCHAP_SUPPORT 0 +//#define CBCP_SUPPORT 0 +//#define CCP_SUPPORT 0 +//#define VJ_SUPPORT 0 +//#define MD5_SUPPORT 0 +//#define FSM_DEFTIMEOUT 6 +//#define FSM_DEFMAXTERMREQS 2 +//#define FSM_DEFMAXCONFREQS 10 +//#define FSM_DEFMAXNAKLOOPS 5 +//#define UPAP_DEFTIMEOUT 6 +//#define UPAP_DEFREQTIME 30 +//#define CHAP_DEFTIMEOUT 6 +//#define CHAP_DEFTRANSMITS 10 +//#define LCP_ECHOINTERVAL 0 +//#define LCP_MAXECHOFAILS 3 +//#define PPP_MAXIDLEFLAG 100 + +//#define PPP_MAXMTU 1500 +//#define PPP_DEFMRU 296 +#endif + +//***************************************************************************** +// +// ---------- checksum options ---------- +// +//***************************************************************************** +#define CHECKSUM_GEN_IP 0 +#define CHECKSUM_GEN_ICMP 0 +#define CHECKSUM_GEN_UDP 0 +#define CHECKSUM_GEN_TCP 0 +#define CHECKSUM_CHECK_IP 0 +#define CHECKSUM_CHECK_UDP 0 +#define CHECKSUM_CHECK_TCP 0 + +//***************************************************************************** +// +// ---------- Debugging options ---------- +// +//***************************************************************************** +#ifdef DEBUG +#define U8_F "c" +#define S8_F "c" +#define X8_F "02x" +#define U16_F "u" +#define S16_F "d" +#define X16_F "x" +#define U32_F "u" +#define S32_F "d" +#define X32_F "x" +extern void UARTprintf(const char *pcString, ...); +#define LWIP_PLATFORM_DIAG(msg) UARTprintf msg +#define LWIP_PLATFORM_ASSERT(msg) \ + UARTprintf("ASSERT FAIL at line %d of %s:\ %s\n", __LINE__, __FILE__, msg) +#define LWIP_DEBUG 1 +#endif + +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF +#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_WARNING +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_SERIOUS +//#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_SEVERE + +//#define LWIP_DBG_TYPES_ON LWIP_DBG_ON +//#define LWIP_DBG_TYPES_ON (LWIP_DBG_ON|LWIP_DBG_TRACE| \ + LWIP_DBG_STATE|LWIP_DBG_FRESH) + +//#define ETHARP_DEBUG LWIP_DBG_ON // default is OFF +#define NETIF_DEBUG LWIP_DBG_OFF +//#define PBUF_DEBUG LWIP_DBG_OFF +//#define API_LIB_DEBUG LWIP_DBG_OFF +//#define API_MSG_DEBUG LWIP_DBG_OFF +//#define SOCKETS_DEBUG LWIP_DBG_OFF +#define HTTPD_DEBUG LWIP_DBG_OFF +//#define ICMP_DEBUG LWIP_DBG_OFF +//#define IGMP_DEBUG LWIP_DBG_OFF +//#define INET_DEBUG LWIP_DBG_OFF +//#define IP_DEBUG LWIP_DBG_ON +//#define IP_REASS_DEBUG LWIP_DBG_OFF +#define RAW_DEBUG LWIP_DBG_OFF +//#define MEM_DEBUG LWIP_DBG_OFF +//#define MEMP_DEBUG LWIP_DBG_OFF +//#define SYS_DEBUG LWIP_DBG_OFF +//#define TCP_DEBUG LWIP_DBG_ON +#define TCP_INPUT_DEBUG LWIP_DBG_OFF +//#define TCP_FR_DEBUG LWIP_DBG_OFF +//#define TCP_RTO_DEBUG LWIP_DBG_OFF +//#define TCP_CWND_DEBUG LWIP_DBG_OFF +//#define TCP_WND_DEBUG LWIP_DBG_OFF +#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF +//#define TCP_RST_DEBUG LWIP_DBG_OFF +//#define TCP_QLEN_DEBUG LWIP_DBG_OFF +//#define UDP_DEBUG LWIP_DBG_ON // default is OFF +//#define TCPIP_DEBUG LWIP_DBG_ON +//#define PPP_DEBUG LWIP_DBG_OFF +//#define SLIP_DEBUG LWIP_DBG_OFF +//#define DHCP_DEBUG LWIP_DBG_ON // default is OFF +//#define AUTOIP_DEBUG LWIP_DBG_OFF +//#define SNMP_MSG_DEBUG LWIP_DBG_OFF +//#define SNMP_MIB_DEBUG LWIP_DBG_OFF +//#define DNS_DEBUG LWIP_DBG_OFF + +#endif /* __LWIPOPTS_H__ */ diff --git a/boards/ek-tm4c1294xl/qs_iot/qs_iot.c b/boards/ek-tm4c1294xl/qs_iot/qs_iot.c new file mode 100644 index 0000000..0f622a8 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/qs_iot.c @@ -0,0 +1,1151 @@ +//***************************************************************************** +// +// qs_iot.c - Quickstart application that connects to a cloud server. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "inc/hw_ints.h" +#include "inc/hw_adc.h" +#include "driverlib/adc.h" +#include "driverlib/gpio.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "driverlib/uart.h" +#include "driverlib/interrupt.h" +#include "driverlib/timer.h" +#include "utils/cmdline.h" +#include "utils/uartstdio.h" +#include "utils/ustdlib.h" +#include "utils/lwiplib.h" +#include "drivers/pinout.h" +#include "drivers/buttons.h" +#include "drivers/exosite_hal_lwip.h" +#include "drivers/eth_client_lwip.h" +#include "exosite.h" +#include "stats.h" +#include "qs_iot.h" +#include "requests.h" +#include "commands.h" +#include "tictactoe.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      Internet of Things Quickstart (qs_iot)

      +//! +//! +//! This application records various information about user activity on the +//! board, and periodically reports it to a cloud server managed by Exosite. In +//! order to use all of the features of this application, you will need to have +//! an account with Exosite, and make sure that the device you are using is +//! registered to your Exosite profile with its original MAC address from the +//! factory. +//! +//! If you do not yet have an Exosite account, you can create one at +//! http://ti.exosite.com. The web interface there will help guide you through +//! the account creation process. There is also information in the Quickstart +//! document that is shipped along with the EK-TM4C1294XL evaluation kit. +//! +//! This application uses a command-line based interface through a virtual COM +//! port on UART 0, with the settings 115,200-8-N-1. This application also +//! requires a wired Ethernet connection with internet access to perform +//! cloud-connected activities. +//! +//! Once the application is running you should be able to see program output +//! over the virtual COM port, and interact with the command-line. The command +//! line will allow you to see the information being sent to and from Exosite's +//! servers, change the state of LEDs, and play a game of tic-tac-toe. If you +//! have internet connectivity issues, need to find your MAC address, or need +//! to re-activate your EK-TM4C1294XL board with Exosite, the command line +//! interface also has options to support these operations. Type +//! 'help' at the command prompt to see a list of available commands. +//! +//! If your local internet connection requires the use of a proxy server, you +//! will need to enter a command over the virtual COM port terminal before the +//! device will be able to connect to Exosite. When prompted by the +//! application, type 'setproxy help' for information on how to configure the +//! proxy. Alternatively, you may uncomment the define statements below for +//! "CUSTOM_PROXY" settings, fill in the correct information for your local +//! http proxy server, and recompile this example. This will permanently set +//! your proxy as the default connection point. +//! +// +//***************************************************************************** + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// Global macro definitions. +// +//***************************************************************************** +#define MAX_SYNC_RETRIES 10 + +// #define CUSTOM_PROXY +// #define PROXY_ADDRESS "your.proxy.address" +// #define PROXY_PORT 80 + +//***************************************************************************** +// +// Global variables that will be linked to Exosite. +// +//***************************************************************************** +uint32_t g_ui32SW1Presses = 0; +uint32_t g_ui32SW2Presses = 0; +uint32_t g_ui32InternalTempF = 0; +uint32_t g_ui32InternalTempC = 0; +uint32_t g_ui32TimerIntCount = 0; +uint32_t g_ui32SecondsOnTime = 0; +uint32_t g_ui32LEDD1 = 0; +uint32_t g_ui32LEDD2 = 0; +char g_pcLocation[50] = ""; +char g_pcContactEmail[100] = ""; +char g_pcAlert[140] = ""; + +//***************************************************************************** +// +// Global structures used to interface with Exosite. +// +//***************************************************************************** +tStat g_sSW1Presses = + {"SW1-presses", &g_ui32SW1Presses, "usrsw1", INT, WRITE_ONLY}; + +tStat g_sSW2Presses = + {"SW2-presses", &g_ui32SW2Presses, "usrsw2", INT, WRITE_ONLY}; + +tStat g_sInternalTempF = + {"Temp(F)", &g_ui32InternalTempF, 0, INT, WRITE_ONLY}; + +tStat g_sInternalTempC = + {"Temp(C)", &g_ui32InternalTempC, "jtemp", INT, WRITE_ONLY}; + +tStat g_sSecondsOnTime = + {"Time since reset", &g_ui32SecondsOnTime, "ontime", INT, WRITE_ONLY}; + +tStat g_sLEDD1 = + {"LED D1", &g_ui32LEDD1, "ledd1", INT, READ_WRITE}; + +tStat g_sLEDD2 = + {"LED D2", &g_ui32LEDD2, "ledd2", INT, READ_WRITE}; + +tStat g_sLocation = + {"Location", g_pcLocation, "location", STRING, READ_ONLY}; + +tStat g_sBoardState = + {NULL, &g_ui32BoardState, "gamestate", HEX, WRITE_ONLY}; + +tStat g_sContactEmail = + {"Contact Email", g_pcContactEmail, "emailaddr", STRING, READ_WRITE}; + +tStat g_sAlert = + {"Alert Message", g_pcAlert, "alert", STRING, NONE}; + +//***************************************************************************** +// +// Global array of pointers to all tStat structures to be synced with Exosite. +// +//***************************************************************************** +tStat *g_psDeviceStatistics[NUM_STATS]= +{ + &g_sSW1Presses, + &g_sSW2Presses, + &g_sInternalTempF, + &g_sInternalTempC, + &g_sSecondsOnTime, + &g_sLEDD1, + &g_sLEDD2, + &g_sLocation, + &g_sBoardState, + &g_sContactEmail, + &g_sAlert, + NULL +}; + +//***************************************************************************** +// +// Global variable to keep track of the system clock. +// +//***************************************************************************** +uint32_t g_ui32SysClock = 0; + +//***************************************************************************** +// +// Flags to keep track of application state. +// +//***************************************************************************** +bool g_bPrintingData = false; +bool g_bGameActive = false; +volatile bool g_bOnline = false; +uint32_t g_ui32LinkRetries = 0; + +//***************************************************************************** +// +// Input buffer for the command line interpreter. +// +//***************************************************************************** +char g_cInput[APP_INPUT_BUF_SIZE]; + +//***************************************************************************** +// +// Given a list of statistics, prints each item to the UART. +// +//***************************************************************************** +void +PrintStats(tStat **psStats) +{ + uint32_t ui32Index; + char pcStatValue[256]; + char *pcStatName; + + // + // Loop over all statistics in the list. + // + for(ui32Index = 0; psStats[ui32Index] != NULL; ui32Index++) + { + if(psStats[ui32Index]->pcName) + { + // + // For each statistic, print the name and current value to the UART. + // + pcStatName = psStats[ui32Index]->pcName; + StatPrintValue(psStats[ui32Index], pcStatValue); + + UARTprintf("%25s= %s\n", pcStatName, pcStatValue); + } + } +} + +//***************************************************************************** +// +// Prints the current MAC address to the UART. +// +//***************************************************************************** +void +PrintMac(void) +{ + uint8_t ui8Idx; + uint8_t pui8MACAddr[6]; + + // + // Get the MAC address from the Ethernet Client layer. + // + EthClientMACAddrGet(pui8MACAddr); + + UARTprintf("Current MAC: "); + + // + // Extract each pair of characters and print them to the UART. + // + for(ui8Idx = 0; ui8Idx < 6; ui8Idx++) + { + UARTprintf("%02x", pui8MACAddr[ui8Idx]); + } + + UARTprintf("\n"); +} + +//***************************************************************************** +// +// This function prints a list of local statistics for this board. +// +//***************************************************************************** +void +PrintAllData(void) +{ + char cExositeCIK[CIK_LENGTH]; + + if(UARTPeek('\r') != -1) + { + g_bPrintingData = false; + + // + // Get a user command back + // + UARTgets(g_cInput, APP_INPUT_BUF_SIZE); + + // + // Print a prompt + // + UARTprintf("\n> "); + + return; + } + + UARTprintf("\033[2J\033[H"); + UARTprintf("Welcome to the Connected LaunchPad!!\n"); + UARTprintf("Internet of Things Demo\n"); + UARTprintf("Type 'help' for help.\n\n"); + + // + // Print out the MAC address for reference + // + PrintMac(); + + // + // Check to see if we already have a CIK, and print it to the UART + // + if(Exosite_GetCIK(cExositeCIK)) + { + UARTprintf("Current CIK: %s\n", cExositeCIK); + } + else + { + UARTprintf("No CIK found. Connect to Exosite to obtain one.\n"); + } + + // + // Check to see how many times (if any) we've failed to connect to the + // server. + // + if((g_ui32LinkRetries == 0) && g_bOnline) + { + // + // For zero failures, report a "Link OK" + // + UARTprintf("Link Status: OK\n"); + } + else if((g_ui32LinkRetries < MAX_SYNC_RETRIES) && g_bOnline) + { + // + // For the first few failures, report that we are trying to + // re-establish a link. + // + UARTprintf("Link Status: Lost (Retries: %d)\n", g_ui32LinkRetries); + } + else + { + // + // If we have exceeded the maximum number of retries, show status as + // offline. + // + UARTprintf("Link Status: Offline"); + } + + // + // Print some header text. + // + UARTprintf("\nCollected Statistics\n"); + UARTprintf("--------------------\n"); + + PrintStats(g_psDeviceStatistics); + + UARTprintf("\nPress Enter to return to the command prompt...\n"); + + UARTFlushTx(0); + + return; +} + +//***************************************************************************** +// +// Prints a help message to the UART to help with troubleshooting Exosite +// connection issues. +// +//***************************************************************************** +void +PrintConnectionHelp(void) +{ + UARTprintf("Troubleshooting Exosite Connection:\n\n"); + + UARTprintf(" + Make sure you are connected to the internet.\n\n"); + + UARTprintf(" + Make sure you have created an Exosite profile.\n\n"); + + UARTprintf(" + Make sure you have a \"Connected Launchpad\" device\n"); + UARTprintf(" created in your Exosite profile.\n\n"); + + UARTprintf(" + Make sure your that your board's MAC address is\n"); + UARTprintf(" correctly registered with your exosite profile.\n\n"); + + UARTprintf(" + If you have a CIK, make sure it matches the CIK for\n"); + UARTprintf(" this device in your online profile with Exosite.\n\n"); + + UARTprintf(" + If you have a proxy, make sure to configure it using\n"); + UARTprintf(" this terminal. Type 'setproxy help' to get started.\n"); + UARTprintf(" Once the proxy is set, type 'activate' to obtain a\n"); + UARTprintf(" new CIK, or 'connect' to connect to exosite using an\n"); + UARTprintf(" existing CIK.\n\n"); + + UARTprintf(" + Make sure your device is available for provisioning.\n"); + UARTprintf(" If you are not sure that provisioning is enabled,\n"); + UARTprintf(" check the Read Me First documentation or the online\n"); + UARTprintf(" exosite portal for more information.\n\n"); +} + +//***************************************************************************** +// +// Attempts to find a CIK in the EEPROM. Reports the status of this operation +// to the UART. +// +//***************************************************************************** +bool +GetEEPROMCIK(void) +{ + char pcExositeCIK[50]; + + // + // Try to read the CIK from EEPROM, and alert the user based on what we + // find. + // + if(Exosite_GetCIK(pcExositeCIK)) + { + // + // If a CIK is found, continue on to make sure that the CIK is valid. + // + UARTprintf("CIK found in EEPROM storage.\n\nCIK: %s\n\n", + pcExositeCIK); + } + else + { + // + // If a CIK was not found, return immediately and indicate the failure. + // + UARTprintf("No CIK found in EEPROM.\n"); + return 0; + } + + UARTprintf("Connecting to Exosite...\r"); + + // + // If a CIK was found, try to sync with Exosite. This should tell us if + // the CIK is valid or not. + // + if(SyncWithExosite(g_psDeviceStatistics)) + { + // + // If the sync worked, the CIK is valid. Alert the caller. + // + UARTprintf("Connected! Type 'stats' to see data for this board."); + return 1; + } + else + { + // + // If the sync failed, the CIK is probably invalid, so pass the error + // back to the caller. + // + UARTprintf("Initial sync failed. CIK may be invalid.\n"); + return 0; + } +} + +//***************************************************************************** +// +// Attempts to provision a new CIK through a request to Exosite's servers. This +// should be used when Exosite's CIK does not match the CIK for this device, or +// when a CIK is not found in EEPROM. +// +//***************************************************************************** +bool +ProvisionCIK(void) +{ + uint32_t ui32Idx; + char pcExositeCIK[50]; + + // + // If we get here, no CIK was found in EEPROM storage. We may need to + // obtain a CIK from the server. + // + UARTprintf("Connecting to exosite to obtain a new CIK... \n"); + + // + // Try to activate with Exosite a few times. If we succeed move on with the + // new CIK. Otherwise, fail. + // + for(ui32Idx = 0; ui32Idx < 1; ui32Idx++) + { + if(Exosite_Activate()) + { + // + // If exosite gives us a CIK, send feedback to the user + // + UARTprintf("CIK acquired!\n\n"); + + if(Exosite_GetCIK(pcExositeCIK)) + { + UARTprintf("CIK: %s\n\n", pcExositeCIK); + UARTprintf("Connected! "); + UARTprintf("Type 'stats' to see data for this board."); + } + else + { + // + // This shouldn't ever happen, but print an error message in + // case it does. + // + UARTprintf("ERROR reading new CIK from EEPROM.\n"); + } + + // + // Return "true" indicating that we found a valid CIK. + // + return true; + } + else + { + // + // If the activation fails, wait at least one second before + // retrying. + // + //ROM_SysCtlDelay(g_ui32SysClock/3); + if(Exosite_StatusCode() == EXO_STATUS_CONFLICT) + { + // + // This can occur if the MAC address for this board has already + // been activated, and the device has not been re-enabled for a + // new CIK. + // + UARTprintf("\nExosite reported that this device is not\n"); + UARTprintf("available for provisioning. Check to make sure\n"); + UARTprintf("that you have the correct MAC address, and that\n"); + UARTprintf("this device is enabled for provisioning in your\n"); + UARTprintf("Exosite profile.\n\n"); + + return false; + } + } + } + + // + // Exosite didn't respond, so let the user know. + // + UARTprintf("No CIK could be obtained.\n\n"); + + PrintConnectionHelp(); + + // + // Return "false", indicating that no CIK was found. + // + return false; +} + +//***************************************************************************** +// +// Attempts to provision a new CIK through a request to Exosite's servers. This +// should be used when Exosite's CIK does not match the CIK for this device, or +// when a CIK is not found in EEPROM. +// +//***************************************************************************** +bool +LocateValidCIK(void) +{ + // + // Try to obtain a valid CIK. + // + UARTprintf("Locating CIK... "); + + // + // Check the EEPROM for a valid CIK first. If none can be found + // there, try to provision a CIK from exosite. If we can obtain a + // CIK, make sure to set the global state variable that indicates + // that we can connect to exosite. + // + if(GetEEPROMCIK()) + { + return true; + } + else if(ProvisionCIK()) + { + return true; + } + else + { + // + // If both cases above fail, return false, indicating that we did not + // find a CIK. + // + return false; + } +} + +//***************************************************************************** +// +// Takes a reading from the internal temperature sensor, and updates the +// corresponding global statistics. +// +//***************************************************************************** +void +UpdateInternalTemp(void) +{ + uint32_t pui32ADC0Value[1], ui32TempValueC, ui32TempValueF; + + // + // Take a temperature reading with the ADC. + // + ROM_ADCProcessorTrigger(ADC0_BASE, 3); + + // + // Wait for the ADC to finish taking the sample + // + while(!ROM_ADCIntStatus(ADC0_BASE, 3, false)) + { + } + + // + // Clear the interrupt + // + ROM_ADCIntClear(ADC0_BASE, 3); + + // + // Read the analog voltage measurement. + // + ROM_ADCSequenceDataGet(ADC0_BASE, 3, pui32ADC0Value); + + // + // Convert the measurement to degrees Celcius and Fahrenheit, and save to + // the global state variables. + // + ui32TempValueC = ((1475 * 4096) - (2250 * pui32ADC0Value[0])) / 40960; + g_ui32InternalTempC = ui32TempValueC; + ui32TempValueF = ((ui32TempValueC * 9) + 160) / 5; + g_ui32InternalTempF = ui32TempValueF; +} + +//***************************************************************************** +// +// Polls the buttons, and updates global state accordingly. +// +//***************************************************************************** +void +UpdateButtons(void) +{ + uint8_t ui8Buttons, ui8ButtonsChanged; + + // + // Check the current debounced state of the buttons. + // + ui8Buttons = ButtonsPoll(&ui8ButtonsChanged,0); + + // + // If either button has been pressed, record that status to the + // corresponding global variable. + // + if(BUTTON_PRESSED(USR_SW1, ui8Buttons, ui8ButtonsChanged)) + { + g_ui32SW1Presses++; + } + else if(BUTTON_PRESSED(USR_SW2, ui8Buttons, ui8ButtonsChanged)) + { + g_ui32SW2Presses++; + } +} + +//***************************************************************************** +// +// Turns LEDs on or off based on global state variables. +// +//***************************************************************************** +void +UpdateLEDs(void) +{ + // + // If either LED's global flag is set, turn that LED on. Otherwise, turn + // them off. + // + if(g_ui32LEDD1) + { + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, GPIO_PIN_1); + } + else + { + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, 0); + } + + if(g_ui32LEDD2) + { + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, GPIO_PIN_0); + } + else + { + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0); + } +} + +//***************************************************************************** +// +// Prompts the user for a command, and blocks while waiting for the user's +// input. This function will return after the execution of a single command. +// +//***************************************************************************** +void +CheckForUserCommands(void) +{ + int iStatus; + + // + // Peek to see if a full command is ready for processing + // + if(UARTPeek('\r') == -1) + { + // + // If not, return so other functions get a chance to run. + // + return; + } + + // + // If we do have commands, process them immediately in the order they were + // received. + // + while(UARTPeek('\r') != -1) + { + // + // Get a user command back + // + UARTgets(g_cInput, APP_INPUT_BUF_SIZE); + + // + // Process the received command + // + iStatus = CmdLineProcess(g_cInput); + + // + // Handle the case of bad command. + // + if(iStatus == CMDLINE_BAD_CMD) + { + UARTprintf("Bad command!\n"); + } + + // + // Handle the case of too many arguments. + // + else if(iStatus == CMDLINE_TOO_MANY_ARGS) + { + UARTprintf("Too many arguments for command processor!\n"); + } + } + + // + // Print a prompt + // + UARTprintf("\n> "); + +} + + +//***************************************************************************** +// +// Interrupt handler for Timer0A. +// +// This function will be called periodically on the expiration of Timer0A It +// performs periodic tasks, such as looking for input on the physical buttons, +// and reporting usage statistics to the cloud. +// +//***************************************************************************** +void +Timer0IntHandler(void) +{ + // + // Clear the timer interrupt. + // + ROM_TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT); + + // + // Keep track of the number of times this interrupt handler has been + // called. + // + g_ui32TimerIntCount++; + + // + // Poll the GPIOs for the buttons to check for press events. Update global + // variables as necessary. + // + UpdateButtons(); + + if((!g_bPrintingData) && (!g_bGameActive)) + { + CheckForUserCommands(); + } + + // + // Once per second, perform the following operations. + // + if(!(g_ui32TimerIntCount % APP_TICKS_PER_SEC)) + { + // + // Keep track of the total seconds of on-time + // + g_ui32SecondsOnTime++; + + // + // Take a reading from the internal temperature sensor. + // + UpdateInternalTemp(); + + // + // Set the LEDs to the correct state. + // + UpdateLEDs(); + + // + // Check to see if we have any on-going actions that require the UART + // + if(g_bPrintingData) + { + // + // If the user has requested a data print-out, perform that here. + // + PrintAllData(); + } + else if(g_bGameActive) + { + // + // If the user is playing a game of tic-tac-toe, enter the game + // state machine here. + // + if(AdvanceGameState()) + { + // + // When the tic-tac-toe game state function returns a '1', the + // game is over. Print a newline, remove the 'g_bGameActive' + // flag, and resume normal operation. + // + UARTprintf("\n> "); + g_bGameActive = 0; + } + } + } + + // + // Make sure the running tally of the number of interrupts doesn't + // overflow. + // + if(g_ui32TimerIntCount == (20 * APP_TICKS_PER_SEC)) + { + // + // Reset the interrupt count to zero. + // + g_ui32TimerIntCount = 0; + + } + +} + +//***************************************************************************** +// +// Configures Timer 0 as a general purpose, periodic timer for handling button +// presses. +// +//***************************************************************************** +void +ConfigureTimer0(void) +{ + // + // Enable the peripherals used by this example. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); + + // + // Configure the two 32-bit periodic timers. + // + ROM_TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC); + ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, g_ui32SysClock / APP_TICKS_PER_SEC); + + // + // Lower the priority of this interrupt + // + ROM_IntPriorityGroupingSet(4); + ROM_IntPrioritySet(INT_TIMER0A, 0xE0); + + // + // Setup the interrupts for the timer timeouts. + // + ROM_IntEnable(INT_TIMER0A); + ROM_TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT); +} + +//***************************************************************************** +// +// Enables and configures ADC0 to read the internal temperature sensor into +// sample sequencer 3. +// +//***************************************************************************** +void +ConfigureADC0(void) +{ + // + // Enable clock to ADC0. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0); + + // + // Configure ADC0 Sample Sequencer 3 for processor trigger operation. + // + ROM_ADCSequenceConfigure(ADC0_BASE, 3, ADC_TRIGGER_PROCESSOR, 0); + + // + // Increase the hold time of this sample sequencer to account for the + // temperature sensor erratum (ADC#09). + // + HWREG(ADC0_BASE + ADC_O_SSTSH3) = 0x4; + + // + // Configure ADC0 sequencer 3 for a single sample of the temperature + // sensor. + // + ROM_ADCSequenceStepConfigure(ADC0_BASE, 3, 0, ADC_CTL_TS | ADC_CTL_IE | + ADC_CTL_END); + + // + // Enable the sequencer. + // + ROM_ADCSequenceEnable(ADC0_BASE, 3); + + // + // Clear the interrupt bit for sequencer 3 to make sure it is not set + // before the first sample is taken. + // + ROM_ADCIntClear(ADC0_BASE, 3); +} + +//***************************************************************************** +// +// Main function. +// +//***************************************************************************** +int +main(void) +{ + uint32_t ui32Timeout; + + // + // Run from the PLL at 120 MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Set the pinout for the board, including required pins for Ethernet + // operation. + // + PinoutSet(1,0); + + // + // Enable the UART, clear the terminal, and print a brief message. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); + + // + // Configure necessary peripherals. + // + ConfigureTimer0(); + ConfigureADC0(); + + // + // Take an initial reading of the internal temperature + // + UpdateInternalTemp(); + + // + // Initialize the buttons + // + ButtonsInit(); + + // + // If a proxy has been pre-defined, enable it here. + // +#ifdef CUSTOM_PROXY + usprintf(g_pcProxyAddress, PROXY_ADDRESS); + g_ui16ProxyPort = PROXY_PORT; + g_bUseProxy = true; +#endif + + // + // Clear the screen, and print a welcome message. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("Welcome to the Connected LaunchPad!!\n"); + UARTprintf("Internet of Things Demo\n"); + UARTprintf("Type \'help\' for help.\n\n"); + + // + // Initialize Exosite layer to allow Exosite-based user commands later. + // + Exosite_Init("texasinstruments", "ek-tm4c1294xl", IF_ENET, 0); + + // + // Start with the assumption that we are not online yet. + // + g_bOnline = false; + + // + // Print the MAC address, which users will need to register with Exosite. + // + PrintMac(); + + // + // Notify the user that we are obtaining an IP address. + // + UARTprintf("Obtaining IP... "); + + // + // Loop a few times to make sure that DHCP has time to find an IP. + // + for(ui32Timeout = 10; ui32Timeout > 0; ui32Timeout--) + { + // + // Check to see if we have an IP yet. + // + if((lwIPLocalIPAddrGet() != 0xffffffff) && + (lwIPLocalIPAddrGet() != 0x00000000)) + { + // + // Report that we found an IP address. + // + UARTprintf("IP Address Found.\n"); + + // + // If we can find and validate a CIK with Exosite, set the flag to + // indicate have a valid connection to the cloud. + // + g_bOnline = LocateValidCIK(); + + break; + } + else if(ui32Timeout == 0) + { + // + // Alert the user if it takes a long time to find an IP address. An + // IP address can still be found later, so this is not an + // indication of failure. + // + UARTprintf("No IP address found, continuing \n" + "to search in the background\n"); + } + + // + // Delay a second to allow DHCP to find us an IP address. + // + ROM_SysCtlDelay(g_ui32SysClock / 3); + } + + // + // If we don't have a valid exosite connection, let the user know that the + // device is "offline" and not performing any data synchronization with the + // cloud. + // + if(!g_bOnline) + { + UARTprintf("Continuing in offline mode.\n\n"); + } + + // + // Print a prompt + // + UARTprintf("\n> "); + + // + // Enable interrupts and start the timer. This will enable the UART console + // input, and also enable updates to the various cloud-enabled variables. + // + ROM_IntMasterEnable(); + ROM_TimerEnable(TIMER0_BASE, TIMER_A); + + // + // Main application loop. + // + while(1) + { + // + // Only run the following loop if we have a valid connection to + // Exosite. + // + if(g_bOnline) + { + // + // Attempt to sync data with Exosite + // + if(SyncWithExosite(g_psDeviceStatistics)) + { + // + // If the sync is successful, reset the "retries" count to zero + // + g_ui32LinkRetries = 0; + } + else if(Exosite_StatusCode() == EXO_STATUS_NOAUTH) + { + // + // Check to see if we failed for having an old CIK. If we did, + // flush the UART output, and stop any data-printing operation. + // + g_bPrintingData = 0; + UARTFlushTx(0); + + // + // Alert the user of the expired CIK. + // + UARTprintf("\nCIK no longer valid. "); + UARTprintf("Please try typing 'activate'.\n"); + UARTprintf("If this does not work, "); + UARTprintf("log in to exosite to check on\n"); + UARTprintf("the status of your devices.\n"); + UARTprintf("\n> "); + + // + // We did connect to Exosite, so the link is still valid, but + // data syncing will not work. Do not increment the number of + // link retries, but do consider the board "offline" for data + // syncing. + // + g_ui32LinkRetries = 0; + g_bOnline = false; + } + else + { + // + // If the sync fails for some other reason, make sure to record + // the failure. + // + g_ui32LinkRetries++; + + // + // If there are too many failures, assume that the connection + // was dropped. + // + if(g_ui32LinkRetries > MAX_SYNC_RETRIES) + { + g_bOnline = false; + } + } + } + } +} diff --git a/boards/ek-tm4c1294xl/qs_iot/qs_iot.ewd b/boards/ek-tm4c1294xl/qs_iot/qs_iot.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/qs_iot.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/qs_iot/qs_iot.ewp b/boards/ek-tm4c1294xl/qs_iot/qs_iot.ewp new file mode 100644 index 0000000..3c9373d --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/qs_iot.ewp @@ -0,0 +1,857 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\..\drivers\buttons.c + + + $PROJ_DIR$\..\..\..\..\utils\cmdline.c + + + $PROJ_DIR$\commands.c + + + $PROJ_DIR$\..\drivers\eth_client_lwip.c + + + $PROJ_DIR$\..\..\..\..\third_party\exosite\exosite.c + + + $PROJ_DIR$\..\drivers\exosite_hal_lwip.c + + + $PROJ_DIR$\..\..\..\..\third_party\exosite\exosite_meta.c + + + $PROJ_DIR$\..\..\..\..\utils\flash_pb.c + + + $PROJ_DIR$\..\drivers\http.c + + + $PROJ_DIR$\..\..\..\..\utils\locator.c + + + $PROJ_DIR$\..\..\..\..\utils\lwiplib.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\qs_iot.c + + + $PROJ_DIR$\requests.c + + + $PROJ_DIR$\..\..\..\..\utils\ringbuf.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\stats.c + + + $PROJ_DIR$\tictactoe.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/qs_iot/qs_iot.h b/boards/ek-tm4c1294xl/qs_iot/qs_iot.h new file mode 100644 index 0000000..be9667b --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/qs_iot.h @@ -0,0 +1,105 @@ +//***************************************************************************** +// +// qs_iot.h - EK-TM4C1294XL Quick start application +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __QS_IOT_H_ +#define __QS_IOT_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Globally defined constants +// +//***************************************************************************** +#define APP_TICKS_PER_SEC 100 +#define APP_INPUT_BUF_SIZE 1024 +#define NUM_STATS 12 + +bool SyncWithExosite(tStat **psStats); +void PrintAllData(void); +bool ProvisionCIK(void); + +//***************************************************************************** +// +// Global structure to hold information about the application. If a variable +// corresponds to an Exosite dataport, the alias of that dataport is also +// stored here +// +//***************************************************************************** +extern uint32_t g_ui32SW1Presses; +extern uint32_t g_ui32SW2Presses; +extern uint32_t g_ui32InternalTempF; +extern uint32_t g_ui32InternalTempC; +extern uint32_t g_ui32TimerIntCount; +extern uint32_t g_ui32SecondsOnTime; +extern uint32_t g_ui32LEDD1; +extern uint32_t g_ui32LEDD2; +extern uint32_t g_ui32BoardState; + +extern char g_pcLocation[50]; +extern char g_pcContactEmail[100]; +extern char g_pcAlert[140]; + +extern tStat *g_psDeviceStatistics[NUM_STATS]; + +extern tStat g_sLEDD1; +extern tStat g_sLEDD2; +extern tStat g_sLocation; +extern tStat g_sBoardState; +extern tStat g_sContactEmail; +extern tStat g_sAlert; + +extern char g_cInput[APP_INPUT_BUF_SIZE]; + +extern bool g_bPrintingData; +extern bool g_bGameActive; +extern volatile bool g_bOnline; +extern uint32_t g_ui32LinkRetries; + +extern uint32_t g_ui32SysClock; + +extern void PrintMac(void); +extern void PrintStats(tStat **psStats); +extern void PrintConnectionHelp(void); +extern bool LocateValidCIK(void); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __QS_IOT_H__ diff --git a/boards/ek-tm4c1294xl/qs_iot/qs_iot.icf b/boards/ek-tm4c1294xl/qs_iot/qs_iot.icf new file mode 100644 index 0000000..c6ed0c7 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/qs_iot.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// qs_iot.icf - Linker configuration file for qs_iot. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/qs_iot/qs_iot.ld b/boards/ek-tm4c1294xl/qs_iot/qs_iot.ld new file mode 100644 index 0000000..b870ff2 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/qs_iot.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * qs_iot.ld - Linker configuration file for qs_iot. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/qs_iot/qs_iot.sct b/boards/ek-tm4c1294xl/qs_iot/qs_iot.sct new file mode 100644 index 0000000..427d09d --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/qs_iot.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; qs_iot.sct - Linker configuration file for qs_iot. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/qs_iot/qs_iot.uvopt b/boards/ek-tm4c1294xl/qs_iot/qs_iot.uvopt new file mode 100644 index 0000000..e82d0b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/qs_iot.uvopt @@ -0,0 +1,541 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + qs_iot + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\buttons.c + buttons.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\cmdline.c + cmdline.c + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\commands.c + commands.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\eth_client_lwip.c + eth_client_lwip.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\exosite\exosite.c + exosite.c + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\exosite_hal_lwip.c + exosite_hal_lwip.c + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\exosite\exosite_meta.c + exosite_meta.c + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\flash_pb.c + flash_pb.c + + + 1 + 9 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\http.c + http.c + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\locator.c + locator.c + + + 1 + 11 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\lwiplib.c + lwiplib.c + + + 1 + 12 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 13 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\qs_iot.c + qs_iot.c + + + 1 + 14 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\requests.c + requests.c + + + 1 + 15 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ringbuf.c + ringbuf.c + + + 1 + 16 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 17 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\stats.c + stats.c + + + 1 + 18 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\tictactoe.c + tictactoe.c + + + 1 + 19 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 20 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 21 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 22 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/qs_iot/qs_iot.uvproj b/boards/ek-tm4c1294xl/qs_iot/qs_iot.uvproj new file mode 100644 index 0000000..cff15fd --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/qs_iot.uvproj @@ -0,0 +1,514 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + qs_iot + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + qs_iot + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\qs_iot.bin .\rvmdk\qs_iot.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 LWIP_1_4_1 USE_HTTP_1_0 UART_BUFFERED + + .;..;..\..\..\..;..\..\..\..\third_party\lwip-1.4.1\apps;..\..\..\..\third_party\exosite;..\..\..\..\third_party\lwip-1.4.1\ports\tiva-tm4c129\include;..\..\..\..\third_party\lwip-1.4.1\src\include;..\..\..\..\third_party\lwip-1.4.1\src\include\ipv4;..\..\..\..\third_party; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + qs_iot.sct + + + --entry Reset_Handler + + + + + + + + Source + + + buttons.c + 1 + ..\drivers\buttons.c + + + cmdline.c + 1 + ..\..\..\..\utils\cmdline.c + + + commands.c + 1 + .\commands.c + + + eth_client_lwip.c + 1 + ..\drivers\eth_client_lwip.c + + + exosite.c + 1 + ..\..\..\..\third_party\exosite\exosite.c + + + exosite_hal_lwip.c + 1 + ..\drivers\exosite_hal_lwip.c + + + exosite_meta.c + 1 + ..\..\..\..\third_party\exosite\exosite_meta.c + + + flash_pb.c + 1 + ..\..\..\..\utils\flash_pb.c + + + http.c + 1 + ..\drivers\http.c + + + locator.c + 1 + ..\..\..\..\utils\locator.c + + + lwiplib.c + 1 + ..\..\..\..\utils\lwiplib.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + qs_iot.c + 1 + .\qs_iot.c + + + requests.c + 1 + .\requests.c + + + ringbuf.c + 1 + ..\..\..\..\utils\ringbuf.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + stats.c + 1 + .\stats.c + + + tictactoe.c + 1 + .\tictactoe.c + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/qs_iot/qs_iot_ccs.cmd b/boards/ek-tm4c1294xl/qs_iot/qs_iot_ccs.cmd new file mode 100644 index 0000000..b6dd2f8 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/qs_iot_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * qs_iot_ccs.cmd - CCS linker configuration file for qs_iot. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 4096; diff --git a/boards/ek-tm4c1294xl/qs_iot/readme.txt b/boards/ek-tm4c1294xl/qs_iot/readme.txt new file mode 100644 index 0000000..e111359 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/readme.txt @@ -0,0 +1,58 @@ +Internet of Things Quickstart + + +This application records various information about user activity on the +board, and periodically reports it to a cloud server managed by Exosite. In +order to use all of the features of this application, you will need to have +an account with Exosite, and make sure that the device you are using is +registered to your Exosite profile with its original MAC address from the +factory. + +If you do not yet have an Exosite account, you can create one at +http://ti.exosite.com. The web interface there will help guide you through +the account creation process. There is also information in the Quickstart +document that is shipped along with the EK-TM4C1294XL evaluation kit. + +This application uses a command-line based interface through a virtual COM +port on UART 0, with the settings 115,200-8-N-1. This application also +requires a wired Ethernet connection with internet access to perform +cloud-connected activities. + +Once the application is running you should be able to see program output +over the virtual COM port, and interact with the command-line. The command +line will allow you to see the information being sent to and from Exosite's +servers, change the state of LEDs, and play a game of tic-tac-toe. If you +have internet connectivity issues, need to find your MAC address, or need +to re-activate your EK-TM4C1294XL board with Exosite, the command line +interface also has options to support these operations. Type +'help' at the command prompt to see a list of available commands. + +If your local internet connection requires the use of a proxy server, you +will need to enter a command over the virtual COM port terminal before the +device will be able to connect to Exosite. When prompted by the +application, type 'setproxy help' for information on how to configure the +proxy. Alternatively, you may uncomment the define statements below for +"CUSTOM_PROXY" settings, fill in the correct information for your local +http proxy server, and recompile this example. This will permanently set +your proxy as the default connection point. + + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/qs_iot/requests.c b/boards/ek-tm4c1294xl/qs_iot/requests.c new file mode 100644 index 0000000..b59aa4b --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/requests.c @@ -0,0 +1,349 @@ +//***************************************************************************** +// +// requests.c - Functions for formatting requests to sync data with Exosite +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include + +#include "driverlib/rom.h" +#include "utils/ustdlib.h" +#include "exosite.h" +#include "stats.h" +#include "qs_iot.h" +#include "requests.h" + +//***************************************************************************** +// +// Buffers for writing and reading exosite data. +// +//***************************************************************************** +char g_pcWriteRequest[REQUEST_BUFFER_SIZE]; +char g_pcReadRequest[REQUEST_BUFFER_SIZE]; +char g_pcResponse[255]; + +//***************************************************************************** +// +// Syncs an individual stat with Exosite based on its read/write settings. +// +//***************************************************************************** +bool +AddSyncRequest(tStat *psStat) +{ + char pcFormattedRequest[100]; + char *pcStatAlias; + int eStatRWType; + + pcStatAlias = psStat->pcCloudAlias; + eStatRWType = psStat->eReadWriteType; + + // + // Only interact with the server if the stat has an alias + // + if(pcStatAlias == 0) + { + return 1; + } + + // + // Check to see if we write this stat to the server. + // + if((eStatRWType == WRITE_ONLY) || (eStatRWType == READ_WRITE)) + { + // + // Format a request to write the current value of this stat. + // + StatRequestFormat(psStat, pcFormattedRequest); + + // + // If the request didn't fit, report failure. + // + if(!AddRequest(pcFormattedRequest, g_pcWriteRequest, + ustrlen(pcFormattedRequest))) + { + return 0; + } + + } + else if(eStatRWType == READ_ONLY) + { + // + // If the request didn't fit, report failure. + // + if(!AddRequest(pcStatAlias, g_pcReadRequest, + ustrlen(pcStatAlias))) + { + return 0; + } + + } + + // + // Shouldn't get here... + // + return 1; +} + +bool +AddRequest(char *pcNewRequest, char *pcRequestBuffer, uint32_t ui32Size) +{ + uint32_t ui32BufferOffset; + + // + // Set the buffer offset to the location of the first null character in the + // string. + // + ui32BufferOffset = ustrlen(pcRequestBuffer); + + + // + // Check to make sure that the buffer is not full. + // + if(ui32BufferOffset >= REQUEST_BUFFER_SIZE) + { + // + // If the buffer was already full, return a zero to indicate failure. + // + pcRequestBuffer[REQUEST_BUFFER_SIZE - 1] = 0; + return 0; + } + + // + // Check to make sure that the new request is small enough to fit in the + // buffer, even if we have to add an ampersand and a null terminator. + // + if(ui32Size < (REQUEST_BUFFER_SIZE - ui32BufferOffset - 2)) + { + if(ui32BufferOffset != 0) + { + // + // If the buffer has any data in it, add an ampersand to separate + // this request from any previous requests. + // + pcRequestBuffer[ui32BufferOffset++] = '&'; + } + + // + // Append the data from the new request to the request buffer, and make + // sure to put a terminator after it. + // + ustrncpy(&pcRequestBuffer[ui32BufferOffset], pcNewRequest, ui32Size); + pcRequestBuffer[ui32BufferOffset + ui32Size] = 0; + return 1; + } + else + { + // + // If the input string is too long, return a zero. + // + return 0; + } +} + +bool +ExtractValueByAlias(char *pcAlias, char *pcBuffer, char *pcDestString, + uint32_t ui32MaxSize) +{ + char pcSearchString[100]; + char *pcValueStart; + uint32_t ui32Idx; + + // + // Set the search string to be the desired alias with an equals-sign + // appended. This should help us distinguish between a real alias and a + // string value made up of the same letters. + // + usprintf(pcSearchString, "%s=", pcAlias); + + // + // Find the desired alias in the buffer. + // + pcValueStart = ustrstr(pcBuffer, pcAlias); + + // + // If we couldn't find it, return a zero. Otherwise, continue extracting + // the value. + // + if(!pcValueStart) + { + return false; + } + + // + // Find the equals-sign, which should be just before the start of the + // value. + // + pcValueStart = ustrstr(pcValueStart, "="); + + if(!pcValueStart) + { + return false; + } + + // + // Advance to the first character of the value. + // + pcValueStart++; + + // + // Loop through the input value from the buffer, and copy characters to the + // destination string. + // + ui32Idx = 0; + while(ui32Idx < ui32MaxSize) + { + // + // Check for the end of the value string. + // + if((pcValueStart[ui32Idx] == '&') || + (pcValueStart[ui32Idx] == 0)) + { + // + // If we have reached the end of the value, null-terminate the + // destination string, and return. + // + pcDestString[ui32Idx] = 0; + return 1; + } + else + { + pcDestString[ui32Idx] = pcValueStart[ui32Idx]; + } + + ui32Idx++; + } + + pcDestString[ui32MaxSize - 1] = 0; + return 1; +} + +//***************************************************************************** +// +// Given a list of statistics, sync each of them with Exosite's server. +// +//***************************************************************************** +bool +SyncWithExosite(tStat **psStats) +{ + int eStatRWType[NUM_STATS]; + char pcServerValue[100]; + uint32_t ui32Index; + tStat *psStat; + + // + // Clear the request buffers + // + g_pcWriteRequest[0] = 0; + g_pcReadRequest[0] = 0; + + // + // Loop over all statistics in the list, and add them to the request + // buffer. + // + for(ui32Index = 0; psStats[ui32Index] != NULL; ui32Index++) + { + // + // Record the read/write behavior of each stat before sending the + // request. If a particular stat is set to "READ_WRITE", we need to + // know that now. + // + eStatRWType[ui32Index] = psStats[ui32Index]->eReadWriteType; + if(AddSyncRequest(psStats[ui32Index]) == 0) + { + return false; + } + } + + // + // Perform the write, and wait for a response from the server. If exosite + // doesn't respond, return "false", and assume that no data got through. + // + if(ustrlen(g_pcWriteRequest)) + { + if(!Exosite_Write(g_pcWriteRequest, ustrlen(g_pcWriteRequest))) + { + return false; + } + } + + // + // Perform the read, and wait for a response from the server. If exosite + // doesn't respond, return "false", and assume that no data got through. + // + if(ustrlen(g_pcReadRequest)) + { + if(!Exosite_Read(g_pcReadRequest, g_pcResponse, 255)) + { + return false; + } + } + + // + // If execution reaches this point, we can assume that the server has + // accepted the data just sent. Update the information for each stat + // accordingly. + // + for(ui32Index = 0; psStats[ui32Index] != NULL; ui32Index++) + { + psStat = psStats[ui32Index]; + + // + // Disable interrupts to avoid data disturbances in other interupt + // contexts. + // + ROM_IntMasterDisable(); + + // + // Check the read/write status of this stat. + // + if(psStat->eReadWriteType == READ_ONLY) + { + // + // If a stat is CURRENTLY marked as READ_ONLY, then update its + // value to match the new value from the server. + // + ExtractValueByAlias(psStat->pcCloudAlias, g_pcResponse, + pcServerValue, 100); + StatSetVal(psStat, pcServerValue); + } + else if(eStatRWType[ui32Index] == READ_WRITE) + { + // + // If a stat was PREVIOUSLY marked as READ_WRITE at the time that + // the most recent request was sent, then update its status to + // READ_ONLY. + // + psStat->eReadWriteType = READ_ONLY; + } + + // + // Re-enable interrupts. + // + ROM_IntMasterEnable(); + } + + // + // Successfully updated all stats. + // + return true; +} + diff --git a/boards/ek-tm4c1294xl/qs_iot/requests.h b/boards/ek-tm4c1294xl/qs_iot/requests.h new file mode 100644 index 0000000..be93855 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/requests.h @@ -0,0 +1,84 @@ +//***************************************************************************** +// +// requests.h - Header for requests.c file. Provides definitions for formatting +// requests for Exosite. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __REQUESTS_H__ +#define __REQUESTS_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Determines how much memory to reserve for sending requests to Exosite. +// +//***************************************************************************** +#define REQUEST_BUFFER_SIZE 255 + +//***************************************************************************** +// +// Buffers for holding request data before sending them to exosite. +// +//***************************************************************************** +extern char g_pcWriteRequest[REQUEST_BUFFER_SIZE]; +extern char g_pcReadRequest[REQUEST_BUFFER_SIZE]; + +//***************************************************************************** +// +// Buffer for holding responses from Exosite's servers until they can be +// parsed. +// +//***************************************************************************** +extern char g_pcResponse[255]; + +//***************************************************************************** +// +// Function prototypes. +// +//***************************************************************************** +extern bool AddSyncRequest(tStat *psStat); +extern bool AddRequest(char *pcNewRequest, char *pcRequestBuffer, + uint32_t ui32Size); +extern bool ExtractValueByAlias(char *pcAlias, char *pcBuffer, + char *pcDestString, uint32_t ui32MaxSize); +extern bool SyncWithExosite(tStat **psStats); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __REQUESTS_H__ diff --git a/boards/ek-tm4c1294xl/qs_iot/rvmdk/qs_iot.axf b/boards/ek-tm4c1294xl/qs_iot/rvmdk/qs_iot.axf new file mode 100644 index 0000000..47de3ae Binary files /dev/null and b/boards/ek-tm4c1294xl/qs_iot/rvmdk/qs_iot.axf differ diff --git a/boards/ek-tm4c1294xl/qs_iot/rvmdk/qs_iot.bin b/boards/ek-tm4c1294xl/qs_iot/rvmdk/qs_iot.bin new file mode 100644 index 0000000..604ba26 Binary files /dev/null and b/boards/ek-tm4c1294xl/qs_iot/rvmdk/qs_iot.bin differ diff --git a/boards/ek-tm4c1294xl/qs_iot/startup_ccs.c b/boards/ek-tm4c1294xl/qs_iot/startup_ccs.c new file mode 100644 index 0000000..df0cb15 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/startup_ccs.c @@ -0,0 +1,278 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); +extern void Timer0IntHandler(void); +extern void UARTStdioIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + Timer0IntHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/qs_iot/startup_ewarm.c b/boards/ek-tm4c1294xl/qs_iot/startup_ewarm.c new file mode 100644 index 0000000..db8b010 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/startup_ewarm.c @@ -0,0 +1,309 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); +extern void Timer0IntHandler(void); +extern void UARTStdioIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[1024] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + Timer0IntHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/qs_iot/startup_gcc.c b/boards/ek-tm4c1294xl/qs_iot/startup_gcc.c new file mode 100644 index 0000000..120db0d --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/startup_gcc.c @@ -0,0 +1,325 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void lwIPEthernetIntHandler(void); +extern void SysTickIntHandler(void); +extern void Timer0IntHandler(void); +extern void UARTStdioIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[1024]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + Timer0IntHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + lwIPEthernetIntHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/qs_iot/startup_rvmdk.S b/boards/ek-tm4c1294xl/qs_iot/startup_rvmdk.S new file mode 100644 index 0000000..440a396 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/startup_rvmdk.S @@ -0,0 +1,334 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00001000 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN lwIPEthernetIntHandler + EXTERN SysTickIntHandler + EXTERN Timer0IntHandler + EXTERN UARTStdioIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD UARTStdioIntHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD Timer0IntHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD lwIPEthernetIntHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/qs_iot/stats.c b/boards/ek-tm4c1294xl/qs_iot/stats.c new file mode 100644 index 0000000..4da8932 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/stats.c @@ -0,0 +1,174 @@ +//***************************************************************************** +// +// stats.c - Implements structures and functions for cloud-connected statistics +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include + +#include "driverlib/rom.h" +#include "utils/ustdlib.h" +#include "stats.h" + +//***************************************************************************** +// +// Sets the value of a tStat structure based on a formatted string input. +// +//***************************************************************************** +void +StatSetVal(tStat *psStat, char *pcInputValue) +{ + if((psStat->eValueType) == STRING) + { + ustrncpy(StatStringVal(*psStat), pcInputValue, MAX_STAT_STRING); + } + else if((psStat->eValueType == INT) || + (psStat->eValueType == HEX)) + { + StatIntVal(*psStat) = ustrtoul(pcInputValue, NULL, 0); + } +} + +//***************************************************************************** +// +// Given a destination buffer and a tStat pointer, this function will produce a +// formatted "request string" that can be used in the Exosite_Write function. +// +//***************************************************************************** +void +StatRequestFormat(tStat *psStat, char *pcRequestBuffer) +{ + if((psStat->eValueType) == STRING) + { + // + // Disable interrupts to avoid changes to the string during the copy + // operation. + // + ROM_IntMasterDisable(); + + usprintf(pcRequestBuffer, "%s=%s", + psStat->pcCloudAlias, + StatStringVal(*psStat)); + + ROM_IntMasterEnable(); + } + else if((psStat->eValueType) == INT) + { + usprintf(pcRequestBuffer, "%s=%d", + psStat->pcCloudAlias, + StatIntVal(*psStat)); + } + else if((psStat->eValueType) == HEX) + { + usprintf(pcRequestBuffer, "%s=0x%x", + psStat->pcCloudAlias, + StatIntVal(*psStat)); + } +} + +//***************************************************************************** +// +// Given a pointer to a tStat and a destination string, this function will +// print the value of the tStat to the string. +// +//***************************************************************************** +void +StatPrintValue(tStat *psStat, char *pcValueString) +{ + char *pcSourceString; + char pcPercentString[3]; + uint32_t ui32CharValue; + uint8_t ui8Index; + // + // Check the type of data that is stored in this psStat variable. + // + if((psStat->eValueType) == STRING) + { + // + // If this is a string, perform a little processing to remove + // percent-encoded characters. First, copy the original string pointer + // for ease of use. + // + pcSourceString = StatStringVal(*psStat); + + + // + // Loop through the characters in the string one by one. + // + ui8Index = 0; + while(*pcSourceString != 0) + { + // + // If the character is a percent sign, calculate the correct + // percent-encoding substitution. + // + if(*pcSourceString == '%') + { + // + // The next two characters should be a hexadecimal + // representation of the actual character that should be + // printed. Convert them to an integer here. + // + ustrncpy(pcPercentString, (pcSourceString + 1), 2); + + pcPercentString[2] = 0; + + ui32CharValue = ustrtoul((pcPercentString), NULL, 16); + + // + // Increment the source pointer past the escaped characters. + // + pcSourceString = pcSourceString + 3; + + // + // Copy the converted value into the destination string. + // + pcValueString[ui8Index] = ui32CharValue; + + } + else + { + // + // If the character was not a percent sign, it can be copied + // directly. + // + pcValueString[ui8Index] = *pcSourceString; + pcSourceString++; + } + + // + // Increment the index. + // + ui8Index++; + } + + pcValueString[ui8Index] = 0; + } + else if((psStat->eValueType) == INT) + { + // + // If this is an integer value, just print the value as text into the + // destination string. + // + usprintf(pcValueString, "%d", StatIntVal(*psStat)); + } +} diff --git a/boards/ek-tm4c1294xl/qs_iot/stats.h b/boards/ek-tm4c1294xl/qs_iot/stats.h new file mode 100644 index 0000000..768d58f --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/stats.h @@ -0,0 +1,117 @@ +//***************************************************************************** +// +// stats.h - Header file for saving cloud-connected statistics +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __STATS_H__ +#define __STATS_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Types used for recording general statistics +// +//***************************************************************************** +typedef struct +{ + // + // Name of the item + // + char *pcName; + + // + // Numerical value + // + void *pvValue; + + // + // Exosite alias of the item + // + char *pcCloudAlias; + + // + // Write/Read status of the item + // + enum + { + STRING, + INT, + HEX + } + eValueType; + + // + // Write/Read status of the item + // + enum + { + READ_ONLY, + WRITE_ONLY, + READ_WRITE, + NONE + } + eReadWriteType; +} +tStat; + +//***************************************************************************** +// +// Useful macros for manipulating cloud variables. +// +//***************************************************************************** +#define StatIntVal(sStat) (*((uint32_t *)((sStat).pvValue))) +#define StatStringVal(sStat) ((char *)((sStat).pvValue)) + +#define MAX_STAT_STRING 32 + +//***************************************************************************** +// +// External function protos +// +//***************************************************************************** +extern void StatSetVal(tStat *psStat, char *pcInputValue); +extern void StatRequestFormat(tStat *psStat, char *pcRequestBuffer); +extern void StatPrintValue(tStat *psStat, char *pcValueString); + + + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __STATS_H__ + diff --git a/boards/ek-tm4c1294xl/qs_iot/tictactoe.c b/boards/ek-tm4c1294xl/qs_iot/tictactoe.c new file mode 100644 index 0000000..5557487 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/tictactoe.c @@ -0,0 +1,718 @@ +//***************************************************************************** +// +// tictactoe.c - Provides additional functionality for the qs-cloud example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "utils/ustdlib.h" +#include "utils/uartstdio.h" +#include "stats.h" +#include "commands.h" +#include "qs_iot.h" +#include "tictactoe.h" + +//***************************************************************************** +// +// Definitions related to the representation of the game state. +// +//***************************************************************************** +#define PLAYER_BIT 0x80000000 // Indicates current player number. +#define REMOTE_PLAYER 0x40000000 // Setting allows remote play. + +//***************************************************************************** +// +// Information relating to the current TicTacToe game state +// +//***************************************************************************** +uint32_t g_ui32BoardState = 0; +uint32_t g_ui32LastState = 0; +uint32_t g_ui32Row = 0; +uint32_t g_ui32Col = 0; +uint32_t g_ui32Player = 0; +uint32_t g_ui32Mode = 0; + +//***************************************************************************** +// +// State variable for keeping track of the game flow +// +//***************************************************************************** +enum +{ + NEW_GAME, + SET_MODE, + PLAY_TURN, + GET_ROW, + GET_COLUMN, + REMOTE_PLAY +} +g_ui32GameState; + +//***************************************************************************** +// +// Input buffer for UART input to the TicTacToe game. +// +//***************************************************************************** +#define GAME_INPUT_SIZE 10 +char g_pcGameInput[GAME_INPUT_SIZE]; + +//***************************************************************************** +// +// Global array to track all possible winning configurations of tic-tac-toe. +// +//***************************************************************************** +uint32_t g_ui32WinConditions[] = +{ + 0x7, + 0x38, + 0x1C0, + 0x49, + 0x92, + 0x124, + 0x111, + 0x54 +}; + +#define NUM_WIN_CONDITIONS (sizeof(g_ui32WinConditions)/sizeof(uint32_t)) + +//***************************************************************************** +// +// Turn prompts a user to play a single turn of tic-tac-toe, and updates the +// global game state variable accordingly. Turn will prevent collisions between +// two separate players on individual squares of the game board, and will +// re-prompt the same player in the event of invalid input. +// +//***************************************************************************** +bool +ProcessTurn(void) +{ + uint32_t ui32Move; + + // + // + // If the chosen coordinates are out of range, try asking for a new set + // of coordinates. + // + if(g_ui32Row > 2 || g_ui32Col > 2) + { + UARTprintf("Invalid, try again.\n"); + return false; + } + + // + // Otherwise, convert the coordinates to the format used by the global + // state variable. + // + ui32Move = 1; + ui32Move = ui32Move << (g_ui32Row * 3); + ui32Move = ui32Move << (g_ui32Col * 1); + + // + // If this space was already occupied, prompt the player for a + // different move. + // + if((ui32Move & g_ui32BoardState) || + ((ui32Move << 16) & g_ui32BoardState)) + { + UARTprintf("Invalid, try again (space occupied).\n"); + return false; + } + else + { + // + // Otherwise, the move is valid. Add it to the global state. + // + g_ui32BoardState |= (ui32Move << (g_ui32Player * 16)); + + // + // Also flip the player bit, to indicate that the next player should + // move. + // + g_ui32BoardState ^= PLAYER_BIT; + g_ui32Player = (g_ui32BoardState & PLAYER_BIT) ? 1 : 0; + + return true; + } +} + +//***************************************************************************** +// +// ShowBoard prints an ASCII representation of the current tic-tac-toe board to +// the UART +// +//***************************************************************************** +void +ShowBoard(void) +{ + uint32_t ui32RowNum; + uint32_t ui32ColNum; + uint32_t ui32MaskX; + uint32_t ui32MaskO; + + // + // Clear the terminal + // + UARTprintf("\033[2J\033[H"); + + UARTprintf("'%c' Player's turn.\n\n", (g_ui32Player ? 'O' : 'X')); + + // + // Print out column numbers + // + UARTprintf(" 0 1 2\n"); + + // + // Loop over rows, starting with zero + // + for(ui32RowNum = 0; ui32RowNum < 3; ui32RowNum++) + { + // + // Print the row number + // + UARTprintf(" %d ", ui32RowNum); + + // + // Loop thorugh the columns + // + for(ui32ColNum = 0; ui32ColNum < 3; ui32ColNum++) + { + // + // Convert the row/column number into the format used by the global + // game-state variable. + // + ui32MaskX = 1 << (ui32RowNum * 3); + ui32MaskX = ui32MaskX << (ui32ColNum * 1); + ui32MaskO = ui32MaskX << 16; + + // + // If a player has a token in this row and column, print the + // corresponding symbol + // + if(g_ui32BoardState & ui32MaskX) + { + UARTprintf("X"); + } + else if(g_ui32BoardState & ui32MaskO) + { + UARTprintf("O"); + } + else + { + UARTprintf(" "); + } + + // + // Print column separators where necessary. + // + if(ui32ColNum < 2) + { + UARTprintf("|"); + } + } + + // + // End this row. + // + UARTprintf("\n", ui32RowNum); + + // + // Add a row separator if necessary. + // + if(ui32RowNum < 2) + { + UARTprintf(" -+-+-\n"); + } + + } + + // + // Print an extra empty line after the last row. + // + UARTprintf("\n"); +} + +//***************************************************************************** +// +// CheckWinner checks the global state variable to see if either player has +// won, or if the game has ended in a tie. Returns a 1 if the game is over, or +// a 0 if the game should continue. +// +//***************************************************************************** +bool +CheckWinner(void) +{ + uint32_t ui32Idx; + uint32_t ui32WinMask0; + uint32_t ui32WinMask1; + uint32_t ui32CatCheck; + uint32_t ui32QuitCheck; + + // + // Loop through the table of win-conditions. + // + for(ui32Idx = 0; ui32Idx < NUM_WIN_CONDITIONS; ui32Idx++) + { + // + // Get a winning board configuration from the global table, and create + // bit masks for each player corresponding to that win condition. + // + ui32WinMask0 = g_ui32WinConditions[ui32Idx]; + ui32WinMask1 = g_ui32WinConditions[ui32Idx] << 16; + + // + // If a player's pieces line up with the winning configuration, count + // this as a win. + // + if((g_ui32BoardState & ui32WinMask0) == ui32WinMask0) + { + UARTprintf("'X' Wins!\n", (g_ui32Player ? 'O' : 'X')); + return 1; + } + else if((g_ui32BoardState & ui32WinMask1) == ui32WinMask1) + { + UARTprintf("'O' Wins!\n", (g_ui32Player ? 'O' : 'X')); + return 1; + } + } + + // + // AND together the position bits for both players to see how many spaces + // are occupied. + // + ui32CatCheck = ((g_ui32BoardState | (g_ui32BoardState >> 16)) & 0x1FF); + + // + // The server will signify a "quit" request by setting all of a single + // player's bits high. Check for one of these states, and print a message + // if it is found. + // + ui32QuitCheck = (g_ui32BoardState & 0x01FF); + if(ui32QuitCheck == 0x01FF) + { + UARTprintf("Game ended by other player.\n"); + return 1; + } + + ui32QuitCheck = (g_ui32BoardState & 0x01FF0000); + if(ui32QuitCheck == 0x01FF0000) + { + UARTprintf("Game ended by other player.\n"); + return 1; + } + + // + // If all spaces are full, and no winner was detected, declare this a tie. + // + if(ui32CatCheck == 0x1FF) + { + UARTprintf("It's a tie.\n"); + return 1; + } + + // + // If the player's pieces do not line up with a known winning + // configuration, return a zero, indicating that no winner was found. + // + return 0; +} + +//***************************************************************************** +// +// SetGameMode reads the user input to determine whether TicTacToe will be +// played locally or online, and whether the local player will play first or +// second. This function will return a 1 if the user-selected mode setting was +// valid, or a 0 if the mode could not be selected. +// +//***************************************************************************** +bool +SetGameMode(void) +{ + uint32_t ui32InputMode; + + // + // If there wasn't any user input, return immediately. + // + if(UARTPeek('\r') == -1) + { + return 0; + } + + // + // Pull the user input from the UART, and convert it to an integer. + // + UARTgets(g_pcGameInput, GAME_INPUT_SIZE); + ui32InputMode = ustrtoul(g_pcGameInput, 0, 0); + + // + // Check to make sure we have a valid mode selection. + // + if(ui32InputMode == 3) + { + // + // If the selected mode is "online, remote player first", set the state + // variables accordingly. + // + g_ui32Mode = ui32InputMode; + + // + // Setting the REMOTE_PLAYER bit will alert the remote user interface + // that they should make the first move. Setting the global variable + // for the old state allows the state machine to detect when the remote + // play has happened. + // + g_ui32LastState = REMOTE_PLAYER; + g_ui32BoardState = REMOTE_PLAYER; + g_sBoardState.eReadWriteType = READ_WRITE; + + return 1; + } + else if((ui32InputMode > 0) && (ui32InputMode < 4)) + { + // + // If the user entered a different valid choice, set up the game mode, + // but don't request a play from the remote interface. + // + g_ui32Mode = ui32InputMode; + g_ui32LastState = 0x0; + g_ui32BoardState = 0x0; + g_sBoardState.eReadWriteType = WRITE_ONLY; + + return 1; + } + else + { + // + // Invalid input. + // + UARTprintf("Invalid input. Try again: "); + + return 0; + } +} + +//***************************************************************************** +// +// This function implements a state machine for the tic-tac-toe gameplay. +// +//***************************************************************************** +bool +AdvanceGameState(void) +{ + // + // If the user has typed a Q, skip straight to ending the game. + // + if((UARTPeek('Q') >= 0) && (UARTPeek('\r') >=0)) + { + // + // Remove the Q from the buffer. + // + UARTgets(g_pcGameInput, GAME_INPUT_SIZE); + + // + // This board state signals a 'quit' condition to the server. + // + g_ui32BoardState = 0x01FF01FF; + g_sBoardState.eReadWriteType = WRITE_ONLY; + + // + // Print a quit message. + // + UARTprintf("\nGame Over.\n"); + return 1; + } + + // + // This switch statement controls the main flow of the game. + // + switch(g_ui32GameState) + { + case NEW_GAME: + { + // + // For a new game, the first step is to determine the game mode. + // Prompt the user for a game mode via UART, and advance the state + // to wait for the user's response. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("New Game!\n"); + UARTprintf(" 1 - play locally\n"); + UARTprintf(" 2 - play online, local user starts\n"); + UARTprintf(" 3 - play online, remote user starts\n"); + UARTprintf(" Q - Enter Q at any time during play to quit.\n\n"); + UARTprintf("Select an option (1-3 or Q): "); + + g_ui32GameState = SET_MODE; + break; + } + + case SET_MODE: + { + // + // Only continue if we have input from the user. + // + if(UARTPeek('\r') != -1) + { + // + // Attempt to use the user's input to set the game mode. + // + if(SetGameMode()) + { + // + // If the user input was valid, show the game board and + // advance the state to start the first turn. + // + ShowBoard(); + g_ui32GameState = PLAY_TURN; + } + } + + break; + } + + case PLAY_TURN: + { + // + // Check to see if we need input from the local user. This will + // always be true for a local game, and should be true for only a + // single player's turns for an online game. + // + if(!(g_ui32BoardState & REMOTE_PLAYER)) + { + // + // If we're playing a local game, prompt for a row number and + // advance the state to wait for a response. + // + UARTprintf("Enter Row: "); + g_ui32GameState = GET_ROW; + } + else + { + // + // If the local player is not supposed to move for this turn, + // print a message to let the player know that we are waiting + // on input from a remote player. + // + UARTprintf("Waiting for remote player....\n"); + g_ui32GameState = REMOTE_PLAY; + } + + break; + } + + case GET_ROW: + { + // + // Only continue if we have input from the user. + // + if(UARTPeek('\r') != -1) + { + // + // Convert the user's input to an integer, and store it as the + // new row number. + // + UARTgets(g_pcGameInput, GAME_INPUT_SIZE); + g_ui32Row = ustrtoul(g_pcGameInput, 0, 0); + + // + // Prompt for a column number, and advance the state to wait + // for a response. + // + UARTprintf("Enter Column: "); + g_ui32GameState = GET_COLUMN; + } + + break; + } + + case GET_COLUMN: + { + // + // Only continue if we have input from the user. + // + if(UARTPeek('\r') != -1) + { + // + // Convert the user's input to an integer, and store it as the + // new column number. + // + UARTgets(g_pcGameInput, GAME_INPUT_SIZE); + g_ui32Col = ustrtoul(g_pcGameInput, 0, 0); + + // + // Try to process the recorded row and column numbers as a + // "move" for the current player. + // + if(ProcessTurn()) + { + // + // The user's input was successfully processed and added to + // the game state. Show the board with the new move + // applied. + // + ShowBoard(); + + // + // Check to see if this was a winning move. + // + if(CheckWinner()) + { + // + // If so, return a 1 to signal the end of the game. + // + return 1; + } + else + { + + // + // Otherwise, the game must go on. Check to see if we + // have a remote player. + // + if(g_ui32Mode != 1) + { + // + // We have a remote player, so toggle the bit to + // signal that the remote player should take their + // turn. + // + g_ui32BoardState ^= REMOTE_PLAYER; + } + + // + // Remember the board state, so we can tell when it + // gets changed. + // + g_ui32LastState = g_ui32BoardState; + + // + // Set the board state to sync with the server. + // + g_sBoardState.eReadWriteType = READ_WRITE; + + // + // Finally, set the game state for the next turn. + // + g_ui32GameState = PLAY_TURN; + } + } + else + { + // + // Something was wrong with the user's input. Try prompting + // them again. + // + UARTprintf("Enter Row: "); + g_ui32GameState = GET_ROW; + } + } + + break; + } + + case REMOTE_PLAY: + { + // + // If we are waiting on a remote player, check to see if the board + // state variable has changed. + // + if(g_ui32BoardState != g_ui32LastState) + { + // + // Set the board state to stop reading from the server. + // + g_sBoardState.eReadWriteType = WRITE_ONLY; + + // + // Record the new state, so we know that it has already been + // seen once. This is important to prevent an infinite loop if + // the server doesn't clear the "REMOTE_PLAYER" bit. + // + g_ui32LastState = g_ui32BoardState; + + // + // Make sure that the player variable is up-to-date. + // + g_ui32Player = (g_ui32BoardState & PLAYER_BIT) ? 1 : 0; + + // + // If the state has changed, assume that the remote player has + // made their move. + // + ShowBoard(); + + // + // Check to see if this was a winning move. + // + if(CheckWinner()) + { + // + // If so, return a 1 to signal the end of the game. + // + return 1; + } + else + { + // + // Otherwise, update the last valid state, advance to the + // next turn. + // + g_ui32GameState = PLAY_TURN; + } + } + + break; + } + } + + // + // The actions for the current state have been processed, and the game has + // not met an ending condition. Return a zero to indicate that the game is + // not yet finished. + // + return 0; +} + +//***************************************************************************** +// +// Clears the game state, and prepares the global variables to start a new game +// of tic-tac-toe +// +//***************************************************************************** +void +GameInit(void) +{ + // + // Set the global board state tStat variable to WRITE_ONLY, to make sure + // that it doesn't get overwritten by content from the server side. + // + g_sBoardState.eReadWriteType = WRITE_ONLY; + + // + // Empty the board, set the player value to zero (for 'X'), and set the + // main state machine to start a new game on the next call to + // AdvanceGameState(). + // + g_ui32BoardState = 0; + g_ui32Player = 0; + g_ui32GameState = NEW_GAME; +} + diff --git a/boards/ek-tm4c1294xl/qs_iot/tictactoe.h b/boards/ek-tm4c1294xl/qs_iot/tictactoe.h new file mode 100644 index 0000000..4e423b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/qs_iot/tictactoe.h @@ -0,0 +1,64 @@ +//***************************************************************************** +// +// tictactoe.h - Provides definitions and prototypes for tictactoe.c +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __TICTACTOE_H__ +#define __TICTACTOE_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// Global variables +// +//***************************************************************************** +extern uint32_t g_ui32BoardState; +extern tStat g_sBoardState; + +//***************************************************************************** +// +// Function prototypes +// +//***************************************************************************** +extern bool AdvanceGameState(void); +extern void GameInit(void); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __TICTACTOE_H__ diff --git a/boards/ek-tm4c1294xl/sleep_modes/Makefile b/boards/ek-tm4c1294xl/sleep_modes/Makefile new file mode 100644 index 0000000..ab57bb9 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/Makefile @@ -0,0 +1,88 @@ +#****************************************************************************** +# +# Makefile - Rules for building the Sleep Modes example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the Sleep Modes example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/sleep_modes.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the Sleep Modes example. +# +${COMPILER}/sleep_modes.axf: ${COMPILER}/buttons.o +${COMPILER}/sleep_modes.axf: ${COMPILER}/sleep_modes.o +${COMPILER}/sleep_modes.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/sleep_modes.axf: ${COMPILER}/uartstdio.o +${COMPILER}/sleep_modes.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/sleep_modes.axf: sleep_modes.ld +SCATTERgcc_sleep_modes=sleep_modes.ld +ENTRY_sleep_modes=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/sleep_modes/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/sleep_modes/ccs/.ccsimportspec new file mode 100644 index 0000000..47dfaf6 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/sleep_modes/ccs/.ccsproject b/boards/ek-tm4c1294xl/sleep_modes/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/sleep_modes/ccs/.cproject b/boards/ek-tm4c1294xl/sleep_modes/ccs/.cproject new file mode 100644 index 0000000..794c24f --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/ccs/.cproject @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/sleep_modes/ccs/.project b/boards/ek-tm4c1294xl/sleep_modes/ccs/.project new file mode 100644 index 0000000..ca530a6 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/ccs/.project @@ -0,0 +1,60 @@ + + + sleep_modes + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + sleep_modes.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.c + + + sleep_modes_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/sleep_modes/sleep_modes_ccs.cmd + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/sleep_modes/startup_ccs.c + + + drivers/buttons.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/buttons.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/sleep_modes/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/sleep_modes/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/sleep_modes/ccs/Debug/sleep_modes.bin b/boards/ek-tm4c1294xl/sleep_modes/ccs/Debug/sleep_modes.bin new file mode 100644 index 0000000..41c2a73 Binary files /dev/null and b/boards/ek-tm4c1294xl/sleep_modes/ccs/Debug/sleep_modes.bin differ diff --git a/boards/ek-tm4c1294xl/sleep_modes/ccs/Debug/sleep_modes.out b/boards/ek-tm4c1294xl/sleep_modes/ccs/Debug/sleep_modes.out new file mode 100644 index 0000000..f447ea1 Binary files /dev/null and b/boards/ek-tm4c1294xl/sleep_modes/ccs/Debug/sleep_modes.out differ diff --git a/boards/ek-tm4c1294xl/sleep_modes/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/sleep_modes/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/sleep_modes/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/sleep_modes/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/sleep_modes/ewarm/Exe/sleep_modes.bin b/boards/ek-tm4c1294xl/sleep_modes/ewarm/Exe/sleep_modes.bin new file mode 100644 index 0000000..df92517 Binary files /dev/null and b/boards/ek-tm4c1294xl/sleep_modes/ewarm/Exe/sleep_modes.bin differ diff --git a/boards/ek-tm4c1294xl/sleep_modes/ewarm/Exe/sleep_modes.out b/boards/ek-tm4c1294xl/sleep_modes/ewarm/Exe/sleep_modes.out new file mode 100644 index 0000000..860bd08 Binary files /dev/null and b/boards/ek-tm4c1294xl/sleep_modes/ewarm/Exe/sleep_modes.out differ diff --git a/boards/ek-tm4c1294xl/sleep_modes/gcc/sleep_modes.axf b/boards/ek-tm4c1294xl/sleep_modes/gcc/sleep_modes.axf new file mode 100644 index 0000000..c6571cd Binary files /dev/null and b/boards/ek-tm4c1294xl/sleep_modes/gcc/sleep_modes.axf differ diff --git a/boards/ek-tm4c1294xl/sleep_modes/gcc/sleep_modes.bin b/boards/ek-tm4c1294xl/sleep_modes/gcc/sleep_modes.bin new file mode 100644 index 0000000..4f1eba6 Binary files /dev/null and b/boards/ek-tm4c1294xl/sleep_modes/gcc/sleep_modes.bin differ diff --git a/boards/ek-tm4c1294xl/sleep_modes/readme.txt b/boards/ek-tm4c1294xl/sleep_modes/readme.txt new file mode 100644 index 0000000..6526409 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/readme.txt @@ -0,0 +1,40 @@ +Sleep Modes(sleep_modes) + +This example demonstrates the different power modes available on the Tiva +C Series devices. The user button (USR-SW1) is used to cycle through the +different power modes. +The SRAM, Flash, and LDO are all configured to a lower power setting for +the different modes. + +A timer is configured to toggle an LED in an ISR in both Run and Sleep +mode. +In Deep-Sleep the PWM is used to toggle the same LED in hardware. The three +remaining LEDs are used to indicate the current power mode. + + LED key in addition to the toggling LED: + 3 LEDs on - Run Mode + 2 LEDs on - Sleep Mode + 1 LED on - Deep-Sleep Mode + +UART0, connected to the Virtual Serial Port and running at 115,200, 8-N-1, +is used to display messages from this application. + +------------------------------------------------------------------------------- + +Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/sleep_modes/rvmdk/sleep_modes.axf b/boards/ek-tm4c1294xl/sleep_modes/rvmdk/sleep_modes.axf new file mode 100644 index 0000000..a1e3f3d Binary files /dev/null and b/boards/ek-tm4c1294xl/sleep_modes/rvmdk/sleep_modes.axf differ diff --git a/boards/ek-tm4c1294xl/sleep_modes/rvmdk/sleep_modes.bin b/boards/ek-tm4c1294xl/sleep_modes/rvmdk/sleep_modes.bin new file mode 100644 index 0000000..399ad32 Binary files /dev/null and b/boards/ek-tm4c1294xl/sleep_modes/rvmdk/sleep_modes.bin differ diff --git a/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.c b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.c new file mode 100644 index 0000000..6a67a0e --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.c @@ -0,0 +1,564 @@ +//***************************************************************************** +// +// sleep_modes.c - Sleep modes example. +// +// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +//***************************************************************************** + +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/fpu.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/pin_map.h" +#include "driverlib/pwm.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/timer.h" +#include "driverlib/uart.h" +#include "utils/uartstdio.h" +#include "drivers/buttons.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      Sleep Modes(sleep_modes)

      +//! +//! This example demonstrates the different power modes available on the Tiva +//! C Series devices. The user button (USR-SW1) is used to cycle through the +//! different power modes. +//! The SRAM, Flash, and LDO are all configured to a lower power setting for +//! the different modes. +//! +//! A timer is configured to toggle an LED in an ISR in both Run and Sleep +//! mode. +//! In Deep-Sleep the PWM is used to toggle the same LED in hardware. The three +//! remaining LEDs are used to indicate the current power mode. +//! +//! LED key in addition to the toggling LED: +//! 3 LEDs on - Run Mode +//! 2 LEDs on - Sleep Mode +//! 1 LED on - Deep-Sleep Mode +//! +//! UART0, connected to the Virtual Serial Port and running at 115,200, 8-N-1, +//! is used to display messages from this application. +// +//***************************************************************************** + +//**************************************************************************** +// +// Status LED defines. +// +//**************************************************************************** + +// +// PF4 +// +#define RUN_GPIO_SYSCTL SYSCTL_PERIPH_GPIOF +#define RUN_GPIO_BASE GPIO_PORTF_BASE +#define RUN_GPIO_PIN GPIO_PIN_4 + +// +// PN0 +// +#define SLEEP_GPIO_SYSCTL SYSCTL_PERIPH_GPION +#define SLEEP_GPIO_BASE GPIO_PORTN_BASE +#define SLEEP_GPIO_PIN GPIO_PIN_0 + +// +// PN1 +// +#define DSLEEP_GPIO_SYSCTL SYSCTL_PERIPH_GPION +#define DSLEEP_GPIO_BASE GPIO_PORTN_BASE +#define DSLEEP_GPIO_PIN GPIO_PIN_1 + +// +// PF0 +// +#define TOGGLE_GPIO_SYSCTL SYSCTL_PERIPH_GPIOF +#define TOGGLE_GPIO_BASE GPIO_PORTF_BASE +#define TOGGLE_GPIO_PIN GPIO_PIN_0 + +//**************************************************************************** +// +// System clock rate in Hz. +// +//**************************************************************************** +uint32_t g_ui32SysClock; + +//**************************************************************************** +// +// Global to track power state: +// 0 - Run Mode +// 1 - Sleep Mode +// 2 - Deep-Sleep Mode +// +//**************************************************************************** +volatile uint32_t g_ui32SleepMode = 0; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// Configure the UART and its pins. This must be called before UARTprintf(). +// +//***************************************************************************** +void +ConfigureUART(void) +{ + // + // Enable the GPIO Peripheral used by the UART. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + + // + // Enable UART0. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + + // + // Configure GPIO Pins for UART mode. + // + ROM_GPIOPinConfigure(GPIO_PA0_U0RX); + ROM_GPIOPinConfigure(GPIO_PA1_U0TX); + ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); +} + +//***************************************************************************** +// +// The function for setting the state of the LEDs for indicating the current +// power mode. +// +//***************************************************************************** +void +PowerLEDsSet(void) +{ + switch (g_ui32SleepMode) + { + case 0: + + // + // Turn on LED(s) to indicate we are in Run Mode. + // + ROM_GPIOPinWrite(RUN_GPIO_BASE, RUN_GPIO_PIN, RUN_GPIO_PIN); + ROM_GPIOPinWrite(SLEEP_GPIO_BASE, SLEEP_GPIO_PIN, SLEEP_GPIO_PIN); + ROM_GPIOPinWrite(DSLEEP_GPIO_BASE, DSLEEP_GPIO_PIN, + DSLEEP_GPIO_PIN); + + break; + + case 1: + + // + // Turn on LED(s) to indicate we are in Sleep Mode. + // + ROM_GPIOPinWrite(RUN_GPIO_BASE, RUN_GPIO_PIN, ~RUN_GPIO_PIN); + ROM_GPIOPinWrite(SLEEP_GPIO_BASE, SLEEP_GPIO_PIN, SLEEP_GPIO_PIN); + ROM_GPIOPinWrite(DSLEEP_GPIO_BASE, DSLEEP_GPIO_PIN, + DSLEEP_GPIO_PIN); + + break; + + case 2: + + // + // Turn on LED(s) to indicate we are in Deep-Sleep Mode. + // + ROM_GPIOPinWrite(RUN_GPIO_BASE, RUN_GPIO_PIN, ~RUN_GPIO_PIN); + ROM_GPIOPinWrite(SLEEP_GPIO_BASE, SLEEP_GPIO_PIN, ~SLEEP_GPIO_PIN); + ROM_GPIOPinWrite(DSLEEP_GPIO_BASE, DSLEEP_GPIO_PIN, + DSLEEP_GPIO_PIN); + + break; + + default: + break; + } +} + +//***************************************************************************** +// +// The interrupt handler for the button interrupt. +// +//***************************************************************************** +void +ButtonIntHandler(void) +{ + // + // Delay here on button push for simple debouncing. + // + SysCtlDelay(g_ui32SysClock / 10); + + // + // Clear the timer interrupt. + // + ROM_GPIOIntClear(GPIO_PORTJ_AHB_BASE, GPIO_INT_PIN_0); + + // + // Increment Mode. + // + g_ui32SleepMode = (g_ui32SleepMode + 1) % 3; + + switch (g_ui32SleepMode) + { + // + // Enter Run Mode. + // + case 0: + + // + // Disable the PWM. + // + ROM_PWMGenDisable(PWM0_BASE, PWM_GEN_0); + + // + // Configure Toggle LED as a GPIO output. + // + ROM_GPIOPinTypeGPIOOutput(TOGGLE_GPIO_BASE, TOGGLE_GPIO_PIN); + + // + // Enable the timer. + // + ROM_TimerEnable(TIMER0_BASE, TIMER_A); + + // + // Print mode over the UART. + // + UARTprintf("\033[100D"); + UARTprintf("\033[K"); + UARTprintf("Run\t\tMOSC with PLL\tTimer"); + SysCtlDelay(10000); + break; + + // + // Enter Sleep Mode. + // + case 1: + + // + // Print mode over the UART. + // Delay to let the UART finish before going to Sleep. + // + UARTprintf("\033[100D"); + UARTprintf("\033[K"); + UARTprintf("Sleep\t\tPIOSC\t\tTimer"); + SysCtlDelay(10000); + + // + // Switch clock to PIOSC and power down the MOSC before going into + // Sleep. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_OSC_INT | + SYSCTL_USE_OSC | + SYSCTL_MAIN_OSC_DIS), + 16000000); + + break; + + // + // Enter Deep-Sleep Mode. + // + case 2: + + // + // Switch back to the MOSC + PLL. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_320), + 16000000); + + // + // Disable the timer. + // + ROM_TimerDisable(TIMER0_BASE, TIMER_A); + + // + // Configure the toggle pin as a PWM pin. + // + ROM_GPIOPinConfigure(GPIO_PF0_M0PWM0); + ROM_GPIOPinTypePWM(TOGGLE_GPIO_BASE, TOGGLE_GPIO_PIN); + + // + // Enable the PWM. + // + ROM_PWMGenEnable(PWM0_BASE, PWM_GEN_0); + + // + // Print mode over the UART. + // Delay to let the UART finish before going to Sleep. + // + UARTprintf("\033[100D"); + UARTprintf("\033[K"); + UARTprintf("Deep-Sleep\tLFIOSC\t\tPWM"); + SysCtlDelay(10000); + break; + + default: + break; + } + + // + // Set LEDs to show what mode we are in. + // + PowerLEDsSet(); +} + + +//***************************************************************************** +// +// The interrupt handler for the timer interrupt. +// +//***************************************************************************** +void +Timer0IntHandler(void) +{ + // + // Clear the timer interrupt. + // + ROM_TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT); + + // + // Toggle the LED. + // + ROM_GPIOPinWrite(TOGGLE_GPIO_BASE, TOGGLE_GPIO_PIN, + (ROM_GPIOPinRead(TOGGLE_GPIO_BASE, TOGGLE_GPIO_PIN) ^ + TOGGLE_GPIO_PIN)); +} + +//***************************************************************************** +// +// This example application demonstrates the use of the different sleep modes +// and different power configuration options. +// +//***************************************************************************** +int +main(void) +{ + // + // Set the clocking to run from the MOSC with the PLL at 16MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_320), 16000000); + + + // + // Set the clocking for Deep-Sleep. + // Power down the PIOSC & MOSC to save power and run from the + // internal 30kHz osc. + // + ROM_SysCtlDeepSleepClockConfigSet(1, (SYSCTL_DSLP_OSC_INT30 | + SYSCTL_DSLP_PIOSC_PD | SYSCTL_DSLP_MOSC_PD)); + + // + // Initialize the UART and write the banner. + // Indicate we are currently in Run Mode. + // + ConfigureUART(); + UARTprintf("\033[2J\033[H"); + UARTprintf("Sleep Modes example\n\n"); + UARTprintf("Mode:\t\tClock Source:\tLED Toggle Source:"); + UARTprintf("\nRun\t\tMOSC with PLL\tTimer"); + + // + // Initialize the buttons driver. + // + ButtonsInit(); + + // + // Enable the interrupt for the button. + // + ROM_GPIOIntEnable(GPIO_PORTJ_AHB_BASE, GPIO_INT_PIN_0); + + // + // Enable the GPIO ports that are used for the on-board LEDs. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); + + // + // Set pad config. + // + MAP_GPIOPadConfigSet(GPIO_PORTJ_BASE, GPIO_PIN_0, + GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); + + // + // Set direction. + // + ROM_GPIODirModeSet(GPIO_PORTJ_BASE, GPIO_PIN_0, GPIO_DIR_MODE_IN); + + // + // Enable the interrupt for the button. + // + ROM_GPIOIntEnable(GPIO_PORTJ_BASE, GPIO_INT_PIN_0); + + // + // Enable interrupt to NVIC. + // + ROM_IntEnable(INT_GPIOJ); + + // + // Enable the GPIO ports that are used for the on-board LEDs. + // + ROM_SysCtlPeripheralEnable(RUN_GPIO_SYSCTL); + ROM_SysCtlPeripheralEnable(SLEEP_GPIO_SYSCTL); + ROM_SysCtlPeripheralEnable(DSLEEP_GPIO_SYSCTL); + ROM_SysCtlPeripheralEnable(TOGGLE_GPIO_SYSCTL); + + // + // Enable the GPIO pins for the LED. + // + ROM_GPIOPinTypeGPIOOutput(RUN_GPIO_BASE, RUN_GPIO_PIN); + ROM_GPIOPinTypeGPIOOutput(SLEEP_GPIO_BASE, SLEEP_GPIO_PIN); + ROM_GPIOPinTypeGPIOOutput(DSLEEP_GPIO_BASE, DSLEEP_GPIO_PIN); + ROM_GPIOPinTypeGPIOOutput(TOGGLE_GPIO_BASE, TOGGLE_GPIO_PIN); + + // + // Enable the peripherals used by this example. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0); + + // + // Enable processor interrupts. + // + ROM_IntMasterEnable(); + + // + // Configure the 32-bit periodic timer. + // + ROM_TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC); + ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, g_ui32SysClock); + + // + // Setup the interrupts for the timer timeout. + // + ROM_IntEnable(INT_TIMER0A); + ROM_TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT); + + // + // Configure the PWM0 to count down without synchronization. + // This will be used in Deep-Sleep. + // + ROM_PWMGenConfigure(PWM0_BASE, PWM_GEN_0, + PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC); + + // + // Enable the PWM0 output signal. + // + ROM_PWMOutputState(PWM0_BASE, PWM_OUT_0_BIT, true); + + // + // Set up the period to match the timer. + // + ROM_PWMGenPeriodSet(PWM0_BASE, PWM_GEN_0, 65000); + + // + // Configure the PWM for a 50% duty cycle. + // + ROM_PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0, 65000 >> 1); + + // + // Enable the timer. + // + ROM_TimerEnable(TIMER0_BASE, TIMER_A); + + // + // Enable the Timer in Sleep Mode. + // + ROM_SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_TIMER0); + + // + // Enable the PWM in Deep-Sleep Mode. + // + ROM_SysCtlPeripheralDeepSleepEnable(SYSCTL_PERIPH_PWM0); + + // + // Enable the Button Port in Sleep & Deep-Sleep Mode. + // + ROM_SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_GPIOJ); + ROM_SysCtlPeripheralDeepSleepEnable(SYSCTL_PERIPH_GPIOJ); + + // + // Enable the LED Ports in Sleep & Deep-Sleep Mode. + // + ROM_SysCtlPeripheralSleepEnable(SLEEP_GPIO_SYSCTL); + ROM_SysCtlPeripheralDeepSleepEnable(DSLEEP_GPIO_SYSCTL); + ROM_SysCtlPeripheralSleepEnable(TOGGLE_GPIO_SYSCTL); + ROM_SysCtlPeripheralDeepSleepEnable(TOGGLE_GPIO_SYSCTL); + + // + // Enable Auto Clock Gating Control. + // + ROM_SysCtlPeripheralClockGating(true); + + // + // Set LDO to 1.15V in Sleep. + // Set LDO to 1.10V in Deep-Sleep. + // + SysCtlLDOSleepSet(SYSCTL_LDO_1_15V); + SysCtlLDODeepSleepSet(SYSCTL_LDO_1_10V); + + // + // Set SRAM to Standby when in Sleep Mode. + // Set Flash & SRAM to Low Power in Deep-Sleep Mode. + // + SysCtlSleepPowerSet(SYSCTL_SRAM_STANDBY); + SysCtlDeepSleepPowerSet(SYSCTL_FLASH_LOW_POWER | SYSCTL_SRAM_LOW_POWER); + + // + // Call to set initial LED power state. + // + PowerLEDsSet(); + + // + // Loop forever. + // + while(1) + { + // + // Handle going into the different sleep modes outside of + // interrupt context. + // + if (g_ui32SleepMode == 1) + { + // + // Go into Sleep Mode. + // + ROM_SysCtlSleep(); + } + else if (g_ui32SleepMode == 2) + { + // + // Go into Deep-Sleep Mode. + // + ROM_SysCtlDeepSleep(); + } + } +} + diff --git a/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ewd b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ewp b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ewp new file mode 100644 index 0000000..190a6ae --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ewp @@ -0,0 +1,792 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\..\drivers\buttons.c + + + $PROJ_DIR$\sleep_modes.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + diff --git a/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.icf b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.icf new file mode 100644 index 0000000..cf24b7b --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// sleep_modes.icf - Linker configuration file for sleep_modes. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ld b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ld new file mode 100644 index 0000000..f1eafca --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * sleep_modes.ld - Linker configuration file for sleep_modes. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.sct b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.sct new file mode 100644 index 0000000..7ba7a07 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; sleep_modes.sct - Linker configuration file for sleep_modes. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.uvopt b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.uvopt new file mode 100644 index 0000000..4ec7fef --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.uvopt @@ -0,0 +1,317 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + sleep_modes + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S3 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\buttons.c + buttons.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\sleep_modes.c + sleep_modes.c + + + 1 + 3 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 5 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 6 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.uvproj b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.uvproj new file mode 100644 index 0000000..8511d16 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes.uvproj @@ -0,0 +1,434 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + sleep_modes + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + sleep_modes + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\sleep_modes.bin .\rvmdk\sleep_modes.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + sleep_modes.sct + + + --entry Reset_Handler + + + + + + + + Source + + + buttons.c + 1 + ..\drivers\buttons.c + + + sleep_modes.c + 1 + .\sleep_modes.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/sleep_modes/sleep_modes_ccs.cmd b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes_ccs.cmd new file mode 100644 index 0000000..9109378 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/sleep_modes_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * sleep_modes_ccs.cmd - CCS linker configuration file for sleep_modes. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 512; diff --git a/boards/ek-tm4c1294xl/sleep_modes/startup_ccs.c b/boards/ek-tm4c1294xl/sleep_modes/startup_ccs.c new file mode 100644 index 0000000..cb4d19a --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/startup_ccs.c @@ -0,0 +1,276 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void ButtonIntHandler(void); +extern void Timer0IntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + Timer0IntHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + ButtonIntHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/sleep_modes/startup_ewarm.c b/boards/ek-tm4c1294xl/sleep_modes/startup_ewarm.c new file mode 100644 index 0000000..ab8854e --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/startup_ewarm.c @@ -0,0 +1,307 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void ButtonIntHandler(void); +extern void Timer0IntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + Timer0IntHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + ButtonIntHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/sleep_modes/startup_gcc.c b/boards/ek-tm4c1294xl/sleep_modes/startup_gcc.c new file mode 100644 index 0000000..0e4d543 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/startup_gcc.c @@ -0,0 +1,323 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void ButtonIntHandler(void); +extern void Timer0IntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + Timer0IntHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + ButtonIntHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/sleep_modes/startup_rvmdk.S b/boards/ek-tm4c1294xl/sleep_modes/startup_rvmdk.S new file mode 100644 index 0000000..7df9764 --- /dev/null +++ b/boards/ek-tm4c1294xl/sleep_modes/startup_rvmdk.S @@ -0,0 +1,332 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000200 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN ButtonIntHandler + EXTERN Timer0IntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD Timer0IntHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD ButtonIntHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/timers/Makefile b/boards/ek-tm4c1294xl/timers/Makefile new file mode 100644 index 0000000..fb52590 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/Makefile @@ -0,0 +1,85 @@ +#****************************************************************************** +# +# Makefile - Rules for building the timers example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=../../../.. + +# +# The default rule, which causes the timers example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/timers.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the timers example. +# +${COMPILER}/timers.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/timers.axf: ${COMPILER}/timers.o +${COMPILER}/timers.axf: ${COMPILER}/uartstdio.o +${COMPILER}/timers.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/timers.axf: timers.ld +SCATTERgcc_timers=timers.ld +ENTRY_timers=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/timers/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/timers/ccs/.ccsimportspec new file mode 100644 index 0000000..e61983c --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/timers/ccs/.ccsproject b/boards/ek-tm4c1294xl/timers/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/timers/ccs/.cproject b/boards/ek-tm4c1294xl/timers/ccs/.cproject new file mode 100644 index 0000000..edd22df --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/ccs/.cproject @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/timers/ccs/.project b/boards/ek-tm4c1294xl/timers/ccs/.project new file mode 100644 index 0000000..52cca00 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/ccs/.project @@ -0,0 +1,55 @@ + + + timers + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/timers/startup_ccs.c + + + timers.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/timers/timers.c + + + timers_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/timers/timers_ccs.cmd + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/timers/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/timers/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/timers/ccs/Debug/timers.bin b/boards/ek-tm4c1294xl/timers/ccs/Debug/timers.bin new file mode 100644 index 0000000..3fa2866 Binary files /dev/null and b/boards/ek-tm4c1294xl/timers/ccs/Debug/timers.bin differ diff --git a/boards/ek-tm4c1294xl/timers/ccs/Debug/timers.out b/boards/ek-tm4c1294xl/timers/ccs/Debug/timers.out new file mode 100644 index 0000000..92398e2 Binary files /dev/null and b/boards/ek-tm4c1294xl/timers/ccs/Debug/timers.out differ diff --git a/boards/ek-tm4c1294xl/timers/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/timers/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/timers/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/timers/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/timers/ewarm/Exe/timers.bin b/boards/ek-tm4c1294xl/timers/ewarm/Exe/timers.bin new file mode 100644 index 0000000..a2fde6f Binary files /dev/null and b/boards/ek-tm4c1294xl/timers/ewarm/Exe/timers.bin differ diff --git a/boards/ek-tm4c1294xl/timers/ewarm/Exe/timers.out b/boards/ek-tm4c1294xl/timers/ewarm/Exe/timers.out new file mode 100644 index 0000000..1545e4b Binary files /dev/null and b/boards/ek-tm4c1294xl/timers/ewarm/Exe/timers.out differ diff --git a/boards/ek-tm4c1294xl/timers/gcc/timers.axf b/boards/ek-tm4c1294xl/timers/gcc/timers.axf new file mode 100644 index 0000000..a730af4 Binary files /dev/null and b/boards/ek-tm4c1294xl/timers/gcc/timers.axf differ diff --git a/boards/ek-tm4c1294xl/timers/gcc/timers.bin b/boards/ek-tm4c1294xl/timers/gcc/timers.bin new file mode 100644 index 0000000..c255c43 Binary files /dev/null and b/boards/ek-tm4c1294xl/timers/gcc/timers.bin differ diff --git a/boards/ek-tm4c1294xl/timers/readme.txt b/boards/ek-tm4c1294xl/timers/readme.txt new file mode 100644 index 0000000..361af74 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/readme.txt @@ -0,0 +1,29 @@ +Timer + +This example application demonstrates the use of the timers to generate +periodic interrupts. One timer is set up to interrupt once per second and +the other to interrupt twice per second; each interrupt handler will toggle +its own indicator throught the UART. + +UART0, connected to the Virtual Serial Port and running at 115,200, 8-N-1, +is used to display messages from this application. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/timers/rvmdk/timers.axf b/boards/ek-tm4c1294xl/timers/rvmdk/timers.axf new file mode 100644 index 0000000..1d1ef6a Binary files /dev/null and b/boards/ek-tm4c1294xl/timers/rvmdk/timers.axf differ diff --git a/boards/ek-tm4c1294xl/timers/rvmdk/timers.bin b/boards/ek-tm4c1294xl/timers/rvmdk/timers.bin new file mode 100644 index 0000000..6203bf8 Binary files /dev/null and b/boards/ek-tm4c1294xl/timers/rvmdk/timers.bin differ diff --git a/boards/ek-tm4c1294xl/timers/startup_ccs.c b/boards/ek-tm4c1294xl/timers/startup_ccs.c new file mode 100644 index 0000000..45a911b --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/startup_ccs.c @@ -0,0 +1,276 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void Timer0IntHandler(void); +extern void Timer1IntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + Timer0IntHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + Timer1IntHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/timers/startup_ewarm.c b/boards/ek-tm4c1294xl/timers/startup_ewarm.c new file mode 100644 index 0000000..7e1c7a9 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/startup_ewarm.c @@ -0,0 +1,307 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void Timer0IntHandler(void); +extern void Timer1IntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[64] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + Timer0IntHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + Timer1IntHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/timers/startup_gcc.c b/boards/ek-tm4c1294xl/timers/startup_gcc.c new file mode 100644 index 0000000..a457d4f --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/startup_gcc.c @@ -0,0 +1,323 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void Timer0IntHandler(void); +extern void Timer1IntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[64]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + Timer0IntHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + Timer1IntHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/timers/startup_rvmdk.S b/boards/ek-tm4c1294xl/timers/startup_rvmdk.S new file mode 100644 index 0000000..7886d01 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/startup_rvmdk.S @@ -0,0 +1,332 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000100 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN Timer0IntHandler + EXTERN Timer1IntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD Timer0IntHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD Timer1IntHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/timers/timers.c b/boards/ek-tm4c1294xl/timers/timers.c new file mode 100644 index 0000000..cb6c56c --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/timers.c @@ -0,0 +1,260 @@ +//***************************************************************************** +// +// timers.c - Timers example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/fpu.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/timer.h" +#include "driverlib/uart.h" +#include "utils/uartstdio.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      Timer (timers)

      +//! +//! This example application demonstrates the use of the timers to generate +//! periodic interrupts. One timer is set up to interrupt once per second and +//! the other to interrupt twice per second; each interrupt handler will toggle +//! its own indicator throught the UART. +//! +//! UART0, connected to the Virtual Serial Port and running at 115,200, 8-N-1, +//! is used to display messages from this application. +// +//***************************************************************************** + +//**************************************************************************** +// +// System clock rate in Hz. +// +//**************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// Flags that contain the current value of the interrupt indicator as displayed +// on the UART. +// +//***************************************************************************** +uint32_t g_ui32Flags; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// The interrupt handler for the first timer interrupt. +// +//***************************************************************************** +void +Timer0IntHandler(void) +{ + char cOne, cTwo; + + // + // Clear the timer interrupt. + // + ROM_TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT); + + // + // Toggle the flag for the first timer. + // + HWREGBITW(&g_ui32Flags, 0) ^= 1; + + // + // Use the flags to Toggle the LED for this timer + // + GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, g_ui32Flags); + + // + // Update the interrupt status. + // + ROM_IntMasterDisable(); + cOne = HWREGBITW(&g_ui32Flags, 0) ? '1' : '0'; + cTwo = HWREGBITW(&g_ui32Flags, 1) ? '1' : '0'; + UARTprintf("\rT1: %c T2: %c", cOne, cTwo); + ROM_IntMasterEnable(); +} + +//***************************************************************************** +// +// The interrupt handler for the second timer interrupt. +// +//***************************************************************************** +void +Timer1IntHandler(void) +{ + char cOne, cTwo; + + // + // Clear the timer interrupt. + // + ROM_TimerIntClear(TIMER1_BASE, TIMER_TIMA_TIMEOUT); + + // + // Toggle the flag for the second timer. + // + HWREGBITW(&g_ui32Flags, 1) ^= 1; + + // + // Use the flags to Toggle the LED for this timer + // + GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, g_ui32Flags); + + // + // Update the interrupt status. + // + ROM_IntMasterDisable(); + cOne = HWREGBITW(&g_ui32Flags, 0) ? '1' : '0'; + cTwo = HWREGBITW(&g_ui32Flags, 1) ? '1' : '0'; + UARTprintf("\rT1: %c T2: %c", cOne, cTwo); + ROM_IntMasterEnable(); +} + +//***************************************************************************** +// +// Configure the UART and its pins. This must be called before UARTprintf(). +// +//***************************************************************************** +void +ConfigureUART(void) +{ + // + // Enable the GPIO Peripheral used by the UART. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + + // + // Enable UART0. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + + // + // Configure GPIO Pins for UART mode. + // + ROM_GPIOPinConfigure(GPIO_PA0_U0RX); + ROM_GPIOPinConfigure(GPIO_PA1_U0TX); + ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); +} + +//***************************************************************************** +// +// This example application demonstrates the use of the timers to generate +// periodic interrupts. +// +//***************************************************************************** +int +main(void) +{ + // + // Set the clocking to run directly from the crystal at 120MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Initialize the UART and write status. + // + ConfigureUART(); + + UARTprintf("\033[2JTimers example\n"); + UARTprintf("T1: 0 T2: 0"); + + // + // Enable the GPIO port that is used for the on-board LEDs. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION); + + // + // Enable the GPIO pins for the LEDs (PN0 & PN1). + // + ROM_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + + // + // Enable the peripherals used by this example. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1); + + // + // Enable processor interrupts. + // + ROM_IntMasterEnable(); + + // + // Configure the two 32-bit periodic timers. + // + ROM_TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC); + ROM_TimerConfigure(TIMER1_BASE, TIMER_CFG_PERIODIC); + ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, g_ui32SysClock); + ROM_TimerLoadSet(TIMER1_BASE, TIMER_A, g_ui32SysClock / 2); + + // + // Setup the interrupts for the timer timeouts. + // + ROM_IntEnable(INT_TIMER0A); + ROM_IntEnable(INT_TIMER1A); + ROM_TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT); + ROM_TimerIntEnable(TIMER1_BASE, TIMER_TIMA_TIMEOUT); + + // + // Enable the timers. + // + ROM_TimerEnable(TIMER0_BASE, TIMER_A); + ROM_TimerEnable(TIMER1_BASE, TIMER_A); + + // + // Loop forever while the timers run. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/timers/timers.ewd b/boards/ek-tm4c1294xl/timers/timers.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/timers.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/timers/timers.ewp b/boards/ek-tm4c1294xl/timers/timers.ewp new file mode 100644 index 0000000..47bc8dd --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/timers.ewp @@ -0,0 +1,787 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\timers.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + diff --git a/boards/ek-tm4c1294xl/timers/timers.icf b/boards/ek-tm4c1294xl/timers/timers.icf new file mode 100644 index 0000000..d7ab3f8 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/timers.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// timers.icf - Linker configuration file for timers. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/timers/timers.ld b/boards/ek-tm4c1294xl/timers/timers.ld new file mode 100644 index 0000000..bbf361c --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/timers.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * timers.ld - Linker configuration file for timers. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/timers/timers.sct b/boards/ek-tm4c1294xl/timers/timers.sct new file mode 100644 index 0000000..6158e85 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/timers.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; timers.sct - Linker configuration file for timers. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/timers/timers.uvopt b/boards/ek-tm4c1294xl/timers/timers.uvopt new file mode 100644 index 0000000..6ad6577 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/timers.uvopt @@ -0,0 +1,303 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + timers + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S3 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\timers.c + timers.c + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 5 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/timers/timers.uvproj b/boards/ek-tm4c1294xl/timers/timers.uvproj new file mode 100644 index 0000000..7e72d1f --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/timers.uvproj @@ -0,0 +1,429 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + timers + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + timers + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\timers.bin .\rvmdk\timers.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + timers.sct + + + --entry Reset_Handler + + + + + + + + Source + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + timers.c + 1 + .\timers.c + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/timers/timers_ccs.cmd b/boards/ek-tm4c1294xl/timers/timers_ccs.cmd new file mode 100644 index 0000000..68b5591 --- /dev/null +++ b/boards/ek-tm4c1294xl/timers/timers_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * timers_ccs.cmd - CCS linker configuration file for timers. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 256; diff --git a/boards/ek-tm4c1294xl/uart_echo/Makefile b/boards/ek-tm4c1294xl/uart_echo/Makefile new file mode 100644 index 0000000..621b7cf --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/Makefile @@ -0,0 +1,79 @@ +#****************************************************************************** +# +# Makefile - Rules for building the uart_echo example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find header files that do not live in the source directory. +# +IPATH=../../../.. + +# +# The default rule, which causes the uart_echo example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/uart_echo.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the uart_echo example. +# +${COMPILER}/uart_echo.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/uart_echo.axf: ${COMPILER}/uart_echo.o +${COMPILER}/uart_echo.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/uart_echo.axf: uart_echo.ld +SCATTERgcc_uart_echo=uart_echo.ld +ENTRY_uart_echo=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/uart_echo/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/uart_echo/ccs/.ccsimportspec new file mode 100644 index 0000000..9a02fa9 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/uart_echo/ccs/.ccsproject b/boards/ek-tm4c1294xl/uart_echo/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/uart_echo/ccs/.cproject b/boards/ek-tm4c1294xl/uart_echo/ccs/.cproject new file mode 100644 index 0000000..388f133 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/ccs/.cproject @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/uart_echo/ccs/.project b/boards/ek-tm4c1294xl/uart_echo/ccs/.project new file mode 100644 index 0000000..5ffc44d --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/ccs/.project @@ -0,0 +1,50 @@ + + + uart_echo + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/uart_echo/startup_ccs.c + + + uart_echo.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/uart_echo/uart_echo.c + + + uart_echo_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/uart_echo/uart_echo_ccs.cmd + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/uart_echo/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/uart_echo/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/uart_echo/ccs/Debug/uart_echo.bin b/boards/ek-tm4c1294xl/uart_echo/ccs/Debug/uart_echo.bin new file mode 100644 index 0000000..64782bd Binary files /dev/null and b/boards/ek-tm4c1294xl/uart_echo/ccs/Debug/uart_echo.bin differ diff --git a/boards/ek-tm4c1294xl/uart_echo/ccs/Debug/uart_echo.out b/boards/ek-tm4c1294xl/uart_echo/ccs/Debug/uart_echo.out new file mode 100644 index 0000000..1076429 Binary files /dev/null and b/boards/ek-tm4c1294xl/uart_echo/ccs/Debug/uart_echo.out differ diff --git a/boards/ek-tm4c1294xl/uart_echo/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/uart_echo/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/uart_echo/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/uart_echo/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/uart_echo/ewarm/Exe/uart_echo.bin b/boards/ek-tm4c1294xl/uart_echo/ewarm/Exe/uart_echo.bin new file mode 100644 index 0000000..ed539f2 Binary files /dev/null and b/boards/ek-tm4c1294xl/uart_echo/ewarm/Exe/uart_echo.bin differ diff --git a/boards/ek-tm4c1294xl/uart_echo/ewarm/Exe/uart_echo.out b/boards/ek-tm4c1294xl/uart_echo/ewarm/Exe/uart_echo.out new file mode 100644 index 0000000..9c89368 Binary files /dev/null and b/boards/ek-tm4c1294xl/uart_echo/ewarm/Exe/uart_echo.out differ diff --git a/boards/ek-tm4c1294xl/uart_echo/gcc/uart_echo.axf b/boards/ek-tm4c1294xl/uart_echo/gcc/uart_echo.axf new file mode 100644 index 0000000..2171d71 Binary files /dev/null and b/boards/ek-tm4c1294xl/uart_echo/gcc/uart_echo.axf differ diff --git a/boards/ek-tm4c1294xl/uart_echo/gcc/uart_echo.bin b/boards/ek-tm4c1294xl/uart_echo/gcc/uart_echo.bin new file mode 100644 index 0000000..96b15df Binary files /dev/null and b/boards/ek-tm4c1294xl/uart_echo/gcc/uart_echo.bin differ diff --git a/boards/ek-tm4c1294xl/uart_echo/readme.txt b/boards/ek-tm4c1294xl/uart_echo/readme.txt new file mode 100644 index 0000000..19c14ef --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/readme.txt @@ -0,0 +1,26 @@ +UART Echo + +This example application utilizes the UART to echo text. The first UART +(connected to the USB debug virtual serial port on the evaluation board) +will be configured in 115,200 baud, 8-n-1 mode. All characters received on +the UART are transmitted back to the UART. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/uart_echo/rvmdk/uart_echo.axf b/boards/ek-tm4c1294xl/uart_echo/rvmdk/uart_echo.axf new file mode 100644 index 0000000..7b81ff5 Binary files /dev/null and b/boards/ek-tm4c1294xl/uart_echo/rvmdk/uart_echo.axf differ diff --git a/boards/ek-tm4c1294xl/uart_echo/rvmdk/uart_echo.bin b/boards/ek-tm4c1294xl/uart_echo/rvmdk/uart_echo.bin new file mode 100644 index 0000000..70f914d Binary files /dev/null and b/boards/ek-tm4c1294xl/uart_echo/rvmdk/uart_echo.bin differ diff --git a/boards/ek-tm4c1294xl/uart_echo/startup_ccs.c b/boards/ek-tm4c1294xl/uart_echo/startup_ccs.c new file mode 100644 index 0000000..cbb3ee9 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/startup_ccs.c @@ -0,0 +1,275 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void UARTIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/uart_echo/startup_ewarm.c b/boards/ek-tm4c1294xl/uart_echo/startup_ewarm.c new file mode 100644 index 0000000..5e35e7b --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/startup_ewarm.c @@ -0,0 +1,306 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void UARTIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[64] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/uart_echo/startup_gcc.c b/boards/ek-tm4c1294xl/uart_echo/startup_gcc.c new file mode 100644 index 0000000..b06d0a0 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/startup_gcc.c @@ -0,0 +1,322 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void UARTIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[64]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/uart_echo/startup_rvmdk.S b/boards/ek-tm4c1294xl/uart_echo/startup_rvmdk.S new file mode 100644 index 0000000..4c7f16d --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/startup_rvmdk.S @@ -0,0 +1,331 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000100 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declaration for the interrupt handler used by the application. +; +;****************************************************************************** + EXTERN UARTIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD UARTIntHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/uart_echo/uart_echo.c b/boards/ek-tm4c1294xl/uart_echo/uart_echo.c new file mode 100644 index 0000000..406429c --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/uart_echo.c @@ -0,0 +1,205 @@ +//***************************************************************************** +// +// uart_echo.c - Example for reading data from and writing data to the UART in +// an interrupt driven fashion. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "driverlib/debug.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/uart.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      UART Echo (uart_echo)

      +//! +//! This example application utilizes the UART to echo text. The first UART +//! (connected to the USB debug virtual serial port on the evaluation board) +//! will be configured in 115,200 baud, 8-n-1 mode. All characters received on +//! the UART are transmitted back to the UART. +// +//***************************************************************************** + +//**************************************************************************** +// +// System clock rate in Hz. +// +//**************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// The UART interrupt handler. +// +//***************************************************************************** +void +UARTIntHandler(void) +{ + uint32_t ui32Status; + + // + // Get the interrrupt status. + // + ui32Status = ROM_UARTIntStatus(UART0_BASE, true); + + // + // Clear the asserted interrupts. + // + ROM_UARTIntClear(UART0_BASE, ui32Status); + + // + // Loop while there are characters in the receive FIFO. + // + while(ROM_UARTCharsAvail(UART0_BASE)) + { + // + // Read the next character from the UART and write it back to the UART. + // + ROM_UARTCharPutNonBlocking(UART0_BASE, + ROM_UARTCharGetNonBlocking(UART0_BASE)); + + // + // Blink the LED to show a character transfer is occuring. + // + GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, GPIO_PIN_0); + + // + // Delay for 1 millisecond. Each SysCtlDelay is about 3 clocks. + // + SysCtlDelay(g_ui32SysClock / (1000 * 3)); + + // + // Turn off the LED + // + GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0); + } +} + +//***************************************************************************** +// +// Send a string to the UART. +// +//***************************************************************************** +void +UARTSend(const uint8_t *pui8Buffer, uint32_t ui32Count) +{ + // + // Loop while there are more characters to send. + // + while(ui32Count--) + { + // + // Write the next character to the UART. + // + ROM_UARTCharPutNonBlocking(UART0_BASE, *pui8Buffer++); + } +} + +//***************************************************************************** +// +// This example demonstrates how to send a string of data to the UART. +// +//***************************************************************************** +int +main(void) +{ + // + // Set the clocking to run directly from the crystal at 120MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + // + // Enable the GPIO port that is used for the on-board LED. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION); + + // + // Enable the GPIO pins for the LED (PN0). + // + ROM_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0); + + // + // Enable the peripherals used by this example. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + + // + // Enable processor interrupts. + // + ROM_IntMasterEnable(); + + // + // Set GPIO A0 and A1 as UART pins. + // + GPIOPinConfigure(GPIO_PA0_U0RX); + GPIOPinConfigure(GPIO_PA1_U0TX); + ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // Configure the UART for 115,200, 8-N-1 operation. + // + ROM_UARTConfigSetExpClk(UART0_BASE, g_ui32SysClock, 115200, + (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | + UART_CONFIG_PAR_NONE)); + + // + // Enable the UART interrupt. + // + ROM_IntEnable(INT_UART0); + ROM_UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT); + + // + // Prompt for text to be entered. + // + UARTSend((uint8_t *)"\033[2JEnter text: ", 16); + + // + // Loop forever echoing data through the UART. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/uart_echo/uart_echo.ewd b/boards/ek-tm4c1294xl/uart_echo/uart_echo.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/uart_echo.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/uart_echo/uart_echo.ewp b/boards/ek-tm4c1294xl/uart_echo/uart_echo.ewp new file mode 100644 index 0000000..e125085 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/uart_echo.ewp @@ -0,0 +1,784 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\uart_echo.c + + + diff --git a/boards/ek-tm4c1294xl/uart_echo/uart_echo.icf b/boards/ek-tm4c1294xl/uart_echo/uart_echo.icf new file mode 100644 index 0000000..cbab8cc --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/uart_echo.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// uart_echo.icf - Linker configuration file for uart_echo. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/uart_echo/uart_echo.ld b/boards/ek-tm4c1294xl/uart_echo/uart_echo.ld new file mode 100644 index 0000000..ab9c423 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/uart_echo.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * uart_echo.ld - Linker configuration file for uart_echo. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/uart_echo/uart_echo.sct b/boards/ek-tm4c1294xl/uart_echo/uart_echo.sct new file mode 100644 index 0000000..cf17915 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/uart_echo.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; uart_echo.sct - Linker configuration file for uart_echo. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/uart_echo/uart_echo.uvopt b/boards/ek-tm4c1294xl/uart_echo/uart_echo.uvopt new file mode 100644 index 0000000..309d80d --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/uart_echo.uvopt @@ -0,0 +1,289 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + uart_echo + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S3 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\uart_echo.c + uart_echo.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 3 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 4 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/uart_echo/uart_echo.uvproj b/boards/ek-tm4c1294xl/uart_echo/uart_echo.uvproj new file mode 100644 index 0000000..ed6929d --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/uart_echo.uvproj @@ -0,0 +1,424 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + uart_echo + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + uart_echo + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\uart_echo.bin .\rvmdk\uart_echo.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + uart_echo.sct + + + --entry Reset_Handler + + + + + + + + Source + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uart_echo.c + 1 + .\uart_echo.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/uart_echo/uart_echo_ccs.cmd b/boards/ek-tm4c1294xl/uart_echo/uart_echo_ccs.cmd new file mode 100644 index 0000000..7198d47 --- /dev/null +++ b/boards/ek-tm4c1294xl/uart_echo/uart_echo_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * uart_echo_ccs.cmd - CCS linker configuration file for uart_echo. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 256; diff --git a/boards/ek-tm4c1294xl/udma_demo/Makefile b/boards/ek-tm4c1294xl/udma_demo/Makefile new file mode 100644 index 0000000..ff22463 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/Makefile @@ -0,0 +1,87 @@ +#****************************************************************************** +# +# Makefile - Rules for building the uDMA example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=../../../.. + +# +# The default rule, which causes the uDMA example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/udma_demo.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the uDMA example. +# +${COMPILER}/udma_demo.axf: ${COMPILER}/cpu_usage.o +${COMPILER}/udma_demo.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/udma_demo.axf: ${COMPILER}/uartstdio.o +${COMPILER}/udma_demo.axf: ${COMPILER}/udma_demo.o +${COMPILER}/udma_demo.axf: ${COMPILER}/ustdlib.o +${COMPILER}/udma_demo.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/udma_demo.axf: udma_demo.ld +SCATTERgcc_udma_demo=udma_demo.ld +ENTRY_udma_demo=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/udma_demo/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/udma_demo/ccs/.ccsimportspec new file mode 100644 index 0000000..aea8941 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/udma_demo/ccs/.ccsproject b/boards/ek-tm4c1294xl/udma_demo/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/udma_demo/ccs/.cproject b/boards/ek-tm4c1294xl/udma_demo/ccs/.cproject new file mode 100644 index 0000000..c33d1d1 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/ccs/.cproject @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/udma_demo/ccs/.project b/boards/ek-tm4c1294xl/udma_demo/ccs/.project new file mode 100644 index 0000000..0ae986b --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/ccs/.project @@ -0,0 +1,65 @@ + + + udma_demo + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/udma_demo/startup_ccs.c + + + udma_demo.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/udma_demo/udma_demo.c + + + udma_demo_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/udma_demo/udma_demo_ccs.cmd + + + utils/cpu_usage.c + 1 + SW_ROOT/utils/cpu_usage.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/udma_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/udma_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/udma_demo/ccs/Debug/udma_demo.bin b/boards/ek-tm4c1294xl/udma_demo/ccs/Debug/udma_demo.bin new file mode 100644 index 0000000..d6d3b9e Binary files /dev/null and b/boards/ek-tm4c1294xl/udma_demo/ccs/Debug/udma_demo.bin differ diff --git a/boards/ek-tm4c1294xl/udma_demo/ccs/Debug/udma_demo.out b/boards/ek-tm4c1294xl/udma_demo/ccs/Debug/udma_demo.out new file mode 100644 index 0000000..de707d9 Binary files /dev/null and b/boards/ek-tm4c1294xl/udma_demo/ccs/Debug/udma_demo.out differ diff --git a/boards/ek-tm4c1294xl/udma_demo/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/udma_demo/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/udma_demo/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/udma_demo/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/udma_demo/ewarm/Exe/udma_demo.bin b/boards/ek-tm4c1294xl/udma_demo/ewarm/Exe/udma_demo.bin new file mode 100644 index 0000000..1294ad5 Binary files /dev/null and b/boards/ek-tm4c1294xl/udma_demo/ewarm/Exe/udma_demo.bin differ diff --git a/boards/ek-tm4c1294xl/udma_demo/ewarm/Exe/udma_demo.out b/boards/ek-tm4c1294xl/udma_demo/ewarm/Exe/udma_demo.out new file mode 100644 index 0000000..399cc1c Binary files /dev/null and b/boards/ek-tm4c1294xl/udma_demo/ewarm/Exe/udma_demo.out differ diff --git a/boards/ek-tm4c1294xl/udma_demo/gcc/udma_demo.axf b/boards/ek-tm4c1294xl/udma_demo/gcc/udma_demo.axf new file mode 100644 index 0000000..9fcb17b Binary files /dev/null and b/boards/ek-tm4c1294xl/udma_demo/gcc/udma_demo.axf differ diff --git a/boards/ek-tm4c1294xl/udma_demo/gcc/udma_demo.bin b/boards/ek-tm4c1294xl/udma_demo/gcc/udma_demo.bin new file mode 100644 index 0000000..56f05c6 Binary files /dev/null and b/boards/ek-tm4c1294xl/udma_demo/gcc/udma_demo.bin differ diff --git a/boards/ek-tm4c1294xl/udma_demo/readme.txt b/boards/ek-tm4c1294xl/udma_demo/readme.txt new file mode 100644 index 0000000..35fcab2 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/readme.txt @@ -0,0 +1,28 @@ +uDMA + +This example application demonstrates the use of the uDMA controller to +transfer data between memory buffers, and to transfer data to and from a +UART. The test runs for 10 seconds before exiting. + +UART0, connected to the ICDI virtual COM port and running at 115,200, +8-N-1, is used to display messages from this application. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/udma_demo/rvmdk/udma_demo.axf b/boards/ek-tm4c1294xl/udma_demo/rvmdk/udma_demo.axf new file mode 100644 index 0000000..2d7e9ea Binary files /dev/null and b/boards/ek-tm4c1294xl/udma_demo/rvmdk/udma_demo.axf differ diff --git a/boards/ek-tm4c1294xl/udma_demo/rvmdk/udma_demo.bin b/boards/ek-tm4c1294xl/udma_demo/rvmdk/udma_demo.bin new file mode 100644 index 0000000..9ec6613 Binary files /dev/null and b/boards/ek-tm4c1294xl/udma_demo/rvmdk/udma_demo.bin differ diff --git a/boards/ek-tm4c1294xl/udma_demo/startup_ccs.c b/boards/ek-tm4c1294xl/udma_demo/startup_ccs.c new file mode 100644 index 0000000..fb8426a --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/startup_ccs.c @@ -0,0 +1,278 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickHandler(void); +extern void UART1IntHandler(void); +extern void uDMAIntHandler(void); +extern void uDMAErrorHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + UART1IntHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + uDMAIntHandler, // uDMA Software Transfer + uDMAErrorHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/udma_demo/startup_ewarm.c b/boards/ek-tm4c1294xl/udma_demo/startup_ewarm.c new file mode 100644 index 0000000..3c4d2e6 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/startup_ewarm.c @@ -0,0 +1,309 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickHandler(void); +extern void UART1IntHandler(void); +extern void uDMAIntHandler(void); +extern void uDMAErrorHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + UART1IntHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + uDMAIntHandler, // uDMA Software Transfer + uDMAErrorHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/udma_demo/startup_gcc.c b/boards/ek-tm4c1294xl/udma_demo/startup_gcc.c new file mode 100644 index 0000000..1dc5d9f --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/startup_gcc.c @@ -0,0 +1,325 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickHandler(void); +extern void UART1IntHandler(void); +extern void uDMAIntHandler(void); +extern void uDMAErrorHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + UART1IntHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + uDMAIntHandler, // uDMA Software Transfer + uDMAErrorHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/udma_demo/startup_rvmdk.S b/boards/ek-tm4c1294xl/udma_demo/startup_rvmdk.S new file mode 100644 index 0000000..309b10a --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/startup_rvmdk.S @@ -0,0 +1,334 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000400 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN SysTickHandler + EXTERN UART1IntHandler + EXTERN uDMAIntHandler + EXTERN uDMAErrorHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD UART1IntHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD uDMAIntHandler ; uDMA Software Transfer + DCD uDMAErrorHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/udma_demo/udma_demo.c b/boards/ek-tm4c1294xl/udma_demo/udma_demo.c new file mode 100644 index 0000000..af19c52 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/udma_demo.c @@ -0,0 +1,948 @@ +//***************************************************************************** +// +// udma_demo.c - uDMA example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "inc/hw_uart.h" +#include "driverlib/fpu.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "driverlib/uart.h" +#include "driverlib/udma.h" +#include "utils/cpu_usage.h" +#include "utils/uartstdio.h" +#include "utils/ustdlib.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      uDMA (udma_demo)

      +//! +//! This example application demonstrates the use of the uDMA controller to +//! transfer data between memory buffers, and to transfer data to and from a +//! UART. The test runs for 10 seconds before exiting. +//! +//! UART0, connected to the ICDI virtual COM port and running at 115,200, +//! 8-N-1, is used to display messages from this application. +// +//***************************************************************************** + +//**************************************************************************** +// +// System clock rate in Hz. +// +//**************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// The number of SysTick ticks per second used for the SysTick interrupt. +// +//***************************************************************************** +#define SYSTICKS_PER_SECOND 100 + +//***************************************************************************** +// +// The size of the memory transfer source and destination buffers (in words). +// +//***************************************************************************** +#define MEM_BUFFER_SIZE 1024 + +//***************************************************************************** +// +// The size of the UART transmit and receive buffers. They do not need to be +// the same size. +// +//***************************************************************************** +#define UART_TXBUF_SIZE 256 +#define UART_RXBUF_SIZE 256 + +//***************************************************************************** +// +// The source and destination buffers used for memory transfers. +// +//***************************************************************************** +static uint32_t g_ui32SrcBuf[MEM_BUFFER_SIZE]; +static uint32_t g_ui32DstBuf[MEM_BUFFER_SIZE]; + +//***************************************************************************** +// +// The transmit and receive buffers used for the UART transfers. There is one +// transmit buffer and a pair of recieve ping-pong buffers. +// +//***************************************************************************** +static uint8_t g_ui8TxBuf[UART_TXBUF_SIZE]; +static uint8_t g_ui8RxBufA[UART_RXBUF_SIZE]; +static uint8_t g_ui8RxBufB[UART_RXBUF_SIZE]; + +//***************************************************************************** +// +// The count of uDMA errors. This value is incremented by the uDMA error +// handler. +// +//***************************************************************************** +static uint32_t g_ui32uDMAErrCount = 0; + +//***************************************************************************** +// +// The count of times the uDMA interrupt occurred but the uDMA transfer was not +// complete. This should remain 0. +// +//***************************************************************************** +static uint32_t g_ui32BadISR = 0; + +//***************************************************************************** +// +// The count of UART buffers filled, one for each ping-pong buffer. +// +//***************************************************************************** +static uint32_t g_ui32RxBufACount = 0; +static uint32_t g_ui32RxBufBCount = 0; + +//***************************************************************************** +// +// The count of memory uDMA transfer blocks. This value is incremented by the +// uDMA interrupt handler whenever a memory block transfer is completed. +// +//***************************************************************************** +static uint32_t g_ui32MemXferCount = 0; + +//***************************************************************************** +// +// The CPU usage in percent, in 16.16 fixed point format. +// +//***************************************************************************** +static uint32_t g_ui32CPUUsage; + +//***************************************************************************** +// +// The number of seconds elapsed since the start of the program. This value is +// maintained by the SysTick interrupt handler. +// +//***************************************************************************** +static uint32_t g_ui32Seconds = 0; + +//***************************************************************************** +// +// The control table used by the uDMA controller. This table must be aligned +// to a 1024 byte boundary. +// +//***************************************************************************** +#if defined(ewarm) +#pragma data_alignment=1024 +uint8_t pui8ControlTable[1024]; +#elif defined(ccs) +#pragma DATA_ALIGN(pui8ControlTable, 1024) +uint8_t pui8ControlTable[1024]; +#else +uint8_t pui8ControlTable[1024] __attribute__ ((aligned(1024))); +#endif + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// The interrupt handler for the SysTick timer. This handler will increment a +// seconds counter whenever the appropriate number of ticks has occurred. It +// will also call the CPU usage tick function to find the CPU usage percent. +// +//***************************************************************************** +void +SysTickHandler(void) +{ + static uint32_t ui32TickCount = 0; + + // + // Increment the tick counter. + // + ui32TickCount++; + + // + // If the number of ticks per second has occurred, then increment the + // seconds counter. + // + if(!(ui32TickCount % SYSTICKS_PER_SECOND)) + { + g_ui32Seconds++; + } + + // + // Call the CPU usage tick function. This function will compute the amount + // of cycles used by the CPU since the last call and return the result in + // percent in fixed point 16.16 format. + // + g_ui32CPUUsage = CPUUsageTick(); +} + +//***************************************************************************** +// +// The interrupt handler for uDMA errors. This interrupt will occur if the +// uDMA encounters a bus error while trying to perform a transfer. This +// handler just increments a counter if an error occurs. +// +//***************************************************************************** +void +uDMAErrorHandler(void) +{ + uint32_t ui32Status; + + // + // Check for uDMA error bit + // + ui32Status = ROM_uDMAErrorStatusGet(); + + // + // If there is a uDMA error, then clear the error and increment + // the error counter. + // + if(ui32Status) + { + ROM_uDMAErrorStatusClear(); + g_ui32uDMAErrCount++; + } +} + +//***************************************************************************** +// +// The interrupt handler for uDMA interrupts from the memory channel. This +// interrupt will increment a counter, and then restart another memory +// transfer. +// +//***************************************************************************** +void +uDMAIntHandler(void) +{ + uint32_t ui32Mode; + + // + // Check for the primary control structure to indicate complete. + // + ui32Mode = ROM_uDMAChannelModeGet(UDMA_CHANNEL_SW); + if(ui32Mode == UDMA_MODE_STOP) + { + // + // Increment the count of completed transfers. + // + g_ui32MemXferCount++; + + // + // Configure it for another transfer. + // + ROM_uDMAChannelTransferSet(UDMA_CHANNEL_SW, UDMA_MODE_AUTO, + g_ui32SrcBuf, g_ui32DstBuf, + MEM_BUFFER_SIZE); + + // + // Initiate another transfer. + // + ROM_uDMAChannelEnable(UDMA_CHANNEL_SW); + ROM_uDMAChannelRequest(UDMA_CHANNEL_SW); + } + + // + // If the channel is not stopped, then something is wrong. + // + else + { + g_ui32BadISR++; + } +} + +//***************************************************************************** +// +// The interrupt handler for UART1. This interrupt will occur when a DMA +// transfer is complete using the UART1 uDMA channel. It will also be +// triggered if the peripheral signals an error. This interrupt handler will +// switch between receive ping-pong buffers A and B. It will also restart a TX +// uDMA transfer if the prior transfer is complete. This will keep the UART +// running continuously (looping TX data back to RX). +// +//***************************************************************************** +void +UART1IntHandler(void) +{ + uint32_t ui32Status; + uint32_t ui32Mode; + + // + // Read the interrupt status of the UART. + // + ui32Status = ROM_UARTIntStatus(UART1_BASE, 1); + + // + // Clear any pending status, even though there should be none since no UART + // interrupts were enabled. If UART error interrupts were enabled, then + // those interrupts could occur here and should be handled. Since uDMA is + // used for both the RX and TX, then neither of those interrupts should be + // enabled. + // + ROM_UARTIntClear(UART1_BASE, ui32Status); + + // + // Check the DMA control table to see if the ping-pong "A" transfer is + // complete. The "A" transfer uses receive buffer "A", and the primary + // control structure. + // + ui32Mode = ROM_uDMAChannelModeGet(UDMA_CHANNEL_UART1RX | UDMA_PRI_SELECT); + + // + // If the primary control structure indicates stop, that means the "A" + // receive buffer is done. The uDMA controller should still be receiving + // data into the "B" buffer. + // + if(ui32Mode == UDMA_MODE_STOP) + { + // + // Increment a counter to indicate data was received into buffer A. In + // a real application this would be used to signal the main thread that + // data was received so the main thread can process the data. + // + g_ui32RxBufACount++; + + // + // Set up the next transfer for the "A" buffer, using the primary + // control structure. When the ongoing receive into the "B" buffer is + // done, the uDMA controller will switch back to this one. This + // example re-uses buffer A, but a more sophisticated application could + // use a rotating set of buffers to increase the amount of time that + // the main thread has to process the data in the buffer before it is + // reused. + // + ROM_uDMAChannelTransferSet(UDMA_CHANNEL_UART1RX | UDMA_PRI_SELECT, + UDMA_MODE_PINGPONG, + (void *)(UART1_BASE + UART_O_DR), + g_ui8RxBufA, sizeof(g_ui8RxBufA)); + } + + // + // Check the DMA control table to see if the ping-pong "B" transfer is + // complete. The "B" transfer uses receive buffer "B", and the alternate + // control structure. + // + ui32Mode = ROM_uDMAChannelModeGet(UDMA_CHANNEL_UART1RX | UDMA_ALT_SELECT); + + // + // If the alternate control structure indicates stop, that means the "B" + // receive buffer is done. The uDMA controller should still be receiving + // data into the "A" buffer. + // + if(ui32Mode == UDMA_MODE_STOP) + { + // + // Increment a counter to indicate data was received into buffer A. In + // a real application this would be used to signal the main thread that + // data was received so the main thread can process the data. + // + g_ui32RxBufBCount++; + + // + // Set up the next transfer for the "B" buffer, using the alternate + // control structure. When the ongoing receive into the "A" buffer is + // done, the uDMA controller will switch back to this one. This + // example re-uses buffer B, but a more sophisticated application could + // use a rotating set of buffers to increase the amount of time that + // the main thread has to process the data in the buffer before it is + // reused. + // + ROM_uDMAChannelTransferSet(UDMA_CHANNEL_UART1RX | UDMA_ALT_SELECT, + UDMA_MODE_PINGPONG, + (void *)(UART1_BASE + UART_O_DR), + g_ui8RxBufB, sizeof(g_ui8RxBufB)); + } + + // + // If the UART1 DMA TX channel is disabled, that means the TX DMA transfer + // is done. + // + if(!ROM_uDMAChannelIsEnabled(UDMA_CHANNEL_UART1TX)) + { + // + // Start another DMA transfer to UART1 TX. + // + ROM_uDMAChannelTransferSet(UDMA_CHANNEL_UART1TX | UDMA_PRI_SELECT, + UDMA_MODE_BASIC, g_ui8TxBuf, + (void *)(UART1_BASE + UART_O_DR), + sizeof(g_ui8TxBuf)); + + // + // The uDMA TX channel must be re-enabled. + // + ROM_uDMAChannelEnable(UDMA_CHANNEL_UART1TX); + } +} + +//***************************************************************************** +// +// Initializes the UART1 peripheral and sets up the TX and RX uDMA channels. +// The UART is configured for loopback mode so that any data sent on TX will be +// received on RX. The uDMA channels are configured so that the TX channel +// will copy data from a buffer to the UART TX output. And the uDMA RX channel +// will receive any incoming data into a pair of buffers in ping-pong mode. +// +//***************************************************************************** +void +InitUART1Transfer(void) +{ + uint_fast16_t ui16Idx; + + // + // Fill the TX buffer with a simple data pattern. + // + for(ui16Idx = 0; ui16Idx < UART_TXBUF_SIZE; ui16Idx++) + { + g_ui8TxBuf[ui16Idx] = ui16Idx; + } + + // + // Enable the UART peripheral, and configure it to operate even if the CPU + // is in sleep. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1); + ROM_SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_UART1); + + // + // Configure the UART communication parameters. + // + ROM_UARTConfigSetExpClk(UART1_BASE, g_ui32SysClock, 115200, + UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | + UART_CONFIG_PAR_NONE); + + // + // Set both the TX and RX trigger thresholds to 4. This will be used by + // the uDMA controller to signal when more data should be transferred. The + // uDMA TX and RX channels will be configured so that it can transfer 4 + // bytes in a burst when the UART is ready to transfer more data. + // + ROM_UARTFIFOLevelSet(UART1_BASE, UART_FIFO_TX4_8, UART_FIFO_RX4_8); + + // + // Enable the UART for operation, and enable the uDMA interface for both TX + // and RX channels. + // + ROM_UARTEnable(UART1_BASE); + ROM_UARTDMAEnable(UART1_BASE, UART_DMA_RX | UART_DMA_TX); + + // + // This register write will set the UART to operate in loopback mode. Any + // data sent on the TX output will be received on the RX input. + // + HWREG(UART1_BASE + UART_O_CTL) |= UART_CTL_LBE; + + // + // Put the attributes in a known state for the uDMA UART1RX channel. These + // should already be disabled by default. + // + ROM_uDMAChannelAttributeDisable(UDMA_CHANNEL_UART1RX, + UDMA_ATTR_ALTSELECT | UDMA_ATTR_USEBURST | + UDMA_ATTR_HIGH_PRIORITY | + UDMA_ATTR_REQMASK); + + // + // Configure the control parameters for the primary control structure for + // the UART RX channel. The primary contol structure is used for the "A" + // part of the ping-pong receive. The transfer data size is 8 bits, the + // source address does not increment since it will be reading from a + // register. The destination address increment is byte 8-bit bytes. The + // arbitration size is set to 4 to match the RX FIFO trigger threshold. + // The uDMA controller will use a 4 byte burst transfer if possible. This + // will be somewhat more effecient that single byte transfers. + // + ROM_uDMAChannelControlSet(UDMA_CHANNEL_UART1RX | UDMA_PRI_SELECT, + UDMA_SIZE_8 | UDMA_SRC_INC_NONE | UDMA_DST_INC_8 | + UDMA_ARB_4); + + // + // Configure the control parameters for the alternate control structure for + // the UART RX channel. The alternate contol structure is used for the "B" + // part of the ping-pong receive. The configuration is identical to the + // primary/A control structure. + // + ROM_uDMAChannelControlSet(UDMA_CHANNEL_UART1RX | UDMA_ALT_SELECT, + UDMA_SIZE_8 | UDMA_SRC_INC_NONE | UDMA_DST_INC_8 | + UDMA_ARB_4); + + // + // Set up the transfer parameters for the UART RX primary control + // structure. The mode is set to ping-pong, the transfer source is the + // UART data register, and the destination is the receive "A" buffer. The + // transfer size is set to match the size of the buffer. + // + ROM_uDMAChannelTransferSet(UDMA_CHANNEL_UART1RX | UDMA_PRI_SELECT, + UDMA_MODE_PINGPONG, + (void *)(UART1_BASE + UART_O_DR), + g_ui8RxBufA, sizeof(g_ui8RxBufA)); + + // + // Set up the transfer parameters for the UART RX alternate control + // structure. The mode is set to ping-pong, the transfer source is the + // UART data register, and the destination is the receive "B" buffer. The + // transfer size is set to match the size of the buffer. + // + ROM_uDMAChannelTransferSet(UDMA_CHANNEL_UART1RX | UDMA_ALT_SELECT, + UDMA_MODE_PINGPONG, + (void *)(UART1_BASE + UART_O_DR), + g_ui8RxBufB, sizeof(g_ui8RxBufB)); + + // + // Put the attributes in a known state for the uDMA UART1TX channel. These + // should already be disabled by default. + // + ROM_uDMAChannelAttributeDisable(UDMA_CHANNEL_UART1TX, + UDMA_ATTR_ALTSELECT | + UDMA_ATTR_HIGH_PRIORITY | + UDMA_ATTR_REQMASK); + + // + // Set the USEBURST attribute for the uDMA UART TX channel. This will + // force the controller to always use a burst when transferring data from + // the TX buffer to the UART. This is somewhat more effecient bus usage + // than the default which allows single or burst transfers. + // + ROM_uDMAChannelAttributeEnable(UDMA_CHANNEL_UART1TX, UDMA_ATTR_USEBURST); + + // + // Configure the control parameters for the UART TX. The uDMA UART TX + // channel is used to transfer a block of data from a buffer to the UART. + // The data size is 8 bits. The source address increment is 8-bit bytes + // since the data is coming from a buffer. The destination increment is + // none since the data is to be written to the UART data register. The + // arbitration size is set to 4, which matches the UART TX FIFO trigger + // threshold. + // + ROM_uDMAChannelControlSet(UDMA_CHANNEL_UART1TX | UDMA_PRI_SELECT, + UDMA_SIZE_8 | UDMA_SRC_INC_8 | + UDMA_DST_INC_NONE | + UDMA_ARB_4); + + // + // Set up the transfer parameters for the uDMA UART TX channel. This will + // configure the transfer source and destination and the transfer size. + // Basic mode is used because the peripheral is making the uDMA transfer + // request. The source is the TX buffer and the destination is the UART + // data register. + // + ROM_uDMAChannelTransferSet(UDMA_CHANNEL_UART1TX | UDMA_PRI_SELECT, + UDMA_MODE_BASIC, g_ui8TxBuf, + (void *)(UART1_BASE + UART_O_DR), + sizeof(g_ui8TxBuf)); + + // + // Now both the uDMA UART TX and RX channels are primed to start a + // transfer. As soon as the channels are enabled, the peripheral will + // issue a transfer request and the data transfers will begin. + // + ROM_uDMAChannelEnable(UDMA_CHANNEL_UART1RX); + ROM_uDMAChannelEnable(UDMA_CHANNEL_UART1TX); + + // + // Enable the UART DMA TX/RX interrupts. + // + ROM_UARTIntEnable(UART1_BASE, UART_INT_DMATX | UART_INT_DMATX); + + // + // Enable the UART peripheral interrupts. + // + ROM_IntEnable(INT_UART1); +} + + +//***************************************************************************** +// +// Initializes the uDMA software channel to perform a memory to memory uDMA +// transfer. +// +//***************************************************************************** +void +InitSWTransfer(void) +{ + uint_fast16_t ui16Idx; + + // + // Fill the source memory buffer with a simple incrementing pattern. + // + for(ui16Idx = 0; ui16Idx < MEM_BUFFER_SIZE; ui16Idx++) + { + g_ui32SrcBuf[ui16Idx] = ui16Idx; + } + + // + // Enable interrupts from the uDMA software channel. + // + ROM_IntEnable(INT_UDMA); + + // + // Put the attributes in a known state for the uDMA software channel. + // These should already be disabled by default. + // + ROM_uDMAChannelAttributeDisable(UDMA_CHANNEL_SW, + UDMA_ATTR_USEBURST | UDMA_ATTR_ALTSELECT | + (UDMA_ATTR_HIGH_PRIORITY | + UDMA_ATTR_REQMASK)); + + // + // Configure the control parameters for the SW channel. The SW channel + // will be used to transfer between two memory buffers, 32 bits at a time. + // Therefore the data size is 32 bits, and the address increment is 32 bits + // for both source and destination. The arbitration size will be set to 8, + // which causes the uDMA controller to rearbitrate after 8 items are + // transferred. This keeps this channel from hogging the uDMA controller + // once the transfer is started, and allows other channels cycles if they + // are higher priority. + // + ROM_uDMAChannelControlSet(UDMA_CHANNEL_SW | UDMA_PRI_SELECT, + UDMA_SIZE_32 | UDMA_SRC_INC_32 | UDMA_DST_INC_32 | + UDMA_ARB_8); + + // + // Set up the transfer parameters for the software channel. This will + // configure the transfer buffers and the transfer size. Auto mode must be + // used for software transfers. + // + ROM_uDMAChannelTransferSet(UDMA_CHANNEL_SW | UDMA_PRI_SELECT, + UDMA_MODE_AUTO, g_ui32SrcBuf, g_ui32DstBuf, + MEM_BUFFER_SIZE); + + // + // Now the software channel is primed to start a transfer. The channel + // must be enabled. For software based transfers, a request must be + // issued. After this, the uDMA memory transfer begins. + // + ROM_uDMAChannelEnable(UDMA_CHANNEL_SW); + ROM_uDMAChannelRequest(UDMA_CHANNEL_SW); +} + +//***************************************************************************** +// +// Configure the UART and its pins. This must be called before UARTprintf(). +// +//***************************************************************************** +void +ConfigureUART(void) +{ + // + // Enable the GPIO Peripheral used by the UART. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + + // + // Enable UART0 + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + ROM_SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_UART0); + + // + // Configure GPIO Pins for UART mode. + // + ROM_GPIOPinConfigure(GPIO_PA0_U0RX); + ROM_GPIOPinConfigure(GPIO_PA1_U0TX); + ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); +} + +//***************************************************************************** +// +// This example demonstrates how to use the uDMA controller to transfer data +// between memory buffers and to and from a peripheral, in this case a UART. +// The uDMA controller is configured to repeatedly transfer a block of data +// from one memory buffer to another. It is also set up to repeatedly copy a +// block of data from a buffer to the UART output. The UART data is looped +// back so the same data is received, and the uDMA controlled is configured to +// continuously receive the UART data using ping-pong buffers. +// +// The processor is put to sleep when it is not doing anything, and this allows +// collection of CPU usage data to see how much CPU is being used while the +// data transfers are ongoing. +// +//***************************************************************************** +int +main(void) +{ + static uint32_t ui32PrevSeconds; + static uint32_t ui32PrevXferCount; + static uint32_t ui32PrevUARTCount = 0; + uint32_t ui32XfersCompleted; + uint32_t ui32BytesTransferred; + + // + // Set the clocking to run directly from the crystal at 120MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Enable peripherals to operate when CPU is in sleep. + // + ROM_SysCtlPeripheralClockGating(true); + + // + // Enable the GPIO port that is used for the on-board LED. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION); + + // + // Enable the GPIO pins for the LED (PN0). + // + ROM_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0); + + // + // Initialize the UART. + // + ConfigureUART(); + UARTprintf("\033[2J\033[H"); + UARTprintf("uDMA Example\n"); + + // + // Show the clock frequency on the display. + // + UARTprintf("Tiva C Series @ %u MHz\n\n", g_ui32SysClock / 1000000); + + // + // Show statistics headings. + // + UARTprintf("CPU\tRemaining\tMemory\t\t\t UART\n"); + UARTprintf("Usage\tTime\t\tTransfers\t\t Transfers\n"); + + // + // Configure SysTick to occur 100 times per second, to use as a time + // reference. Enable SysTick to generate interrupts. + // + ROM_SysTickPeriodSet(g_ui32SysClock / SYSTICKS_PER_SECOND); + ROM_SysTickIntEnable(); + ROM_SysTickEnable(); + + // + // Initialize the CPU usage measurement routine. + // + CPUUsageInit(g_ui32SysClock, SYSTICKS_PER_SECOND, 2); + + // + // Enable the uDMA controller at the system level. Enable it to continue + // to run while the processor is in sleep. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA); + ROM_SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_UDMA); + + // + // Enable the uDMA controller error interrupt. This interrupt will occur + // if there is a bus error during a transfer. + // + ROM_IntEnable(INT_UDMAERR); + + // + // Enable the uDMA controller. + // + ROM_uDMAEnable(); + + // + // Point at the control table to use for channel control structures. + // + ROM_uDMAControlBaseSet(pui8ControlTable); + + // + // Initialize the uDMA memory to memory transfers. + // + InitSWTransfer(); + + // + // Initialize the uDMA UART transfers. + // + InitUART1Transfer(); + + // + // Remember the current SysTick seconds count. + // + ui32PrevSeconds = g_ui32Seconds; + + // + // Remember the current count of memory buffer transfers. + // + ui32PrevXferCount = g_ui32MemXferCount; + + // + // Loop until the button is pressed. The processor is put to sleep + // in this loop so that CPU utilization can be measured. + // + while(1) + { + // + // Check to see if one second has elapsed. If so, the make some + // updates. + // + if(g_ui32Seconds != ui32PrevSeconds) + { + // + // Turn on the LED as a heartbeat + // + GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, GPIO_PIN_0); + + // + // Print a message showing the CPU usage percent. + // The fractional part of the percent value is ignored. + // + UARTprintf("%2u%%", g_ui32CPUUsage >> 16); + + // + // Tell the user how many seconds we have to go before ending. + // + UARTprintf("\t%d seconds", 10 - g_ui32Seconds); + + // + // Remember the new seconds count. + // + ui32PrevSeconds = g_ui32Seconds; + + // + // Calculate how many memory transfers have occurred since the last + // second. + // + ui32XfersCompleted = g_ui32MemXferCount - ui32PrevXferCount; + + // + // Remember the new transfer count. + // + ui32PrevXferCount = g_ui32MemXferCount; + + // + // Compute how many bytes were transferred in the memory transfer + // since the last second. + // + ui32BytesTransferred = ui32XfersCompleted * MEM_BUFFER_SIZE * 4; + + // + // Print a message showing the transfer rate. + // + UARTprintf("\t%8u Bytes/Sec", ui32BytesTransferred); + + // + // Calculate how many UART transfers have occurred since the last + // second. This expression is split to prevent a compiler warning + // about undefined order of volatile accesses. + // + ui32XfersCompleted = g_ui32RxBufACount; + ui32XfersCompleted += g_ui32RxBufBCount - ui32PrevUARTCount; + + // + // Remember the new UART transfer count. This expression is split + // to prevent a compiler warning about undefined order of volatile + // accesses. + // + ui32PrevUARTCount = g_ui32RxBufACount; + ui32PrevUARTCount += g_ui32RxBufBCount; + + // + // Compute how many bytes were transferred by the UART. The number + // of bytes received is multiplied by 2 so that the TX bytes + // transferred are also accounted for. + // + ui32BytesTransferred = ui32XfersCompleted * UART_RXBUF_SIZE * 2; + + // + // Print a message showing the transfer rate. + // + UARTprintf("\t%8u Bytes/Sec\n", ui32BytesTransferred); + + // + // Turn off the LED. + // + GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, ~GPIO_PIN_0); + } + + // + // Put the processor to sleep if there is nothing to do. This allows + // the CPU usage routine to measure the number of free CPU cycles. + // If the processor is sleeping a lot, it can be hard to connect to + // the target with the debugger. + // + ROM_SysCtlSleep(); + + // + // See if we have run long enough and exit the loop if so. + // + if(g_ui32Seconds >= 10) + { + break; + } + } + + // + // Indicate on the display that the example is stopped. + // + UARTprintf("\nStopped\n"); + + // + // Disable uDMA and UART interrupts now that the test is complete. + // + ROM_IntDisable(INT_UART1); + ROM_IntDisable(INT_UDMA); + + // + // Loop forever with the CPU not sleeping, so the debugger can connect. + // + while(1) + { + // + // Turn on the LED. + // + GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, GPIO_PIN_0); + + // + // Delay for a bit. + // + SysCtlDelay(g_ui32SysClock / 20 / 3); + + // + // Turn off the LED. + // + GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0); + + // + // Delay for a bit. + // + SysCtlDelay(g_ui32SysClock / 20 / 3); + } +} diff --git a/boards/ek-tm4c1294xl/udma_demo/udma_demo.ewd b/boards/ek-tm4c1294xl/udma_demo/udma_demo.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/udma_demo.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/udma_demo/udma_demo.ewp b/boards/ek-tm4c1294xl/udma_demo/udma_demo.ewp new file mode 100644 index 0000000..4a3d908 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/udma_demo.ewp @@ -0,0 +1,793 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\..\..\..\..\utils\cpu_usage.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\udma_demo.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/udma_demo/udma_demo.icf b/boards/ek-tm4c1294xl/udma_demo/udma_demo.icf new file mode 100644 index 0000000..f38d45e --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/udma_demo.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// udma_demo.icf - Linker configuration file for udma_demo. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/udma_demo/udma_demo.ld b/boards/ek-tm4c1294xl/udma_demo/udma_demo.ld new file mode 100644 index 0000000..b16008b --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/udma_demo.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * udma_demo.ld - Linker configuration file for udma_demo. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/udma_demo/udma_demo.sct b/boards/ek-tm4c1294xl/udma_demo/udma_demo.sct new file mode 100644 index 0000000..d4e0f94 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/udma_demo.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; udma_demo.sct - Linker configuration file for udma_demo. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/udma_demo/udma_demo.uvopt b/boards/ek-tm4c1294xl/udma_demo/udma_demo.uvopt new file mode 100644 index 0000000..2d96950 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/udma_demo.uvopt @@ -0,0 +1,331 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + udma_demo + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S3 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\cpu_usage.c + cpu_usage.c + + + 1 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\udma_demo.c + udma_demo.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 6 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 7 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/udma_demo/udma_demo.uvproj b/boards/ek-tm4c1294xl/udma_demo/udma_demo.uvproj new file mode 100644 index 0000000..bf1cd11 --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/udma_demo.uvproj @@ -0,0 +1,439 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + udma_demo + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + udma_demo + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\udma_demo.bin .\rvmdk\udma_demo.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + udma_demo.sct + + + --entry Reset_Handler + + + + + + + + Source + + + cpu_usage.c + 1 + ..\..\..\..\utils\cpu_usage.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + udma_demo.c + 1 + .\udma_demo.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/udma_demo/udma_demo_ccs.cmd b/boards/ek-tm4c1294xl/udma_demo/udma_demo_ccs.cmd new file mode 100644 index 0000000..48c743f --- /dev/null +++ b/boards/ek-tm4c1294xl/udma_demo/udma_demo_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * udma_demo_ccs.cmd - CCS linker configuration file for udma_demo. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 1024; diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/Makefile b/boards/ek-tm4c1294xl/usb_dev_bulk/Makefile new file mode 100644 index 0000000..a6eab04 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/Makefile @@ -0,0 +1,91 @@ +#****************************************************************************** +# +# Makefile - Rules for building the USB device bulk example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the USB device bulk example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/usb_dev_bulk.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the USB device bulk example. +# +${COMPILER}/usb_dev_bulk.axf: ${COMPILER}/pinout.o +${COMPILER}/usb_dev_bulk.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/usb_dev_bulk.axf: ${COMPILER}/uartstdio.o +${COMPILER}/usb_dev_bulk.axf: ${COMPILER}/usb_bulk_structs.o +${COMPILER}/usb_dev_bulk.axf: ${COMPILER}/usb_dev_bulk.o +${COMPILER}/usb_dev_bulk.axf: ${COMPILER}/ustdlib.o +${COMPILER}/usb_dev_bulk.axf: ${ROOT}/usblib/${COMPILER}/libusb.a +${COMPILER}/usb_dev_bulk.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/usb_dev_bulk.axf: usb_dev_bulk.ld +SCATTERgcc_usb_dev_bulk=usb_dev_bulk.ld +ENTRY_usb_dev_bulk=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 -DUART_BUFFERED + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.ccsimportspec new file mode 100644 index 0000000..6c9f4a0 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.ccsimportspec @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.ccsproject b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.cproject b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.cproject new file mode 100644 index 0000000..62687c2 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.cproject @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.project b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.project new file mode 100644 index 0000000..a42cadf --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.project @@ -0,0 +1,70 @@ + + + usb_dev_bulk + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_bulk/startup_ccs.c + + + usb_bulk_structs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.c + + + usb_dev_bulk.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.c + + + usb_dev_bulk_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk_ccs.cmd + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/Debug/usb_dev_bulk.bin b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/Debug/usb_dev_bulk.bin new file mode 100644 index 0000000..b8cd291 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/Debug/usb_dev_bulk.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/Debug/usb_dev_bulk.out b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/Debug/usb_dev_bulk.out new file mode 100644 index 0000000..0a504c8 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/Debug/usb_dev_bulk.out differ diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ewarm/Exe/usb_dev_bulk.bin b/boards/ek-tm4c1294xl/usb_dev_bulk/ewarm/Exe/usb_dev_bulk.bin new file mode 100644 index 0000000..f5f0dfc Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_bulk/ewarm/Exe/usb_dev_bulk.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/ewarm/Exe/usb_dev_bulk.out b/boards/ek-tm4c1294xl/usb_dev_bulk/ewarm/Exe/usb_dev_bulk.out new file mode 100644 index 0000000..65030e5 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_bulk/ewarm/Exe/usb_dev_bulk.out differ diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/gcc/usb_dev_bulk.axf b/boards/ek-tm4c1294xl/usb_dev_bulk/gcc/usb_dev_bulk.axf new file mode 100644 index 0000000..9b07524 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_bulk/gcc/usb_dev_bulk.axf differ diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/gcc/usb_dev_bulk.bin b/boards/ek-tm4c1294xl/usb_dev_bulk/gcc/usb_dev_bulk.bin new file mode 100644 index 0000000..4d709e8 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_bulk/gcc/usb_dev_bulk.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/readme.txt b/boards/ek-tm4c1294xl/usb_dev_bulk/readme.txt new file mode 100644 index 0000000..e7aa6d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/readme.txt @@ -0,0 +1,43 @@ +USB Generic Bulk Device + +This example provides a generic USB device offering simple bulk data +transfer to and from the host. The device uses a vendor-specific class ID +and supports a single bulk IN endpoint and a single bulk OUT endpoint. +Data received from the host is assumed to be ASCII text and it is +echoed back with the case of all alphabetic characters swapped. + +A Windows INF file for the device is provided on the installation media and +in the C:/ti/TivaWare-C-Series-X.X/windows_drivers directory of TivaWare +releases. This INF contains information required to install the WinUSB +subsystem on WindowsXP and Vista PCs. WinUSB is a Windows subsystem +allowing user mode applications to access the USB device without the need +for a vendor-specific kernel mode driver. + +A sample Windows command-line application, usb_bulk_example, illustrating +how to connect to and communicate with the bulk device is also provided. +The application binary is installed as part of the ``TivaWare for C Series +PC Companion Utilities'' package (SW-TM4C-USB-WIN) on the installation CD +or via download from http://www.ti.com/tivaware . Project files are +included to allow the examples to be built using +Microsoft Visual Studio 2008. Source code for this application can be +found in directory ti/TivaWare_C_Series-x.x/tools/usb_bulk_example. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/rvmdk/usb_dev_bulk.axf b/boards/ek-tm4c1294xl/usb_dev_bulk/rvmdk/usb_dev_bulk.axf new file mode 100644 index 0000000..71a47ca Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_bulk/rvmdk/usb_dev_bulk.axf differ diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/rvmdk/usb_dev_bulk.bin b/boards/ek-tm4c1294xl/usb_dev_bulk/rvmdk/usb_dev_bulk.bin new file mode 100644 index 0000000..6549fc4 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_bulk/rvmdk/usb_dev_bulk.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/startup_ccs.c b/boards/ek-tm4c1294xl/usb_dev_bulk/startup_ccs.c new file mode 100644 index 0000000..38672d7 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/startup_ccs.c @@ -0,0 +1,277 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); +extern void USB0DeviceIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0DeviceIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/startup_ewarm.c b/boards/ek-tm4c1294xl/usb_dev_bulk/startup_ewarm.c new file mode 100644 index 0000000..7b8c204 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/startup_ewarm.c @@ -0,0 +1,308 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); +extern void USB0DeviceIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0DeviceIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/startup_gcc.c b/boards/ek-tm4c1294xl/usb_dev_bulk/startup_gcc.c new file mode 100644 index 0000000..edc9f43 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/startup_gcc.c @@ -0,0 +1,324 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); +extern void USB0DeviceIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0DeviceIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/startup_rvmdk.S b/boards/ek-tm4c1294xl/usb_dev_bulk/startup_rvmdk.S new file mode 100644 index 0000000..7bcd8e9 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/startup_rvmdk.S @@ -0,0 +1,333 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000400 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN SysTickIntHandler + EXTERN UARTStdioIntHandler + EXTERN USB0DeviceIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD UARTStdioIntHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD USB0DeviceIntHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.c b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.c new file mode 100644 index 0000000..b93d7ed --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.c @@ -0,0 +1,199 @@ +//***************************************************************************** +// +// usb_bulk_structs.c - Data structures defining this bulk USB device. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "driverlib/usb.h" +#include "usblib/usblib.h" +#include "usblib/usb-ids.h" +#include "usblib/device/usbdevice.h" +#include "usblib/device/usbdbulk.h" +#include "usb_bulk_structs.h" + +//***************************************************************************** +// +// The languages supported by this device. +// +//***************************************************************************** +const uint8_t g_pui8LangDescriptor[] = +{ + 4, + USB_DTYPE_STRING, + USBShort(USB_LANG_EN_US) +}; + +//***************************************************************************** +// +// The manufacturer string. +// +//***************************************************************************** +const uint8_t g_pui8ManufacturerString[] = +{ + (17 + 1) * 2, + USB_DTYPE_STRING, + 'T', 0, 'e', 0, 'x', 0, 'a', 0, 's', 0, ' ', 0, 'I', 0, 'n', 0, 's', 0, + 't', 0, 'r', 0, 'u', 0, 'm', 0, 'e', 0, 'n', 0, 't', 0, 's', 0, +}; + +//***************************************************************************** +// +// The product string. +// +//***************************************************************************** +const uint8_t g_pui8ProductString[] = +{ + (19 + 1) * 2, + USB_DTYPE_STRING, + 'G', 0, 'e', 0, 'n', 0, 'e', 0, 'r', 0, 'i', 0, 'c', 0, ' ', 0, 'B', 0, + 'u', 0, 'l', 0, 'k', 0, ' ', 0, 'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, + 'e', 0 +}; + +//***************************************************************************** +// +// The serial number string. +// +//***************************************************************************** +const uint8_t g_pui8SerialNumberString[] = +{ + (8 + 1) * 2, + USB_DTYPE_STRING, + '1', 0, '2', 0, '3', 0, '4', 0, '5', 0, '6', 0, '7', 0, '8', 0 +}; + +//***************************************************************************** +// +// The data interface description string. +// +//***************************************************************************** +const uint8_t g_pui8DataInterfaceString[] = +{ + (19 + 1) * 2, + USB_DTYPE_STRING, + 'B', 0, 'u', 0, 'l', 0, 'k', 0, ' ', 0, 'D', 0, 'a', 0, 't', 0, + 'a', 0, ' ', 0, 'I', 0, 'n', 0, 't', 0, 'e', 0, 'r', 0, 'f', 0, + 'a', 0, 'c', 0, 'e', 0 +}; + +//***************************************************************************** +// +// The configuration description string. +// +//***************************************************************************** +const uint8_t g_pui8ConfigString[] = +{ + (23 + 1) * 2, + USB_DTYPE_STRING, + 'B', 0, 'u', 0, 'l', 0, 'k', 0, ' ', 0, 'D', 0, 'a', 0, 't', 0, + 'a', 0, ' ', 0, 'C', 0, 'o', 0, 'n', 0, 'f', 0, 'i', 0, 'g', 0, + 'u', 0, 'r', 0, 'a', 0, 't', 0, 'i', 0, 'o', 0, 'n', 0 +}; + +//***************************************************************************** +// +// The descriptor string table. +// +//***************************************************************************** +const uint8_t *const g_ppui8StringDescriptors[] = +{ + g_pui8LangDescriptor, + g_pui8ManufacturerString, + g_pui8ProductString, + g_pui8SerialNumberString, + g_pui8DataInterfaceString, + g_pui8ConfigString +}; + +#define NUM_STRING_DESCRIPTORS (sizeof(g_ppui8StringDescriptors) / \ + sizeof(uint8_t *)) + +//***************************************************************************** +// +// The bulk device initialization and customization structures. In this case, +// we are using USBBuffers between the bulk device class driver and the +// application code. The function pointers and callback data values are set +// to insert a buffer in each of the data channels, transmit and receive. +// +// With the buffer in place, the bulk channel callback is set to the relevant +// channel function and the callback data is set to point to the channel +// instance data. The buffer, in turn, has its callback set to the application +// function and the callback data set to our bulk instance structure. +// +//***************************************************************************** +extern const tUSBBuffer g_sTxBuffer; +extern const tUSBBuffer g_sRxBuffer; + +tUSBDBulkDevice g_sBulkDevice = +{ + USB_VID_TI_1CBE, + USB_PID_BULK, + 500, + USB_CONF_ATTR_SELF_PWR, + USBBufferEventCallback, + (void *)&g_sRxBuffer, + USBBufferEventCallback, + (void *)&g_sTxBuffer, + g_ppui8StringDescriptors, + NUM_STRING_DESCRIPTORS +}; + +//***************************************************************************** +// +// Receive buffer (from the USB perspective). +// +//***************************************************************************** +uint8_t g_pui8USBRxBuffer[BULK_BUFFER_SIZE]; +uint8_t g_pui8RxBufferWorkspace[USB_BUFFER_WORKSPACE_SIZE]; +const tUSBBuffer g_sRxBuffer = +{ + false, // This is a receive buffer. + RxHandler, // pfnCallback + (void *)&g_sBulkDevice, // Callback data is our device pointer. + USBDBulkPacketRead, // pfnTransfer + USBDBulkRxPacketAvailable, // pfnAvailable + (void *)&g_sBulkDevice, // pvHandle + g_pui8USBRxBuffer, // pi8Buffer + BULK_BUFFER_SIZE, // ui32BufferSize + g_pui8RxBufferWorkspace // pvWorkspace +}; + +//***************************************************************************** +// +// Transmit buffer (from the USB perspective). +// +//***************************************************************************** +uint8_t g_pui8USBTxBuffer[BULK_BUFFER_SIZE]; +uint8_t g_pui8TxBufferWorkspace[USB_BUFFER_WORKSPACE_SIZE]; +const tUSBBuffer g_sTxBuffer = +{ + true, // This is a transmit buffer. + TxHandler, // pfnCallback + (void *)&g_sBulkDevice, // Callback data is our device pointer. + USBDBulkPacketWrite, // pfnTransfer + USBDBulkTxPacketAvailable, // pfnAvailable + (void *)&g_sBulkDevice, // pvHandle + g_pui8USBTxBuffer, // pi8Buffer + BULK_BUFFER_SIZE, // ui32BufferSize + g_pui8TxBufferWorkspace // pvWorkspace +}; diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.h b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.h new file mode 100644 index 0000000..2799b08 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_bulk_structs.h @@ -0,0 +1,68 @@ +//***************************************************************************** +// +// usb_bulk_structs.h - Data structures defining this bulk USB device. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __USB_BULK_STRUCTS_H__ +#define __USB_BULK_STRUCTS_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +//***************************************************************************** +// +// The size of the transmit and receive buffers used. 256 is chosen pretty +// much at random though the buffer should be at least twice the size of +// a maximum-sized USB packet. +// +//***************************************************************************** +#define BULK_BUFFER_SIZE 256 + +extern uint32_t RxHandler(void *pvCBData, uint32_t ui32Event, + uint32_t ui32MsgValue, void *pvMsgData); +extern uint32_t TxHandler(void *pvi32CBData, uint32_t ui32Event, + uint32_t ui32MsgValue, void *pvMsgData); + +extern const tUSBBuffer g_sTxBuffer; +extern const tUSBBuffer g_sRxBuffer; +extern tUSBDBulkDevice g_sBulkDevice; +extern uint8_t g_pui8USBTxBuffer[]; +extern uint8_t g_pui8USBRxBuffer[]; + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __USB_BULK_STRUCTS_H__ diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.c b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.c new file mode 100644 index 0000000..d7d3273 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.c @@ -0,0 +1,537 @@ +//***************************************************************************** +// +// usb_dev_bulk.c - Main routines for the generic bulk device example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_ints.h" +#include "driverlib/interrupt.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "usblib/usblib.h" +#include "usblib/usb-ids.h" +#include "usblib/device/usbdevice.h" +#include "usblib/device/usbdbulk.h" +#include "utils/uartstdio.h" +#include "utils/ustdlib.h" +#include "drivers/pinout.h" +#include "usb_bulk_structs.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      USB Generic Bulk Device (usb_dev_bulk)

      +//! +//! This example provides a generic USB device offering simple bulk data +//! transfer to and from the host. The device uses a vendor-specific class ID +//! and supports a single bulk IN endpoint and a single bulk OUT endpoint. +//! Data received from the host is assumed to be ASCII text and it is +//! echoed back with the case of all alphabetic characters swapped. +//! +//! A Windows INF file for the device is provided on the installation media and +//! in the C:/ti/TivaWare-C-Series-X.X/windows_drivers directory of TivaWare +//! releases. This INF contains information required to install the WinUSB +//! subsystem on WindowsXP and Vista PCs. WinUSB is a Windows subsystem +//! allowing user mode applications to access the USB device without the need +//! for a vendor-specific kernel mode driver. +//! +//! A sample Windows command-line application, usb_bulk_example, illustrating +//! how to connect to and communicate with the bulk device is also provided. +//! The application binary is installed as part of the ``TivaWare for C Series +//! PC Companion Utilities'' package (SW-TM4C-USB-WIN) on the installation CD +//! or via download from http://www.ti.com/tivaware . Project files are +//! included to allow the examples to be built using +//! Microsoft Visual Studio 2008. Source code for this application can be +//! found in directory ti/TivaWare_C_Series-x.x/tools/usb_bulk_example. +// +//***************************************************************************** + + +//***************************************************************************** +// +// The system tick rate expressed both as ticks per second and a millisecond +// period. +// +//***************************************************************************** +#define SYSTICKS_PER_SECOND 100 +#define SYSTICK_PERIOD_MS (1000 / SYSTICKS_PER_SECOND) + +//***************************************************************************** +// +// The global system tick counter. +// +//***************************************************************************** +volatile uint32_t g_ui32SysTickCount = 0; + +//***************************************************************************** +// +// Variables tracking transmit and receive counts. +// +//***************************************************************************** +volatile uint32_t g_ui32TxCount = 0; +volatile uint32_t g_ui32RxCount = 0; + +//***************************************************************************** +// +// Flags used to pass commands from interrupt context to the main loop. +// +//***************************************************************************** +#define COMMAND_PACKET_RECEIVED 0x00000001 +#define COMMAND_STATUS_UPDATE 0x00000002 + +volatile uint32_t g_ui32Flags = 0; + +//***************************************************************************** +// +// Global flag indicating that a USB configuration has been set. +// +//***************************************************************************** +static volatile bool g_bUSBConfigured = false; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// Interrupt handler for the system tick counter. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + // + // Update our system tick counter. + // + g_ui32SysTickCount++; +} + +//***************************************************************************** +// +// Receive new data and echo it back to the host. +// +// \param psDevice points to the instance data for the device whose data is to +// be processed. +// \param pi8Data points to the newly received data in the USB receive buffer. +// \param ui32NumBytes is the number of bytes of data available to be +// processed. +// +// This function is called whenever we receive a notification that data is +// available from the host. We read the data, byte-by-byte and swap the case +// of any alphabetical characters found then write it back out to be +// transmitted back to the host. +// +// \return Returns the number of bytes of data processed. +// +//***************************************************************************** +static uint32_t +EchoNewDataToHost(tUSBDBulkDevice *psDevice, uint8_t *pi8Data, + uint_fast32_t ui32NumBytes) +{ + uint_fast32_t ui32Loop, ui32Space, ui32Count; + uint_fast32_t ui32ReadIndex; + uint_fast32_t ui32WriteIndex; + tUSBRingBufObject sTxRing; + + // + // Get the current buffer information to allow us to write directly to + // the transmit buffer (we already have enough information from the + // parameters to access the receive buffer directly). + // + USBBufferInfoGet(&g_sTxBuffer, &sTxRing); + + // + // How much space is there in the transmit buffer? + // + ui32Space = USBBufferSpaceAvailable(&g_sTxBuffer); + + // + // How many characters can we process this time round? + // + ui32Loop = (ui32Space < ui32NumBytes) ? ui32Space : ui32NumBytes; + ui32Count = ui32Loop; + + // + // Update our receive counter. + // + g_ui32RxCount += ui32NumBytes; + + // + // Set up to process the characters by directly accessing the USB buffers. + // + ui32ReadIndex = (uint32_t)(pi8Data - g_pui8USBRxBuffer); + ui32WriteIndex = sTxRing.ui32WriteIndex; + + while(ui32Loop) + { + // + // Copy from the receive buffer to the transmit buffer converting + // character case on the way. + // + + // + // Is this a lower case character? + // + if((g_pui8USBRxBuffer[ui32ReadIndex] >= 'a') && + (g_pui8USBRxBuffer[ui32ReadIndex] <= 'z')) + { + // + // Convert to upper case and write to the transmit buffer. + // + g_pui8USBTxBuffer[ui32WriteIndex] = + (g_pui8USBRxBuffer[ui32ReadIndex] - 'a') + 'A'; + } + else + { + // + // Is this an upper case character? + // + if((g_pui8USBRxBuffer[ui32ReadIndex] >= 'A') && + (g_pui8USBRxBuffer[ui32ReadIndex] <= 'Z')) + { + // + // Convert to lower case and write to the transmit buffer. + // + g_pui8USBTxBuffer[ui32WriteIndex] = + (g_pui8USBRxBuffer[ui32ReadIndex] - 'Z') + 'z'; + } + else + { + // + // Copy the received character to the transmit buffer. + // + g_pui8USBTxBuffer[ui32WriteIndex] = + g_pui8USBRxBuffer[ui32ReadIndex]; + } + } + + // + // Move to the next character taking care to adjust the pointer for + // the buffer wrap if necessary. + // + ui32WriteIndex++; + ui32WriteIndex = + (ui32WriteIndex == BULK_BUFFER_SIZE) ? 0 : ui32WriteIndex; + + ui32ReadIndex++; + + ui32ReadIndex = ((ui32ReadIndex == BULK_BUFFER_SIZE) ? + 0 : ui32ReadIndex); + + ui32Loop--; + } + + // + // We've processed the data in place so now send the processed data + // back to the host. + // + USBBufferDataWritten(&g_sTxBuffer, ui32Count); + + // + // We processed as much data as we can directly from the receive buffer so + // we need to return the number of bytes to allow the lower layer to + // update its read pointer appropriately. + // + return(ui32Count); +} + +//***************************************************************************** +// +// Handles bulk driver notifications related to the transmit channel (data to +// the USB host). +// +// \param pvCBData is the client-supplied callback pointer for this channel. +// \param ulEvent identifies the event we are being notified about. +// \param ulMsgValue is an event-specific value. +// \param pvMsgData is an event-specific pointer. +// +// This function is called by the bulk driver to notify us of any events +// related to operation of the transmit data channel (the IN channel carrying +// data to the USB host). +// +// \return The return value is event-specific. +// +//***************************************************************************** +uint32_t +TxHandler(void *pvCBData, uint32_t ui32Event, uint32_t ui32MsgValue, + void *pvMsgData) +{ + // + // We are not required to do anything in response to any transmit event + // in this example. All we do is update our transmit counter. + // + if(ui32Event == USB_EVENT_TX_COMPLETE) + { + g_ui32TxCount += ui32MsgValue; + } + return(0); +} + +//***************************************************************************** +// +// Handles bulk driver notifications related to the receive channel (data from +// the USB host). +// +// \param pvCBData is the client-supplied callback pointer for this channel. +// \param ui32Event identifies the event we are being notified about. +// \param ui32MsgValue is an event-specific value. +// \param pvMsgData is an event-specific pointer. +// +// This function is called by the bulk driver to notify us of any events +// related to operation of the receive data channel (the OUT channel carrying +// data from the USB host). +// +// \return The return value is event-specific. +// +//***************************************************************************** +uint32_t +RxHandler(void *pvCBData, uint32_t ui32Event, uint32_t ui32MsgValue, + void *pvMsgData) +{ + // + // Which event are we being sent? + // + switch(ui32Event) + { + // + // We are connected to a host and communication is now possible. + // + case USB_EVENT_CONNECTED: + { + g_bUSBConfigured = true; + g_ui32Flags |= COMMAND_STATUS_UPDATE; + + // + // Flush our buffers. + // + USBBufferFlush(&g_sTxBuffer); + USBBufferFlush(&g_sRxBuffer); + + break; + } + + // + // The host has disconnected. + // + case USB_EVENT_DISCONNECTED: + { + g_bUSBConfigured = false; + g_ui32Flags |= COMMAND_STATUS_UPDATE; + break; + } + + // + // A new packet has been received. + // + case USB_EVENT_RX_AVAILABLE: + { + tUSBDBulkDevice *psDevice; + + // + // Get a pointer to our instance data from the callback data + // parameter. + // + psDevice = (tUSBDBulkDevice *)pvCBData; + + // + // Read the new packet and echo it back to the host. + // + return(EchoNewDataToHost(psDevice, pvMsgData, ui32MsgValue)); + } + + // + // Ignore SUSPEND and RESUME for now. + // + case USB_EVENT_SUSPEND: + case USB_EVENT_RESUME: + break; + + // + // Ignore all other events and return 0. + // + default: + break; + } + + return(0); +} + +//***************************************************************************** +// +// This is the main application entry function. +// +//***************************************************************************** +int +main(void) +{ + uint_fast32_t ui32TxCount; + uint_fast32_t ui32RxCount; + uint32_t ui32SysClock; + + // + // Run from the PLL at 120 MHz. + // + ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins. + // + PinoutSet(false, true); + + // + // Enable UART0 + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, ui32SysClock); + + // + // Not configured initially. + // + g_bUSBConfigured = false; + + // + // Enable the system tick. + // + ROM_SysTickPeriodSet(ui32SysClock / SYSTICKS_PER_SECOND); + ROM_SysTickIntEnable(); + ROM_SysTickEnable(); + + // + // Show the application name on the display and UART output. + // + UARTprintf("\033[2J\nTiva C Series USB bulk device example\n"); + UARTprintf("---------------------------------\n\n"); + + // + // Tell the user what we are up to. + // + UARTprintf("Configuring USB... \n"); + + // + // Initialize the transmit and receive buffers. + // + USBBufferInit(&g_sTxBuffer); + USBBufferInit(&g_sRxBuffer); + + // + // Initialize the USB stack for device mode. + // + USBStackModeSet(0, eUSBModeDevice, 0); + + // + // Pass our device information to the USB library and place the device + // on the bus. + // + USBDBulkInit(0, &g_sBulkDevice); + + // + // Wait for initial configuration to complete. + // + UARTprintf("Waiting for host...\r"); + + // + // Clear our local byte counters. + // + ui32RxCount = 0; + ui32TxCount = 0; + + // + // Main application loop. + // + while(1) + { + // + // Have we been asked to update the status display? + // + if(g_ui32Flags & COMMAND_STATUS_UPDATE) + { + g_ui32Flags &= ~COMMAND_STATUS_UPDATE; + + if(g_bUSBConfigured) + { + UARTprintf("Host Connected. \n\n"); + UARTprintf("Data transferred:\n"); + UARTprintf("TX: %d RX: %d \r", + g_ui32TxCount, + g_ui32RxCount); + } + else + { + UARTprintf("\n\nHost Disconnected.\n\n"); + } + } + + // + // Has there been any transmit traffic since we last checked? + // + if(ui32TxCount != g_ui32TxCount) + { + // + // Take a snapshot of the latest transmit count. + // + ui32TxCount = g_ui32TxCount; + + // + // Update the displayed buffer count information. + // + UARTprintf("TX: %d RX: %d \r", + g_ui32TxCount, + g_ui32RxCount); + } + + // + // Has there been any receive traffic since we last checked? + // + if(ui32RxCount != g_ui32RxCount) + { + // + // Take a snapshot of the latest receive count. + // + ui32RxCount = g_ui32RxCount; + + // + // Update the displayed buffer count information. + // + UARTprintf("TX: %d RX: %d \r", + g_ui32TxCount, + g_ui32RxCount); + } + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ewd b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ewp b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ewp new file mode 100644 index 0000000..8b5c8a3 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ewp @@ -0,0 +1,802 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + $PROJ_DIR$\..\..\..\..\usblib\ewarm\Exe\usblib.a + + + + Source + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\usb_bulk_structs.c + + + $PROJ_DIR$\usb_dev_bulk.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.icf b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.icf new file mode 100644 index 0000000..4f9ca96 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// usb_dev_bulk.icf - Linker configuration file for usb_dev_bulk. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ld b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ld new file mode 100644 index 0000000..8226826 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * usb_dev_bulk.ld - Linker configuration file for usb_dev_bulk. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.sct b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.sct new file mode 100644 index 0000000..17070e7 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; usb_dev_bulk.sct - Linker configuration file for usb_dev_bulk. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.uvopt b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.uvopt new file mode 100644 index 0000000..9b60d30 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.uvopt @@ -0,0 +1,359 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + usb_dev_bulk + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_bulk_structs.c + usb_bulk_structs.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_dev_bulk.c + usb_dev_bulk.c + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 7 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + 2 + 8 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\usblib\rvmdk\usblib.lib + usblib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 9 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.uvproj b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.uvproj new file mode 100644 index 0000000..6328d22 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk.uvproj @@ -0,0 +1,449 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + usb_dev_bulk + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + usb_dev_bulk + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\usb_dev_bulk.bin .\rvmdk\usb_dev_bulk.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 UART_BUFFERED + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + usb_dev_bulk.sct + + + --entry Reset_Handler + + + + + + + + Source + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + usb_bulk_structs.c + 1 + .\usb_bulk_structs.c + + + usb_dev_bulk.c + 1 + .\usb_dev_bulk.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + usblib.lib + 4 + ..\..\..\..\usblib\rvmdk\usblib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk_ccs.cmd b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk_ccs.cmd new file mode 100644 index 0000000..c3bf51f --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_bulk/usb_dev_bulk_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * usb_dev_bulk_ccs.cmd - CCS linker configuration file for usb_dev_bulk. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 1024; diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/Makefile b/boards/ek-tm4c1294xl/usb_dev_cserial/Makefile new file mode 100644 index 0000000..cd65150 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/Makefile @@ -0,0 +1,91 @@ +#****************************************************************************** +# +# Makefile - Rules for building the USB device composite serial example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the USB device composite serial example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/usb_dev_cserial.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the USB device composite serial example. +# +${COMPILER}/usb_dev_cserial.axf: ${COMPILER}/cmdline.o +${COMPILER}/usb_dev_cserial.axf: ${COMPILER}/pinout.o +${COMPILER}/usb_dev_cserial.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/usb_dev_cserial.axf: ${COMPILER}/usb_dev_cserial.o +${COMPILER}/usb_dev_cserial.axf: ${COMPILER}/usb_structs.o +${COMPILER}/usb_dev_cserial.axf: ${COMPILER}/ustdlib.o +${COMPILER}/usb_dev_cserial.axf: ${ROOT}/usblib/${COMPILER}/libusb.a +${COMPILER}/usb_dev_cserial.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/usb_dev_cserial.axf: usb_dev_cserial.ld +SCATTERgcc_usb_dev_cserial=usb_dev_cserial.ld +ENTRY_usb_dev_cserial=ResetISR +CFLAGSgcc=-DUART_BUFFERED -DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.ccsimportspec new file mode 100644 index 0000000..3489026 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.ccsimportspec @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.ccsproject b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.cproject b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.cproject new file mode 100644 index 0000000..88e829a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.cproject @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.project b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.project new file mode 100644 index 0000000..270eea5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.project @@ -0,0 +1,70 @@ + + + usb_dev_cserial + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_cserial/startup_ccs.c + + + usb_dev_cserial.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.c + + + usb_dev_cserial_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial_ccs.cmd + + + usb_structs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/cmdline.c + 1 + SW_ROOT/utils/cmdline.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/Debug/usb_dev_cserial.bin b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/Debug/usb_dev_cserial.bin new file mode 100644 index 0000000..771e080 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/Debug/usb_dev_cserial.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/Debug/usb_dev_cserial.out b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/Debug/usb_dev_cserial.out new file mode 100644 index 0000000..929e984 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/Debug/usb_dev_cserial.out differ diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ewarm/Exe/usb_dev_cserial.bin b/boards/ek-tm4c1294xl/usb_dev_cserial/ewarm/Exe/usb_dev_cserial.bin new file mode 100644 index 0000000..4a7f911 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_cserial/ewarm/Exe/usb_dev_cserial.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/ewarm/Exe/usb_dev_cserial.out b/boards/ek-tm4c1294xl/usb_dev_cserial/ewarm/Exe/usb_dev_cserial.out new file mode 100644 index 0000000..183a643 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_cserial/ewarm/Exe/usb_dev_cserial.out differ diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/gcc/usb_dev_cserial.axf b/boards/ek-tm4c1294xl/usb_dev_cserial/gcc/usb_dev_cserial.axf new file mode 100644 index 0000000..e053a55 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_cserial/gcc/usb_dev_cserial.axf differ diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/gcc/usb_dev_cserial.bin b/boards/ek-tm4c1294xl/usb_dev_cserial/gcc/usb_dev_cserial.bin new file mode 100644 index 0000000..83820b0 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_cserial/gcc/usb_dev_cserial.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/readme.txt b/boards/ek-tm4c1294xl/usb_dev_cserial/readme.txt new file mode 100644 index 0000000..0d85955 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/readme.txt @@ -0,0 +1,47 @@ +USB Composite Serial Device + +This example application turns the evaluation kit into a multiple virtual +serial ports when connected to the USB host system. The application +supports the USB Communication Device Class, Abstract Control Model to +redirect UART0 traffic to and from the USB host system. For this example, +the evaluation kit will enumerate as a composite device with two virtual +serial ports. Including the physical UART0 connection with the ICDI, this +means that three independent virtual serial ports will be visible to the +USB host. + +The first virtual serial port will echo data to the physical UART0 port on +the device which is connected to the virtual serial port on the ICDI device +on this board. The physical UART0 will also echo onto the first virtual +serial device provided by the Stellaris controller. + +The second Stellaris virtual serial port will provide a console that can +echo data to both the ICDI virtual serial port and the first Stellaris +virtual serial port. It will also allow turning on, off or toggling the +boards led status. Typing a "?" and pressing return should echo a list of +commands to the terminal, since this board can show up as possibly three +individual virtual serial devices. + +Assuming you installed TivaWare in the default directory, a driver +information (INF) file for use with Windows XP, Windows Vista and Windows7 +can be found in C:/TivaWare_C_Series-x.x/windows_drivers. For Windows 2000, +the required INF file is in C:/TivaWare_C_Series-x.x/windows_drivers/win2K. + +------------------------------------------------------------------------------- + +Copyright (c) 2010-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/rvmdk/usb_dev_cserial.axf b/boards/ek-tm4c1294xl/usb_dev_cserial/rvmdk/usb_dev_cserial.axf new file mode 100644 index 0000000..88a742b Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_cserial/rvmdk/usb_dev_cserial.axf differ diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/rvmdk/usb_dev_cserial.bin b/boards/ek-tm4c1294xl/usb_dev_cserial/rvmdk/usb_dev_cserial.bin new file mode 100644 index 0000000..a3a61ca Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_cserial/rvmdk/usb_dev_cserial.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/startup_ccs.c b/boards/ek-tm4c1294xl/usb_dev_cserial/startup_ccs.c new file mode 100644 index 0000000..5299e6b --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/startup_ccs.c @@ -0,0 +1,277 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void USBUARTIntHandler(void); +extern void USB0DeviceIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + USBUARTIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0DeviceIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/startup_ewarm.c b/boards/ek-tm4c1294xl/usb_dev_cserial/startup_ewarm.c new file mode 100644 index 0000000..f1f0477 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/startup_ewarm.c @@ -0,0 +1,308 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void USBUARTIntHandler(void); +extern void USB0DeviceIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + USBUARTIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0DeviceIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/startup_gcc.c b/boards/ek-tm4c1294xl/usb_dev_cserial/startup_gcc.c new file mode 100644 index 0000000..0566d74 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/startup_gcc.c @@ -0,0 +1,324 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void USBUARTIntHandler(void); +extern void USB0DeviceIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + USBUARTIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0DeviceIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/startup_rvmdk.S b/boards/ek-tm4c1294xl/usb_dev_cserial/startup_rvmdk.S new file mode 100644 index 0000000..02ec9ed --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/startup_rvmdk.S @@ -0,0 +1,333 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000400 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN SysTickIntHandler + EXTERN USBUARTIntHandler + EXTERN USB0DeviceIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD USBUARTIntHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD USB0DeviceIntHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.c b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.c new file mode 100644 index 0000000..16ad2ee --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.c @@ -0,0 +1,1687 @@ +//**************************************************************************** +// +// usb_dev_cserial.c - Main routines for the USB CDC composite serial example. +// +// Copyright (c) 2010-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//**************************************************************************** + +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "inc/hw_uart.h" +#include "driverlib/debug.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "driverlib/timer.h" +#include "driverlib/uart.h" +#include "driverlib/usb.h" +#include "usblib/usblib.h" +#include "usblib/usbcdc.h" +#include "usblib/usb-ids.h" +#include "usblib/device/usbdevice.h" +#include "usblib/device/usbdcomp.h" +#include "usblib/device/usbdcdc.h" +#include "utils/cmdline.h" +#include "utils/ustdlib.h" +#include "drivers/pinout.h" +#include "usb_structs.h" + +//**************************************************************************** +// +//! \addtogroup example_list +//!

      USB Composite Serial Device (usb_dev_cserial)

      +//! +//! This example application turns the evaluation kit into a multiple virtual +//! serial ports when connected to the USB host system. The application +//! supports the USB Communication Device Class, Abstract Control Model to +//! redirect UART0 traffic to and from the USB host system. For this example, +//! the evaluation kit will enumerate as a composite device with two virtual +//! serial ports. Including the physical UART0 connection with the ICDI, this +//! means that three independent virtual serial ports will be visible to the +//! USB host. +//! +//! The first virtual serial port will echo data to the physical UART0 port on +//! the device which is connected to the virtual serial port on the ICDI device +//! on this board. The physical UART0 will also echo onto the first virtual +//! serial device provided by the Stellaris controller. +//! +//! The second Stellaris virtual serial port will provide a console that can +//! echo data to both the ICDI virtual serial port and the first Stellaris +//! virtual serial port. It will also allow turning on, off or toggling the +//! boards led status. Typing a "?" and pressing return should echo a list of +//! commands to the terminal, since this board can show up as possibly three +//! individual virtual serial devices. +//! +//! Assuming you installed TivaWare in the default directory, a driver +//! information (INF) file for use with Windows XP, Windows Vista and Windows7 +//! can be found in C:/TivaWare_C_Series-x.x/windows_drivers. For Windows 2000, +//! the required INF file is in C:/TivaWare_C_Series-x.x/windows_drivers/win2K. +// +//***************************************************************************** + +//**************************************************************************** +// +// Note: +// +// This example is intended to run on Stellaris evaluation kit hardware +// where the UARTs are wired solely for TX and RX, and do not have GPIOs +// connected to act as handshake signals. As a result, this example mimics +// the case where communication is always possible. It reports DSR, DCD +// and CTS as high to ensure that the USB host recognizes that data can be +// sent and merely ignores the host's requested DTR and RTS states. "TODO" +// comments in the code indicate where code would be required to add support +// for real handshakes. +// +//**************************************************************************** + + +//**************************************************************************** +// +// The system tick rate expressed both as ticks per second and a millisecond +// period. +// +//**************************************************************************** +#define SYSTICKS_PER_SECOND 100 +#define SYSTICK_PERIOD_MS (1000 / SYSTICKS_PER_SECOND) + +//***************************************************************************** +// +// Variable to remember our clock frequency +// +//***************************************************************************** +uint32_t g_ui32SysClock = 0; + +//**************************************************************************** +// +// Variables tracking transmit and receive counts. +// +//**************************************************************************** +volatile uint32_t g_ui32UARTTxCount = 0; +volatile uint32_t g_ui32UARTRxCount = 0; + +//**************************************************************************** +// +// Default line coding settings for the redirected UART. +// +//**************************************************************************** +#define DEFAULT_BIT_RATE 115200 +#define DEFAULT_UART_CONFIG (UART_CONFIG_WLEN_8 | UART_CONFIG_PAR_NONE | \ + UART_CONFIG_STOP_ONE) + +//**************************************************************************** +// +// GPIO peripherals and pins muxed with the redirected UART. These will +// depend upon the IC in use and the UART selected in UART0_BASE. Be careful +// that these settings all agree with the hardware you are using. +// +//**************************************************************************** +#define TX_GPIO_BASE GPIO_PORTA_BASE +#define TX_GPIO_PERIPH SYSCTL_PERIPH_GPIOA +#define TX_GPIO_PIN GPIO_PIN_1 + +#define RX_GPIO_BASE GPIO_PORTA_BASE +#define RX_GPIO_PERIPH SYSCTL_PERIPH_GPIOA +#define RX_GPIO_PIN GPIO_PIN_0 + +//**************************************************************************** +// +// The LED control macros. +// +//**************************************************************************** +#define LEDOn() ROM_GPIOPinWrite(CLP_D1_PORT, CLP_D1_PIN, CLP_D1_PIN); + +#define LEDOff() ROM_GPIOPinWrite(CLP_D1_PORT, CLP_D1_PIN, 0) +#define LEDToggle() \ + ROM_GPIOPinWrite(CLP_D1_PORT, CLP_D1_PIN, \ + (ROM_GPIOPinRead(CLP_D1_PORT, CLP_D1_PIN) ^ \ + CLP_D1_PIN)); + +//**************************************************************************** +// +// Character sequence sent to the serial terminal to implement a character +// erase when backspace is pressed. +// +//**************************************************************************** +static const char g_pcBackspace[3] = {0x08, ' ', 0x08}; + +//**************************************************************************** +// +// Defines the size of the buffer that holds the command line. +// +//**************************************************************************** +#define CMD_BUF_SIZE 256 + +//**************************************************************************** +// +// The buffer that holds the command line. +// +//**************************************************************************** +static char g_pcCmdBuf[CMD_BUF_SIZE]; +static uint32_t ui32CmdIdx; + +//**************************************************************************** +// +// Flag indicating whether or not we are currently sending a Break condition. +// +//**************************************************************************** +static bool g_bSendingBreak = false; + +//**************************************************************************** +// +// Global system tick counter +// +//**************************************************************************** +volatile uint32_t g_ui32SysTickCount = 0; + +//**************************************************************************** +// +// The memory allocated to hold the composite descriptor that is created by +// the call to USBDCompositeInit(). +// +//**************************************************************************** +uint8_t g_pucDescriptorData[DESCRIPTOR_DATA_SIZE]; + +//**************************************************************************** +// +// Flags used to pass commands from interrupt context to the main loop. +// +//**************************************************************************** +#define COMMAND_PACKET_RECEIVED 0x00000001 +#define COMMAND_STATUS_UPDATE 0x00000002 +#define COMMAND_RECEIVED 0x00000004 + +volatile uint32_t g_ui32Flags = 0; +char *g_pcStatus; + +//**************************************************************************** +// +// Global flag indicating that a USB configuration has been set. +// +//**************************************************************************** +static volatile bool g_bUSBConfigured = false; + +//**************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//**************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ + while(1) + { + } +} +#endif + +//**************************************************************************** +// +// This function will print out to the console UART and not the echo UART. +// +//**************************************************************************** +void +CommandPrint(const char *pcStr) +{ + uint32_t ui32Index; + const char cCR = 0xd; + + ui32Index = 0; + + while(pcStr[ui32Index] != 0) + { + // + // Wait for space for two bytes in case there is a need to send out + // the line feed plus the carriage return. + // + while(USBBufferSpaceAvailable(&g_psTxBuffer[1]) < 2) + { + } + + // + // Print the next character. + // + USBBufferWrite(&g_psTxBuffer[1], (const uint8_t *)&pcStr[ui32Index], + 1); + + // + // If this is a line feed then send a carriage return as well. + // + if(pcStr[ui32Index] == 0xa) + { + USBBufferWrite(&g_psTxBuffer[1], (const uint8_t *)&cCR, 1); + } + + ui32Index++; + } +} + +//**************************************************************************** +// +// This function is called whenever serial data is received from the UART. +// It is passed the accumulated error flags from each character received in +// this interrupt and determines from them whether or not an interrupt +// notification to the host is required. +// +// If a notification is required and the control interrupt endpoint is idle, +// we send the notification immediately. If the endpoint is not idle, we +// accumulate the errors in a global variable which will be checked on +// completion of the previous notification and used to send a second one +// if necessary. +// +//**************************************************************************** +static void +CheckForSerialStateChange(const tUSBDCDCDevice *psDevice, int32_t i32Errors) +{ + unsigned short usSerialState; + + // + // Clear our USB serial state. Since we are faking the handshakes, always + // set the TXCARRIER (DSR) and RXCARRIER (DCD) bits. + // + usSerialState = USB_CDC_SERIAL_STATE_TXCARRIER | + USB_CDC_SERIAL_STATE_RXCARRIER; + + // + // Are any error bits set? + // + if(i32Errors) + { + // + // At least one error is being notified so translate from our hardware + // error bits into the correct state markers for the USB notification. + // + if(i32Errors & UART_DR_OE) + { + usSerialState |= USB_CDC_SERIAL_STATE_OVERRUN; + } + + if(i32Errors & UART_DR_PE) + { + usSerialState |= USB_CDC_SERIAL_STATE_PARITY; + } + + if(i32Errors & UART_DR_FE) + { + usSerialState |= USB_CDC_SERIAL_STATE_FRAMING; + } + + if(i32Errors & UART_DR_BE) + { + usSerialState |= USB_CDC_SERIAL_STATE_BREAK; + } + + // + // Call the CDC driver to notify the state change. + // + USBDCDCSerialStateChange((void *)psDevice, usSerialState); + } +} + +//**************************************************************************** +// +// Read as many characters from the UART FIFO as we can and move them into +// the CDC transmit buffer. +// +// \return Returns UART error flags read during data reception. +// +//**************************************************************************** +static int32_t +ReadUARTData(void) +{ + int32_t i32Char, i32Errors; + uint8_t ucChar; + uint32_t ui32Space; + + // + // Clear our error indicator. + // + i32Errors = 0; + + // + // How much space do we have in the buffer? + // + ui32Space = USBBufferSpaceAvailable((tUSBBuffer *)&g_psTxBuffer[0]); + + // + // Read data from the UART FIFO until there is none left or we run + // out of space in our receive buffer. + // + while(ui32Space && UARTCharsAvail(UART0_BASE)) + { + // + // Read a character from the UART FIFO into the ring buffer if no + // errors are reported. + // + i32Char = UARTCharGetNonBlocking(UART0_BASE); + + // + // If the character did not contain any error notifications, + // copy it to the output buffer. + // + if(!(i32Char & ~0xFF)) + { + ucChar = (uint8_t)(i32Char & 0xFF); + + USBBufferWrite((tUSBBuffer *)&g_psTxBuffer[0], + (uint8_t *)&ucChar, 1); + + // + // Decrement the number of bytes we know the buffer can accept. + // + ui32Space--; + } + else + { + // + // Update our error accumulator. + // + i32Errors |= i32Char; + } + + // + // Update our count of bytes received via the UART. + // + g_ui32UARTRxCount++; + } + + // + // Pass back the accumulated error indicators. + // + return(i32Errors); +} + +//**************************************************************************** +// +// Take as many bytes from the transmit buffer as we have space for and move +// them into the USB UART's transmit FIFO. +// +//**************************************************************************** +static void +USBUARTPrimeTransmit(uint32_t ui32Base) +{ + uint32_t ui32Read; + uint8_t ucChar; + + // + // If we are currently sending a break condition, don't receive any + // more data. We will resume transmission once the break is turned off. + // + if(g_bSendingBreak) + { + return; + } + + // + // If there is space in the UART FIFO, try to read some characters + // from the receive buffer to fill it again. + // + while(UARTSpaceAvail(ui32Base)) + { + // + // Get a character from the buffer. + // + ui32Read = USBBufferRead((tUSBBuffer *)&g_psRxBuffer[0], &ucChar, 1); + + // + // Did we get a character? + // + if(ui32Read) + { + // + // Place the character in the UART transmit FIFO. + // + UARTCharPut(ui32Base, ucChar); + + // + // Update our count of bytes transmitted via the UART. + // + g_ui32UARTTxCount++; + } + else + { + // + // We ran out of characters so exit the function. + // + return; + } + } +} + +//**************************************************************************** +// +// Interrupt handler for the system tick counter. +// +//**************************************************************************** +void +SysTickIntHandler(void) +{ + // + // Update our system time. + // + g_ui32SysTickCount++; +} + +//**************************************************************************** +// +// Interrupt handler for the UART which we are redirecting via USB. +// +//**************************************************************************** +void +USBUARTIntHandler(void) +{ + uint32_t ui32Ints; + int32_t i32Errors; + + // + // Get and clear the current interrupt source(s) + // + ui32Ints = UARTIntStatus(UART0_BASE, true); + UARTIntClear(UART0_BASE, ui32Ints); + + // + // Are we being interrupted because the TX FIFO has space available? + // + if(ui32Ints & UART_INT_TX) + { + // + // Move as many bytes as we can into the transmit FIFO. + // + USBUARTPrimeTransmit(UART0_BASE); + + // + // If the output buffer is empty, turn off the transmit interrupt. + // + if(!USBBufferDataAvailable(&g_psRxBuffer[0])) + { + UARTIntDisable(UART0_BASE, UART_INT_TX); + } + } + + // + // Handle receive interrupts. + // + if(ui32Ints & (UART_INT_RX | UART_INT_RT)) + { + // + // Read the UART's characters into the buffer. + // + i32Errors = ReadUARTData(); + + // + // Check to see if we need to notify the host of any errors we just + // detected. + // + CheckForSerialStateChange(&g_psCDCDevice[0], i32Errors); + } +} + +//**************************************************************************** +// +// Set the state of the RS232 RTS and DTR signals. Handshaking is not +// supported so this request will be ignored. +// +//**************************************************************************** +static void +SetControlLineState(unsigned short usState) +{ +} + +//**************************************************************************** +// +// Set the communication parameters to use on the UART. +// +//**************************************************************************** +static bool +SetLineCoding(tLineCoding *psLineCoding) +{ + uint32_t ui32Config; + bool bRetcode; + + // + // Assume everything is OK until we detect any problem. + // + bRetcode = true; + + // + // Word length. For invalid values, the default is to set 8 bits per + // character and return an error. + // + switch(psLineCoding->ui8Databits) + { + case 5: + { + ui32Config = UART_CONFIG_WLEN_5; + break; + } + + case 6: + { + ui32Config = UART_CONFIG_WLEN_6; + break; + } + + case 7: + { + ui32Config = UART_CONFIG_WLEN_7; + break; + } + + case 8: + { + ui32Config = UART_CONFIG_WLEN_8; + break; + } + + default: + { + ui32Config = UART_CONFIG_WLEN_8; + bRetcode = false; + break; + } + } + + // + // Parity. For any invalid values, we set no parity and return an error. + // + switch(psLineCoding->ui8Parity) + { + case USB_CDC_PARITY_NONE: + { + ui32Config |= UART_CONFIG_PAR_NONE; + break; + } + + case USB_CDC_PARITY_ODD: + { + ui32Config |= UART_CONFIG_PAR_ODD; + break; + } + + case USB_CDC_PARITY_EVEN: + { + ui32Config |= UART_CONFIG_PAR_EVEN; + break; + } + + case USB_CDC_PARITY_MARK: + { + ui32Config |= UART_CONFIG_PAR_ONE; + break; + } + + case USB_CDC_PARITY_SPACE: + { + ui32Config |= UART_CONFIG_PAR_ZERO; + break; + } + + default: + { + ui32Config |= UART_CONFIG_PAR_NONE; + bRetcode = false; + break; + } + } + + // + // Stop bits. Our hardware only supports 1 or 2 stop bits whereas CDC + // allows the host to select 1.5 stop bits. If passed 1.5 (or any other + // invalid or unsupported value of ui8Stop, we set up for 1 stop bit but + // return an error in case the caller needs to Stall or otherwise report + // this back to the host. + // + switch(psLineCoding->ui8Stop) + { + // + // One stop bit requested. + // + case USB_CDC_STOP_BITS_1: + { + ui32Config |= UART_CONFIG_STOP_ONE; + break; + } + + // + // Two stop bits requested. + // + case USB_CDC_STOP_BITS_2: + { + ui32Config |= UART_CONFIG_STOP_TWO; + break; + } + + // + // Other cases are either invalid values of ui8Stop or values that we + // cannot support so set 1 stop bit but return an error. + // + default: + { + ui32Config = UART_CONFIG_STOP_ONE; + bRetcode |= false; + break; + } + } + + // + // Set the UART mode appropriately. + // + UARTConfigSetExpClk(UART0_BASE, g_ui32SysClock, psLineCoding->ui32Rate, + ui32Config); + + // + // Let the caller know if we had a problem or not. + // + return(bRetcode); +} + +//**************************************************************************** +// +// Get the communication parameters in use on the UART. +// +//**************************************************************************** +static void +GetLineCoding(tLineCoding *psLineCoding) +{ + uint32_t ui32Config; + uint32_t ui32Rate; + + // + // Get the current line coding set in the UART. + // + UARTConfigGetExpClk(UART0_BASE, g_ui32SysClock, &ui32Rate, + &ui32Config); + psLineCoding->ui32Rate = ui32Rate; + + // + // Translate the configuration word length field into the format expected + // by the host. + // + switch(ui32Config & UART_CONFIG_WLEN_MASK) + { + case UART_CONFIG_WLEN_8: + { + psLineCoding->ui8Databits = 8; + break; + } + + case UART_CONFIG_WLEN_7: + { + psLineCoding->ui8Databits = 7; + break; + } + + case UART_CONFIG_WLEN_6: + { + psLineCoding->ui8Databits = 6; + break; + } + + case UART_CONFIG_WLEN_5: + { + psLineCoding->ui8Databits = 5; + break; + } + } + + // + // Translate the configuration parity field into the format expected + // by the host. + // + switch(ui32Config & UART_CONFIG_PAR_MASK) + { + case UART_CONFIG_PAR_NONE: + { + psLineCoding->ui8Parity = USB_CDC_PARITY_NONE; + break; + } + + case UART_CONFIG_PAR_ODD: + { + psLineCoding->ui8Parity = USB_CDC_PARITY_ODD; + break; + } + + case UART_CONFIG_PAR_EVEN: + { + psLineCoding->ui8Parity = USB_CDC_PARITY_EVEN; + break; + } + + case UART_CONFIG_PAR_ONE: + { + psLineCoding->ui8Parity = USB_CDC_PARITY_MARK; + break; + } + + case UART_CONFIG_PAR_ZERO: + { + psLineCoding->ui8Parity = USB_CDC_PARITY_SPACE; + break; + } + } + + // + // Translate the configuration stop bits field into the format expected + // by the host. + // + switch(ui32Config & UART_CONFIG_STOP_MASK) + { + case UART_CONFIG_STOP_ONE: + { + psLineCoding->ui8Stop = USB_CDC_STOP_BITS_1; + break; + } + + case UART_CONFIG_STOP_TWO: + { + psLineCoding->ui8Stop = USB_CDC_STOP_BITS_2; + break; + } + } +} + +//**************************************************************************** +// +// This function sets or clears a break condition on the redirected UART RX +// line. A break is started when the function is called with \e bSend set to +// \b true and persists until the function is called again with \e bSend set +// to \b false. +// +//**************************************************************************** +static void +SendBreak(bool bSend) +{ + // + // Are we being asked to start or stop the break condition? + // + if(!bSend) + { + // + // Remove the break condition on the line. + // + UARTBreakCtl(UART0_BASE, false); + g_bSendingBreak = false; + } + else + { + // + // Start sending a break condition on the line. + // + UARTBreakCtl(UART0_BASE, true); + g_bSendingBreak = true; + } +} + +//**************************************************************************** +// +// Handles CDC driver notifications related to control and setup of the +// device. +// +// \param pvCBData is the client-supplied callback pointer for this channel. +// \param ui32Event identifies the event we are being notified about. +// \param ui32MsgValue is an event-specific value. +// \param pvMsgData is an event-specific pointer. +// +// This function is called by the CDC driver to perform control-related +// operations on behalf of the USB host. These functions include setting +// and querying the serial communication parameters, setting handshake line +// states and sending break conditions. +// +// \return The return value is event-specific. +// +//**************************************************************************** +uint32_t +ControlHandler(void *pvCBData, uint32_t ui32Event, + uint32_t ui32MsgValue, void *pvMsgData) +{ + uint32_t ui32IntsOff; + + // + // Which event are we being asked to process? + // + switch(ui32Event) + { + // + // We are connected to a host and communication is now possible. + // + case USB_EVENT_CONNECTED: + { + g_bUSBConfigured = true; + + // + // Flush our buffers. + // + USBBufferFlush(&g_psTxBuffer[0]); + USBBufferFlush(&g_psRxBuffer[0]); + + // + // Tell the main loop to update the display. + // + ui32IntsOff = IntMasterDisable(); + g_pcStatus = "Host connected."; + g_ui32Flags |= COMMAND_STATUS_UPDATE; + if(!ui32IntsOff) + { + IntMasterEnable(); + } + break; + } + + // + // The host has disconnected. + // + case USB_EVENT_DISCONNECTED: + { + g_bUSBConfigured = false; + ui32IntsOff = IntMasterDisable(); + g_pcStatus = "Host disconnected."; + g_ui32Flags |= COMMAND_STATUS_UPDATE; + if(!ui32IntsOff) + { + IntMasterEnable(); + } + break; + } + + // + // Return the current serial communication parameters. + // + case USBD_CDC_EVENT_GET_LINE_CODING: + { + GetLineCoding(pvMsgData); + break; + } + + // + // Set the current serial communication parameters. + // + case USBD_CDC_EVENT_SET_LINE_CODING: + { + SetLineCoding(pvMsgData); + break; + } + + // + // Set the current serial communication parameters. + // + case USBD_CDC_EVENT_SET_CONTROL_LINE_STATE: + { + SetControlLineState((unsigned short)ui32MsgValue); + break; + } + + // + // Send a break condition on the serial line. + // + case USBD_CDC_EVENT_SEND_BREAK: + { + SendBreak(true); + break; + } + + // + // Clear the break condition on the serial line. + // + case USBD_CDC_EVENT_CLEAR_BREAK: + { + SendBreak(false); + break; + } + + // + // Ignore SUSPEND and RESUME for now. + // + case USB_EVENT_SUSPEND: + case USB_EVENT_RESUME: + { + break; + } + + // + // We don't expect to receive any other events. Ignore any that show + // up in a release build or hang in a debug build. + // + default: + { + break; + } + } + + return(0); +} + +//**************************************************************************** +// +// Handles CDC driver notifications related to the transmit channel (data to +// the USB host). +// +// \param ui32CBData is the client-supplied callback pointer for this channel. +// \param ui32Event identifies the event we are being notified about. +// \param ui32MsgValue is an event-specific value. +// \param pvMsgData is an event-specific pointer. +// +// This function is called by the CDC driver to notify us of any events +// related to operation of the transmit data channel (the IN channel carrying +// data to the USB host). +// +// \return The return value is event-specific. +// +//**************************************************************************** +uint32_t +TxHandlerEcho(void *pvCBData, uint32_t ui32Event, uint32_t ui32MsgValue, + void *pvMsgData) +{ + // + // Which event have we been sent? + // + switch(ui32Event) + { + case USB_EVENT_TX_COMPLETE: + { + // + // Since we are using the USBBuffer, we don't need to do anything + // here. + // + break; + } + + // + // We don't expect to receive any other events. Ignore any that show + // up in a release build or hang in a debug build. + // + default: + { + break; + } + } + return(0); +} + +//**************************************************************************** +// +// Handles CDC driver notifications related to the transmit channel (data to +// the USB host). +// +// \param ui32CBData is the client-supplied callback pointer for this channel. +// \param ui32Event identifies the event we are being notified about. +// \param ui32MsgValue is an event-specific value. +// \param pvMsgData is an event-specific pointer. +// +// This function is called by the CDC driver to notify us of any events +// related to operation of the transmit data channel (the IN channel carrying +// data to the USB host). +// +// \return The return value is event-specific. +// +//**************************************************************************** +uint32_t +TxHandlerCmd(void *pvCBData, uint32_t ui32Event, uint32_t ui32MsgValue, + void *pvMsgData) +{ + // + // Which event have we been sent? + // + switch(ui32Event) + { + case USB_EVENT_TX_COMPLETE: + { + // + // Since we are using the USBBuffer, we don't need to do anything + // here. + // + break; + } + + // + // We don't expect to receive any other events. Ignore any that show + // up in a release build or hang in a debug build. + // + default: + { + break; + } + } + return(0); +} + +//**************************************************************************** +// +// Handles CDC driver notifications related to the receive channel (data from +// the USB host). +// +// \param ui32CBData is the client-supplied callback data value for this +// channel. +// \param ui32Event identifies the event we are being notified about. +// \param ui32MsgValue is an event-specific value. +// \param pvMsgData is an event-specific pointer. +// +// This function is called by the CDC driver to notify us of any events +// related to operation of the receive data channel (the OUT channel carrying +// data from the USB host). +// +// \return The return value is event-specific. +// +//**************************************************************************** +uint32_t +RxHandlerEcho(void *pvCBData, uint32_t ui32Event, uint32_t ui32MsgValue, + void *pvMsgData) +{ + uint32_t ui32Count; + + // + // Which event are we being sent? + // + switch(ui32Event) + { + // + // A new packet has been received. + // + case USB_EVENT_RX_AVAILABLE: + { + // + // Feed some characters into the UART TX FIFO and enable the + // interrupt so we are told when there is more space. + // + USBUARTPrimeTransmit(UART0_BASE); + UARTIntEnable(UART0_BASE, UART_INT_TX); + break; + } + + // + // We are being asked how much unprocessed data we have still to + // process. We return 0 if the UART is currently idle or 1 if it is + // in the process of transmitting something. The actual number of + // bytes in the UART FIFO is not important here, merely whether or + // not everything previously sent to us has been transmitted. + // + case USB_EVENT_DATA_REMAINING: + { + // + // Get the number of bytes in the buffer and add 1 if some data + // still has to clear the transmitter. + // + ui32Count = UARTBusy(UART0_BASE) ? 1 : 0; + return(ui32Count); + } + + // + // We are being asked to provide a buffer into which the next packet + // can be read. We do not support this mode of receiving data so let + // the driver know by returning 0. The CDC driver should not be + // sending this message but this is included just for illustration and + // completeness. + // + case USB_EVENT_REQUEST_BUFFER: + { + return(0); + } + + // + // We don't expect to receive any other events. Ignore any that show + // up in a release build or hang in a debug build. + // + default: + { + break; + } + } + + return(0); +} + +//**************************************************************************** +// +// Handles CDC driver notifications related to the receive channel (data from +// the USB host). +// +// \param ui32CBData is the client-supplied callback data value for this +// channel. +// \param ui32Event identifies the event we are being notified about. +// \param ui32MsgValue is an event-specific value. +// \param pvMsgData is an event-specific pointer. +// +// This function is called by the CDC driver to notify us of any events +// related to operation of the receive data channel (the OUT channel carrying +// data from the USB host). +// +// \return The return value is event-specific. +// +//**************************************************************************** +uint32_t +RxHandlerCmd(void *pvCBData, uint32_t ui32Event, uint32_t ui32MsgValue, + void *pvMsgData) +{ + uint8_t ucChar; + const tUSBDCDCDevice *psCDCDevice; + const tUSBBuffer *pBufferRx; + const tUSBBuffer *pBufferTx; + + // + // Which event are we being sent? + // + switch(ui32Event) + { + // + // A new packet has been received. + // + case USB_EVENT_RX_AVAILABLE: + { + // + // Create a device pointer. + // + psCDCDevice = (const tUSBDCDCDevice *)pvCBData; + pBufferRx = (const tUSBBuffer *)psCDCDevice->pvRxCBData; + pBufferTx = (const tUSBBuffer *)psCDCDevice->pvTxCBData; + + // + // Keep reading characters as long as there are more to receive. + // + while(USBBufferRead(pBufferRx, + (uint8_t *)&g_pcCmdBuf[ui32CmdIdx], 1)) + { + // + // If this is a backspace character, erase the last thing typed + // assuming there's something there to type. + // + if(g_pcCmdBuf[ui32CmdIdx] == 0x08) + { + // + // If our current command buffer has any characters in it, + // erase the last one. + // + if(ui32CmdIdx) + { + // + // Delete the last character. + // + ui32CmdIdx--; + + // + // Send a backspace, a space and a further backspace so + // that the character is erased from the terminal too. + // + USBBufferWrite(pBufferTx, + (uint8_t *)g_pcBackspace, 3); + } + } + // + // If this was a line feed then put out a carriage return as + // well. + // + else + { + // + // Feed the new characters into the UART TX FIFO. + // + USBBufferWrite(pBufferTx, + (uint8_t *)&g_pcCmdBuf[ui32CmdIdx], 1); + + // + // Was this a carriage return? + // + if(g_pcCmdBuf[ui32CmdIdx] == 0xd) + { + // + // Set a line feed. + // + ucChar = 0xa; + USBBufferWrite(pBufferTx, &ucChar, 1); + + // + // Indicate that a command has been received. + // + g_ui32Flags |= COMMAND_RECEIVED; + + g_pcCmdBuf[ui32CmdIdx] = 0; + + ui32CmdIdx = 0; + } + + // + // Only increment if the index has not reached the end of + // the buffer and continually overwrite the last value if + // the buffer does attempt to overflow. + // + else if(ui32CmdIdx < CMD_BUF_SIZE) + { + ui32CmdIdx++; + } + } + } + + break; + } + + // + // We are being asked how much unprocessed data we have still to + // process. We return 0 if the UART is currently idle or 1 if it is + // in the process of transmitting something. The actual number of + // bytes in the UART FIFO is not important here, merely whether or + // not everything previously sent to us has been transmitted. + // + case USB_EVENT_DATA_REMAINING: + { + // + // Get the number of bytes in the buffer and add 1 if some data + // still has to clear the transmitter. + // + return(0); + } + + // + // We are being asked to provide a buffer into which the next packet + // can be read. We do not support this mode of receiving data so let + // the driver know by returning 0. The CDC driver should not be + // sending this message but this is included just for illustration and + // completeness. + // + case USB_EVENT_REQUEST_BUFFER: + { + return(0); + } + + // + // We don't expect to receive any other events. Ignore any that show + // up in a release build or hang in a debug build. + // + default: + { + break; + } + } + + return(0); +} + +//**************************************************************************** +// +// This command allows setting, clearing or toggling the Status LED. +// +// The first argument should be one of the following: +// on - Turn on the LED. +// off - Turn off the LED. +// toggle - Toggle the current LED status. +// +//**************************************************************************** +int +Cmd_led(int argc, char *argv[]) +{ + // + // These values only check the second character since all parameters are + // different in that character. + // + if(argv[1][1] == 'n') + { + // + // Turn on the LED. + // + LEDOn(); + } + else if(argv[1][1] == 'f') + { + // + // Turn off the LED. + // + LEDOff(); + } + else if(argv[1][1] == 'o') + { + // + // Toggle the LED. + // + LEDToggle(); + } + else + { + // + // The command format was not correct so print out some help. + // + CommandPrint("\nled \n"); + CommandPrint(" on - Turn on the LED.\n"); + CommandPrint(" off - Turn off the LED.\n"); + CommandPrint(" toggle - Toggle the LED state.\n"); + } + return(0); +} + +//**************************************************************************** +// +// This is a stub that will not be called. It is here to echo the help string +// but will be handled before being called by CmdLineProcess(). +// +//**************************************************************************** +int +Cmd_echo(int argc, char *argv[]) +{ + return(0); +} + +//**************************************************************************** +// +// This function is called when "echo" command is issued so that the +// CmdLineProcess() function does not attempt to split up the string based on +// space delimiters. +// +//**************************************************************************** +int +Echo(char *pucStr) +{ + uint32_t ui32Index; + + // + // Fail the command if the "echo" command is not terminated with a space. + // + if(pucStr[4] != ' ') + { + return(-1); + } + + // + // Put out a carriage return and line feed to both echo ports. + // + USBBufferWrite((tUSBBuffer *)&g_psTxBuffer[0], (uint8_t *)"\r\n", 2); + UARTCharPut(UART0_BASE, '\r'); + UARTCharPut(UART0_BASE, '\n'); + + // + // Loop through the characters and print them to both echo ports. + // + for(ui32Index = 5; ui32Index < CMD_BUF_SIZE; ui32Index++) + { + // + // If a null is found then go to the next argument and replace the + // null with a space character. + // + if(pucStr[ui32Index] == 0) + { + break; + } + + // + // Write out the character to both echo ports. + // + USBBufferWrite((tUSBBuffer *)&g_psTxBuffer[0], + (uint8_t *)&pucStr[ui32Index], 1); + UARTCharPut(UART0_BASE, pucStr[ui32Index]); + } + return(0); +} + +//**************************************************************************** +// +// This function implements the "help" command. It prints a simple list of +// the available commands with a brief description. +// +//**************************************************************************** +int +Cmd_help(int argc, char *argv[]) +{ + tCmdLineEntry *pEntry; + + // + // Print some header text. + // + CommandPrint("\nAvailable commands\n"); + CommandPrint("------------------\n"); + + // + // Point at the beginning of the command table. + // + pEntry = &g_psCmdTable[0]; + + // + // Enter a loop to read each entry from the command table. The end of the + // table has been reached when the command name is NULL. + // + while(pEntry->pcCmd) + { + // + // Print the command name and the brief description. + // + CommandPrint(pEntry->pcCmd); + CommandPrint(pEntry->pcHelp); + CommandPrint("\n"); + + // + // Advance to the next entry in the table. + // + pEntry++; + } + + // + // Return success. + // + return(0); +} + +//**************************************************************************** +// +// This is the table that holds the command names, implementing functions, and +// brief description. +// +//**************************************************************************** +tCmdLineEntry g_psCmdTable[] = +{ + { "help", Cmd_help, " : Display list of commands" }, + { "h", Cmd_help, " : alias for help" }, + { "?", Cmd_help, " : alias for help" }, + { "echo", Cmd_echo, " : Text will be displayed on all echo ports" }, + { "led", Cmd_led, " : Turn on/off/toggle the Status LED" }, + { 0, 0, 0 } +}; + +//**************************************************************************** +// +// This is the main application entry function. +// +//**************************************************************************** +int +main(void) +{ + uint32_t ui32TxCount; + uint32_t ui32RxCount; + int32_t i32Status; + + // + // Run from the PLL at 120 MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Not configured initially. + // + g_bUSBConfigured = false; + + + // + // Enable the peripherals used in this example. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_USB0); + + // + // Configure the device pins. + // + PinoutSet(false, true); + + // + // Turn off the LED. + // + LEDOff(); + + // + // Set the default UART configuration. + // + UARTConfigSetExpClk(UART0_BASE, g_ui32SysClock, DEFAULT_BIT_RATE, + DEFAULT_UART_CONFIG); + UARTFIFOLevelSet(UART0_BASE, UART_FIFO_TX4_8, UART_FIFO_RX4_8); + + // + // Configure and enable UART interrupts. + // + UARTIntClear(UART0_BASE, UARTIntStatus(UART0_BASE, false)); + UARTIntEnable(UART0_BASE, (UART_INT_OE | UART_INT_BE | UART_INT_PE | + UART_INT_FE | UART_INT_RT | UART_INT_TX | UART_INT_RX)); + + // + // Enable the system tick. + // + SysTickPeriodSet(g_ui32SysClock / SYSTICKS_PER_SECOND); + SysTickIntEnable(); + SysTickEnable(); + + // + // Initialize the transmit and receive buffers for first serial device. + // + USBBufferInit(&g_psTxBuffer[0]); + USBBufferInit(&g_psRxBuffer[0]); + + // + // Initialize the first serial port instances that is part of this + // composite device. + // + g_sCompDevice.psDevices[0].pvInstance = + USBDCDCCompositeInit(0, &g_psCDCDevice[0], &g_psCompEntries[0]); + + // + // Initialize the transmit and receive buffers for second serial device. + // + USBBufferInit(&g_psTxBuffer[1]); + USBBufferInit(&g_psRxBuffer[1]); + + // + // Initialize the second serial port instances that is part of this + // composite device. + // + g_sCompDevice.psDevices[1].pvInstance = + USBDCDCCompositeInit(0, &g_psCDCDevice[1], &g_psCompEntries[1]); + + // + // Pass the device information to the USB library and place the device + // on the bus. + // + USBDCompositeInit(0, &g_sCompDevice, DESCRIPTOR_DATA_SIZE, + g_pucDescriptorData); + + // + // Clear our local byte counters. + // + ui32RxCount = 0; + ui32TxCount = 0; + + // + // Set the command index to 0 to start out. + // + ui32CmdIdx = 0; + + // + // Enable interrupts now that the application is ready to start. + // + IntEnable(INT_UART0); + + // + // Main application loop. + // + while(1) + { + if(g_ui32Flags & COMMAND_RECEIVED) + { + // + // Clear the flag + // + g_ui32Flags &= ~COMMAND_RECEIVED; + + // + // Check if this is the "echo" command, "echo" in hex is 0x6f686365 + // this prevents a more complicated string compare. + // + if(0x6f686365 == *((uint32_t *)(g_pcCmdBuf))) + { + // + // Print out the string. + // + i32Status = Echo(g_pcCmdBuf); + } + else + { + // + // Process the command line. + // + i32Status = CmdLineProcess(g_pcCmdBuf); + } + + // + // Handle the case of bad command. + // + if(i32Status == CMDLINE_BAD_CMD) + { + CommandPrint(g_pcCmdBuf); + CommandPrint(" is not a valid command!\n"); + } + CommandPrint("\n> "); + } + + // + // Have we been asked to update the status display? + // + if(g_ui32Flags & COMMAND_STATUS_UPDATE) + { + // + // Clear the command flag + // + IntMasterDisable(); + g_ui32Flags &= ~COMMAND_STATUS_UPDATE; + IntMasterEnable(); + } + + // + // Has there been any transmit traffic since we last checked? + // + if(ui32TxCount != g_ui32UARTTxCount) + { + // + // Take a snapshot of the latest transmit count. + // + ui32TxCount = g_ui32UARTTxCount; + } + + // + // Has there been any receive traffic since we last checked? + // + if(ui32RxCount != g_ui32UARTRxCount) + { + // + // Take a snapshot of the latest receive count. + // + ui32RxCount = g_ui32UARTRxCount; + + } + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ewd b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ewp b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ewp new file mode 100644 index 0000000..8afaa44 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ewp @@ -0,0 +1,802 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + $PROJ_DIR$\..\..\..\..\usblib\ewarm\Exe\usblib.a + + + + Source + + $PROJ_DIR$\..\..\..\..\utils\cmdline.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\usb_dev_cserial.c + + + $PROJ_DIR$\usb_structs.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.icf b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.icf new file mode 100644 index 0000000..b30cf10 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// usb_dev_cserial.icf - Linker configuration file for usb_dev_cserial. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ld b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ld new file mode 100644 index 0000000..8868b95 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * usb_dev_cserial.ld - Linker configuration file for usb_dev_cserial. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.sct b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.sct new file mode 100644 index 0000000..c43fc68 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; usb_dev_cserial.sct - Linker configuration file for usb_dev_cserial. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.uvopt b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.uvopt new file mode 100644 index 0000000..60665a6 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.uvopt @@ -0,0 +1,359 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + usb_dev_cserial + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\cmdline.c + cmdline.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 3 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_dev_cserial.c + usb_dev_cserial.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_structs.c + usb_structs.c + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 7 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + 2 + 8 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\usblib\rvmdk\usblib.lib + usblib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 9 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.uvproj b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.uvproj new file mode 100644 index 0000000..f5b261e --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial.uvproj @@ -0,0 +1,449 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + usb_dev_cserial + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + usb_dev_cserial + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\usb_dev_cserial.bin .\rvmdk\usb_dev_cserial.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT UART_BUFFERED TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + usb_dev_cserial.sct + + + --entry Reset_Handler + + + + + + + + Source + + + cmdline.c + 1 + ..\..\..\..\utils\cmdline.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + usb_dev_cserial.c + 1 + .\usb_dev_cserial.c + + + usb_structs.c + 1 + .\usb_structs.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + usblib.lib + 4 + ..\..\..\..\usblib\rvmdk\usblib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial_ccs.cmd b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial_ccs.cmd new file mode 100644 index 0000000..3f0fcf5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_dev_cserial_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * usb_dev_cserial_ccs.cmd - CCS linker configuration file for usb_dev_cserial. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 1024; diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.c b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.c new file mode 100644 index 0000000..e07b63e --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.c @@ -0,0 +1,298 @@ +//***************************************************************************** +// +// usb_serial_structs.c - Data structures defining this CDC USB device. +// +// Copyright (c) 2009-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_types.h" +#include "driverlib/usb.h" +#include "usblib/usblib.h" +#include "usblib/usbcdc.h" +#include "usblib/usb-ids.h" +#include "usblib/device/usbdevice.h" +#include "usblib/device/usbdcdc.h" +#include "usblib/device/usbdcomp.h" +#include "usb_structs.h" + +//***************************************************************************** +// +// The languages supported by this device. +// +//***************************************************************************** +const uint8_t g_pui8LangDescriptor[] = +{ + 4, + USB_DTYPE_STRING, + USBShort(USB_LANG_EN_US) +}; + +//***************************************************************************** +// +// The manufacturer string. +// +//***************************************************************************** +const uint8_t g_pui8ManufacturerString[] = +{ + (17 + 1) * 2, + USB_DTYPE_STRING, + 'T', 0, 'e', 0, 'x', 0, 'a', 0, 's', 0, ' ', 0, 'I', 0, 'n', 0, 's', 0, + 't', 0, 'r', 0, 'u', 0, 'm', 0, 'e', 0, 'n', 0, 't', 0, 's', 0, +}; + +//***************************************************************************** +// +// The product string. +// +//***************************************************************************** +const uint8_t g_pui8ProductString[] = +{ + 2 + (16 * 2), + USB_DTYPE_STRING, + 'V', 0, 'i', 0, 'r', 0, 't', 0, 'u', 0, 'a', 0, 'l', 0, ' ', 0, + 'C', 0, 'O', 0, 'M', 0, ' ', 0, 'P', 0, 'o', 0, 'r', 0, 't', 0 +}; + +//***************************************************************************** +// +// The serial number string. +// +//***************************************************************************** +const uint8_t g_pui8SerialNumberString[] = +{ + 2 + (8 * 2), + USB_DTYPE_STRING, + '1', 0, '2', 0, '3', 0, '4', 0, '5', 0, '6', 0, '7', 0, '8', 0 +}; + +//***************************************************************************** +// +// The control interface description string. +// +//***************************************************************************** +const uint8_t g_pui8ControlInterfaceString[] = +{ + 2 + (21 * 2), + USB_DTYPE_STRING, + 'A', 0, 'C', 0, 'M', 0, ' ', 0, 'C', 0, 'o', 0, 'n', 0, 't', 0, + 'r', 0, 'o', 0, 'l', 0, ' ', 0, 'I', 0, 'n', 0, 't', 0, 'e', 0, + 'r', 0, 'f', 0, 'a', 0, 'c', 0, 'e', 0 +}; + +//***************************************************************************** +// +// The configuration description string. +// +//***************************************************************************** +const uint8_t g_pui8ConfigString[] = +{ + 2 + (26 * 2), + USB_DTYPE_STRING, + 'S', 0, 'e', 0, 'l', 0, 'f', 0, ' ', 0, 'P', 0, 'o', 0, 'w', 0, + 'e', 0, 'r', 0, 'e', 0, 'd', 0, ' ', 0, 'C', 0, 'o', 0, 'n', 0, + 'f', 0, 'i', 0, 'g', 0, 'u', 0, 'r', 0, 'a', 0, 't', 0, 'i', 0, + 'o', 0, 'n', 0 +}; + +//***************************************************************************** +// +// The descriptor string table. +// +//***************************************************************************** +const uint8_t * const g_pui8StringDescriptors[] = +{ + g_pui8LangDescriptor, + g_pui8ManufacturerString, + g_pui8ProductString, + g_pui8SerialNumberString, + g_pui8ControlInterfaceString, + g_pui8ConfigString +}; + +#define NUM_STRING_DESCRIPTORS (sizeof(g_pui8StringDescriptors) / \ + sizeof(uint8_t *)) + +//***************************************************************************** +// +// The CDC device initialization and customization structures. In this case, +// we are using USBBuffers between the CDC device class driver and the +// application code. The function pointers and callback data values are set +// to insert a buffer in each of the data channels, transmit and receive. +// +// With the buffer in place, the CDC channel callback is set to the relevant +// channel function and the callback data is set to point to the channel +// instance data. The buffer, in turn, has its callback set to the application +// function and the callback data set to our CDC instance structure. +// +//***************************************************************************** +tUSBDCDCDevice g_psCDCDevice[NUM_SERIAL_DEVICES] = +{ + { + USB_VID_TI_1CBE, + USB_PID_SERIAL, + 0, + USB_CONF_ATTR_SELF_PWR, + ControlHandler, + (void *)&g_psCDCDevice[0], + USBBufferEventCallback, + (void *)&g_psRxBuffer[0], + USBBufferEventCallback, + (void *)&g_psTxBuffer[0], + g_pui8StringDescriptors, + NUM_STRING_DESCRIPTORS + }, + { + USB_VID_TI_1CBE, + USB_PID_SERIAL, + 0, + USB_CONF_ATTR_SELF_PWR, + ControlHandler, + (void *)&g_psCDCDevice[1], + USBBufferEventCallback, + (void *)&g_psRxBuffer[1], + USBBufferEventCallback, + (void *)&g_psTxBuffer[1], + g_pui8StringDescriptors, + NUM_STRING_DESCRIPTORS + } +}; + +//***************************************************************************** +// +// Receive buffer (from the USB perspective). +// +//***************************************************************************** +uint8_t g_ppui8USBRxBuffer[NUM_SERIAL_DEVICES][UART_BUFFER_SIZE]; +uint8_t g_ppui8RxBufferWorkspace[NUM_SERIAL_DEVICES][USB_BUFFER_WORKSPACE_SIZE]; +const tUSBBuffer g_psRxBuffer[NUM_SERIAL_DEVICES] = +{ + { + false, // This is a receive buffer. + RxHandlerEcho, // pfnCallback + (void *)&g_psCDCDevice[0], // Callback data is our device pointer. + USBDCDCPacketRead, // pfnTransfer + USBDCDCRxPacketAvailable, // pfnAvailable + (void *)&g_psCDCDevice[0], // pvHandle + g_ppui8USBRxBuffer[0], // pcBuffer + UART_BUFFER_SIZE, // ulBufferSize + g_ppui8RxBufferWorkspace[0] // pvWorkspace + }, + { + false, // This is a receive buffer. + RxHandlerCmd, // pfnCallback + (void *)&g_psCDCDevice[1], // Callback data is our device pointer. + USBDCDCPacketRead, // pfnTransfer + USBDCDCRxPacketAvailable, // pfnAvailable + (void *)&g_psCDCDevice[1], // pvHandle + g_ppui8USBRxBuffer[1], // pcBuffer + UART_BUFFER_SIZE, // ulBufferSize + g_ppui8RxBufferWorkspace[1] // pvWorkspace + } +}; + +//***************************************************************************** +// +// Transmit buffer (from the USB perspective). +// +//***************************************************************************** +uint8_t g_ppcUSBTxBuffer[NUM_SERIAL_DEVICES][UART_BUFFER_SIZE]; +uint8_t g_ppucTxBufferWorkspace[NUM_SERIAL_DEVICES][USB_BUFFER_WORKSPACE_SIZE]; +const tUSBBuffer g_psTxBuffer[NUM_SERIAL_DEVICES] = +{ + { + true, // This is a transmit buffer. + TxHandlerEcho, // pfnCallback + (void *)&g_psCDCDevice[0], // Callback data is our device pointer. + USBDCDCPacketWrite, // pfnTransfer + USBDCDCTxPacketAvailable, // pfnAvailable + (void *)&g_psCDCDevice[0], // pvHandle + g_ppcUSBTxBuffer[0], // pcBuffer + UART_BUFFER_SIZE, // ulBufferSize + g_ppucTxBufferWorkspace[0] // pvWorkspace + }, + { + true, // This is a transmit buffer. + TxHandlerCmd, // pfnCallback + (void *)&g_psCDCDevice[1], // Callback data is our device pointer. + USBDCDCPacketWrite, // pfnTransfer + USBDCDCTxPacketAvailable, // pfnAvailable + (void *)&g_psCDCDevice[1], // pvHandle + g_ppcUSBTxBuffer[1], // pcBuffer + UART_BUFFER_SIZE, // ulBufferSize + g_ppucTxBufferWorkspace[1] // pvWorkspace + } +}; + +//**************************************************************************** +// +// The memory allocated to hold the composite descriptor that is created by +// the call to USBDCompositeInit(). +// +//**************************************************************************** +uint8_t g_pui8DescriptorData[DESCRIPTOR_DATA_SIZE]; + +tCompositeEntry g_psCompEntries[NUM_SERIAL_DEVICES]; + +//**************************************************************************** +// +// Allocate the Device Data for the top level composite device class. +// +//**************************************************************************** +tUSBDCompositeDevice g_sCompDevice = +{ + // + // Stellaris VID. + // + USB_VID_TI_1CBE, + + // + // Stellaris PID for composite serial device. + // + USB_PID_COMP_SERIAL, + + // + // This is in 2mA increments so 500mA. + // + 250, + + // + // Bus powered device. + // + USB_CONF_ATTR_BUS_PWR, + + // + // There is no need for a default composite event handler. + // + 0, + + // + // The string table. + // + g_pui8StringDescriptors, + NUM_STRING_DESCRIPTORS, + + // + // The Composite device array. + // + 2, + g_psCompEntries +}; diff --git a/boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.h b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.h new file mode 100644 index 0000000..c2b3403 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_cserial/usb_structs.h @@ -0,0 +1,62 @@ +//***************************************************************************** +// +// usb_serial_structs.h - Data structures defining this USB CDC device. +// +// Copyright (c) 2009-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __USB_SERIAL_STRUCTS_H__ +#define __USB_SERIAL_STRUCTS_H__ + +//***************************************************************************** +// +// The size of the transmit and receive buffers used for the redirected UART. +// This number should be a power of 2 for best performance. 256 is chosen +// pretty much at random though the buffer should be at least twice the size of +// a maximum-sized USB packet. +// +//***************************************************************************** +#define UART_BUFFER_SIZE 256 +#define NUM_SERIAL_DEVICES 2 +#define DESCRIPTOR_DATA_SIZE (COMPOSITE_DCDC_SIZE + COMPOSITE_DCDC_SIZE) + +extern uint32_t RxHandlerEcho(void *pvCBData, uint32_t ui32Event, + uint32_t ui32MsgValue, void *pvMsgData); +extern uint32_t RxHandlerCmd(void *pvCBData, uint32_t ui32Event, + uint32_t ui32MsgValue, void *pvMsgData); +extern uint32_t TxHandlerEcho(void *pvlCBData, uint32_t ui32Event, + uint32_t ui32MsgValue, void *pvMsgData); +extern uint32_t TxHandlerCmd(void *pvlCBData, uint32_t ui32Event, + uint32_t ui32MsgValue, void *pvMsgData); + +extern uint32_t ControlHandler(void *pvCBData, uint32_t ui32Event, + uint32_t ui32MsgValue, void *pvMsgData); +extern uint32_t EventHandler(void *pvCBData, uint32_t ui32Event, + uint32_t ui32MsgData, void *pvMsgData); +extern const tUSBBuffer g_psTxBuffer[NUM_SERIAL_DEVICES]; +extern const tUSBBuffer g_psRxBuffer[NUM_SERIAL_DEVICES]; +extern tUSBDCDCDevice g_psCDCDevice[NUM_SERIAL_DEVICES]; +extern uint8_t g_pui8USBTxBuffer[]; +extern uint8_t g_pui8USBRxBuffer[]; +extern tCompositeEntry g_psCompEntries[NUM_SERIAL_DEVICES]; +extern tUSBDCompositeDevice g_sCompDevice; +extern uint8_t g_pui8DescriptorData[DESCRIPTOR_DATA_SIZE]; + +#endif // __USB_SERIAL_STRUCTS_H__ diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/Makefile b/boards/ek-tm4c1294xl/usb_dev_keyboard/Makefile new file mode 100644 index 0000000..ce3991a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/Makefile @@ -0,0 +1,91 @@ +#****************************************************************************** +# +# Makefile - Rules for building the USB device keyboard example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the USB device keyboard example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/usb_dev_keyboard.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the USB device keyboard example. +# +${COMPILER}/usb_dev_keyboard.axf: ${COMPILER}/buttons.o +${COMPILER}/usb_dev_keyboard.axf: ${COMPILER}/pinout.o +${COMPILER}/usb_dev_keyboard.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/usb_dev_keyboard.axf: ${COMPILER}/uartstdio.o +${COMPILER}/usb_dev_keyboard.axf: ${COMPILER}/usb_dev_keyboard.o +${COMPILER}/usb_dev_keyboard.axf: ${COMPILER}/usb_keyb_structs.o +${COMPILER}/usb_dev_keyboard.axf: ${ROOT}/usblib/${COMPILER}/libusb.a +${COMPILER}/usb_dev_keyboard.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/usb_dev_keyboard.axf: usb_dev_keyboard.ld +SCATTERgcc_usb_dev_keyboard=usb_dev_keyboard.ld +ENTRY_usb_dev_keyboard=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 -DUART_BUFFERED + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.ccsimportspec new file mode 100644 index 0000000..4a82f9a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.ccsimportspec @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.ccsproject b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.cproject b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.cproject new file mode 100644 index 0000000..5289af6 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.cproject @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.project b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.project new file mode 100644 index 0000000..b135542 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.project @@ -0,0 +1,70 @@ + + + usb_dev_keyboard + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_ccs.c + + + usb_dev_keyboard.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.c + + + usb_dev_keyboard_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard_ccs.cmd + + + usb_keyb_structs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_keyb_structs.c + + + drivers/buttons.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/buttons.c + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/Debug/usb_dev_keyboard.bin b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/Debug/usb_dev_keyboard.bin new file mode 100644 index 0000000..c8b5268 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/Debug/usb_dev_keyboard.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/Debug/usb_dev_keyboard.out b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/Debug/usb_dev_keyboard.out new file mode 100644 index 0000000..9b68619 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/Debug/usb_dev_keyboard.out differ diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ewarm/Exe/usb_dev_keyboard.bin b/boards/ek-tm4c1294xl/usb_dev_keyboard/ewarm/Exe/usb_dev_keyboard.bin new file mode 100644 index 0000000..a5bf586 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_keyboard/ewarm/Exe/usb_dev_keyboard.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/ewarm/Exe/usb_dev_keyboard.out b/boards/ek-tm4c1294xl/usb_dev_keyboard/ewarm/Exe/usb_dev_keyboard.out new file mode 100644 index 0000000..f27fabb Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_keyboard/ewarm/Exe/usb_dev_keyboard.out differ diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/gcc/usb_dev_keyboard.axf b/boards/ek-tm4c1294xl/usb_dev_keyboard/gcc/usb_dev_keyboard.axf new file mode 100644 index 0000000..8e1520a Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_keyboard/gcc/usb_dev_keyboard.axf differ diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/gcc/usb_dev_keyboard.bin b/boards/ek-tm4c1294xl/usb_dev_keyboard/gcc/usb_dev_keyboard.bin new file mode 100644 index 0000000..56572e6 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_keyboard/gcc/usb_dev_keyboard.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/readme.txt b/boards/ek-tm4c1294xl/usb_dev_keyboard/readme.txt new file mode 100644 index 0000000..db56e88 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/readme.txt @@ -0,0 +1,36 @@ +USB HID Keyboard Device + +This example application turns the evaluation board into a USB keyboard +supporting the Human Interface Device class. When the push button is +pressed, a sequence of key presses is simulated to type a string. Care +should be taken to ensure that the active window can safely receive the +text; enter is not pressed at any point so no actions are attempted by the +host if a terminal window is used (for example). The status LED is used to +indicate the current Caps Lock state and is updated in response to any +other keyboard attached to the same USB host system. + +The device implemented by this application also supports USB remote wakeup +allowing it to request the host to reactivate a suspended bus. If the bus +is suspended (as indicated on the terminal window), pressing the push +button will request a remote wakeup assuming the host has not specifically +disabled such requests. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/rvmdk/usb_dev_keyboard.axf b/boards/ek-tm4c1294xl/usb_dev_keyboard/rvmdk/usb_dev_keyboard.axf new file mode 100644 index 0000000..43d2c4c Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_keyboard/rvmdk/usb_dev_keyboard.axf differ diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/rvmdk/usb_dev_keyboard.bin b/boards/ek-tm4c1294xl/usb_dev_keyboard/rvmdk/usb_dev_keyboard.bin new file mode 100644 index 0000000..a034a21 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_dev_keyboard/rvmdk/usb_dev_keyboard.bin differ diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_ccs.c b/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_ccs.c new file mode 100644 index 0000000..38672d7 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_ccs.c @@ -0,0 +1,277 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); +extern void USB0DeviceIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0DeviceIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_ewarm.c b/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_ewarm.c new file mode 100644 index 0000000..7b8c204 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_ewarm.c @@ -0,0 +1,308 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); +extern void USB0DeviceIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0DeviceIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_gcc.c b/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_gcc.c new file mode 100644 index 0000000..edc9f43 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_gcc.c @@ -0,0 +1,324 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void UARTStdioIntHandler(void); +extern void USB0DeviceIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + UARTStdioIntHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0DeviceIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_rvmdk.S b/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_rvmdk.S new file mode 100644 index 0000000..7bcd8e9 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/startup_rvmdk.S @@ -0,0 +1,333 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000400 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN SysTickIntHandler + EXTERN UARTStdioIntHandler + EXTERN USB0DeviceIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD UARTStdioIntHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD USB0DeviceIntHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.c b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.c new file mode 100644 index 0000000..09d8f79 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.c @@ -0,0 +1,677 @@ +//***************************************************************************** +// +// usb_dev_keyboard.c - Main routines for the keyboard example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "inc/hw_gpio.h" +#include "inc/hw_sysctl.h" +#include "driverlib/debug.h" +#include "driverlib/fpu.h" +#include "driverlib/gpio.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/systick.h" +#include "driverlib/uart.h" +#include "usblib/usblib.h" +#include "usblib/usbhid.h" +#include "usblib/device/usbdevice.h" +#include "usblib/device/usbdhid.h" +#include "usblib/device/usbdhidkeyb.h" +#include "drivers/buttons.h" +#include "drivers/pinout.h" +#include "usb_keyb_structs.h" +#include "utils/uartstdio.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      USB HID Keyboard Device (usb_dev_keyboard)

      +//! +//! This example application turns the evaluation board into a USB keyboard +//! supporting the Human Interface Device class. When the push button is +//! pressed, a sequence of key presses is simulated to type a string. Care +//! should be taken to ensure that the active window can safely receive the +//! text; enter is not pressed at any point so no actions are attempted by the +//! host if a terminal window is used (for example). The status LED is used to +//! indicate the current Caps Lock state and is updated in response to any +//! other keyboard attached to the same USB host system. +//! +//! The device implemented by this application also supports USB remote wakeup +//! allowing it to request the host to reactivate a suspended bus. If the bus +//! is suspended (as indicated on the terminal window), pressing the push +//! button will request a remote wakeup assuming the host has not specifically +//! disabled such requests. +// +//***************************************************************************** + + +//***************************************************************************** +// +// The system tick timer period. +// +//***************************************************************************** +#define SYSTICKS_PER_SECOND 100 + +//***************************************************************************** +// +// A mapping from the ASCII value received from the UART to the corresponding +// USB HID usage code. +// +//***************************************************************************** +static const int8_t g_ppi8KeyUsageCodes[][2] = +{ + { 0, HID_KEYB_USAGE_SPACE }, // 0x20 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_1 }, // ! 0x21 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_FQUOTE }, // " 0x22 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_3 }, // # 0x23 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_4 }, // $ 0x24 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_5 }, // % 0x25 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_7 }, // & 0x26 + { 0, HID_KEYB_USAGE_FQUOTE }, // ' 0x27 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_9 }, // ( 0x28 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_0 }, // ) 0x29 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_8 }, // * 0x2a + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_EQUAL }, // + 0x2b + { 0, HID_KEYB_USAGE_COMMA }, // , 0x2c + { 0, HID_KEYB_USAGE_MINUS }, // - 0x2d + { 0, HID_KEYB_USAGE_PERIOD }, // . 0x2e + { 0, HID_KEYB_USAGE_FSLASH }, // / 0x2f + { 0, HID_KEYB_USAGE_0 }, // 0 0x30 + { 0, HID_KEYB_USAGE_1 }, // 1 0x31 + { 0, HID_KEYB_USAGE_2 }, // 2 0x32 + { 0, HID_KEYB_USAGE_3 }, // 3 0x33 + { 0, HID_KEYB_USAGE_4 }, // 4 0x34 + { 0, HID_KEYB_USAGE_5 }, // 5 0x35 + { 0, HID_KEYB_USAGE_6 }, // 6 0x36 + { 0, HID_KEYB_USAGE_7 }, // 7 0x37 + { 0, HID_KEYB_USAGE_8 }, // 8 0x38 + { 0, HID_KEYB_USAGE_9 }, // 9 0x39 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_SEMICOLON }, // : 0x3a + { 0, HID_KEYB_USAGE_SEMICOLON }, // ; 0x3b + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_COMMA }, // < 0x3c + { 0, HID_KEYB_USAGE_EQUAL }, // = 0x3d + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_PERIOD }, // > 0x3e + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_FSLASH }, // ? 0x3f + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_2 }, // @ 0x40 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_A }, // A 0x41 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_B }, // B 0x42 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_C }, // C 0x43 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_D }, // D 0x44 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_E }, // E 0x45 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_F }, // F 0x46 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_G }, // G 0x47 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_H }, // H 0x48 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_I }, // I 0x49 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_J }, // J 0x4a + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_K }, // K 0x4b + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_L }, // L 0x4c + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_M }, // M 0x4d + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_N }, // N 0x4e + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_O }, // O 0x4f + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_P }, // P 0x50 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_Q }, // Q 0x51 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_R }, // R 0x52 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_S }, // S 0x53 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_T }, // T 0x54 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_U }, // U 0x55 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_V }, // V 0x56 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_W }, // W 0x57 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_X }, // X 0x58 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_Y }, // Y 0x59 + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_Z }, // Z 0x5a + { 0, HID_KEYB_USAGE_LBRACKET }, // [ 0x5b + { 0, HID_KEYB_USAGE_BSLASH }, // \ 0x5c + { 0, HID_KEYB_USAGE_RBRACKET }, // ] 0x5d + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_6 }, // ^ 0x5e + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_MINUS }, // _ 0x5f + { 0, HID_KEYB_USAGE_BQUOTE }, // ` 0x60 + { 0, HID_KEYB_USAGE_A }, // a 0x61 + { 0, HID_KEYB_USAGE_B }, // b 0x62 + { 0, HID_KEYB_USAGE_C }, // c 0x63 + { 0, HID_KEYB_USAGE_D }, // d 0x64 + { 0, HID_KEYB_USAGE_E }, // e 0x65 + { 0, HID_KEYB_USAGE_F }, // f 0x66 + { 0, HID_KEYB_USAGE_G }, // g 0x67 + { 0, HID_KEYB_USAGE_H }, // h 0x68 + { 0, HID_KEYB_USAGE_I }, // i 0x69 + { 0, HID_KEYB_USAGE_J }, // j 0x6a + { 0, HID_KEYB_USAGE_K }, // k 0x6b + { 0, HID_KEYB_USAGE_L }, // l 0x6c + { 0, HID_KEYB_USAGE_M }, // m 0x6d + { 0, HID_KEYB_USAGE_N }, // n 0x6e + { 0, HID_KEYB_USAGE_O }, // o 0x6f + { 0, HID_KEYB_USAGE_P }, // p 0x70 + { 0, HID_KEYB_USAGE_Q }, // q 0x71 + { 0, HID_KEYB_USAGE_R }, // r 0x72 + { 0, HID_KEYB_USAGE_S }, // s 0x73 + { 0, HID_KEYB_USAGE_T }, // t 0x74 + { 0, HID_KEYB_USAGE_U }, // u 0x75 + { 0, HID_KEYB_USAGE_V }, // v 0x76 + { 0, HID_KEYB_USAGE_W }, // w 0x77 + { 0, HID_KEYB_USAGE_X }, // x 0x78 + { 0, HID_KEYB_USAGE_Y }, // y 0x79 + { 0, HID_KEYB_USAGE_Z }, // z 0x7a + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_LBRACKET }, // { 0x7b + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_BSLASH }, // | 0x7c + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_RBRACKET }, // } 0x7d + { HID_KEYB_LEFT_SHIFT, HID_KEYB_USAGE_BQUOTE }, // ~ 0x7e +}; + +//***************************************************************************** +// +// This global indicates whether or not we are connected to a USB host. +// +//***************************************************************************** +volatile bool g_bConnected = false; + +//***************************************************************************** +// +// This global indicates whether or not the USB bus is currently in the suspend +// state. +// +//***************************************************************************** +volatile bool g_bSuspended = false; + +//***************************************************************************** +// +// Global system tick counter holds elapsed time since the application started +// expressed in 100ths of a second. +// +//***************************************************************************** +volatile uint32_t g_ui32SysTickCount; + +//***************************************************************************** +// +// The number of system ticks to wait for each USB packet to be sent before +// we assume the host has disconnected. The value 50 equates to half a second. +// +//***************************************************************************** +#define MAX_SEND_DELAY 50 + +//***************************************************************************** +// +// This global is set to true if the host sends a request to set or clear +// any keyboard LED. +// +//***************************************************************************** +volatile bool g_bDisplayUpdateRequired; + +//***************************************************************************** +// +// This enumeration holds the various states that the keyboard can be in during +// normal operation. +// +//***************************************************************************** +volatile enum +{ + // + // Unconfigured. + // + STATE_UNCONFIGURED, + + // + // No keys to send and not waiting on data. + // + STATE_IDLE, + + // + // Waiting on data to be sent out. + // + STATE_SENDING +} +g_eKeyboardState = STATE_UNCONFIGURED; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// Handles asynchronous events from the HID keyboard driver. +// +// \param pvCBData is the event callback pointer provided during +// USBDHIDKeyboardInit(). This is a pointer to our keyboard device structure +// (&g_sKeyboardDevice). +// \param ui32Event identifies the event we are being called back for. +// \param ui32MsgData is an event-specific value. +// \param pvMsgData is an event-specific pointer. +// +// This function is called by the HID keyboard driver to inform the application +// of particular asynchronous events related to operation of the keyboard HID +// device. +// +// \return Returns 0 in all cases. +// +//***************************************************************************** +uint32_t +KeyboardHandler(void *pvCBData, uint32_t ui32Event, uint32_t ui32MsgData, + void *pvMsgData) +{ + switch (ui32Event) + { + // + // The host has connected to us and configured the device. + // + case USB_EVENT_CONNECTED: + { + g_bConnected = true; + g_bSuspended = false; + break; + } + + // + // The host has disconnected from us. + // + case USB_EVENT_DISCONNECTED: + { + g_bConnected = false; + break; + } + + // + // We receive this event every time the host acknowledges transmission + // of a report. It is used here purely as a way of determining whether + // the host is still talking to us or not. + // + case USB_EVENT_TX_COMPLETE: + { + // + // Enter the idle state since we finished sending something. + // + g_eKeyboardState = STATE_IDLE; + break; + } + + // + // This event indicates that the host has suspended the USB bus. + // + case USB_EVENT_SUSPEND: + { + g_bSuspended = true; + break; + } + + // + // This event signals that the host has resumed signalling on the bus. + // + case USB_EVENT_RESUME: + { + g_bSuspended = false; + break; + } + + // + // This event indicates that the host has sent us an Output or + // Feature report and that the report is now in the buffer we provided + // on the previous USBD_HID_EVENT_GET_REPORT_BUFFER callback. + // + case USBD_HID_KEYB_EVENT_SET_LEDS: + { + // + // Set the LED to match the current state of the caps lock LED. + // + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, + (ui32MsgData & HID_KEYB_CAPS_LOCK) ? GPIO_PIN_0 : + 0); + + break; + } + + // + // We ignore all other events. + // + default: + { + break; + } + } + + return(0); +} + +//*************************************************************************** +// +// Wait for a period of time for the state to become idle. +// +// \param ui32TimeoutTick is the number of system ticks to wait before +// declaring a timeout and returning \b false. +// +// This function polls the current keyboard state for ui32TimeoutTicks system +// ticks waiting for it to become idle. If the state becomes idle, the +// function returns true. If it ui32TimeoutTicks occur prior to the state +// becoming idle, false is returned to indicate a timeout. +// +// \return Returns \b true on success or \b false on timeout. +// +//*************************************************************************** +bool +WaitForSendIdle(uint_fast32_t ui32TimeoutTicks) +{ + uint32_t ui32Start; + uint32_t ui32Now; + uint32_t ui32Elapsed; + + ui32Start = g_ui32SysTickCount; + ui32Elapsed = 0; + + while(ui32Elapsed < ui32TimeoutTicks) + { + // + // Is the keyboard is idle, return immediately. + // + if(g_eKeyboardState == STATE_IDLE) + { + return(true); + } + + // + // Determine how much time has elapsed since we started waiting. This + // should be safe across a wrap of g_ui32SysTickCount. + // + ui32Now = g_ui32SysTickCount; + ui32Elapsed = ((ui32Start < ui32Now) ? (ui32Now - ui32Start) : + (((uint32_t)0xFFFFFFFF - ui32Start) + ui32Now + 1)); + } + + // + // If we get here, we timed out so return a bad return code to let the + // caller know. + // + return(false); +} + +//***************************************************************************** +// +// Sends a string of characters via the USB HID keyboard interface. +// +//***************************************************************************** +void +SendString(char *pcStr) +{ + uint32_t ui32Char; + + // + // Loop while there are more characters in the string. + // + while(*pcStr) + { + // + // Get the next character from the string. + // + ui32Char = *pcStr++; + + // + // Skip this character if it is a non-printable character. + // + if((ui32Char < ' ') || (ui32Char > '~')) + { + continue; + } + + // + // Convert the character into an index into the keyboard usage code + // table. + // + ui32Char -= ' '; + + // + // Send the key press message. + // + g_eKeyboardState = STATE_SENDING; + if(USBDHIDKeyboardKeyStateChange((void *)&g_sKeyboardDevice, + g_ppi8KeyUsageCodes[ui32Char][0], + g_ppi8KeyUsageCodes[ui32Char][1], + true) != KEYB_SUCCESS) + { + return; + } + + // + // Wait until the key press message has been sent. + // + if(!WaitForSendIdle(MAX_SEND_DELAY)) + { + g_bConnected = 0; + return; + } + + // + // Send the key release message. + // + g_eKeyboardState = STATE_SENDING; + if(USBDHIDKeyboardKeyStateChange((void *)&g_sKeyboardDevice, + 0, g_ppi8KeyUsageCodes[ui32Char][1], + false) != KEYB_SUCCESS) + { + return; + } + + // + // Wait until the key release message has been sent. + // + if(!WaitForSendIdle(MAX_SEND_DELAY)) + { + g_bConnected = 0; + return; + } + } +} + +//***************************************************************************** +// +// This is the interrupt handler for the SysTick interrupt. It is used to +// update our local tick count which, in turn, is used to check for transmit +// timeouts. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + g_ui32SysTickCount++; +} + +//***************************************************************************** +// +// This is the main loop that runs the application. +// +//***************************************************************************** +int +main(void) +{ + uint_fast32_t ui32LastTickCount; + bool bLastSuspend; + uint32_t ui32SysClock; + + // + // Run from the PLL at 120 MHz. + // + ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins for this board. + // + PinoutSet(false, true); + + // + // Initialize the buttons driver + // + ButtonsInit(); + + // + // Enable UART0 + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, ui32SysClock); + + // + // Not configured initially. + // + g_bConnected = false; + g_bSuspended = false; + bLastSuspend = false; + + // + // Initialize the USB stack for device mode. + // + USBStackModeSet(0, eUSBModeDevice, 0); + + // + // Pass our device information to the USB HID device class driver, + // initialize the USB controller and connect the device to the bus. + // + USBDHIDKeyboardInit(0, &g_sKeyboardDevice); + + // + // Set the system tick to fire 100 times per second. + // + ROM_SysTickPeriodSet(ui32SysClock / SYSTICKS_PER_SECOND); + ROM_SysTickIntEnable(); + ROM_SysTickEnable(); + + // + // Initial Message + // + UARTprintf("\033[2J\033[H\n"); + UARTprintf("******************************\n"); + UARTprintf("* usb-dev-keyboard *\n"); + UARTprintf("******************************\n"); + + // + // The main loop starts here. We begin by waiting for a host connection + // then drop into the main keyboard handling section. If the host + // disconnects, we return to the top and wait for a new connection. + // + while(1) + { + uint8_t ui8Buttons; + uint8_t ui8ButtonsChanged; + + // + // Tell the user what we are doing and provide some basic instructions. + // + UARTprintf("\nWaiting For Host...\n"); + + // + // Wait here until USB device is connected to a host. + // + while(!g_bConnected) + { + } + + // + // Update the status. + // + UARTprintf("\nHost Connected...\n"); + + // + // Enter the idle state. + // + g_eKeyboardState = STATE_IDLE; + + // + // Assume that the bus is not currently suspended if we have just been + // configured. + // + bLastSuspend = false; + + // + // Keep transferring characters from the UART to the USB host for as + // long as we are connected to the host. + // + while(g_bConnected) + { + // + // Remember the current time. + // + ui32LastTickCount = g_ui32SysTickCount; + + // + // Has the suspend state changed since last time we checked? + // + if(bLastSuspend != g_bSuspended) + { + // + // Yes - the state changed. Print state to terminal. + // + bLastSuspend = g_bSuspended; + if(bLastSuspend) + { + UARTprintf("\nBus Suspended ... \n"); + } + else + { + UARTprintf("\nHost Connected ... \n"); + } + } + + // + // See if the button was just pressed. + // + ui8Buttons = ButtonsPoll(&ui8ButtonsChanged, 0); + if(BUTTON_PRESSED(LEFT_BUTTON | RIGHT_BUTTON, ui8Buttons, + ui8ButtonsChanged)) + { + // + // If the bus is suspended then resume it. Otherwise, type + // some "random" characters. + // + if(g_bSuspended) + { + USBDHIDKeyboardRemoteWakeupRequest( + (void *)&g_sKeyboardDevice); + } + else + { + SendString("Make the Switch to TI Microcontrollers!"); + } + } + + // + // Wait for at least 1 system tick to have gone by before we poll + // the buttons again. + // + while(g_ui32SysTickCount == ui32LastTickCount) + { + } + } + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ewd b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ewp b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ewp new file mode 100644 index 0000000..96752f9 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ewp @@ -0,0 +1,802 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + $PROJ_DIR$\..\..\..\..\usblib\ewarm\Exe\usblib.a + + + + Source + + $PROJ_DIR$\..\drivers\buttons.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\usb_dev_keyboard.c + + + $PROJ_DIR$\usb_keyb_structs.c + + + diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.icf b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.icf new file mode 100644 index 0000000..c77d3be --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// usb_dev_keyboard.icf - Linker configuration file for usb_dev_keyboard. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ld b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ld new file mode 100644 index 0000000..e8d1779 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * usb_dev_keyboard.ld - Linker configuration file for usb_dev_keyboard. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.sct b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.sct new file mode 100644 index 0000000..00519eb --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; usb_dev_keyboard.sct - Linker configuration file for usb_dev_keyboard. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.uvopt b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.uvopt new file mode 100644 index 0000000..d9cf69e --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.uvopt @@ -0,0 +1,359 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + usb_dev_keyboard + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\buttons.c + buttons.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 3 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_dev_keyboard.c + usb_dev_keyboard.c + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_keyb_structs.c + usb_keyb_structs.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 7 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + 2 + 8 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\usblib\rvmdk\usblib.lib + usblib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 9 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.uvproj b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.uvproj new file mode 100644 index 0000000..a332224 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard.uvproj @@ -0,0 +1,449 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + usb_dev_keyboard + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + usb_dev_keyboard + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\usb_dev_keyboard.bin .\rvmdk\usb_dev_keyboard.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 UART_BUFFERED + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + usb_dev_keyboard.sct + + + --entry Reset_Handler + + + + + + + + Source + + + buttons.c + 1 + ..\drivers\buttons.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + usb_dev_keyboard.c + 1 + .\usb_dev_keyboard.c + + + usb_keyb_structs.c + 1 + .\usb_keyb_structs.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + usblib.lib + 4 + ..\..\..\..\usblib\rvmdk\usblib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard_ccs.cmd b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard_ccs.cmd new file mode 100644 index 0000000..148cc77 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_dev_keyboard_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * usb_dev_keyboard_ccs.cmd - CCS linker configuration file for usb_dev_keyboard. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 1024; diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_keyb_structs.c b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_keyb_structs.c new file mode 100644 index 0000000..ce9e52c --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_keyb_structs.c @@ -0,0 +1,149 @@ +//***************************************************************************** +// +// usb_keyb_structs.c - Data structures defining the USB keyboard device. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_types.h" +#include "driverlib/usb.h" +#include "usblib/usblib.h" +#include "usblib/usbhid.h" +#include "usblib/usb-ids.h" +#include "usblib/device/usbdevice.h" +#include "usblib/device/usbdhid.h" +#include "usblib/device/usbdhidkeyb.h" +#include "usb_keyb_structs.h" + +//**************************************************************************** +// +// The languages supported by this device. +// +//**************************************************************************** +const uint8_t g_pui8LangDescriptor[] = +{ + 4, + USB_DTYPE_STRING, + USBShort(USB_LANG_EN_US) +}; + +//**************************************************************************** +// +// The manufacturer string. +// +//**************************************************************************** +const uint8_t g_pui8ManufacturerString[] = +{ + (17 + 1) * 2, + USB_DTYPE_STRING, + 'T', 0, 'e', 0, 'x', 0, 'a', 0, 's', 0, ' ', 0, 'I', 0, 'n', 0, 's', 0, + 't', 0, 'r', 0, 'u', 0, 'm', 0, 'e', 0, 'n', 0, 't', 0, 's', 0, +}; + +//**************************************************************************** +// +// The product string. +// +//**************************************************************************** +const uint8_t g_pui8ProductString[] = +{ + (16 + 1) * 2, + USB_DTYPE_STRING, + 'K', 0, 'e', 0, 'y', 0, 'b', 0, 'o', 0, 'a', 0, 'r', 0, 'd', 0, ' ', 0, + 'E', 0, 'x', 0, 'a', 0, 'm', 0, 'p', 0, 'l', 0, 'e', 0 +}; + +//**************************************************************************** +// +// The serial number string. +// +//**************************************************************************** +const uint8_t g_pui8SeriailNumberString[] = +{ + (8 + 1) * 2, + USB_DTYPE_STRING, + '1', 0, '2', 0, '3', 0, '4', 0, '5', 0, '6', 0, '7', 0, '8', 0 +}; + +//***************************************************************************** +// +// The interface description string. +// +//***************************************************************************** +const uint8_t g_pui8HIDInterfaceString[] = +{ + (22 + 1) * 2, + USB_DTYPE_STRING, + 'H', 0, 'I', 0, 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, + 'o', 0, 'a', 0, 'r', 0, 'd', 0, ' ', 0, 'I', 0, 'n', 0, 't', 0, + 'e', 0, 'r', 0, 'f', 0, 'a', 0, 'c', 0, 'e', 0 +}; + +//***************************************************************************** +// +// The configuration description string. +// +//***************************************************************************** +const uint8_t g_pui8ConfigString[] = +{ + (26 + 1) * 2, + USB_DTYPE_STRING, + 'H', 0, 'I', 0, 'D', 0, ' ', 0, 'K', 0, 'e', 0, 'y', 0, 'b', 0, + 'o', 0, 'a', 0, 'r', 0, 'd', 0, ' ', 0, 'C', 0, 'o', 0, 'n', 0, + 'f', 0, 'i', 0, 'g', 0, 'u', 0, 'r', 0, 'a', 0, 't', 0, 'i', 0, + 'o', 0, 'n', 0 +}; + +//***************************************************************************** +// +// The descriptor string table. +// +//***************************************************************************** +const uint8_t * const g_ppui8StringDescriptors[] = +{ + g_pui8LangDescriptor, + g_pui8ManufacturerString, + g_pui8ProductString, + g_pui8SeriailNumberString, + g_pui8HIDInterfaceString, + g_pui8ConfigString +}; + +#define NUM_STRING_DESCRIPTORS (sizeof(g_ppui8StringDescriptors) / \ + sizeof(uint8_t *)) + +//***************************************************************************** +// +// The HID keyboard device initialization and customization structures. +// +//***************************************************************************** +tUSBDHIDKeyboardDevice g_sKeyboardDevice = +{ + USB_VID_TI_1CBE, + USB_PID_KEYBOARD, + 500, + USB_CONF_ATTR_SELF_PWR | USB_CONF_ATTR_RWAKE, + KeyboardHandler, + (void *)&g_sKeyboardDevice, + g_ppui8StringDescriptors, + NUM_STRING_DESCRIPTORS +}; diff --git a/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_keyb_structs.h b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_keyb_structs.h new file mode 100644 index 0000000..9791967 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_dev_keyboard/usb_keyb_structs.h @@ -0,0 +1,52 @@ +//***************************************************************************** +// +// usb_keyb_structs.h - Data structures defining the keyboard USB device. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __USB_KEYB_STRUCTS_H__ +#define __USB_KEYB_STRUCTS_H__ + +//***************************************************************************** +// +// If building with a C++ compiler, make all of the definitions in this header +// have a C binding. +// +//***************************************************************************** +#ifdef __cplusplus +extern "C" +{ +#endif + +extern tUSBDHIDKeyboardDevice g_sKeyboardDevice; +extern uint32_t KeyboardHandler(void *pvCBData, uint32_t ui32Event, + uint32_t ui32MsgData, void *pvMsgData); + +//***************************************************************************** +// +// Mark the end of the C bindings section for C++ compilers. +// +//***************************************************************************** +#ifdef __cplusplus +} +#endif + +#endif // __USB_KEYB_STRUCTS_H__ diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/Makefile b/boards/ek-tm4c1294xl/usb_host_keyboard/Makefile new file mode 100644 index 0000000..8ef51c5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/Makefile @@ -0,0 +1,89 @@ +#****************************************************************************** +# +# Makefile - Rules for building the USB host keyboard example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the USB host keyboard example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/usb_host_keyboard.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the USB host keyboard example. +# +${COMPILER}/usb_host_keyboard.axf: ${COMPILER}/pinout.o +${COMPILER}/usb_host_keyboard.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/usb_host_keyboard.axf: ${COMPILER}/uartstdio.o +${COMPILER}/usb_host_keyboard.axf: ${COMPILER}/usb_host_keyboard.o +${COMPILER}/usb_host_keyboard.axf: ${ROOT}/usblib/${COMPILER}/libusb.a +${COMPILER}/usb_host_keyboard.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/usb_host_keyboard.axf: usb_host_keyboard.ld +SCATTERgcc_usb_host_keyboard=usb_host_keyboard.ld +ENTRY_usb_host_keyboard=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.ccsimportspec new file mode 100644 index 0000000..daa301e --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.ccsproject b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.cproject b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.cproject new file mode 100644 index 0000000..bed9172 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.cproject @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.project b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.project new file mode 100644 index 0000000..d3a90e5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.project @@ -0,0 +1,60 @@ + + + usb_host_keyboard + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_host_keyboard/startup_ccs.c + + + usb_host_keyboard.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.c + + + usb_host_keyboard_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard_ccs.cmd + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/Debug/usb_host_keyboard.bin b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/Debug/usb_host_keyboard.bin new file mode 100644 index 0000000..17c6572 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/Debug/usb_host_keyboard.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/Debug/usb_host_keyboard.out b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/Debug/usb_host_keyboard.out new file mode 100644 index 0000000..186e37f Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/Debug/usb_host_keyboard.out differ diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ewarm/Exe/usb_host_keyboard.bin b/boards/ek-tm4c1294xl/usb_host_keyboard/ewarm/Exe/usb_host_keyboard.bin new file mode 100644 index 0000000..a469564 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_keyboard/ewarm/Exe/usb_host_keyboard.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/ewarm/Exe/usb_host_keyboard.out b/boards/ek-tm4c1294xl/usb_host_keyboard/ewarm/Exe/usb_host_keyboard.out new file mode 100644 index 0000000..209c6eb Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_keyboard/ewarm/Exe/usb_host_keyboard.out differ diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/gcc/usb_host_keyboard.axf b/boards/ek-tm4c1294xl/usb_host_keyboard/gcc/usb_host_keyboard.axf new file mode 100644 index 0000000..3ca6577 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_keyboard/gcc/usb_host_keyboard.axf differ diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/gcc/usb_host_keyboard.bin b/boards/ek-tm4c1294xl/usb_host_keyboard/gcc/usb_host_keyboard.bin new file mode 100644 index 0000000..6fc5565 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_keyboard/gcc/usb_host_keyboard.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/readme.txt b/boards/ek-tm4c1294xl/usb_host_keyboard/readme.txt new file mode 100644 index 0000000..1f3823c --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/readme.txt @@ -0,0 +1,29 @@ +USB HID Keyboard Host + +This application demonstrates the handling of a USB keyboard attached to +the evaluation kit. Once attached, text typed on the keyboard will appear +on the UART. Any keyboard that supports the USB HID BIOS protocol is +supported. + +UART0, connected to the ICDI virtual COM port and running at 115,200, +8-N-1, is used to display messages from this application. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/rvmdk/usb_host_keyboard.axf b/boards/ek-tm4c1294xl/usb_host_keyboard/rvmdk/usb_host_keyboard.axf new file mode 100644 index 0000000..d154665 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_keyboard/rvmdk/usb_host_keyboard.axf differ diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/rvmdk/usb_host_keyboard.bin b/boards/ek-tm4c1294xl/usb_host_keyboard/rvmdk/usb_host_keyboard.bin new file mode 100644 index 0000000..e452df2 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_keyboard/rvmdk/usb_host_keyboard.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/startup_ccs.c b/boards/ek-tm4c1294xl/usb_host_keyboard/startup_ccs.c new file mode 100644 index 0000000..b673a9e --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/startup_ccs.c @@ -0,0 +1,276 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void USB0OTGModeIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0OTGModeIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/startup_ewarm.c b/boards/ek-tm4c1294xl/usb_host_keyboard/startup_ewarm.c new file mode 100644 index 0000000..f764d14 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/startup_ewarm.c @@ -0,0 +1,307 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void USB0OTGModeIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[512] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0OTGModeIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/startup_gcc.c b/boards/ek-tm4c1294xl/usb_host_keyboard/startup_gcc.c new file mode 100644 index 0000000..139dc63 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/startup_gcc.c @@ -0,0 +1,323 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void USB0OTGModeIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[512]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0OTGModeIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/startup_rvmdk.S b/boards/ek-tm4c1294xl/usb_host_keyboard/startup_rvmdk.S new file mode 100644 index 0000000..2e78fd4 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/startup_rvmdk.S @@ -0,0 +1,332 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000800 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN SysTickIntHandler + EXTERN USB0OTGModeIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD USB0OTGModeIntHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.c b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.c new file mode 100644 index 0000000..b6e3adf --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.c @@ -0,0 +1,667 @@ +//***************************************************************************** +// +// usb_host_keyboard.c - main application code for the host keyboard example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/gpio.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/usb.h" +#include "driverlib/udma.h" +#include "usblib/usblib.h" +#include "usblib/usbhid.h" +#include "usblib/host/usbhost.h" +#include "usblib/host/usbhhid.h" +#include "usblib/host/usbhhidkeyboard.h" +#include "utils/uartstdio.h" +#include "drivers/pinout.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      USB HID Keyboard Host (usb_host_keyboard)

      +//! +//! This application demonstrates the handling of a USB keyboard attached to +//! the evaluation kit. Once attached, text typed on the keyboard will appear +//! on the UART. Any keyboard that supports the USB HID BIOS protocol is +//! supported. +//! +//! UART0, connected to the ICDI virtual COM port and running at 115,200, +//! 8-N-1, is used to display messages from this application. +// +//***************************************************************************** + +//***************************************************************************** +// +// The number of SysTick ticks per second. +// +//***************************************************************************** +#define TICKS_PER_SECOND 100 +#define MS_PER_SYSTICK (1000 / TICKS_PER_SECOND) + +//***************************************************************************** +// +// Our running system tick counter and a global used to determine the time +// elapsed since last call to GetTickms(). +// +//***************************************************************************** +uint32_t g_ui32SysTickCount; +uint32_t g_ui32LastTick; + +//***************************************************************************** +// +// The size of the host controller's memory pool in bytes. +// +//***************************************************************************** +#define HCD_MEMORY_SIZE 128 + +//***************************************************************************** +// +// The memory pool to provide to the Host controller driver. +// +//***************************************************************************** +uint8_t g_pHCDPool[HCD_MEMORY_SIZE]; + +//***************************************************************************** +// +// The size of the keyboard device interface's memory pool in bytes. +// +//***************************************************************************** +#define KEYBOARD_MEMORY_SIZE 128 + +//***************************************************************************** +// +// The memory pool to provide to the keyboard device. +// +//***************************************************************************** +uint8_t g_pui8Buffer[KEYBOARD_MEMORY_SIZE]; + +//***************************************************************************** +// +// Declare the USB Events driver interface. +// +//***************************************************************************** +DECLARE_EVENT_DRIVER(g_sUSBEventDriver, 0, 0, USBHCDEvents); + +//***************************************************************************** +// +// The global that holds all of the host drivers in use in the application. +// In this case, only the Keyboard class is loaded. +// +//***************************************************************************** +static tUSBHostClassDriver const * const g_ppHostClassDrivers[] = +{ + &g_sUSBHIDClassDriver, + &g_sUSBEventDriver +}; + +//***************************************************************************** +// +// This global holds the number of class drivers in the g_ppHostClassDrivers +// list. +// +//***************************************************************************** +static const uint32_t g_ui32NumHostClassDrivers = + sizeof(g_ppHostClassDrivers) / sizeof(tUSBHostClassDriver *); + +//***************************************************************************** +// +// The control table used by the uDMA controller. This table must be aligned +// to a 1024 byte boundary. In this application uDMA is only used for USB, +// so only the first 6 channels are needed. +// +//***************************************************************************** +#if defined(ewarm) +#pragma data_alignment=1024 +tDMAControlTable g_sDMAControlTable[6]; +#elif defined(ccs) +#pragma DATA_ALIGN(g_sDMAControlTable, 1024) +tDMAControlTable g_sDMAControlTable[6]; +#else +tDMAControlTable g_sDMAControlTable[6] __attribute__ ((aligned(1024))); +#endif + +//***************************************************************************** +// +// The instance data for the MSC driver. +// +//***************************************************************************** +tUSBHKeyboard *g_psKeyboardInstance = 0; + + +//***************************************************************************** +// +// This enumerated type is used to hold the states of the keyboard. +// +//***************************************************************************** +enum +{ + // + // No device is present. + // + STATE_NO_DEVICE, + + // + // Keyboard has been detected and needs to be initialized in the main + // loop. + // + STATE_KEYBOARD_INIT, + + // + // Keyboard is connected and waiting for events. + // + STATE_KEYBOARD_CONNECTED, + + // + // Keyboard has received a key press that requires updating the keyboard + // in the main loop. + // + STATE_KEYBOARD_UPDATE, + + // + // An unsupported device has been attached. + // + STATE_UNKNOWN_DEVICE, + + // + // A power fault has occurred. + // + STATE_POWER_FAULT +} +g_eUSBState; + +extern const tHIDKeyboardUsageTable g_sUSKeyboardMap; + +//***************************************************************************** +// +// This variable holds the current status of the modifiers keys. +// +//***************************************************************************** +uint32_t g_ui32Modifiers = 0; + +//***************************************************************************** +// +// The current USB operating mode - Host, Device or unknown. +// +//***************************************************************************** +tUSBMode g_eCurrentUSBMode; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// This is the handler for this SysTick interrupt. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + // + // Update our tick counter. + // + g_ui32SysTickCount++; +} + +//***************************************************************************** +// +// This function returns the number of ticks since the last time this function +// was called. +// +//***************************************************************************** +uint32_t +GetTickms(void) +{ + uint32_t ui32RetVal; + uint32_t ui32Saved; + + ui32RetVal = g_ui32SysTickCount; + ui32Saved = ui32RetVal; + + if(ui32Saved > g_ui32LastTick) + { + ui32RetVal = ui32Saved - g_ui32LastTick; + } + else + { + ui32RetVal = g_ui32LastTick - ui32Saved; + } + + // + // This could miss a few milliseconds but the timings here are on a + // much larger scale. + // + g_ui32LastTick = ui32Saved; + + // + // Return the number of milliseconds since the last time this was called. + // + return(ui32RetVal * MS_PER_SYSTICK); +} + +//***************************************************************************** +// +// This is the generic callback from host stack. +// +// \param pvData is actually a pointer to a tEventInfo structure. +// +// This function will be called to inform the application when a USB event has +// occurred that is outside those related to the keyboard device. At this +// point this is used to detect unsupported devices being inserted and removed. +// It is also used to inform the application when a power fault has occurred. +// This function is required when the g_USBGenericEventDriver is included in +// the host controller driver array that is passed in to the +// USBHCDRegisterDrivers() function. +// +// \return None. +// +//***************************************************************************** +void +USBHCDEvents(void *pvData) +{ + tEventInfo *pEventInfo; + + // + // Cast this pointer to its actual type. + // + pEventInfo = (tEventInfo *)pvData; + + switch(pEventInfo->ui32Event) + { + // + // New keyboard detected. + // + case USB_EVENT_CONNECTED: + { + // + // See if this is a HID Keyboard. + // + if((USBHCDDevClass(pEventInfo->ui32Instance, 0) == USB_CLASS_HID) && + (USBHCDDevProtocol(pEventInfo->ui32Instance, 0) == + USB_HID_PROTOCOL_KEYB)) + { + // + // Indicate that the keyboard has been detected. + // + UARTprintf("\nKeyboard Connected\n"); + + // + // Proceed to the STATE_KEYBOARD_INIT state so that the main + // loop can finish initialized the mouse since + // USBHKeyboardInit() cannot be called from within a callback. + // + g_eUSBState = STATE_KEYBOARD_INIT; + } + + break; + } + // + // Unsupported device detected. + // + case USB_EVENT_UNKNOWN_CONNECTED: + { + UARTprintf("Unsupported Device Class (0x%02x) Connected.\n", + pEventInfo->ui32Instance); + + // + // An unknown device was detected. + // + g_eUSBState = STATE_UNKNOWN_DEVICE; + + break; + } + // + // Device has been unplugged. + // + case USB_EVENT_DISCONNECTED: + { + // + // Indicate that the device has been disconnected. + // + UARTprintf("\nDevice Disconnected\n"); + + // + // Change the state so that the main loop knows that the device + // is no longer present. + // + g_eUSBState = STATE_NO_DEVICE; + + break; + } + // + // Power Fault has occurred. + // + case USB_EVENT_POWER_FAULT: + { + UARTprintf("Power Fault\n"); + + // + // No power means no device is present. + // + g_eUSBState = STATE_POWER_FAULT; + + break; + } + + default: + { + break; + } + } +} + +//***************************************************************************** +// +// This is the callback from the USB HID keyboard handler. +// +// \param pvCBData is ignored by this function. +// \param ui32Event is one of the valid events for a keyboard device. +// \param ui32MsgParam is defined by the event that occurs. +// \param pvMsgData is a pointer to data that is defined by the event that +// occurs. +// +// This function will be called to inform the application when a keyboard has +// been plugged in or removed and any time a key is pressed or released. +// +// \return This function will return 0. +// +//***************************************************************************** +void +KeyboardCallback(tUSBHKeyboard *psKbInstance, uint32_t ui32Event, + uint32_t ui32MsgParam, void *pvMsgData) +{ + unsigned char ucChar; + + switch(ui32Event) + { + // + // New Key press detected. + // + case USBH_EVENT_HID_KB_PRESS: + { + // + // If this was a Caps Lock key then update the Caps Lock state. + // + if(ui32MsgParam == HID_KEYB_USAGE_CAPSLOCK) + { + // + // The main loop needs to update the keyboard's Caps Lock + // state. + // + g_eUSBState = STATE_KEYBOARD_UPDATE; + + // + // Toggle the current Caps Lock state. + // + g_ui32Modifiers ^= HID_KEYB_CAPS_LOCK; + } + else if(ui32MsgParam == HID_KEYB_USAGE_SCROLLOCK) + { + // + // The main loop needs to update the keyboard's Scroll Lock + // state. + // + g_eUSBState = STATE_KEYBOARD_UPDATE; + + // + // Toggle the current Scroll Lock state. + // + g_ui32Modifiers ^= HID_KEYB_SCROLL_LOCK; + } + else if(ui32MsgParam == HID_KEYB_USAGE_NUMLOCK) + { + // + // The main loop needs to update the keyboard's Scroll Lock + // state. + // + g_eUSBState = STATE_KEYBOARD_UPDATE; + + // + // Toggle the current Num Lock state. + // + g_ui32Modifiers ^= HID_KEYB_NUM_LOCK; + } + else if(ui32MsgParam == HID_KEYB_USAGE_BACKSPACE) + { + // + // This is the backspace, so move the cursor left and erase + // that character. + // + UARTprintf("\b \b"); + } + else + { + // + // Print the current key out the UART. + // + ucChar = (unsigned char) + USBHKeyboardUsageToChar(g_psKeyboardInstance, + &g_sUSKeyboardMap, + (unsigned char)ui32MsgParam); + // + // A zero value indicates there was no textual mapping of this + // usage code. + // + if(ucChar != 0) + { + UARTprintf("%c", ucChar); + } + } + break; + } + + case USBH_EVENT_HID_KB_MOD: + { + // + // This application ignores the state of the shift or control + // and other special keys. + // + break; + } + + case USBH_EVENT_HID_KB_REL: + { + // + // This applications ignores the release of keys as well. + // + break; + } + } +} + +//***************************************************************************** +// +// This is the main loop that runs the application. +// +//***************************************************************************** +int +main(void) +{ + uint32_t ui32SysClock; + + // + // Initially wait for device connection. + // + g_eUSBState = STATE_NO_DEVICE; + + // + // Run from the PLL at 120 MHz. + // + + ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Enable the pins and peripherals used by this example. + // + PinoutSet(0,1); + + // + // Enable the UART and print a brief message. + // + UARTStdioConfig(0, 115200, ui32SysClock); + UARTprintf("\033[2J\033[H"); + UARTprintf("Host Keyboard Application\n"); + + // + // Configure SysTick for a 100Hz interrupt. + // + ROM_SysTickPeriodSet(ui32SysClock / TICKS_PER_SECOND); + ROM_SysTickEnable(); + ROM_SysTickIntEnable(); + + // + // Enable the uDMA controller and set up the control table base. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA); + ROM_uDMAEnable(); + ROM_uDMAControlBaseSet(g_sDMAControlTable); + + // + // Initialize the USB stack in host mode. No callback is needed at this + // time. + // + USBStackModeSet(0, eUSBModeHost, 0); + + // + // Register the host class drivers. + // + USBHCDRegisterDrivers(0, g_ppHostClassDrivers, g_ui32NumHostClassDrivers); + + // + // Open an instance of the keyboard driver. The keyboard does not need + // to be present at this time, this just save a place for it and allows + // the applications to be notified when a keyboard is present. + // + g_psKeyboardInstance = USBHKeyboardOpen(KeyboardCallback, g_pui8Buffer, + KEYBOARD_MEMORY_SIZE); + + // + // Initialize the power configuration. This sets the power enable signal + // to be active high and does not enable the power fault. + // + USBHCDPowerConfigInit(0, USBHCD_VBUS_AUTO_HIGH | USBHCD_VBUS_FILTER); + + // + // Initialize the USB controller for host operation. + // + USBHCDInit(0, g_pHCDPool, HCD_MEMORY_SIZE); + + // + // The main loop for the application. + // + while(1) + { + // + // Tell the OTG library code how much time has passed in + // milliseconds since the last call. + // + USBOTGMain(GetTickms()); + + switch(g_eUSBState) + { + // + // This state is entered when they keyboard is first detected. + // + case STATE_KEYBOARD_INIT: + { + // + // Initialized the newly connected keyboard. + // + USBHKeyboardInit(g_psKeyboardInstance); + + // + // Proceed to the keyboard connected state. + // + g_eUSBState = STATE_KEYBOARD_CONNECTED; + + USBHKeyboardModifierSet(g_psKeyboardInstance, g_ui32Modifiers); + + break; + } + + case STATE_KEYBOARD_UPDATE: + { + // + // If the application detected a change that required an + // update to be sent to the keyboard to change the modifier + // state then call it and return to the connected state. + // + g_eUSBState = STATE_KEYBOARD_CONNECTED; + + USBHKeyboardModifierSet(g_psKeyboardInstance, g_ui32Modifiers); + + break; + } + + case STATE_KEYBOARD_CONNECTED: + { + // + // Nothing is currently done in the main loop when the keyboard + // is connected. + // + break; + } + + case STATE_UNKNOWN_DEVICE: + { + // + // Nothing to do as the device is unknown. + // + break; + } + + case STATE_NO_DEVICE: + { + // + // Nothing is currently done in the main loop when the keyboard + // is not connected. + // + break; + } + + default: + { + break; + } + } + } +} + diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ewd b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ewp b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ewp new file mode 100644 index 0000000..f3701ca --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ewp @@ -0,0 +1,795 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + $PROJ_DIR$\..\..\..\..\usblib\ewarm\Exe\usblib.a + + + + Source + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\usb_host_keyboard.c + + + diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.icf b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.icf new file mode 100644 index 0000000..b3502e2 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// usb_host_keyboard.icf - Linker configuration file for usb_host_keyboard. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ld b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ld new file mode 100644 index 0000000..1f0bb97 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * usb_host_keyboard.ld - Linker configuration file for usb_host_keyboard. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.sct b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.sct new file mode 100644 index 0000000..304ac25 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; usb_host_keyboard.sct - Linker configuration file for usb_host_keyboard. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.uvopt b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.uvopt new file mode 100644 index 0000000..ba1f49d --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.uvopt @@ -0,0 +1,331 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + usb_host_keyboard + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_host_keyboard.c + usb_host_keyboard.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 5 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + 2 + 6 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\usblib\rvmdk\usblib.lib + usblib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 7 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.uvproj b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.uvproj new file mode 100644 index 0000000..590e2d7 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard.uvproj @@ -0,0 +1,439 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + usb_host_keyboard + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + usb_host_keyboard + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\usb_host_keyboard.bin .\rvmdk\usb_host_keyboard.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + usb_host_keyboard.sct + + + --entry Reset_Handler + + + + + + + + Source + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + usb_host_keyboard.c + 1 + .\usb_host_keyboard.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + usblib.lib + 4 + ..\..\..\..\usblib\rvmdk\usblib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard_ccs.cmd b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard_ccs.cmd new file mode 100644 index 0000000..0828212 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_keyboard/usb_host_keyboard_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * usb_host_keyboard_ccs.cmd - CCS linker configuration file for usb_host_keyboard. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 2048; diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/Makefile b/boards/ek-tm4c1294xl/usb_host_mouse/Makefile new file mode 100644 index 0000000..0fb0d16 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/Makefile @@ -0,0 +1,90 @@ +#****************************************************************************** +# +# Makefile - Rules for building the USB host mouse example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the USB host mouse example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/usb_host_mouse.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the USB host mouse example. +# +${COMPILER}/usb_host_mouse.axf: ${COMPILER}/pinout.o +${COMPILER}/usb_host_mouse.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/usb_host_mouse.axf: ${COMPILER}/uartstdio.o +${COMPILER}/usb_host_mouse.axf: ${COMPILER}/usb_host_mouse.o +${COMPILER}/usb_host_mouse.axf: ${COMPILER}/ustdlib.o +${COMPILER}/usb_host_mouse.axf: ${ROOT}/usblib/${COMPILER}/libusb.a +${COMPILER}/usb_host_mouse.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/usb_host_mouse.axf: usb_host_mouse.ld +SCATTERgcc_usb_host_mouse=usb_host_mouse.ld +ENTRY_usb_host_mouse=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.ccsimportspec new file mode 100644 index 0000000..fab5ea4 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.ccsproject b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.cproject b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.cproject new file mode 100644 index 0000000..a493609 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.cproject @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.project b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.project new file mode 100644 index 0000000..43785af --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.project @@ -0,0 +1,65 @@ + + + usb_host_mouse + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_host_mouse/startup_ccs.c + + + usb_host_mouse.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.c + + + usb_host_mouse_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse_ccs.cmd + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ccs/Debug/usb_host_mouse.bin b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/Debug/usb_host_mouse.bin new file mode 100644 index 0000000..e4405b6 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/Debug/usb_host_mouse.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ccs/Debug/usb_host_mouse.out b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/Debug/usb_host_mouse.out new file mode 100644 index 0000000..1f65f4d Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/Debug/usb_host_mouse.out differ diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ewarm/Exe/usb_host_mouse.bin b/boards/ek-tm4c1294xl/usb_host_mouse/ewarm/Exe/usb_host_mouse.bin new file mode 100644 index 0000000..55d00fa Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_mouse/ewarm/Exe/usb_host_mouse.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/ewarm/Exe/usb_host_mouse.out b/boards/ek-tm4c1294xl/usb_host_mouse/ewarm/Exe/usb_host_mouse.out new file mode 100644 index 0000000..f369944 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_mouse/ewarm/Exe/usb_host_mouse.out differ diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/gcc/usb_host_mouse.axf b/boards/ek-tm4c1294xl/usb_host_mouse/gcc/usb_host_mouse.axf new file mode 100644 index 0000000..8cbf67a Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_mouse/gcc/usb_host_mouse.axf differ diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/gcc/usb_host_mouse.bin b/boards/ek-tm4c1294xl/usb_host_mouse/gcc/usb_host_mouse.bin new file mode 100644 index 0000000..f55c012 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_mouse/gcc/usb_host_mouse.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/readme.txt b/boards/ek-tm4c1294xl/usb_host_mouse/readme.txt new file mode 100644 index 0000000..c853dad --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/readme.txt @@ -0,0 +1,30 @@ +USB Host mouse example(usb_host_mouse) + +This example application demonstrates how to support a USB mouse using +the EK-TM4C129X evaluation kit. This application supports only a +standard mouse HID device. + +UART0, connected to the Virtual Serial Port and running at 115,200, 8-N-1, +is used to display messages from this application. + + + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/rvmdk/usb_host_mouse.axf b/boards/ek-tm4c1294xl/usb_host_mouse/rvmdk/usb_host_mouse.axf new file mode 100644 index 0000000..ecea7ed Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_mouse/rvmdk/usb_host_mouse.axf differ diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/rvmdk/usb_host_mouse.bin b/boards/ek-tm4c1294xl/usb_host_mouse/rvmdk/usb_host_mouse.bin new file mode 100644 index 0000000..2a23fc4 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_mouse/rvmdk/usb_host_mouse.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/startup_ccs.c b/boards/ek-tm4c1294xl/usb_host_mouse/startup_ccs.c new file mode 100644 index 0000000..049d317 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/startup_ccs.c @@ -0,0 +1,275 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void USB0HostIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0HostIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/startup_ewarm.c b/boards/ek-tm4c1294xl/usb_host_mouse/startup_ewarm.c new file mode 100644 index 0000000..9cf1e62 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/startup_ewarm.c @@ -0,0 +1,306 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void USB0HostIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[512] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0HostIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/startup_gcc.c b/boards/ek-tm4c1294xl/usb_host_mouse/startup_gcc.c new file mode 100644 index 0000000..c701e5b --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/startup_gcc.c @@ -0,0 +1,322 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void USB0HostIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[512]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0HostIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/startup_rvmdk.S b/boards/ek-tm4c1294xl/usb_host_mouse/startup_rvmdk.S new file mode 100644 index 0000000..4cf9b2b --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/startup_rvmdk.S @@ -0,0 +1,331 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000800 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declaration for the interrupt handler used by the application. +; +;****************************************************************************** + EXTERN USB0HostIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD USB0HostIntHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.c b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.c new file mode 100644 index 0000000..324d383 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.c @@ -0,0 +1,551 @@ +//***************************************************************************** +// +// usb_host_mouse.c - An example using that supports a mouse. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include +#include "inc/hw_memmap.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/sysctl.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "usblib/usblib.h" +#include "usblib/usbhid.h" +#include "usblib/host/usbhost.h" +#include "usblib/host/usbhhid.h" +#include "usblib/host/usbhhidmouse.h" +#include "drivers/pinout.h" +#include "utils/uartstdio.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      USB Host mouse example(usb_host_mouse)

      +//! +//! This example application demonstrates how to support a USB mouse using +//! the EK-TM4C129X evaluation kit. This application supports only a +//! standard mouse HID device. +//! +//! UART0, connected to the Virtual Serial Port and running at 115,200, 8-N-1, +//! is used to display messages from this application. +//! +//! +// +//***************************************************************************** + + +//***************************************************************************** +// +// The size of the host controller's memory pool in bytes. +// +//***************************************************************************** +#define HCD_MEMORY_SIZE 128 + +//***************************************************************************** +// +// Structure to hold the status of the attached mouse. +// +//***************************************************************************** +typedef struct +{ + // + // Holds if there is a device connected to this port. + // + bool bConnected; + + // + // Holds if the mouse state has been updated. + // + bool bUpdate; + + // + // The instance data for the device if bConnected is true. + // + uint32_t ui32Instance; + + // + // The mouse button state. + // + uint32_t ui32Buttons; + + // + // The mouse X position. + // + int32_t i32XPos; + + // + // The mouse Y position. + // + int32_t i32YPos; +} +tMouseStatus; + +//***************************************************************************** +// +// The global application status structure. +// +//***************************************************************************** +tMouseStatus g_sStatus; + +//***************************************************************************** +// +// The memory pool to provide to the Host controller driver. +// +//***************************************************************************** +uint8_t g_pui8HCDPool[HCD_MEMORY_SIZE * MAX_USB_DEVICES]; + +//***************************************************************************** +// +// Declare the USB Events driver interface. +// +//***************************************************************************** +DECLARE_EVENT_DRIVER(g_sUSBEventDriver, 0, 0, USBHCDEvents); + +//***************************************************************************** +// +// The global that holds all of the host drivers in use in the application. +// In this case, only the HID class is loaded. +// +//***************************************************************************** +static tUSBHostClassDriver const * const g_ppHostClassDrivers[] = +{ + &g_sUSBHIDClassDriver, + &g_sUSBEventDriver +}; + +//***************************************************************************** +// +// This global holds the number of class drivers in the g_ppHostClassDrivers +// list. +// +//***************************************************************************** +static const uint32_t g_ui32NumHostClassDrivers = + sizeof(g_ppHostClassDrivers) / sizeof(tUSBHostClassDriver *); + +//***************************************************************************** +// +// The global value used to store the mouse instance value. +// +//***************************************************************************** +static tUSBHMouse *g_psMouse; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// This enumerated type is used to hold the states of the mouse. +// +//***************************************************************************** +enum +{ + // + // No device is present. + // + eStateNoDevice, + + // + // Mouse has been detected and needs to be initialized in the main loop. + // + eStateMouseInit, + + // + // Mouse is connected and waiting for events. + // + eStateMouseConnected, +} +g_iMouseState; + +//***************************************************************************** +// +// This is the callback from the USB HID mouse handler. +// +// pvCBData is ignored by this function. +// ui32Event is one of the valid events for a mouse device. +// ui32MsgParam is defined by the event that occurs. +// pvMsgData is a pointer to data that is defined by the event that +// occurs. +// +// This function will be called to inform the application when a mouse has +// been plugged in or removed and any time a mouse movement or button pressed +// has occurred. +// +// This function will return 0. +// +//***************************************************************************** +void +MouseCallback(tUSBHMouse *psMouse, uint32_t ui32Event, uint32_t ui32MsgParam, + void *pvMsgData) +{ + // + // Start with the assumption that the data on the serial port will need + // updating. + // + g_sStatus.bUpdate = true; + + switch(ui32Event) + { + // + // New mouse detected. + // + case USB_EVENT_CONNECTED: + { + // + // Proceed to the eStateMouseInit state so that the main loop + // can finish initializing the mouse since USBHMouseInit() cannot + // be called from within a callback. + // + g_iMouseState = eStateMouseInit; + + // + // Indicate that the mouse has been detected. + // + UARTprintf("\nMouse Connected\n"); + + break; + } + + // + // Mouse has been unplugged. + // + case USB_EVENT_DISCONNECTED: + { + // + // Change the state so that the main loop knows that a device is no + // longer present. + // + g_iMouseState = eStateNoDevice; + + // + // Need to clear out any held buttons. + // + g_sStatus.ui32Buttons = 0; + + // + // Indicate that the device was disconnected. + // + UARTprintf("\nMouse disconnected\n"); + + // + // There shouldn't be any updates from a disconnected mouse. + // + g_sStatus.bUpdate = false; + + break; + } + + // + // New button press detected. + // + case USBH_EVENT_HID_MS_PRESS: + { + // + // Save the new button that was pressed. + // + g_sStatus.ui32Buttons |= ui32MsgParam; + + break; + } + + // + // A button was released on a HID mouse. + // + case USBH_EVENT_HID_MS_REL: + { + // + // Remove the button from the pressed state. + // + g_sStatus.ui32Buttons &= ~ui32MsgParam; + + break; + } + + // + // The HID mouse detected movement in the X direction. + // + case USBH_EVENT_HID_MS_X: + { + // + // Update the cursor X position. + // + g_sStatus.i32XPos += (int8_t) ui32MsgParam; + + break; + } + + // + // The HID mouse detected movement in the Y direction. + // + case USBH_EVENT_HID_MS_Y: + { + // + // Update the cursor Y position. + // + g_sStatus.i32YPos += (int8_t) ui32MsgParam; + + break; + } + default: + { + // + // This was an event that we don't recognize, so there is no reason + // to update the UART output. + // + g_sStatus.bUpdate = false; + + break; + } + } + + // + // If we have an update for the UART, send it now. + // + if(g_sStatus.bUpdate == true) + { + // + // Print an update to the UART showing the current mouse position and + // the state of all three buttons. + // + UARTprintf("\rPos: %d, %d Buttons: %d%d%d ", + g_sStatus.i32XPos, g_sStatus.i32YPos, + g_sStatus.ui32Buttons & 1, + (g_sStatus.ui32Buttons & 2) >> 1, + (g_sStatus.ui32Buttons & 4) >> 2); + } +} + +//***************************************************************************** +// +// The main routine for handling the USB mouse. +// +//***************************************************************************** +void +MouseMain(void) +{ + switch(g_iMouseState) + { + // + // This state is entered when they mouse is first detected. + // + case eStateMouseInit: + { + // + // Initialized the newly connected mouse. + // + USBHMouseInit(g_psMouse); + + // + // Proceed to the mouse connected state. + // + g_iMouseState = eStateMouseConnected; + + break; + } + case eStateMouseConnected: + { + // + // Nothing is currently done on mouse connect. + // + break; + } + default: + { + break; + } + } +} + +//***************************************************************************** +// +// This is the generic callback from host stack. +// +// pvData is actually a pointer to a tEventInfo structure. +// +// This function will be called to inform the application when a USB event has +// occurred that is outside those related to the mouse device. At this +// point this is used to detect unsupported devices being inserted and removed. +// It is also used to inform the application when a power fault has occurred. +// This function is required when the g_USBGenericEventDriver is included in +// the host controller driver array that is passed in to the +// USBHCDRegisterDrivers() function. +// +//***************************************************************************** +void +USBHCDEvents(void *pvData) +{ + tEventInfo *pEventInfo; + + // + // Cast this pointer to its actual type. + // + pEventInfo = (tEventInfo *)pvData; + + switch(pEventInfo->ui32Event) + { + case USB_EVENT_UNKNOWN_CONNECTED: + case USB_EVENT_CONNECTED: + { + // + // Save the device instance data. + // + g_sStatus.ui32Instance = pEventInfo->ui32Instance; + g_sStatus.bConnected = true; + + break; + } + // + // A device has been unplugged. + // + case USB_EVENT_DISCONNECTED: + { + // + // Device is no longer connected. + // + g_sStatus.bConnected = false; + + break; + } + default: + { + break; + } + } +} + +//***************************************************************************** +// +// The main application loop. +// +//***************************************************************************** +int +main(void) +{ + uint32_t ui32SysClock, ui32PLLRate; + + // + // Set the application to run at 120 MHz with a PLL frequency of 480 MHz. + // + ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Set the part pin out appropriately for this device. + // + PinoutSet(false, true); + + // + // Configure UART0 for 115,200 baud serial data output. + // + UARTStdioConfig(0, 115200, ui32SysClock); + + // + // Print a welcome message + // + UARTprintf("\033[2J\033[H"); + UARTprintf("USB Host Mouse Example\n"); + UARTprintf("Waiting for device....\n"); + + // + // Save the PLL rate used by this application. + // + ui32PLLRate = 480000000; + + // + // Initialize the connection status. + // + g_sStatus.bConnected = false; + g_sStatus.ui32Buttons = 0; + + // + // Enable Clocking to the USB controller. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_USB0); + + // + // Enable Interrupts + // + ROM_IntMasterEnable(); + + // + // Initialize the USB stack mode and pass in a mode callback. + // + USBStackModeSet(0, eUSBModeHost, 0); + + // + // Register the host class drivers. + // + USBHCDRegisterDrivers(0, g_ppHostClassDrivers, g_ui32NumHostClassDrivers); + + // + // Open an instance of the mouse driver. The mouse does not need + // to be present at this time, this just save a place for it and allows + // the applications to be notified when a mouse is present. + // + g_psMouse = USBHMouseOpen(MouseCallback, 0, 0); + + // + // Initialize the power configuration. This sets the power enable signal + // to be active high and does not enable the power fault. + // + USBHCDPowerConfigInit(0, USBHCD_VBUS_AUTO_HIGH | USBHCD_VBUS_FILTER); + + // + // Tell the USB library the CPU clock and the PLL frequency. This is a + // new requirement for TM4C129 devices. + // + USBHCDFeatureSet(0, USBLIB_FEATURE_CPUCLK, &ui32SysClock); + USBHCDFeatureSet(0, USBLIB_FEATURE_USBPLL, &ui32PLLRate); + + // + // Initialize the USB controller for Host mode. + // + USBHCDInit(0, g_pui8HCDPool, sizeof(g_pui8HCDPool)); + + // + // The main loop for the application. + // + while(1) + { + // + // Call the USB library to let non-interrupt code run. + // + USBHCDMain(); + + // + // Call the mouse and mass storage main routines. + // + MouseMain(); + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ewd b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ewp b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ewp new file mode 100644 index 0000000..cce95ae --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ewp @@ -0,0 +1,798 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + $PROJ_DIR$\..\..\..\..\usblib\ewarm\Exe\usblib.a + + + + Source + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\usb_host_mouse.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.icf b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.icf new file mode 100644 index 0000000..5c56360 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// usb_host_mouse.icf - Linker configuration file for usb_host_mouse. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ld b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ld new file mode 100644 index 0000000..87ae43c --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * usb_host_mouse.ld - Linker configuration file for usb_host_mouse. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.sct b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.sct new file mode 100644 index 0000000..0df851c --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; usb_host_mouse.sct - Linker configuration file for usb_host_mouse. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.uvopt b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.uvopt new file mode 100644 index 0000000..8e332ca --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.uvopt @@ -0,0 +1,345 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + usb_host_mouse + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_host_mouse.c + usb_host_mouse.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 6 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + 2 + 7 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\usblib\rvmdk\usblib.lib + usblib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 8 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.uvproj b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.uvproj new file mode 100644 index 0000000..a628ab5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse.uvproj @@ -0,0 +1,444 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + usb_host_mouse + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + usb_host_mouse + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\usb_host_mouse.bin .\rvmdk\usb_host_mouse.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + usb_host_mouse.sct + + + --entry Reset_Handler + + + + + + + + Source + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + usb_host_mouse.c + 1 + .\usb_host_mouse.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + usblib.lib + 4 + ..\..\..\..\usblib\rvmdk\usblib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse_ccs.cmd b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse_ccs.cmd new file mode 100644 index 0000000..deca5ab --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_mouse/usb_host_mouse_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * usb_host_mouse_ccs.cmd - CCS linker configuration file for usb_host_mouse. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 2048; diff --git a/boards/ek-tm4c1294xl/usb_host_msc/Makefile b/boards/ek-tm4c1294xl/usb_host_msc/Makefile new file mode 100644 index 0000000..45006c1 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/Makefile @@ -0,0 +1,96 @@ +#****************************************************************************** +# +# Makefile - Rules for building the USB host mass storage example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../third_party/fatfs/port +VPATH+=../../../../third_party/fatfs/src +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. +IPATH+=../../../../third_party + +# +# The default rule, which causes the USB host mass storage example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/usb_host_msc.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the USB host mass storage example. +# +${COMPILER}/usb_host_msc.axf: ${COMPILER}/cmdline.o +${COMPILER}/usb_host_msc.axf: ${COMPILER}/fat_usbmsc.o +${COMPILER}/usb_host_msc.axf: ${COMPILER}/ff.o +${COMPILER}/usb_host_msc.axf: ${COMPILER}/pinout.o +${COMPILER}/usb_host_msc.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/usb_host_msc.axf: ${COMPILER}/uartstdio.o +${COMPILER}/usb_host_msc.axf: ${COMPILER}/usb_host_msc.o +${COMPILER}/usb_host_msc.axf: ${COMPILER}/ustdlib.o +${COMPILER}/usb_host_msc.axf: ${ROOT}/usblib/${COMPILER}/libusb.a +${COMPILER}/usb_host_msc.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/usb_host_msc.axf: usb_host_msc.ld +SCATTERgcc_usb_host_msc=usb_host_msc.ld +ENTRY_usb_host_msc=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/usb_host_msc/ccs/.ccsimportspec new file mode 100644 index 0000000..252e9bb --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ccs/.ccsproject b/boards/ek-tm4c1294xl/usb_host_msc/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ccs/.cproject b/boards/ek-tm4c1294xl/usb_host_msc/ccs/.cproject new file mode 100644 index 0000000..8c8bbc9 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/ccs/.cproject @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ccs/.project b/boards/ek-tm4c1294xl/usb_host_msc/ccs/.project new file mode 100644 index 0000000..4390bb4 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/ccs/.project @@ -0,0 +1,80 @@ + + + usb_host_msc + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_host_msc/startup_ccs.c + + + usb_host_msc.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.c + + + usb_host_msc_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc_ccs.cmd + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/cmdline.c + 1 + SW_ROOT/utils/cmdline.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + utils/ustdlib.c + 1 + SW_ROOT/utils/ustdlib.c + + + third_party/fatfs/port/fat_usbmsc.c + 1 + SW_ROOT/third_party/fatfs/port/fat_usbmsc.c + + + third_party/fatfs/src/ff.c + 1 + SW_ROOT/third_party/fatfs/src/ff.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/usb_host_msc/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ccs/Debug/usb_host_msc.bin b/boards/ek-tm4c1294xl/usb_host_msc/ccs/Debug/usb_host_msc.bin new file mode 100644 index 0000000..e6fafac Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_msc/ccs/Debug/usb_host_msc.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ccs/Debug/usb_host_msc.out b/boards/ek-tm4c1294xl/usb_host_msc/ccs/Debug/usb_host_msc.out new file mode 100644 index 0000000..599ea6f Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_msc/ccs/Debug/usb_host_msc.out differ diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/usb_host_msc/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/usb_host_msc/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ewarm/Exe/usb_host_msc.bin b/boards/ek-tm4c1294xl/usb_host_msc/ewarm/Exe/usb_host_msc.bin new file mode 100644 index 0000000..dad5ec8 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_msc/ewarm/Exe/usb_host_msc.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_msc/ewarm/Exe/usb_host_msc.out b/boards/ek-tm4c1294xl/usb_host_msc/ewarm/Exe/usb_host_msc.out new file mode 100644 index 0000000..5b0b0f5 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_msc/ewarm/Exe/usb_host_msc.out differ diff --git a/boards/ek-tm4c1294xl/usb_host_msc/gcc/usb_host_msc.axf b/boards/ek-tm4c1294xl/usb_host_msc/gcc/usb_host_msc.axf new file mode 100644 index 0000000..ad5e373 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_msc/gcc/usb_host_msc.axf differ diff --git a/boards/ek-tm4c1294xl/usb_host_msc/gcc/usb_host_msc.bin b/boards/ek-tm4c1294xl/usb_host_msc/gcc/usb_host_msc.bin new file mode 100644 index 0000000..b192259 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_msc/gcc/usb_host_msc.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_msc/readme.txt b/boards/ek-tm4c1294xl/usb_host_msc/readme.txt new file mode 100644 index 0000000..7d9a841 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/readme.txt @@ -0,0 +1,34 @@ +USB Mass Storage Class Host + +This example application demonstrates reading a file system from a USB mass +storage class device. It makes use of FatFs, a FAT file system driver. It +provides a simple command console via the UART for issuing commands to view +and navigate the file system on the mass storage device. + +The first UART, which is connected to the Tiva C Series virtual serial port +on the evaluation board, is configured for 115,200 bits per second, and +8-N-1 mode. When the program is started a message will be printed to the +terminal. Type ``help'' for command help. + +For additional details about FatFs, see the following site: +http://elm-chan.org/fsw/ff/00index_e.html + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/usb_host_msc/rvmdk/usb_host_msc.axf b/boards/ek-tm4c1294xl/usb_host_msc/rvmdk/usb_host_msc.axf new file mode 100644 index 0000000..7872c0c Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_msc/rvmdk/usb_host_msc.axf differ diff --git a/boards/ek-tm4c1294xl/usb_host_msc/rvmdk/usb_host_msc.bin b/boards/ek-tm4c1294xl/usb_host_msc/rvmdk/usb_host_msc.bin new file mode 100644 index 0000000..4e6a371 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_host_msc/rvmdk/usb_host_msc.bin differ diff --git a/boards/ek-tm4c1294xl/usb_host_msc/startup_ccs.c b/boards/ek-tm4c1294xl/usb_host_msc/startup_ccs.c new file mode 100644 index 0000000..b673a9e --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/startup_ccs.c @@ -0,0 +1,276 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void USB0OTGModeIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0OTGModeIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_msc/startup_ewarm.c b/boards/ek-tm4c1294xl/usb_host_msc/startup_ewarm.c new file mode 100644 index 0000000..f764d14 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/startup_ewarm.c @@ -0,0 +1,307 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void USB0OTGModeIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[512] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0OTGModeIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_msc/startup_gcc.c b/boards/ek-tm4c1294xl/usb_host_msc/startup_gcc.c new file mode 100644 index 0000000..139dc63 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/startup_gcc.c @@ -0,0 +1,323 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void SysTickIntHandler(void); +extern void USB0OTGModeIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[512]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + SysTickIntHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0OTGModeIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_msc/startup_rvmdk.S b/boards/ek-tm4c1294xl/usb_host_msc/startup_rvmdk.S new file mode 100644 index 0000000..2e78fd4 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/startup_rvmdk.S @@ -0,0 +1,332 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000800 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN SysTickIntHandler + EXTERN USB0OTGModeIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD SysTickIntHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD USB0OTGModeIntHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.c b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.c new file mode 100644 index 0000000..14bdc85 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.c @@ -0,0 +1,1469 @@ +//***************************************************************************** +// +// usb_host_msc.c - USB mass storage host application. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/gpio.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/uart.h" +#include "driverlib/udma.h" +#include "usblib/usblib.h" +#include "usblib/usbmsc.h" +#include "usblib/host/usbhost.h" +#include "usblib/host/usbhmsc.h" +#include "utils/cmdline.h" +#include "utils/uartstdio.h" +#include "fatfs/src/ff.h" +#include "drivers/pinout.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      USB Mass Storage Class Host (usb_host_msc)

      +//! +//! This example application demonstrates reading a file system from a USB mass +//! storage class device. It makes use of FatFs, a FAT file system driver. It +//! provides a simple command console via the UART for issuing commands to view +//! and navigate the file system on the mass storage device. +//! +//! The first UART, which is connected to the Tiva C Series virtual serial port +//! on the evaluation board, is configured for 115,200 bits per second, and +//! 8-N-1 mode. When the program is started a message will be printed to the +//! terminal. Type ``help'' for command help. +//! +//! For additional details about FatFs, see the following site: +//! http://elm-chan.org/fsw/ff/00index_e.html +// +//***************************************************************************** + +//***************************************************************************** +// +// The number of SysTick ticks per second. +// +//***************************************************************************** +#define TICKS_PER_SECOND 100 +#define MS_PER_SYSTICK (1000 / TICKS_PER_SECOND) + +//***************************************************************************** +// +// Our running system tick counter and a global used to determine the time +// elapsed since last call to GetTickms(). +// +//***************************************************************************** +uint32_t g_ui32SysTickCount; +uint32_t g_ui32LastTick; + +//***************************************************************************** +// +// Defines the size of the buffers that hold the path, or temporary data from +// the memory card. There are two buffers allocated of this size. The buffer +// size must be large enough to hold the longest expected full path name, +// including the file name, and a trailing null character. +// +//***************************************************************************** +#define PATH_BUF_SIZE 80 + +//***************************************************************************** +// +// Defines the size of the buffer that holds the command line. +// +//***************************************************************************** +#define CMD_BUF_SIZE 64 + +//***************************************************************************** +// +// Defines the number of times to call to check if the attached device is +// ready. +// +//***************************************************************************** +#define USBMSC_DRIVE_RETRY 4 + +//***************************************************************************** +// +// This buffer holds the full path to the current working directory. Initially +// it is root ("/"). +// +//***************************************************************************** +static char g_cCwdBuf[PATH_BUF_SIZE] = "/"; + +//***************************************************************************** +// +// A temporary data buffer used when manipulating file paths, or reading data +// from the memory card. +// +//***************************************************************************** +static char g_cTmpBuf[PATH_BUF_SIZE]; + +//***************************************************************************** +// +// The buffer that holds the command line. +// +//***************************************************************************** +static char g_cCmdBuf[CMD_BUF_SIZE]; + +//***************************************************************************** +// +// Current FAT fs state. +// +//***************************************************************************** +static FATFS g_sFatFs; +static DIR g_sDirObject; +static FILINFO g_sFileInfo; +static FIL g_sFileObject; + +//***************************************************************************** +// +// A structure that holds a mapping between an FRESULT numerical code, +// and a string representation. FRESULT codes are returned from the FatFs +// FAT file system driver. +// +//***************************************************************************** +typedef struct +{ + FRESULT fresult; + char *pcResultStr; +} +tFresultString; + +//***************************************************************************** +// +// A macro to make it easy to add result codes to the table. +// +//***************************************************************************** +#define FRESULT_ENTRY(f) { (f), (#f) } + +//***************************************************************************** +// +// A table that holds a mapping between the numerical FRESULT code and +// it's name as a string. This is used for looking up error codes for +// printing to the console. +// +//***************************************************************************** +tFresultString g_sFresultStrings[] = +{ + FRESULT_ENTRY(FR_OK), + FRESULT_ENTRY(FR_DISK_ERR), + FRESULT_ENTRY(FR_INT_ERR), + FRESULT_ENTRY(FR_NOT_READY), + FRESULT_ENTRY(FR_NO_FILE), + FRESULT_ENTRY(FR_NO_PATH), + FRESULT_ENTRY(FR_INVALID_NAME), + FRESULT_ENTRY(FR_DENIED), + FRESULT_ENTRY(FR_EXIST), + FRESULT_ENTRY(FR_INVALID_OBJECT), + FRESULT_ENTRY(FR_WRITE_PROTECTED), + FRESULT_ENTRY(FR_INVALID_DRIVE), + FRESULT_ENTRY(FR_NOT_ENABLED), + FRESULT_ENTRY(FR_NO_FILESYSTEM), + FRESULT_ENTRY(FR_MKFS_ABORTED), + FRESULT_ENTRY(FR_TIMEOUT), + FRESULT_ENTRY(FR_LOCKED), + FRESULT_ENTRY(FR_NOT_ENOUGH_CORE), + FRESULT_ENTRY(FR_TOO_MANY_OPEN_FILES), + FRESULT_ENTRY(FR_INVALID_PARAMETER) +}; + +//***************************************************************************** +// +// A macro that holds the number of result codes. +// +//***************************************************************************** +#define NUM_FRESULT_CODES (sizeof(g_sFresultStrings) / sizeof(tFresultString)) + +//***************************************************************************** +// +// The size of the host controller's memory pool in bytes. +// +//***************************************************************************** +#define HCD_MEMORY_SIZE 128 + +//***************************************************************************** +// +// The memory pool to provide to the Host controller driver. +// +//***************************************************************************** +uint8_t g_pHCDPool[HCD_MEMORY_SIZE]; + +//***************************************************************************** +// +// The instance data for the MSC driver. +// +//***************************************************************************** +tUSBHMSCInstance *g_psMSCInstance = 0; + +//***************************************************************************** +// +// Declare the USB Events driver interface. +// +//***************************************************************************** +DECLARE_EVENT_DRIVER(g_sUSBEventDriver, 0, 0, USBHCDEvents); + +//***************************************************************************** +// +// The global that holds all of the host drivers in use in the application. +// In this case, only the MSC class is loaded. +// +//***************************************************************************** +static tUSBHostClassDriver const * const g_ppHostClassDrivers[] = +{ + &g_sUSBHostMSCClassDriver, + &g_sUSBEventDriver +}; + +//***************************************************************************** +// +// Hold the current state for the application. +// +//***************************************************************************** +typedef enum +{ + // + // No device is present. + // + STATE_NO_DEVICE, + + // + // Mass storage device is being enumerated. + // + STATE_DEVICE_ENUM, + + // + // Mass storage device is ready. + // + STATE_DEVICE_READY, + + // + // An unsupported device has been attached. + // + STATE_UNKNOWN_DEVICE, + + // + // A mass storage device was connected but failed to ever report ready. + // + STATE_TIMEOUT_DEVICE, + + // + // A power fault has occurred. + // + STATE_POWER_FAULT +} +tState; + +volatile tState g_eState; +volatile tState g_eUIState; + +//***************************************************************************** +// +// This global holds the number of class drivers in the g_ppHostClassDrivers +// list. +// +//***************************************************************************** +static const uint32_t g_ui32NumHostClassDrivers = + sizeof(g_ppHostClassDrivers) / sizeof(tUSBHostClassDriver *); + +//***************************************************************************** +// +// The control table used by the uDMA controller. This table must be aligned +// to a 1024 byte boundary. In this application uDMA is only used for USB, +// so only the first 6 channels are needed. +// +//***************************************************************************** +#if defined(ewarm) +#pragma data_alignment=1024 +tDMAControlTable g_sDMAControlTable[6]; +#elif defined(ccs) +#pragma DATA_ALIGN(g_sDMAControlTable, 1024) +tDMAControlTable g_sDMAControlTable[6]; +#else +tDMAControlTable g_sDMAControlTable[6] __attribute__ ((aligned(1024))); +#endif + +//***************************************************************************** +// +// The current USB operating mode - Host, Device or unknown. +// +//***************************************************************************** +tUSBMode g_eCurrentUSBMode; + +//***************************************************************************** +// +// The class of the unknown device. +// +//***************************************************************************** +uint32_t g_ui32UnknownClass; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// This is the handler for this SysTick interrupt. +// +//***************************************************************************** +void +SysTickIntHandler(void) +{ + // + // Update our tick counter. + // + g_ui32SysTickCount++; +} + +//***************************************************************************** +// +// This function returns the number of ticks since the last time this function +// was called. +// +//***************************************************************************** +uint32_t +GetTickms(void) +{ + uint32_t ui32RetVal; + uint32_t ui32Saved; + + ui32RetVal = g_ui32SysTickCount; + ui32Saved = ui32RetVal; + + if(ui32Saved > g_ui32LastTick) + { + ui32RetVal = ui32Saved - g_ui32LastTick; + } + else + { + ui32RetVal = g_ui32LastTick - ui32Saved; + } + + // + // This could miss a few milliseconds but the timings here are on a + // much larger scale. + // + g_ui32LastTick = ui32Saved; + + // + // Return the number of milliseconds since the last time this was called. + // + return(ui32RetVal * MS_PER_SYSTICK); +} + +//***************************************************************************** +// +// This function returns a string representation of an error code that was +// returned from a function call to FatFs. It can be used for printing human +// readable error messages. +// +//***************************************************************************** +const char * +StringFromFresult(FRESULT fresult) +{ + uint32_t ui32Idx; + + // + // Enter a loop to search the error code table for a matching error code. + // + for(ui32Idx = 0; ui32Idx < NUM_FRESULT_CODES; ui32Idx++) + { + // + // If a match is found, then return the string name of the error code. + // + if(g_sFresultStrings[ui32Idx].fresult == fresult) + { + return(g_sFresultStrings[ui32Idx].pcResultStr); + } + } + + // + // At this point no matching code was found, so return a string indicating + // unknown error. + // + return("UNKNOWN ERROR CODE"); +} + +//***************************************************************************** +// +// This function implements the "ls" command. It opens the current directory +// and enumerates through the contents, and prints a line for each item it +// finds. It shows details such as file attributes, time and date, and the +// file size, along with the name. It shows a summary of file sizes at the end +// along with free space. +// +//***************************************************************************** +int +Cmd_ls(int argc, char *argv[]) +{ + uint32_t ui32TotalSize; + uint32_t ui32FileCount; + uint32_t ui32DirCount; + FRESULT fresult; + FATFS *pFatFs; + + // + // Do not attempt to do anything if there is not a drive attached. + // + if(g_eState != STATE_DEVICE_READY) + { + return(FR_NOT_READY); + } + + // + // Open the current directory for access. + // + fresult = f_opendir(&g_sDirObject, g_cCwdBuf); + + // + // Check for error and return if there is a problem. + // + if(fresult != FR_OK) + { + return(fresult); + } + + ui32TotalSize = 0; + ui32FileCount = 0; + ui32DirCount = 0; + + // + // Enter loop to enumerate through all directory entries. + // + while(1) + { + // + // Read an entry from the directory. + // + fresult = f_readdir(&g_sDirObject, &g_sFileInfo); + + // + // Check for error and return if there is a problem. + // + if(fresult != FR_OK) + { + return(fresult); + } + + // + // If the file name is blank, then this is the end of the listing. + // + if(!g_sFileInfo.fname[0]) + { + break; + } + + // + // If the attribute is directory, then increment the directory count. + // + if(g_sFileInfo.fattrib & AM_DIR) + { + ui32DirCount++; + } + + // + // Otherwise, it is a file. Increment the file count, and add in the + // file size to the total. + // + else + { + ui32FileCount++; + ui32TotalSize += g_sFileInfo.fsize; + } + + // + // Print the entry information on a single line with formatting to show + // the attributes, date, time, size, and name. + // + UARTprintf("%c%c%c%c%c %u/%02u/%02u %02u:%02u %9u %s\n", + (g_sFileInfo.fattrib & AM_DIR) ? 'D' : '-', + (g_sFileInfo.fattrib & AM_RDO) ? 'R' : '-', + (g_sFileInfo.fattrib & AM_HID) ? 'H' : '-', + (g_sFileInfo.fattrib & AM_SYS) ? 'S' : '-', + (g_sFileInfo.fattrib & AM_ARC) ? 'A' : '-', + (g_sFileInfo.fdate >> 9) + 1980, + (g_sFileInfo.fdate >> 5) & 15, + g_sFileInfo.fdate & 31, + (g_sFileInfo.ftime >> 11), + (g_sFileInfo.ftime >> 5) & 63, + g_sFileInfo.fsize, + g_sFileInfo.fname); + } + + // + // Print summary lines showing the file, dir, and size totals. + // + UARTprintf("\n%4u File(s),%10u bytes total\n%4u Dir(s)", + ui32FileCount, ui32TotalSize, ui32DirCount); + + // + // Get the free space. + // + fresult = f_getfree("/", &ui32TotalSize, &pFatFs); + + // + // Check for error and return if there is a problem. + // + if(fresult != FR_OK) + { + return(fresult); + } + + // + // Display the amount of free space that was calculated. + // + UARTprintf(", %10uK bytes free\n", ui32TotalSize * pFatFs->csize / 2); + + // + // Made it to here, return with no errors. + // + return(0); +} + +//***************************************************************************** +// +// This function implements the "cd" command. It takes an argument that +// specifies the directory to make the current working directory. Path +// separators must use a forward slash "/". The argument to cd can be one of +// the following: +// +// * root ("/") +// * a fully specified path ("/my/path/to/mydir") +// * a single directory name that is in the current directory ("mydir") +// * parent directory ("..") +// +// It does not understand relative paths, so don't try something like this: +// ("../my/new/path") +// +// Once the new directory is specified, it attempts to open the directory to +// make sure it exists. If the new path is opened successfully, then the +// current working directory (cwd) is changed to the new path. +// +//***************************************************************************** +int +Cmd_cd(int argc, char *argv[]) +{ + uint32_t ui32Idx; + FRESULT fresult; + + // + // Do not attempt to do anything if there is not a drive attached. + // + if(g_eState != STATE_DEVICE_READY) + { + return(FR_NOT_READY); + } + + // + // Copy the current working path into a temporary buffer so it can be + // manipulated. + // + strcpy(g_cTmpBuf, g_cCwdBuf); + + // + // If the first character is /, then this is a fully specified path, and it + // should just be used as-is. + // + if(argv[1][0] == '/') + { + // + // Make sure the new path is not bigger than the cwd buffer. + // + if(strlen(argv[1]) + 1 > sizeof(g_cCwdBuf)) + { + UARTprintf("Resulting path name is too long\n"); + return(0); + } + + // + // If the new path name (in argv[1]) is not too long, then copy it + // into the temporary buffer so it can be checked. + // + else + { + strncpy(g_cTmpBuf, argv[1], sizeof(g_cTmpBuf)); + } + } + + // + // If the argument is .. then attempt to remove the lowest level on the + // CWD. + // + else if(!strcmp(argv[1], "..")) + { + // + // Get the index to the last character in the current path. + // + ui32Idx = strlen(g_cTmpBuf) - 1; + + // + // Back up from the end of the path name until a separator (/) is + // found, or until we bump up to the start of the path. + // + while((g_cTmpBuf[ui32Idx] != '/') && (ui32Idx > 1)) + { + // + // Back up one character. + // + ui32Idx--; + } + + // + // Now we are either at the lowest level separator in the current path, + // or at the beginning of the string (root). So set the new end of + // string here, effectively removing that last part of the path. + // + g_cTmpBuf[ui32Idx] = 0; + } + + // + // Otherwise this is just a normal path name from the current directory, + // and it needs to be appended to the current path. + // + else + { + // + // Test to make sure that when the new additional path is added on to + // the current path, there is room in the buffer for the full new path. + // It needs to include a new separator, and a trailing null character. + // + if(strlen(g_cTmpBuf) + strlen(argv[1]) + 1 + 1 > sizeof(g_cCwdBuf)) + { + UARTprintf("Resulting path name is too long\n"); + return(0); + } + + // + // The new path is okay, so add the separator and then append the new + // directory to the path. + // + else + { + // + // If not already at the root level, then append a / + // + if(strcmp(g_cTmpBuf, "/")) + { + strcat(g_cTmpBuf, "/"); + } + + // + // Append the new directory to the path. + // + strcat(g_cTmpBuf, argv[1]); + } + } + + // + // At this point, a candidate new directory path is in chTmpBuf. Try to + // open it to make sure it is valid. + // + fresult = f_opendir(&g_sDirObject, g_cTmpBuf); + + // + // If it can't be opened, then it is a bad path. Inform user and return. + // + if(fresult != FR_OK) + { + UARTprintf("cd: %s\n", g_cTmpBuf); + return(fresult); + } + + // + // Otherwise, it is a valid new path, so copy it into the CWD. + // + else + { + strncpy(g_cCwdBuf, g_cTmpBuf, sizeof(g_cCwdBuf)); + } + + // + // Return success. + // + return(0); +} + +//***************************************************************************** +// +// This function implements the "pwd" command. It simply prints the current +// working directory. +// +//***************************************************************************** +int +Cmd_pwd(int argc, char *argv[]) +{ + // + // Do not attempt to do anything if there is not a drive attached. + // + if(g_eState != STATE_DEVICE_READY) + { + return(FR_NOT_READY); + } + + // + // Print the CWD to the console. + // + UARTprintf("%s\n", g_cCwdBuf); + + // + // Return success. + // + return(0); +} + +//***************************************************************************** +// +// This function implements the "cat" command. It reads the contents of a file +// and prints it to the console. This should only be used on text files. If +// it is used on a binary file, then a bunch of garbage is likely to printed on +// the console. +// +//***************************************************************************** +int +Cmd_cat(int argc, char *argv[]) +{ + FRESULT fresult; + uint32_t ui32BytesRead; + + // + // Do not attempt to do anything if there is not a drive attached. + // + if(g_eState != STATE_DEVICE_READY) + { + return(FR_NOT_READY); + } + + // + // First, check to make sure that the current path (CWD), plus the file + // name, plus a separator and trailing null, will all fit in the temporary + // buffer that will be used to hold the file name. The file name must be + // fully specified, with path, to FatFs. + // + if(strlen(g_cCwdBuf) + strlen(argv[1]) + 1 + 1 > sizeof(g_cTmpBuf)) + { + UARTprintf("Resulting path name is too long\n"); + return(0); + } + + // + // Copy the current path to the temporary buffer so it can be manipulated. + // + strcpy(g_cTmpBuf, g_cCwdBuf); + + // + // If not already at the root level, then append a separator. + // + if(strcmp("/", g_cCwdBuf)) + { + strcat(g_cTmpBuf, "/"); + } + + // + // Now finally, append the file name to result in a fully specified file. + // + strcat(g_cTmpBuf, argv[1]); + + // + // Open the file for reading. + // + fresult = f_open(&g_sFileObject, g_cTmpBuf, FA_READ); + + // + // If there was some problem opening the file, then return an error. + // + if(fresult != FR_OK) + { + return(fresult); + } + + // + // Enter a loop to repeatedly read data from the file and display it, until + // the end of the file is reached. + // + do + { + // + // Read a block of data from the file. Read as much as can fit in the + // temporary buffer, including a space for the trailing null. + // + fresult = f_read(&g_sFileObject, g_cTmpBuf, sizeof(g_cTmpBuf) - 1, + (UINT *)&ui32BytesRead); + + // + // If there was an error reading, then print a newline and return the + // error to the user. + // + if(fresult != FR_OK) + { + UARTprintf("\n"); + return(fresult); + } + + // + // Null terminate the last block that was read to make it a null + // terminated string that can be used with printf. + // + g_cTmpBuf[ui32BytesRead] = 0; + + // + // Print the last chunk of the file that was received. + // + UARTprintf("%s", g_cTmpBuf); + + // + // Continue reading until less than the full number of bytes are read. + // That means the end of the buffer was reached. + // + } + while(ui32BytesRead == sizeof(g_cTmpBuf) - 1); + + // + // Return success. + // + return(0); +} + +//***************************************************************************** +// +// This function implements the "help" command. It prints a simple list of the +// available commands with a brief description. +// +//***************************************************************************** +int +Cmd_help(int argc, char *argv[]) +{ + tCmdLineEntry *pEntry; + + // + // Print some header text. + // + UARTprintf("\nAvailable commands\n"); + UARTprintf("------------------\n"); + + // + // Point at the beginning of the command table. + // + pEntry = &g_psCmdTable[0]; + + // + // Enter a loop to read each entry from the command table. The end of the + // table has been reached when the command name is NULL. + // + while(pEntry->pcCmd) + { + // + // Print the command name and the brief description. + // + UARTprintf("%s%s\n", pEntry->pcCmd, pEntry->pcHelp); + + // + // Advance to the next entry in the table. + // + pEntry++; + } + + // + // Return success. + // + return(0); +} + +//***************************************************************************** +// +// This is the table that holds the command names, implementing functions, and +// brief description. +// +//***************************************************************************** +tCmdLineEntry g_psCmdTable[] = +{ + { "help", Cmd_help, " : Display list of commands" }, + { "h", Cmd_help, " : alias for help" }, + { "?", Cmd_help, " : alias for help" }, + { "ls", Cmd_ls, " : Display list of files" }, + { "chdir", Cmd_cd, ": Change directory" }, + { "cd", Cmd_cd, " : alias for chdir" }, + { "pwd", Cmd_pwd, " : Show current working directory" }, + { "cat", Cmd_cat, " : Show contents of a text file" }, + { 0, 0, 0 } +}; + +//***************************************************************************** +// +// This is the callback from the MSC driver. +// +// \param ui32Instance is the driver instance which is needed when +// communicating with the driver. +// \param ui32Event is one of the events defined by the driver. +// \param pvData is a pointer to data passed into the initial call to register +// the callback. +// +// This function handles callback events from the MSC driver. The only events +// currently handled are the MSC_EVENT_OPEN and MSC_EVENT_CLOSE. This allows +// the main routine to know when an MSC device has been detected and +// enumerated and when an MSC device has been removed from the system. +// +// \return Returns \e true on success or \e false on failure. +// +//***************************************************************************** +void +MSCCallback(tUSBHMSCInstance *ps32Instance, uint32_t ui32Event, void *pvData) +{ + // + // Determine the event. + // + switch(ui32Event) + { + // + // Called when the device driver has successfully enumerated an MSC + // device. + // + case MSC_EVENT_OPEN: + { + // + // Proceed to the enumeration state. + // + g_eState = STATE_DEVICE_ENUM; + break; + } + + // + // Called when the device driver has been unloaded due to error or + // the device is no longer present. + // + case MSC_EVENT_CLOSE: + { + // + // Go back to the "no device" state and wait for a new connection. + // + g_eState = STATE_NO_DEVICE; + + break; + } + + default: + { + break; + } + } +} + +//***************************************************************************** +// +// This is the generic callback from host stack. +// +// \param pvData is actually a pointer to a tEventInfo structure. +// +// This function will be called to inform the application when a USB event has +// occurred that is outside those related to the mass storage device. At this +// point this is used to detect unsupported devices being inserted and removed. +// It is also used to inform the application when a power fault has occurred. +// This function is required when the g_USBGenericEventDriver is included in +// the host controller driver array that is passed in to the +// USBHCDRegisterDrivers() function. +// +// \return None. +// +//***************************************************************************** +void +USBHCDEvents(void *pvData) +{ + tEventInfo *pEventInfo; + + // + // Cast this pointer to its actual type. + // + pEventInfo = (tEventInfo *)pvData; + + switch(pEventInfo->ui32Event) + { + // + // Unknown device detected. + // + case USB_EVENT_UNKNOWN_CONNECTED: + { + // + // Save the unknown class. + // + g_ui32UnknownClass = pEventInfo->ui32Instance; + + // + // An unknown device was detected. + // + g_eState = STATE_UNKNOWN_DEVICE; + + break; + } + + // + // Keyboard has been unplugged. + // + case USB_EVENT_DISCONNECTED: + { + // + // Unknown device has been removed. + // + g_eState = STATE_NO_DEVICE; + + break; + } + + case USB_EVENT_POWER_FAULT: + { + // + // No power means no device is present. + // + g_eState = STATE_POWER_FAULT; + + break; + } + + default: + { + break; + } + } +} + +//***************************************************************************** +// +// This function reads a line of text from the UART console. The USB host main +// function is called throughout this process to keep USB alive and well. +// +//***************************************************************************** +void +ReadLine(void) +{ + uint32_t ui32Idx, ui32Prompt; + uint8_t ui8Char; + tState eStateCopy; + uint32_t ui32DriveTimeout; + + // + // Start reading at the beginning of the command buffer and print a prompt. + // + g_cCmdBuf[0] = '\0'; + ui32Idx = 0; + ui32Prompt = 1; + + // + // Initialize the drive timeout. + // + ui32DriveTimeout = USBMSC_DRIVE_RETRY; + + // + // Loop forever. This loop will be explicitly broken out of when the line + // has been fully read. + // + while(1) + { + // + // See if a mass storage device has been enumerated. + // + if(g_eState == STATE_DEVICE_ENUM) + { + // + // Take it easy on the Mass storage device if it is slow to + // start up after connecting. + // + if(USBHMSCDriveReady(g_psMSCInstance) != 0) + { + // + // Wait about 500ms before attempting to check if the + // device is ready again. + // + SysCtlDelay(SysCtlClockGet()/(3*2)); + + // + // Decrement the retry count. + // + ui32DriveTimeout--; + + // + // If the timeout is hit then go to the + // STATE_TIMEOUT_DEVICE state. + // + if(ui32DriveTimeout == 0) + { + g_eState = STATE_TIMEOUT_DEVICE; + } + + break; + } + + // + // Reset the working directory to the root. + // + g_cCwdBuf[0] = '/'; + g_cCwdBuf[1] = '\0'; + + // + // Attempt to open the directory. Some drives take longer to + // start up than others, and this may fail (even though the USB + // device has enumerated) if it is still initializing. + // + f_mount(0, &g_sFatFs); + if(f_opendir(&g_sDirObject, g_cCwdBuf) == FR_OK) + { + // + // The drive is fully ready, so move to that state. + // + g_eState = STATE_DEVICE_READY; + } + } + + // + // See if the state has changed. We make a copy of g_eUIState to + // prevent a compiler warning about undefined order of volatile + // accesses. + // + eStateCopy = g_eUIState; + if(g_eState != eStateCopy) + { + // + // Determine the new state. + // + switch(g_eState) + { + // + // A previously connected device has been disconnected. + // + case STATE_NO_DEVICE: + { + if(g_eUIState == STATE_UNKNOWN_DEVICE) + { + UARTprintf("\nUnknown device disconnected.\n"); + } + else + { + UARTprintf("\nMass storage device disconnected.\n"); + } + ui32Prompt = 1; + break; + } + + // + // A mass storage device is being enumerated. + // + case STATE_DEVICE_ENUM: + { + break; + } + + // + // A mass storage device has been enumerated and initialized. + // + case STATE_DEVICE_READY: + { + UARTprintf("\nMass storage device connected.\n"); + ui32Prompt = 1; + break; + } + + // + // An unknown device has been connected. + // + case STATE_UNKNOWN_DEVICE: + { + UARTprintf("Unknown Device Class (0x%02x) Connected.\n", + g_ui32UnknownClass); + ui32Prompt = 1; + break; + } + + // + // The connected mass storage device is not reporting ready. + // + case STATE_TIMEOUT_DEVICE: + { + // + // If this is the first time in this state then print a + // message. + // + UARTprintf("Device Timeout.\n"); + ui32Prompt = 1; + + break; + } + + // + // A power fault has occurred. + // + case STATE_POWER_FAULT: + { + UARTprintf("\nPower fault.\n"); + ui32Prompt = 1; + break; + } + } + + // + // Save the current state. + // + g_eUIState = g_eState; + } + + // + // Print a prompt if necessary. + // + if(ui32Prompt) + { + // + // Print the prompt based on the current state. + // + if(g_eState == STATE_DEVICE_READY) + { + UARTprintf("%s> %s", g_cCwdBuf, g_cCmdBuf); + } + else if(g_eState == STATE_UNKNOWN_DEVICE) + { + UARTprintf("UNKNOWN> %s", g_cCmdBuf); + } + else + { + UARTprintf("NODEV> %s", g_cCmdBuf); + } + + // + // The prompt no longer needs to be printed. + // + ui32Prompt = 0; + } + + // + // Loop while there are characters that have been received from the + // UART. + // + while(ROM_UARTCharsAvail(UART0_BASE)) + { + // + // Read the next character from the UART. + // + ui8Char = UARTgetc(); + + // + // See if this character is a backspace and there is at least one + // character in the input line. + // + if((ui8Char == '\b') && (ui32Idx != 0)) + { + // + // Erase the lsat character from the input line. + // + UARTprintf("\b \b"); + ui32Idx--; + g_cCmdBuf[ui32Idx] = '\0'; + } + + // + // See if this character is a newline. + // + else if((ui8Char == '\r') || (ui8Char == '\n')) + { + // + // Return to the caller. + // + UARTprintf("\n"); + return; + } + + // + // See if this character is an escape or Ctrl-U. + // + else if((ui8Char == 0x1b) || (ui8Char == 0x15)) + { + // + // Erase all characters in the input buffer. + // + while(ui32Idx) + { + UARTprintf("\b \b"); + ui32Idx--; + } + g_cCmdBuf[0] = '\0'; + } + + // + // See if this is a printable ASCII character. + // + else if((ui8Char >= ' ') && (ui8Char <= '~') && + (ui32Idx < (sizeof(g_cCmdBuf) - 1))) + { + // + // Add this character to the input buffer. + // + g_cCmdBuf[ui32Idx++] = ui8Char; + g_cCmdBuf[ui32Idx] = '\0'; + UARTprintf("%c", ui8Char); + } + } + + // + // Tell the OTG state machine how much time has passed in + // milliseconds since the last call. + // + USBOTGMain(GetTickms()); + } +} + +//***************************************************************************** +// +// This is the main loop that runs the application. +// +//***************************************************************************** +int +main(void) +{ + int iStatus; + uint32_t ui32SysClock; + + // + // Initially wait for device connection. + // + g_eState = STATE_NO_DEVICE; + g_eUIState = STATE_NO_DEVICE; + + // + // Run from the PLL at 120 MHz. + // + ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Configure the device pins. + // + PinoutSet(false, true); + + // + // Enable the UART and print a brief message. + // + UARTStdioConfig(0, 115200, ui32SysClock); + UARTprintf("\033[2J\033[H"); + UARTprintf("USB Mass Storage Host program\n"); + UARTprintf("Type \'help\' for help.\n\n"); + + // + // Configure SysTick for a 100Hz interrupt. + // + ROM_SysTickPeriodSet(ui32SysClock / TICKS_PER_SECOND); + ROM_SysTickEnable(); + ROM_SysTickIntEnable(); + + // + // Enable the uDMA controller and set up the control table base. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA); + ROM_uDMAEnable(); + ROM_uDMAControlBaseSet(g_sDMAControlTable); + + // + // Initialize the USB stack mode and pass in a mode callback. + // + USBStackModeSet(0, eUSBModeHost, 0); + + // + // Register the host class drivers. + // + USBHCDRegisterDrivers(0, g_ppHostClassDrivers, g_ui32NumHostClassDrivers); + + // + // Open an instance of the mass storage class driver. + // + g_psMSCInstance = USBHMSCDriveOpen(0, MSCCallback); + + // + // Initialize the power configuration. This sets the power enable signal + // to be active high and does not enable the power fault. + // + USBHCDPowerConfigInit(0, USBHCD_VBUS_AUTO_HIGH | USBHCD_VBUS_FILTER); + + // + // Initialize the USB controller for host operation. + // + USBHCDInit(0, g_pHCDPool, HCD_MEMORY_SIZE); + + // + // Initialize the file system. + // + f_mount(0, &g_sFatFs); + + // + // Enter an infinite loop for reading and processing commands from the + // user. + // + while(1) + { + // + // Get a line of text from the user. + // + ReadLine(); + if(g_cCmdBuf[0] == '\0') + { + continue; + } + + // + // Pass the line from the user to the command processor. + // It will be parsed and valid commands executed. + // + iStatus = CmdLineProcess(g_cCmdBuf); + + // + // Handle the case of bad command. + // + if(iStatus == CMDLINE_BAD_CMD) + { + UARTprintf("Bad command!\n"); + } + + // + // Handle the case of too many arguments. + // + else if(iStatus == CMDLINE_TOO_MANY_ARGS) + { + UARTprintf("Too many arguments for command processor!\n"); + } + + // + // Otherwise the command was executed. Print the error + // code if one was returned. + // + else if(iStatus != 0) + { + UARTprintf("Command returned error code %s\n", + StringFromFresult((FRESULT)iStatus)); + } + } +} + diff --git a/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ewd b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ewp b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ewp new file mode 100644 index 0000000..f14cc64 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ewp @@ -0,0 +1,809 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + $PROJ_DIR$\..\..\..\..\usblib\ewarm\Exe\usblib.a + + + + Source + + $PROJ_DIR$\..\..\..\..\utils\cmdline.c + + + $PROJ_DIR$\..\..\..\..\third_party\fatfs\port\fat_usbmsc.c + + + $PROJ_DIR$\..\..\..\..\third_party\fatfs\src\ff.c + + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\usb_host_msc.c + + + $PROJ_DIR$\..\..\..\..\utils\ustdlib.c + + + diff --git a/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.icf b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.icf new file mode 100644 index 0000000..0dc23f3 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// usb_host_msc.icf - Linker configuration file for usb_host_msc. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ld b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ld new file mode 100644 index 0000000..0c28745 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * usb_host_msc.ld - Linker configuration file for usb_host_msc. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.sct b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.sct new file mode 100644 index 0000000..15cbed5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; usb_host_msc.sct - Linker configuration file for usb_host_msc. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.uvopt b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.uvopt new file mode 100644 index 0000000..3342ee8 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.uvopt @@ -0,0 +1,387 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + usb_host_msc + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\cmdline.c + cmdline.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\fatfs\port\fat_usbmsc.c + fat_usbmsc.c + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\third_party\fatfs\src\ff.c + ff.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 5 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_host_msc.c + usb_host_msc.c + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\ustdlib.c + ustdlib.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 9 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + 2 + 10 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\usblib\rvmdk\usblib.lib + usblib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 11 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.uvproj b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.uvproj new file mode 100644 index 0000000..9f0dba5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc.uvproj @@ -0,0 +1,459 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + usb_host_msc + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + usb_host_msc + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\usb_host_msc.bin .\rvmdk\usb_host_msc.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..;..\..\..\..\third_party; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + usb_host_msc.sct + + + --entry Reset_Handler + + + + + + + + Source + + + cmdline.c + 1 + ..\..\..\..\utils\cmdline.c + + + fat_usbmsc.c + 1 + ..\..\..\..\third_party\fatfs\port\fat_usbmsc.c + + + ff.c + 1 + ..\..\..\..\third_party\fatfs\src\ff.c + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + usb_host_msc.c + 1 + .\usb_host_msc.c + + + ustdlib.c + 1 + ..\..\..\..\utils\ustdlib.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + usblib.lib + 4 + ..\..\..\..\usblib\rvmdk\usblib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc_ccs.cmd b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc_ccs.cmd new file mode 100644 index 0000000..5326af0 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_host_msc/usb_host_msc_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * usb_host_msc_ccs.cmd - CCS linker configuration file for usb_host_msc. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 2048; diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/Makefile b/boards/ek-tm4c1294xl/usb_stick_demo/Makefile new file mode 100644 index 0000000..800a407 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/Makefile @@ -0,0 +1,88 @@ +#****************************************************************************** +# +# Makefile - Rules for building the usb_stick_demo example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers +VPATH+=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the usb_stick_demo example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/usb_stick_demo.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the usb_stick_demo example. +# +${COMPILER}/usb_stick_demo.axf: ${COMPILER}/pinout.o +${COMPILER}/usb_stick_demo.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/usb_stick_demo.axf: ${COMPILER}/uartstdio.o +${COMPILER}/usb_stick_demo.axf: ${COMPILER}/usb_stick_demo.o +${COMPILER}/usb_stick_demo.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/usb_stick_demo.axf: usb_stick_demo.ld +SCATTERgcc_usb_stick_demo=usb_stick_demo.ld +ENTRY_usb_stick_demo=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.ccsimportspec new file mode 100644 index 0000000..64f9068 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.ccsproject b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.cproject b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.cproject new file mode 100644 index 0000000..4b9e5f3 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.cproject @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.project b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.project new file mode 100644 index 0000000..9e5e813 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.project @@ -0,0 +1,60 @@ + + + usb_stick_demo + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_stick_demo/startup_ccs.c + + + usb_stick_demo.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.c + + + usb_stick_demo_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo_ccs.cmd + + + drivers/pinout.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/pinout.c + + + utils/uartstdio.c + 1 + SW_ROOT/utils/uartstdio.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ccs/Debug/usb_stick_demo.bin b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/Debug/usb_stick_demo.bin new file mode 100644 index 0000000..1d9d9d3 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/Debug/usb_stick_demo.bin differ diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ccs/Debug/usb_stick_demo.out b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/Debug/usb_stick_demo.out new file mode 100644 index 0000000..44c96ce Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/Debug/usb_stick_demo.out differ diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ewarm/Exe/usb_stick_demo.bin b/boards/ek-tm4c1294xl/usb_stick_demo/ewarm/Exe/usb_stick_demo.bin new file mode 100644 index 0000000..cd5baa7 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_demo/ewarm/Exe/usb_stick_demo.bin differ diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/ewarm/Exe/usb_stick_demo.out b/boards/ek-tm4c1294xl/usb_stick_demo/ewarm/Exe/usb_stick_demo.out new file mode 100644 index 0000000..5ff8ed4 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_demo/ewarm/Exe/usb_stick_demo.out differ diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/gcc/usb_stick_demo.axf b/boards/ek-tm4c1294xl/usb_stick_demo/gcc/usb_stick_demo.axf new file mode 100644 index 0000000..c5d2aea Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_demo/gcc/usb_stick_demo.axf differ diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/gcc/usb_stick_demo.bin b/boards/ek-tm4c1294xl/usb_stick_demo/gcc/usb_stick_demo.bin new file mode 100644 index 0000000..77f1cd5 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_demo/gcc/usb_stick_demo.bin differ diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/readme.txt b/boards/ek-tm4c1294xl/usb_stick_demo/readme.txt new file mode 100644 index 0000000..d966997 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/readme.txt @@ -0,0 +1,39 @@ +USB Stick Update Demo + +An example to demonstrate the use of the flash-based USB stick update +program. This example is meant to be loaded into flash memory from a USB +memory stick, using the USB stick update program (usb_stick_update), +running on the microcontroller. + +After this program is built, the binary file (usb_stick_demo.bin), should +be renamed to the filename expected by usb_stick_update ("FIRMWARE.BIN" by +default) and copied to the root directory of a USB memory stick. Then, +when the memory stick is plugged into the eval board that is running the +usb_stick_update program, this example program will be loaded into flash +and then run on the microcontroller. + +This program simply displays a message on the screen and prompts the user +to press the USR_SW1 button. Once the button is pressed, control is passed +back to the usb_stick_update program which is still is flash, and it will +attempt to load another program from the memory stick. This shows how +a user application can force a new firmware update from the memory stick. + +------------------------------------------------------------------------------- + +Copyright (c) 2012-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/rvmdk/usb_stick_demo.axf b/boards/ek-tm4c1294xl/usb_stick_demo/rvmdk/usb_stick_demo.axf new file mode 100644 index 0000000..dc2cd00 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_demo/rvmdk/usb_stick_demo.axf differ diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/rvmdk/usb_stick_demo.bin b/boards/ek-tm4c1294xl/usb_stick_demo/rvmdk/usb_stick_demo.bin new file mode 100644 index 0000000..04969f9 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_demo/rvmdk/usb_stick_demo.bin differ diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/startup_ccs.c b/boards/ek-tm4c1294xl/usb_stick_demo/startup_ccs.c new file mode 100644 index 0000000..d65768f --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/startup_ccs.c @@ -0,0 +1,268 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/startup_ewarm.c b/boards/ek-tm4c1294xl/usb_stick_demo/startup_ewarm.c new file mode 100644 index 0000000..c4b0ab8 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/startup_ewarm.c @@ -0,0 +1,299 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/startup_gcc.c b/boards/ek-tm4c1294xl/usb_stick_demo/startup_gcc.c new file mode 100644 index 0000000..a62c519 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/startup_gcc.c @@ -0,0 +1,315 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/startup_rvmdk.S b/boards/ek-tm4c1294xl/usb_stick_demo/startup_rvmdk.S new file mode 100644 index 0000000..6979645 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/startup_rvmdk.S @@ -0,0 +1,324 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000200 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.c b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.c new file mode 100644 index 0000000..ea6e31c --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.c @@ -0,0 +1,273 @@ +//***************************************************************************** +// +// usb_stick_demo.c - USB stick update demo. +// +// Copyright (c) 2012-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/fpu.h" +#include "driverlib/gpio.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/uart.h" +#include "utils/uartstdio.h" +#include "drivers/pinout.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      USB Stick Update Demo (usb_stick_demo)

      +//! +//! An example to demonstrate the use of the flash-based USB stick update +//! program. This example is meant to be loaded into flash memory from a USB +//! memory stick, using the USB stick update program (usb_stick_update), +//! running on the microcontroller. +//! +//! After this program is built, the binary file (usb_stick_demo.bin), should +//! be renamed to the filename expected by usb_stick_update ("FIRMWARE.BIN" by +//! default) and copied to the root directory of a USB memory stick. Then, +//! when the memory stick is plugged into the eval board that is running the +//! usb_stick_update program, this example program will be loaded into flash +//! and then run on the microcontroller. +//! +//! This program simply displays a message on the screen and prompts the user +//! to press the USR_SW1 button. Once the button is pressed, control is passed +//! back to the usb_stick_update program which is still is flash, and it will +//! attempt to load another program from the memory stick. This shows how +//! a user application can force a new firmware update from the memory stick. +// +//***************************************************************************** + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// Global variable used to store the frequency of the system clock. +// +//***************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// Configure the UART and its pins. This must be called before UARTprintf(). +// +//***************************************************************************** +void +ConfigureUART(void) +{ + // + // Enable the GPIO Peripheral used by the UART. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); + + // + // Enable UART0 + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); + + // + // Configure GPIO Pins for UART mode. + // + ROM_GPIOPinConfigure(GPIO_PA0_U0RX); + ROM_GPIOPinConfigure(GPIO_PA1_U0TX); + ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // Initialize the UART for console I/O. + // + UARTStdioConfig(0, 115200, g_ui32SysClock); +} + +//***************************************************************************** +// +// Demonstrate the use of the USB stick update example. +// +//***************************************************************************** +int +main(void) +{ + uint_fast32_t ui32Count; + + // + // Run from the PLL at 50 MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 50000000); + + // + // Configure the device pins. + // + PinoutSet(false, false); + + // + // Initialize the UART. + // + ConfigureUART(); + + // + // Clear the terminal and print banner. + // + UARTprintf("\033[2J\033[H"); + UARTprintf("usb-stick-demo!\n"); + + // + // Indicate what is happening. + // + UARTprintf("Press\n"); + UARTprintf("USR_SW1 to\n"); + UARTprintf("start the USB\n"); + UARTprintf("stick updater.\n"); + + // + // Enable the GPIO module which the select button is attached to. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ); + + // + // Enable the GPIO pin to read the user button. + // + ROM_GPIODirModeSet(GPIO_PORTJ_BASE, GPIO_PIN_0, GPIO_DIR_MODE_IN); + MAP_GPIOPadConfigSet(GPIO_PORTJ_BASE, GPIO_PIN_0, GPIO_STRENGTH_2MA, + GPIO_PIN_TYPE_STD_WPU); + + // + // Wait for the pullup to take effect or the next loop will exist too soon. + // + SysCtlDelay(1000); + + // + // Wait until the select button has been pressed for ~40ms (in order to + // debounce the press). + // + ui32Count = 0; + while(1) + { + // + // See if the button is pressed. + // + if(ROM_GPIOPinRead(GPIO_PORTJ_BASE, GPIO_PIN_0) == 0) + { + // + // Increment the count since the button is pressed. + // + ui32Count++; + + // + // If the count has reached 4, then the button has been debounced + // as being pressed. + // + if(ui32Count == 4) + { + break; + } + } + else + { + // + // Reset the count since the button is not pressed. + // + ui32Count = 0; + } + + // + // Delay for approximately 10ms. + // + SysCtlDelay(16000000 / (3 * 100)); + } + + // + // Wait until the select button has been released for ~40ms (in order to + // debounce the release). + // + ui32Count = 0; + while(1) + { + // + // See if the button is pressed. + // + if(ROM_GPIOPinRead(GPIO_PORTJ_BASE, GPIO_PIN_0) != 0) + { + // + // Increment the count since the button is released. + // + ui32Count++; + + // + // If the count has reached 4, then the button has been debounced + // as being released. + // + if(ui32Count == 4) + { + break; + } + } + else + { + // + // Reset the count since the button is pressed. + // + ui32Count = 0; + } + + // + // Delay for approximately 10ms. + // + SysCtlDelay(16000000 / (3 * 100)); + } + + // + // Indicate that the updater is being called. + // + UARTprintf("The USB stick\n"); + UARTprintf("updater is now\n"); + UARTprintf("waiting for a\n"); + UARTprintf("USB stick.\n"); + + // + // Call the updater so that it will search for an update on a memory stick. + // + (*((void (*)(void))(*(uint32_t *)0x2c)))(); + + // + // The updater should take control, so this should never be reached. + // Just in case, loop forever. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ewd b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ewp b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ewp new file mode 100644 index 0000000..f8a676e --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ewp @@ -0,0 +1,792 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\..\drivers\pinout.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\..\..\..\..\utils\uartstdio.c + + + $PROJ_DIR$\usb_stick_demo.c + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.icf b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.icf new file mode 100644 index 0000000..0990b97 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// usb_stick_demo.icf - Linker configuration file for usb_stick_demo. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00008000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ld b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ld new file mode 100644 index 0000000..9b21a4c --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * usb_stick_demo.ld - Linker configuration file for usb_stick_demo. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00008000, LENGTH = 0x000f8000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.sct b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.sct new file mode 100644 index 0000000..2403983 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; usb_stick_demo.sct - Linker configuration file for usb_stick_demo. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00008000 0x000f8000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00008000 0x000f8000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.uvopt b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.uvopt new file mode 100644 index 0000000..f8ebe93 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.uvopt @@ -0,0 +1,317 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + usb_stick_demo + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\pinout.c + pinout.c + + + 1 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\utils\uartstdio.c + uartstdio.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_stick_demo.c + usb_stick_demo.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 5 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 6 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.uvproj b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.uvproj new file mode 100644 index 0000000..47b251a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo.uvproj @@ -0,0 +1,434 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + usb_stick_demo + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + usb_stick_demo + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\usb_stick_demo.bin .\rvmdk\usb_stick_demo.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + usb_stick_demo.sct + + + --entry Reset_Handler + + + + + + + + Source + + + pinout.c + 1 + ..\drivers\pinout.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + uartstdio.c + 1 + ..\..\..\..\utils\uartstdio.c + + + usb_stick_demo.c + 1 + .\usb_stick_demo.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo_ccs.cmd b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo_ccs.cmd new file mode 100644 index 0000000..f2fcf5f --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_demo/usb_stick_demo_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * usb_stick_demo_ccs.cmd - CCS linker configuration file for usb_stick_demo. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00008000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x000f8000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 512; diff --git a/boards/ek-tm4c1294xl/usb_stick_update/Makefile b/boards/ek-tm4c1294xl/usb_stick_update/Makefile new file mode 100644 index 0000000..804bfcb --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/Makefile @@ -0,0 +1,87 @@ +#****************************************************************************** +# +# Makefile - Rules for building the USB memory stick updater example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../../../../utils + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the USB memory stick updater example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/usb_stick_update.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the USB memory stick updater example. +# +${COMPILER}/usb_stick_update.axf: ${COMPILER}/simple_fs.o +${COMPILER}/usb_stick_update.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/usb_stick_update.axf: ${COMPILER}/usb_stick_update.o +${COMPILER}/usb_stick_update.axf: ${ROOT}/usblib/${COMPILER}/libusb.a +${COMPILER}/usb_stick_update.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/usb_stick_update.axf: usb_stick_update.ld +SCATTERgcc_usb_stick_update=usb_stick_update.ld +ENTRY_usb_stick_update=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/usb_stick_update/ccs/.ccsimportspec new file mode 100644 index 0000000..d225a1d --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/ccs/.ccsimportspec @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ccs/.ccsproject b/boards/ek-tm4c1294xl/usb_stick_update/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ccs/.cproject b/boards/ek-tm4c1294xl/usb_stick_update/ccs/.cproject new file mode 100644 index 0000000..4c8f3bb --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/ccs/.cproject @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ccs/.project b/boards/ek-tm4c1294xl/usb_stick_update/ccs/.project new file mode 100644 index 0000000..0e0f5d6 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/ccs/.project @@ -0,0 +1,55 @@ + + + usb_stick_update + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + simple_fs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_stick_update/simple_fs.c + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_stick_update/startup_ccs.c + + + usb_stick_update.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.c + + + usb_stick_update_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update_ccs.cmd + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/usb_stick_update/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ccs/Debug/usb_stick_update.bin b/boards/ek-tm4c1294xl/usb_stick_update/ccs/Debug/usb_stick_update.bin new file mode 100644 index 0000000..2ebea20 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_update/ccs/Debug/usb_stick_update.bin differ diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ccs/Debug/usb_stick_update.out b/boards/ek-tm4c1294xl/usb_stick_update/ccs/Debug/usb_stick_update.out new file mode 100644 index 0000000..3d2528d Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_update/ccs/Debug/usb_stick_update.out differ diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/usb_stick_update/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/usb_stick_update/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ewarm/Exe/usb_stick_update.bin b/boards/ek-tm4c1294xl/usb_stick_update/ewarm/Exe/usb_stick_update.bin new file mode 100644 index 0000000..e3a3b78 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_update/ewarm/Exe/usb_stick_update.bin differ diff --git a/boards/ek-tm4c1294xl/usb_stick_update/ewarm/Exe/usb_stick_update.out b/boards/ek-tm4c1294xl/usb_stick_update/ewarm/Exe/usb_stick_update.out new file mode 100644 index 0000000..4200711 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_update/ewarm/Exe/usb_stick_update.out differ diff --git a/boards/ek-tm4c1294xl/usb_stick_update/gcc/usb_stick_update.axf b/boards/ek-tm4c1294xl/usb_stick_update/gcc/usb_stick_update.axf new file mode 100644 index 0000000..462a5c1 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_update/gcc/usb_stick_update.axf differ diff --git a/boards/ek-tm4c1294xl/usb_stick_update/gcc/usb_stick_update.bin b/boards/ek-tm4c1294xl/usb_stick_update/gcc/usb_stick_update.bin new file mode 100644 index 0000000..f3ff662 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_update/gcc/usb_stick_update.bin differ diff --git a/boards/ek-tm4c1294xl/usb_stick_update/readme.txt b/boards/ek-tm4c1294xl/usb_stick_update/readme.txt new file mode 100644 index 0000000..16db394 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/readme.txt @@ -0,0 +1,49 @@ +USB Memory Stick Updater + +This example application behaves the same way as a boot loader. It resides +at the beginning of flash, and will read a binary file from a USB memory +stick and program it into another location in flash. Once the user +application has been programmed into flash, this program will always start +the user application until requested to load a new application. + +When this application starts, if there is a user application already in +flash (at \b APP_START_ADDRESS), then it will just run the user application. +It will attempt to load a new application from a USB memory stick under +the following conditions: + +- no user application is present at \b APP_START_ADDRESS +- the user application has requested an update by transferring control +to the updater +- the user holds down the USR_SW1 button when the board is reset + +When this application is attempting to perform an update, it will wait +forever for a USB memory stick to be plugged in. Once a USB memory stick +is found, it will search the root directory for a specific file name, which +is \e FIRMWARE.BIN by default. This file must be a binary image of the +program you want to load (the .bin file), linked to run from the correct +address, at \b APP_START_ADDRESS. + +The USB memory stick must be formatted as a FAT16 or FAT32 file system +(the normal case), and the binary file must be located in the root +directory. Other files can exist on the memory stick but they will be +ignored. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/usb_stick_update/rvmdk/usb_stick_update.axf b/boards/ek-tm4c1294xl/usb_stick_update/rvmdk/usb_stick_update.axf new file mode 100644 index 0000000..d85943a Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_update/rvmdk/usb_stick_update.axf differ diff --git a/boards/ek-tm4c1294xl/usb_stick_update/rvmdk/usb_stick_update.bin b/boards/ek-tm4c1294xl/usb_stick_update/rvmdk/usb_stick_update.bin new file mode 100644 index 0000000..0278796 Binary files /dev/null and b/boards/ek-tm4c1294xl/usb_stick_update/rvmdk/usb_stick_update.bin differ diff --git a/boards/ek-tm4c1294xl/usb_stick_update/simple_fs.c b/boards/ek-tm4c1294xl/usb_stick_update/simple_fs.c new file mode 100644 index 0000000..56c2206 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/simple_fs.c @@ -0,0 +1,865 @@ +//***************************************************************************** +// +// simple_fs.c - Functions for simple FAT file system support +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include +#include "simple_fs.h" + +//***************************************************************************** +// +// \addtogroup simple_fs_api +// @{ +// +// This file system API should be used as follows: +// - Initialize it by calling SimpleFsInit(). You must supply a pointer to a +// 512 byte buffer that will be used for storing device sector data. +// - "Open" a file by calling SimpleFsOpen() and passing the 8.3-style filename +// as an 11-character string. +// - Read successive sectors from the file by using the convenience macro +// SimpleFsReadFileSector(). +// +// This API does not use any file handles so there is no way to open more than +// one file at a time. There is also no random access into the file, each +// sector must be read in sequence. +// +// The client of this API supplies a 512-byte buffer for storage of data read +// from the device. But this file also maintains an additional, internal +// 512-byte buffer used for caching FAT sectors. This minimizes the amount +// of device reads required to fetch cluster chain entries from the FAT. +// +// The application code (the client) must also provide a function used for +// reading sectors from the storage device, whatever it may be. This allows +// the code in this file to be independent of the type of device used for +// storing the file system. The name of the function is +// SimpleFsReadMediaSector(). +// +//***************************************************************************** + +//***************************************************************************** +// +// Setup a macro for handling packed data structures. +// +//***************************************************************************** +#if defined(ccs) || \ + defined(codered) || \ + defined(gcc) || \ + defined(rvmdk) || \ + defined(__ARMCC_VERSION) || \ + defined(sourcerygxx) +#define PACKED __attribute__((packed)) +#elif defined(ewarm) +#define PACKED +#else +#error "Unrecognized COMPILER!" +#endif + +//***************************************************************************** +// +// Instruct the IAR compiler to pack the following structures. +// +//***************************************************************************** +#ifdef ewarm +#pragma pack(1) +#endif + +//***************************************************************************** +// +// Structures for mapping FAT file system +// +//***************************************************************************** + +//***************************************************************************** +// +// The FAT16 boot sector extension +// +//***************************************************************************** +typedef struct +{ + uint8_t ui8DriveNumber; + uint8_t ui8Reserved; + uint8_t ui8ExtSig; + uint32_t ui32Serial; + char pcVolumeLabel[11]; + char pcFsType[8]; + uint8_t ui8BootCode[448]; + uint16_t ui16Sig; +} +PACKED tBootExt16; + +//***************************************************************************** +// +// The FAT32 boot sector extension +// +//***************************************************************************** +typedef struct +{ + uint32_t ui32SectorsPerFAT; + uint16_t ui16Flags; + uint16_t ui16Version; + uint32_t ui32RootCluster; + uint16_t ui16InfoSector; + uint16_t ui16BootCopy; + uint8_t ui8Reserved[12]; + uint8_t ui8DriveNumber; + uint8_t ui8Reserved1; + uint8_t ui8ExtSig; + uint32_t ui32Serial; + char pcVolumeLabel[11]; + char pcFsType[8]; + uint8_t ui8BootCode[420]; + uint16_t ui16Sig; +} +PACKED tBootExt32; + +//***************************************************************************** +// +// The FAT16/32 boot sector main section +// +//***************************************************************************** +typedef struct +{ + uint8_t ui8Jump[3]; + uint8_t i8OEMName[8]; + uint16_t ui16BytesPerSector; + uint8_t ui8SectorsPerCluster; + uint16_t ui16ReservedSectors; + uint8_t ui8NumFATs; + uint16_t ui16NumRootEntries; + uint16_t ui16TotalSectorsSmall; + uint8_t ui8MediaDescriptor; + uint16_t ui16SectorsPerFAT; + uint16_t ui16SectorsPerTrack; + uint16_t ui16NumberHeads; + uint32_t ui32HiddenSectors; + uint32_t ui32TotalSectorsBig; + union + { + tBootExt16 sExt16; + tBootExt32 sExt32; + } + PACKED ext; +} +PACKED tBootSector; + +//***************************************************************************** +// +// The partition table +// +//***************************************************************************** +typedef struct +{ + uint8_t ui8Status; + uint8_t ui8CHSFirst[3]; + uint8_t ui8Type; + uint8_t ui8CHSLast[3]; + uint32_t ui32FirstSector; + uint32_t ui32NumBlocks; +} +PACKED tPartitionTable; + +//***************************************************************************** +// +// The master boot record (MBR) +// +//***************************************************************************** +typedef struct +{ + uint8_t ui8CodeArea[440]; + uint8_t ui8DiskSignature[4]; + uint8_t ui8Nulls[2]; + tPartitionTable sPartTable[4]; + uint16_t ui16Sig; +} +PACKED tMasterBootRecord; + +//***************************************************************************** +// +// The structure for a single directory entry +// +//***************************************************************************** +typedef struct +{ + char pcFileName[11]; + uint8_t ui8Attr; + uint8_t ui8Reserved; + uint8_t ui8CreateTime[5]; + uint8_t ui8LastDate[2]; + uint16_t ui16ClusterHi; + uint8_t ui8LastModified[4]; + uint16_t ui16Cluster; + uint32_t ui32FileSize; +} +PACKED tDirEntry; + +//***************************************************************************** +// +// Tell the IAR compiler that the remaining structures do not need to be +// packed. +// +//***************************************************************************** +#ifdef ewarm +#pragma pack() +#endif + +//***************************************************************************** +// +// This structure holds information about the layout of the file system +// +//***************************************************************************** +typedef struct +{ + uint32_t ui32FirstSector; + uint32_t ui32NumBlocks; + uint16_t ui16SectorsPerCluster; + uint16_t ui16MaxRootEntries; + uint32_t ui32SectorsPerFAT; + uint32_t ui32FirstFATSector; + uint32_t ui32LastFATSector; + uint32_t ui32FirstDataSector; + uint32_t ui32Type; + uint32_t ui32StartRootDir; +} +tPartitionInfo; + +static tPartitionInfo sPartInfo; + +//***************************************************************************** +// +// A pointer to the client provided sector buffer. +// +//***************************************************************************** +static uint8_t *g_pui8SectorBuf; + +//***************************************************************************** +// +// Initializes the simple file system +// +// \param pui8SectorBuf is a pointer to a caller supplied 512-byte buffer +// that will be used for holding sectors that are loaded from the media +// storage device. +// +// Reads the MBR, partition table, and boot record to find the logical +// structure of the file system. This function stores the file system +// structural data internally so that the remaining functions of the API +// can read the file system. +// +// To read data from the storage device, the function SimpleFsReadMediaSector() +// will be called. This function is not implemented here but must be +// implemented by the user of this simple file system. +// +// This file system support is extremely simple-minded. It will only +// find the first partition of a FAT16 or FAT32 formatted mass storage +// device. Only very minimal error checking is performed in order to save +// code space. +// +// \return Zero if successful, non-zero if there was an error. +// +//***************************************************************************** +uint32_t +SimpleFsInit(uint8_t *pui8SectorBuf) +{ + tMasterBootRecord *pMBR; + tPartitionTable *pPart; + tBootSector *pBoot; + + // + // Save the sector buffer pointer. The input parameter is assumed + // to be good. + // + g_pui8SectorBuf = pui8SectorBuf; + + // + // Get the MBR + // + if(SimpleFsReadMediaSector(0, pui8SectorBuf)) + { + return(1); + } + + // + // Verify MBR signature - bare minimum validation of MBR. + // + pMBR = (tMasterBootRecord *)pui8SectorBuf; + if(pMBR->ui16Sig != 0xAA55) + { + return(1); + } + + // + // See if this is a MBR or a boot sector. + // + pBoot = (tBootSector *)pui8SectorBuf; + if((strncmp(pBoot->ext.sExt16.pcFsType, "FAT", 3) != 0) && + (strncmp(pBoot->ext.sExt32.pcFsType, "FAT32", 5) != 0)) + { + // + // Get the first partition table + // + pPart = &(pMBR->sPartTable[0]); + + // + // Could optionally check partition type here ... + // + + // + // Get the partition location and size + // + sPartInfo.ui32FirstSector = pPart->ui32FirstSector; + sPartInfo.ui32NumBlocks = pPart->ui32NumBlocks; + + // + // Read the boot sector from the partition + // + if(SimpleFsReadMediaSector(sPartInfo.ui32FirstSector, pui8SectorBuf)) + { + return(1); + } + } + else + { + // + // Extract the number of sectors from the boot sector. + // + sPartInfo.ui32FirstSector = 0; + if(pBoot->ui16TotalSectorsSmall == 0) + { + sPartInfo.ui32NumBlocks = pBoot->ui32TotalSectorsBig; + } + else + { + sPartInfo.ui32NumBlocks = pBoot->ui16TotalSectorsSmall; + } + } + + // + // Get pointer to the boot sector + // + if(pBoot->ext.sExt16.ui16Sig != 0xAA55) + { + return(1); + } + + // + // Verify the sector size is 512. We can't deal with anything else + // + if(pBoot->ui16BytesPerSector != 512) + { + return(1); + } + + // + // Extract some info from the boot record + // + sPartInfo.ui16SectorsPerCluster = pBoot->ui8SectorsPerCluster; + sPartInfo.ui16MaxRootEntries = pBoot->ui16NumRootEntries; + + // + // Decide if we are dealing with FAT16 or FAT32. + // If number of root entries is 0, that suggests FAT32 + // + if(sPartInfo.ui16MaxRootEntries == 0) + { + // + // Confirm FAT 32 signature in the expected place + // + if(!strncmp(pBoot->ext.sExt32.pcFsType, "FAT32 ", 8)) + { + sPartInfo.ui32Type = 32; + } + else + { + return(1); + } + } + // + // Root entries is non-zero, suggests FAT16 + // + else + { + // + // Confirm FAT16 signature + // + if(!strncmp(pBoot->ext.sExt16.pcFsType, "FAT16 ", 8)) + { + sPartInfo.ui32Type = 16; + } + else + { + return(1); + } + } + + // + // Find the beginning of the FAT, in absolute sectors + // + sPartInfo.ui32FirstFATSector = sPartInfo.ui32FirstSector + + pBoot->ui16ReservedSectors; + + // + // Find the end of the FAT in absolute sectors. FAT16 and 32 + // are handled differently. + // + sPartInfo.ui32SectorsPerFAT = (sPartInfo.ui32Type == 16) ? + pBoot->ui16SectorsPerFAT : + pBoot->ext.sExt32.ui32SectorsPerFAT; + sPartInfo.ui32LastFATSector = sPartInfo.ui32FirstFATSector + + sPartInfo.ui32SectorsPerFAT - 1; + + // + // Find the start of the root directory and the data area. + // For FAT16, the root will be stored as an absolute sector number + // For FAT32, the root will be stored as the starting cluster of the root + // The data area start is the absolute first sector of the data area. + // + if(sPartInfo.ui32Type == 16) + { + sPartInfo.ui32StartRootDir = sPartInfo.ui32FirstFATSector + + (sPartInfo.ui32SectorsPerFAT * + pBoot->ui8NumFATs); + sPartInfo.ui32FirstDataSector = sPartInfo.ui32StartRootDir + + (sPartInfo.ui16MaxRootEntries / 16); + } + else + { + sPartInfo.ui32StartRootDir = pBoot->ext.sExt32.ui32RootCluster; + sPartInfo.ui32FirstDataSector = sPartInfo.ui32FirstFATSector + + (sPartInfo.ui32SectorsPerFAT * pBoot->ui8NumFATs); + } + + // + // At this point the file system has been initialized, so return + // success to the caller. + // + return(0); +} + +//***************************************************************************** +// +// Find the next cluster in a FAT chain +// +// \param ui32ThisCluster is the current cluster in the chain +// +// Reads the File Allocation Table (FAT) of the file system to find the +// next cluster in a chain of clusters. The current cluster is passed in +// and the next cluster in the chain will be returned. +// +// This function reads sectors from the storage device as needed in order +// to parse the FAT tables. Error handling is minimal since there is not +// much that can be done if an error is encountered. If any error is +// encountered, or if this is the last cluster in the chain, then 0 is +// returned. This signals the caller to stop traversing the chain (either +// due to error or end of chain). +// +// The function maintains a cache of a single sector from the FAT. It only +// reads in a new FAT sector if the requested cluster is not in the +// currently cached sector. +// +// \return Next cluster number if successful, 0 if this is the last cluster +// or any error is found. +// +//***************************************************************************** +static uint32_t +SimpleFsGetNextCluster(uint_fast32_t ui32ThisCluster) +{ + static uint8_t ui8FATCache[512]; + static uint_fast32_t ui32CachedFATSector = (uint32_t)-1; + uint_fast32_t ui32ClustersPerFATSector; + uint_fast32_t ui32ClusterIdx; + uint_fast32_t ui32FATSector; + uint_fast32_t ui32NextCluster; + uint_fast32_t ui32MaxCluster; + + // + // Compute the maximum possible reasonable cluster number + // + ui32MaxCluster = sPartInfo.ui32NumBlocks / sPartInfo.ui16SectorsPerCluster; + + // + // Make sure cluster input number is reasonable. If not then return + // 0 indicating error. + // + if((ui32ThisCluster < 2) || (ui32ThisCluster > ui32MaxCluster)) + { + return(0); + } + + // + // Compute the index of the requested cluster within the sector. + // Also compute the sector number within the FAT that contains the + // entry for the requested cluster. + // + ui32ClustersPerFATSector = (sPartInfo.ui32Type == 16) ? 256 : 128; + ui32ClusterIdx = ui32ThisCluster % ui32ClustersPerFATSector; + ui32FATSector = ui32ThisCluster / ui32ClustersPerFATSector; + + // + // Check to see if the FAT sector we need is already cached + // + if(ui32FATSector != ui32CachedFATSector) + { + // + // FAT sector we need is not cached, so read it in + // + if(SimpleFsReadMediaSector(sPartInfo.ui32FirstFATSector + ui32FATSector, + ui8FATCache) != 0) + { + // + // There was an error so mark cache as unavailable and return + // an error. + // + ui32CachedFATSector = (uint32_t)-1; + return(0); + } + + // + // Remember which FAT sector was just loaded into the cache. + // + ui32CachedFATSector = ui32FATSector; + } + + // + // Now look up the next cluster value from the cached sector, using this + // requested cluster as an index. It needs to be indexed as 16 or 32 + // bit values depending on whether it is FAT16 or 32 + // If the cluster value means last cluster, then return 0 + // + if(sPartInfo.ui32Type == 16) + { + ui32NextCluster = ((uint16_t *)ui8FATCache)[ui32ClusterIdx]; + if(ui32NextCluster >= 0xFFF8) + { + return(0); + } + } + else + { + ui32NextCluster = ((uint32_t *)ui8FATCache)[ui32ClusterIdx]; + if(ui32NextCluster >= 0x0FFFFFF8) + { + return(0); + } + } + + // + // Check new cluster value to make sure it is reasonable. If not then + // return 0 to indicate an error. + // + if((ui32NextCluster >= 2) && (ui32NextCluster <= ui32MaxCluster)) + { + return(ui32NextCluster); + } + else + { + return(0); + } +} + +//***************************************************************************** +// +// Read a single sector from a file into the sector buffer +// +// \param ui32StartCluster is the first cluster of the file, used to +// initialize the file read. Use 0 for successive sectors. +// +// Reads sectors in sequence from a file and stores the data in the sector +// buffer that was passed in the initial call to SimpleFsInit(). The function +// is initialized with the file to read by passing the starting cluster of +// the file. The function will initialize some static data and return. It +// does not read any file data when passed a starting cluster (and +// returns 0 - this is normal). +// +// Once the function has been initialized with the file's starting cluster, +// then successive calls should be made, passing a value of 0 for the +// cluster number. This tells the function to read the next sector from the +// file and store it in the sector buffer. The function remembers the last +// sector that was read, and each time it is called with a cluster value of +// 0, it will read the next sector. The function will traverse the FAT +// chain as needed to read all the sectors. When a sector has been +// successfully read from a file, the function will return non-zero. When +// there are no more sectors to read, or any error is encountered, the +// function will return 0. +// +// Note that the function always reads a whole sector, even if the end of +// a file does not fill the last sector. It is the responsibility of the +// caller to track the file size and to deal with a partially full last +// sector. +// +// \return Non-zero if a sector was read into the sector buffer, or +// 0 if there are no more sectors or if any error occurred. +// +//***************************************************************************** +uint32_t +SimpleFsGetNextFileSector(uint_fast32_t ui32StartCluster) +{ + static uint_fast32_t ui32WorkingCluster = 0; + static uint_fast32_t ui32WorkingSector; + uint_fast32_t ui32ReadSector; + + // + // If user specified starting cluster, then init the working cluster + // and sector values + // + if(ui32StartCluster) + { + ui32WorkingCluster = ui32StartCluster; + ui32WorkingSector = 0; + return(0); + } + + // + // Otherwise, make sure there is a valid working cluster already + // + else if(ui32WorkingCluster == 0) + { + return(0); + } + + // + // If the current working sector is the same as sectors per cluster, + // then that means that the next cluster needs to be loaded. + // + if(ui32WorkingSector == sPartInfo.ui16SectorsPerCluster) + { + // + // Get the next cluster in the chain for this file. + // + ui32WorkingCluster = SimpleFsGetNextCluster(ui32WorkingCluster); + + // + // If the next cluster is valid, then reset the working sector + // + if(ui32WorkingCluster) + { + ui32WorkingSector = 0; + } + + // + // Next cluster is not valid, or this was the end of the chain. + // Clear the working cluster and return an indication that no new + // sector data was loaded. + // + else + { + ui32WorkingCluster = 0; + return(0); + } + } + + // + // Calculate the sector to read from. It is the sector of the start + // of the working cluster, plus the working sector (the sector within + // the cluster), plus the offset to the start of the data area. + // Note that the cluster needs to be reduced by 2 in order to index + // properly into the data area. That is a feature of FAT file system. + // + ui32ReadSector = (ui32WorkingCluster - 2) * sPartInfo.ui16SectorsPerCluster; + ui32ReadSector += ui32WorkingSector; + ui32ReadSector += sPartInfo.ui32FirstDataSector; + + // + // Attempt to read the next sector from the cluster. If not successful, + // then clear the working cluster and return a non-success indication. + // + if(SimpleFsReadMediaSector(ui32ReadSector, g_pui8SectorBuf) != 0) + { + ui32WorkingCluster = 0; + return(0); + } + else + { + // + // Read was successful. Increment to the next sector of the cluster + // and return a success indication. + // + ui32WorkingSector++; + return(1); + } +} + +//***************************************************************************** +// +// Find a file in the root directory of the file system and open it for +// reading. +// +// \param pcName83 is an 11-character string that represents the 8.3 file +// name of the file to open. +// +// This function traverses the root directory of the file system to find +// the file name specified by the caller. Note that the file name must be +// an 8.3 file name that is 11 characters int32_t. The first 8 characters are +// the base name and the last 3 characters are the extension. If there are +// fewer characters in the base name or extension, the name should be padded +// with spaces. For example "myfile.bn" has fewer than 11 characters, and +// should be passed with padding like this: "myfile bn ". Note the extra +// spaces, and that the dot ('.') is not part of the string that is passed +// to this function. +// +// If the file is found, then it initializes the file for reading, and returns +// the file length. The file can be read by making successive calls to +// SimpleFsReadFileSector(). +// +// The function only searches the root directory and ignores any +// subdirectories. It also ignores any int32_t file name entries, looking only +// at the 8.3 file name for a match. +// +// \return The size of the file if it is found, or 0 if the file could not +// be found. +// +//***************************************************************************** +uint32_t +SimpleFsOpen(char *pcName83) +{ + tDirEntry *pDirEntry; + uint_fast32_t ui32DirSector; + uint_fast32_t ui32FirstCluster; + + // + // Find starting root dir sector, only used for FAT16 + // If FAT32 then this is the first cluster of root dir + // + ui32DirSector = sPartInfo.ui32StartRootDir; + + // + // For FAT32, root dir is like a file, so init a file read of the root dir + // + if(sPartInfo.ui32Type == 32) + { + SimpleFsGetNextFileSector(ui32DirSector); + } + + // + // Search the root directory entry for the firmware file + // + while(1) + { + // + // Read in a directory block. + // + if(sPartInfo.ui32Type == 16) + { + // + // For FAT16, read in a sector of the root directory + // + if(SimpleFsReadMediaSector(ui32DirSector, g_pui8SectorBuf)) + { + return(0); + } + } + else + { + // + // For FAT32, the root directory is treated like a file. + // The root directory sector will be loaded into the sector buf + // + if(SimpleFsGetNextFileSector(0) == 0) + { + return(0); + } + } + + // + // Initialize the directory entry pointer to the first entry of + // this sector. + // + pDirEntry = (tDirEntry *)g_pui8SectorBuf; + + // + // Iterate through all the directory entries in this sector + // + while((uint8_t *)pDirEntry < &g_pui8SectorBuf[512]) + { + // + // If the 8.3 filename of this entry matches the firmware + // file name, then we have a match, so return a pointer to + // this entry. + // + if(!strncmp(pDirEntry->pcFileName, pcName83, 11)) + { + // + // Compute the starting cluster of the file + // + ui32FirstCluster = pDirEntry->ui16Cluster; + if(sPartInfo.ui32Type == 32) + { + // + // For FAT32, add in the upper word of the + // starting cluster number + // + ui32FirstCluster += pDirEntry->ui16ClusterHi << 16; + } + + // + // Initialize the start of the file + // + SimpleFsGetNextFileSector(ui32FirstCluster); + return(pDirEntry->ui32FileSize); + } + + // + // Advance to the next entry in this sector. + // + pDirEntry++; + } + + // + // Need to get the next sector in the directory. Handled + // differently depending on if this is FAT16 or 32 + // + if(sPartInfo.ui32Type == 16) + { + // + // FAT16: advance sectors as int32_t as there are more possible + // entries. + // + sPartInfo.ui16MaxRootEntries -= 512 / 32; + if(sPartInfo.ui16MaxRootEntries) + { + ui32DirSector++; + } + else + { + // + // Ran out of directory entries and didn't find the file, + // so return a null. + // + return(0); + } + } + else + { + // + // FAT32: there is nothing to compute here. The next root + // dir sector will be fetched at the top of the loop + // + } + } +} + +//***************************************************************************** +// +// Close the Doxygen group. +// @} +// +//***************************************************************************** diff --git a/boards/ek-tm4c1294xl/usb_stick_update/simple_fs.h b/boards/ek-tm4c1294xl/usb_stick_update/simple_fs.h new file mode 100644 index 0000000..6a81730 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/simple_fs.h @@ -0,0 +1,105 @@ +//***************************************************************************** +// +// simple_fs.h - Header for simple FAT file system support +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#ifndef __SIMPLE_FS_H__ +#define __SIMPLE_FS_H__ + +//***************************************************************************** +// +// \addtogroup simple_fs_api +// @{ +// +//***************************************************************************** + +//***************************************************************************** +// +// Macro to read a single sector from a file that was opened with +// SimpleFsOpen() +// +// This convenience macro maps to the function SimpleFsGetNextFileSector() +// called with a parameter of 0. It should be used to read successive +// sectors from a file after the file has been opened with SimpleFsOpen(). +// +// When a sector is read, it is loaded into the sector buffer that was passed +// when SimpleFsInit() was called. +// +// A non-zero value will be returned to the caller as int32_t as successive +// sectors are successfully read into the sector buffer. At the end of the +// file, or if there is any error, then a value of 0 is returned. +// +// Note that the a whole sector is always loaded, even if the end of +// a file does not fill the last sector. It is the responsibility of the +// caller to track the file size and to deal with a partially full last +// sector. +// +// \return Non-zero if a sector was read into the sector buffer, or +// 0 if there are no more sectors or if any error occurred. +// +//***************************************************************************** +#define SimpleFsReadFileSector() SimpleFsGetNextFileSector(0) + +//***************************************************************************** +// +// Read a single sector from the application-specific storage device into +// the sector buffer. +// +// \param ui32Sector is the absolute sector number to read from the storage +// device +// \param pui8SectorBuf is a pointer to a 512 byte buffer where the sector +// data should be written +// +// This function is used by the simple file system functions to read a sector +// of data from a storage device. It must be implemented as part of the +// application specific code. For example, it could be used to read sectors +// from a USB mass storage device, or from an SD card, or any device that can +// be used to store a FAT file system. Note that the sector size is always +// assumed to be 512 bytes. +// +// \return Zero value if a sector of data was successfully read from the +// device and stored in the sector buffer, non-zero if not successful. +// +//***************************************************************************** +// +// This function to be supplied by the client +// +extern uint32_t SimpleFsReadMediaSector(uint_fast32_t ui32Sector, + uint8_t *pui8SectorBuf); + +//***************************************************************************** +// +// Close the Doxygen group. +// @} +// +//***************************************************************************** + +//***************************************************************************** +// +// Functions to help with accessing the FAT file system on a storage device +// +//**************************************************************************** +extern uint32_t SimpleFsInit(uint8_t *pui8SectorBuf); +extern uint32_t SimpleFsOpen(char *pcName83); +extern uint32_t SimpleFsGetNextFileSector(uint_fast32_t ui32StartCluster); + +#endif // __SIMPLE_FS_H__ diff --git a/boards/ek-tm4c1294xl/usb_stick_update/startup_ccs.c b/boards/ek-tm4c1294xl/usb_stick_update/startup_ccs.c new file mode 100644 index 0000000..1fca71f --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/startup_ccs.c @@ -0,0 +1,276 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void AppForceUpdate(void); +extern void USB0HostIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + AppForceUpdate, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0HostIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_stick_update/startup_ewarm.c b/boards/ek-tm4c1294xl/usb_stick_update/startup_ewarm.c new file mode 100644 index 0000000..ada266b --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/startup_ewarm.c @@ -0,0 +1,307 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void AppForceUpdate(void); +extern void USB0HostIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + AppForceUpdate, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0HostIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_stick_update/startup_gcc.c b/boards/ek-tm4c1294xl/usb_stick_update/startup_gcc.c new file mode 100644 index 0000000..c22c57a --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/startup_gcc.c @@ -0,0 +1,323 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declarations for the interrupt handlers used by the application. +// +//***************************************************************************** +extern void AppForceUpdate(void); +extern void USB0HostIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[256]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + AppForceUpdate, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + IntDefaultHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + USB0HostIntHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/usb_stick_update/startup_rvmdk.S b/boards/ek-tm4c1294xl/usb_stick_update/startup_rvmdk.S new file mode 100644 index 0000000..d539e5c --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/startup_rvmdk.S @@ -0,0 +1,332 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000400 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declarations for the interrupt handlers used by the application. +; +;****************************************************************************** + EXTERN AppForceUpdate + EXTERN USB0HostIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD AppForceUpdate ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD IntDefaultHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD USB0HostIntHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.c b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.c new file mode 100644 index 0000000..a832a99 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.c @@ -0,0 +1,943 @@ +//***************************************************************************** +// +// usb_stick_update.c - Example to update flash from a USB memory stick. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include +#include "inc/hw_flash.h" +#include "inc/hw_gpio.h" +#include "inc/hw_memmap.h" +#include "inc/hw_nvic.h" +#include "inc/hw_sysctl.h" +#include "inc/hw_types.h" +#include "driverlib/gpio.h" +#include "driverlib/pin_map.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "driverlib/sysctl.h" +#include "driverlib/udma.h" +#include "usblib/usblib.h" +#include "usblib/usbmsc.h" +#include "usblib/host/usbhost.h" +#include "usblib/host/usbhmsc.h" +#include "simple_fs.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      USB Memory Stick Updater (usb_stick_update)

      +//! +//! This example application behaves the same way as a boot loader. It resides +//! at the beginning of flash, and will read a binary file from a USB memory +//! stick and program it into another location in flash. Once the user +//! application has been programmed into flash, this program will always start +//! the user application until requested to load a new application. +//! +//! When this application starts, if there is a user application already in +//! flash (at \b APP_START_ADDRESS), then it will just run the user application. +//! It will attempt to load a new application from a USB memory stick under +//! the following conditions: +//! +//! - no user application is present at \b APP_START_ADDRESS +//! - the user application has requested an update by transferring control +//! to the updater +//! - the user holds down the USR_SW1 button when the board is reset +//! +//! When this application is attempting to perform an update, it will wait +//! forever for a USB memory stick to be plugged in. Once a USB memory stick +//! is found, it will search the root directory for a specific file name, which +//! is \e FIRMWARE.BIN by default. This file must be a binary image of the +//! program you want to load (the .bin file), linked to run from the correct +//! address, at \b APP_START_ADDRESS. +//! +//! The USB memory stick must be formatted as a FAT16 or FAT32 file system +//! (the normal case), and the binary file must be located in the root +//! directory. Other files can exist on the memory stick but they will be +//! ignored. +// +//***************************************************************************** + +//***************************************************************************** +// +// Defines the number of times to call to check if the attached device is +// ready. +// +//***************************************************************************** +#define USBMSC_DRIVE_RETRY 4 + +//***************************************************************************** +// +// The name of the binary firmware file on the USB stick. This is the user +// application that will be searched for and loaded into flash if it is found. +// Note that the name of the file must be 11 characters total, 8 for the base +// name and 3 for the extension. If the actual file name has fewer characters +// then it must be padded with spaces. This macro should not contain the dot +// "." for the extension. +// +// Examples: firmware.bin --> "FIRMWAREBIN" +// myfile.bn --> "MYFILE BN " +// +//***************************************************************************** +#define USB_UPDATE_FILENAME "FIRMWAREBIN" + +//***************************************************************************** +// +// The size of the flash for this microcontroller. +// +//***************************************************************************** +#define FLASH_SIZE (1 * 1024 * 1024) + +//***************************************************************************** +// +// The starting address for the application that will be loaded into flash +// memory from the USB stick. This address must be high enough to be above +// the USB stick updater, and must be on a 1K boundary. +// Note that the application that will be loaded must also be linked to run +// from this address. +// +//***************************************************************************** +#define APP_START_ADDRESS 0x8000 + +//***************************************************************************** +// +// A memory location and value that is used to indicate that the application +// wants to force an update. +// +//***************************************************************************** +#define FORCE_UPDATE_ADDR 0x20004000 +#define FORCE_UPDATE_VALUE 0x1234cdef + +//***************************************************************************** +// +// The prototype for the function that is used to call the user application. +// +//***************************************************************************** +void CallApplication(uint_fast32_t ui32StartAddr); + +//***************************************************************************** +// +// The control table used by the uDMA controller. This table must be aligned +// to a 1024 byte boundary. In this application uDMA is only used for USB, +// so only the first 6 channels are needed. +// +//***************************************************************************** +#if defined(ewarm) +#pragma data_alignment=1024 +tDMAControlTable g_sDMAControlTable[6]; +#elif defined(ccs) +#pragma DATA_ALIGN(g_sDMAControlTable, 1024) +tDMAControlTable g_sDMAControlTable[6]; +#else +tDMAControlTable g_sDMAControlTable[6] __attribute__ ((aligned(1024))); +#endif + +//***************************************************************************** +// +// The global that holds all of the host drivers in use in the application. +// In this case, only the MSC class is loaded. +// +//***************************************************************************** +static tUSBHostClassDriver const * const g_ppHostClassDrivers[] = +{ + &g_sUSBHostMSCClassDriver +}; + +//***************************************************************************** +// +// This global holds the number of class drivers in the g_ppHostClassDrivers +// list. +// +//***************************************************************************** +#define NUM_CLASS_DRIVERS (sizeof(g_ppHostClassDrivers) / \ + sizeof(g_ppHostClassDrivers[0])) + +//***************************************************************************** +// +// Hold the current state for the application. +// +//***************************************************************************** +volatile enum +{ + // + // No device is present. + // + STATE_NO_DEVICE, + + // + // Mass storage device is being enumerated. + // + STATE_DEVICE_ENUM, +} +g_eState; + +//***************************************************************************** +// +// The instance data for the MSC driver. +// +//***************************************************************************** +tUSBHMSCInstance *g_psMSCInstance = 0; + +//***************************************************************************** +// +// The size of the host controller's memory pool in bytes. +// +//***************************************************************************** +#define HCD_MEMORY_SIZE 128 + +//***************************************************************************** +// +// The memory pool to provide to the Host controller driver. +// +//***************************************************************************** +uint8_t g_pHCDPool[HCD_MEMORY_SIZE]; + +//***************************************************************************** +// +// A buffer for holding sectors read from the storage device +// +//***************************************************************************** +static uint8_t g_ui8SectorBuf[512]; + +//***************************************************************************** +// +// Global to hold the clock rate. Set once read many. +// +//***************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// Read a sector from the USB mass storage device. +// +// \param ui32Sector is the sector to read from the connected USB mass storage +// device (memory stick) +// \param pui8Buf is a pointer to the buffer where the sector data should be +// stored +// +// This is the application-specific implementation of a function to read +// sectors from a storage device, in this case a USB mass storage device. +// This function is called from the \e simple_fs.c file when it needs to read +// data from the storage device. +// +// \return Non-zero if data was read from the device, 0 if no data was read. +// +//***************************************************************************** +uint32_t +SimpleFsReadMediaSector(uint_fast32_t ui32Sector, uint8_t *pui8Buf) +{ + // + // Return the requested sector from the connected USB mass storage + // device. + // + return(USBHMSCBlockRead(g_psMSCInstance, ui32Sector, pui8Buf, 1)); +} + +//***************************************************************************** +// +// This is the callback from the MSC driver. +// +// \param ui32Instance is the driver instance which is needed when communicating +// with the driver. +// \param ui32Event is one of the events defined by the driver. +// \param pvData is a pointer to data passed into the initial call to register +// the callback. +// +// This function handles callback events from the MSC driver. The only events +// currently handled are the \b MSC_EVENT_OPEN and \b MSC_EVENT_CLOSE. This +// allows the main routine to know when an MSC device has been detected and +// enumerated and when an MSC device has been removed from the system. +// +// \return Returns \e true on success or \e false on failure. +// +//***************************************************************************** +static void +MSCCallback(tUSBHMSCInstance *psMSCInstance, uint32_t ui32Event, void *pvData) +{ + // + // Determine the event. + // + switch(ui32Event) + { + // + // Called when the device driver has successfully enumerated an MSC + // device. + // + case MSC_EVENT_OPEN: + { + // + // Proceed to the enumeration state. + // + g_eState = STATE_DEVICE_ENUM; + break; + } + + // + // Called when the device driver has been unloaded due to error or + // the device is no longer present. + // + case MSC_EVENT_CLOSE: + { + // + // Go back to the "no device" state and wait for a new connection. + // + g_eState = STATE_NO_DEVICE; + break; + } + + default: + { + break; + } + } +} + +//***************************************************************************** +// +// Read the application image from the file system and program it into flash. +// +// This function will attempt to open and read the firmware image file from +// the mass storage device. If the file is found it will be programmed into +// flash. The name of the file to be read is configured by the macro +// \b USB_UPDATE_FILENAME. It will be programmed into flash starting at the +// address specified by APP_START_ADDRESS. +// +// \return Zero if successful or non-zero if the file cannot be read or +// programmed. +// +//***************************************************************************** +uint32_t +ReadAppAndProgram(void) +{ + uint_fast32_t ui32FlashEnd; + uint_fast32_t ui32FileSize; + uint_fast32_t ui32DataSize; + uint_fast32_t ui32Remaining; + uint_fast32_t ui32ProgAddr; + uint_fast32_t ui32SavedRegs[2]; + volatile uint_fast32_t ui32Idx; + uint_fast32_t ui32DriveTimeout; + + // + // Initialize the drive timeout. + // + ui32DriveTimeout = USBMSC_DRIVE_RETRY; + + // + // Check to see if the mass storage device is ready. Some large drives + // take a while to be ready, so retry until they are ready. + // + while(USBHMSCDriveReady(g_psMSCInstance)) + { + // + // Wait about 500ms before attempting to check if the + // device is ready again. + // + SysCtlDelay(g_ui32SysClock/(3*2)); + + // + // Decrement the retry count. + // + ui32DriveTimeout--; + + // + // If the timeout is hit then return with a failure. + // + if(ui32DriveTimeout == 0) + { + return(1); + } + } + + // + // Initialize the file system and return if error. + // + if(SimpleFsInit(g_ui8SectorBuf)) + { + return(1); + } + + // + // Attempt to open the firmware file, retrieving the file/image size. + // A file size of error means the file was not there, or there was an + // error. + // + ui32FileSize = SimpleFsOpen(USB_UPDATE_FILENAME); + if(ui32FileSize == 0) + { + return(1); + } + + // + // Get the size of flash. This is the ending address of the flash. + // If reserved space is configured, then the ending address is reduced + // by the amount of the reserved block. + // + ui32FlashEnd = FLASH_SIZE; +#ifdef FLASH_RSVD_SPACE + ui32FlashEnd -= FLASH_RSVD_SPACE; +#endif + + // + // If flash code protection is not used, then change the ending address + // to be the ending of the application image. This will be the highest + // flash page that will be erased and so only the necessary pages will + // be erased. If flash code protection is enabled, then all of the + // application area pages will be erased. + // +#ifndef FLASH_CODE_PROTECTION + ui32FlashEnd = ui32FileSize + APP_START_ADDRESS; +#endif + + // + // Check to make sure the file size is not too large to fit in the flash. + // If it is too large, then return an error. + // + if((ui32FileSize + APP_START_ADDRESS) > ui32FlashEnd) + { + return(1); + } + + // + // Enter a loop to erase all the requested flash pages beginning at the + // application start address (above the USB stick updater). + // + for(ui32Idx = APP_START_ADDRESS; ui32Idx < ui32FlashEnd; ui32Idx += 1024) + { + ROM_FlashErase(ui32Idx); + } + + // + // Enter a loop to read sectors from the application image file and + // program into flash. Start at the user app start address (above the USB + // stick updater). + // + ui32ProgAddr = APP_START_ADDRESS; + ui32Remaining = ui32FileSize; + while(SimpleFsReadFileSector()) + { + // + // Compute how much data was read from this sector and adjust the + // remaining amount. + // + ui32DataSize = ui32Remaining >= 512 ? 512 : ui32Remaining; + ui32Remaining -= ui32DataSize; + + // + // Special handling for the first block of the application. + // This block contains as the first two location the application's + // initial stack pointer and instruction pointer. The USB updater + // relied on the values in these locations to determine if a valid + // application is present. When there is a valid application the + // updater runs the user application. Otherwise the updater attempts + // to load a new application. + // In order to prevent a partially programmed imaged (due to some + // error occurring while programming), the first two locations are + // not programmed until all of the rest of the image has been + // successfully loaded into the flash. This way if there is some error, + // the updater will detect that a user application is not present and + // will not attempt to run it. + // + // For the first block, do not program the first two word locations + // (8 bytes). These two words will be programmed later, after + // everything else. + // + if(ui32ProgAddr == APP_START_ADDRESS) + { + uint32_t *pui32Temp; + + pui32Temp = (uint32_t *)g_ui8SectorBuf; + ui32SavedRegs[0] = pui32Temp[0]; + ui32SavedRegs[1] = pui32Temp[1]; + + // + // Call the function to program a block of flash. Skip the first + // two words (8 bytes) since these contain the initial SP and PC. + // + ROM_FlashProgram((uint32_t *)&g_ui8SectorBuf[8], + ui32ProgAddr + 8, + ((ui32DataSize - 8) + 3) & ~3); + } + + // + // All other blocks except the first block + // + else + { + // + // Call the function to program a block of flash. The length of the + // block passed to the flash function must be divisible by 4. + // + ROM_FlashProgram((uint32_t *)g_ui8SectorBuf, ui32ProgAddr, + (ui32DataSize + 3) & ~3); + } + + // + // If there is more image to program, then update the programming + // address. Progress will continue to the next iteration of + // the while loop. + // + if(ui32Remaining) + { + ui32ProgAddr += ui32DataSize; + } + + // + // Otherwise we are done programming so perform final steps. + // Program the first two words of the image that were saved earlier, + // and return a success indication. + // + else + { + ROM_FlashProgram((uint32_t *)ui32SavedRegs, APP_START_ADDRESS, + 8); + + return(0); + } + } + + // + // If we make it here, that means that an attempt to read a sector of + // data from the device was not successful. That means that the complete + // user app has not been programmed into flash, so just return an error + // indication. + // + return(1); +} + +//***************************************************************************** +// +// This is the main routine for performing an update from a mass storage +// device. +// +// This function forms the main loop of the USB stick updater. It polls for +// a USB mass storage device to be connected, Once a device is connected +// it will attempt to read a firmware image from the device and load it into +// flash. +// +// \return None. +// +//***************************************************************************** +void +UpdaterUSB(void) +{ + // + // Loop forever, running the USB host driver. + // + while(1) + { + USBHCDMain(); + + // + // Check for a state change from the USB driver. + // + switch(g_eState) + { + // + // This state means that a mass storage device has been + // plugged in and enumerated. + // + case STATE_DEVICE_ENUM: + { + // + // Attempt to read the application image from the storage + // device and load it into flash memory. + // + if(ReadAppAndProgram()) + { + // + // There was some error reading or programming the app, + // so reset the state to no device which will cause a + // wait for a new device to be plugged in. + // + g_eState = STATE_NO_DEVICE; + } + else + { + // + // User app load and programming was successful, so reboot + // the micro. Perform a software reset request. This + // will cause the microcontroller to reset; no further + // code will be executed. + // + HWREG(NVIC_APINT) = NVIC_APINT_VECTKEY | + NVIC_APINT_SYSRESETREQ; + + // + // The microcontroller should have reset, so this should + // never be reached. Just in case, loop forever. + // + while(1) + { + } + } + break; + } + + // + // This state means that there is no device present, so just + // do nothing until something is plugged in. + // + case STATE_NO_DEVICE: + { + break; + } + } + } +} + +//***************************************************************************** +// +// Configure the USB controller and power the bus. +// +// This function configures the USB controller for host operation. +// It is assumed that the main system clock has been configured at this point. +// +// \return None. +// +//***************************************************************************** +void +ConfigureUSBInterface(void) +{ + // + // Enable the uDMA controller and set up the control table base. + // This is required by usblib. + // + SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA); + SysCtlDelay(80); + uDMAEnable(); + uDMAControlBaseSet(g_sDMAControlTable); + + // + // Enable the USB controller. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_USB0); + + // + // Set the USB pins to be controlled by the USB controller. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOL); + ROM_GPIOPinConfigure(GPIO_PD6_USB0EPEN); + ROM_GPIOPinTypeUSBDigital(GPIO_PORTD_BASE, GPIO_PIN_6); + ROM_GPIOPinTypeUSBAnalog(GPIO_PORTL_BASE, GPIO_PIN_6 | GPIO_PIN_7); + ROM_GPIOPinTypeUSBAnalog(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1); + + // + // Register the host class driver + // + USBHCDRegisterDrivers(0, g_ppHostClassDrivers, NUM_CLASS_DRIVERS); + + // + // Open an instance of the mass storage class driver. + // + g_psMSCInstance = USBHMSCDriveOpen(0, MSCCallback); + + // + // Initialize the power configuration. This sets the power enable signal + // to be active high and does not enable the power fault. + // + USBHCDPowerConfigInit(0, USBHCD_VBUS_AUTO_HIGH | USBHCD_VBUS_FILTER); + + // + // Force the USB mode to host with no callback on mode changes since + // there should not be any. + // + USBStackModeSet(0, eUSBModeForceHost, 0); + + // + // Wait 10ms for the pin to go low. + // + SysCtlDelay(g_ui32SysClock/100); + + // + // Initialize the host controller. + // + USBHCDInit(0, g_pHCDPool, HCD_MEMORY_SIZE); +} + +//***************************************************************************** +// +// Generic configuration is handled in this function. +// +// This function is called by the start up code to perform any configuration +// necessary before calling the update routine. It is responsible for setting +// the system clock to the expected rate and setting flash programming +// parameters prior to calling ConfigureUSBInterface() to set up the USB +// hardware. +// +// \return None. +// +//***************************************************************************** +void +UpdaterMain(void) +{ + // + // Make sure NVIC points at the correct vector table. + // + HWREG(NVIC_VTABLE) = 0; + + // + // Run from the PLL at 120 MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + + // + // Enable lazy stacking for interrupt handlers. This allows floating-point + // instructions to be used within interrupt handlers, but at the expense of + // extra stack usage. + // + ROM_FPULazyStackingEnable(); + + // + // Configure the USB interface and power the bus. + // + ConfigureUSBInterface(); + + // + // Call the updater function. This will attempt to load a new image + // into flash from a USB memory stick. + // + UpdaterUSB(); +} + +//***************************************************************************** +// +// Main entry point for the USB stick update example. +// +// This function will check to see if a flash update should be performed from +// the USB memory stick, or if the user application should just be run without +// any update. +// +// The following checks are made, any of which mean that an update should be +// performed: +// - the PC and SP for the user app do not appear to be valid +// - a memory location contains a certain value, meaning the user app wants +// to force an update +// - the user button on the eval board is being pressed, meaning the user wants +// to force an update even if there is a valid user app in memory +// +// If any of the above checks are true, then that means that an update should +// be attempted. The USB stick updater will then wait for a USB stick to be +// plugged in, and once it is look for a firmware update file. +// +// If none of the above checks are true, then the user application that is +// already in flash is run and no update is performed. +// +// \return None. +// +//***************************************************************************** +int +main(void) +{ + uint32_t *pui32App; + + // + // See if the first location is 0xfffffffff or something that does not + // look like a stack pointer, or if the second location is 0xffffffff or + // something that does not look like a reset vector. + // + pui32App = (uint32_t *)APP_START_ADDRESS; + if((pui32App[0] == 0xffffffff) || + ((pui32App[0] & 0xfff00000) != 0x20000000) || + (pui32App[1] == 0xffffffff) || + ((pui32App[1] & 0xfff00001) != 0x00000001)) + { + // + // App starting stack pointer or PC is not valid, so force an update. + // + UpdaterMain(); + } + + // + // Check to see if the application has requested an update + // + if(HWREG(FORCE_UPDATE_ADDR) == FORCE_UPDATE_VALUE) + { + HWREG(FORCE_UPDATE_ADDR) = 0; + UpdaterMain(); + } + + // + // Enable the GPIO input for the USR_SW1 button. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ); + ROM_GPIODirModeSet(GPIO_PORTJ_BASE, GPIO_PIN_0, GPIO_DIR_MODE_IN); + MAP_GPIOPadConfigSet(GPIO_PORTJ_BASE, GPIO_PIN_0, GPIO_STRENGTH_2MA, + GPIO_PIN_TYPE_STD_WPU); + + // + // Check if the button is pressed, if so then force an update. + // + if(ROM_GPIOPinRead(GPIO_PORTJ_BASE, GPIO_PIN_0) == 0) + { + UpdaterMain(); + } + + // + // If we get to here that means that none of the conditions that should + // cause an update are true. Therefore, call the application. + // + CallApplication(APP_START_ADDRESS); +} + +//***************************************************************************** +// +// This function is called from the application to request an update. The +// address of this function is stored in the SVC vector at offset 0x2C, so +// the user application can call it by using a statement like this: +// +// (*((void (*)(void))(*(uint32_t *)0x2c)))(); +// +//***************************************************************************** +void +AppForceUpdate(void) +{ + // + // Set a value in a memory location to indicate that the app requests + // an update. Then cause the processor to reset. + // + HWREG(FORCE_UPDATE_ADDR) = FORCE_UPDATE_VALUE; + HWREG(NVIC_APINT) = NVIC_APINT_VECTKEY | NVIC_APINT_SYSRESETREQ; +} + +//***************************************************************************** +// +// This function is used to call the user application. It will set the NVIC +// to point at the user app's vector table, load up the user app's stack +// pointer, and then jump to the application. +// +// This function must be programmed in assembly since it needs to directly +// manipulate the value in the stack pointer, and because it needs to perform +// a direct branch to the user app and not a function call (bl). +// +//***************************************************************************** +#if defined(codered) || defined(gcc) || defined(sourcerygxx) +void __attribute__((naked)) +CallApplication(uint_fast32_t ui32StartAddr) +{ + // + // Set the vector table to the beginning of the app in flash. + // + HWREG(NVIC_VTABLE) = ui32StartAddr; + + // + // Load the stack pointer from the application's vector table. + // + __asm(" ldr r1, [r0]\n" + " mov sp, r1"); + + // + // Load the initial PC from the application's vector table and branch to + // the application's entry point. + // + __asm(" ldr r0, [r0, #4]\n" + " bx r0\n"); +} +#elif defined(ewarm) +void +CallApplication(uint_fast32_t ui32StartAddr) +{ + // + // Set the vector table to the beginning of the app in flash. + // + HWREG(NVIC_VTABLE) = ui32StartAddr; + + // + // Load the stack pointer from the application's vector table. + // + __asm(" ldr r1, [r0]\n" + " mov sp, r1"); + + // + // Load the initial PC from the application's vector table and branch to + // the application's entry point. + // + __asm(" ldr r0, [r0, #4]\n" + " bx r0\n"); +} +#elif defined(rvmdk) || defined(__ARMCC_VERSION) +__asm void +CallApplication(uint_fast32_t ui32StartAddr) +{ + // + // Set the vector table address to the beginning of the application. + // + ldr r1, =0xe000ed08 + str r0, [r1] + + // + // Load the stack pointer from the application's vector table. + // + ldr r1, [r0] + mov sp, r1 + + // + // Load the initial PC from the application's vector table and branch to + // the application's entry point. + // + ldr r0, [r0, #4] + bx r0 +} +#elif defined(ccs) +void +CallApplication(uint_fast32_t ui32StartAddr) +{ + // + // Set the vector table to the beginning of the app in flash. + // + HWREG(NVIC_VTABLE) = ui32StartAddr; + + // + // Load the stack pointer from the application's vector table. + // + __asm(" ldr r1, [r0]\n" + " mov sp, r1\n"); + + // + // Load the initial PC from the application's vector table and branch to + // the application's entry point. + // + __asm(" ldr r0, [r0, #4]\n" + " bx r0\n"); +} +#else +#error Undefined compiler! +#endif + diff --git a/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ewd b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ewp b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ewp new file mode 100644 index 0000000..3629ef8 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ewp @@ -0,0 +1,792 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + $PROJ_DIR$\..\..\..\..\usblib\ewarm\Exe\usblib.a + + + + Source + + $PROJ_DIR$\simple_fs.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\usb_stick_update.c + + + diff --git a/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.icf b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.icf new file mode 100644 index 0000000..13d7303 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// usb_stick_update.icf - Linker configuration file for usb_stick_update. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ld b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ld new file mode 100644 index 0000000..3268b40 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * usb_stick_update.ld - Linker configuration file for usb_stick_update. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.sct b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.sct new file mode 100644 index 0000000..757ada2 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; usb_stick_update.sct - Linker configuration file for usb_stick_update. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.uvopt b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.uvopt new file mode 100644 index 0000000..80429d1 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.uvopt @@ -0,0 +1,317 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + usb_stick_update + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S1 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\simple_fs.c + simple_fs.c + + + 1 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\usb_stick_update.c + usb_stick_update.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + 2 + 5 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\usblib\rvmdk\usblib.lib + usblib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 6 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.uvproj b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.uvproj new file mode 100644 index 0000000..a94dafa --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update.uvproj @@ -0,0 +1,434 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + usb_stick_update + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + usb_stick_update + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\usb_stick_update.bin .\rvmdk\usb_stick_update.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + usb_stick_update.sct + + + --entry Reset_Handler + + + + + + + + Source + + + simple_fs.c + 1 + .\simple_fs.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + usb_stick_update.c + 1 + .\usb_stick_update.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + usblib.lib + 4 + ..\..\..\..\usblib\rvmdk\usblib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update_ccs.cmd b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update_ccs.cmd new file mode 100644 index 0000000..5a61265 --- /dev/null +++ b/boards/ek-tm4c1294xl/usb_stick_update/usb_stick_update_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * usb_stick_update_ccs.cmd - CCS linker configuration file for usb_stick_update. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 1024; diff --git a/boards/ek-tm4c1294xl/watchdog/Makefile b/boards/ek-tm4c1294xl/watchdog/Makefile new file mode 100644 index 0000000..1aa1111 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/Makefile @@ -0,0 +1,86 @@ +#****************************************************************************** +# +# Makefile - Rules for building the watchdog example. +# +# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +# Software License Agreement +# +# Texas Instruments (TI) is supplying this software for use solely and +# exclusively on TI's microcontroller products. The software is owned by +# TI and/or its suppliers, and is protected under applicable copyright +# laws. You may not combine this software with "viral" open-source +# software in order to form a larger program. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +# DAMAGES, FOR ANY REASON WHATSOEVER. +# +# This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +# +#****************************************************************************** + +# +# Defines the part type that this project uses. +# +PART=TM4C1294NCPDT + +# +# The base directory for TivaWare. +# +ROOT=../../../.. + +# +# Include the common make definitions. +# +include ${ROOT}/makedefs + +# +# Where to find source files that do not live in this directory. +# +VPATH=../drivers + +# +# Where to find header files that do not live in the source directory. +# +IPATH=.. +IPATH+=../../../.. + +# +# The default rule, which causes the watchdog example to be built. +# +all: ${COMPILER} +all: ${COMPILER}/watchdog.axf + +# +# The rule to clean out all the build products. +# +clean: + @rm -rf ${COMPILER} ${wildcard *~} + +# +# The rule to create the target directory. +# +${COMPILER}: + @mkdir -p ${COMPILER} + +# +# Rules for building the watchdog example. +# +${COMPILER}/watchdog.axf: ${COMPILER}/buttons.o +${COMPILER}/watchdog.axf: ${COMPILER}/startup_${COMPILER}.o +${COMPILER}/watchdog.axf: ${COMPILER}/watchdog.o +${COMPILER}/watchdog.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a +${COMPILER}/watchdog.axf: watchdog.ld +SCATTERgcc_watchdog=watchdog.ld +ENTRY_watchdog=ResetISR +CFLAGSgcc=-DTARGET_IS_TM4C129_RA0 + +# +# Include the automatically generated dependency files. +# +ifneq (${MAKECMDGOALS},clean) +-include ${wildcard ${COMPILER}/*.d} __dummy__ +endif diff --git a/boards/ek-tm4c1294xl/watchdog/ccs/.ccsimportspec b/boards/ek-tm4c1294xl/watchdog/ccs/.ccsimportspec new file mode 100644 index 0000000..6379126 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/ccs/.ccsimportspec @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/boards/ek-tm4c1294xl/watchdog/ccs/.ccsproject b/boards/ek-tm4c1294xl/watchdog/ccs/.ccsproject new file mode 100644 index 0000000..ac3158a --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/ccs/.ccsproject @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/watchdog/ccs/.cproject b/boards/ek-tm4c1294xl/watchdog/ccs/.cproject new file mode 100644 index 0000000..0c258b8 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/ccs/.cproject @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/watchdog/ccs/.project b/boards/ek-tm4c1294xl/watchdog/ccs/.project new file mode 100644 index 0000000..3219adb --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/ccs/.project @@ -0,0 +1,55 @@ + + + watchdog + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + startup_ccs.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/watchdog/startup_ccs.c + + + watchdog.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/watchdog/watchdog.c + + + watchdog_ccs.cmd + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/watchdog/watchdog_ccs.cmd + + + drivers/buttons.c + 1 + SW_ROOT/examples/boards/ek-tm4c1294xl/drivers/buttons.c + + + + + SW_ROOT + $%7BPARENT-5-PROJECT_LOC%7D + + + diff --git a/boards/ek-tm4c1294xl/watchdog/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/ek-tm4c1294xl/watchdog/ccs/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..98b6350 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/ccs/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/boards/ek-tm4c1294xl/watchdog/ccs/Debug/watchdog.bin b/boards/ek-tm4c1294xl/watchdog/ccs/Debug/watchdog.bin new file mode 100644 index 0000000..87bfe37 Binary files /dev/null and b/boards/ek-tm4c1294xl/watchdog/ccs/Debug/watchdog.bin differ diff --git a/boards/ek-tm4c1294xl/watchdog/ccs/Debug/watchdog.out b/boards/ek-tm4c1294xl/watchdog/ccs/Debug/watchdog.out new file mode 100644 index 0000000..0fce43b Binary files /dev/null and b/boards/ek-tm4c1294xl/watchdog/ccs/Debug/watchdog.out differ diff --git a/boards/ek-tm4c1294xl/watchdog/ccs/macros.ini_initial b/boards/ek-tm4c1294xl/watchdog/ccs/macros.ini_initial new file mode 100644 index 0000000..31214b5 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/ccs/macros.ini_initial @@ -0,0 +1 @@ +SW_ROOT = ../../../../.. diff --git a/boards/ek-tm4c1294xl/watchdog/ccs/target_config.ccxml b/boards/ek-tm4c1294xl/watchdog/ccs/target_config.ccxml new file mode 100644 index 0000000..7a583d5 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/ccs/target_config.ccxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/boards/ek-tm4c1294xl/watchdog/ewarm/Exe/watchdog.bin b/boards/ek-tm4c1294xl/watchdog/ewarm/Exe/watchdog.bin new file mode 100644 index 0000000..cdfa1e2 Binary files /dev/null and b/boards/ek-tm4c1294xl/watchdog/ewarm/Exe/watchdog.bin differ diff --git a/boards/ek-tm4c1294xl/watchdog/ewarm/Exe/watchdog.out b/boards/ek-tm4c1294xl/watchdog/ewarm/Exe/watchdog.out new file mode 100644 index 0000000..b1a06f3 Binary files /dev/null and b/boards/ek-tm4c1294xl/watchdog/ewarm/Exe/watchdog.out differ diff --git a/boards/ek-tm4c1294xl/watchdog/gcc/watchdog.axf b/boards/ek-tm4c1294xl/watchdog/gcc/watchdog.axf new file mode 100644 index 0000000..34c2699 Binary files /dev/null and b/boards/ek-tm4c1294xl/watchdog/gcc/watchdog.axf differ diff --git a/boards/ek-tm4c1294xl/watchdog/gcc/watchdog.bin b/boards/ek-tm4c1294xl/watchdog/gcc/watchdog.bin new file mode 100644 index 0000000..fbbae38 Binary files /dev/null and b/boards/ek-tm4c1294xl/watchdog/gcc/watchdog.bin differ diff --git a/boards/ek-tm4c1294xl/watchdog/readme.txt b/boards/ek-tm4c1294xl/watchdog/readme.txt new file mode 100644 index 0000000..a89f1ca --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/readme.txt @@ -0,0 +1,28 @@ +Watchdog + +This example application demonstrates the use of the watchdog as a simple +heartbeat for the system. If the watchdog is not periodically fed, it will +reset the system. Each time the watchdog is fed, the LED is inverted so +that it is easy to see that it is being fed, which occurs once every +second. To stop the watchdog being fed and, hence, cause a system reset, +press the SW1 button. + +------------------------------------------------------------------------------- + +Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +Software License Agreement + +Texas Instruments (TI) is supplying this software for use solely and +exclusively on TI's microcontroller products. The software is owned by +TI and/or its suppliers, and is protected under applicable copyright +laws. You may not combine this software with "viral" open-source +software in order to form a larger program. + +THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, FOR ANY REASON WHATSOEVER. + +This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. diff --git a/boards/ek-tm4c1294xl/watchdog/rvmdk/watchdog.axf b/boards/ek-tm4c1294xl/watchdog/rvmdk/watchdog.axf new file mode 100644 index 0000000..197fa9c Binary files /dev/null and b/boards/ek-tm4c1294xl/watchdog/rvmdk/watchdog.axf differ diff --git a/boards/ek-tm4c1294xl/watchdog/rvmdk/watchdog.bin b/boards/ek-tm4c1294xl/watchdog/rvmdk/watchdog.bin new file mode 100644 index 0000000..1b75336 Binary files /dev/null and b/boards/ek-tm4c1294xl/watchdog/rvmdk/watchdog.bin differ diff --git a/boards/ek-tm4c1294xl/watchdog/startup_ccs.c b/boards/ek-tm4c1294xl/watchdog/startup_ccs.c new file mode 100644 index 0000000..6e20f39 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/startup_ccs.c @@ -0,0 +1,275 @@ +//***************************************************************************** +// +// startup_ccs.c - Startup code for use with TI's Code Composer Studio. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the reset handler that is to be called when the +// processor is started +// +//***************************************************************************** +extern void _c_int00(void); + +//***************************************************************************** +// +// Linker variable that marks the top of the stack. +// +//***************************************************************************** +extern uint32_t __STACK_TOP; + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void WatchdogIntHandler(void); + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000 or at the start of +// the program if located at a start address other than 0. +// +//***************************************************************************** +#pragma DATA_SECTION(g_pfnVectors, ".intvecs") +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)&__STACK_TOP), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + WatchdogIntHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Jump to the CCS C initialization routine. This will enable the + // floating-point unit as well, so that does not need to be done here. + // + __asm(" .global _c_int00\n" + " b.w _c_int00"); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/watchdog/startup_ewarm.c b/boards/ek-tm4c1294xl/watchdog/startup_ewarm.c new file mode 100644 index 0000000..e5b6e11 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/startup_ewarm.c @@ -0,0 +1,306 @@ +//***************************************************************************** +// +// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench, +// version 5. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Enable the IAR extensions for this source file. +// +//***************************************************************************** +#pragma language=extended + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void WatchdogIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application startup code. +// +//***************************************************************************** +extern void __iar_program_start(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128] @ ".noinit"; + +//***************************************************************************** +// +// A union that describes the entries of the vector table. The union is needed +// since the first entry is the stack pointer and the remainder are function +// pointers. +// +//***************************************************************************** +typedef union +{ + void (*pfnHandler)(void); + uint32_t ui32Ptr; +} +uVectorEntry; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__root const uVectorEntry __vector_table[] @ ".intvec" = +{ + { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) }, + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + WatchdogIntHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + __iar_program_start(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/watchdog/startup_gcc.c b/boards/ek-tm4c1294xl/watchdog/startup_gcc.c new file mode 100644 index 0000000..ec3af47 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/startup_gcc.c @@ -0,0 +1,322 @@ +//***************************************************************************** +// +// startup_gcc.c - Startup code for use with GNU tools. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include "inc/hw_nvic.h" +#include "inc/hw_types.h" + +//***************************************************************************** +// +// Forward declaration of the default fault handlers. +// +//***************************************************************************** +void ResetISR(void); +static void NmiSR(void); +static void FaultISR(void); +static void IntDefaultHandler(void); + +//***************************************************************************** +// +// External declaration for the interrupt handler used by the application. +// +//***************************************************************************** +extern void WatchdogIntHandler(void); + +//***************************************************************************** +// +// The entry point for the application. +// +//***************************************************************************** +extern int main(void); + +//***************************************************************************** +// +// Reserve space for the system stack. +// +//***************************************************************************** +static uint32_t pui32Stack[128]; + +//***************************************************************************** +// +// The vector table. Note that the proper constructs must be placed on this to +// ensure that it ends up at physical address 0x0000.0000. +// +//***************************************************************************** +__attribute__ ((section(".isr_vector"))) +void (* const g_pfnVectors[])(void) = +{ + (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)), + // The initial stack pointer + ResetISR, // The reset handler + NmiSR, // The NMI handler + FaultISR, // The hard fault handler + IntDefaultHandler, // The MPU fault handler + IntDefaultHandler, // The bus fault handler + IntDefaultHandler, // The usage fault handler + 0, // Reserved + 0, // Reserved + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // SVCall handler + IntDefaultHandler, // Debug monitor handler + 0, // Reserved + IntDefaultHandler, // The PendSV handler + IntDefaultHandler, // The SysTick handler + IntDefaultHandler, // GPIO Port A + IntDefaultHandler, // GPIO Port B + IntDefaultHandler, // GPIO Port C + IntDefaultHandler, // GPIO Port D + IntDefaultHandler, // GPIO Port E + IntDefaultHandler, // UART0 Rx and Tx + IntDefaultHandler, // UART1 Rx and Tx + IntDefaultHandler, // SSI0 Rx and Tx + IntDefaultHandler, // I2C0 Master and Slave + IntDefaultHandler, // PWM Fault + IntDefaultHandler, // PWM Generator 0 + IntDefaultHandler, // PWM Generator 1 + IntDefaultHandler, // PWM Generator 2 + IntDefaultHandler, // Quadrature Encoder 0 + IntDefaultHandler, // ADC Sequence 0 + IntDefaultHandler, // ADC Sequence 1 + IntDefaultHandler, // ADC Sequence 2 + IntDefaultHandler, // ADC Sequence 3 + WatchdogIntHandler, // Watchdog timer + IntDefaultHandler, // Timer 0 subtimer A + IntDefaultHandler, // Timer 0 subtimer B + IntDefaultHandler, // Timer 1 subtimer A + IntDefaultHandler, // Timer 1 subtimer B + IntDefaultHandler, // Timer 2 subtimer A + IntDefaultHandler, // Timer 2 subtimer B + IntDefaultHandler, // Analog Comparator 0 + IntDefaultHandler, // Analog Comparator 1 + IntDefaultHandler, // Analog Comparator 2 + IntDefaultHandler, // System Control (PLL, OSC, BO) + IntDefaultHandler, // FLASH Control + IntDefaultHandler, // GPIO Port F + IntDefaultHandler, // GPIO Port G + IntDefaultHandler, // GPIO Port H + IntDefaultHandler, // UART2 Rx and Tx + IntDefaultHandler, // SSI1 Rx and Tx + IntDefaultHandler, // Timer 3 subtimer A + IntDefaultHandler, // Timer 3 subtimer B + IntDefaultHandler, // I2C1 Master and Slave + IntDefaultHandler, // CAN0 + IntDefaultHandler, // CAN1 + IntDefaultHandler, // Ethernet + IntDefaultHandler, // Hibernate + IntDefaultHandler, // USB0 + IntDefaultHandler, // PWM Generator 3 + IntDefaultHandler, // uDMA Software Transfer + IntDefaultHandler, // uDMA Error + IntDefaultHandler, // ADC1 Sequence 0 + IntDefaultHandler, // ADC1 Sequence 1 + IntDefaultHandler, // ADC1 Sequence 2 + IntDefaultHandler, // ADC1 Sequence 3 + IntDefaultHandler, // External Bus Interface 0 + IntDefaultHandler, // GPIO Port J + IntDefaultHandler, // GPIO Port K + IntDefaultHandler, // GPIO Port L + IntDefaultHandler, // SSI2 Rx and Tx + IntDefaultHandler, // SSI3 Rx and Tx + IntDefaultHandler, // UART3 Rx and Tx + IntDefaultHandler, // UART4 Rx and Tx + IntDefaultHandler, // UART5 Rx and Tx + IntDefaultHandler, // UART6 Rx and Tx + IntDefaultHandler, // UART7 Rx and Tx + IntDefaultHandler, // I2C2 Master and Slave + IntDefaultHandler, // I2C3 Master and Slave + IntDefaultHandler, // Timer 4 subtimer A + IntDefaultHandler, // Timer 4 subtimer B + IntDefaultHandler, // Timer 5 subtimer A + IntDefaultHandler, // Timer 5 subtimer B + IntDefaultHandler, // FPU + 0, // Reserved + 0, // Reserved + IntDefaultHandler, // I2C4 Master and Slave + IntDefaultHandler, // I2C5 Master and Slave + IntDefaultHandler, // GPIO Port M + IntDefaultHandler, // GPIO Port N + 0, // Reserved + IntDefaultHandler, // Tamper + IntDefaultHandler, // GPIO Port P (Summary or P0) + IntDefaultHandler, // GPIO Port P1 + IntDefaultHandler, // GPIO Port P2 + IntDefaultHandler, // GPIO Port P3 + IntDefaultHandler, // GPIO Port P4 + IntDefaultHandler, // GPIO Port P5 + IntDefaultHandler, // GPIO Port P6 + IntDefaultHandler, // GPIO Port P7 + IntDefaultHandler, // GPIO Port Q (Summary or Q0) + IntDefaultHandler, // GPIO Port Q1 + IntDefaultHandler, // GPIO Port Q2 + IntDefaultHandler, // GPIO Port Q3 + IntDefaultHandler, // GPIO Port Q4 + IntDefaultHandler, // GPIO Port Q5 + IntDefaultHandler, // GPIO Port Q6 + IntDefaultHandler, // GPIO Port Q7 + IntDefaultHandler, // GPIO Port R + IntDefaultHandler, // GPIO Port S + IntDefaultHandler, // SHA/MD5 0 + IntDefaultHandler, // AES 0 + IntDefaultHandler, // DES3DES 0 + IntDefaultHandler, // LCD Controller 0 + IntDefaultHandler, // Timer 6 subtimer A + IntDefaultHandler, // Timer 6 subtimer B + IntDefaultHandler, // Timer 7 subtimer A + IntDefaultHandler, // Timer 7 subtimer B + IntDefaultHandler, // I2C6 Master and Slave + IntDefaultHandler, // I2C7 Master and Slave + IntDefaultHandler, // HIM Scan Matrix Keyboard 0 + IntDefaultHandler, // One Wire 0 + IntDefaultHandler, // HIM PS/2 0 + IntDefaultHandler, // HIM LED Sequencer 0 + IntDefaultHandler, // HIM Consumer IR 0 + IntDefaultHandler, // I2C8 Master and Slave + IntDefaultHandler, // I2C9 Master and Slave + IntDefaultHandler // GPIO Port T +}; + +//***************************************************************************** +// +// The following are constructs created by the linker, indicating where the +// the "data" and "bss" segments reside in memory. The initializers for the +// for the "data" segment resides immediately following the "text" segment. +// +//***************************************************************************** +extern uint32_t _etext; +extern uint32_t _data; +extern uint32_t _edata; +extern uint32_t _bss; +extern uint32_t _ebss; + +//***************************************************************************** +// +// This is the code that gets called when the processor first starts execution +// following a reset event. Only the absolutely necessary set is performed, +// after which the application supplied entry() routine is called. Any fancy +// actions (such as making decisions based on the reset cause register, and +// resetting the bits in that register) are left solely in the hands of the +// application. +// +//***************************************************************************** +void +ResetISR(void) +{ + uint32_t *pui32Src, *pui32Dest; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &_etext; + for(pui32Dest = &_data; pui32Dest < &_edata; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Zero fill the bss segment. + // + __asm(" ldr r0, =_bss\n" + " ldr r1, =_ebss\n" + " mov r2, #0\n" + " .thumb_func\n" + "zero_loop:\n" + " cmp r0, r1\n" + " it lt\n" + " strlt r2, [r0], #4\n" + " blt zero_loop"); + + // + // Enable the floating-point unit. This must be done here to handle the + // case where main() uses floating-point and the function prologue saves + // floating-point registers (which will fault if floating-point is not + // enabled). Any configuration of the floating-point unit using DriverLib + // APIs must be done here prior to the floating-point unit being enabled. + // + // Note that this does not use DriverLib since it might not be included in + // this project. + // + HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) & + ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) | + NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL); + + // + // Call the application's entry point. + // + main(); +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a NMI. This +// simply enters an infinite loop, preserving the system state for examination +// by a debugger. +// +//***************************************************************************** +static void +NmiSR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives a fault +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +FaultISR(void) +{ + // + // Enter an infinite loop. + // + while(1) + { + } +} + +//***************************************************************************** +// +// This is the code that gets called when the processor receives an unexpected +// interrupt. This simply enters an infinite loop, preserving the system state +// for examination by a debugger. +// +//***************************************************************************** +static void +IntDefaultHandler(void) +{ + // + // Go into an infinite loop. + // + while(1) + { + } +} diff --git a/boards/ek-tm4c1294xl/watchdog/startup_rvmdk.S b/boards/ek-tm4c1294xl/watchdog/startup_rvmdk.S new file mode 100644 index 0000000..b0a5543 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/startup_rvmdk.S @@ -0,0 +1,331 @@ +; <<< Use Configuration Wizard in Context Menu >>> +;****************************************************************************** +; +; startup_rvmdk.S - Startup code for use with Keil's uVision. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +;****************************************************************************** +; +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Stack EQU 0x00000200 + +;****************************************************************************** +; +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; +;****************************************************************************** +Heap EQU 0x00000000 + +;****************************************************************************** +; +; Allocate space for the stack. +; +;****************************************************************************** + AREA STACK, NOINIT, READWRITE, ALIGN=3 +StackMem + SPACE Stack +__initial_sp + +;****************************************************************************** +; +; Allocate space for the heap. +; +;****************************************************************************** + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +HeapMem + SPACE Heap +__heap_limit + +;****************************************************************************** +; +; Indicate that the code in this file preserves 8-byte alignment of the stack. +; +;****************************************************************************** + PRESERVE8 + +;****************************************************************************** +; +; Place code into the reset code section. +; +;****************************************************************************** + AREA RESET, CODE, READONLY + THUMB + +;****************************************************************************** +; +; External declaration for the interrupt handler used by the application. +; +;****************************************************************************** + EXTERN WatchdogIntHandler + +;****************************************************************************** +; +; The vector table. +; +;****************************************************************************** + EXPORT __Vectors +__Vectors + DCD StackMem + Stack ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NmiSR ; NMI Handler + DCD FaultISR ; Hard Fault Handler + DCD IntDefaultHandler ; The MPU fault handler + DCD IntDefaultHandler ; The bus fault handler + DCD IntDefaultHandler ; The usage fault handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; SVCall handler + DCD IntDefaultHandler ; Debug monitor handler + DCD 0 ; Reserved + DCD IntDefaultHandler ; The PendSV handler + DCD IntDefaultHandler ; The SysTick handler + DCD IntDefaultHandler ; GPIO Port A + DCD IntDefaultHandler ; GPIO Port B + DCD IntDefaultHandler ; GPIO Port C + DCD IntDefaultHandler ; GPIO Port D + DCD IntDefaultHandler ; GPIO Port E + DCD IntDefaultHandler ; UART0 Rx and Tx + DCD IntDefaultHandler ; UART1 Rx and Tx + DCD IntDefaultHandler ; SSI0 Rx and Tx + DCD IntDefaultHandler ; I2C0 Master and Slave + DCD IntDefaultHandler ; PWM Fault + DCD IntDefaultHandler ; PWM Generator 0 + DCD IntDefaultHandler ; PWM Generator 1 + DCD IntDefaultHandler ; PWM Generator 2 + DCD IntDefaultHandler ; Quadrature Encoder 0 + DCD IntDefaultHandler ; ADC Sequence 0 + DCD IntDefaultHandler ; ADC Sequence 1 + DCD IntDefaultHandler ; ADC Sequence 2 + DCD IntDefaultHandler ; ADC Sequence 3 + DCD WatchdogIntHandler ; Watchdog timer + DCD IntDefaultHandler ; Timer 0 subtimer A + DCD IntDefaultHandler ; Timer 0 subtimer B + DCD IntDefaultHandler ; Timer 1 subtimer A + DCD IntDefaultHandler ; Timer 1 subtimer B + DCD IntDefaultHandler ; Timer 2 subtimer A + DCD IntDefaultHandler ; Timer 2 subtimer B + DCD IntDefaultHandler ; Analog Comparator 0 + DCD IntDefaultHandler ; Analog Comparator 1 + DCD IntDefaultHandler ; Analog Comparator 2 + DCD IntDefaultHandler ; System Control (PLL, OSC, BO) + DCD IntDefaultHandler ; FLASH Control + DCD IntDefaultHandler ; GPIO Port F + DCD IntDefaultHandler ; GPIO Port G + DCD IntDefaultHandler ; GPIO Port H + DCD IntDefaultHandler ; UART2 Rx and Tx + DCD IntDefaultHandler ; SSI1 Rx and Tx + DCD IntDefaultHandler ; Timer 3 subtimer A + DCD IntDefaultHandler ; Timer 3 subtimer B + DCD IntDefaultHandler ; I2C1 Master and Slave + DCD IntDefaultHandler ; CAN0 + DCD IntDefaultHandler ; CAN1 + DCD IntDefaultHandler ; Ethernet + DCD IntDefaultHandler ; Hibernate + DCD IntDefaultHandler ; USB0 + DCD IntDefaultHandler ; PWM Generator 3 + DCD IntDefaultHandler ; uDMA Software Transfer + DCD IntDefaultHandler ; uDMA Error + DCD IntDefaultHandler ; ADC1 Sequence 0 + DCD IntDefaultHandler ; ADC1 Sequence 1 + DCD IntDefaultHandler ; ADC1 Sequence 2 + DCD IntDefaultHandler ; ADC1 Sequence 3 + DCD IntDefaultHandler ; External Bus Interface 0 + DCD IntDefaultHandler ; GPIO Port J + DCD IntDefaultHandler ; GPIO Port K + DCD IntDefaultHandler ; GPIO Port L + DCD IntDefaultHandler ; SSI2 Rx and Tx + DCD IntDefaultHandler ; SSI3 Rx and Tx + DCD IntDefaultHandler ; UART3 Rx and Tx + DCD IntDefaultHandler ; UART4 Rx and Tx + DCD IntDefaultHandler ; UART5 Rx and Tx + DCD IntDefaultHandler ; UART6 Rx and Tx + DCD IntDefaultHandler ; UART7 Rx and Tx + DCD IntDefaultHandler ; I2C2 Master and Slave + DCD IntDefaultHandler ; I2C3 Master and Slave + DCD IntDefaultHandler ; Timer 4 subtimer A + DCD IntDefaultHandler ; Timer 4 subtimer B + DCD IntDefaultHandler ; Timer 5 subtimer A + DCD IntDefaultHandler ; Timer 5 subtimer B + DCD IntDefaultHandler ; FPU + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD IntDefaultHandler ; I2C4 Master and Slave + DCD IntDefaultHandler ; I2C5 Master and Slave + DCD IntDefaultHandler ; GPIO Port M + DCD IntDefaultHandler ; GPIO Port N + DCD 0 ; Reserved + DCD IntDefaultHandler ; Tamper + DCD IntDefaultHandler ; GPIO Port P (Summary or P0) + DCD IntDefaultHandler ; GPIO Port P1 + DCD IntDefaultHandler ; GPIO Port P2 + DCD IntDefaultHandler ; GPIO Port P3 + DCD IntDefaultHandler ; GPIO Port P4 + DCD IntDefaultHandler ; GPIO Port P5 + DCD IntDefaultHandler ; GPIO Port P6 + DCD IntDefaultHandler ; GPIO Port P7 + DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0) + DCD IntDefaultHandler ; GPIO Port Q1 + DCD IntDefaultHandler ; GPIO Port Q2 + DCD IntDefaultHandler ; GPIO Port Q3 + DCD IntDefaultHandler ; GPIO Port Q4 + DCD IntDefaultHandler ; GPIO Port Q5 + DCD IntDefaultHandler ; GPIO Port Q6 + DCD IntDefaultHandler ; GPIO Port Q7 + DCD IntDefaultHandler ; GPIO Port R + DCD IntDefaultHandler ; GPIO Port S + DCD IntDefaultHandler ; SHA/MD5 0 + DCD IntDefaultHandler ; AES 0 + DCD IntDefaultHandler ; DES3DES 0 + DCD IntDefaultHandler ; LCD Controller 0 + DCD IntDefaultHandler ; Timer 6 subtimer A + DCD IntDefaultHandler ; Timer 6 subtimer B + DCD IntDefaultHandler ; Timer 7 subtimer A + DCD IntDefaultHandler ; Timer 7 subtimer B + DCD IntDefaultHandler ; I2C6 Master and Slave + DCD IntDefaultHandler ; I2C7 Master and Slave + DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0 + DCD IntDefaultHandler ; One Wire 0 + DCD IntDefaultHandler ; HIM PS/2 0 + DCD IntDefaultHandler ; HIM LED Sequencer 0 + DCD IntDefaultHandler ; HIM Consumer IR 0 + DCD IntDefaultHandler ; I2C8 Master and Slave + DCD IntDefaultHandler ; I2C9 Master and Slave + DCD IntDefaultHandler ; GPIO Port T + +;****************************************************************************** +; +; This is the code that gets called when the processor first starts execution +; following a reset event. +; +;****************************************************************************** + EXPORT Reset_Handler +Reset_Handler + ; + ; Enable the floating-point unit. This must be done here to handle the + ; case where main() uses floating-point and the function prologue saves + ; floating-point registers (which will fault if floating-point is not + ; enabled). Any configuration of the floating-point unit using + ; DriverLib APIs must be done here prior to the floating-point unit + ; being enabled. + ; + ; Note that this does not use DriverLib since it might not be included + ; in this project. + ; + MOVW R0, #0xED88 + MOVT R0, #0xE000 + LDR R1, [R0] + ORR R1, #0x00F00000 + STR R1, [R0] + + ; + ; Call the C library enty point that handles startup. This will copy + ; the .data section initializers from flash to SRAM and zero fill the + ; .bss section. + ; + IMPORT __main + B __main + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a NMI. This +; simply enters an infinite loop, preserving the system state for examination +; by a debugger. +; +;****************************************************************************** +NmiSR + B NmiSR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives a fault +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +FaultISR + B FaultISR + +;****************************************************************************** +; +; This is the code that gets called when the processor receives an unexpected +; interrupt. This simply enters an infinite loop, preserving the system state +; for examination by a debugger. +; +;****************************************************************************** +IntDefaultHandler + B IntDefaultHandler + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Some code in the normal code section for initializing the heap and stack. +; +;****************************************************************************** + AREA |.text|, CODE, READONLY + +;****************************************************************************** +; +; The function expected of the C library startup code for defining the stack +; and heap memory locations. For the C library version of the startup code, +; provide this function so that the C library initialization code can find out +; the location of the stack and heap. +; +;****************************************************************************** + IF :DEF: __MICROLIB + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + ELSE + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + LDR R0, =HeapMem + LDR R1, =(StackMem + Stack) + LDR R2, =(HeapMem + Heap) + LDR R3, =StackMem + BX LR + ENDIF + +;****************************************************************************** +; +; Make sure the end of this section is aligned. +; +;****************************************************************************** + ALIGN + +;****************************************************************************** +; +; Tell the assembler that we're done. +; +;****************************************************************************** + END diff --git a/boards/ek-tm4c1294xl/watchdog/watchdog.c b/boards/ek-tm4c1294xl/watchdog/watchdog.c new file mode 100644 index 0000000..2b45b26 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/watchdog.c @@ -0,0 +1,205 @@ +//***************************************************************************** +// +// watchdog.c - Watchdog timer example. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_ints.h" +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/debug.h" +#include "driverlib/fpu.h" +#include "driverlib/gpio.h" +#include "driverlib/interrupt.h" +#include "driverlib/sysctl.h" +#include "driverlib/watchdog.h" +#include "driverlib/rom.h" +#include "driverlib/rom_map.h" +#include "drivers/buttons.h" + +//***************************************************************************** +// +//! \addtogroup example_list +//!

      Watchdog (watchdog)

      +//! +//! This example application demonstrates the use of the watchdog as a simple +//! heartbeat for the system. If the watchdog is not periodically fed, it will +//! reset the system. Each time the watchdog is fed, the LED is inverted so +//! that it is easy to see that it is being fed, which occurs once every +//! second. To stop the watchdog being fed and, hence, cause a system reset, +//! press the SW1 button. +// +//***************************************************************************** + +//**************************************************************************** +// +// System clock rate in Hz. +// +//**************************************************************************** +uint32_t g_ui32SysClock; + +//***************************************************************************** +// +// Flag to tell the watchdog interrupt handler whether or not to clear the +// interrupt (feed the watchdog). +// +//***************************************************************************** +volatile bool g_bFeedWatchdog = true; + +//***************************************************************************** +// +// The error routine that is called if the driver library encounters an error. +// +//***************************************************************************** +#ifdef DEBUG +void +__error__(char *pcFilename, uint32_t ui32Line) +{ +} +#endif + +//***************************************************************************** +// +// The interrupt handler for the watchdog. This feeds the dog (so that the +// processor does not get reset) and winks the LED connected to GPIO B3. +// +//***************************************************************************** +void +WatchdogIntHandler(void) +{ + // + // If we have been told to stop feeding the watchdog, return immediately + // without clearing the interrupt. This will cause the system to reset + // next time the watchdog interrupt fires. + // + if(!g_bFeedWatchdog) + { + return; + } + + // + // Clear the watchdog interrupt. + // + ROM_WatchdogIntClear(WATCHDOG0_BASE); + + // + // Invert the GPIO PN0 value. + // + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, + (ROM_GPIOPinRead(GPIO_PORTN_BASE, GPIO_PIN_0) ^ + GPIO_PIN_0)); +} + +//***************************************************************************** +// +// This function is called when the SW1 button is pressed. +// +//***************************************************************************** +static int32_t +SW1ButtonPressed(void) +{ + // + // Set the flag that tells the interrupt handler not to clear the + // watchdog interrupt. + // + g_bFeedWatchdog = false; + + return(0); +} + +//***************************************************************************** +// +// This example demonstrates the use of the watchdog timer. +// +//***************************************************************************** +int +main(void) +{ + // + // Set the clocking to run directly from the crystal at 120MHz. + // + g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | + SYSCTL_OSC_MAIN | + SYSCTL_USE_PLL | + SYSCTL_CFG_VCO_480), 120000000); + // + // Initialize the buttons driver. + // + ButtonsInit(); + + // + // Enable the peripherals used by this example. + // + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_WDOG0); + ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION); + + // + // Enable processor interrupts. + // + ROM_IntMasterEnable(); + + // + // Set GPIO PN0 as an output. This drives an LED on the board that will + // toggle when a watchdog interrupt is processed. + // + ROM_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0); + ROM_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0); + + // + // Enable the watchdog interrupt. + // + ROM_IntEnable(INT_WATCHDOG); + + // + // Set the period of the watchdog timer to 1 second. + // + ROM_WatchdogReloadSet(WATCHDOG0_BASE, g_ui32SysClock); + + // + // Enable reset generation from the watchdog timer. + // + ROM_WatchdogResetEnable(WATCHDOG0_BASE); + + // + // Enable the watchdog timer. + // + ROM_WatchdogEnable(WATCHDOG0_BASE); + + // + // Loop forever while the LED winks as watchdog interrupts are handled. + // + while(1) + { + // + // Poll for the select button pressed + // + uint8_t ui8Buttons = ButtonsPoll(0, 0); + if(ui8Buttons & USR_SW1) + { + SW1ButtonPressed(); + while(1) + { + } + } + } +} diff --git a/boards/ek-tm4c1294xl/watchdog/watchdog.ewd b/boards/ek-tm4c1294xl/watchdog/watchdog.ewd new file mode 100644 index 0000000..9c3f3df --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/watchdog.ewd @@ -0,0 +1,614 @@ + + + + 1 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + ANGEL_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IARROM_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + JLINK_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + MACRAIGOR_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + RDI_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + + diff --git a/boards/ek-tm4c1294xl/watchdog/watchdog.ewp b/boards/ek-tm4c1294xl/watchdog/watchdog.ewp new file mode 100644 index 0000000..364b554 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/watchdog.ewp @@ -0,0 +1,789 @@ + + + + 1 + + Debug + + ARM + + 1 + + General + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 19 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Libraries + + $PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a + + + + Source + + $PROJ_DIR$\..\drivers\buttons.c + + + $PROJ_DIR$\startup_ewarm.c + + + $PROJ_DIR$\watchdog.c + + + diff --git a/boards/ek-tm4c1294xl/watchdog/watchdog.icf b/boards/ek-tm4c1294xl/watchdog/watchdog.icf new file mode 100644 index 0000000..7203a40 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/watchdog.icf @@ -0,0 +1,78 @@ +//***************************************************************************** +// +// watchdog.icf - Linker configuration file for watchdog. +// +// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +// +//***************************************************************************** + +// +// Define a memory region that covers the entire 4 GB addressible space of the +// processor. +// +define memory mem with size = 4G; + +// +// Define a region for the on-chip flash. +// +define region FLASH = mem:[from 0x00000000 to 0x000fffff]; + +// +// Define a region for the on-chip SRAM. +// +define region SRAM = mem:[from 0x20000000 to 0x2003ffff]; + +// +// Define a block for the heap. The size should be set to something other +// than zero if things in the C library that require the heap are used. +// +define block HEAP with alignment = 8, size = 0x00000000 { }; + +// +// Indicate that the read/write values should be initialized by copying from +// flash. +// +initialize by copy { readwrite }; + +// +// Indicate that the noinit values should be left alone. This includes the +// stack, which if initialized will destroy the return address from the +// initialization code, causing the processor to branch to zero and fault. +// +do not initialize { section .noinit }; + +// +// Place the interrupt vectors at the start of flash. +// +place at start of FLASH { readonly section .intvec }; + +// +// Place the remainder of the read-only items into flash. +// +place in FLASH { readonly }; + +// +// Place the RAM vector table at the start of SRAM. +// +place at start of SRAM { section VTABLE }; + +// +// Place all read/write items into SRAM. +// +place in SRAM { readwrite, block HEAP }; diff --git a/boards/ek-tm4c1294xl/watchdog/watchdog.ld b/boards/ek-tm4c1294xl/watchdog/watchdog.ld new file mode 100644 index 0000000..5c80029 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/watchdog.ld @@ -0,0 +1,57 @@ +/****************************************************************************** + * + * watchdog.ld - Linker configuration file for watchdog. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 + SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 +} + +SECTIONS +{ + .text : + { + _text = .; + KEEP(*(.isr_vector)) + *(.text*) + *(.rodata*) + _etext = .; + } > FLASH + + .data : AT(ADDR(.text) + SIZEOF(.text)) + { + _data = .; + *(vtable) + *(.data*) + _edata = .; + } > SRAM + + .bss : + { + _bss = .; + *(.bss*) + *(COMMON) + _ebss = .; + } > SRAM +} diff --git a/boards/ek-tm4c1294xl/watchdog/watchdog.sct b/boards/ek-tm4c1294xl/watchdog/watchdog.sct new file mode 100644 index 0000000..68a3ddb --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/watchdog.sct @@ -0,0 +1,47 @@ +;****************************************************************************** +; +; watchdog.sct - Linker configuration file for watchdog. +; +; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. +; Software License Agreement +; +; Texas Instruments (TI) is supplying this software for use solely and +; exclusively on TI's microcontroller products. The software is owned by +; TI and/or its suppliers, and is protected under applicable copyright +; laws. You may not combine this software with "viral" open-source +; software in order to form a larger program. +; +; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +; DAMAGES, FOR ANY REASON WHATSOEVER. +; +; This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. +; +;****************************************************************************** + +LR_IROM 0x00000000 0x00100000 +{ + ; + ; Specify the Execution Address of the code and the size. + ; + ER_IROM 0x00000000 0x00100000 + { + *.o (RESET, +First) + * (InRoot$$Sections, +RO) + } + + ; + ; Specify the Execution Address of the data area. + ; + RW_IRAM 0x20000000 0x00040000 + { + ; + ; Uncomment the following line in order to use IntRegister(). + ; + ;* (vtable, +First) + * (+RW, +ZI) + } +} diff --git a/boards/ek-tm4c1294xl/watchdog/watchdog.uvopt b/boards/ek-tm4c1294xl/watchdog/watchdog.uvopt new file mode 100644 index 0000000..818d1a9 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/watchdog.uvopt @@ -0,0 +1,303 @@ + + + + 1.0 + +
      ### uVision Project, (C) Keil Software
      + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + watchdog + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\rvmdk\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\Luminary\TM4C1294NCPDT.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + 0 + lmidk-agdi + -O4614 -S3 -FO29 + + + 0 + DLGTARM + + + + 0 + ARMDBGFLAGS + + + + + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + Source + 1 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\drivers\buttons.c + buttons.c + + + 1 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\startup_rvmdk.S + startup_rvmdk.S + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .\watchdog.c + watchdog.c + + + + + Libraries + 1 + 0 + 0 + + 2 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + driverlib.lib + + + + + Documentation + 1 + 0 + 0 + + 3 + 5 + 5 + 0 + 1 + 0 + 0 + 1 + 1 + 0 + .\readme.txt + readme.txt + + 44 + 0 + 1 + + -1 + -1 + + + -1 + -1 + + + 0 + 0 + 729 + 300 + + + + + + + 1 + 0 + + 100 + 0 + + + .\readme.txt + 0 + 1 + 1 + + + + + +
      diff --git a/boards/ek-tm4c1294xl/watchdog/watchdog.uvproj b/boards/ek-tm4c1294xl/watchdog/watchdog.uvproj new file mode 100644 index 0000000..bedc5d6 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/watchdog.uvproj @@ -0,0 +1,429 @@ + + + + 1.1 + +
      ### uVision Project, (C) Keil Software
      + + + + watchdog + 0x4 + ARM-ADS + + + TM4C1294NCPDT + Texas Instruments + IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(8000000) CPUTYPE("Cortex-M4") FPU2 + + "STARTUP\Luminary\Startup.s" ("Luminary Startup Code") + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000) + 5919 + LM4Fxxxx.H + + + + + + + + + + 0 + + + + Luminary\ + Luminary\ + + 0 + 0 + 0 + 0 + 1 + + .\rvmdk\ + watchdog + 1 + 0 + 0 + 1 + 1 + .\rvmdk\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + 0 + fromelf --bin --output .\rvmdk\watchdog.bin .\rvmdk\watchdog.axf + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + + 0 + 4 + + + + + + + + + + + + + + BIN\lmidk-agdi.dll + + + + + 1 + 0 + 0 + 0 + 1 + 4099 + + BIN\lmidk-agdi.dll + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + + + + 0 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + --c99 + rvmdk PART_TM4C1294NCPDT TARGET_IS_TM4C129_RA0 + + ..;..\..\..\..; + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + watchdog.sct + + + --entry Reset_Handler + + + + + + + + Source + + + buttons.c + 1 + ..\drivers\buttons.c + + + startup_rvmdk.S + 2 + .\startup_rvmdk.S + + + watchdog.c + 1 + .\watchdog.c + + + + + Libraries + + + driverlib.lib + 4 + ..\..\..\..\driverlib\rvmdk\driverlib.lib + + + + + Documentation + + + readme.txt + 5 + .\readme.txt + + + + + + + +
      diff --git a/boards/ek-tm4c1294xl/watchdog/watchdog_ccs.cmd b/boards/ek-tm4c1294xl/watchdog/watchdog_ccs.cmd new file mode 100644 index 0000000..5d53c47 --- /dev/null +++ b/boards/ek-tm4c1294xl/watchdog/watchdog_ccs.cmd @@ -0,0 +1,70 @@ +/****************************************************************************** + * + * watchdog_ccs.cmd - CCS linker configuration file for watchdog. + * + * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved. + * Software License Agreement + * + * Texas Instruments (TI) is supplying this software for use solely and + * exclusively on TI's microcontroller products. The software is owned by + * TI and/or its suppliers, and is protected under applicable copyright + * laws. You may not combine this software with "viral" open-source + * software in order to form a larger program. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. + * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT + * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY + * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES, FOR ANY REASON WHATSOEVER. + * + * This is part of revision 2.1.0.12573 of the EK-TM4C1294XL Firmware Package. + * + *****************************************************************************/ + +--retain=g_pfnVectors + +/* The following command line options are set as part of the CCS project. */ +/* If you are building using the command line, or for some reason want to */ +/* define them here, you can uncomment and modify these lines as needed. */ +/* If you are using CCS for building, it is probably better to make any such */ +/* modifications in your CCS project and leave this file alone. */ +/* */ +/* --heap_size=0 */ +/* --stack_size=256 */ +/* --library=rtsv7M3_T_le_eabi.lib */ + +/* The starting address of the application. Normally the interrupt vectors */ +/* must be located at the beginning of the application. */ +#define APP_BASE 0x00000000 +#define RAM_BASE 0x20000000 + +/* System memory map */ + +MEMORY +{ + /* Application stored in and executes from internal flash */ + FLASH (RX) : origin = APP_BASE, length = 0x00100000 + /* Application uses internal RAM for data */ + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .intvecs: > APP_BASE + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .vtable : > RAM_BASE + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} + +__STACK_TOP = __stack + 512; -- cgit v1.3.1